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() |
type ESMF_CFIOVarInfo ! private character(len=MVARLEN) :: vName !! variable short name type(ESMF_CFIOGrid) :: grid !! grid used for this var character(len=MLEN) :: vTitle !! variable long name, e.g., !! "Geopotential Height" character(len=MVARLEN):: vUnits !! variable units, e.g., !! "meter/second" real :: validRange(2) !! Variable valid range real :: packingRange(2) real :: amiss !! Missing value such as 1.0E15 real :: addOffSet !! optional real :: scaleFactor !! optional character(len=MLEN) :: standardName !! optional, standard name !! following CF convention logical :: twoDimVar !! True for 2D; false for 3D logical :: timAve !! True for time averaging file logical :: isGridSet !! True only if grid was passed in character :: aveMethod !! 'c' for center averaging for time !! [-0.5*timeInc+time, 0.5*timeInc+time] !! Default: 'c' !! 'd' for downstream averaging !! [time, time+timeInc] !! 'u' for upstream averaging !! [time-timeInc, time] character(len=MVARLEN) :: cellMthd !! Cell methmod integer :: nVarAttInt !! number of variable int attributes integer :: nVarAttReal !! number of variable real attributes integer :: nVarAttChar !! number of variable char attributes integer, pointer :: attCharCnts(:) => NULL() !! length of char attributes integer, pointer :: attRealCnts(:) => NULL() !! length of real attributes integer, pointer :: attIntCnts(:) => NULL() !! length of int attributes character(len=MLEN), pointer :: attCharNames(:) => NULL() !! char attribute name character(len=MLEN), pointer :: attRealNames(:) => NULL() !! Real attribute name character(len=MLEN), pointer :: attIntNames(:) => NULL() !! int attribute name character(len=MLEN), pointer :: varAttChars(:) => NULL() ! char attributes real, pointer :: varAttReals(:,:) => NULL() !! User defined real attributes integer, pointer :: varAttInts(:,:) => NULL() !! User defined integer attributes character(len=MVARLEN) :: ordering !! (time, lev, lat, lon) (default) !! can be any combination of xyzt type(iNode), pointer :: iList=>NULL() type(rNode), pointer :: rList=>NULL() type(cNode), pointer :: cList=>NULL() integer, pointer :: ChunkSize(:) => NULL() !! ChunkSize for each variable end type ESMF_CFIOVarInfo