ESMF_4_0_0r Public Method Interface Additions and Modifications

New interfaces for CplComp:


	(new) subroutine ESMF_CplCompSetVMMaxPEs(cplcomp, max, pref_intra_process, pref_intra_ssi, pref_inter_ssi, rc)

 	(new) subroutine ESMF_CplCompSetVMMaxThreads(cplcomp, max, pref_intra_process, pref_intra_ssi, pref_inter_ssi, rc)

	(new) subroutine ESMF_CplCompSetVMMinThreads(cplcomp, max, pref_intra_process, pref_intra_ssi, pref_inter_ssi, rc)

Interface changes for CplComp:

	(new) newcpl = ESMF_CplCompCreate(name, config, configFile, clock, petList, contextflag, rc)
	
	(old) newcpl = ESMF_CplCompCreate(name, config, configFile, clock, petList, contextflag, parentVm, rc)

New interfaces for GridComp:


	(new) subroutine ESMF_GridCompSetVMMaxPEs(gridcomp, max, pref_intra_process, pref_intra_ssi, pref_inter_ssi, rc)

 	(new) subroutine ESMF_GridCompSetVMMaxThreads(gridcomp, max, pref_intra_process, pref_intra_ssi, pref_inter_ssi, rc)

 	(new) subroutine ESMF_GridCompSetVMMinThreads(gridcomp, max, pref_intra_process, pref_intra_ssi, pref_inter_ssi, rc)

Interface changes for GridComp:

	(new) newgcomp = ESMF_GridCompCreate(name, gridcomptype, grid, config, configFile, clock, petList, contextflag, rc)

 	(old) newgcomp = ESMF_GridCompCreate(name, gridcomptype, grid, config, configFile, clock, petList, contextflag, &
				parentVm, rc)

New interfaces for State:


	(new) subroutine ESMF_StateRead(state, fileName, fileFormat, rc)

	(new) subroutine ESMF_StateWrite(state, fileName, fileFormat, rc)

New interfaces for FieldBundle:


        (new) newFieldbundle = ESMF_FieldBundleCreate(mesh, name, iospec, rc)

        (new) newFieldbundle = ESMF_FieldBundleCreate(locstream, name, iospec, rc)

        (new) subroutine ESMF_FieldBundleSet(bundle, grid, rc)

        (new) subroutine ESMF_FieldBundleSet(bundle, mesh, rc)

        (new) subroutine ESMF_FieldBundleSet(bundle, locstream, rc)

Interface changes for FieldBundle:


        (new)  subroutine ESMF_FieldBundleGet(bundle, geomtype, grid, mesh, locstream, fieldCount, name, rc)

        (old)  subroutine ESMF_FieldBundleGet(bundle, grid, fieldCount, name, rc)

Interface changes for Field:


        (new) subroutine ESMF_FieldGet(field, localDe, farrayPtr, exclusiveLBound, exclusiveUBound, exclusiveCount, &
                                computationalLBound, computationalUBound, computationalCount, totalLBound, totalUBound, &
                                totalCount, rc)

        (old) subroutine ESMF_FieldGet(field, localDe, farray, exclusiveLBound, exclusiveUBound, exclusiveCount, &
                                computationalLBound, computationalUBound, computationalCount, totalLBound, totalUBound, &
                                totalCount, rc)


        (new) subroutine ESMF_FieldGet(field, isCommitted, geomtype, grid, mesh, locstream, array, typekind, dimCount, &
                                memDimCount, staggerloc, gridToFieldMap, ungriddedLBound, ungriddedUBound, maxHaloLWidth, &
                                maxHaloUWidth, localDeCount, name, iospec, rc)

        (old) subroutine ESMF_FieldGet(field, geomtype, grid, mesh, locstream, rray, typekind, dimCount, memDimCount, &
                                staggerloc, gridToFieldMap, ungriddedLBound, ungriddedUBound, maxHaloLWidth, maxHaloUWidth, &
                                localDeCount, name, iospec, rc)


        (new) subroutine ESMF_FieldRegrid(srcField, dstField, routehandle, zeroflag, checkflag, rc)

        (old) subroutine ESMF_FieldRegrid(srcField, dstField, routeHandle, rc)

