Skip to content

Commit 7a069df

Browse files
committed
Move pmid, pint, and pdel variables to dry diagnostics
For MPAS dycore with dry physics, these variables are now output by default. For SE dycore with dry physics, the `pmid` variable is now output by default. Other output logic remains unchanged.
1 parent 83f5c66 commit 7a069df

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

src/physics/cam/cam_diagnostics.F90

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,10 @@ subroutine diag_init_dry(pbuf2d)
263263
call addfld ('OMEGA850', horiz_only, 'A', 'Pa/s', 'Vertical velocity at 850 mbar pressure surface')
264264
call addfld ('OMEGA500', horiz_only, 'A', 'Pa/s', 'Vertical velocity at 500 mbar pressure surface')
265265

266-
call addfld ('PSL', horiz_only, 'A', 'Pa','Sea level pressure')
266+
call addfld ('PSL', horiz_only, 'A', 'Pa', 'Sea level pressure')
267+
call addfld ('PMID', (/ 'lev' /), 'A', 'Pa', 'Pressure at layer midpoints')
268+
call addfld ('PINT', (/ 'ilev' /), 'A', 'Pa', 'Pressure at layer interfaces')
269+
call addfld ('PDEL', (/ 'lev' /), 'A', 'Pa', 'Pressure difference between levels')
267270

268271
call addfld ('T1000', horiz_only, 'A', 'K','Temperature at 1000 mbar pressure surface')
269272
call addfld ('T925', horiz_only, 'A', 'K','Temperature at 925 mbar pressure surface')
@@ -325,6 +328,16 @@ subroutine diag_init_dry(pbuf2d)
325328
call add_default ('PSL ', 1, ' ')
326329
end if
327330

331+
if (dycore_is('SE')) then
332+
call add_default ('PMID', 1, ' ')
333+
end if
334+
335+
if (dycore_is('MPAS')) then
336+
call add_default ('PMID', 1, ' ')
337+
call add_default ('PINT', 1, ' ')
338+
call add_default ('PDEL', 1, ' ')
339+
end if
340+
328341
if (history_vdiag) then
329342
call add_default ('U200', 2, ' ')
330343
call add_default ('V200', 2, ' ')
@@ -461,10 +474,7 @@ subroutine diag_init_moist(pbuf2d)
461474
call addfld ('QBOT', horiz_only, 'A', 'kg/kg','Lowest model level water vapor mixing ratio')
462475

463476
call addfld ('PSDRY', horiz_only, 'A', 'Pa', 'Dry surface pressure')
464-
call addfld ('PMID', (/ 'lev' /), 'A', 'Pa', 'Pressure at layer midpoints')
465-
call addfld ('PINT', (/ 'ilev' /), 'A', 'Pa', 'Pressure at layer interfaces')
466477
call addfld ('PDELDRY', (/ 'lev' /), 'A', 'Pa', 'Dry pressure difference between levels')
467-
call addfld ('PDEL', (/ 'lev' /), 'A', 'Pa', 'Pressure difference between levels')
468478

469479
! outfld calls in diag_conv
470480

@@ -603,13 +613,6 @@ subroutine diag_init_moist(pbuf2d)
603613

604614
if (dycore_is('SE')) then
605615
call add_default ('PSDRY', 1, ' ')
606-
call add_default ('PMID', 1, ' ')
607-
end if
608-
609-
if (dycore_is('MPAS')) then
610-
call add_default ('PINT', 1, ' ')
611-
call add_default ('PMID', 1, ' ')
612-
call add_default ('PDEL', 1, ' ')
613616
end if
614617

615618
if (history_eddy) then
@@ -1067,6 +1070,10 @@ subroutine diag_phys_writeout_dry(state, pbuf, p_surf_t)
10671070
call cpslec(ncol, state%pmid, state%phis, state%ps, state%t, psl, gravit, rair)
10681071
call outfld('PSL', psl, pcols, lchnk)
10691072

1073+
call outfld('PMID', state%pmid, pcols, lchnk)
1074+
call outfld('PINT', state%pint, pcols, lchnk)
1075+
call outfld('PDEL', state%pdel, pcols, lchnk)
1076+
10701077
! Output T,u,v fields on pressure surfaces
10711078
!
10721079
if (hist_fld_active('T850')) then
@@ -1282,11 +1289,7 @@ subroutine diag_phys_writeout_moist(state, pbuf, p_surf_t)
12821289
call constituent_burden_comp(state)
12831290

12841291
call outfld('PSDRY', state%psdry, pcols, lchnk)
1285-
call outfld('PMID', state%pmid, pcols, lchnk)
1286-
call outfld('PINT', state%pint, pcols, lchnk)
12871292
call outfld('PDELDRY', state%pdeldry, pcols, lchnk)
1288-
call outfld('PDEL', state%pdel, pcols, lchnk)
1289-
12901293

12911294
ftem(:ncol,:) = state%u(:ncol,:)*state%q(:ncol,:,ixq)
12921295
call outfld ('UQ ',ftem ,pcols ,lchnk )

0 commit comments

Comments
 (0)