ESMF_3_1_1 Public Method Interface Additions and Modifications
New Interfaces for FieldBundle:
ESMF_FieldBundleRedist(srcFieldBundle, dstFieldBundle, routehandle, checkflag, rc)
ESMF_FieldBundleRedistRelease(routehandle, rc)
ESMF_FieldBundleRedistStore<type><kind>(srcFieldBundle, dstFieldBundle, routehandle, factor, &
srcToDstTransposeMap, rc)
ESMF_FieldBundleRedistStoreNF(srcFieldBundle, dstFieldBundle, routehandle, factor, &
srcToDstTransposeMap, rc)
ESMF_FieldBundleSMM(srcFieldBundle, dstFieldBundle, routehandle, zeroflag, checkflag, rc)
ESMF_FieldBundleSMMRelease(routehandle, rc)
ESMF_FieldBundleSMMStore<type><kind>(srcFieldBundle, dstFieldBundle, routehandle, factorList, &
factorIndexList, rc)
ESMF_FieldBundleSMMStoreNF(srcFieldBundle, dstFieldBundle, routehandle, factorList, factorIndexList, rc)
New Interfaces for Field:
ESMF_FieldGather<rank><type><kind>(field, farray, patch, &
rootPet, vm, rc)
ESMF_FieldRedist(srcField, dstField, routehandle, &
checkflag, rc)
ESMF_FieldRedistRelease(routehandle, rc)
ESMF_FieldRedistStore<type><kind>(srcField, dstField, &
routehandle, factor, srcToDstTransposeMap, rc)
ESMF_FieldRedistStoreNF(srcField, dstField, &
routehandle, factor, srcToDstTransposeMap, rc)
ESMF_FieldScatter<rank><type><kind>(field, farray, &
patch, rootPet, vm, rc)
ESMF_FieldSMM(srcField, dstField, routehandle, &
zeroflag, checkflag, rc)
ESMF_FieldSMMRelease(routehandle, rc)
ESMF_FieldSMMStore<type><kind>(srcField, dstField, &
routehandle, factorList, factorIndexList, rc)
ESMF_FieldSMMStoreNF(srcField, dstField, &
routehandle, factorList, factorIndexList, rc)
field=ESMF_FieldCreate(locstream, arrayspec, gridToFieldMap, &
ungriddedLBound, ungriddedUBound, name, iospec, rc)
field=ESMF_FieldCreate(locstream, array, copyflag, gridToFieldMap, &
ungriddedLBound, ungriddedUBound, name, iospec, rc)
field=ESMF_FieldCreate(locstream, farray, copyflag, gridToFieldMap, &
ungriddedLBound, ungriddedUBound, name, iospec, rc)
ESMF_FieldGet(locstream, localDe, gridToFieldMap, ungriddedLBound, ungriddedUBound, &
totalLBound, totalUBound, totalCount, rc)
ESMF_FieldSetCommit(field, locstream, farray, copyflag, gridToFieldMap, ungriddedLBound, &
ungriddedUBound, rc
field=ESMF_FieldCreate(mesh, arrayspec, gridToFieldMap, &
ungriddedLBound, ungriddedUBound, name, iospec, rc)
field=ESMF_FieldCreate(mesh, array, copyflag, gridToFieldMap, &
ungriddedLBound, ungriddedUBound, name, iospec, rc)
field=ESMF_FieldCreate(mesh, farray, copyflag, gridToFieldMap, &
ungriddedLBound, ungriddedUBound, name, iospec, rc)
ESMF_FieldGet(mesh, localDe, gridToFieldMap, ungriddedLBound, ungriddedUBound, &
totalLBound, totalUBound, totalCount, rc)
ESMF_FieldSetCommit(field, mesh, farray, copyflag, gridToFieldMap, ungriddedLBound, &
ungriddedUBound, rc
ESMF_FieldRegrid(srcField, dstField, routeHandle, rc)
ESMF_FieldRegridRelease(routeHandle, rc)
ESMF_FieldRegridStore(srcField, dstField, routeHandle, regridMethod, regridScheme, rc)
ESMF_FieldRegridStore(srcField, dstField, routeHandle, indicies, weights, &
regridMethod, regridScheme, rc)
ESMF_FieldRegridStore(srcField, dstField, indicies, weights, &
regridMethod, regridScheme, rc)
Interfaces Changes for Field:
(new) ESMF_FieldGet(field, geomtype, grid, mesh, locstream, array, typekind, dimCount, &
staggerloc, gridToFieldMap, ungriddedLBound, ungriddedUBound, &
maxHaloLWidth, maxHaloUWidth, name, iospec, rc)
(old) ESMF_FieldGet(field, grid, array, typekind, dimCount, staggerloc, gridToFieldMap, &
ungriddedLBound, ungriddedUBound, maxHaloLWidth, maxHaloUWidth, &
name, iospec, rc)
New Interfaces for DistGrid:
newDistGrid=ESMF_DistGridCreate(arbSeqIndexList, arbDim, minIndex, maxIndex, rc)
ESMF_DistGridSet(distgrid, collocationPDim, rc)
Interfaces Changes for DistGrid:
(new) ESMF_DistGridGet(distgrid, delayout, dimCount, patchCount, &
minIndexPDimPPatch, maxIndexPDimPPatch, elementCountPPatch, &
minIndexPDimPDe, maxIndexPDimPDe, elementCountPDe, patchListPDe, &
indexCountPDimPDe, collocationPDim, regDecompFlag, rc)
(old) ESMF_DistGridGet(distgrid, delayout, dimCount, patchCount, &
minIndexPDimPPatch, maxIndexPDimPPatch, elementCountPPatch, &
minIndexPDimPDe, maxIndexPDimPDe, elementCountPDe, patchListPDe, &
indexCountPDimPDe, regDecompFlag, rc)
(new) ESMF_DistGridGet(distgrid, localDe, collocation, &
arbSeqIndexFlag, seqIndexList, elementCount, rc)
(old) ESMF_DistGridGet(distgrid, localDe, seqIndexList, rc)
New Interfaces for Mesh:
newMesh=ESMF_MeshCreate(parametricDim, spatialDim, nodeIds, nodeCoords, nodeOwners, &
elementIds, elementTypes, elementConn, rc)
newMesh=ESMF_MeshCreate(parametricDim, spatialDim, rc)
ESMF_MeshAddNodes(mesh, nodeIds, nodeCoords, nodeOwners, rc)
ESMF_MeshAddElements(mesh, elementIds, elementTypes, elementConn, rc)
New Interfaces for LocStream:
ESMF_LocStreamAddKey(locstream, keyName, keyTypeKind, keyUnits, keyLongName, rc)
ESMF_LocStreamAddKey(locstream, keyName, keyArray, destroyKey, keyUnits, keyLongName, rc)
ESMF_LocStreamAddKey(locstream, keyName, farray, copyflag, keyUnits, keyLongName, rc)
newLocStream=ESMF_LocStreamCreate(name, distgrid, destroyDistgrid, indexflag, rc)
newLocStream=ESMF_LocStreamCreate(name, minIndex, countsPerDE, indexflag, rc)
newLocStream=ESMF_LocStreamCreate(name, localCount, indexflag, rc)
newLocStream=ESMF_LocStreamCreate(name, regDecomp, decompFlag, minIndex, &
maxIndex, indexflag, rc )
ESMF_LocStreamDestroy(locstream,rc)
ESMF_LocStreamGet(locstream, distgrid, keyCount, keyNames, localDECount, &
indexflag, name, rc)
ESMF_LocStreamGetKey(locstream, keyName, keyArray, rc)
ESMF_LocStreamGet(locstream, localDE, exclusiveLBound, exclusiveUBound, exclusiveCount, &
computationalLBound, computationalUBound, computationalCount, rc)
ESMF_LocStreamGetKey(locstream, localDE, keyName, exclusiveLBound, exclusiveUBound, &
exclusiveCount, computationalLBound, computationalUBound, computationalCount, &
totalLBound, totalUBound, totalCount, rc)
ESMF_LocStreamGetKey(locstream, keyName, keyUnits, keyLongName, rc)
ESMF_LocStreamGetKey(locstream, localDE, keyName, exclusiveLBound, exclusiveUBound, &
exclusiveCount, computationalLBound, computationalUBound, computationalCount, &
totalLBound, totalUBound, totalCount, farray, doCopy, rc)
ESMF_LocStreamPrint(locstream, options, rc)
ESMF_LocStreamValidate(locstream, options, rc)
New Interfaces for Attribute:
ESMF_AttributeAdd(<object>, convention, purpose, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
ESMF_AttributeAdd(<object>, convention, purpose, &
attrList, count, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
ESMF_AttributeCopy(<object1>, <object2>, rc)
Supported values for <object1> are:
type(ESMF_State), intent(inout) :: state
Supported values for <object2> are:
type(ESMF_State), intent(inout) :: state
ESMF_AttributeRemove(<object>, name, convention, purpose, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
ESMF_AttributeSet(<object1>, <object2>, rc)
Supported values for the <object1> are:
type(ESMF_CplComp), intent(inout) :: comp1
type(ESMF_GridComp), intent(inout) :: comp1
Supported values for the <object2> are:
type(ESMF_CplComp), intent(inout) :: comp2
type(ESMF_GridComp), intent(inout) :: comp2
type(ESMF_State), intent(inout) :: state
ESMF_AttributeSet(fieldbundle, field, rc)
ESMF_AttributeSet(state, <object>, rc)
Supported values for the <object> are:
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Field), intent(inout) :: field
type(ESMF_State), intent(inout) :: state
ESMF_AttributeWrite(<object>, convention, purpose, attwriteflag, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
Interface Changes for Attribute:
Notes: In some cases two old subroutines are replaced by a single new subroutine.
Character string lengths are no longer restricted to length ESMF_MAXSTR.
(new) ESMF_AttributeGet(<object>, name, <value argument>, &
<defaultvalue argument>, convention, purpose, itemCount, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
Supported values for <value argument> are:
integer(ESMF_KIND_I4), intent(out) :: value
integer(ESMF_KIND_I4), dimension(:), intent(out) :: valueList
integer(ESMF_KIND_I8), intent(out) :: value
integer(ESMF_KIND_I8), dimension(:), intent(out) :: valueList
real (ESMF_KIND_R4), intent(out) :: value
real (ESMF_KIND_R4), dimension(:), intent(out) :: valueList
real (ESMF_KIND_R8), intent(out) :: value
real (ESMF_KIND_R8), dimension(:), intent(out) :: valueList
logical, intent(out) :: value
logical, dimension(:), intent(out) :: valueList
character (len = *), intent(out), value
character (len = *), dimension(count), intent(out), valueList
Supported values for <defaultvalue argument> are:
integer(ESMF_KIND_I4), intent(out) :: defaultvalue
integer(ESMF_KIND_I4), dimension(:), intent(out) :: defaultvalueList
integer(ESMF_KIND_I8), intent(out) :: defaultvalue
integer(ESMF_KIND_I8), dimension(:), intent(out) :: defaultvalueList
real (ESMF_KIND_R4), intent(out) :: defaultvalue
real (ESMF_KIND_R4), dimension(:), intent(out) :: defaultvalueList
real (ESMF_KIND_R8), intent(out) :: defaultvalue
real (ESMF_KIND_R8), dimension(:), intent(out) :: defaultvalueList
logical, intent(out) :: defaultvalue
logical, dimension(:), intent(out) :: defaultvalueList
character (len = *), intent(out), defaultvalue
character (len = *), dimension(count), intent(out), defaultvalueList
(old) ESMF_AttributeGet(<object>, name, <value argument>, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fieldbundle
type(ESMF_State), intent(inout) :: state
Supported values for <value argument> are:
integer(ESMF_KIND_I4), intent(out) :: value
integer(ESMF_KIND_I8), intent(out) :: value
real (ESMF_KIND_R4), intent(out) :: value
real (ESMF_KIND_R8), intent(out) :: value
type(ESMF_Logical), intent(out) :: value
character (len = *), intent(out), value
(old) ESMF_AttributeGet(<object>, name, count, <value argument>, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fieldbundle
type(ESMF_State), intent(inout) :: state
Supported values for <value argument> are:
integer(ESMF_KIND_I4), dimension(:), intent(out) :: valueList
integer(ESMF_KIND_I8), dimension(:), intent(out) :: valueList
real (ESMF_KIND_R4), dimension(:), intent(out) :: valueList
real (ESMF_KIND_R8), dimension(:), intent(out) :: valueList
type(ESMF_Logical), dimension(:), intent(out) :: valueList
(new) ESMF_AttributeGet(<object>, count, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
(old) ESMF_AttributeGet(<object>, count, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fieldbundle
type(ESMF_State), intent(inout) :: state
(new) ESMF_AttributeGet(<object>, name, typekind, itemcount, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
(old) ESMF_AttributeGet(<object>, name, typekind, count, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fieldbundle
type(ESMF_State), intent(inout) :: state
(new) SMF_AttributeGet(<object>, attributeIndex, name, &
typekind, itemcount, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
(old) ESMF_AttributeGet(<object>, attributeIndex, name, &
typekind, itemcount, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fieldbundle
type(ESMF_State), intent(inout) :: state
(new) ESMF_AttributeSet(<object>, name, <value argument>, &
convention, purpose, itemcount, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_CplComp), intent(inout) :: comp
type(ESMF_GridComp), intent(inout) :: comp
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fbundle
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_State), intent(inout) :: state
Supported values for the <value argument> are:
integer(ESMF_KIND_I4), intent(in) :: value
integer(ESMF_KIND_I4), dimension(:), intent(in) :: valueList
integer(ESMF_KIND_I8), intent(in) :: value
integer(ESMF_KIND_I8), dimension(:), intent(in) :: valueList
real (ESMF_KIND_R4), intent(in) :: value
real (ESMF_KIND_R4), dimension(:), intent(in) :: valueList
real (ESMF_KIND_R8), intent(in) :: value
real (ESMF_KIND_R8), dimension(:), intent(in) :: valueList
logical, intent(in) :: value
logical, dimension(:), intent(in) :: valueList
character (len = *), intent(in), :: value
character (len = *), dimension(:), intent(in), :: valueList
(old) ESMF_AttributeSet(<object>, name, <value argument>, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fieldbundle
type(ESMF_State), intent(inout) :: state
Supported values for the <value argument> are:
integer(ESMF_KIND_I4), intent(in) :: value
integer(ESMF_KIND_I8), intent(in) :: value
real (ESMF_KIND_R4), intent(in) :: value
real (ESMF_KIND_R8), intent(in) :: value
type(ESMF_Logical), intent(in) :: value
character (len = *), intent(in), value
(old) ESMF_AttributeSet(<object>, name, count, <value argument>, rc)
Supported values for <object> are:
type(ESMF_Array), intent(inout) :: array
type(ESMF_Grid), intent(inout) :: grid
type(ESMF_Field), intent(inout) :: field
type(ESMF_FieldBundle), intent(inout) :: fieldbundle
type(ESMF_State), intent(inout) :: state
Supported values for the <value argument> are:
integer(ESMF_KIND_I4), dimension(:), intent(in) :: valueList
integer(ESMF_KIND_I8), dimension(:), intent(in) :: valueList
real (ESMF_KIND_R4), dimension(:), intent(in) :: valueList
real (ESMF_KIND_R8), dimension(:), intent(in) :: valueList
type(ESMF_Logical), dimension(:), intent(in) :: valueList
Interface change for return type:
(new) logical function ESMF_DistGridMatch(distgrid1, distgrid2, rc)
(old) type(ESMF_Logical) function ESMF_DistGridMatch(distgrid1, distgrid2, rc)
Interfaces changes for argument type:
In the following methods, character string lengths on the 'name', 'convention', and
'purpose' arguments may be any length supported by the compiler. When the 'value',
'valueList', and 'defaultvalueList' arguments are of type character, they may also
be of any supported length. The restriction that they must be ESMF_MAXSTR characters
long has been removed:
ESMF_AttributeAdd(<object>, convention, purpose, rc)
ESMF_AttributeAdd(<object>, convention, purpose, attrList, count, rc)
ESMF_AttributeGet(<object>, name, <value argument>, &
<defaultvalue argument>, convention, purpose, rc)
ESMF_AttributeGet(<object>, name, <valueList argument>, &
<defaultvalueList argument>, convention, purpose, itemCount, rc)
ESMF_AttributeRemove(<object>, name, convention, purpose, rc)
ESMF_AttributeSet(<object>, name, <value argument>, convention, purpose, rc)
ESMF_AttributeSet(<object>, name, <valueList argument>, convention, &
purpose, itemCount, rc)
ESMF_AttributeWrite(<object>, convention, purpose, rc)
In the following methods, the 'value' argument changed from type ESMF_Logical to Fortran logical:
ESMF_AttributeGet(<object>, name, <value argument>, &
<defaultvalue argument>, convention, purpose, rc)
ESMF_AttributeGet(<object>, name, <valueList argument>, &
<defaultvalueList argument>, convention, purpose, itemCount, rc)
ESMF_AttributeSet(<object>, name, <value argument>, convention, purpose, rc)
ESMF_AttributeSet(<object>, name, <valueList argument>, convention, &
purpose, itemCount, rc)
In the following methods, the argument 'checkflag' changed from type ESMF_Logical to Fortran logical:
ESMF_ArrayRedist(srcArray, dstArray, routehandle, checkflag, rc)
ESMF_ArraySMM(srcArray, dstArray, routehandle, zeroflag, checkflag, rc)
ESMF_ArrayBundleRedist(srcArrayBundle, dstArrayBundle, routehandle, checkflag, rc)
ESMF_ArrayBundleSMM(srcArrayBundle, dstArrayBundle, routehandle, &
zeroflag, checkflag, rc)
In the following method, the 'regDecompFlag' argument changed from type ESMF_Logical to Fortran logical:
ESMF_DistGridGet(distgrid, delayout, dimCount, patchCount, &
minIndexPDimPPatch, maxIndexPDimPPatch, elementCountPPatch, &
minIndexPDimPDe, maxIndexPDimPDe, elementCountPDe, patchListPDe, &
indexCountPDimPDe, regDecompFlag, rc)
In the following method, the 'oneToOneFlag' argument changed from type ESMF_Logical to Fortran logical:
ESMF_DELayoutGet(delayout, vm, deCount, petMap, vasMap, &
compCapacity, commCapacity, oneToOneFlag, dePinFlag, &
localDeCount, localDeList, vasLocalDeCount, vasLocalDeList, rc)
In the following method, the 'verbose', 'flush', and 'rootOnly' arguments changed from type ESMF_Logical
to Fortran logical:
ESMF_LogSet(log,verbose,flush,rootOnly,halt, &
stream,maxElements,errorMask,rc)
In the following method, the 'supportPthreadsFlag', and 'supportOpenMPFlag' arguments changed from type ESMF_Logical
to Fortran logical:
ESMF_VMGet(vm, localPet, petCount, peCount, mpiCommunicator, &
supportPthreadsFlag, supportOpenMPFlag, rc)
New C Interfaces for GridComp:
(new) ESMC_GridComp ESMC_GridCompCreate(char *name, enum ESMC_GridCompType mtype,
char *configFile, ESMC_Clock clock, int *rc);
(new) int ESMC_GridCompDestroy(ESMC_GridComp *comp);
(new) int ESMC_GridCompSetServices(ESMC_GridComp comp, void (*func)(ESMC_GridComp, int *));
(new) int ESMC_GridCompSetEntryPoint(ESMC_GridComp comp, const char *functionType,
void (*func)(ESMC_GridComp, ESMC_State, ESMC_State, ESMC_Clock *, int *), int phase);
(new) int ESMC_GridCompInitialize(ESMC_GridComp comp, ESMC_State importState,
ESMC_State exportState, ESMC_Clock clock, int phase);
(new) int ESMC_GridCompRun(ESMC_GridComp comp, ESMC_State importState,
ESMC_State exportState, ESMC_Clock clock, int phase);
(new) int ESMC_GridCompFinalize(ESMC_GridComp comp, ESMC_State importState,
ESMC_State exportState, ESMC_Clock clock, int phase);
(new) void *ESMC_GridCompGetInternalState(ESMC_GridComp comp, int *rc);
(new) int ESMC_GridCompSetInternalState(ESMC_GridComp comp, void *data);
(new) int ESMC_GridCompPrint(ESMC_GridComp comp, const char *options);
New C Interfaces for CplComp:
(new) ESMC_CplComp ESMC_CplCompCreate(char *name, char *configFile, ESMC_Clock clock, int *rc);
(new) int ESMC_CplCompDestroy(ESMC_CplComp *comp);
(new) int ESMC_CplCompSetServices(ESMC_CplComp comp, void (*func)(ESMC_CplComp, int *));
(new) int ESMC_CplCompSetEntryPoint(ESMC_CplComp comp, const char *functionType,
void (*func)(ESMC_CplComp, ESMC_State, ESMC_State, ESMC_Clock *, int *), int phase);
(new) int ESMC_CplCompInitialize(ESMC_CplComp comp, ESMC_State importState,
ESMC_State exportState, ESMC_Clock clock, int phase);
(new) int ESMC_CplCompRun(ESMC_CplComp comp, ESMC_State importState,
ESMC_State exportState, ESMC_Clock clock, int phase);
(new) int ESMC_CplCompFinalize(ESMC_CplComp comp, ESMC_State importState,
ESMC_State exportState, ESMC_Clock clock, int phase);
(new) void *ESMC_CplCompGetInternalState(ESMC_CplComp comp, int *rc);
(new) int ESMC_CplCompSetInternalState(ESMC_CplComp comp, void *data);
(new) int ESMC_CplCompPrint(ESMC_CplComp comp, const char *options);
New C Interfaces for State:
(new) ESMC_State ESMC_StateCreate(char *name, int *rc);
(new) int ESMC_StateDestroy(ESMC_State *state);
(new) int ESMC_StatePrint(ESMC_State state);
(new) int ESMC_StateAddArray(ESMC_State state, ESMC_Array array);
(new) int ESMC_StateGetArray(ESMC_State state, char *name, ESMC_Array *array);
New C Interfaces for Clock:
(new) ESMC_Clock ESMC_ClockCreate(int, const char*, ESMC_TimeInterval, ESMC_Time, ESMC_Time, int*);
(new) int ESMC_ClockPrint(ESMC_Clock);
(new) int ESMC_ClockAdvance(ESMC_Clock);
(new) int ESMC_ClockGet(ESMC_Clock, ESMC_TimeInterval* currSimTime, ESMC_I8* advanceCount);
(new) int ESMC_ClockDestroy(ESMC_Clock*);
New C Interfaces for Time:
(new) int ESMC_TimeSet(ESMC_Time*, ESMC_I4, ESMC_I4, ESMC_Calendar, enum ESMC_CalendarType, int);
(new) int ESMC_TimeGet(ESMC_Time, ESMC_I4*, ESMC_I4*, ESMC_Calendar*, enum ESMC_CalendarType*, int*);
(new) int ESMC_TimePrint(ESMC_Time);
New C Interfaces for TimeInterval:
(new) int ESMC_TimeIntervalSet(ESMC_TimeInterval*, ESMC_I4);
(new) int ESMC_TimeIntervalGet(ESMC_TimeInterval, ESMC_I8*, ESMC_R8*);
(new) int ESMC_TimeIntervalPrint(ESMC_TimeInterval);
New C Interfaces for Calendar:
(new) ESMC_Calendar ESMC_CalendarCreate(int, const char*, enum ESMC_CalendarType, int*);
(new) int ESMC_CalendarPrint(ESMC_Calendar);
(new) int ESMC_CalendarDestroy(ESMC_Calendar*);
New C Interfaces for Config:
(new) ESMC_Config ESMC_ConfigCreate(int* rc);
(new) int ESMC_ConfigDestroy(ESMC_Config* config);
(new) int ESMC_ConfigLoadFile(ESMC_Config config, char* fname, ...);
(new) int ESMC_ConfigFindLabel(ESMC_Config config, char* label);
(new) int ESMC_ConfigNextLine(ESMC_Config config, ...);
(new) int ESMC_ConfigGetChar(ESMC_Config config, char* value, ...);
(new) int ESMC_ConfigGetLen(ESMC_Config config, int* wordCount, ...);
(new) int ESMC_ConfigGetDim(ESMC_Config config, int* lineCount, int* columnCount, ...);
(new) int ESMC_ConfigValidate(ESMC_Config config, ...);
(new) int ESMC_ConfigGetAttribute(ESMC_Config config, void* value, enum ESMC_TypeKind tk, ...);
(new) int ESMC_ConfigSetAttribute(ESMC_Config config, void* value, enum ESMC_TypeKind tk, ...);
New C Interfaces for Array:
(new) ESMC_Array ESMC_ArrayCreate(ESMC_ArraySpec arrayspec, ESMC_DistGrid distgrid, char* name, int *rc);
(new) int ESMC_ArrayDestroy(ESMC_Array *array);
(new) int ESMC_ArrayPrint(ESMC_Array array);
(new) const char *ESMC_ArrayGetName(ESMC_Array array, int *rc);
(new) void *ESMC_ArrayGetPtr(ESMC_Array array, int localDe, int *rc);
(new) int ESMC_ArraySetLWidth(ESMC_Array array, ESMC_InterfaceInt computationalLWidthArg);
New C Interfaces for ArraySpec:
(new) int ESMC_ArraySpecSet(ESMC_ArraySpec *arrayspec, int rank, enum ESMC_TypeKind typekind);
(new) int ESMC_ArraySpecGet(ESMC_ArraySpec arrayspec, int *rank, enum ESMC_TypeKind *typekind);
New C Interfaces for DistGrid:
(new) ESMC_DistGrid ESMC_DistGridCreate(ESMC_InterfaceInt minIndexInterfaceArg,
ESMC_InterfaceInt maxIndexInterfaceArg, int *rc);
(new) int ESMC_DistGridPrint(ESMC_DistGrid distgrid);
(new) int ESMC_DistGridDestroy(ESMC_DistGrid *distgrid);
New C Interfaces for VM:
(new) int ESMC_VMPrint(ESMC_VM vm);
(new) ESMC_VM ESMC_VMGetGlobal(int *rc);
(new) ESMC_VM ESMC_VMGetCurrent(int *rc);
(new) int ESMC_VMGet(ESMC_VM vm, int *localPet, int *petCount, int *peCount, MPI_Comm *mpiCommunicator,
int *supportPthreadsFlag, int *supportOpenMPFlag);