MODULE: MAPL_GenericMod
Author: GMAO SI-Team
MAPLGeneric
allows the user to easily build ESMF gridded
components. It has its own SetServices, Initialize, Run, and Finalize
(IRF) methods, and thus is itself a valid gridded component, although somewhat
non-standard since it makes its IRF methods public. An instance of
MAPL_Generic
does no useful work, but can be used as a null MAPL_Generic
component.
The standard way to use MAPL_Generic is as an aid in building ESMF gridded
components. A MAPL/ESMF gridded component built in this way will always have
its own SetServices, which will call the subroutine MAPL_GenericSetServices.
When MAPL_GenericSetServices is called it sets the
component’s IRF methods to the generic versions, MAPL_GenericInitialize, MAPL_GenericFinalize, and
MAPL_GenericRun. Any (or all) of
these may be used as default methods by a gridded component. (As we will see below,
using all three default IRF methods in this way need not be equivalent to instanciating
a null component.) If for any of the
three IRF methods the default version is inadequate, it can simply be overrided
by having the component register its own method after the call to MAPL_GenericSetServices.
The generic IRF methods perform a number of useful functions, including
creating, allocating, and initializing the components Import, Export,
and Internal states. It would be a shame to waste this capability when a component
needs to write its own version of an IRF method. A common situation is that the component wants support
in performing these functions, but needs to do some (usually small) additional specialized
work; for example, it may need to do some special initializations. In this case,
one would write a light version of the IRF method that does the specialized work
and calls directly the corresponding MAPL_Generic method to do the boilerplate.
This is why MAPL_Generic, unlike a standard ESMF gridded component, makes its
IRF methods public and why we added the Generic
modifier (i.e., MAPL_GenericInitialize,
rather than MAPL_Initialize), to emphasize that they are directly callable IRF methods.
MAPL_Generic may also be viewed as a fairly standard Fortran 90 class
, which
defines and makes public an opaque object that we refer to as a MAPL_Generic State
.
This object can be created only in association with a standard ESMF Gridded Component (GC),
by making a MAPL_GenericSetServices call. This object can be obtained through an ESMF GC method
which is currently provided with MAPL. The MAPL_Generic State is, therefore, just another thing that
lives in the ESMF GC, like the grid and the configuration. The MAPL_Generic State
is private, but user components can access its contents through public
MAPL_Generic methods (Get, Set, etc). The bulk of MAPL_Generic consists of methods that act
on this object.
MAPL_GenericSetServices and MAPL_Generic IRF methods cannot create their own ESMF grid.
The grid must be inherited from the parent or created by the component
either in its own SetServices or in its Initialize, if it is writing one.
In any case, an important assumption of MAPL is that the grid must already be
present in the component and initialized when MAPL_GenericSetServices is invoked.
The same is true of the configuration.
In MAPL_Generic, we distinguish between simple (leaf)
gridded compnents and composite gridded components, which contain other
(child ) gridded components. We also define three types of services,
which can be registered by the component’s SetServices routine.
Functional services: These are the standard EMSF callable IRF methods for
the component.
Data services: These are descriptions of the component’s import, export,
and internal states, which can be manipulated by MAPL_Generic.
Child services: These are the services of the component’s children and
their connectivity.
Profiling Services: These are profiling counters (clocks) that can be used
by the component and are automatically reported by generic finalize.
MAPL_GenericSetServices provides generic versions of all these, as described below.
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
module~~mapl_genericmod~~UsedByGraph
module~mapl_genericmod
MAPL_GenericMod
module~historytrajectorymod
HistoryTrajectoryMod
module~historytrajectorymod->module~mapl_genericmod
module~mapl
MAPL
module~mapl->module~mapl_genericmod
module~mapl_capgridcompmod
MAPL_CapGridCompMod
module~mapl_capgridcompmod->module~mapl_genericmod
module~mapl_extdatagridcomp2g
MAPL_ExtDataGridComp2G
module~mapl_capgridcompmod->module~mapl_extdatagridcomp2g
module~mapl_extdatagridcompmod
MAPL_ExtDataGridCompMod
module~mapl_capgridcompmod->module~mapl_extdatagridcompmod
module~mapl_historygridcompmod
MAPL_HistoryGridCompMod
module~mapl_capgridcompmod->module~mapl_historygridcompmod
module~mapl_extdatagridcomp2g->module~mapl_genericmod
module~mapl_extdatagridcompmod->module~mapl_genericmod
module~mapl_historygridcompmod->module~mapl_genericmod
module~mapl_historygridcompmod->module~historytrajectorymod
module~masksamplergeosatmod
MaskSamplerGeosatMod
module~mapl_historygridcompmod->module~masksamplergeosatmod
module~stationsamplermod
StationSamplerMod
module~mapl_historygridcompmod->module~stationsamplermod
module~mapl_orbgridcompmod
MAPL_OrbGridCompMod
module~mapl_orbgridcompmod->module~mapl_genericmod
module~masksamplergeosatmod->module~mapl_genericmod
module~stationsamplermod->module~mapl_genericmod
program~comp_testing_driver
comp_testing_driver
program~comp_testing_driver->module~mapl_genericmod
program~comp_testing_driver->module~mapl
program~comp_testing_driver->module~mapl_capgridcompmod
module~extdata_drivergridcompmod
ExtData_DriverGridCompMod
module~extdata_drivergridcompmod->module~mapl
module~extdata_drivergridcompmod->module~mapl_extdatagridcomp2g
module~extdata_drivergridcompmod->module~mapl_extdatagridcompmod
module~extdata_drivergridcompmod->module~mapl_historygridcompmod
module~extdatadrivermod
ExtDataDriverMod
module~extdatadrivermod->module~mapl
module~extdatautroot_gridcompmod
ExtDataUtRoot_GridCompMod
module~extdatautroot_gridcompmod->module~mapl
module~historytrajectory_implement
HistoryTrajectory_implement
module~historytrajectory_implement->module~historytrajectorymod
module~mapl_capmod
MAPL_CapMod
module~mapl_capmod->module~mapl_capgridcompmod
module~mapl_historycollectionmod
MAPL_HistoryCollectionMod
module~mapl_historycollectionmod->module~historytrajectorymod
module~mapl_historycollectionmod->module~masksamplergeosatmod
module~mapl_historycollectionmod->module~stationsamplermod
module~mapl_mod
MAPL_Mod
module~mapl_mod->module~mapl
module~masksamplergeosat_implement
MaskSamplerGeosat_implement
module~masksamplergeosat_implement->module~masksamplergeosatmod
module~regrid_util_support_mod
regrid_util_support_mod
module~regrid_util_support_mod->module~mapl
module~rutmod
RUTMod
module~rutmod->module~mapl_extdatagridcompmod
module~varspecdescriptionmod
VarspecDescriptionMod
module~varspecdescriptionmod->module~mapl
program~capdriver_main
CapDriver_Main
program~capdriver_main->module~mapl
program~extdata_driver
ExtData_Driver
program~extdata_driver->module~mapl
program~main~2
main
program~main~2->module~mapl
program~main~8
main
program~main~8->module~mapl
program~time_ave
time_ave
program~time_ave->module~mapl
program~ut_extdata
ut_ExtData
program~ut_extdata->module~mapl_extdatagridcompmod
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Interfaces
private recursive subroutine MAPL_AddAttributeToFields_I4(gc, field_name, att_name, att_val, rc)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout),
pointer
::
gc
character(len=*),
intent(in)
::
field_name
character(len=*),
intent(in)
::
att_name
integer(kind=int32),
intent(in)
::
att_val
integer,
intent(out),
optional
::
rc
private recursive function AddChildFromGC(GC, name, SS, petList, configFile, rc)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
name
real
::
SS
integer,
intent(in),
optional
::
petList (:)
character(len=*),
intent(in),
optional
::
configFile
integer,
intent(out),
optional
::
rc
Return Value
integer
private recursive function AddChildFromMeta(META, NAME, GRID, CONFIGFILE, SS, parentGC, petList, rc)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout),
target
::
META
character(len=*),
intent(in)
::
NAME
type(ESMF_Grid ),
intent(inout),
optional
::
GRID
character(len=*),
intent(in),
optional
::
CONFIGFILE
real
::
SS
type(ESMF_GridComp ),
intent(in),
optional
::
parentGC
integer,
intent(in),
optional
::
petList (:)
integer,
intent(out),
optional
::
rc
Return Value
integer
private recursive function AddChildFromDSO_old(name, userRoutine, grid, ParentGC, SharedObj, petList, configFile, rc)
Arguments
Type
Intent Optional Attributes
Name
character(len=*),
intent(in)
::
name
character(len=*),
intent(in)
::
userRoutine
type(ESMF_Grid ),
intent(inout),
optional
::
grid
type(ESMF_GridComp ),
intent(inout),
optional
::
ParentGC
character(len=*),
intent(in),
optional
::
SharedObj
integer,
intent(in),
optional
::
petList (:)
character(len=*),
intent(in),
optional
::
configFile
integer,
intent(out),
optional
::
rc
Return Value
integer
private recursive function AddChildFromDSO(gc, name, userRoutine, grid, sharedObj, petList, configFile, rc)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
gc
character(len=*),
intent(in)
::
name
character(len=*),
intent(in)
::
userRoutine
type(ESMF_Grid ),
intent(inout),
optional
::
grid
character(len=*),
intent(in),
optional
::
sharedObj
integer,
intent(in),
optional
::
petList (:)
character(len=*),
intent(in),
optional
::
configFile
integer,
intent(out),
optional
::
rc
Return Value
integer
private recursive function AddChildFromDSOMeta(META, name, userRoutine, grid, sharedObj, petList, configFile, parentGC, rc)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout),
target
::
META
character(len=*),
intent(in)
::
name
character(len=*),
intent(in)
::
userRoutine
type(ESMF_Grid ),
intent(inout),
optional
::
grid
character(len=*),
intent(in),
optional
::
sharedObj
integer,
intent(in),
optional
::
petList (:)
character(len=*),
intent(in),
optional
::
configFile
type(ESMF_GridComp ),
intent(in),
optional
::
parentGC
integer,
intent(out),
optional
::
rc
Return Value
integer
private subroutine MAPL_AddConnectivityRename(GC, SRC_NAME, SRC_ID, DST_NAME, DST_ID, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SRC_NAME
integer,
intent(in)
::
SRC_ID
character(len=*),
intent(in)
::
DST_NAME
integer,
intent(in)
::
DST_ID
integer,
intent(out),
optional
::
RC
private subroutine MAPL_AddConnectivityRenameMany(GC, SRC_NAME, SRC_ID, DST_NAME, DST_ID, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SRC_NAME (:)
integer,
intent(in)
::
SRC_ID
character(len=*),
intent(in)
::
DST_NAME (:)
integer,
intent(in)
::
DST_ID
integer,
intent(out),
optional
::
RC
private subroutine MAPL_AddConnectivityMany(GC, SHORT_NAME, SRC_ID, DST_ID, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SHORT_NAME (:)
integer,
intent(in)
::
SRC_ID
integer,
intent(in)
::
DST_ID
integer,
intent(out),
optional
::
RC
private subroutine MAPL_StateAddExportSpec_(GC, SHORT_NAME, LONG_NAME, UNITS, DIMS, VLOCATION, DATATYPE, NUM_SUBTILES, REFRESH_INTERVAL, AVERAGING_INTERVAL, HALOWIDTH, PRECISION, DEFAULT, UNGRIDDED_DIMS, UNGRIDDED_UNIT, UNGRIDDED_NAME, UNGRIDDED_COORDS, FIELD_TYPE, STAGGERING, ROTATION, DEPENDS_ON, DEPENDS_ON_CHILDREN, positive, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SHORT_NAME
character(len=*),
intent(in),
optional
::
LONG_NAME
character(len=*),
intent(in),
optional
::
UNITS
integer,
intent(in),
optional
::
DIMS
integer,
intent(in),
optional
::
VLOCATION
integer,
intent(in),
optional
::
DATATYPE
integer,
intent(in),
optional
::
NUM_SUBTILES
integer,
intent(in),
optional
::
REFRESH_INTERVAL
integer,
intent(in),
optional
::
AVERAGING_INTERVAL
integer,
intent(in),
optional
::
HALOWIDTH
integer,
intent(in),
optional
::
PRECISION
real,
intent(in),
optional
::
DEFAULT
integer,
intent(in),
optional
::
UNGRIDDED_DIMS (:)
character(len=*),
intent(in),
optional
::
UNGRIDDED_UNIT
character(len=*),
intent(in),
optional
::
UNGRIDDED_NAME
real,
intent(in),
optional
::
UNGRIDDED_COORDS (:)
integer,
intent(in),
optional
::
FIELD_TYPE
integer,
intent(in),
optional
::
STAGGERING
integer,
intent(in),
optional
::
ROTATION
character(len=*),
intent(in),
optional
::
DEPENDS_ON (:)
logical,
intent(in),
optional
::
DEPENDS_ON_CHILDREN
character(len=*),
intent(in),
optional
::
positive
integer,
intent(out),
optional
::
RC
private subroutine MAPL_StateAddExportSpecFrmChld(GC, SHORT_NAME, CHILD_ID, RC, TO_NAME)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SHORT_NAME
integer,
intent(in)
::
CHILD_ID
integer,
intent(out),
optional
::
RC
character(len=*),
intent(in),
optional
::
TO_NAME
private subroutine MAPL_StateAddExportSpecFrmChld_All(GC, CHILD_ID, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
integer,
intent(in)
::
CHILD_ID
integer,
intent(out),
optional
::
RC
private subroutine MAPL_StateAddExportSpecFrmAll(STATE, RC)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
integer,
intent(out),
optional
::
RC
private subroutine MAPL_StateAddImportSpec_(GC, SHORT_NAME, LONG_NAME, UNITS, DIMS, VLOCATION, DATATYPE, NUM_SUBTILES, REFRESH_INTERVAL, AVERAGING_INTERVAL, HALOWIDTH, PRECISION, DEFAULT, RESTART, UNGRIDDED_DIMS, FIELD_TYPE, STAGGERING, ROTATION, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SHORT_NAME
character(len=*),
intent(in),
optional
::
LONG_NAME
character(len=*),
intent(in),
optional
::
UNITS
integer,
intent(in),
optional
::
DIMS
integer,
intent(in),
optional
::
VLOCATION
integer,
intent(in),
optional
::
DATATYPE
integer,
intent(in),
optional
::
NUM_SUBTILES
integer,
intent(in),
optional
::
REFRESH_INTERVAL
integer,
intent(in),
optional
::
AVERAGING_INTERVAL
integer,
intent(in),
optional
::
HALOWIDTH
integer,
intent(in),
optional
::
PRECISION
real,
intent(in),
optional
::
DEFAULT
integer,
intent(in),
optional
::
RESTART
integer,
intent(in),
optional
::
UNGRIDDED_DIMS (:)
integer,
intent(in),
optional
::
FIELD_TYPE
integer,
intent(in),
optional
::
STAGGERING
integer,
intent(in),
optional
::
ROTATION
integer,
intent(out),
optional
::
RC
private subroutine MAPL_StateAddImportSpecFrmChld(STATE, SHORT_NAME, CHILD_ID, RC)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
character(len=*),
intent(in)
::
SHORT_NAME
integer,
intent(in)
::
CHILD_ID
integer,
intent(out),
optional
::
RC
private subroutine MAPL_ESMFStateWriteToFile(STATE, CLOCK, FILENAME, FILETYPE, MPL, HDR, write_with_oserver, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_State ),
intent(inout)
::
STATE
type(ESMF_Clock ),
intent(in)
::
CLOCK
character(len=*),
intent(in)
::
FILENAME
character(len=*),
intent(inout)
::
FILETYPE
type(MAPL_MetaComp ),
intent(inout)
::
MPL
logical,
intent(in)
::
HDR
logical,
intent(in),
optional
::
write_with_oserver
integer,
intent(out),
optional
::
RC
private subroutine MAPL_CopyFriendlinessInField(FIELDOUT, FIELDIN, rc)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_Field ),
intent(inout)
::
FIELDOUT
type(ESMF_Field ),
intent(inout)
::
FIELDIN
integer,
intent(out),
optional
::
rc
private subroutine MAPL_CopyFriendlinessInState(STATEOUT, nameOUT, STATEIN, nameIN, rc)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_State ),
intent(inout)
::
STATEOUT
character(len=*),
intent(in)
::
nameOUT
type(ESMF_State ),
intent(in)
::
STATEIN
character(len=*),
intent(in)
::
nameIN
integer,
intent(out),
optional
::
rc
private subroutine MAPL_GenericStateGet(STATE, IM, JM, LM, VERTDIM, NX, NY, NX0, NY0, LAYOUT, GCNames, LONS, LATS, grid, ORBIT, RUNALARM, IMPORTspec, EXPORTspec, INTERNALspec, INTERNAL_ESMF_STATE, TILETYPES, TILEKIND, TILELATS, TILELONS, TILEAREA, LOCSTREAM, EXCHANGEGRID, CLOCK, NumInitPhases, NumRunPhases, GCS, CCS, GIM, GEX, CF, HEARTBEAT, childrens_names, childrens_gridcomps, childrens_import_states, childrens_export_states, RC)
This is the way of querying the opaque {\em MAPL_Generic}
state object. The arguments are:
- STATE The MAPL object to be queried.
- IM Size of the first horizontal dimension (X) of local arrays.
- JM Size of the second horizontal dimension (Y) of local arrays.
- LM Size of the vertical dimension.
- VERTDIM Position of the vertical dimension of 2 or higher dimensional arrays.
- NX Size of the DE array dimension aligned with the first horizontal dimension of arrays
- NY Size of the DE array dimension aligned with the second horizontal dimension of arrays
- NX0, NY0 Coordinates of current DE.
- LONS X coordinates of array locations. Currently longitude in radians.
- LATS Y coordinates of array locations. Currently latitude in radians.
- INTERNAL_ESMF_STATE The gridded component’s INTERNAL state.
- GCNames Names of the children.
- GCS The child gridded components.
- GIM The childrens’ IMPORT states.
- GEX The childrens’ EXPORT states.
- CCS Array of child-to-child couplers.
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout),
target
::
STATE
integer,
intent(out),
optional
::
IM
integer,
intent(out),
optional
::
JM
integer,
intent(out),
optional
::
LM
integer,
intent(out),
optional
::
VERTDIM
integer,
intent(out),
optional
::
NX
integer,
intent(out),
optional
::
NY
integer,
intent(out),
optional
::
NX0
integer,
intent(out),
optional
::
NY0
type(ESMF_DELayout ),
intent(out),
optional
::
LAYOUT
character(len=ESMF_MAXSTR),
optional,
pointer
::
GCNames (:)
real,
optional,
pointer
::
LONS (:,:)
real,
optional,
pointer
::
LATS (:,:)
type(ESMF_Grid ),
optional
::
grid
type(MAPL_SunOrbit ),
intent(out),
optional
::
ORBIT
type(ESMF_Alarm ),
intent(out),
optional
::
RUNALARM
type(MAPL_VarSpec ),
optional,
pointer
::
IMPORTspec (:)
type(MAPL_VarSpec ),
optional,
pointer
::
EXPORTspec (:)
type(MAPL_VarSpec ),
optional,
pointer
::
INTERNALspec (:)
type(ESMF_State ),
intent(out),
optional
::
INTERNAL_ESMF_STATE
integer,
optional,
pointer
::
TILETYPES (:)
integer,
optional,
pointer
::
TILEKIND (:)
real,
optional,
pointer
::
TILELATS (:)
real,
optional,
pointer
::
TILELONS (:)
real,
optional,
pointer
::
TILEAREA (:)
type(MAPL_LocStream ),
intent(out),
optional
::
LOCSTREAM
type(MAPL_LocStream ),
intent(out),
optional
::
EXCHANGEGRID
type(ESMF_Clock ),
intent(out),
optional
::
CLOCK
integer,
intent(out),
optional
::
NumInitPhases
integer,
intent(out),
optional
::
NumRunPhases
type(ESMF_GridComp ),
optional,
pointer
::
GCS (:)
type(ESMF_CplComp ),
optional,
pointer
::
CCS (:,:)
type(ESMF_State ),
optional,
pointer
::
GIM (:)
type(ESMF_State ),
optional,
pointer
::
GEX (:)
type(ESMF_Config ),
intent(out),
optional
::
CF
real,
intent(out),
optional
::
HEARTBEAT
character(len=ESMF_MAXSTR),
optional,
allocatable
::
childrens_names (:)
type(ESMF_GridComp ),
optional,
allocatable
::
childrens_gridcomps (:)
type(ESMF_State ),
optional,
allocatable
::
childrens_import_states (:)
type(ESMF_State ),
optional,
allocatable
::
childrens_export_states (:)
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GetLogger_gc(gc, lgr, rc)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
gc
class(Logger ),
pointer
::
lgr
integer,
intent(out),
optional
::
rc
private subroutine MAPL_GetLogger_meta(meta, lgr, rc)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(in)
::
meta
class(Logger ),
pointer
::
lgr
integer,
intent(out),
optional
::
rc
private subroutine MAPL_GetResourceFromConfig_scalar(config, val, label, unusable, default, value_is_set, rc)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_Config ),
intent(inout)
::
config
class(*),
intent(inout)
::
val
character(len=*),
intent(in)
::
label
class(KeywordEnforcer ),
intent(in),
optional
::
unusable
class(*),
intent(in),
optional
::
default
logical,
intent(out),
optional
::
value_is_set
integer,
intent(out),
optional
::
rc
private subroutine MAPL_GetResourceFromMAPL_scalar(state, val, label, unusable, default, value_is_set, rc)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
state
class(*),
intent(inout)
::
val
character(len=*),
intent(in)
::
label
class(KeywordEnforcer ),
intent(in),
optional
::
unusable
class(*),
intent(in),
optional
::
default
logical,
intent(out),
optional
::
value_is_set
integer,
intent(out),
optional
::
rc
private subroutine MAPL_GetResourceFromConfig_array(config, vals, label, unusable, default, value_is_set, rc)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_Config ),
intent(inout)
::
config
class(*),
intent(inout)
::
vals (:)
character(len=*),
intent(in)
::
label
class(KeywordEnforcer ),
intent(in),
optional
::
unusable
class(*),
intent(in),
optional
::
default (:)
logical,
intent(out),
optional
::
value_is_set
integer,
intent(out),
optional
::
rc
private subroutine MAPL_GetResourceFromMAPL_array(state, vals, label, unusable, default, value_is_set, rc)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
state
class(*),
intent(inout)
::
vals (:)
character(len=*),
intent(in)
::
label
class(KeywordEnforcer ),
intent(in),
optional
::
unusable
class(*),
intent(in),
optional
::
default (:)
logical,
intent(out),
optional
::
value_is_set
integer,
intent(out),
optional
::
rc
private recursive subroutine MAPL_GridCompGetFriendlies0(GC, TO, BUNDLE, AddGCPrefix, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
TO (:)
type(ESMF_FieldBundle),
intent(inout)
::
BUNDLE
logical,
intent(in),
optional
::
AddGCPrefix
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GridCompGetFriendlies1(GC, TO, BUNDLE, AddGCPrefix, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
TO
type(ESMF_FieldBundle),
intent(inout)
::
BUNDLE
logical,
intent(in),
optional
::
AddGCPrefix
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GridCompGetFriendlies2(GC, TO, BUNDLE, AddGCPrefix, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC (:)
character(len=*),
intent(in)
::
TO
type(ESMF_FieldBundle),
intent(inout)
::
BUNDLE
logical,
intent(in),
optional
::
AddGCPrefix
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GridCompGetFriendlies3(GC, TO, BUNDLE, AddGCPrefix, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC (:)
character(len=*),
intent(in)
::
TO (:)
type(ESMF_FieldBundle),
intent(inout)
::
BUNDLE
logical,
intent(in),
optional
::
AddGCPrefix
integer,
intent(out),
optional
::
RC
private subroutine MAPL_ReadForcing1(STATE, NAME, DATAFILE, CURRENTTIME, FORCING, INIT_ONLY, ON_TILES, RC)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
character(len=*),
intent(in)
::
NAME
character(len=*),
intent(in)
::
DATAFILE
type(ESMF_Time ),
intent(inout)
::
CURRENTTIME
real,
intent(out)
::
FORCING (:)
logical,
intent(in),
optional
::
INIT_ONLY
logical,
intent(in),
optional
::
ON_TILES
integer,
intent(out),
optional
::
RC
private subroutine MAPL_ReadForcing2(STATE, NAME, DATAFILE, CURRENTTIME, FORCING, INIT_ONLY, RC)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
character(len=*),
intent(in)
::
NAME
character(len=*),
intent(in)
::
DATAFILE
type(ESMF_Time ),
intent(inout)
::
CURRENTTIME
real,
intent(out)
::
FORCING (:,:)
logical,
intent(in),
optional
::
INIT_ONLY
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GenericStateSet(STATE, ORBIT, LM, RUNALARM, CHILDINIT, LOCSTREAM, EXCHANGEGRID, CLOCK, NAME, CF, ConfigFile, component, RC)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
type(MAPL_SunOrbit ),
intent(in),
optional
::
ORBIT
integer,
intent(in),
optional
::
LM
type(ESMF_Alarm ),
intent(in),
optional
::
RUNALARM
logical,
intent(in),
optional
::
CHILDINIT
type(MAPL_LocStream ),
intent(in),
optional
::
LOCSTREAM
type(MAPL_LocStream ),
intent(in),
optional
::
EXCHANGEGRID
type(ESMF_Clock ),
intent(in),
optional
::
CLOCK
character(len=*),
intent(in),
optional
::
NAME
type(ESMF_Config ),
intent(in),
optional
::
CF
character(len=*),
intent(in),
optional
::
ConfigFile
class(AbstractComponent ),
intent(in),
optional
::
component
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GenericStateSetFromGC(GC, ORBIT, LM, RUNALARM, CHILDINIT, LOCSTREAM, EXCHANGEGRID, CLOCK, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(MAPL_SunOrbit ),
intent(in),
optional
::
ORBIT
integer,
intent(in),
optional
::
LM
type(ESMF_Alarm ),
intent(in),
optional
::
RUNALARM
logical,
intent(in),
optional
::
CHILDINIT
type(MAPL_LocStream ),
intent(in),
optional
::
LOCSTREAM
type(MAPL_LocStream ),
intent(in),
optional
::
EXCHANGEGRID
type(ESMF_Clock ),
intent(in),
optional
::
CLOCK
integer,
intent(out),
optional
::
RC
private subroutine MAPL_DoNotConnect(GC, SHORT_NAME, CHILD, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SHORT_NAME
integer,
intent(in)
::
CHILD
integer,
intent(out),
optional
::
RC
private subroutine MAPL_DoNotConnectMany(GC, SHORT_NAME, CHILD, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SHORT_NAME (:)
integer,
intent(in)
::
CHILD
integer,
intent(out),
optional
::
RC
private subroutine MAPL_DoNotConnectAnyImport(GC, CHILD, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
integer,
intent(in)
::
CHILD
integer,
intent(out),
optional
::
RC
private subroutine MAPL_TerminateImportAllBut(GC, SHORT_NAMES, CHILD_IDS, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SHORT_NAMES (:)
integer,
intent(in)
::
CHILD_IDS (:)
integer,
intent(out),
optional
::
RC
private subroutine MAPL_TerminateImportAll(GC, ALL, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
logical,
intent(in)
::
ALL
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GenericStateClockAdd(GC, NAME, RC)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
NAME
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GenericStateClockOff(STATE, NAME, RC)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
character(len=*),
intent(in)
::
NAME
integer,
intent(out),
optional
::
RC
private subroutine MAPL_GenericStateClockOn(STATE, NAME, RC)
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
character(len=*),
intent(in)
::
NAME
integer,
intent(out),
optional
::
RC
private function MAPL_VerifyFriendlyInField(FIELD, FRIEND2COMP, RC) result(FRIENDLY)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_Field ),
intent(inout)
::
FIELD
character(len=*),
intent(in)
::
FRIEND2COMP
integer,
intent(out),
optional
::
RC
Return Value
logical
private function MAPL_VerifyFriendlyInState(STATE, NAME, FRIEND2COMP, RC) result(FRIENDLY)
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_State ),
intent(in)
::
STATE
character(len=*),
intent(in)
::
NAME
character(len=*),
intent(in)
::
FRIEND2COMP
integer,
intent(out),
optional
::
RC
Return Value
logical
Derived Types
Components
Type
Visibility Attributes
Name
Initial
integer,
public,
pointer
::
phase_run (:)
=>
null()
logical,
public
::
threading_active
=
.FALSE.
logical,
public
::
use_threads
=
.FALSE.
type(ESMF_GridComp ),
public
::
gridcomp
type(ESMF_State ),
public
::
export_state
type(ESMF_State ),
public
::
import_state
type(ESMF_State ),
public
::
internal_state
class(AbstractComponent ),
public,
allocatable
::
component
type(ComponentSpecification ),
public
::
component_spec
class(ConcreteComposite ),
public,
pointer
::
composite
=>
null()
type(DistributedProfiler ),
public
::
t_profiler
type(MaplGrid ),
public
::
grid
type(SubComponent),
public,
allocatable
::
subcomponents (:)
type(entryPointVector ),
public
::
run_entry_points
Type-Bound Procedures
procedure, public ::
activate_threading
procedure, public ::
add_child
procedure, public ::
add_child_component
procedure, public ::
create_subobjects
procedure, public ::
deactivate_threading
procedure, public ::
finalize => stub
procedure, public ::
finalize_child => stub_child
generic, public ::
get_child => get_child_by_name , get_child_by_index
procedure, public ::
get_child_by_index
procedure, public ::
get_child_by_name
procedure, public ::
get_child_export_state
procedure, public ::
get_child_gridcomp
procedure, public ::
get_child_idx
procedure, public ::
get_child_import_state
procedure, public ::
get_child_internal_state
procedure, public ::
get_component
procedure, public ::
get_composite
procedure, public ::
get_export_state
procedure, public ::
get_grid
procedure, public ::
get_gridcomp
procedure, public ::
get_import_state
procedure, public ::
get_internal_state
procedure, public ::
get_ith_child
procedure, public ::
get_logger
procedure, public ::
get_num_children
procedure, public ::
get_parent
procedure, public ::
get_use_threads
procedure, public ::
initialize => stub
procedure, public ::
initialize_child => stub_child
procedure, public ::
is_threading_active
procedure, public ::
run => stub
procedure, public ::
run_child => stub_child
procedure, public ::
set_component
procedure, public ::
set_composite
procedure, public ::
set_logger
procedure, public ::
set_use_threads
Functions
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
META
class(KeywordEnforcer ),
intent(in),
optional
::
unusable
integer,
intent(in),
optional
::
MODE
integer,
intent(out),
optional
::
RC
Return Value
logical
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(in)
::
META
Subroutines
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
MAPLOBJ
type(ESMF_Alarm ),
intent(inout)
::
ALARM (:)
integer,
intent(in)
::
filetype (:)
integer,
intent(out),
optional
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SERVICE
character(len=*),
intent(in)
::
BUNDLE
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
integer,
intent(in)
::
CHILD_ID
integer,
intent(in),
optional
::
REFRESH_INTERVAL
integer,
intent(in),
optional
::
AVERAGING_INTERVAL
integer,
intent(in),
optional
::
OFFSET
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
PROVIDER
character(len=*),
intent(in)
::
REQUESTER
character(len=*),
intent(in)
::
SERVICE
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_Clock )
::
clock
character(len=*)
::
DateStamp
integer,
optional
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
integer,
intent(out),
optional
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
MAPLOBJ
character(len=*),
intent(in)
::
ALARM_NAME
integer,
intent(out),
optional
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
NAME
logical,
intent(in),
optional
::
notFoundOK
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
NAME
logical,
intent(in),
optional
::
notFoundOK
integer,
intent(out)
::
RC
For each entry in NAMES
marks the export spec
to not be deferred during MAPL_GenericInitialize
.
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
NAMES (:)
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_State ),
intent(inout)
::
STATE
type(ESMF_Clock ),
intent(in)
::
CLOCK
character(len=*),
intent(in)
::
FILENAME
type(MAPL_MetaComp ),
intent(inout)
::
MPL
logical,
intent(in)
::
HDR
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(MAPL_LocStream ),
intent(inout)
::
EXCH
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(MAPL_LocStream ),
intent(in)
::
EXCH
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_State ),
intent(in)
::
export (:)
character(len=*),
intent(in)
::
name
type(ESMF_State ),
intent(out)
::
result
integer,
intent(out)
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
NAME
type(ESMF_Field ),
intent(out)
::
FIELD
character(len=*),
intent(in),
optional
::
REQUESTER
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
name
type(ESMF_GridComp ),
intent(inout)
::
result
integer,
intent(out),
optional
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_State ),
intent(inout)
::
IMPORT
type(ESMF_State ),
intent(inout)
::
EXPORT
type(ESMF_Clock ),
intent(inout)
::
CLOCK
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_State ),
intent(inout)
::
IMPORT
type(ESMF_State ),
intent(inout)
::
EXPORT
type(ESMF_Clock ),
intent(inout)
::
CLOCK
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_State ),
intent(inout)
::
IMPORT
type(ESMF_State ),
intent(inout)
::
EXPORT
type(ESMF_Clock ),
intent(inout)
::
CLOCK
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_State ),
intent(inout)
::
IMPORT
type(ESMF_State ),
intent(inout)
::
EXPORT
type(ESMF_Clock ),
intent(inout)
::
CLOCK
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_State ),
intent(inout)
::
IMPORT
type(ESMF_State ),
intent(inout)
::
EXPORT
type(ESMF_Clock ),
intent(inout)
::
CLOCK
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
integer,
intent(in)
::
CHILD
type(ESMF_Clock ),
intent(inout)
::
CLOCK
integer,
intent(out),
optional
::
RC
MAPL_GenericSetServices
performs the following tasks:
Read more…
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
Gridded component
integer,
intent(out)
::
RC
Return code
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_State ),
intent(inout)
::
IMPORT
type(ESMF_State ),
intent(inout)
::
EXPORT
type(ESMF_Clock ),
intent(inout)
::
CLOCK
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_State ),
intent(inout)
::
IMPORT
type(ESMF_State ),
intent(inout)
::
EXPORT
type(ESMF_Clock ),
intent(inout)
::
CLOCK
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
integer(kind=INT64),
pointer
::
LSADDR (:)
integer,
intent(out)
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(MAPL_LocStream ),
intent(out)
::
result
character(len=*),
intent(in)
::
name
integer,
intent(out)
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_Method_Flag ),
intent(in)
::
registeredMethod
real
::
usersRoutine
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout),
optional
::
GC
type(MAPL_MetaComp ),
intent(inout),
optional,
target
::
MAPLOBJ
type(ESMF_Grid ),
intent(out),
optional
::
ESMFGRID
type(ESMF_GridComp ),
intent(inout),
optional
::
srcGC
integer,
intent(out),
optional
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(ESMF_State ),
intent(in)
::
import
character(len=*),
intent(in)
::
name
type(ESMF_State ),
intent(out)
::
result
integer,
intent(out)
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
name
type(ESMF_State ),
intent(out)
::
result
integer,
intent(out)
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(MAPL_MetaComp ),
pointer
::
MAPLOBJ
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
type(MAPL_MetaComp ),
pointer
::
MAPLOBJ
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_State ),
intent(inout)
::
state
character(len=*),
intent(in)
::
label
procedure(I_CallBackMethod )
::
userRoutine
integer,
intent(out),
optional
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
character(len=*),
intent(in)
::
SERVICE
character(len=*),
intent(in)
::
VARS (:)
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
state
integer,
intent(in)
::
filetype
integer,
intent(out),
optional
::
rc
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GCA
type(ESMF_GridComp ),
intent(inout)
::
GCB
type(ESMF_CplComp ),
intent(inout)
::
CCAxB
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
type(ESMF_Alarm ),
intent(in)
::
ALARM
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(MAPL_MetaComp ),
intent(inout)
::
STATE
type(ESMF_Alarm ),
intent(out)
::
ALARM
character(len=*),
intent(in)
::
NAME
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_State ),
intent(inout)
::
STATE
type(MAPL_VarSpec ),
intent(inout),
target
::
SPEC (:)
logical,
intent(in),
optional
::
DEFER
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_State ),
intent(inout)
::
STATE
type(StateSpecification ),
intent(inout),
target
::
spec
logical,
intent(in),
optional
::
DEFER
integer,
intent(in),
optional
::
range (2)
integer,
intent(out),
optional
::
RC
Arguments
Type
Intent Optional Attributes
Name
type(ESMF_GridComp ),
intent(inout)
::
GC
integer,
intent(in)
::
printSpec
integer,
intent(out),
optional
::
RC