Skip to content

Commit

Permalink
Merge pull request ESCOMP#1198 from fvitt/aoa_output
Browse files Browse the repository at this point in the history
cam6_4_051: Age of air diagnostics
  • Loading branch information
fvitt authored Jan 2, 2025
2 parents b4c6463 + 286df59 commit 42e1896
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 8 deletions.
92 changes: 92 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,96 @@
===============================================================

Tag name: cam6_4_051
Originator(s): fvitt
Date: 2 Jan 2025
One-line Summary: Updates to age of air tracers history output
Github PR URL: https://github.com/ESCOMP/CAM/pull/1198

Purpose of changes (include the issue number and title text for each relevant GitHub issue):

Changes to age of air output #1197
. Output age of air tracers mix ratios to history as soon as the tendencies are update,
before the tracers are transported in the time loop
. Rename history field 'AOAMF' as 'AOA1'

Describe any changes made to build system: N/A

Describe any changes made to the namelist: N/A

List any changes to the defaults for the boundary datasets: N/A

Describe any substantial timing or memory changes: N/A

Code reviewed by: cacraigucar

List all files eliminated: N/A

List all files added and what they do: N/A

List all existing files that have been modified, and describe the changes:
M src/physics/cam/aoa_tracers.F90
- add outfld calls for AOA tracers
- rename 'AOAMF' as 'AOA1'

If there were any failures reported from running test_driver.sh on any test
platform, and checkin with these failures has been OK'd by the gatekeeper,
then copy the lines from the td.*.status files for the failed tests to the
appropriate machine below. All failed tests must be justified.

derecho/intel/aux_cam:

PEND SMS_D_Ln9.f19_f19_mg17.FXHIST.derecho_intel.cam-outfrq9s_amie
FAIL SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s
- pre-existing failures due to build-namelist error requiring CLM/CTSM external update.

DIFF SMS_Lh12.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq3h
FAIL ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s
- pre-existing failure due to HEMCO not having reproducible results issues #1018 and #856

DIFF ERC_D_Ln9.f19_f19_mg17.QPX2000.derecho_intel.cam-outfrq3s
DIFF ERP_Ld3.f09_f09_mg17.FWHIST.derecho_intel.cam-reduced_hist1d
DIFF ERP_Ld3.ne30pg3_ne30pg3_mg17.FHISTC_MTt4s.derecho_intel.cam-outfrq1d_aoa
DIFF ERP_Lh12.f19_f19_mg17.FW4madSD.derecho_intel.cam-outfrq3h
DIFF ERP_Ln9.f19_f19_mg17.FWsc1850.derecho_intel.cam-outfrq9s
DIFF ERP_Ln9.ne30pg3_ne30pg3_mg17.FCnudged.derecho_intel.cam-outfrq9s
DIFF ERP_Ln9.ne30pg3_ne30pg3_mg17.FW2000climo.derecho_intel.cam-outfrq9s
DIFF ERS_Ln9.f09_f09_mg17.FX2000.derecho_intel.cam-outfrq9s
DIFF ERS_Ln9.f19_f19_mg17.FXSD.derecho_intel.cam-outfrq9s
DIFF SMS_D_Ln9.f09_f09_mg17.FCts2nudged.derecho_intel.cam-outfrq9s_leapday
DIFF SMS_D_Ln9.f09_f09_mg17.FCvbsxHIST.derecho_intel.cam-outfrq9s
DIFF SMS_D_Ln9.f19_f19_mg17.FWma2000climo.derecho_intel.cam-outfrq9s
DIFF SMS_D_Ln9.f19_f19_mg17.FWma2000climo.derecho_intel.cam-outfrq9s_waccm_ma_mam4
DIFF SMS_D_Ln9.f19_f19_mg17.QPC2000climo.derecho_intel.cam-outfrq3s_usecase
DIFF SMS_D_Ln9.ne16_ne16_mg17.QPX2000.derecho_intel.cam-outfrq9s
DIFF SMS_D_Ln9.ne16pg3_ne16pg3_mg17.FX2000.derecho_intel.cam-outfrq9s
DIFF SMS_Ld1.f09_f09_mg17.FW2000climo.derecho_intel.cam-outfrq1d
DIFF SMS_Ld1.ne30pg3_ne30pg3_mg17.FC2010climo.derecho_intel.cam-outfrq1d
DIFF SMS_Ln9.f09_f09_mg17.FW1850.derecho_intel.cam-reduced_hist3s
DIFF SMS_Ln9.ne30pg3_ne30pg3_mg17.FW2000climo.derecho_intel.cam-outfrq9s_rrtmgp
- expected differences in AOA history fields, otherwise bit-for-bit unchanged

derecho/nvhpc/aux_cam: All PASS

izumi/nag/aux_cam:
FAIL DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae
- pre-existing failure -- issue #670

DIFF ERC_D_Ln9.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s
DIFF SMS_D_Ln3.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s
DIFF SMS_D_Ln6.ne5_ne5_mg37.QPWmaC4.izumi_nag.cam-outfrq3s_physgrid_tem
- expected differences in AOA history fields, otherwise bit-for-bit unchanged

