MAPL_SimpleBundleMod
Author: GMAO SI-Team
The module MAPL_SimpleBundleMod
implements a wrapper class around the
ESMF_FieldBundle. By construction, this is NOT an opaque object.
Given inputs, create a SimpleBundle.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_Grid), | intent(in) | :: | grid | |||
integer, | intent(out), | optional | :: | rc | ||
real(kind=ESMF_KIND_R4), | intent(in), | optional | :: | Levs(:) |
Vertical coordinates Constant levels |
|
character(len=*), | intent(in), | optional | :: | LevUnits |
Level units |
|
real(kind=ESMF_KIND_R4), | intent(in), | optional | :: | ptop |
top pressure (Pa) Lagrangian Control Volume Info |
|
real(kind=ESMF_KIND_R4), | intent(in), | optional, | pointer | :: | delp(:,:,:) |
layer thickness (Pa) |
character(len=*), | intent(in), | optional | :: | name |
name |
Simple Bundle !rename to simpleBundle
Given an ESMF Bundle, creates a corresponding Simple Bundle. The
specification of a vertical grid is optional but useful in many
cases. The 1-D Levs
will default to the layer number, and units of “1”.
Input parameters (ptop,delp)
can be used to record the corresponding
Lagrangian Control Volume Grid. When delp
is not specified, variables
DELP
or delp
are used if present inside the bundle.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_FieldBundle), | intent(inout), | target | :: | Bundle |
ESMF Bundle |
|
integer, | intent(out), | optional | :: | rc | ||
real(kind=ESMF_KIND_R4), | intent(in), | optional | :: | Levs(:) |
Vertical coordinates Constant levels |
|
character(len=*), | intent(in), | optional | :: | LevUnits |
Level units |
|
real(kind=ESMF_KIND_R4), | intent(in), | optional | :: | ptop |
top pressure (Pa) Lagrangian Control Volume Info |
|
real(kind=ESMF_KIND_R4), | intent(in), | optional, | pointer | :: | delp(:,:,:) |
layer thickness (Pa) |
character(len=*), | intent(in), | optional | :: | only_vars |
comma separated field names |
|
logical, | intent(in), | optional | :: | strict |
force name matching, ignored if only_vars is not present |
|
character(len=*), | intent(in), | optional | :: | name |
name |
Simple Bundle
Given an ESMF Staete, creates a corresponding Simple Bundle.
The specificatiopn of a vertical grid is optional but useful in many
cases. The 1-D Levs
will default to the layer number, and units of “1”.
Input parameters (ptop,delp)
can be used to record the corresponding
Lagrangian Control Volume Grid. When delp
is not specified, variables
DELP
or delp
are used if present inside the bundle.
IMPORTANT: It is assumed that the ESMF State has a single grid.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_State), | intent(inout), | target | :: | State |
ESMF State |
|
integer, | intent(out), | optional | :: | rc | ||
real(kind=ESMF_KIND_R4), | intent(in), | optional | :: | Levs(:) |
Vertical coordinates Constant levels |
|
character(len=*), | intent(in), | optional | :: | LevUnits |
Level units |
|
real(kind=ESMF_KIND_R4), | intent(in), | optional | :: | ptop |
top pressure (Pa) Lagrangian Control Volume Info |
|
real(kind=ESMF_KIND_R4), | intent(in), | optional, | pointer | :: | delp(:,:,:) |
layer thickness (Pa) |
character(len=*), | intent(in), | optional | :: | only_vars |
comma separated field names |
|
logical, | intent(in), | optional | :: | strict |
force name maching, ignored if only_vars is not present |
|
character(len=*), | intent(in), | optional | :: | name |
name |
Simple Bundle
Writes a MAPL SimpleBundle to file fiven an ESMF Clock object. The file opened, written to, and closed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(MAPL_SimpleBundle) | :: | self | ||||
character(len=*), | intent(in) | :: | filename | |||
type(ESMF_Clock), | intent(inout) | :: | Clock | |||
logical, | intent(in), | optional | :: | verbose | ||
integer, | intent(out), | optional | :: | rc |
Writes a MAPL SimpleBundle to file fiven an ESMF Time object. The file opened, written to, and closed. A fake timestep of 30 minutes is assumed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(MAPL_SimpleBundle) | :: | self | ||||
character(len=*), | intent(in) | :: | filename | |||
type(ESMF_Time), | intent(in) | :: | time | |||
logical, | intent(in), | optional | :: | verbose | ||
integer, | intent(out), | optional | :: | rc |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=ESMF_MAXSTR), | public | :: | name | ||||
integer, | public | :: | n1d | = | -1 | ||
integer, | public | :: | n2d | = | -1 | ||
integer, | public | :: | n3d | = | -1 | ||
logical, | public | :: | bundleAlloc | = | .false. | ||
type(ESMF_Grid), | public | :: | grid |
Associated ESMF grid |
|||
type(ESMF_FieldBundle), | public, | pointer | :: | Bundle |
Associated ESMF bundle |
||
type(SimpleArray_1D), | public, | pointer | :: | r1(:) | => | null() | |
type(SimpleArray_2D), | public, | pointer | :: | r2(:) | => | null() | |
type(SimpleArray_3D), | public, | pointer | :: | r3(:) | => | null() | |
type(SimpleGrid), | public | :: | coords |
Coordinate variables |
Finds the index of the first variable with name vname
.
This routine is case insensitive.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(MAPL_SimpleBundle) | :: | self | ||||
character(len=*), | intent(in) | :: | name |
variable name |
||
integer, | intent(in) | :: | rank | |||
integer, | intent(out), | optional | :: | rc | ||
logical, | intent(in), | optional | :: | quiet |
index of variable
Given an ESMF Config object and a filename, reads the corresponding file into a MAPL SimpleBundle.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | filename | |||
character(len=*), | intent(in) | :: | bundle_name | |||
type(ESMF_Grid), | intent(in) | :: | Grid | |||
type(ESMF_Time), | intent(inout) | :: | Time | |||
logical, | intent(in), | optional | :: | verbose | ||
character(len=*), | intent(in), | optional | :: | only_vars | ||
character(len=*), | intent(in), | optional | :: | expid | ||
logical, | intent(in), | optional | :: | voting | ||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Simple Bundle
Destructor for the MAPL Simple Bundle. It is assumed that the bundle has been created from an ESMF Field Bundle.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(MAPL_SimpleBundle) | :: | self | ||||
integer, | intent(out), | optional | :: | rc |
Prints the global max/min for each variable in the Simple Bundle.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(MAPL_SimpleBundle) | :: | self |