Interface changes for Array:


	(new) newArray = ESMF_ArrayCreate(farrayPtr, distgrid, copyflag, distgridToArrayMap, computationalEdgeLWidth, &
				computationalEdgeUWidth, computationalLWidth, computationalUWidth, totalLWidth, &
				totalUWidth, name, rc)

 	(old) newArray = ESMF_ArrayCreate(farrayPtr, distgrid, copyflag, distgridToArrayMap, computationalEdgeLWidth, &
				computationalEdgeUWidth, computationalLWidth, computationalUWidth, totalLWidth, &
				totalUWidth, staggerLoc, vectorDim, name, rc)


	(new) newArray = ESMF_ArrayCreate(farray, distgrid, indexflag, copyflag, distgridToArrayMap, computationalEdgeLWidth, &
				computationalEdgeUWidth, computationalLWidth, computationalUWidth, totalLWidth, totalUWidth, &
				undistLBound, undistUBound, name, rc)

	(old) newArray = ESMF_ArrayCreate(farray, distgrid, indexflag, copyflag, distgridToArrayMap, computationalEdgeLWidth, &
				computationalEdgeUWidth, computationalLWidth, computationalUWidth, totalLWidth, totalUWidth, &
				staggerLoc, vectorDim, undistLBound, undistUBound, name, rc)


	(new) newArray = ESMF_ArrayCreate(larrayList, distgrid, indexflag, copyflag, distgridToArrayMap, computationalEdgeLWidth, &
				computationalEdgeUWidth, computationalLWidth, computationalUWidth, totalLWidth, totalUWidth, &
				undistLBound, undistUBound, name, rc)

	(old) newArray = ESMF_ArrayCreate(larrayList, distgrid, indexflag, copyflag, distgridToArrayMap, computationalEdgeLWidth, &
				computationalEdgeUWidth, computationalLWidth, computationalUWidth, totalLWidth, totalUWidth, &
				staggerLoc, vectorDim, undistLBound, undistUBound, name, rc)


	(new) newArray = ESMF_ArrayCreate(arrayspec, distgrid, indexflag, distgridToArrayMap, computationalEdgeLWidth, &
				computationalEdgeUWidth, computationalLWidth, computationalUWidth, totalLWidth, totalUWidth, &
				undistLBound, undistUBound, name, rc)

	(old) newArray = ESMF_ArrayCreate(arrayspec, distgrid, indexflag, distgridToArrayMap, computationalEdgeLWidth, &
				computationalEdgeUWidth, computationalLWidth, computationalUWidth, totalLWidth, totalUWidth, &
				staggerLoc, vectorDim, undistLBound, undistUBound, name, rc)

	(new) subroutine ESMF_ArraySet(array, name, computationalLWidth, computationalUWidth, rc)

	(old) subroutine ESMF_ArraySet(array, name, staggerLoc, vectorDim, computationalLWidth, computationalUWidth, rc)

Removed Interfaces for Array:


	(old) subroutine ESMF_ArraySet(array, tensorIndex, staggerLoc, vectorDim, rc)

New interfaces for Grid:


	(new) newGrid = ESMF_GridCreate(fileName, convention, purpose, rc)

Interface changes for Grid:


	(new) subroutine ESMF_GridAddItem(grid, staggerloc, item, itemTypeKind, staggerEdgeLWidth, &
				staggerEdgeUWidth, staggerAlign,  staggerMemLBound, totalLWidth, totalUWidth,rc)

	(old) subroutine ESMF_GridAddItem(grid, staggerloc, item, itemTypeKind, staggerEdgeLWidth, &
                 		staggerEdgeUWidth, staggerAlign,  totalLWidth, totalUWidth,rc)


	(new) subroutine ESMF_GridConvertIndex(grid, gridindex, distgridindex, rc)

	(old) subroutine ESMF_GridConvertIndex(grid,staggerloc,gridindex, distgridindex, rc)


	(new) newGrid = ESMF_GridCreateShapeTile(grid, name,coordTypeKind, minIndex, maxIndex, localArbIndex, &
				localArbIndexCount, connDim1, connDim2, connDim3, poleStaggerLoc1, poleStaggerLoc2, &
				poleStaggerLoc3, bipolePos1, bipolePos2, bipolePos3,  coordDep1, coordDep2, coordDep3, &
                          	distDim, rc)

	(old) newGrid = ESMF_GridCreateShapeTile(name,coordTypeKind, minIndex, maxIndex, localIndices, localCount, &
                          	connDim1, connDim2, connDim3, poleStaggerLoc1, poleStaggerLoc2, poleStaggerLoc3, &
                          	bipolePos1, bipolePos2, bipolePos3, coordDep1, coordDep2, coordDep3, distDim, rc)


	(new) subroutine ESMF_GridGetArrayInfo(grid, staggerloc, gridToFieldMap, ungriddedLBound, ungriddedUBound, &
                        	staggerDistgrid, distgridToArrayMap, undistLBound, undistUBound,  rc)

	(old) subroutine ESMF_GridGetArrayInfo(grid, staggerloc, gridToFieldMap, ungriddedLBound, ungriddedUBound, &
                           	distgridToArrayMap, undistLBound, undistUBound, computationalEdgeLWidth, 
				computationalEdgeUWidth, rc)


	(new) subroutine ESMF_GridGet(grid, staggerloc, staggerDistGrid, minIndex, maxIndex, rc)

	(old) subroutine ESMF_GridGet(grid, staggerloc, computationalEdgeLWidth, computationalEdgeUWidth, minIndex, &
				maxIndex, rc)


	(new) subroutine ESMF_GridSetCommitShapeTile(grid, name,coordTypeKind, minIndex, maxIndex, localArbIndex, &
				localArbIndexCount, connDim1, connDim2, connDim3, poleStaggerLoc1, poleStaggerLoc2, &
				poleStaggerLoc3, bipolePos1, bipolePos2, bipolePos3,  coordDep1, coordDep2, coordDep3, &
                          	distDim, rc)

	(old) subroutine ESMF_GridSetCommitShapeTile(grid, name,coordTypeKind, minIndex, maxIndex, localIndices, &
				localCount, connDim1, connDim2, connDim3, poleStaggerLoc1, poleStaggerLoc2, &
				poleStaggerLoc3, bipolePos1, bipolePos2, bipolePos3, coordDep1, coordDep2, coordDep3, &
                          	distDim, rc)

