Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_Mesh), | intent(in) | :: | mesh | |||
character(len=*), | intent(in) | :: | filename | |||
integer, | intent(out), | optional | :: | rc |
subroutine ESMF_MeshWrite(mesh, filename, rc) ! ! !ARGUMENTS: type(ESMF_Mesh), intent(in) :: mesh character (len=*), intent(in) :: filename integer, intent(out), optional :: rc ! ! !DESCRIPTION: ! Write a mesh to VTK file. ! ! \begin{description} ! \item [mesh] ! The mesh. ! \item[filename] ! The name of the output file. ! \item [{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! !EOPI !------------------------------------------------------------------------------ integer :: localrc type(ESMF_Logical) :: isfree type(ESMF_MeshStatus_Flag) :: status ! initialize return code; assume routine not implemented localrc = ESMF_RC_NOT_IMPL if (present(rc)) rc = ESMF_RC_NOT_IMPL ! Check init status of arguments ESMF_INIT_CHECK_DEEP(ESMF_MeshGetInit, mesh, rc) call C_ESMC_MeshGetIsFree(mesh, isfree) if (isfree == ESMF_TRUE) then call ESMF_LogSetError(rcToCheck=ESMF_RC_OBJ_WRONG, & msg="- the mesh internals have been freed", & ESMF_CONTEXT, rcToReturn=rc) return endif call C_ESMC_MeshGetStatus(mesh, status) if (status .ne. ESMF_MESHSTATUS_COMPLETE) then call ESMF_LogSetError(rcToCheck=ESMF_RC_OBJ_WRONG, & msg="- the mesh has not been fully created", & ESMF_CONTEXT, rcToReturn=rc) return endif call C_ESMC_MeshWrite(mesh%this, filename, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return if (present(rc)) rc = localrc end subroutine ESMF_MeshWrite