izumi/gnu/aux_cam:
DIFF ERP_Ln9_P24x2.f45_f45_mg37.QPWmaC6.izumi_gnu.cam-outfrq9s_mee_fluxes
DIFF SMS_D_Ln9.f10_f10_mg37.QPWmaC4.izumi_gnu.cam-outfrq9s_apmee
DIFF SMS_P48x1_D_Ln9.f19_f19_mg17.FW4madSD.izumi_gnu.cam-outfrq9s
- expected differences in AOA history fields, otherwise bit-for-bit unchanged

Summarize any changes to answers:
Differences in AOA history fields, otherwise bit-for-bit unchanged

===============================================================
===============================================================
Tag name: cam6_4_050
Originator(s): jimmielin
Date: 31 Dec 2024
Expand Down
27 changes: 19 additions & 8 deletions src/physics/cam/aoa_tracers.F90
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ module aoa_tracers
integer, parameter :: ncnst=3 ! number of constituents implemented by this module

! constituent names
character(len=6), parameter :: c_names(ncnst) = (/'AOAMF ', 'HORZ ', 'VERT '/)
character(len=4), parameter :: c_names(ncnst) = (/'AOA1', 'HORZ', 'VERT'/)

! constituent source/sink names
character(len=8), parameter :: src_names(ncnst) = (/'AOAMFSRC', 'HORZSRC ', 'VERTSRC '/)
character(len=7), parameter :: src_names(ncnst) = (/'AOA1SRC', 'HORZSRC', 'VERTSRC'/)

integer :: ifirst = -1 ! global index of first constituent
integer :: ixaoa = -1 ! global index for AOAMFSRC tracer
integer :: ixaoa = -1 ! global index for AOA1SRC tracer
integer :: ixht = -1 ! global index for HORZ tracer
integer :: ixvt = -1 ! global index for VERT tracer

Expand Down Expand Up @@ -132,12 +132,12 @@ subroutine aoa_tracers_register
if (.not. aoa_tracers_flag) return

call cnst_add(c_names(1), mwdry, cpair, 0._r8, ixaoa, readiv=aoa_read_from_ic_file, &
longname='mixing ratio LB tracer')
longname='mixing ratio LB tracer', cam_outfld=.false.)

call cnst_add(c_names(2), mwdry, cpair, 1._r8, ixht, readiv=aoa_read_from_ic_file, &
longname='horizontal tracer')
longname='horizontal tracer', cam_outfld=.false.)
call cnst_add(c_names(3), mwdry, cpair, 0._r8, ixvt, readiv=aoa_read_from_ic_file, &
longname='vertical tracer')
longname='vertical tracer', cam_outfld=.false.)

ifirst = ixaoa

Expand Down Expand Up @@ -324,6 +324,8 @@ subroutine aoa_tracers_timestep_tend(state, ptend, dt)
real(r8), parameter :: mmr0 = 1.0e-6_r8 ! initial lower boundary mmr
real(r8), parameter :: per_yr = 0.02_r8 ! fractional increase per year

real(r8) :: mmr_out(pcols,pver,ncnst)

!------------------------------------------------------------------

teul = .5_r8*dt/(86400._r8 * treldays) ! 1/2 for the semi-implicit scheme if dt=time step
Expand All @@ -345,7 +347,7 @@ subroutine aoa_tracers_timestep_tend(state, ptend, dt)
lchnk = state%lchnk
ncol = state%ncol

! AOAMF
! AOA1
xmmr = mmr0*(1._r8 + per_yr*years)
ptend%q(1:ncol,pver,ixaoa) = (xmmr - state%q(1:ncol,pver,ixaoa)) / dt

Expand All @@ -371,6 +373,15 @@ subroutine aoa_tracers_timestep_tend(state, ptend, dt)
call outfld (src_names(2), ptend%q(:,:,ixht), pcols, lchnk)
call outfld (src_names(3), ptend%q(:,:,ixvt), pcols, lchnk)

! output mixing ratios to history
mmr_out(:ncol,:,1) = state%q(:ncol,:,ixaoa) + dt*ptend%q(1:ncol,:,ixaoa)
mmr_out(:ncol,:,2) = state%q(:ncol,:,ixht) + dt*ptend%q(1:ncol,:,ixht)
mmr_out(:ncol,:,3) = state%q(:ncol,:,ixvt) + dt*ptend%q(1:ncol,:,ixvt)

call outfld (c_names(1), mmr_out(:,:,1), pcols, lchnk)
call outfld (c_names(2), mmr_out(:,:,2), pcols, lchnk)
call outfld (c_names(3), mmr_out(:,:,3), pcols, lchnk)

end subroutine aoa_tracers_timestep_tend

!===========================================================================
Expand All @@ -392,7 +403,7 @@ subroutine init_cnst_3d(m, latvals, lonvals, mask, q)

if (m == ixaoa) then

! AOAMF
! AOA1
q(:,:) = 0.0_r8

else if (m == ixht) then
Expand Down

0 comments on commit 42e1896

Please sign in to comment.