test_create_dual_from_file Subroutine

subroutine test_create_dual_from_file(correct, rc)

Arguments

Type IntentOptional Attributes Name
logical :: correct
integer :: rc

Calls

proc~~test_create_dual_from_file~~CallsGraph proc~test_create_dual_from_file test_create_dual_from_file interface~esmf_meshcreate ESMF_MeshCreate proc~test_create_dual_from_file->interface~esmf_meshcreate interface~esmf_vmget ESMF_VMGet proc~test_create_dual_from_file->interface~esmf_vmget proc~esmf_meshdestroy ESMF_MeshDestroy proc~test_create_dual_from_file->proc~esmf_meshdestroy proc~esmf_vmgetglobal ESMF_VMGetGlobal proc~test_create_dual_from_file->proc~esmf_vmgetglobal 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 proc~esmf_vmgetdefault ESMF_VMGetDefault interface~esmf_vmget->proc~esmf_vmgetdefault proc~esmf_vmgetpetspecific ESMF_VMGetPetSpecific interface~esmf_vmget->proc~esmf_vmgetpetspecific c_esmc_basesetstatus c_esmc_basesetstatus proc~esmf_meshdestroy->c_esmc_basesetstatus c_esmc_meshdestroy c_esmc_meshdestroy proc~esmf_meshdestroy->c_esmc_meshdestroy c_esmc_meshgetisfree c_esmc_meshgetisfree proc~esmf_meshdestroy->c_esmc_meshgetisfree proc~esmf_imerr ESMF_IMErr proc~esmf_meshdestroy->proc~esmf_imerr proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_meshdestroy->proc~esmf_logfounderror proc~esmf_meshgetinit ESMF_MeshGetInit proc~esmf_meshdestroy->proc~esmf_meshgetinit

Called by

proc~~test_create_dual_from_file~~CalledByGraph proc~test_create_dual_from_file test_create_dual_from_file program~esmf_meshfileioutest ESMF_MeshFileIOUTest program~esmf_meshfileioutest->proc~test_create_dual_from_file

Source Code

subroutine  test_create_dual_from_file(correct, rc)
  type(ESMF_Mesh) :: mesh
  logical :: correct
  integer :: rc

  integer :: petCount, localPet
  type(ESMF_VM) :: vm

  ! get global VM
  call ESMF_VMGetGlobal(vm, rc=rc)
  if (rc /= ESMF_SUCCESS) return
  call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=rc)
  if (rc /= ESMF_SUCCESS) return

  ! return with an error if not 1 or 4 PETs
  if ((petCount /= 1) .and. (petCount /=4)) then
     rc=ESMF_FAILURE
     return
  endif

  ! Read mesh from file 
  mesh=ESMF_MeshCreate("data/test_sph_3x3_esmf.nc", &
       fileformat=ESMF_FILEFORMAT_ESMFMESH, &
       convertToDual=.true., &
       rc=rc)
  if (rc /= ESMF_SUCCESS) return
  
   ! DEBUG OUTPUT
   !call ESMF_MeshWrite(mesh,"mesh_dual",rc=rc)
   !if (rc .ne. ESMF_SUCCESS) rc=ESMF_FAILURE

   ! Get rid of Mesh
   call ESMF_MeshDestroy(mesh, rc=rc)
   if (rc /= ESMF_SUCCESS) return

   ! Return success
   rc=ESMF_SUCCESS

end subroutine test_create_dual_from_file