Define a new data type “CFIO_Grid” – contains grid information
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=MLEN), | public | :: | coordinate |
string to indicate vertical coord |
|||
character(len=MLEN), | public | :: | formulaTerm |
string for CF formula terms |
|||
character(len=MLEN), | public | :: | levUnits |
units of level dimension, e.g., “hPa”, “sigma_level” |
|||
character(len=MLEN), | public | :: | standardName |
string for CF standard name |
|||
character(len=MVARLEN), | public | :: | gName |
name for this grid |
|||
character(len=MVARLEN), | public | :: | ptopUnit |
unit of ptop |
|||
integer, | public | :: | im |
size of longitudinal dimension |
|||
integer, | public | :: | jm |
size of latitudinal dimension |
|||
integer, | public | :: | km |
size of vertical dimension |
|||
integer, | public | :: | tm |
size of time dimension |
|||
logical, | public | :: | reduceGrid |
support for reduced grid |
|||
logical, | public | :: | stnGrid |
support for station data |
|||
logical, | public | :: | twoDimLat |
support 2D lat/lon or not |
|||
real(kind=REAL64), | public, | pointer | :: | lat(:) | => | NULL() |
latitude of center of gridbox in |
real(kind=REAL64), | public, | pointer | :: | lev(:) | => | NULL() |
Level (units given by levUnits) of |
real(kind=REAL64), | public, | pointer | :: | lon(:) | => | NULL() |
longitude of center of gridbox in |
real, | public, | pointer | :: | ak(:) | => | NULL() |
parameter for hybrid sigma prs coord. |
real, | public, | pointer | :: | bk(:) | => | NULL() |
parameter for hybrid sigma prs coord. |
real, | public | :: | ptop |
parameter for sigma/eta coordinate |
|||
real, | public, | pointer | :: | sigma(:) | => | NULL() |
parameter for sigma coordinate |
type ESMF_CFIOGrid ! private character(len=MVARLEN) :: gName !! name for this grid integer :: im !! size of longitudinal dimension integer :: jm !! size of latitudinal dimension integer :: km !! size of vertical dimension integer :: tm !! size of time dimension real(kind=REAL64), pointer :: lon(:) => NULL() !! longitude of center of gridbox in !! degrees east of Greenwich (can be !! -180 -> 180 or 0 -> 360) real(kind=REAL64), pointer :: lat(:) => NULL() !! latitude of center of gridbox in !! degrees north of equator real(kind=REAL64), pointer :: lev(:) => NULL() !! Level (units given by levUnits) of !! center of gridbox character(len=MLEN) :: levUnits !! units of level dimension, e.g., !! "hPa", "sigma_level" character(len=MLEN) :: coordinate !! string to indicate vertical coord !! (pressure, sigma, pressure_sigma) character(len=MLEN) :: standardName !! string for CF standard name character(len=MLEN) :: formulaTerm !! string for CF formula terms real, pointer :: ak(:) => NULL() !! parameter for hybrid sigma prs coord. real, pointer :: bk(:) => NULL() !! parameter for hybrid sigma prs coord. real, pointer :: sigma(:) => NULL() !! parameter for sigma coordinate real :: ptop !! parameter for sigma/eta coordinate character(len=MVARLEN) :: ptopUnit !! unit of ptop logical :: twoDimLat !! support 2D lat/lon or not logical :: reduceGrid !! support for reduced grid logical :: stnGrid !! support for station data end type ESMF_CFIOGrid