@@ -374,11 +374,7 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
374374!------------------------------------------------------------------------------
375375 type(ESMF_FieldType), pointer :: ftype
376376 integer :: localrc, fieldrank
377- type(ESMF_GridDecompType) :: decompType
378- type(ESMF_GeomType_Flag) :: localGeomType
379377 type(ESMF_Status) :: fieldstatus
380- type(ESMF_Grid) :: l_grid
381- type(ESMF_Mesh) :: l_mesh
382378 type(ESMF_DistGrid) :: distgrid
383379
384380 ! Initialize
@@ -407,16 +403,12 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
407403 status = ftype%status
408404 endif
409405
410- ! set default decomp type to non-arb.
411- decompType = ESMF_GRID_NONARBITRARY
412-
413406 ! Get the geometry type
414407 if (present(geomtype)) then
415- call ESMF_GeomGet(ftype%geom, geomtype=localGeomType , rc=localrc)
408+ call ESMF_GeomGet(ftype%geom, geomtype=geomtype , rc=localrc)
416409 if (ESMF_LogFoundError(localrc, &
417410 ESMF_ERR_PASSTHRU, &
418411 ESMF_CONTEXT, rcToReturn=rc)) return
419- geomtype = localGeomType
420412 endif
421413
422414 if (present(geom)) then
@@ -651,40 +643,8 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
651643 if(present(minIndex) .or. present(maxIndex) .or. present(elementCount) .or. &
652644 present(localMinIndex) .or. present(localMaxIndex) .or. present(localElementCount)) then
653645
654- call ESMF_GeomGet(ftype%geom, geomtype=localGeomType, rc=localrc)
655- if (ESMF_LogFoundError(localrc, &
656- ESMF_ERR_PASSTHRU, &
657- ESMF_CONTEXT, rcToReturn=rc)) return
658-
659- if (localGeomType == ESMF_GEOMTYPE_GRID) then
660- call ESMF_GeomGet(ftype%geom, &
661- grid=l_grid, rc=localrc)
662- if (ESMF_LogFoundError(localrc, &
663- ESMF_ERR_PASSTHRU, &
664- ESMF_CONTEXT, rcToReturn=rc)) return
665- call ESMF_GridGet(l_grid, distgrid=distgrid, rc=localrc)
666- if (ESMF_LogFoundError(localrc, &
667- ESMF_ERR_PASSTHRU, &
668- ESMF_CONTEXT, rcToReturn=rc)) return
669- else if (localGeomType == ESMF_GEOMTYPE_MESH) then
670- call ESMF_GeomGet(ftype%geom, &
671- mesh=l_mesh, rc=localrc)
672- if (ESMF_LogFoundError(localrc, &
673- ESMF_ERR_PASSTHRU, &
674- ESMF_CONTEXT, rcToReturn=rc)) return
675- call ESMF_MeshGet(l_mesh, nodaldistgrid=distgrid, rc=localrc)
676- if (ESMF_LogFoundError(localrc, &
677- ESMF_ERR_PASSTHRU, &
678- ESMF_CONTEXT, rcToReturn=rc)) return
679- else
680- call ESMF_LogSetError(rcToCheck=ESMF_RC_OBJ_BAD, &
681- msg="Only implemented for Grid and Mesh.", &
682- ESMF_CONTEXT, rcToReturn=rc)
683- return
684- endif
685-
686646 call ESMF_ArrayGet(ftype%array, rank=fieldrank, &
687- rc=localrc)
647+ distgrid=distgrid, rc=localrc)
688648 if (localrc .ne. ESMF_SUCCESS) then
689649 call ESMF_LogSetError(rcToCheck=ESMF_RC_OBJ_BAD, &
690650 msg="Cannot retrieve fieldrank from ftypep%array", &
0 commit comments