Interface changes for Mesh:


	(new) subroutine ESMF_MeshGet(mesh, nodalDistgrid, elementDistgrid, numOwnedNodes, numOwnedElements, isMemFreed, rc)

	(old) subroutine ESMF_MeshGet(mesh, nodal_distgrid, element_distgrid, & num_nodes, num_elements, rc)

Interface changes for DistGrid:


	(new) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, regDecomp, decompflag, regDecompFirstExtra, regDecompLastExtra, &
				deLabelList, indexflag, connectionList, delayout, vm, rc)

	(old) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, regDecomp, decompflag, regDecompFirstExtra, regDecompLastExtra, &
				deLabelList, indexflag, connectionList, connectionTransList, delayout, vm, rc)


	(new) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, deBlockList, deLabelList, indexflag, connectionList, delayout, &
				vm, rc)

	(old) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, deBlockList, deLabelList, indexflag, connectionList, &
				connectionTransList, delayout, vm, rc)


	(new) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, regDecomp, decompflag, regDecompFirstExtra, regDecompLastExtra, &
				deLabelList, indexflag, connectionList, fastAxis, vm, rc)

	(old) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, regDecomp, decompflag, regDecompFirstExtra, regDecompLastExtra, &
				deLabelList, indexflag, connectionList, connectionTransList, fastAxis, vm, rc)


	(new) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, deBlockList, deLabelList, indexflag, connectionList, fastAxis, &
				vm, rc)

	(old) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, deBlockList, deLabelList, indexflag, connectionList,  &
				connectionTransList, fastAxis, vm, rc)


	(new) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, regDecomp, decompflag, regDecompFirstExtra, regDecompLastExtra, &
				deLabelList, indexflag, connectionList, delayout, vm, rc)  

	(old) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, regDecomp, decompflag, regDecompFirstExtra, regDecompLastExtra, &
				deLabelList, indexflag, connectionList, connectionTransList, delayout, vm, rc)  


	(new) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, deBlockList, deLabelList, indexflag, connectionList, delayout, &
				vm, rc)  

	(old) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, deBlockList, deLabelList, indexflag, connectionList, &
				connectionTransList, delayout, vm, rc)  

	(new) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, regDecomp, decompflag, deLabelList, indexflag, connectionList, &
				fastAxis, vm, rc)

	(old) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, regDecomp, decompflag, deLabelList, indexflag, connectionList, &
				connectionTransList, fastAxis, vm, rc)

	(new) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, deBlockList, deLabelList, indexflag, connectionList, fastAxis, &
				vm, rc)  

	(old) newDistGrid = ESMF_DistGridCreate(minIndex, maxIndex, deBlockList, deLabelList, indexflag, connectionList, &
				connectionTransList, fastAxis, vm, rc)  

	(new) subroutine ESMF_DistGridPrint(distgrid, rc)

	(old) subroutine ESMF_DistGridPrint(distgrid, options, rc)

New interfaces for Attribute:

	(new) subroutine ESMF_AttributeLink(arraybundle, array, rc)

	(new) subroutine ESMF_AttributeLinkRemove(arraybundle, array, rc)

Interface changes for Attribute:

	(new) subroutine ESMF_AttributeLink(state, <object>, rc)
			
			Supported values for the <object> are:

			type(ESMF_ArrayBundle), intent(inout) :: arraybundle
                       	type(ESMF_Array), intent(inout) :: array
                       	type(ESMF_FieldBundle), intent(inout) :: fieldbundle
                       	type(ESMF_Field), intent(inout) :: field
                       	type(ESMF_State), intent(inout) :: state

	(old) subroutine ESMF_AttributeLink(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


	(new) subroutine ESMF_AttributeLinkRemove(state, <object>, rc)

                       	Supported values for the <object> are:

                       	type(ESMF_ArrayBundle), intent(inout) :: arraybundle
                       	type(ESMF_Array), intent(inout) :: array
                       	type(ESMF_FieldBundle), intent(inout) :: fieldbundle
                       	type(ESMF_Field), intent(inout) :: field
                       	type(ESMF_State), intent(inout) :: state

	(old) subroutine ESMF_AttributeLinkRemove(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

Interface changes for VM:

	(new) subroutine ESMF_VMGet(vm, localPet, petCount, peCount, mpiCommunicator, pthreadsEnabledFlag, openMPEnabledFlag, rc)

	(old) subroutine ESMF_VMGet(vm, localPet, petCount, peCount, mpiCommunicator, supportPthreadsFlag, supportOpenMPFlag, rc)