ESMF_MeshGetMOAB Subroutine

public subroutine ESMF_MeshGetMOAB(moabOn, rc)

Arguments

Type IntentOptional Attributes Name
logical, intent(out) :: moabOn
integer, intent(out), optional :: rc

Calls

proc~~esmf_meshgetmoab~~CallsGraph proc~esmf_meshgetmoab ESMF_MeshGetMOAB c_esmc_meshgetmoab c_esmc_meshgetmoab proc~esmf_meshgetmoab->c_esmc_meshgetmoab proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_meshgetmoab->proc~esmf_logfounderror 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 c_esmc_loggeterrormsg c_esmc_loggeterrormsg proc~esmf_logrc2msg->c_esmc_loggeterrormsg c_esmc_vmwtime c_esmc_vmwtime proc~esmf_logwrite->c_esmc_vmwtime proc~esmf_logclose ESMF_LogClose proc~esmf_logwrite->proc~esmf_logclose proc~esmf_logflush ESMF_LogFlush proc~esmf_logwrite->proc~esmf_logflush proc~esmf_logopenfile ESMF_LogOpenFile proc~esmf_logwrite->proc~esmf_logopenfile proc~esmf_utiliounitflush ESMF_UtilIOUnitFlush proc~esmf_logwrite->proc~esmf_utiliounitflush proc~esmf_utilstring2array ESMF_UtilString2Array proc~esmf_logwrite->proc~esmf_utilstring2array proc~esmf_logclose->proc~esmf_logflush proc~esmf_logflush->proc~esmf_utiliounitflush proc~esmf_utilarray2string ESMF_UtilArray2String proc~esmf_logflush->proc~esmf_utilarray2string proc~esmf_logopenfile->proc~esmf_utiliounitflush proc~esmf_utiliounitget ESMF_UtilIOUnitGet proc~esmf_logopenfile->proc~esmf_utiliounitget

Called by

proc~~esmf_meshgetmoab~~CalledByGraph proc~esmf_meshgetmoab ESMF_MeshGetMOAB proc~b_or_p_gridtomesh b_or_p_GridToMesh proc~b_or_p_gridtomesh->proc~esmf_meshgetmoab proc~conserve_gridtomesh conserve_GridToMesh proc~conserve_gridtomesh->proc~esmf_meshgetmoab proc~esmf_fieldregridstorenx ESMF_FieldRegridStoreNX proc~esmf_fieldregridstorenx->proc~esmf_meshgetmoab interface~esmf_fieldregridstore ESMF_FieldRegridStore interface~esmf_fieldregridstore->proc~esmf_fieldregridstorenx proc~esmf_fieldregridstorex ESMF_FieldRegridStoreX proc~esmf_fieldregridstorex->proc~conserve_gridtomesh proc~getmeshoncornerswfieldoncenter getMeshOnCornersWFieldOnCenter proc~getmeshoncornerswfieldoncenter->proc~conserve_gridtomesh proc~getmeshwithnodesonfieldloc getMeshWithNodesOnFieldLoc proc~getmeshwithnodesonfieldloc->proc~b_or_p_gridtomesh

Source Code

   subroutine ESMF_MeshGetMOAB(moabOn, rc)
!
! !ARGUMENTS:
    logical, intent(out)                      :: moabOn
    integer, intent(out), optional            :: rc
!
! !DESCRIPTION:
!   This method is only temporary. It was created to enable testing during the stage in ESMF development while
!   we have two internal mesh implementations. At some point it will be removed.
!
!   This method can be used to check whether the MOAB library is being used
!   to hold the internal structure of the Mesh. When set to .true. the following
!   Mesh create calls create a Mesh using MOAB internally. When set to .false. the following
!   Mesh create calls use the ESMF native internal mesh respresentation. Note that ESMF Meshes
!   created on MOAB are only supported in a limited set of operations and should be used
!   with caution as they haven't yet been tested as thoroughly as the native version.
!   Also, operations that use a pair of Meshes (e.g. regrid weight generation) are only supported between
!   meshes of the same type (e.g. you can regrid between two MOAB meshes, but not between a MOAB and
!   a native mesh).
!
!   \begin{description}
!   \item [moabOn]
!         Output variable which indicates current state of MOAB.
!   \item [{[rc]}]
!         Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
!   \end{description}
!
!EOP
!------------------------------------------------------------------------------
    integer :: localrc
    integer :: intMoabOn

    ! Init localrc
    localrc = ESMF_SUCCESS

    ! Get status from C
    call c_esmc_meshgetMOAB(intMoabOn, localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
         ESMF_CONTEXT, rcToReturn=rc)) return
    
    ! Translate to logical
    moabOn=.false.
    if (intMoabOn .eq. 1) moabOn=.true.
    
    ! Return success
    if (present(rc)) rc = ESMF_SUCCESS
    
    end subroutine ESMF_MeshGetMOAB