Next:
1 ESMF Overview
Up:
ESMF_refdoc
Previous:
ESMF_refdoc
Contents
1 ESMF Overview
1 What is the Earth System Modeling Framework?
2 The ESMF Reference Manual for Fortran
3 How to Contact User Support and Find Additional Information
4 How to Submit Comments, Bug Reports, and Feature Requests
5 Conventions
5.1 Typeface and Diagram Conventions
5.2 Method Name and Argument Conventions
6 The ESMF Application Programming Interface
6.1 Standard Methods and Interface Rules
6.2 Deep and Shallow Classes
6.3 Special Methods
6.4 The ESMF Data Hierarchy
6.5 ESMF Spatial Classes
6.6 ESMF Maps
6.7 ESMF Specification Classes
6.8 ESMF Utility Classes
7 Overall Rules and Behavior
7.1 Local and Global Views and Associated Conventions
7.2 Allocation Rules
7.3 Equality and Copying Objects
7.4 Attributes
8 Integrating ESMF into Applications
8.1 Using the ESMF Superstructure
9 Global Options, Flags and Parameters
9.1 Options
9.1.1 ESMF_Method
9.2 Flags
9.2.1 ESMF_AllocFlag
9.2.2 ESMF_BlockingFlag
9.2.3 ESMF_CommFlag
9.2.4 ESMF_ContextFlag
9.2.5 ESMF_CopyFlag
9.2.6 ESMF_DefaultFlag
9.2.7 ESMF_DecompFlag
9.2.8 ESMF_IndexFlag
9.2.9 ESMF_NeededFlag
9.2.10 ESMF_ReadyFlag
9.2.11 ESMF_ReduceFlag
9.2.12 ESMF_HaloStartRegionFlag
9.2.13 ESMF_RegionFlag
9.2.14 ESMF_ReqForRestartFlag
9.2.15 ESMF_Status
9.2.16 ESMF_ValidFlag
9.3 Parameters
9.3.1 ESMF_TypeKind
9.3.2 Fortran Kinds
9.3.3 ESMF Version
9.3.4 ESMF_GeomType
10 Overall Design and Implementation Notes
2 Superstructure
11 Overview of Superstructure
11.1 Superstructure Classes
11.2 Hierarchical Creation of Components
11.3 Sequential and Concurrent Execution of Components
11.4 Intra-Component Communication
11.5 Data Distribution and Scoping in Components
11.6 Performance
11.7 Object Model
12 Application Driver and Required ESMF Methods
12.1 Description
12.2 Application Driver and Required ESMF Methods Options
12.2.1 ESMF_TerminationFlag
12.3 Use and Examples
12.4 Required ESMF Methods
12.4.1 ESMF_Initialize - Initialize ESMF
12.4.2 ESMF_Finalize - Clean up and close ESMF
12.4.3 User-Code SetServices Method
12.4.4 User-Code Initialize, Run, and Finalize Methods
12.4.5 User-Code SetVM Method
13 GridComp Class
13.1 Description
13.2 GridComp Options
13.2.1 ESMF_GridCompType
13.3 Use and Examples
13.3.1 Implementing a User-Code SetServices Routine
13.3.2 Implementing a User-Code Initialize Routine
13.3.3 Implementing a User-Code Run Routine
13.3.4 Implementing a User-Code Finalize Routine
13.3.5 Implementing a User-Code SetVM Routine
13.3.6 Setting and Getting the Internal State
13.4 Restrictions and Future Work
13.5 Class API
13.5.1 ESMF_GridCompCreate - Create a Gridded Component
13.5.2 ESMF_GridCompDestroy - Release resources for a GridComp
13.5.3 ESMF_GridCompFinalize - Call the GridComp's finalize routine
13.5.4 ESMF_GridCompGet - Query a GridComp for information
13.5.5 ESMF_GridCompGetInternalState - Get private data block pointer
13.5.6 ESMF_GridCompInitialize - Call the GridComp's initialize routine
13.5.7 ESMF_GridCompIsPetLocal - Inquire if this component is to execute on the calling PET.
13.5.8 ESMF_GridCompPrint - Print the contents of a GridComp
13.5.9 ESMF_GridCompReadRestart - Call the GridComp's read restart routine
13.5.10 ESMF_GridCompRun - Call the GridComp's run routine
13.5.11 ESMF_GridCompSet - Set or reset information about the GridComp
13.5.12 ESMF_GridCompSetEntryPoint - Set user routine as entry point for standard Component method
13.5.13 ESMF_GridCompSetInternalState - Set private data block pointer
13.5.14 ESMF_GridCompSetServices - Call user routine to register GridComp methods
13.5.15 ESMF_GridCompSetServices - Call user routine, located in shared object, to register GridComp methods
13.5.16 ESMF_GridCompSetVM - Call user routine to set GridComp VM properies
13.5.17 ESMF_GridCompSetVM - Call user routine, located in shared object, to set GridComp VM properies
13.5.18 ESMF_GridCompSetVMMaxPEs - Set VM for Gridded Component to associate max PEs with PETs.
13.5.19 ESMF_GridCompSetVMMaxThreads - Set VM for Gridded Component with multi-threaded PETs.
13.5.20 ESMF_GridCompSetVMMinThreads - Set VM for Gridded Component with reduced threading level.
13.5.21 ESMF_GridCompValidate - Check validity of a GridComp
13.5.22 ESMF_GridCompWait - Wait for a GridComp to return
13.5.23 ESMF_GridCompWriteRestart - Call the GridComp's write restart routine
14 CplComp Class
14.1 Description
14.2 Use and Examples
14.2.1 Implementing a User-Code SetServices Routine
14.2.2 Implementing a User-Code Initialize Routine
14.2.3 Implementing a User-Code Run Routine
14.2.4 Implementing a User-Code Finalize Routine
14.2.5 Implementing a User-Code SetVM Routine
14.3 Restrictions and Future Work
14.4 Class API
14.4.1 ESMF_CplCompCreate - Create a Coupler Component
14.4.2 ESMF_CplCompDestroy - Release resources for a CplComp
14.4.3 ESMF_CplCompFinalize - Call the CplComp's finalize routine
14.4.4 ESMF_CplCompGet - Query a CplComp for information
14.4.5 ESMF_CplCompGetInternalState - Get private data block pointer
14.4.6 ESMF_CplCompInitialize - Call the CplComp's initialize routine
14.4.7 ESMF_CplCompIsPetLocal - Inquire if this component is to execute on the calling PET.
14.4.8 ESMF_CplCompPrint - Print the contents of a CplComp
14.4.9 ESMF_CplCompReadRestart - Call the CplComp's read restart routine
14.4.10 ESMF_CplCompRun - Call the CplComp's run routine
14.4.11 ESMF_CplCompSet - Set or reset information about the CplComp
14.4.12 ESMF_CplCompSetEntryPoint - Set user routine as entry point for standard Component method
14.4.13 ESMF_CplCompSetInternalState - Set private data block pointer
14.4.14 ESMF_CplCompSetServices - Call user routine to register CplComp methods
14.4.15 ESMF_CplCompSetServices - Call user routine, located in shared object, to register CplComp methods
14.4.16 ESMF_CplCompSetVM - Call user routine to set CplComp VM properies
14.4.17 ESMF_CplCompSetVM - Set CplComp VM properties in routine located in shared object
14.4.18 ESMF_CplCompSetVMMaxPEs - Set VM for Coupler Component to associate max PEs with PETs.
14.4.19 ESMF_CplCompSetVMMaxThreads - Set VM for Gridded Component with multi-threaded PETs.
14.4.20 ESMF_CplCompSetVMMinThreads - Set VM for Coupler Component with reduced threading level.
14.4.21 ESMF_CplCompValidate - Ensure the CplComp is internally consistent
14.4.22 ESMF_CplCompWait - Wait for a CplComp to return
14.4.23 ESMF_CplCompWriteRestart - Call the CplComp's write restart routine
15 State Class
15.1 Description
15.2 State Options
15.2.1 ESMF_StateItemType
15.2.2 ESMF_StateType
15.3 Use and Examples
15.3.1 Empty State Create
15.3.2 Adding Items to a State
15.3.3 Adding Placeholders to a State
15.3.4 Marking an Item Needed
15.3.5 Creating a Needed Item
15.3.6 Initialization and SetServices Routines
15.3.7 Creating Components on subsets of the current PET list
15.3.8 Invoking Components on a subset of the Parent PETs
15.3.9 Using State Reconcile
15.3.10 State Read/Write from/to a NetCDF file
15.3.11 ESMF Initialization and Empty State Create
15.3.12 Reading Arrays from a NetCDF file and Adding to a State
15.3.13 Printing Array data from a State
15.3.14 Writing Array data within a State to a NetCDF file
15.3.15 Destroying a State and its constituent Arrays
15.4 Restrictions and Future Work
15.5 Design and Implementation Notes
15.6 Object Model
15.7 Class API
15.7.1 ESMF_StateAdd - Add a single item to a State
15.7.2 ESMF_StateAdd - Add a list of items to a State
15.7.3 ESMF_StateCreate - Create a new State
15.7.4 ESMF_StateDestroy - Release resources for a State
15.7.5 ESMF_StateGet - Get information about a State
15.7.6 ESMF_StateGet - Retrieve an item from a State
15.7.7 ESMF_StateGet - Get information about an item in a State
15.7.8 ESMF_StateGetNeeded - Query whether a data item is needed
15.7.9 ESMF_StateIsNeeded - Return logical true if data item needed
15.7.10 ESMF_StatePrint - Print the internal data for a State
15.7.11 ESMF_StateRead - Read data items from a file into a State
15.7.12 ESMF_StateWrite - Write items from a State to file
15.7.13 ESMF_StateReconcile - Reconcile State data across all PETs in a VM
15.7.14 ESMF_StateSetNeeded - Set if a data item is needed
15.7.15 ESMF_StateValidate - Check validity of a State
3 Infrastructure: Fields and Grids
16 Overview of Infrastructure Data Handling
16.1 Infrastructure Data Classes
16.2 Design and Implementation Notes
17 FieldBundle Class
17.1 Description
17.2 FieldBundle Options
17.2.1 ESMF_PackFlag
17.3 Use and Examples
17.3.1 FieldBundle Creation
17.3.2 Accessing FieldBundle Data
17.3.3 FieldBundle Deletion
17.3.4 Redistribute data from source FieldBundle to destination FieldBundle
17.3.5 Perform Sparse Matrix Multiplication from source FieldBundle to destination FieldBundle
17.3.6 Perform FieldBundle halo update
17.4 Restrictions and Future Work
17.5 Design and Implementation Notes
17.6 Class API: Basic FieldBundle Methods
17.6.1 ESMF_FieldBundleAdd - Add a Field to a FieldBundle
17.6.2 ESMF_FieldBundleAdd - Add a list of Fields to a FieldBundle
17.6.3 ESMF_FieldBundleCreate - Create a FieldBundle from existing Fields
17.6.4 ESMF_FieldBundleCreate - Create a FieldBundle with no Fields no Grid
17.6.5 ESMF_FieldBundleCreate - Create a FieldBundle with no Fields, but a Grid
17.6.6 ESMF_FieldBundleCreate - Create a FieldBundle with no Fields, but a Mesh
17.6.7 ESMF_FieldBundleCreate - Create a FieldBundle with no Fields, but a LocStream
17.6.8 ESMF_FieldBundleDestroy - Free all resources associated with a FieldBundle
17.6.9 ESMF_FieldBundleGet - Return information about a FieldBundle
17.6.10 ESMF_FieldBundleGet - Retrieve a Field by name
17.6.11 ESMF_FieldBundleGet - Retrieve a Field by index number
17.6.12 ESMF_FieldBundleGet - Return all Field names in a FieldBundle
17.6.13 ESMF_FieldBundlePrint - Print information about a FieldBundle
17.6.14 ESMF_FieldBundleSet - Associate a Grid with an empty FieldBundle
17.6.15 ESMF_FieldBundleSet - Associate a Mesh with an empty FieldBundle
17.6.16 ESMF_FieldBundleSet - Associate a LocStream with an empty FieldBundle
17.6.17 ESMF_FieldBundleValidate - Check validity of a FieldBundle
17.7 Class API: FieldBundle Communications
17.7.1 ESMF_FieldBundleHalo - Execute an FieldBundle halo operation
17.7.2 ESMF_FieldBundleHaloRelease - Release resources associated with FieldBundle
17.7.3 ESMF_FieldBundleHaloStore - Precompute an FieldBundle halo operation
17.7.4 ESMF_FieldBundleRedist - Execute an FieldBundle redistribution
17.7.5 ESMF_FieldBundleRedistRelease - Release resources associated with FieldBundle
17.7.6 ESMF_FieldBundleRedistStore - Precompute FieldBundle redistribution
17.7.7 ESMF_FieldBundleRedistStore - Precompute FieldBundle redistribution with local factor argument
17.7.8 ESMF_FieldBundleRegrid - Execute an FieldBundle Regrid operation
17.7.9 ESMF_FieldBundleRegridRelease - Release resources associated with FieldBundle
17.7.10 ESMF_FieldBundleRegridStore - Precompute an FieldBundle Regrid operation
17.7.11 ESMF_FieldBundleSMM - Execute an FieldBundle sparse matrix multiplication
17.7.12 ESMF_FieldBundleSMMRelease - Release resources associated with FieldBundle
17.7.13 ESMF_FieldBundleSMMStore - Precompute FieldBundle sparse matrix multiplication
17.7.14 ESMF_FieldBundleSMMStore - Precompute FieldBundle sparse matrix multiplication with local factor argument
18 Field Class
18.1 Description
18.2 Use and Examples
18.2.1 Field Creation and Destruction
18.2.2 Get Fortran data pointer, bounds, and counts information from a Field
18.2.3 Get Grid and Array and other information from a Field
18.2.4 Create Field with Grid and Arrayspec
18.2.5 Create Field with Grid and Array
18.2.6 Create an empty Field and finish it with FieldSetCommit
18.2.7 Create 7D Field with 5D Grid and 2D ungridded bounds from Fortran data array
18.2.8 Create 2D Field with 2D Grid and Fortran data array
18.2.9 Create 2D Field with 2D Grid and Fortran data pointer
18.2.10 Create 3D Field with 2D Grid and 3D Fortran data array
18.2.11 Create 3D Field with 2D Grid and 3D Fortran data array with gridToFieldMap
18.2.12 Create 3D Field with 2D Grid and 3D Fortran data array with halos
18.2.13 Create a Field from a LocStream
18.2.14 Create a Field from a Mesh
18.2.15 Create a Field from a Mesh and an Array
18.2.16 Create a Field from a Mesh and an ArraySpec with optional features
18.2.17 Field with replicated dimension
18.2.18 Field on arbitrarily distributed Grid
18.2.19 Field on arbitrarily distributed Grid with replicated dimension and ungridded bounds
18.2.20 Field Regrid
18.2.21 Creating a Regrid Operator from two Fields
18.2.22 Applying the Regrid Operator to a pair of Fields
18.2.23 Release a Regrid Operator
18.2.24 Creating a Regrid Operator Using Masks
18.2.25 Regrid Troubleshooting Guide
18.2.26 Field Regrid Example: Mesh to Mesh
18.2.27 Gather Field data onto root PET
18.2.28 Scatter Field data from root PET onto its set of joint PETs
18.2.29 Redistribute data from source Field to destination Field
18.2.30 Field redistribution as a form of scattering on arbitrarily distributed structures
18.2.31 Sparse matrix multiplication from source Field to destination Field
18.2.32 Field Halo solving a domain decomposed heat transfer problem
18.3 Restrictions and Future Work
18.4 Design and Implementation Notes
18.5 Class API
18.5.1 ESMF_FieldCreateEmpty - Create an empty Field (no Grid)
18.5.2 ESMF_FieldDestroy - Free all resources associated with a Field
18.5.3 ESMF_FieldCreate - Create a Field from Grid and ArraySpec
18.5.4 ESMF_FieldCreate - Create a Field from Grid and Array
18.5.5 ESMF_FieldCreate - Create a Field from Grid and Fortran array
18.5.6 ESMF_FieldCreate - Create a Field from Grid and Fortran array pointer
18.5.7 ESMF_FieldCreate - Create a Field from LocStream and ArraySpec
18.5.8 ESMF_FieldCreate - Create a Field from LocStream and Array
18.5.9 ESMF_FieldCreate - Create a Field from LocStream and Fortran array
18.5.10 ESMF_FieldCreate - Create a Field from LocStream and Fortran array pointer
18.5.11 ESMF_FieldCreate - Create a Field from Mesh and ArraySpec
18.5.12 ESMF_FieldCreate - Create a Field from Mesh and Array
18.5.13 ESMF_FieldCreate - Create a Field from Mesh and Fortran array
18.5.14 ESMF_FieldCreate - Create a Field from Mesh and Fortran array pointer
18.5.15 ESMF_FieldGet - Return info associated with a Field
18.5.16 ESMF_FieldGet - Get Fortran data pointer from a Field
18.5.17 ESMF_FieldGetBounds - Get Field data bounds
18.5.18 ESMF_FieldGet - Get precomputed Fortran data array bounds
18.5.19 ESMF_FieldGet - Get precomputed Fortran data array bounds
18.5.20 ESMF_FieldGet - Get precomputed Fortran data array bounds
18.5.21 ESMF_FieldPrint - Print the contents of a Field
18.5.22 ESMF_FieldSetCommit - Finishes creating Field from Grid started with FieldCreateEmpty
18.5.23 ESMF_FieldSetCommit - Finishes creating Field from Grid started with FieldCreateEmpty
18.5.24 ESMF_FieldSetCommit - Finishes creating Field from LocStream started with FieldCreateEmpty
18.5.25 ESMF_FieldSetCommit - Finishes creating Field from LocStream started with FieldCreateEmpty
18.5.26 ESMF_FieldSetCommit - Finishes creating Field from Mesh started with FieldCreateEmpty
18.5.27 ESMF_FieldSetCommit - Finishes creating Field from Mesh started with FieldCreateEmpty
18.5.28 ESMF_FieldValidate - Check validity of a Field
18.6 Class API: Field Communications
18.6.1 ESMF_FieldGather - Gather a Fortran array from an ESMF_Field
18.6.2 ESMF_FieldHalo - Execute an FieldHalo operation
18.6.3 ESMF_FieldHaloRelease - Release resources associated with Field halo operation
18.6.4 ESMF_FieldHaloStore - Store an FieldHalo operation
18.6.5 ESMF_FieldRedist - Execute an Field redistribution
18.6.6 ESMF_FieldRedistRelease - Release resources associated with Field redistribution
18.6.7 ESMF_FieldRedistStore - Precompute Field redistribution with local factor argument
18.6.8 ESMF_FieldRedistStore - Precompute Field redistribution without local factor argument
18.6.9 ESMF_FieldRegrid - Apply the regrid operator
18.6.10 ESMF_FieldRegridRelease - Free resources used by regrid object
18.6.11 ESMF_FieldRegridStore - Store regrid and return RouteHandle and weights
18.6.12 ESMF_FieldScatter - Scatter a Fortran array across the ESMF_Field
18.6.13 ESMF_FieldSMM - Execute an Field sparse matrix multiplication
18.6.14 ESMF_FieldSMMRelease - Release resources associated with Field
18.6.15 ESMF_FieldSMMStore - Precompute Field sparse matrix multiplication
18.6.16 ESMF_FieldSMMStore - Precompute Field sparse matrix multiplication with local factor argument
19 ArrayBundle Class
19.1 Description
19.2 Use and Examples
19.2.1 ArrayBundle creation from a list of Arrays
19.2.2 Access Arrays inside the ArrayBundle
19.2.3 Destroy an ArrayBundle and its constituents
19.2.4 Communication - Halo
19.3 Restrictions and Future Work
19.4 Design and Implementation Notes
19.5 Class API
19.5.1 ESMF_ArrayBundleCreate - Create an ArrayBundle from a list of Arrays
19.5.2 ESMF_ArrayBundleDestroy - Destroy ArrayBundle object
19.5.3 ESMF_ArrayBundleGet - Get list of Arrays out of an ArrayBundle
19.5.4 ESMF_ArrayBundleHalo - Execute an ArrayBundle halo operation
19.5.5 ESMF_ArrayBundleHaloRelease - Release resources associated with ArrayBundle halo operation
19.5.6 ESMF_ArrayBundleHaloStore - Precompute an ArrayBundle halo operation
19.5.7 ESMF_ArrayBundlePrint - Print ArrayBundle internals
19.5.8 ESMF_ArrayBundleRedist - Execute an ArrayBundle redistribution
19.5.9 ESMF_ArrayBundleRedistRelease - Release resources associated with ArrayBundle redistribution
19.5.10 ESMF_ArrayBundleRedistStore - Precompute an ArrayBundle redistribution with local factor argument
19.5.11 ESMF_ArrayBundleRedistStore - Precompute an ArrayBundle redistribution without local factor argument
19.5.12 ESMF_ArrayBundleSMM - Execute an ArrayBundle sparse matrix multiplication
19.5.13 ESMF_ArrayBundleSMMRelease - Release resources associated with ArrayBundle sparse matrix multiplication
19.5.14 ESMF_ArrayBundleSMMStore - Precompute an ArrayBundle sparse matrix multiplication with local factors
19.5.15 ESMF_ArrayBundleSMMStore - Precompute an ArrayBundle sparse matrix multiplication without local factors
20 Array Class
20.1 Description
20.2 Use and Examples
20.2.1 Array from native Fortran array with 1 DE per PET
20.2.2 Array from native Fortran array with extra elements for halo or padding
20.2.3 Array from ESMF_LocalArray
20.2.4 Array creation with automatic memory allocation
20.2.5 Native language memory access
20.2.6 Regions and default bounds
20.2.7 Array bounds
20.2.8 Computational region and extra elements for halo or padding
20.2.9 1D and 3D Arrays
20.2.10 Working with Arrays of different rank
20.2.11 Array and DistGrid rank - 2D+1 Arrays
20.2.12 Arrays with replicated dimensions
20.2.13 Communication - Scatter and Gather
20.2.14 Communication - Halo
20.2.15 Communication - Redist
20.2.16 Communication - SparseMatMul
20.2.17 Communication - Scatter and Gather, revisited
20.2.18 Non-blocking Communications
20.3 Restrictions and Future Work
20.4 Design and Implementation Notes
20.5 Class API
20.5.1 ESMF_ArrayCreate - Create Array object from Fortran array pointer
20.5.2 ESMF_ArrayCreate - Create Array object from Fortran array
20.5.3 ESMF_ArrayCreate - Create Array object from a list of LocalArray objects
20.5.4 ESMF_ArrayCreate - Create Array object from specification and allocate memory
20.5.5 ESMF_ArrayCreate - Create Array object as copy of existing Array object
20.5.6 ESMF_ArrayDestroy - Destroy Array object
20.5.7 ESMF_ArrayGather - Gather a Fortran array from an ESMF_Array
20.5.8 ESMF_ArrayGet - Access to Array internals
20.5.9 ESMF_ArrayGet - Access to Array internals per dim per local DE
20.5.10 ESMF_ArrayGet - Access to PET-local Array patch via Fortran array pointer
20.5.11 ESMF_ArrayGet - Access to PET-local Array patch via LocalArray object.
20.5.12 ESMF_ArrayHalo - Execute an Array halo operation
20.5.13 ESMF_ArrayHaloRelease - Release resources associated with Array halo operation
20.5.14 ESMF_ArrayHaloStore - Precompute an Array halo operation
20.5.15 ESMF_ArrayPrint - Print Array internals
20.5.16 ESMF_ArrayRedist - Execute an Array redistribution
20.5.17 ESMF_ArrayRedistRelease - Release resources associated with Array redistribution
20.5.18 ESMF_ArrayRedistStore - Precompute Array redistribution with local factor argument
20.5.19 ESMF_ArrayRedistStore - Precompute Array redistribution without local factor argument
20.5.20 ESMF_ArrayScatter - Scatter a Fortran array across the ESMF_Array
20.5.21 ESMF_ArraySet - Set Array properties
20.5.22 ESMF_ArraySMM - Execute an Array sparse matrix multiplication
20.5.23 ESMF_ArraySMMRelease - Release resources associated with Array sparse matrix multiplication
20.5.24 ESMF_ArraySMMStore - Precompute Array sparse matrix multiplication with local factors
20.5.25 ESMF_ArraySMMStore - Precompute Array sparse matrix multiplication without local factors
20.5.26 ESMF_ArrayValidate - Validate Array internals
21 LocalArray Class
21.1 Description
21.2 Restrictions and Future Work
21.3 Class API
21.3.1 ESMF_LocalArrayCreate - Create a LocalArray explicitly specifying TKR arguments.
21.3.2 ESMF_LocalArrayCreate - Create a LocalArray specifying an ArraySpec
21.3.3 ESMF_LocalArrayCreate - Create a LocalArray from existing one
21.3.4 ESMF_LocalArrayCreate - Create a LocalArray from a Fortran pointer (associated or unassociated)
21.3.5 ESMF_LocalArrayDestroy - Destroy a LocalArray object
21.3.6 ESMF_LocalArrayGet - Return LocalArray information.
21.3.7 ESMF_LocalArrayGet - Get access to data in LocalArray object
22 ArraySpec Class
22.1 Description
22.2 Use and Examples
22.2.1 Setting ArraySpec Values
22.2.2 Getting ArraySpec Values
22.3 Restrictions and Future Work
22.4 Design and Implementation Notes
22.5 Class API
22.5.1 ESMF_ArraySpecGet - Get values from an ArraySpec
22.5.2 ESMF_ArraySpecSet - Set values for an ArraySpec
22.5.3 ESMF_ArraySpecValidate - Validate ArraySpec internals
22.5.4 ESMF_ArraySpecPrint - Print information of ArraySpec
23 Grid Class
23.1 Description
23.1.1 Grid Representation in ESMF
23.1.2 Supported Grids
23.1.3 Grid Topologies and Periodicity
23.1.4 Grid Distribution
23.1.5 Grid Coordinates
23.1.6 Coordinate Specification and Generation
23.1.7 Staggering
23.1.8 Options for Building Grids
23.2 Use and Examples
23.2.1 Shortcut Creation Method for Single-Tile Grids
23.2.2 Creating a 2D Regularly Distributed Rectilinear Grid With Uniformly Spaced Coordinates
23.2.3 Creating a 2D Irregularly Distributed Rectilinear Grid With Uniformly Spaced Coordinates
23.2.4 Creating a 2D Irregularly Distributed Grid With Curvilinear Coordinates
23.2.5 Creating an Irregularly Distributed Rectilinear Grid with a Non-Distributed Vertical Dimension
23.2.6 Creating an Arbitrarily Distributed Rectilinear Grid with a Non-Distributed Vertical Dimension
23.2.7 Creating an Empty Grid in a Parent Component for Completion in a Child Component
23.2.8 Grid Stagger Locations
23.2.9 Associating Coordinates with Stagger Locations
23.2.10 Specifying the Relationship of Coordinate Arrays to Index Space Dimensions
23.2.11 Accessing Coordinates
23.2.12 Associating Items with Stagger Locations
23.2.13 Accessing Items
23.2.14 Grid Regions and Bounds
23.2.15 Getting Grid Coordinate Bounds
23.2.16 Getting Grid Stagger Location Bounds
23.2.17 Getting Grid Stagger Location Information
23.2.18 Creating an Array at a Stagger Location
23.2.19 Creating More Complex Grids Using DistGrid
23.2.20 Specifying Custom Stagger Locations
23.2.21 Specifying Custom Stagger Padding
23.2.22 Creating a 2D Regularly Distributed Rectilinear Grid from File
23.3 Restrictions and Future Work
23.4 Design and Implementation Notes
23.4.1 Grid Topology
23.5 Grid Options
23.5.1 ESMF_GridConn
23.5.2 ESMF_GridStatus
23.5.3 ESMF_GridItem
23.5.4 ESMF_StaggerLoc
23.6 Class API: General Grid Methods
23.6.1 ESMF_GridAddCoord - Allocate coordinate arrays but don't set their values
23.6.2 ESMF_GridAddItem - Allocate item array but don't set their values
23.6.3 ESMF_GridCreate - Create a Grid from a DistGrid
23.6.4 ESMF_GridCreate - Create a Arbitrary Grid from a DistGrid
23.6.5 ESMF_GridCreate - Create a Grid from a file
23.6.6 ESMF_GridCreateEmpty - Create a Grid that has no contents
23.6.7 ESMF_GridCreateShapeTile - Create a Grid with an irregular distribution
23.6.8 ESMF_GridCreateShapeTile - Create a Grid with a regular distribution
23.6.9 ESMF_GridCreateShapeTile - Create a Grid with an arbitrary distribution
23.6.10 ESMF_GridDestroy - Free all resources associated with a Grid
23.6.11 ESMF_GridGet - Get information about a Grid
23.6.12 ESMF_GridGet - Get information about a particular DE in a stagger location in a Grid
23.6.13 ESMF_GridGet - Get information about a particular stagger location in a Grid
23.6.14 ESMF_GridGetCoord - Get Grid coordinate bounds and a Fortran pointer to coordinate data
23.6.15 ESMF_GridGetCoord - Get Grid coordinate bounds
23.6.16 ESMF_GridGetCoord - Get coordinates and put in an ESMF Array
23.6.17 ESMF_GridGetCoord - Get coordinates from a specific index location
23.6.18 ESMF_GridGetCoord - Get coordinates from a specific index location
23.6.19 ESMF_GridGetItem - Get Grid coordinate bounds and an F90 pointer to coordinate data
23.6.20 ESMF_GridGetItem - Get Grid item bounds
23.6.21 ESMF_GridGetItem - Get item and put into an ESMF Array
23.6.22 ESMF_GridGetStatus - Return the status of the Grid
23.6.23 ESMF_GridMatch - Check if two Grid objects match
23.6.24 ESMF_GridSetCoord - Set coordinates using ESMF Arrays
23.6.25 ESMF_GridSetCommitShapeTile - Set and complete a Grid with an irregular distribution
23.6.26 ESMF_GridSetCommitShapeTile - Set and complete a Grid with a regular distribution
23.6.27 ESMF_GridSetCommitShapeTile - Create a Grid with an arbitrary distribution
23.6.28 ESMF_GridSetItem - Set item using ESMF Array
23.6.29 ESMF_GridValidate - Validate Grid internals
23.7 Class API: StaggerLoc Methods
23.7.1 ESMF_StaggerLocSet - Set a StaggerLoc to a particular position in the cell
23.7.2 ESMF_StaggerLocSet - Set one dimension of a StaggerLoc to a particular position
23.7.3 ESMF_StaggerLocString - Return a StaggerLoc as a string
23.7.4 ESMF_StaggerLocPrint - Print information of a ESMF_StaggerLoc object
24 LocStream Class
24.1 Description
24.1.1 How is a LocStream different than a Grid?
24.1.2 How is a LocStream different than a Mesh?
24.2 Use and Examples
24.2.1 Creating a LocStream Employing User Allocated Memory
24.2.2 Creating a LocStream Employing Internally Allocated Memory
24.2.3 Creating a LocStream from a Background Grid
24.3 Class API
24.3.1 ESMF_LocStreamAddKey - Add a key Array and allocate the internal memory
24.3.2 ESMF_LocStreamAddKey - Add a key ESMF Array
24.3.3 ESMF_LocStreamAddKey - Add a key Array created around user memory
24.3.4 ESMF_LocStreamAddKey - Add a key Array created around user memory
24.3.5 ESMF_LocStreamAddKey - Add a key Array created around user memory
24.3.6 ESMF_LocStreamCreate - Create a new LocStream by projecting onto a Grid
24.3.7 ESMF_LocStreamCreate - Create a new LocStream by projecting onto a Mesh
24.3.8 ESMF_LocStreamCreate - Create a new location stream from a distgrid
24.3.9 ESMF_LocStreamCreate - Create a new location stream from an irregular dist.
24.3.10 ESMF_LocStreamCreate - Create a new location stream from a local count
24.3.11 ESMF_LocStreamCreate - Create a new location stream using a regular distribution.
24.3.12 ESMF_LocStreamDestroy - Destroy a LocStream
24.3.13 ESMF_LocStreamGet - Return info associated with a LocStream
24.3.14 ESMF_LocStreamGetKey - Get ESMF Array associated with key
24.3.15 ESMF_LocStreamGetKey - Get the bounds of a key Array
24.3.16 ESMF_LocStreamGetKey - Get Info associated with key
24.3.17 ESMF_LocStreamGetKey - Get pointer to key values
24.3.18 ESMF_LocStreamGetKey - Get pointer to key values
24.3.19 ESMF_LocStreamGetKey - Get pointer to key values
24.3.20 ESMF_LocStreamGet - Get the local bounds of a location stream
24.3.21 ESMF_LocStreamPrint - Print the contents of a LocStream
24.3.22 ESMF_LocStreamValidate - Check validity of a LocStream
25 Mesh Class
25.1 Description
25.1.1 Mesh Representation in ESMF
25.1.2 Supported Meshes
25.2 Use and Examples
25.2.1 Mesh Creation
25.2.2 Example: Creating a Small Single PET Mesh in one Step
25.2.3 Example: Creating a Small Single PET Mesh in Three Steps
25.2.4 Example: Creating a Small Mesh on 4 PETs in One Step
25.2.5 Removing Mesh Memory
25.3 Mesh Options
25.3.1 ESMF_MeshElemType
25.4 Class API
25.4.1 ESMF_MeshAddElements - Add elements to a Mesh
25.4.2 ESMF_MeshAddNodes - Add nodes to a Mesh
25.4.3 ESMF_MeshCreate - Create a Mesh as a 3 step process
25.4.4 ESMF_MeshCreate - Create a Mesh all at once
25.4.5 ESMF_MeshDestroy - Destroy a Mesh
25.4.6 ESMF_MeshFreeMemory - Remove a Mesh and its memory
25.4.7 ESMF_MeshGet - Get information from a Mesh
26 DistGrid Class
26.1 Description
26.2 Use and Examples
26.2.1 Single patch DistGrid with regular decomposition
26.2.2 DistGrid and DELayout
26.2.3 Single patch DistGrid with decomposition by DE blocks
26.2.4 Single patch DistGrid with periodic boundaries
26.2.5 2D patchwork DistGrid with regular decomposition
26.2.6 Arbitrary DistGrids with user-supplied sequence indices
26.3 Restrictions and Future Work
26.4 Design and Implementation Notes
26.5 Class API
26.5.1 ESMF_DistGridCreate - Create DistGrid object with regular decomposition
26.5.2 ESMF_DistGridCreate - Create DistGrid object with DE blocks
26.5.3 ESMF_DistGridCreate - Create DistGrid object from patchwork with regular decomposition
26.5.4 ESMF_DistGridCreate - Create 1D DistGrid object from user's arbitray index list
26.5.5 ESMF_DistGridCreate - Create (1+n)D DistGrid object from user's arbitray index list and minIndex/maxIndex
26.5.6 ESMF_DistGridDestroy - Destroy DistGrid object
26.5.7 ESMF_DistGridGet - Get information about DistGrid object
26.5.8 ESMF_DistGridGet - Get DE local information about DistGrid
26.5.9 ESMF_DistGridGet - Get DE local information for dimension about DistGrid
26.5.10 ESMF_DistGridPrint - Print DistGrid internals
26.5.11 ESMF_DistGridMatch - Check if two DistGrid objects match
26.5.12 ESMF_DistGridValidate - Validate DistGrid internals
26.5.13 ESMF_DistGridConnection - Construct a DistGrid connection element
27 IO Class
27.1 Description
27.2 I/O architecture
27.3 Data models
27.4 ESMF metadata conventions
27.5 Data formats
27.6 Parallel I/O
27.7 Synchronous and Asynchronous IO
27.8 Location
27.9 Scope
27.10 Restrictions and Future Work
27.11 Design and Implementation Notes
28 IOSpec Class
28.1 Description
28.2 Use and Examples
28.3 Restrictions and Future Work
28.4 Class API
28.4.1 ESMF_IOSpecGet - Get values in an IOSpec
28.4.2 ESMF_IOSpecSet - Set values in an IOSpec
29 Overview of Distributed Data Methods
29.1 Higher Level Functions
29.2 Lower Level Functions
29.3 Common Options
29.4 Design and Implementation Notes
29.5 Object Model
29.6 File Based Regrid Weight Applications
29.6.1 Structured Grid to Structured Grid
29.6.2 Cubed Sphere to Structured Grid
4 Infrastructure: Utilities
30 Overview of Infrastructure Utility Classes
31 Attribute Class
31.1 Description
31.1.1 Attribute Representation in ESMF
31.1.2 Attribute Hierarchies
31.1.3 Attribute Packages
31.2 Object Model
31.3 Use and Examples
31.3.1 Example: Basic Attribute usage
31.3.2 Example: Intermediate Attribute usage: Attribute Packages
31.3.3 Example: Advanced Attribute usage: Attributes in a Distributed Environment
31.3.4 Example: Reading an XML file-based ESG Attribute Package for a Gridded Component
31.3.5 Example: Reading an XML file-based CF Attribute Package for a Field
31.3.6 Example: Reading an XML file-based GridSpec Attribute Package for a Grid
31.3.7 Example: Read and validate an XML file-based set of user-defined Attributes for a Coupler Component
31.4 Restrictions and Future Work
31.4.1 Attributes
31.4.2 Attribute Hierarchies
31.4.3 Attribute Packages
31.5 Design and Implementation Notes
31.5.1 Attribute Memory Deallocation
31.5.2 Using ESMF_AttributeGet() to retrieve Attribute lists
31.5.3 Using Attribute package nesting capabilites
31.5.4 Attributes in a Distributed Environment
31.5.5 Writing Attribute packages to file
31.5.6 Copying Attribute hierarchies
31.5.7 Reading/Writing Attributes from XML files
31.6 Class API
31.6.1 ESMF_AttributeAdd - Add an ESMF standard Attribute package
31.6.2 ESMF_AttributeAdd - Add a custom Attribute package or modify an existing Attribute package
31.6.3 ESMF_AttributeCopy - Copy an Attribute hierarchy
31.6.4 ESMF_AttributeGet - Get an Attribute
31.6.5 ESMF_AttributeGet - Get an Attribute
31.6.6 ESMF_AttributeGet - Get the Attribute count
31.6.7 ESMF_AttributeGet - Get Attribute info by name
31.6.8 ESMF_AttributeGet - Get Attribute info by index number
31.6.9 ESMF_AttributeLink - Link a Component Attribute hierarchy to that of a Component or State
31.6.10 ESMF_AttributeLink - Link a State Attribute hierarchy with the
31.6.11 ESMF_AttributeLink - Link a FieldBundle and Field Attribute hierarchy
31.6.12 ESMF_AttributeLink - Link a Field and Grid Attribute hierarchy
31.6.13 ESMF_AttributeLink - Link an ArrayBundle and Array Attribute hierarchy
31.6.14 ESMF_AttributeLinkRemove - Unlink a Component Attribute hierarchy from that of a Component or State
31.6.15 ESMF_AttributeLinkRemove - Unlink a State Attribute hierarchy with
31.6.16 ESMF_AttributeLinkRemove - Unlink a FieldBundle and Field Attribute hierarchy
31.6.17 ESMF_AttributeLinkRemove - Unlink a Field and Grid Attribute hierarchy
31.6.18 ESMF_AttributeLinkRemove - Unlink an ArrayBundle and Array Attribute hierarchy
31.6.19 ESMF_AttributeRead - Read Attributes from an XML file
31.6.20 ESMF_AttributeRemove - Remove an Attribute or Attribute package
31.6.21 ESMF_AttributeSet - Set an Attribute
31.6.22 ESMF_AttributeSet - Set an Attribute
31.6.23 ESMF_AttributeUpdate - Update an Attribute hierarchy
31.6.24 ESMF_AttributeWrite - Write an Attribute package
32 Attachable Methods
32.1 Description
32.2 Use and Examples
32.2.1 Producer Component attaches user defined method
32.2.2 Producer Component implements user defined method
32.2.3 Consumer Component executes user defined method
32.3 Restrictions and Future Work
32.4 Class API
32.4.1 ESMF_MethodAdd - Attach user method
32.4.2 ESMF_MethodAdd - Attach user method, located in shared object
32.4.3 ESMF_MethodExecute - Execute user method
32.4.4 ESMF_MethodRemove - Remove user method
33 Time Manager Utility
33.1 Time Manager Classes
33.2 Calendar
33.3 Time Instants and TimeIntervals
33.4 Clocks and Alarms
33.5 Design and Implementation Notes
33.6 Object Model
34 Calendar Class
34.1 Description
34.2 Calendar Options
34.2.1 ESMF_CalendarType
34.3 Use and Examples
34.3.1 Calendar Creation
34.3.2 Calendar Comparison
34.3.3 Time Conversion Between Calendars
34.3.4 Calendar Destruction
34.4 Restrictions and Future Work
34.5 Class API
34.5.1 ESMF_CalendarOperator(==) - Test if Calendar 1 is equal to Calendar 2
34.5.2 ESMF_CalendarOperator(==) - Test if Calendar Type 1 is equal to Calendar Type 2
34.5.3 ESMF_CalendarOperator(==) - Test if Calendar is equal to Calendar Type
34.5.4 ESMF_CalendarOperator(==) - Test if Calendar Type is equal to Calendar
34.5.5 ESMF_CalendarOperator(/=) - Test if Calendar 1 is not equal to Calendar 2
34.5.6 ESMF_CalendarOperator(/=) - Test if Calendar Type 1 is not equal to Calendar Type 2
34.5.7 ESMF_CalendarOperator(/=) - Test if Calendar is not equal to Calendar Type
34.5.8 ESMF_CalendarOperator(/=) - Test if Calendar Type is not equal to Calendar
34.5.9 ESMF_CalendarCreate - Create a new ESMF Calendar of built-in type
34.5.10 ESMF_CalendarCreate - Create a copy of an ESMF Calendar
34.5.11 ESMF_CalendarCreate - Create a new custom ESMF Calendar
34.5.12 ESMF_CalendarDestroy - Free resources associated with a Calendar
34.5.13 ESMF_CalendarGet - Get Calendar properties
34.5.14 ESMF_CalendarIsLeapYear - Determine if given year is a leap year
34.5.15 ESMF_CalendarIsLeapYear - Determine if given year is a leap year
34.5.16 ESMF_CalendarPrint - Print the contents of a Calendar
34.5.17 ESMF_CalendarSet - Set a Calendar to a built-in type
34.5.18 ESMF_CalendarSet - Set properties of a custom Calendar
34.5.19 ESMF_CalendarSetDefault - Set the default Calendar type
34.5.20 ESMF_CalendarSetDefault - Set the default Calendar
34.5.21 ESMF_CalendarValidate - Validate a Calendar's properties
35 Time Class
35.1 Description
35.2 Use and Examples
35.2.1 Time Initialization
35.2.2 Time Increment
35.2.3 Time Comparison
35.3 Restrictions and Future Work
35.4 Class API
35.4.1 ESMF_TimeOperator(+) - Increment a Time by a TimeInterval
35.4.2 ESMF_TimeOperator(-) - Decrement a Time by a TimeInterval
35.4.3 ESMF_TimeOperator(-) - Return the difference between two Times
35.4.4 ESMF_TimeOperator(==) - Test if Time 1 is equal to Time 2
35.4.5 ESMF_TimeOperator(/=) - Test if Time 1 is not equal to Time 2
35.4.6 ESMF_TimeOperator(<) - Test if Time 1 is less than Time 2
35.4.7 ESMF_TimeOperator(<=) - Test if Time 1 is less than or equal to Time 2
35.4.8 ESMF_TimeOperator(>) - Test if Time 1 is greater than Time 2
35.4.9 ESMF_TimeOperator(>=) - Test if Time 1 is greater than or equal to Time 2
35.4.10 ESMF_TimeGet - Get a Time value
35.4.11 ESMF_TimeIsLeapYear - Determine if a Time is in a leap year
35.4.12 ESMF_TimeIsSameCalendar - Compare Calendars of two Times
35.4.13 ESMF_TimePrint - Print the contents of a Time
35.4.14 ESMF_TimeSet - Initialize or set a Time
35.4.15 ESMF_TimeSyncToRealTime - Get system real time (wall clock time)
35.4.16 ESMF_TimeValidate - Validate a Time
36 TimeInterval Class
36.1 Description
36.2 Use and Examples
36.2.1 Time Interval Initialization
36.2.2 Time Interval Conversion
36.2.3 Time Interval Difference
36.2.4 Time Interval Multiplication
36.2.5 Time Interval Comparison
36.3 Restrictions and Future Work
36.4 Class API
36.4.1 ESMF_TimeIntervalOperator(+) - Add two TimeIntervals
36.4.2 ESMF_TimeIntervalOperator(-) - Subtract one TimeInterval from another
36.4.3 ESMF_TimeIntervalOperator(-) - Perform unary negation on a TimeInterval
36.4.4 ESMF_TimeIntervalOperator(/) - Divide two TimeIntervals, return double precision quotient
36.4.5 ESMF_TimeIntervalOperator(/) - Divide a TimeInterval by an integer, return TimeInterval quotient
36.4.6 ESMF_TimeIntervalFunction(MOD) - Divide two TimeIntervals, return TimeInterval remainder
36.4.7 ESMF_TimeIntervalOperator(x) - Multiply a TimeInterval by an integer
36.4.8 ESMF_TimeIntervalOperator(x) - Multiply a TimeInterval by an integer
36.4.9 ESMF_TimeIntervalOperator(==) - Test if TimeInterval 1 is equal to TimeInterval 2
36.4.10 ESMF_TimeIntervalOperator(/=) - Test if TimeInterval 1 is not equal to TimeInterval 2
36.4.11 ESMF_TimeIntervalOperator(<) - Test if TimeInterval 1 is less than TimeInterval 2
36.4.12 ESMF_TimeIntervalOperator(<=) - Test if TimeInterval 1 is less than or equal to TimeInterval 2
36.4.13 ESMF_TimeIntervalOperator(>) - Test if TimeInterval 1 is greater than TimeInterval 2
36.4.14 ESMF_TimeIntervalOperator(>=) - Test if TimeInterval 1 is greater than or equal to TimeInterval 2
36.4.15 ESMF_TimeIntervalAbsValue - Get the absolute value of a TimeInterval
36.4.16 ESMF_TimeIntervalGet - Get a TimeInterval value
36.4.17 ESMF_TimeIntervalGet - Get a TimeInterval value
36.4.18 ESMF_TimeIntervalGet - Get a TimeInterval value
36.4.19 ESMF_TimeIntervalGet - Get a TimeInterval value
36.4.20 ESMF_TimeIntervalNegAbsValue - Get the negative absolute value of a TimeInterval
36.4.21 ESMF_TimeIntervalPrint - Print the contents of a TimeInterval
36.4.22 ESMF_TimeIntervalSet - Initialize or set a TimeInterval
36.4.23 ESMF_TimeIntervalSet - Initialize or set a TimeInterval
36.4.24 ESMF_TimeIntervalSet - Initialize or set a TimeInterval
36.4.25 ESMF_TimeIntervalSet - Initialize or set a TimeInterval
36.4.26 ESMF_TimeIntervalValidate - Validate a TimeInterval
37 Clock Class
37.1 Description
37.2 Clock Options
37.2.1 ESMF_Direction
37.3 Use and Examples
37.3.1 Clock Creation
37.3.2 Clock Advance
37.3.3 Clock Examination
37.3.4 Clock Reversal
37.3.5 Clock Destruction
37.4 Restrictions and Future Work
37.5 Class API
37.5.1 ESMF_ClockOperator(==) - Test if Clock 1 is equal to Clock 2
37.5.2 ESMF_ClockOperator(/=) - Test if Clock 1 is not equal to Clock 2
37.5.3 ESMF_ClockAdvance - Advance a Clock's current time by one time step
37.5.4 ESMF_ClockCreate - Create a new ESMF Clock
37.5.5 ESMF_ClockCreate - Create a copy of an existing ESMF Clock
37.5.6 ESMF_ClockDestroy - Free all resources associated with a Clock
37.5.7 ESMF_ClockGet - Get a Clock's properties
37.5.8 ESMF_ClockGetAlarm - Get an Alarm in a Clock's Alarm list
37.5.9 ESMF_ClockGetAlarmList - Get a list of Alarms from a Clock
37.5.10 ESMF_ClockGetNextTime - Calculate a Clock's next time
37.5.11 ESMF_ClockIsDone - Based on its direction, test if the Clock has reached or exceeded its stop time or start time
37.5.12 ESMF_ClockIsReverse - Test if the Clock is in reverse mode
37.5.13 ESMF_ClockIsStopTime - Test if the Clock has reached or exceeded its stop time
37.5.14 ESMF_ClockIsStopTimeEnabled - Test if the Clock's stop time is enabled
37.5.15 ESMF_ClockPrint - Print the contents of a Clock
37.5.16 ESMF_ClockSet - Set one or more properties of a Clock
37.5.17 ESMF_ClockStopTimeDisable - Disable a Clock's stop time
37.5.18 ESMF_ClockStopTimeEnable - Enable an Clock's stop time
37.5.19 ESMF_ClockSyncToRealTime - Set Clock's current time to wall clock time
37.5.20 ESMF_ClockValidate - Validate a Clock's properties
38 Alarm Class
38.1 Description
38.2 Alarm Options
38.2.1 ESMF_AlarmListType
38.3 Use and Examples
38.3.1 Clock Initialization
38.3.2 Alarm Initialization
38.3.3 Clock Advance and Alarm Processing
38.3.4 Alarm and Clock Destruction
38.4 Restrictions and Future Work
38.5 Design and Implementation Notes
38.6 Class API
38.6.1 ESMF_AlarmOperator(==) - Test if Alarm 1 is equal to Alarm 2
38.6.2 ESMF_AlarmOperator(/=) - Test if Alarm 1 is not equal to Alarm 2
38.6.3 ESMF_AlarmCreate - Create a new ESMF Alarm
38.6.4 ESMF_AlarmCreate - Create a copy of an existing ESMF Alarm
38.6.5 ESMF_AlarmDestroy - Free all resources associated with an Alarm
38.6.6 ESMF_AlarmDisable - Disable an Alarm
38.6.7 ESMF_AlarmEnable - Enable an Alarm
38.6.8 ESMF_AlarmGet - Get Alarm properties
38.6.9 ESMF_AlarmIsEnabled - Check if Alarm is enabled
38.6.10 ESMF_AlarmIsRinging - Check if Alarm is ringing
38.6.11 ESMF_AlarmIsSticky - Check if Alarm is sticky
38.6.12 ESMF_AlarmNotSticky - Unset an Alarm's sticky flag
38.6.13 ESMF_AlarmPrint - Print out an Alarm's properties
38.6.14 ESMF_AlarmRingerOff - Turn off an Alarm
38.6.15 ESMF_AlarmRingerOn - Turn on an Alarm
38.6.16 ESMF_AlarmSet - Set Alarm properties
38.6.17 ESMF_AlarmSticky - Set an Alarm's sticky flag
38.6.18 ESMF_AlarmValidate - Validate an Alarm's properties
38.6.19 ESMF_AlarmWasPrevRinging - Check if Alarm was ringing on the previous Clock timestep
38.6.20 ESMF_AlarmWillRingNext - Check if Alarm will ring upon the next Clock timestep
39 Config Class
39.1 Description
39.1.1 Package History
39.1.2 Resource Files
39.2 Use and Examples
39.2.1 Variable Declarations
39.2.2 Creation of a Config
39.2.3 How to Retrieve a Label with a Single Value
39.2.4 How to Retrieve a Label with Multiple Values
39.2.5 How to Retrieve a Table
39.2.6 Destruction of a Config
39.3 Class API
39.3.1 ESMF_ConfigCreate - Instantiate a Config object
39.3.2 ESMF_ConfigDestroy - Destroy a Config object
39.3.3 ESMF_ConfigFindLabel - Find a label
39.3.4 ESMF_ConfigGetAttribute - Get a value
39.3.5 ESMF_ConfigGetAttribute - Get a list of values
39.3.6 ESMF_ConfigGetChar - Get a character
39.3.7 ESMF_ConfigGetDim - Get table sizes
39.3.8 ESMF_ConfigGetLen - Get the length of the line in words
39.3.9 ESMF_ConfigLoadFile - Load resource file into memory
39.3.10 ESMF_ConfigNextLine - Find next line
39.3.11 ESMF_ConfigSetAttribute - Set a value
39.3.12 ESMF_ConfigValidate - Validate a Config object
40 LogErr Class
40.1 Description
40.2 LogErr Options
40.2.1 ESMF_HaltType
40.2.2 ESMF_MsgType
40.2.3 ESMF_LogType
40.3 Use and Examples
40.3.1 Default Log
40.3.2 User Created Log
40.3.3 Get and Set
40.4 Restrictions and Future Work
40.5 Design and Implementation Notes
40.6 Object Model
40.7 Class API
40.7.1 ESMF_LogClose - Close Log file(s)
40.7.2 ESMF_LogFlush - Flushes the Log file(s)
40.7.3 ESMF_LogFoundAllocError - Check Fortran status for allocation error
40.7.4 ESMF_LogFoundDeallocError - Check Fortran status for deallocation error
40.7.5 ESMF_LogFoundError - Check ESMF return code for error
40.7.6 ESMF_LogMsgFoundAllocError - Check Fortran status for allocation
40.7.7 ESMF_LogMsgFoundDeallocError - Check Fortran status for allocation
40.7.8 ESMF_LogMsgFoundError - Check ESMF return code for error and write message
40.7.9 ESMF_LogMsgSetError - Set ESMF return code for error and write msg
40.7.10 ESMF_LogOpen - Open Log file(s)
40.7.11 ESMF_LogSet - Set Log parameters
40.7.12 ESMF_LogWrite - Write to Log file(s)
41 DELayout Class
41.1 Description
41.2 DELayout Options
41.2.1 ESMF_DePinFlag
41.3 Use and Examples
41.3.1 Default DELayout
41.3.2 DELayout with specified number of DEs
41.3.3 DELayout with computational and communication weights
41.3.4 DELayout from petMap
41.3.5 DELayout from petMap with multiple DEs per PET
41.3.6 Working with a DELayout - simple 1-to-1 DE to PET mapping
41.3.7 Working with a DELayout - general DE to PET mapping
41.3.8 Work queue dynamic load balancing
41.4 Restrictions and Future Work
41.5 Design and Implementation Notes
41.6 Class API
41.6.1 ESMF_DELayoutCreate - Create DELayout object
41.6.2 ESMF_DELayoutCreate - Create DELayout from petMap
41.6.3 ESMF_DELayoutCreate - Create DELayout with weight hints
41.6.4 ESMF_DELayoutDestroy - Destroy DELayout object
41.6.5 ESMF_DELayoutGet - Get DELayout internals
41.6.6 ESMF_DELayoutPrint - Print DELayout internals
41.6.7 ESMF_DELayoutServiceComplete - Close service window
41.6.8 ESMF_DELayoutServiceOffer - Offer service for a DE in DELayout
41.6.9 ESMF_DELayoutValidate - Validate DELayout internals
42 VM Class
42.1 Description
42.2 Use and Examples
42.2.1 Global VM
42.2.2 Getting the MPI Communicator from an VM object
42.2.3 Nesting ESMF inside a user MPI application
42.2.4 Nesting ESMF inside a user MPI application on a subset of MPI ranks
42.2.5 Send/Recv
42.2.6 Scatter and Gather
42.2.7 AllReduce and AllFullReduce
42.2.8 VM and Components
42.3 Restrictions and Future Work
42.4 Design and Implementation Notes
42.5 Class API
42.5.1 ESMF_VMAllFullReduce - Fully reduce data across VM, result on all PETs
42.5.2 ESMF_VMAllGather - Gather data across VM, result on all PETs
42.5.3 ESMF_VMAllGatherV - GatherV data across VM, result on all PETs
42.5.4 ESMF_VMAllReduce - Reduce data across VM, result on all PETs
42.5.5 ESMF_VMAllToAllV - AllToAllV communications across VM
42.5.6 ESMF_VMBarrier - VM wide barrier
42.5.7 ESMF_VMBroadcast - Broadcast data across VM
42.5.8 ESMF_VMGather - Gather data from across VM
42.5.9 ESMF_VMGatherV - GatherV data from across VM
42.5.10 ESMF_VMGet - Get VM internals
42.5.11 ESMF_VMGetGlobal - Get Global VM
42.5.12 ESMF_VMGetCurrent - Get Current VM
42.5.13 ESMF_VMGetPETLocalInfo - Get VM PET local internals
42.5.14 ESMF_VMPrint - Print VM internals
42.5.15 ESMF_VMRecv - Receive data from src PET
42.5.16 ESMF_VMReduce - Reduce data from across VM
42.5.17 ESMF_VMScatter - Scatter data across VM
42.5.18 ESMF_VMScatterV - ScatterV across VM
42.5.19 ESMF_VMSend - Send data to dst PET
42.5.20 ESMF_VMSendRecv - Send and Recv data to and from PETs
42.5.21 ESMF_VMValidate - Validate VM internals
42.5.22 ESMF_VMCommWait - Wait for non-blocking VM communication to complete
42.5.23 ESMF_VMCommQueueWait - Wait for all non-blocking VM comms to complete
42.5.24 ESMF_VMWtime - Get floating-point number of seconds
42.5.25 ESMF_VMWtimeDelay - Delay execution
42.5.26 ESMF_VMWtimePrec - Timer precision as floating-point number of seconds
43 Fortran I/O Utilities
43.1 Description
43.2 Use and Examples
43.2.1 Fortran unit number management
43.2.2 Flushing output
43.3 Design and Implementation Notes
43.3.1 Fortran unit number management
43.3.2 Flushing output
43.4 Utility API
43.4.1 ESMF_IOUnitFlush - flush output on a unit number
43.4.2 ESMF_IOUnitGet - Scan for a free I/O unit number
44 References
Bibliography
5 Appendices
45 Appendix A: A Brief Introduction to UML
46 Appendix B: ESMF Error Return Codes
esmf_support@list.woc.noaa.gov