ESMF_CFIOVarInfoMod
Author: GMAO SI-Team
ESMF_CFIOVarInfoMod
- Source file for CFIO VarInfo
The code in this file provides data type definitions and interface specifications.
Define a new data type “CFIO_VarInfo” – contains variable information
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=1), | public | :: | aveMethod |
‘c’ for center averaging for time |
|||
character(len=MLEN), | public, | pointer | :: | attCharNames(:) | => | NULL() |
char attribute name |
character(len=MLEN), | public, | pointer | :: | attIntNames(:) | => | NULL() |
int attribute name |
character(len=MLEN), | public, | pointer | :: | attRealNames(:) | => | NULL() |
Real attribute name |
character(len=MLEN), | public | :: | standardName |
optional, standard name following CF convention |
|||
character(len=MLEN), | public | :: | vTitle |
variable long name, e.g., “Geopotential Height” |
|||
character(len=MLEN), | public, | pointer | :: | varAttChars(:) | => | NULL() | |
character(len=MVARLEN), | public | :: | cellMthd |
Cell methmod |
|||
character(len=MVARLEN), | public | :: | ordering |
(time, lev, lat, lon) (default) can be any combination of xyzt |
|||
character(len=MVARLEN), | public | :: | vName |
variable short name |
|||
character(len=MVARLEN), | public | :: | vUnits |
variable units, e.g., “meter/second” |
|||
integer, | public, | pointer | :: | ChunkSize(:) | => | NULL() |
ChunkSize for each variable |
integer, | public, | pointer | :: | attCharCnts(:) | => | NULL() |
length of char attributes |
integer, | public, | pointer | :: | attIntCnts(:) | => | NULL() |
length of int attributes |
integer, | public, | pointer | :: | attRealCnts(:) | => | NULL() |
length of real attributes |
integer, | public | :: | nVarAttChar |
number of variable char attributes |
|||
integer, | public | :: | nVarAttInt |
number of variable int attributes |
|||
integer, | public | :: | nVarAttReal |
number of variable real attributes |
|||
integer, | public, | pointer | :: | varAttInts(:,:) | => | NULL() |
User defined integer attributes |
logical, | public | :: | isGridSet |
True only if grid was passed in |
|||
logical, | public | :: | timAve |
True for time averaging file |
|||
logical, | public | :: | twoDimVar |
True for 2D; false for 3D |
|||
real, | public | :: | addOffSet |
optional |
|||
real, | public | :: | amiss |
Missing value such as 1.0E15 |
|||
real, | public | :: | packingRange(2) | ||||
real, | public | :: | scaleFactor |
optional |
|||
real, | public | :: | validRange(2) |
Variable valid range |
|||
real, | public, | pointer | :: | varAttReals(:,:) | => | NULL() |
User defined real attributes |
type(ESMF_CFIOGrid), | public | :: | grid |
grid used for this var |
|||
type(cNode), | public, | pointer | :: | cList | => | NULL() | |
type(iNode), | public, | pointer | :: | iList | => | NULL() | |
type(rNode), | public, | pointer | :: | rList | => | NULL() |
ESMF_CFIOVarInfoCreate
– ESMF_CFIOVarInfo object constructor
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in), | optional | :: | vName |
variable name |
|
integer, | intent(out), | optional | :: | rc |
Error return code: |
ESMF_CFIOVarInfoDestroy
– destructor for a CFIO varInfo object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_CFIOVarInfo), | intent(inout) | :: | varObj |
CFIOVarInfo object |
||
integer, | intent(out), | optional | :: | rc |
Error return code: |
ESMF_CFIOVarInfoGet
– get information from a CFIO variable object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_CFIOVarInfo), | intent(in) | :: | varObj |
variable obj |
||
character(len=*), | intent(out), | optional | :: | vName |
variable short name |
|
type(ESMF_CFIOGrid), | intent(out), | optional | :: | grid |
grid |
|
character(len=*), | intent(out), | optional | :: | vTitle |
variable long name |
|
character(len=*), | intent(out), | optional | :: | vUnits |
variable units |
|
logical, | optional | :: | twoDimVar |
True for 2D |
||
real, | intent(out), | optional | :: | validRange(2) |
Variable valid range |
|
real, | intent(out), | optional | :: | amiss |
FILL value |
|
real, | intent(out), | optional | :: | addOffSet | ||
real, | intent(out), | optional | :: | scaleFactor | ||
character(len=*), | intent(out), | optional | :: | standardName | ||
integer, | intent(out), | optional | :: | nVarAttChar | ||
character(len=*), | optional, | pointer | :: | attCharNames(:) | ||
integer, | optional, | pointer | :: | vAttCharCnts(:) |
length of attributes |
|
character(len=*), | optional, | pointer | :: | varAttChars(:) | ||
integer, | intent(out), | optional | :: | nVarAttReal | ||
character(len=*), | optional, | pointer | :: | attRealNames(:) | ||
integer, | optional, | pointer | :: | vAttRealCnts(:) |
length of attributes |
|
real, | optional, | pointer | :: | varAttReals(:,:) | ||
integer, | intent(out), | optional | :: | nVarAttInt | ||
character(len=*), | optional, | pointer | :: | attIntNames(:) | ||
integer, | optional, | pointer | :: | vAttIntCnts(:) |
length of attributes |
|
integer, | optional, | pointer | :: | varAttInts(:,:) | ||
character(len=*), | optional | :: | ordering |
(time, lev, lat, lon) (default) can be any combination of xyzt |
||
character(len=*), | intent(in), | optional | :: | attCharName |
User defined char attribute name |
|
integer, | intent(out), | optional | :: | attCharCnt | ||
character(len=*), | intent(out), | optional | :: | attChar |
User defined char attribute |
|
character(len=*), | intent(in), | optional | :: | attRealName |
User defined real attribute name |
|
integer, | intent(out), | optional | :: | attRealCnt | ||
real, | optional, | pointer | :: | attReal(:) |
User defined real attribute |
|
character(len=*), | intent(in), | optional | :: | attIntName |
User defined int attribute name |
|
integer, | intent(out), | optional | :: | attIntCnt | ||
integer, | optional, | pointer | :: | attInt(:) |
User defined int attribute |
|
real, | intent(out), | optional | :: | packingRange(2) | ||
logical, | optional | :: | timAve |
True for time average |
||
character(len=1), | optional | :: | aveMethod |
‘c’: center, ‘d’: downstream ‘u’: upstream |
||
character(len=MVARLEN), | optional | :: | cellMthd |
Cell methmod units |
||
integer, | optional, | pointer | :: | ChunkSize(:) |
User defined Chunksize int |
|
integer, | intent(out), | optional | :: | rc |
Error return code: |
ESMF_CFIOVarInfoSet
– Set meta data for a CFIO variable
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_CFIOVarInfo), | intent(inout) | :: | varObj |
variable obj |
||
character(len=*), | intent(in), | optional | :: | vName |
variable name |
|
type(ESMF_CFIOGrid), | intent(in), | optional | :: | grid |
grid |
|
character(len=*), | intent(in), | optional | :: | vTitle |
variable long name |
|
character(len=*), | intent(in), | optional | :: | vUnits |
variable units |
|
logical, | optional | :: | twoDimVar |
True for 2D |
||
real, | intent(in), | optional | :: | validRange(2) |
Variable valid range |
|
real, | intent(in), | optional | :: | amiss |
FILL value |
|
real, | intent(in), | optional | :: | addOffSet | ||
real, | intent(in), | optional | :: | scaleFactor | ||
character(len=*), | intent(in), | optional | :: | standardName | ||
character(len=*), | intent(in), | optional | :: | attCharNames(:) | ||
integer, | intent(in), | optional | :: | vAttCharCnts(:) |
length of attributes |
|
character(len=*), | intent(in), | optional | :: | varAttChars(:) | ||
character(len=*), | intent(in), | optional | :: | attRealNames(:) | ||
integer, | intent(in), | optional | :: | vAttRealCnts(:) |
length of attributes |
|
real, | intent(in), | optional | :: | varAttReals(:,:) | ||
character(len=*), | intent(in), | optional | :: | attIntNames(:) | ||
integer, | intent(in), | optional | :: | vAttIntCnts(:) |
length of attributes |
|
integer, | intent(in), | optional | :: | varAttInts(:,:) | ||
character(len=*), | optional | :: | ordering |
(time, lev, lat, lon) (default) can be any combination of xyzt |
||
character(len=*), | intent(in), | optional | :: | attCharName |
User defined variable attribute name |
|
character(len=*), | intent(in), | optional | :: | attChar |
User defined variable char attribute |
|
character(len=*), | intent(in), | optional | :: | attRealName |
User defined variable real attribute name |
|
real, | intent(in), | optional | :: | attReal(:) |
User defined variable real attribute |
|
character(len=*), | intent(in), | optional | :: | attIntName |
User defined variable int attribute name |
|
integer, | intent(in), | optional | :: | attInt(:) |
User defined variable int attribute |
|
real, | intent(in), | optional | :: | packingRange(2) |
Variable valid range |
|
logical, | optional | :: | timAve |
True for time average |
||
character(len=1), | optional | :: | aveMethod |
‘c’: center, ‘d’: downstream ‘u’: upstream |
||
character(len=*), | optional | :: | cellMthd |
Cell methmod units |
||
integer, | intent(in), | optional | :: | ChunkSize(:) |
User defined Chunksize int |
|
integer, | intent(out), | optional | :: | rc |
0 all is well |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(cNode), | pointer | :: | List |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(iNode), | pointer | :: | List |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(rNode), | pointer | :: | List |