Skip to content

Commit 42e1896

Browse files
authored
Merge pull request ESCOMP#1198 from fvitt/aoa_output
cam6_4_051: Age of air diagnostics
2 parents b4c6463 + 286df59 commit 42e1896

File tree

2 files changed

+111
-8
lines changed

2 files changed

+111
-8
lines changed

doc/ChangeLog

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,96 @@
11
===============================================================
2+
3+
Tag name: cam6_4_051
4+
Originator(s): fvitt
5+
Date: 2 Jan 2025
6+
One-line Summary: Updates to age of air tracers history output
7+
Github PR URL: https://github.com/ESCOMP/CAM/pull/1198
8+
9+
Purpose of changes (include the issue number and title text for each relevant GitHub issue):
10+
11+
Changes to age of air output #1197
12+
. Output age of air tracers mix ratios to history as soon as the tendencies are update,
13+
before the tracers are transported in the time loop
14+
. Rename history field 'AOAMF' as 'AOA1'
15+
16+
Describe any changes made to build system: N/A
17+
18+
Describe any changes made to the namelist: N/A
19+
20+
List any changes to the defaults for the boundary datasets: N/A
21+
22+
Describe any substantial timing or memory changes: N/A
23+
24+
Code reviewed by: cacraigucar
25+
26+
List all files eliminated: N/A
27+
28+
List all files added and what they do: N/A
29+
30+
List all existing files that have been modified, and describe the changes:
31+
M src/physics/cam/aoa_tracers.F90
32+
- add outfld calls for AOA tracers
33+
- rename 'AOAMF' as 'AOA1'
34+
35+
If there were any failures reported from running test_driver.sh on any test
36+
platform, and checkin with these failures has been OK'd by the gatekeeper,
37+
then copy the lines from the td.*.status files for the failed tests to the
38+
appropriate machine below. All failed tests must be justified.
39+
40+
derecho/intel/aux_cam:
41+
42+
PEND SMS_D_Ln9.f19_f19_mg17.FXHIST.derecho_intel.cam-outfrq9s_amie
43+
FAIL SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s
44+
- pre-existing failures due to build-namelist error requiring CLM/CTSM external update.
45+
46+
DIFF SMS_Lh12.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq3h
47+
FAIL ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s
48+
- pre-existing failure due to HEMCO not having reproducible results issues #1018 and #856
49+
50+
DIFF ERC_D_Ln9.f19_f19_mg17.QPX2000.derecho_intel.cam-outfrq3s
51+
DIFF ERP_Ld3.f09_f09_mg17.FWHIST.derecho_intel.cam-reduced_hist1d
52+
DIFF ERP_Ld3.ne30pg3_ne30pg3_mg17.FHISTC_MTt4s.derecho_intel.cam-outfrq1d_aoa
53+
DIFF ERP_Lh12.f19_f19_mg17.FW4madSD.derecho_intel.cam-outfrq3h
54+
DIFF ERP_Ln9.f19_f19_mg17.FWsc1850.derecho_intel.cam-outfrq9s
55+
DIFF ERP_Ln9.ne30pg3_ne30pg3_mg17.FCnudged.derecho_intel.cam-outfrq9s
56+
DIFF ERP_Ln9.ne30pg3_ne30pg3_mg17.FW2000climo.derecho_intel.cam-outfrq9s
57+
DIFF ERS_Ln9.f09_f09_mg17.FX2000.derecho_intel.cam-outfrq9s
58+
DIFF ERS_Ln9.f19_f19_mg17.FXSD.derecho_intel.cam-outfrq9s
59+
DIFF SMS_D_Ln9.f09_f09_mg17.FCts2nudged.derecho_intel.cam-outfrq9s_leapday
60+
DIFF SMS_D_Ln9.f09_f09_mg17.FCvbsxHIST.derecho_intel.cam-outfrq9s
61+
DIFF SMS_D_Ln9.f19_f19_mg17.FWma2000climo.derecho_intel.cam-outfrq9s
62+
DIFF SMS_D_Ln9.f19_f19_mg17.FWma2000climo.derecho_intel.cam-outfrq9s_waccm_ma_mam4
63+
DIFF SMS_D_Ln9.f19_f19_mg17.QPC2000climo.derecho_intel.cam-outfrq3s_usecase
64+
DIFF SMS_D_Ln9.ne16_ne16_mg17.QPX2000.derecho_intel.cam-outfrq9s
65+
DIFF SMS_D_Ln9.ne16pg3_ne16pg3_mg17.FX2000.derecho_intel.cam-outfrq9s
66+
DIFF SMS_Ld1.f09_f09_mg17.FW2000climo.derecho_intel.cam-outfrq1d
67+
DIFF SMS_Ld1.ne30pg3_ne30pg3_mg17.FC2010climo.derecho_intel.cam-outfrq1d
68+
DIFF SMS_Ln9.f09_f09_mg17.FW1850.derecho_intel.cam-reduced_hist3s
69+
DIFF SMS_Ln9.ne30pg3_ne30pg3_mg17.FW2000climo.derecho_intel.cam-outfrq9s_rrtmgp
70+
- expected differences in AOA history fields, otherwise bit-for-bit unchanged
71+
72+
derecho/nvhpc/aux_cam: All PASS
73+
74+
izumi/nag/aux_cam:
75+
FAIL DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae
76+
- pre-existing failure -- issue #670
77+
78+
DIFF ERC_D_Ln9.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s
79+
DIFF SMS_D_Ln3.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s
80+
DIFF SMS_D_Ln6.ne5_ne5_mg37.QPWmaC4.izumi_nag.cam-outfrq3s_physgrid_tem
81+
- expected differences in AOA history fields, otherwise bit-for-bit unchanged
82+
83+
izumi/gnu/aux_cam:
84+
DIFF ERP_Ln9_P24x2.f45_f45_mg37.QPWmaC6.izumi_gnu.cam-outfrq9s_mee_fluxes
85+
DIFF SMS_D_Ln9.f10_f10_mg37.QPWmaC4.izumi_gnu.cam-outfrq9s_apmee
86+
DIFF SMS_P48x1_D_Ln9.f19_f19_mg17.FW4madSD.izumi_gnu.cam-outfrq9s
87+
- expected differences in AOA history fields, otherwise bit-for-bit unchanged
88+
89+
Summarize any changes to answers:
90+
Differences in AOA history fields, otherwise bit-for-bit unchanged
91+
92+
===============================================================
93+
===============================================================
294
Tag name: cam6_4_050
395
Originator(s): jimmielin
496
Date: 31 Dec 2024

