Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_Pointer), | intent(in) | :: | mesh_pointer | |||
integer, | intent(out), | optional | :: | rc |
function ESMF_MeshCreateFromPointer(mesh_pointer, rc) ! ! ! !RETURN VALUE: type(ESMF_Mesh) :: ESMF_MeshCreateFromPointer ! !ARGUMENTS: type(ESMF_Pointer), intent(in) :: mesh_pointer integer, intent(out), optional :: rc ! ! !DESCRIPTION: ! Create an empty mesh. ! ! \begin{description} ! \item [parametricDim] ! Dimension of the topology of the Mesh. (E.g. a mesh constructed of squares would ! have a parametric dimension of 2, whereas a Mesh constructed of cubes would have one ! of 3.) ! \item[spatialDim] ! The number of coordinate dimensions needed to describe the locations of the nodes ! making up the Mesh. For a manifold, the spatial dimension can be larger than the ! parametric dim (e.g. the 2D surface of a sphere in 3D space), but it can't be smaller. ! \item [{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! !EOPI !------------------------------------------------------------------------------ integer :: localrc integer :: numNode, numElem if(present(rc)) rc = ESMF_RC_NOT_IMPL ! initialize return code; assume routine not implemented ! Set pointer ESMF_MeshCreateFromPointer%this = mesh_pointer ! Check init status of arguments ESMF_INIT_SET_CREATED(ESMF_MeshCreateFromPointer) ! Create two distgrids, one for nodes and one for elements call C_ESMC_MeshCreateNodeDistGrid(ESMF_MeshCreateFromPointer, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return call C_ESMC_MeshCreateElemDistGrid(ESMF_MeshCreateFromPointer, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return ! Set as fully created call C_ESMC_MeshSetStatus(ESMF_MeshCreateFromPointer, ESMF_MESHSTATUS_COMPLETE) if(present(rc)) rc = ESMF_SUCCESS end function ESMF_MeshCreateFromPointer