Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mpim-sw
libcdi
Commits
41798beb
Commit
41798beb
authored
Nov 20, 2019
by
Uwe Schulzweida
Browse files
Replaced gridInqXstdname()/gridInqYstdname() by cdiInqKeyInt() with CDI_KEY_STDNAME.
parent
4d5ac71c
Changes
7
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
41798beb
2019-11-20 Uwe Schulzweida
* Replaced gridInqXstdname()/gridInqYstdname() by cdiInqKeyInt() with CDI_KEY_STDNAME
* Replaced gridDefScannigMode()/gridInqScanningMode() by cdiDefKeyInt()/cdiInqKeyInt() with CDI_KEY_SCANNINGMODE
2019-11-12 Uwe Schulzweida
...
...
Obsolate_functions
View file @
41798beb
...
...
@@ -7,9 +7,11 @@ gridDefYunits(gridID, yunits) -> cdiDefKeyString(gridID, CDI_YAXIS, CDI_
gridInqXname(gridID, xname) -> cdiInqKeyString(gridID, CDI_XAXIS, CDI_KEY_NAME, xname, &length)
gridInqXlongname(gridID, xlongname) -> cdiInqKeyString(gridID, CDI_XAXIS, CDI_KEY_LONGNAME, xlongname, &length)
gridInqXunits(gridID, xunits) -> cdiInqKeyString(gridID, CDI_XAXIS, CDI_KEY_UNITS, xunits, &length)
gridInqXstdname(gridID, xstdname) -> cdiInqKeyString(gridID, CDI_XAXIS, CDI_KEY_STDNAME, xstdname, &length)
gridInqYname(gridID, yname) -> cdiInqKeyString(gridID, CDI_YAXIS, CDI_KEY_NAME, yname, &length)
gridInqYlongname(gridID, ylongname) -> cdiInqKeyString(gridID, CDI_YAXIS, CDI_KEY_LONGNAME, ylongname, &length)
gridInqYunits(gridID, yunits) -> cdiInqKeyString(gridID, CDI_YAXIS, CDI_KEY_UNITS, yunits, &length)
gridInqYstdname(gridID, ylongname) -> cdiInqKeyString(gridID, CDI_YAXIS, CDI_KEY_STDNAME, ystdname, &length)
gridDefNumber(zaxisID, number) -> cdiDefKeyInt(gridID, CDI_GLOBAL, CDI_KEY_NUMBEROFGRIDUSED, number)
gridInqNumber(zaxisID) -> cdiInqKeyInt(gridID, CDI_GLOBAL, CDI_KEY_NUMBEROFGRIDUSED, &number)
...
...
src/cdi.h
View file @
41798beb
...
...
@@ -901,12 +901,6 @@ void gridDefYunits(int gridID, const char *yunits);
// gridInqYunits: Get the units of a Y-axis
void
gridInqYunits
(
int
gridID
,
char
*
yunits
);
// gridInqXstdname: Get the standard name of a X-axis
void
gridInqXstdname
(
int
gridID
,
char
*
xstdname
);
// gridInqYstdname: Get the standard name of a Y-axis
void
gridInqYstdname
(
int
gridID
,
char
*
ystdname
);
// gridDefDatatype: Define the data type of a Grid
void
gridDefDatatype
(
int
gridID
,
int
prec
);
...
...
src/grid.c
View file @
41798beb
...
...
@@ -126,7 +126,6 @@ void grid_axis_init(struct gridaxis_t *axisptr)
axisptr
->
clength
=
0
;
axisptr
->
cvals
=
NULL
;
#endif
axisptr
->
stdname
=
NULL
;
cdiInitKeys
(
&
axisptr
->
keys
);
}
...
...
@@ -302,16 +301,16 @@ void cdiGridTypeInit(grid_t *gridptr, int gridtype, size_t size)
gridaxisSetKey
(
&
gridptr
->
x
,
CDI_KEY_UNITS
,
"degrees_east"
);
gridaxisSetKey
(
&
gridptr
->
y
,
CDI_KEY_UNITS
,
"degrees_north"
);
grid
ptr
->
x
.
stdname
=
xystdname_tab
[
grid_xystdname_latlon
][
0
];
grid
ptr
->
y
.
stdname
=
xystdname_tab
[
grid_xystdname_latlon
][
1
];
grid
axisSetKey
(
&
gridptr
->
x
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_latlon
][
0
]
)
;
grid
axisSetKey
(
&
gridptr
->
y
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_latlon
][
1
]
)
;
break
;
}
#ifndef USE_MPI
case
GRID_CHARXY
:
{
if
(
gridptr
->
x
.
cvals
)
grid
ptr
->
x
.
stdname
=
xystdname_tab
[
grid_xystdname_char
][
0
];
if
(
gridptr
->
y
.
cvals
)
grid
ptr
->
y
.
stdname
=
xystdname_tab
[
grid_xystdname_char
][
0
]
;
if
(
gridptr
->
x
.
cvals
)
grid
axisSetKey
(
&
gridptr
->
x
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_char
][
0
]
)
;
if
(
gridptr
->
y
.
cvals
)
grid
axisSetKey
(
&
gridptr
->
y
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_char
][
1
])
;
break
;
}
...
...
@@ -326,9 +325,8 @@ void cdiGridTypeInit(grid_t *gridptr, int gridtype, size_t size)
const
char
*
gmapname
=
"Projection"
;
cdiDefVarKeyBytes
(
&
gridptr
->
keys
,
CDI_KEY_GRIDMAP_NAME
,
(
const
unsigned
char
*
)
gmapname
,
(
int
)
sizeof
(
gmapname
)
+
1
);
gridptr
->
x
.
stdname
=
xystdname_tab
[
grid_xystdname_projection
][
0
];
gridptr
->
y
.
stdname
=
xystdname_tab
[
grid_xystdname_projection
][
1
];
gridaxisSetKey
(
&
gridptr
->
x
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_projection
][
0
]);
gridaxisSetKey
(
&
gridptr
->
y
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_projection
][
1
]);
gridaxisSetKey
(
&
gridptr
->
x
,
CDI_KEY_UNITS
,
"m"
);
gridaxisSetKey
(
&
gridptr
->
y
,
CDI_KEY_UNITS
,
"m"
);
}
...
...
@@ -781,17 +779,6 @@ void gridInqXunits(int gridID, char *units)
(
void
)
cdiInqKeyString
(
gridID
,
CDI_XAXIS
,
CDI_KEY_UNITS
,
units
,
&
length
);
}
void
gridInqXstdname
(
int
gridID
,
char
*
xstdname
)
{
if
(
xstdname
)
{
xstdname
[
0
]
=
0
;
grid_t
*
gridptr
=
grid_to_pointer
(
gridID
);
if
(
gridptr
->
x
.
stdname
)
strcpy
(
xstdname
,
gridptr
->
x
.
stdname
);
}
}
/*
@Function gridInqYname
@Title Get the name of a Y-axis
...
...
@@ -868,17 +855,6 @@ void gridInqYunits(int gridID, char *units)
}
void
gridInqYstdname
(
int
gridID
,
char
*
ystdname
)
{
if
(
ystdname
)
{
ystdname
[
0
]
=
0
;
grid_t
*
gridptr
=
grid_to_pointer
(
gridID
);
if
(
gridptr
->
y
.
stdname
)
strcpy
(
ystdname
,
gridptr
->
y
.
stdname
);
}
}
void
gridDefProj
(
int
gridID
,
int
projID
)
{
grid_t
*
gridptr
=
grid_to_pointer
(
gridID
);
...
...
@@ -936,15 +912,15 @@ void gridVerifyProj(int gridID)
const
int
projtype
=
gridInqProjType
(
gridID
);
if
(
projtype
==
CDI_PROJ_RLL
)
{
grid
ptr
->
x
.
stdname
=
xystdname_tab
[
grid_xystdname_grid_latlon
][
0
];
grid
ptr
->
y
.
stdname
=
xystdname_tab
[
grid_xystdname_grid_latlon
][
1
];
grid
axisSetKey
(
&
gridptr
->
x
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_grid_latlon
][
0
]
)
;
grid
axisSetKey
(
&
gridptr
->
y
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_grid_latlon
][
1
]
)
;
gridaxisSetKey
(
&
gridptr
->
x
,
CDI_KEY_UNITS
,
"degrees"
);
gridaxisSetKey
(
&
gridptr
->
y
,
CDI_KEY_UNITS
,
"degrees"
);
}
else
if
(
projtype
==
CDI_PROJ_LCC
)
{
grid
ptr
->
x
.
stdname
=
xystdname_tab
[
grid_xystdname_projection
][
0
];
grid
ptr
->
y
.
stdname
=
xystdname_tab
[
grid_xystdname_projection
][
1
];
grid
axisSetKey
(
&
gridptr
->
x
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_projection
][
0
]
)
;
grid
axisSetKey
(
&
gridptr
->
y
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_projection
][
1
]
)
;
gridaxisSetKey
(
&
gridptr
->
x
,
CDI_KEY_UNITS
,
"m"
);
gridaxisSetKey
(
&
gridptr
->
y
,
CDI_KEY_UNITS
,
"m"
);
}
...
...
@@ -2504,8 +2480,8 @@ int gridCompareP(void *gridptr1, void *gridptr2)
if
(
strcmp
(
cdiInqVarKeyString
(
&
g1
->
y
.
keys
,
CDI_KEY_LONGNAME
),
cdiInqVarKeyString
(
&
g2
->
y
.
keys
,
CDI_KEY_LONGNAME
)))
return
differ
;
if
(
strcmp
(
cdiInqVarKeyString
(
&
g1
->
x
.
keys
,
CDI_KEY_UNITS
),
cdiInqVarKeyString
(
&
g2
->
x
.
keys
,
CDI_KEY_UNITS
)))
return
differ
;
if
(
strcmp
(
cdiInqVarKeyString
(
&
g1
->
y
.
keys
,
CDI_KEY_UNITS
),
cdiInqVarKeyString
(
&
g2
->
y
.
keys
,
CDI_KEY_UNITS
)))
return
differ
;
if
(
g1
->
x
.
stdname
!=
g2
->
x
.
stdname
)
return
differ
;
if
(
g1
->
y
.
stdname
!=
g2
->
y
.
stdname
)
return
differ
;
if
(
strcmp
(
cdiInqVarKeyString
(
&
g1
->
x
.
keys
,
CDI_KEY_STDNAME
),
cdiInqVarKeyString
(
&
g2
->
x
.
keys
,
CDI_KEY_STDNAME
))
)
return
differ
;
if
(
strcmp
(
cdiInqVarKeyString
(
&
g1
->
y
.
keys
,
CDI_KEY_STDNAME
),
cdiInqVarKeyString
(
&
g2
->
y
.
keys
,
CDI_KEY_STDNAME
))
)
return
differ
;
if
(
strcmp
(
cdiInqVarKeyString
(
&
g1
->
y
.
keys
,
CDI_KEY_REFERENCEURI
),
cdiInqVarKeyString
(
&
g2
->
y
.
keys
,
CDI_KEY_REFERENCEURI
)))
return
differ
;
...
...
@@ -2595,8 +2571,8 @@ void gridComplete(grid_t *grid)
if
(
name
[
0
]
==
0
)
cdiDefKeyString
(
gridID
,
CDI_XAXIS
,
CDI_KEY_UNITS
,
"degrees"
);
name
=
cdiInqVarKeyString
(
&
grid
->
y
.
keys
,
CDI_KEY_UNITS
);
if
(
name
[
0
]
==
0
)
cdiDefKeyString
(
gridID
,
CDI_YAXIS
,
CDI_KEY_UNITS
,
"degrees"
);
grid
->
x
.
stdname
=
xystdname_tab
[
grid_xystdname_grid_latlon
][
0
];
grid
->
y
.
stdname
=
xystdname_tab
[
grid_xystdname_grid_latlon
][
1
];
cdiDefKeyString
(
gridID
,
CDI_XAXIS
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_grid_latlon
][
0
]
)
;
cdiDefKeyString
(
gridID
,
CDI_YAXIS
,
CDI_KEY_STDNAME
,
xystdname_tab
[
grid_xystdname_grid_latlon
][
1
]
)
;
}
if
(
gridtype
==
GRID_UNSTRUCTURED
)
...
...
@@ -4290,8 +4266,6 @@ gridUnpack(char * unpackBuffer, int unpackBufferSize,
gridP
->
y
.
size
=
intBuffer
[
GRID_PACK_INT_IDX_Y_SIZE
];
gridP
->
lcomplex
=
(
bool
)
intBuffer
[
GRID_PACK_INT_IDX_LCOMPLEX
];
memberMask
=
intBuffer
[
GRID_PACK_INT_IDX_MEMBERMASK
];
gridP
->
x
.
stdname
=
xystdname_tab
[
intBuffer
[
GRID_PACK_INT_IDX_XTSTDNNAME
]][
0
];
gridP
->
y
.
stdname
=
xystdname_tab
[
intBuffer
[
GRID_PACK_INT_IDX_YTSTDNNAME
]][
1
];
}
if
(
memberMask
&
gridHasReducedPointsFlag
)
...
...
@@ -4447,11 +4421,6 @@ gridPack(void * voidP, void * packBuffer, int packBufferSize,
intBuffer
[
GRID_PACK_INT_IDX_LCOMPLEX
]
=
gridP
->
lcomplex
;
intBuffer
[
GRID_PACK_INT_IDX_MEMBERMASK
]
=
memberMask
=
gridGetComponentFlags
(
gridP
);
intBuffer
[
GRID_PACK_INT_IDX_XTSTDNNAME
]
=
(
int
)((
const
char
(
*
)[
2
][
24
])
gridP
->
x
.
stdname
-
xystdname_tab
);
intBuffer
[
GRID_PACK_INT_IDX_YTSTDNNAME
]
=
(
int
)((
const
char
(
*
)[
2
][
24
])
gridP
->
y
.
stdname
-
(
const
char
(
*
)[
2
][
24
])
xystdname_tab
[
0
][
1
]);
serializePack
(
intBuffer
,
gridNint
,
CDI_DATATYPE_INT
,
packBuffer
,
packBufferSize
,
packBufferPos
,
context
);
...
...
src/grid.h
View file @
41798beb
...
...
@@ -62,9 +62,8 @@ struct gridVirtTable
};
struct
gridaxis_t
{
const
char
*
stdname
;
size_t
size
;
// number of values
short
flag
;
// 0: undefined 1:vals 2:first+inc
size_t
size
;
// number of values
short
flag
;
// 0: undefined 1:vals 2:first+inc
double
first
,
last
,
inc
;
double
*
vals
;
double
*
bounds
;
...
...
@@ -77,31 +76,30 @@ struct gridaxis_t {
// GME Grid
struct
grid_gme_t
{
int
nd
,
ni
,
ni2
,
ni3
;
/
*
parameter for GRID_GME
*/
int
nd
,
ni
,
ni2
,
ni3
;
/
/ parameter for GRID_GME
};
struct
grid_t
{
char
*
name
;
int
self
;
size_t
size
;
int
type
;
/
*
grid type
*/
int
datatype
;
/
*
grid data type
*/
int
proj
;
/
*
grid projection
*/
int
projtype
;
/
*
grid projection type
*/
int
type
;
/
/
grid type
int
datatype
;
/
/
grid data type
int
proj
;
/
/
grid projection
int
projtype
;
/
/
grid projection type
mask_t
*
mask
;
mask_t
*
mask_gme
;
double
*
area
;
struct
grid_gme_t
gme
;
int
trunc
;
/
*
parameter for GRID_SPECTRAL
*/
int
trunc
;
/
/
parameter for GRID_SPECTRAL
int
nvertex
;
int
*
reducedPoints
;
int
reducedPointsSize
;
int
np
;
/* number of parallels between a pole and the equator */
signed
char
isCyclic
;
/* three possible states:
* -1 if unknown,
* 0 if found not cyclic, or
* 1 for global cyclic grids
*/
int
np
;
// number of parallels between a pole and the equator
signed
char
isCyclic
;
// three possible states:
// -1 if unknown,
// 0 if found not cyclic, or
// 1 for global cyclic grids
bool
lcomplex
;
bool
hasdims
;
struct
gridaxis_t
x
;
...
...
src/stream_cdf_i.c
View file @
41798beb
...
...
@@ -2074,7 +2074,7 @@ void cdf_copy_axis_attr(ncvar_t *ncvar, struct gridaxis_t *gridaxis)
cdiDefVarKeyBytes
(
&
gridaxis
->
keys
,
CDI_KEY_UNITS
,
(
const
unsigned
char
*
)
ncvar
->
units
,
(
int
)
sizeof
(
ncvar
->
units
)
+
1
);
#ifndef USE_MPI
if
(
gridaxis
->
cvals
)
gridaxis
->
stdname
=
ncvar
->
stdname
;
cdiDefVarKeyBytes
(
&
gridaxis
->
keys
,
CDI_KEY_STDNAME
,
(
const
unsigned
char
*
)
ncvar
->
stdname
,
(
int
)
sizeof
(
ncvar
->
stdname
)
+
1
)
;
#endif
}
...
...
src/stream_cdf_o.c
View file @
41798beb
...
...
@@ -228,7 +228,7 @@ static const struct cdfDefGridAxisInqs {
int
(
*
axisName
)(
int
cdiID
,
int
varID
,
int
key
,
char
*
string
,
int
*
length
);
int
(
*
axisLongname
)(
int
cdiID
,
int
varID
,
int
key
,
char
*
string
,
int
*
length
);
int
(
*
axisUnits
)(
int
cdiID
,
int
varID
,
int
key
,
char
*
string
,
int
*
length
);
void
(
*
axisStdname
)(
int
cdiID
,
char
*
dimstdname
);
void
(
*
axisStdname
)(
int
cdiID
,
int
varID
,
int
key
,
char
*
string
,
int
*
length
);
double
(
*
axisVal
)(
int
gridID
,
size_t
index
);
const
double
*
(
*
axisValsPtr
)(
int
gridID
);
const
double
*
(
*
axisBoundsPtr
)(
int
gridID
);
...
...
@@ -238,7 +238,7 @@ static const struct cdfDefGridAxisInqs {
.
axisName
=
cdiInqKeyString
,
.
axisLongname
=
cdiInqKeyString
,
.
axisUnits
=
cdiInqKeyString
,
.
axisStdname
=
gridInqXstdname
,
.
axisStdname
=
cdiInqKeyString
,
.
axisVal
=
gridInqXval
,
.
axisValsPtr
=
gridInqXvalsPtr
,
.
axisBoundsPtr
=
gridInqXboundsPtr
,
...
...
@@ -248,14 +248,14 @@ static const struct cdfDefGridAxisInqs {
.
axisName
=
cdiInqKeyString
,
.
axisLongname
=
cdiInqKeyString
,
.
axisUnits
=
cdiInqKeyString
,
.
axisStdname
=
gridInqYstdname
,
.
axisStdname
=
cdiInqKeyString
,
.
axisVal
=
gridInqYval
,
.
axisValsPtr
=
gridInqYvalsPtr
,
.
axisBoundsPtr
=
gridInqYboundsPtr
,
},
gridInqsZ
=
{
.
axisLongname
=
cdiInqKeyString
,
.
axisUnits
=
cdiInqKeyString
,
.
axisStdname
=
zaxisInqStdname
,
.
axisStdname
=
cdiInqKeyString
,
};
static
...
...
@@ -263,14 +263,16 @@ void cdfPutGridStdAtts(int fileID, int ncvarid, int gridID, int dimtype, const s
{
size_t
len
;
int
axisKey
=
(
dimtype
==
'Z'
)
?
CDI_GLOBAL
:
((
dimtype
==
'X'
)
?
CDI_XAXIS
:
CDI_YAXIS
);
char
stdname
[
CDI_MAX_NAME
];
inqs
->
axisStdname
(
gridID
,
stdname
);
if
(
(
len
=
strlen
(
stdname
))
)
int
length
=
CDI_MAX_NAME
;
inqs
->
axisStdname
(
gridID
,
axisKey
,
CDI_KEY_STDNAME
,
stdname
,
&
length
);
if
(
stdname
[
0
]
&&
(
len
=
strlen
(
stdname
))
)
cdf_put_att_text
(
fileID
,
ncvarid
,
"standard_name"
,
len
,
stdname
);
char
longname
[
CDI_MAX_NAME
];
int
length
=
CDI_MAX_NAME
;
int
axisKey
=
(
dimtype
==
'Z'
)
?
CDI_GLOBAL
:
((
dimtype
==
'X'
)
?
CDI_XAXIS
:
CDI_YAXIS
);
length
=
CDI_MAX_NAME
;
inqs
->
axisLongname
(
gridID
,
axisKey
,
CDI_KEY_LONGNAME
,
longname
,
&
length
);
if
(
longname
[
0
]
&&
(
len
=
strlen
(
longname
))
)
cdf_put_att_text
(
fileID
,
ncvarid
,
"long_name"
,
len
,
longname
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment