@@ -108,7 +108,7 @@ subroutine write_point_context(subgrid_index, subgrid_level)
108108 !
109109 use clm_varctl , only : iulog
110110 use decompMod , only : subgrid_level_gridcell, subgrid_level_landunit, subgrid_level_column, subgrid_level_patch
111- use decompMod , only : get_global_index
111+ use decompMod , only : get_global_index, procinfo
112112 use GridcellType , only : grc
113113 use LandunitType , only : lun
114114 use ColumnType , only : col
@@ -124,6 +124,7 @@ subroutine write_point_context(subgrid_index, subgrid_level)
124124 integer :: igrc= unset, ilun= unset, icol= unset, ipft= unset ! Local index for grid-cell, landunit, column, and patch
125125 integer :: ggrc= unset, glun= unset, gcol= unset, gpft= unset ! Global index for grid-cell, landunit, column, and patch
126126 logical :: bad_point = .false. ! Flag to indicate if the point is bad (i.e., global index is -1)
127+ integer :: i, j ! 2D global gridcell indices
127128 !- ----------------------------------------------------------------------
128129
129130 if (subgrid_level == subgrid_level_gridcell) then
@@ -201,28 +202,19 @@ subroutine write_point_context(subgrid_index, subgrid_level)
201202
202203 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : local gridcell index = ' , igrc
203204 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global gridcell index = ' , ggrc
204- write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell longitude = ' , grc% londeg(igrc)
205- write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell latitude = ' , grc% latdeg(igrc)
206205
207206 else if (subgrid_level == subgrid_level_landunit) then
208207
209208 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : local landunit index = ' , ilun
210209 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global landunit index = ' , glun
211210 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global gridcell index = ' , ggrc
212- write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell longitude = ' , grc% londeg(igrc)
213- write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell latitude = ' , grc% latdeg(igrc)
214- write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : landunit type = ' , lun% itype(subgrid_index)
215211
216212 else if (subgrid_level == subgrid_level_column) then
217213
218214 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : local column index = ' , icol
219215 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global column index = ' , gcol
220216 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global landunit index = ' , glun
221217 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global gridcell index = ' , ggrc
222- write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell longitude = ' , grc% londeg(igrc)
223- write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell latitude = ' , grc% latdeg(igrc)
224- write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : column type = ' , col% itype(icol)
225- write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : landunit type = ' , lun% itype(ilun)
226218
227219 else if (subgrid_level == subgrid_level_patch) then
228220
@@ -231,18 +223,45 @@ subroutine write_point_context(subgrid_index, subgrid_level)
231223 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global column index = ' , gcol
232224 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global landunit index = ' , glun
233225 write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : global gridcell index = ' , ggrc
234- write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell longitude = ' , grc% londeg(igrc)
235- write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell latitude = ' , grc% latdeg(igrc)
236- write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : pft type = ' , patch% itype(ipft)
237- write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : column type = ' , col% itype(icol)
238- write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : landunit type = ' , lun% itype(ilun)
239-
240226 else
241227 write (iulog,* ) ' subgrid_level not supported: ' , subgrid_level
242228 write (iulog,* ) errMsg(sourcefile, __LINE__)
243229 write (iulog,* ) ' Continuing the endrun without writing point context information'
244230 return
245231 end if
232+ if ( subgrid_level >= subgrid_level_landunit )then
233+ if ( ilun > 0 )then
234+ write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : landunit type = ' , lun% itype(ilun)
235+ else
236+ write (iulog,' (a)' ) ' WARNING: Trouble getting the landunit index'
237+ end if
238+ if ( subgrid_level >= subgrid_level_column )then
239+ if ( icol > 0 )then
240+ write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : column type = ' , col% itype(icol)
241+ else
242+ write (iulog,' (a)' ) ' WARNING: Trouble getting the column index'
243+ end if
244+ if ( subgrid_level >= subgrid_level_patch )then
245+ if ( ipft > 0 )then
246+ write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : patch type = ' , patch% itype(ipft)
247+ else
248+ write (iulog,' (a)' ) ' WARNING: Trouble getting the patch index'
249+ end if
250+ end if
251+ end if
252+ end if
253+ if ( igrc > 0 ) then
254+ write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell longitude = ' , grc% londeg(igrc)
255+ write (iulog,' (a, i0, a, f12.7)' ) ' iam = ' , iam, ' : gridcell latitude = ' , grc% latdeg(igrc)
256+ else
257+ write (iulog,' (a)' ) ' WARNING: Trouble getting the gridcell index'
258+ end if
259+ call procinfo% calc_globalxy_indices( igrc, i, j )
260+ if ( (i /= - 1 ) .and. (j /= - 1 ) ) then
261+ write (iulog,' (a, i0, a, i0)' ) ' iam = ' , iam, ' : 2D gridcell indices = (' , i, ' , ' , j, ' )'
262+ else
263+ write (iulog,' (a)' ) ' WARNING: Trouble getting the 2D gridcell indices'
264+ end if
246265
247266 end subroutine write_point_context
248267
0 commit comments