@@ -230,9 +230,12 @@ subroutine diag_init_dry(pbuf2d)
230230 call register_vector_field(' UTEND_TOT' ,' VTEND_TOT' )
231231
232232 ! Debugging negative water output fields
233- call addfld (' INEGCLPTEND ' , (/ ' lev' / ), ' A' , ' kg/kg/s' , ' Cloud ice tendency due to clipping neg values after microp' , sampled_on_subcycle= .true. )
234- call addfld (' LNEGCLPTEND ' , (/ ' lev' / ), ' A' , ' kg/kg/s' , ' Cloud liq tendency due to clipping neg values after microp' , sampled_on_subcycle= .true. )
235- call addfld (' VNEGCLPTEND ' , (/ ' lev' / ), ' A' , ' kg/kg/s' , ' Vapor tendency due to clipping neg values after microp' , sampled_on_subcycle= .true. )
233+ call addfld (' INEGCLPTEND ' , (/ ' lev' / ), ' A' , ' kg/kg/s' , &
234+ ' Cloud ice tendency due to clipping neg values after microp' , sampled_on_subcycle= .true. )
235+ call addfld (' LNEGCLPTEND ' , (/ ' lev' / ), ' A' , ' kg/kg/s' , &
236+ ' Cloud liq tendency due to clipping neg values after microp' , sampled_on_subcycle= .true. )
237+ call addfld (' VNEGCLPTEND ' , (/ ' lev' / ), ' A' , ' kg/kg/s' , &
238+ ' Vapor tendency due to clipping neg values after microp' , sampled_on_subcycle= .true. )
236239
237240 call addfld (' Z3' , (/ ' lev' / ), ' A' , ' m' , ' Geopotential Height (above sea level)' )
238241 call addfld (' Z1000' , horiz_only, ' A' , ' m' , ' Geopotential Z at 1000 mbar pressure surface' )
@@ -263,7 +266,10 @@ subroutine diag_init_dry(pbuf2d)
263266 call addfld (' OMEGA850' , horiz_only, ' A' , ' Pa/s' , ' Vertical velocity at 850 mbar pressure surface' )
264267 call addfld (' OMEGA500' , horiz_only, ' A' , ' Pa/s' , ' Vertical velocity at 500 mbar pressure surface' )
265268
266- call addfld (' PSL' , horiz_only, ' A' , ' Pa' ,' Sea level pressure' )
269+ call addfld (' PSL' , horiz_only, ' A' , ' Pa' , ' Sea level pressure' )
270+ call addfld (' PMID' , (/ ' lev' / ), ' A' , ' Pa' , ' Pressure at layer midpoints' )
271+ call addfld (' PINT' , (/ ' ilev' / ), ' A' , ' Pa' , ' Pressure at layer interfaces' )
272+ call addfld (' PDEL' , (/ ' lev' / ), ' A' , ' Pa' , ' Pressure difference between levels' )
267273
268274 call addfld (' T1000' , horiz_only, ' A' , ' K' ,' Temperature at 1000 mbar pressure surface' )
269275 call addfld (' T925' , horiz_only, ' A' , ' K' ,' Temperature at 925 mbar pressure surface' )
@@ -325,6 +331,16 @@ subroutine diag_init_dry(pbuf2d)
325331 call add_default (' PSL ' , 1 , ' ' )
326332 end if
327333
334+ if (dycore_is(' SE' )) then
335+ call add_default (' PMID' , 1 , ' ' )
336+ end if
337+
338+ if (dycore_is(' MPAS' )) then
339+ call add_default (' PMID' , 1 , ' ' )
340+ call add_default (' PINT' , 1 , ' ' )
341+ call add_default (' PDEL' , 1 , ' ' )
342+ end if
343+
328344 if (history_vdiag) then
329345 call add_default (' U200' , 2 , ' ' )
330346 call add_default (' V200' , 2 , ' ' )
@@ -402,16 +418,26 @@ subroutine diag_init_dry(pbuf2d)
402418
403419 ! Create budgets that are a sum/dif of 2 stages
404420
405- call cam_budget_em_register(' dEdt_param_efix_physE' ,' phAP' ,' phBF' ,' phy' ,' dif' ,longname= ' dE/dt CAM physics + energy fixer using physics E formula (phAP-phBF)' )
406- call cam_budget_em_register(' dEdt_param_efix_dynE' ,' dyAP' ,' dyBF' ,' phy' ,' dif' ,longname= ' dE/dt CAM physics + energy fixer using dycore E formula (dyAP-dyBF)' )
407- call cam_budget_em_register(' dEdt_param_physE' ,' phAP' ,' phBP' ,' phy' ,' dif' ,longname= ' dE/dt CAM physics using physics E formula (phAP-phBP)' )
408- call cam_budget_em_register(' dEdt_param_dynE' ,' dyAP' ,' dyBP' ,' phy' ,' dif' ,longname= ' dE/dt CAM physics using dycore E (dyAP-dyBP)' )
409- call cam_budget_em_register(' dEdt_dme_adjust_physE' ,' phAM' ,' phAP' ,' phy' ,' dif' ,longname= ' dE/dt dry mass adjustment using physics E formula (phAM-phAP)' )
410- call cam_budget_em_register(' dEdt_dme_adjust_dynE' ,' dyAM' ,' dyAP' ,' phy' ,' dif' ,longname= ' dE/dt dry mass adjustment using dycore E (dyAM-dyAP)' )
411- call cam_budget_em_register(' dEdt_efix_physE' ,' phBP' ,' phBF' ,' phy' ,' dif' ,longname= ' dE/dt energy fixer using physics E formula (phBP-phBF)' )
412- call cam_budget_em_register(' dEdt_efix_dynE' ,' dyBP' ,' dyBF' ,' phy' ,' dif' ,longname= ' dE/dt energy fixer using dycore E formula (dyBP-dyBF)' )
413- call cam_budget_em_register(' dEdt_phys_tot_physE' ,' phAM' ,' phBF' ,' phy' ,' dif' ,longname= ' dE/dt physics total using physics E formula (phAM-phBF)' )
414- call cam_budget_em_register(' dEdt_phys_tot_dynE' ,' dyAM' ,' dyBF' ,' phy' ,' dif' ,longname= ' dE/dt physics total using dycore E (dyAM-dyBF)' )
421+ call cam_budget_em_register(' dEdt_param_efix_physE' ,' phAP' ,' phBF' ,' phy' ,' dif' ,&
422+ longname= ' dE/dt CAM physics + energy fixer using physics E formula (phAP-phBF)' )
423+ call cam_budget_em_register(' dEdt_param_efix_dynE' ,' dyAP' ,' dyBF' ,' phy' ,' dif' ,&
424+ longname= ' dE/dt CAM physics + energy fixer using dycore E formula (dyAP-dyBF)' )
425+ call cam_budget_em_register(' dEdt_param_physE' ,' phAP' ,' phBP' ,' phy' ,' dif' ,&
426+ longname= ' dE/dt CAM physics using physics E formula (phAP-phBP)' )
427+ call cam_budget_em_register(' dEdt_param_dynE' ,' dyAP' ,' dyBP' ,' phy' ,' dif' ,&
428+ longname= ' dE/dt CAM physics using dycore E (dyAP-dyBP)' )
429+ call cam_budget_em_register(' dEdt_dme_adjust_physE' ,' phAM' ,' phAP' ,' phy' ,' dif' ,&
430+ longname= ' dE/dt dry mass adjustment using physics E formula (phAM-phAP)' )
431+ call cam_budget_em_register(' dEdt_dme_adjust_dynE' ,' dyAM' ,' dyAP' ,' phy' ,' dif' ,&
432+ longname= ' dE/dt dry mass adjustment using dycore E (dyAM-dyAP)' )
433+ call cam_budget_em_register(' dEdt_efix_physE' ,' phBP' ,' phBF' ,' phy' ,' dif' ,&
434+ longname= ' dE/dt energy fixer using physics E formula (phBP-phBF)' )
435+ call cam_budget_em_register(' dEdt_efix_dynE' ,' dyBP' ,' dyBF' ,' phy' ,' dif' ,&
436+ longname= ' dE/dt energy fixer using dycore E formula (dyBP-dyBF)' )
437+ call cam_budget_em_register(' dEdt_phys_tot_physE' ,' phAM' ,' phBF' ,' phy' ,' dif' ,&
438+ longname= ' dE/dt physics total using physics E formula (phAM-phBF)' )
439+ call cam_budget_em_register(' dEdt_phys_tot_dynE' ,' dyAM' ,' dyBF' ,' phy' ,' dif' ,&
440+ longname= ' dE/dt physics total using dycore E (dyAM-dyBF)' )
415441 endif
416442 end subroutine diag_init_dry
417443
@@ -461,10 +487,7 @@ subroutine diag_init_moist(pbuf2d)
461487 call addfld (' QBOT' , horiz_only, ' A' , ' kg/kg' ,' Lowest model level water vapor mixing ratio' )
462488
463489 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' )
466490 call addfld (' PDELDRY' , (/ ' lev' / ), ' A' , ' Pa' , ' Dry pressure difference between levels' )
467- call addfld (' PDEL' , (/ ' lev' / ), ' A' , ' Pa' , ' Pressure difference between levels' )
468491
469492 ! outfld calls in diag_conv
470493
@@ -603,13 +626,6 @@ subroutine diag_init_moist(pbuf2d)
603626
604627 if (dycore_is(' SE' )) then
605628 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 , ' ' )
613629 end if
614630
615631 if (history_eddy) then
@@ -1067,6 +1083,10 @@ subroutine diag_phys_writeout_dry(state, pbuf, p_surf_t)
10671083 call cpslec(ncol, state% pmid, state% phis, state% ps, state% t, psl, gravit, rair)
10681084 call outfld(' PSL' , psl, pcols, lchnk)
10691085
1086+ call outfld(' PMID' , state% pmid, pcols, lchnk)
1087+ call outfld(' PINT' , state% pint, pcols, lchnk)
1088+ call outfld(' PDEL' , state% pdel, pcols, lchnk)
1089+
10701090 ! Output T,u,v fields on pressure surfaces
10711091 !
10721092 if (hist_fld_active(' T850' )) then
@@ -1282,11 +1302,7 @@ subroutine diag_phys_writeout_moist(state, pbuf, p_surf_t)
12821302 call constituent_burden_comp(state)
12831303
12841304 call outfld(' PSDRY' , state% psdry, pcols, lchnk)
1285- call outfld(' PMID' , state% pmid, pcols, lchnk)
1286- call outfld(' PINT' , state% pint, pcols, lchnk)
12871305 call outfld(' PDELDRY' , state% pdeldry, pcols, lchnk)
1288- call outfld(' PDEL' , state% pdel, pcols, lchnk)
1289-
12901306
12911307 ftem(:ncol,:) = state% u(:ncol,:)* state% q(:ncol,:,ixq)
12921308 call outfld (' UQ ' ,ftem ,pcols ,lchnk )
0 commit comments