f_esmf_fieldcreatemeshas Subroutine

subroutine f_esmf_fieldcreatemeshas(field, mesh_pointer, arrayspec, gridToFieldMap, len1, gtfmpresent, ungriddedLBound, len2, uglbpresent, ungriddedUBound, len3, ugubpresent, name, rc)

Uses

  • proc~~f_esmf_fieldcreatemeshas~~UsesGraph proc~f_esmf_fieldcreatemeshas f_esmf_fieldcreatemeshas ESMF_FieldCreateMod ESMF_FieldCreateMod proc~f_esmf_fieldcreatemeshas->ESMF_FieldCreateMod module~esmf_arrayspecmod ESMF_ArraySpecMod proc~f_esmf_fieldcreatemeshas->module~esmf_arrayspecmod module~esmf_basemod ESMF_BaseMod proc~f_esmf_fieldcreatemeshas->module~esmf_basemod module~esmf_fieldmod ESMF_FieldMod proc~f_esmf_fieldcreatemeshas->module~esmf_fieldmod module~esmf_logerrmod ESMF_LogErrMod proc~f_esmf_fieldcreatemeshas->module~esmf_logerrmod module~esmf_meshmod ESMF_MeshMod proc~f_esmf_fieldcreatemeshas->module~esmf_meshmod module~esmf_utiltypesmod ESMF_UtilTypesMod proc~f_esmf_fieldcreatemeshas->module~esmf_utiltypesmod

Arguments

Type IntentOptional Attributes Name
type(ESMF_Field) :: field
type(ESMF_Pointer) :: mesh_pointer
type(ESMF_ArraySpec) :: arrayspec
integer :: gridToFieldMap(1:len1)
integer, intent(in) :: len1
integer, intent(in) :: gtfmpresent
integer :: ungriddedLBound(1:len2)
integer, intent(in) :: len2
integer, intent(in) :: uglbpresent
integer :: ungriddedUBound(1:len3)
integer, intent(in) :: len3
integer, intent(in) :: ugubpresent
character(len=*), intent(in) :: name
integer, intent(out) :: rc

Calls

proc~~f_esmf_fieldcreatemeshas~~CallsGraph proc~f_esmf_fieldcreatemeshas f_esmf_fieldcreatemeshas esmf_fieldcreate esmf_fieldcreate proc~f_esmf_fieldcreatemeshas->esmf_fieldcreate proc~esmf_logfounderror ESMF_LogFoundError proc~f_esmf_fieldcreatemeshas->proc~esmf_logfounderror proc~esmf_meshcreatefromintptr ESMF_MeshCreateFromIntPtr proc~f_esmf_fieldcreatemeshas->proc~esmf_meshcreatefromintptr 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 proc~esmf_meshcreatefromintptr->proc~esmf_logfounderror c_esmc_meshcreateelemdistgrid c_esmc_meshcreateelemdistgrid proc~esmf_meshcreatefromintptr->c_esmc_meshcreateelemdistgrid c_esmc_meshcreatefromintptr c_esmc_meshcreatefromintptr proc~esmf_meshcreatefromintptr->c_esmc_meshcreatefromintptr c_esmc_meshcreatenodedistgrid c_esmc_meshcreatenodedistgrid proc~esmf_meshcreatefromintptr->c_esmc_meshcreatenodedistgrid c_esmc_meshsetstatus c_esmc_meshsetstatus proc~esmf_meshcreatefromintptr->c_esmc_meshsetstatus 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

Source Code

  subroutine f_esmf_fieldcreatemeshas(field, mesh_pointer, arrayspec, &
    gridToFieldMap, len1, gtfmpresent, &
    ungriddedLBound, len2, uglbpresent, &
    ungriddedUBound, len3, ugubpresent, name, rc)

    use ESMF_UtilTypesMod
    use ESMF_BaseMod
    use ESMF_LogErrMod
    use ESMF_ArraySpecMod
    use ESMF_MeshMod
    use ESMF_FieldMod
    use ESMF_FieldCreateMod

    implicit none

    ! arguments
    type(ESMF_Field)               :: field
    type(ESMF_Pointer)             :: mesh_pointer
    type(ESMF_ArraySpec)           :: arrayspec
    integer, intent(in)            :: len1, len2, len3
    integer, intent(in)            :: gtfmpresent, uglbpresent, ugubpresent
    integer                        :: gridToFieldMap(1:len1), &
                                      ungriddedLBound(1:len2), &
                                      ungriddedUBound(1:len3)
    character(len=*),intent(in)    :: name
    integer, intent(out)           :: rc              
  
    ! local variables  
    type(ESMF_Mesh)          :: mesh
  
  ! initialize return code; assume routine not implemented
    rc = ESMF_RC_NOT_IMPL

    ! mesh%this = mesh_pointer

    mesh = ESMF_MeshCreateFromIntPtr(mesh_pointer)
  
    if (gtfmpresent == 0 .and. uglbpresent == 0 .and. ugubpresent == 0) then
    field = ESMF_FieldCreate(mesh, arrayspec=arrayspec, &
        name=name, rc=rc)    
    else if (gtfmpresent == 1 .and. uglbpresent == 0 .and. ugubpresent == 0) then
    field = ESMF_FieldCreate(mesh, arrayspec=arrayspec, &
        gridToFieldMap=gridToFieldMap, &
        name=name, rc=rc)    
    else if (gtfmpresent == 0 .and. uglbpresent == 1 .and. ugubpresent == 0) then
    field = ESMF_FieldCreate(mesh, arrayspec=arrayspec, &
        ungriddedLBound=ungriddedLBound, &
        name=name, rc=rc)    
    else if (gtfmpresent == 0 .and. uglbpresent == 0 .and. ugubpresent == 1) then
    field = ESMF_FieldCreate(mesh, arrayspec=arrayspec, &
        ungriddedUBound=ungriddedUBound, &
        name=name, rc=rc)    
    else if (gtfmpresent == 1 .and. uglbpresent == 1 .and. ugubpresent == 0) then
    field = ESMF_FieldCreate(mesh, arrayspec=arrayspec, &
        gridToFieldMap=gridToFieldMap, &
        ungriddedLBound=ungriddedLBound, &
        name=name, rc=rc)    
    else if (gtfmpresent == 0 .and. uglbpresent == 1 .and. ugubpresent == 1) then
    field = ESMF_FieldCreate(mesh, arrayspec=arrayspec, &
        ungriddedLBound=ungriddedLBound, &
        ungriddedUBound=ungriddedUBound, &
        name=name, rc=rc)    
    else if (gtfmpresent == 1 .and. uglbpresent == 0 .and. ugubpresent == 1) then
    field = ESMF_FieldCreate(mesh, arrayspec=arrayspec, &
        gridToFieldMap=gridToFieldMap, &
        ungriddedUBound=ungriddedUBound, &
        name=name, rc=rc)    
    else if (gtfmpresent == 1 .and. uglbpresent == 1 .and. ugubpresent == 1) then
    field = ESMF_FieldCreate(mesh, arrayspec=arrayspec, &
        gridToFieldMap=gridToFieldMap, &
        ungriddedLBound=ungriddedLBound, &
        ungriddedUBound=ungriddedUBound, &
        name=name, rc=rc)    
    endif
    if (ESMF_LogFoundError(rc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return
   
    rc = ESMF_SUCCESS
  
  end subroutine f_esmf_fieldcreatemeshas