diff --git a/io/module_wrt_grid_comp.F90 b/io/module_wrt_grid_comp.F90 index 95d2b1063..fe5fc3b2d 100644 --- a/io/module_wrt_grid_comp.F90 +++ b/io/module_wrt_grid_comp.F90 @@ -160,6 +160,7 @@ subroutine wrt_initialize(wrt_comp, imp_state_write, exp_state_write, clock, rc) type(ESMF_Array) :: array_work, array type(ESMF_FieldBundle) :: fieldbdl_work type(ESMF_Field) :: field_work, field + type(ESMF_Decomp_Flag) :: decompflagPTile(2,6) character(len=80) :: attrValueSList(2) type(ESMF_StateItem_Flag), allocatable :: fcstItemTypeList(:) @@ -290,6 +291,7 @@ subroutine wrt_initialize(wrt_comp, imp_state_write, exp_state_write, clock, rc) do tl=1,6 decomptile(1,tl) = 1 decomptile(2,tl) = jidx + decompflagPTile(:,tl) = (/ESMF_DECOMP_SYMMEDGEMAX,ESMF_DECOMP_SYMMEDGEMAX/) enddo call ESMF_AttributeGet(imp_state_write, convention="NetCDF", purpose="FV3", & name="gridfile", value=gridfile, rc=rc) @@ -298,6 +300,7 @@ subroutine wrt_initialize(wrt_comp, imp_state_write, exp_state_write, clock, rc) CALL ESMF_LogWrite("wrtComp: gridfile:"//trim(gridfile),ESMF_LOGMSG_INFO,rc=rc) wrtgrid = ESMF_GridCreateMosaic(filename="INPUT/"//trim(gridfile), & regDecompPTile=decomptile,tileFilePath="INPUT/", & + decompflagPTile=decompflagPTile, & staggerlocList=(/ESMF_STAGGERLOC_CENTER, ESMF_STAGGERLOC_CORNER/), & name='wrt_grid', rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return @@ -319,6 +322,7 @@ subroutine wrt_initialize(wrt_comp, imp_state_write, exp_state_write, clock, rc) ! create the nest Grid by reading it from file but use DELayout wrtGrid = ESMF_GridCreate(filename="INPUT/"//trim(gridfile), & fileformat=ESMF_FILEFORMAT_GRIDSPEC, regDecomp=regDecomp, & + decompflag=(/ESMF_DECOMP_SYMMEDGEMAX,ESMF_DECOMP_SYMMEDGEMAX/), & delayout=delayout, isSphere=.false., indexflag=ESMF_INDEX_DELOCAL, & rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return diff --git a/module_fcst_grid_comp.F90 b/module_fcst_grid_comp.F90 index 63b392f7d..7742eefbc 100644 --- a/module_fcst_grid_comp.F90 +++ b/module_fcst_grid_comp.F90 @@ -211,6 +211,8 @@ subroutine fcst_initialize(fcst_comp, importState, exportState, clock, rc) integer, allocatable, dimension(:) :: isl, iel, jsl, jel integer, allocatable, dimension(:,:,:) :: deBlockList + type(ESMF_Decomp_Flag) :: decompflagPTile(2,6) + integer :: globalTileLayout(2) integer :: nestRootPet, peListSize(1) integer, allocatable :: petMap(:) @@ -431,6 +433,7 @@ subroutine fcst_initialize(fcst_comp, importState, exportState, clock, rc) maxIndex=(/atm_int_state%Atm%mlon,atm_int_state%Atm%mlat/), & gridEdgeLWidth=(/0,0/), & gridEdgeUWidth=(/0,0/), & + decompflag=(/ESMF_DECOMP_SYMMEDGEMAX,ESMF_DECOMP_SYMMEDGEMAX/), & name="fcst_grid", & indexflag=ESMF_INDEX_DELOCAL, & rc=rc); ESMF_ERR_ABORT(rc) @@ -468,9 +471,11 @@ subroutine fcst_initialize(fcst_comp, importState, exportState, clock, rc) do tl=1,6 decomptile(1,tl) = atm_int_state%Atm%layout(1) decomptile(2,tl) = atm_int_state%Atm%layout(2) + decompflagPTile(:,tl) = (/ESMF_DECOMP_SYMMEDGEMAX,ESMF_DECOMP_SYMMEDGEMAX/) enddo fcstGrid = ESMF_GridCreateMosaic(filename="INPUT/"//trim(gridfile), & regDecompPTile=decomptile,tileFilePath="INPUT/", & + decompflagPTile=decompflagPTile, & staggerlocList=(/ESMF_STAGGERLOC_CENTER, ESMF_STAGGERLOC_CORNER/), & name='fcst_grid', rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return @@ -518,6 +523,7 @@ subroutine fcst_initialize(fcst_comp, importState, exportState, clock, rc) ! create the nest Grid by reading it from file but use DELayout fcstGrid = ESMF_GridCreate(filename='INPUT/grid.nest02.tile7.nc', & fileformat=ESMF_FILEFORMAT_GRIDSPEC, regDecomp=regDecomp, & + decompflag=(/ESMF_DECOMP_SYMMEDGEMAX,ESMF_DECOMP_SYMMEDGEMAX/), & delayout=delayout, isSphere=.false., indexflag=ESMF_INDEX_DELOCAL, & rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return