ESMF_GridToMeshCell Function

public function ESMF_GridToMeshCell(grid, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Grid), intent(in) :: grid
integer, intent(out), optional :: rc

Return Value type(ESMF_Mesh)


Calls

proc~~esmf_gridtomeshcell~~CallsGraph proc~esmf_gridtomeshcell ESMF_GridToMeshCell c_esmc_gridtomeshcell c_esmc_gridtomeshcell proc~esmf_gridtomeshcell->c_esmc_gridtomeshcell interface~esmf_gridget ESMF_GridGet proc~esmf_gridtomeshcell->interface~esmf_gridget interface~esmf_meshcreate ESMF_MeshCreate proc~esmf_gridtomeshcell->interface~esmf_meshcreate proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_gridtomeshcell->proc~esmf_logfounderror proc~esmf_gridgetdefault ESMF_GridGetDefault interface~esmf_gridget->proc~esmf_gridgetdefault proc~esmf_gridgetplocalde ESMF_GridGetPLocalDe interface~esmf_gridget->proc~esmf_gridgetplocalde proc~esmf_gridgetplocaldepsloc ESMF_GridGetPLocalDePSloc interface~esmf_gridget->proc~esmf_gridgetplocaldepsloc proc~esmf_gridgetpsloc ESMF_GridGetPSloc interface~esmf_gridget->proc~esmf_gridgetpsloc proc~esmf_gridgetpslocptile ESMF_GridGetPSlocPTile interface~esmf_gridget->proc~esmf_gridgetpslocptile proc~esmf_meshcreate1part ESMF_MeshCreate1Part interface~esmf_meshcreate->proc~esmf_meshcreate1part proc~esmf_meshcreate3part ESMF_MeshCreate3Part interface~esmf_meshcreate->proc~esmf_meshcreate3part proc~esmf_meshcreateeasyelems1type ESMF_MeshCreateEasyElems1Type interface~esmf_meshcreate->proc~esmf_meshcreateeasyelems1type proc~esmf_meshcreateeasyelemsgen ESMF_MeshCreateEasyElemsGen interface~esmf_meshcreate->proc~esmf_meshcreateeasyelemsgen proc~esmf_meshcreatefromdg ESMF_MeshCreateFromDG interface~esmf_meshcreate->proc~esmf_meshcreatefromdg proc~esmf_meshcreatefromfile ESMF_MeshCreateFromFile interface~esmf_meshcreate->proc~esmf_meshcreatefromfile proc~esmf_meshcreatefromgrid ESMF_MeshCreateFromGrid interface~esmf_meshcreate->proc~esmf_meshcreatefromgrid proc~esmf_meshcreatefrommeshes ESMF_MeshCreateFromMeshes interface~esmf_meshcreate->proc~esmf_meshcreatefrommeshes proc~esmf_meshcreatefrompointer ESMF_MeshCreateFromPointer interface~esmf_meshcreate->proc~esmf_meshcreatefrompointer proc~esmf_meshcreateredist ESMF_MeshCreateRedist interface~esmf_meshcreate->proc~esmf_meshcreateredist esmf_breakpoint esmf_breakpoint proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logfounderror->proc~esmf_logwrite

Called by

proc~~esmf_gridtomeshcell~~CalledByGraph proc~esmf_gridtomeshcell ESMF_GridToMeshCell proc~conserve_gridtomesh conserve_GridToMesh proc~conserve_gridtomesh->proc~esmf_gridtomeshcell proc~esmf_fieldregridgetarea ESMF_FieldRegridGetArea proc~esmf_fieldregridgetarea->proc~esmf_gridtomeshcell proc~esmf_xgridcreate ESMF_XGridCreate proc~esmf_xgridcreate->proc~esmf_gridtomeshcell

Source Code

   function ESMF_GridToMeshCell(grid, rc)
!
!
! !RETURN VALUE:
    type(ESMF_Mesh)                               :: ESMF_GridToMeshCell
!
! !ARGUMENTS:
    type(ESMF_Grid), intent(in)                :: grid
    integer, intent(out) , optional               :: rc
!
! !DESCRIPTION:
!   Create a mesh object with the same topology as the grid.
!
!   \begin{description}
!   \item [grid]
!         The grid to copy.
!   \item [{[rc]}]
!         Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
!   \end{description}
!
!EOPI
!------------------------------------------------------------------------------
    integer :: localrc
    type(ESMF_Pointer) :: theMesh
    type(ESMF_Index_Flag) :: indexflag
    type(ESMF_CoordSys_Flag) :: coordSys
    integer :: dimCount

    localrc = ESMF_SUCCESS

    ! Error check Grid
    call ESMF_GridGet(grid, indexflag=indexflag, rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
          ESMF_CONTEXT, rcToReturn=rc)) return

    call c_esmc_gridtomeshcell(grid, theMesh, localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

    ESMF_GridToMeshCell = ESMF_MeshCreate(theMesh)

    ! Set these here, eventually this will happen automatically internally inside ESMF_MeshCreate()
    call ESMF_GridGet(grid,              &
                      coordSys=coordSys, &
                      dimCount=dimCount, &
                      rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

    if (present(rc)) rc = ESMF_SUCCESS

    end function ESMF_GridToMeshCell