src/physics/cam/aoa_tracers.F90

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ module aoa_tracers
3131
integer, parameter :: ncnst=3 ! number of constituents implemented by this module
3232

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

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

3939
integer :: ifirst = -1 ! global index of first constituent
40-
integer :: ixaoa = -1 ! global index for AOAMFSRC tracer
40+
integer :: ixaoa = -1 ! global index for AOA1SRC tracer
4141
integer :: ixht = -1 ! global index for HORZ tracer
4242
integer :: ixvt = -1 ! global index for VERT tracer
4343

@@ -132,12 +132,12 @@ subroutine aoa_tracers_register
132132
if (.not. aoa_tracers_flag) return
133133

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

137137
call cnst_add(c_names(2), mwdry, cpair, 1._r8, ixht, readiv=aoa_read_from_ic_file, &
138-
longname='horizontal tracer')
138+
longname='horizontal tracer', cam_outfld=.false.)
139139
call cnst_add(c_names(3), mwdry, cpair, 0._r8, ixvt, readiv=aoa_read_from_ic_file, &
140-
longname='vertical tracer')
140+
longname='vertical tracer', cam_outfld=.false.)
141141

142142
ifirst = ixaoa
143143

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

327+
real(r8) :: mmr_out(pcols,pver,ncnst)
328+
327329
!------------------------------------------------------------------
328330

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

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

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

376+
! output mixing ratios to history
377+
mmr_out(:ncol,:,1) = state%q(:ncol,:,ixaoa) + dt*ptend%q(1:ncol,:,ixaoa)
378+
mmr_out(:ncol,:,2) = state%q(:ncol,:,ixht) + dt*ptend%q(1:ncol,:,ixht)
379+
mmr_out(:ncol,:,3) = state%q(:ncol,:,ixvt) + dt*ptend%q(1:ncol,:,ixvt)
380+
381+
call outfld (c_names(1), mmr_out(:,:,1), pcols, lchnk)
382+
call outfld (c_names(2), mmr_out(:,:,2), pcols, lchnk)
383+
call outfld (c_names(3), mmr_out(:,:,3), pcols, lchnk)
384+
374385
end subroutine aoa_tracers_timestep_tend
375386

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

393404
if (m == ixaoa) then
394405

395-
! AOAMF
406+
! AOA1
396407
q(:,:) = 0.0_r8
397408

398409
else if (m == ixht) then

0 commit comments

Comments
 (0)