Skip to content

Commit ec4cbde

Browse files
authored
Merge pull request #1458 from fvitt/carma_base_update
cam6_4_146: Update carma base tag external
2 parents 7d2a538 + 9d54581 commit ec4cbde

8 files changed

Lines changed: 128 additions & 26 deletions

File tree

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
path = src/physics/carma/base
1010
url = https://github.com/ESCOMP/CARMA_base.git
1111
fxrequired = AlwaysRequired
12-
fxtag = carma4_09
12+
fxtag = carma4_10
1313
fxDONOTUSEurl = https://github.com/ESCOMP/CARMA_base.git
1414

1515
[submodule "pumas-frozen"]

cime_config/testdefs/testlist_cam.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,17 @@
324324
</options>
325325
</test>
326326

327+
<test compset="FCARMA2000climo" grid="f19_f19_mg17" name="SMS_D_Ln9" testmods="cam/outfrq9s" supported="false">
328+
<machines>
329+
<machine name="derecho" compiler="intel" category="aux_cam"/>
330+
<machine name="derecho" compiler="intel" category="carma"/>
331+
</machines>
332+
<options>
333+
<option name="wallclock">00:40:00</option>
334+
<option name="comment">CARMA trop_strat model test</option>
335+
</options>
336+
</test>
337+
327338
<test compset="FHIST_C5" grid="f10_f10_mt232" name="TMC_D_Ln9" testmods="cam/mc_ttrac">
328339
<machines>
329340
<machine name="izumi" compiler="nag" category="aux_cam"/>
@@ -803,6 +814,16 @@
803814
<option name="wallclock">00:30:00</option>
804815
</options>
805816
</test>
817+
<!-- WACCM carma trop_strat model -->
818+
<test compset="FWmaCARMAHIST" grid="f19_f19_mg17" name="SMS_D_Ln9" testmods="cam/outfrq9s" supported="false">
819+
<machines>
820+
<machine name="derecho" compiler="intel" category="carma"/>
821+
</machines>
822+
<options>
823+
<option name="wallclock">00:40:00</option>
824+
<option name="comment">CARMA WACCM trop_strat model test</option>
825+
</options>
826+
</test>
806827
<!-- TEM diagnostics and zonal-average output -->
807828
<test compset="QPWmaC4" grid="ne5_ne5_mg37" name="SMS_D_Ln6" testmods="cam/outfrq3s_physgrid_tem">
808829
<machines>

doc/ChangeLog

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,87 @@
11
===============================================================
22

3+
Tag name: cam6_4_146
4+
Originator(s): fvitt
5+
Date: 23 Jan 2026
6+
One-line Summary: Update CARMA submodule to tag carma4_10
7+
8+
Github PR URL: https://github.com/ESCOMP/CAM/pull/1458
9+
10+
Purpose of changes (include the issue number and title text for each relevant GitHub issue):
11+
12+
Update CARMA base external submodule to tag carma4_10 -- Issue #1435
13+
14+
Describe any changes made to build system: N/A
15+
16+
Describe any changes made to the namelist: N/A
17+
18+
List any changes to the defaults for the boundary datasets: N/A
19+
20+
Describe any substantial timing or memory changes: N/A
21+
22+
Code reviewed by: cacraigucar
23+
24+
List all files eliminated: N/A
25+
26+
List all files added and what they do: N/A
27+
28+
List all existing files that have been modified, and describe the changes:
29+
M .gitmodules
30+
M src/physics/carma/base
31+
- update carma base tag to carma4_10
32+
33+
M src/physics/carma/cam/carma_intr.F90
34+
M src/physics/carma/models/trop_strat_soa1/carma_model_mod.F90
35+
M src/physics/carma/models/trop_strat_soa5/carma_model_mod.F90
36+
- getwetr interface change
37+
38+
M src/physics/cam/aerosol_optics_cam.F90
39+
- fix divide by zero issue which occurred for some CARMA configurations
40+
-- where aerosol concentrations are quite small dopaer0 array was
41+
initialized to zero and not set to the dopaer values
42+
43+
M cime_config/testdefs/testlist_cam.xml
44+
- added CARMA trop_strat tests
45+
46+
If there were any failures reported from running test_driver.sh on any test
47+
platform, and checkin with these failures has been OK'd by the gatekeeper,
48+
then copy the lines from the td.*.status files for the failed tests to the
49+
appropriate machine below. All failed tests must be justified.
50+
51+
derecho/intel/aux_cam:
52+
53+
ERI_D_Ln18.ne16pg3_ne16pg3_mt232.FHIST_C4.derecho_intel.cam-outfrq3s_eri (Overall: FAIL) details:
54+
- pre-existing failure
55+
- ERI test discovered a bug in CICE: See: https://github.com/ESCOMP/CESM_CICE/issues/34
56+
57+
SMS_D_Ln9.f19_f19_mg17.FCARMA2000climo.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
58+
- new test -- no baseline to compare to
59+
60+
derecho/nvhpc/aux_cam:
61+
ERS_Ln9.ne30pg3_ne30pg3_mt232.FHISTC_LTso.derecho_nvhpc.cam-outfrq9s_gpu_default (Overall: FAIL) details:
62+
- pre-existing failure -- exceeds wallclock time limit
63+
NOTE: Jian has determined this is due to changes on derecho with the the last upgrade.
64+
He has reported the issue to CISL. Note cam6_4_128 is the last CAM tag with
65+
baselines to use for comparison but answer changes are expected starting with
66+
cam6_4_130.
67+
68+
End of cesm.log file:
69+
deg0049.hsn.de.hpc.ucar.edu 0: calcsize j,iq,jac, lsfrm,lstoo 2 5 2 19 20
70+
deg0049.hsn.de.hpc.ucar.edu 1: Opened file
71+
deg0049.hsn.de.hpc.ucar.edu 1: ERS_Ln9.ne30pg3_ne30pg3_mt232.FHISTC_LTso.derecho_nvhpc.cam-outfrq9s_gpu_default.G.aux_cam_nvhpc_20260123064354.cam.r.1979-01-01-09000.nc
72+
deg0049.hsn.de.hpc.ucar.edu 1: to write 316
73+
deg0051.hsn.de.hpc.ucar.edu: rank 64 died from signal 15
74+
75+
76+
izumi/nag/aux_cam: All PASS
77+
78+
izumi/gnu/aux_cam: All PASS
79+
80+
Summarize any changes to answers: bit-for-bit
81+
82+
===============================================================
83+
===============================================================
84+
385
Tag name: cam6_4_145
486
Originator(s): PeterHjortLauritzen, jimmielin
587
Date: January 20, 2026

src/physics/cam/aerosol_optics_cam.F90

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,22 +1129,21 @@ subroutine update_diags( is_coarse_dust )
11291129
end if
11301130
! dmleung --
11311131

1132+
! dmleung 20 Oct 2025 ++
1133+
! Then, all these diagnostics are outputted based on the modified dust AOD.
1134+
! We simply apply dopaer/dopaer0 (>1 for coarse mode) to the absorption diagnostics.
1135+
aodvis(icol) = aodvis(icol) + dopaer(icol)
1136+
aodabs(icol) = aodabs(icol) + mass(icol,ilev) * pabs(icol) * dopaer(icol)/dopaer0(icol) ! dmleung
1137+
extinct(icol,ilev) = extinct(icol,ilev) + dopaer(icol)*air_density(icol,ilev)/mass(icol,ilev)
1138+
absorb(icol,ilev) = absorb(icol,ilev) + air_density(icol,ilev) * pabs(icol) * dopaer(icol)/dopaer0(icol) ! dmleung
1139+
ssavis(icol) = ssavis(icol) + dopaer(icol)*palb(icol)
1140+
asymvis(icol) = asymvis(icol) + dopaer(icol)*pasm(icol)
1141+
asymext(icol,ilev) = asymext(icol,ilev) + dopaer(icol)*pasm(icol)*air_density(icol,ilev)/mass(icol,ilev)
1142+
1143+
aodbin(icol) = aodbin(icol) + dopaer(icol)
11321144

11331145
end if
11341146

1135-
! dmleung 20 Oct 2025 ++
1136-
! Then, all these diagnostics are outputted based on the modified dust AOD.
1137-
! We simply apply dopaer/dopaer0 (>1 for coarse mode) to the absorption diagnostics.
1138-
aodvis(icol) = aodvis(icol) + dopaer(icol)
1139-
aodabs(icol) = aodabs(icol) + mass(icol,ilev) * pabs(icol) * dopaer(icol)/dopaer0(icol) ! dmleung
1140-
extinct(icol,ilev) = extinct(icol,ilev) + dopaer(icol)*air_density(icol,ilev)/mass(icol,ilev)
1141-
absorb(icol,ilev) = absorb(icol,ilev) + air_density(icol,ilev) * pabs(icol) * dopaer(icol)/dopaer0(icol) ! dmleung
1142-
ssavis(icol) = ssavis(icol) + dopaer(icol)*palb(icol)
1143-
asymvis(icol) = asymvis(icol) + dopaer(icol)*pasm(icol)
1144-
asymext(icol,ilev) = asymext(icol,ilev) + dopaer(icol)*pasm(icol)*air_density(icol,ilev)/mass(icol,ilev)
1145-
1146-
aodbin(icol) = aodbin(icol) + dopaer(icol)
1147-
11481147
if (ilev<=troplev(icol)) then
11491148
aodvisst(icol) = aodvisst(icol) + dopaer(icol)
11501149
end if

src/physics/carma/cam/carma_intr.F90

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2645,7 +2645,7 @@ subroutine CARMA_CreateOpticsFile_Fixed(carma, igroup, rc)
26452645
do irh = 1, nrh
26462646

26472647
! Determine the wet radius.
2648-
call getwetr(carma, igroup, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc)
2648+
call getwetr(carma, igroup, ibin, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc)
26492649
if (rc < 0) call endrun('carma_CreateOpticsFile::wetr failed.')
26502650

26512651
! Calculate at each wavelength.
@@ -2992,7 +2992,7 @@ subroutine CARMA_CreateOpticsFile_Sulfate(carma, igroup, rc)
29922992
! NOTE: Weight percent is normal a result of the getwetr calculation. To build the
29932993
! table based upon weight percent, we need to pass in the desired value and a
29942994
! reference temperature. In that case, the RH is ignored.
2995-
call getwetr(carma, igroup, mie_rh(1), r(ibin), rwet, rho(ibin), rhopwet, rc, wgtpct=mie_wtp(iwtp)*100._f, temp=270._f)
2995+
call getwetr(carma, igroup, ibin, mie_rh(1), r(ibin), rwet, rho(ibin), rhopwet, rc, wgtpct=mie_wtp(iwtp)*100._f, temp=270._f)
29962996
if (rc < 0) call endrun('carma_CreateOpticsFile::wetr failed.')
29972997

29982998
! This is not in Yu (2015), but rather than using the refractive
@@ -3922,7 +3922,7 @@ subroutine carma_get_wet_radius(state, igroup, ibin, rwet, rhopwet, rc)
39223922
!
39233923
if (irhswell == I_WTPCT_H2SO4) then
39243924

3925-
call getwetr(carma, igroup, relhum, dryrad, rwet(icol, iz), dryden, rhopwet(icol,iz), rc, &
3925+
call getwetr(carma, igroup, ibin, relhum, dryrad, rwet(icol, iz), dryden, rhopwet(icol,iz), rc, &
39263926
h2o_mass=watcon, h2o_vp=wvpres, temp=state%t(icol,iz))
39273927
if (rc/=RC_OK) then
39283928
call endrun('carma_get_wet_radius ERROR5: rc = ',rc) ! <======
@@ -3935,15 +3935,15 @@ subroutine carma_get_wet_radius(state, igroup, ibin, rwet, rhopwet, rc)
39353935
call endrun('carma_get_wet_radius carma_get_kappa ERROR: rc = ',rc)
39363936
end if
39373937

3938-
call getwetr(carma, igroup, relhum, dryrad, rwet(icol, iz), dryden, rhopwet(icol,iz), rc, &
3938+
call getwetr(carma, igroup, ibin, relhum, dryrad, rwet(icol, iz), dryden, rhopwet(icol,iz), rc, &
39393939
h2o_mass=watcon, h2o_vp=wvpres, temp=state%t(icol,iz), kappa=kappa(icol,iz))
39403940
if (rc/=RC_OK) then
39413941
call endrun('carma_get_wet_radius ERROR6: rc = ',rc)
39423942
end if
39433943

39443944
else ! I_GERBER and I_FITZGERALD
39453945

3946-
call getwetr(carma, igroup, relhum, dryrad, rwet(icol, iz), dryden, rhopwet(icol,iz), rc )
3946+
call getwetr(carma, igroup, ibin, relhum, dryrad, rwet(icol, iz), dryden, rhopwet(icol,iz), rc )
39473947
if (rc/=RC_OK) then
39483948
call endrun('carma_get_wet_radius ERROR7: rc = ',rc)
39493949
end if

src/physics/carma/models/trop_strat_soa1/carma_model_mod.F90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1650,7 +1650,7 @@ subroutine CARMAMODEL_CreateOpticsFile_MixedYu(carma, igroup, rc)
16501650
do ikap = 1, nkap
16511651

16521652
! Determine the wet radius.
1653-
call getwetr(carma, igroup, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc, kappa=kap(ikap), temp=270._f)
1653+
call getwetr(carma, igroup, ibin, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc, kappa=kap(ikap), temp=270._f)
16541654
rwetbin(irh) = rwet
16551655

16561656
! Calculate at each wavelength.
@@ -2102,7 +2102,7 @@ subroutine CARMAMODEL_CreateOpticsFile_MixedYuH2o(carma, igroup, rc)
21022102
do ikap = 1, nkap
21032103

21042104
! Determine the wet radius.
2105-
call getwetr(carma, igroup, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc, kappa=kap(ikap), temp=270._f)
2105+
call getwetr(carma, igroup, ibin, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc, kappa=kap(ikap), temp=270._f)
21062106
rwetbin(irh) = rwet
21072107

21082108
! Calculate at each wavelength.
@@ -2493,7 +2493,7 @@ subroutine CARMAMODEL_CreateOpticsFile_SulfateYu(carma, igroup, rc)
24932493
! NOTE: Weight percent is normal a result of the getwetr calculation. To build the
24942494
! table based upon weight percent, we need to pass in the desired value and a
24952495
! reference temperature. In that case, the RH is ignored.
2496-
call getwetr(carma, igroup, mie_rh(1), r(ibin), rwet, rho(ibin), rhopwet, rc, wgtpct=mie_wtp(iwtp)*100._f, temp=270._f)
2496+
call getwetr(carma, igroup, ibin, mie_rh(1), r(ibin), rwet, rho(ibin), rhopwet, rc, wgtpct=mie_wtp(iwtp)*100._f, temp=270._f)
24972497
if (rc < 0) call endrun('carma_CreateOpticsFile::wetr failed.')
24982498

24992499
! Calculate at each wavelength.

src/physics/carma/models/trop_strat_soa5/carma_model_mod.F90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1852,7 +1852,7 @@ subroutine CARMAMODEL_CreateOpticsFile_MixedYu(carma, igroup, rc)
18521852
do ikap = 1, nkap
18531853

18541854
! Determine the wet radius.
1855-
call getwetr(carma, igroup, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc, kappa=kap(ikap), temp=270._f)
1855+
call getwetr(carma, igroup, ibin, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc, kappa=kap(ikap), temp=270._f)
18561856
rwetbin(irh) = rwet
18571857

18581858
! Calculate at each wavelength.
@@ -2304,7 +2304,7 @@ subroutine CARMAMODEL_CreateOpticsFile_MixedYuH2o(carma, igroup, rc)
23042304
do ikap = 1, nkap
23052305

23062306
! Determine the wet radius.
2307-
call getwetr(carma, igroup, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc, kappa=kap(ikap), temp=270._f)
2307+
call getwetr(carma, igroup, ibin, mie_rh(irh), r(ibin), rwet, rho(ibin), rhopwet, rc, kappa=kap(ikap), temp=270._f)
23082308
rwetbin(irh) = rwet
23092309

23102310
! Calculate at each wavelength.
@@ -2695,7 +2695,7 @@ subroutine CARMAMODEL_CreateOpticsFile_SulfateYu(carma, igroup, rc)
26952695
! NOTE: Weight percent is normal a result of the getwetr calculation. To build the
26962696
! table based upon weight percent, we need to pass in the desired value and a
26972697
! reference temperature. In that case, the RH is ignored.
2698-
call getwetr(carma, igroup, mie_rh(1), r(ibin), rwet, rho(ibin), rhopwet, rc, wgtpct=mie_wtp(iwtp)*100._f, temp=270._f)
2698+
call getwetr(carma, igroup, ibin, mie_rh(1), r(ibin), rwet, rho(ibin), rhopwet, rc, wgtpct=mie_wtp(iwtp)*100._f, temp=270._f)
26992699
if (rc < 0) call endrun('carma_CreateOpticsFile::wetr failed.')
27002700

27012701
! Calculate at each wavelength.

0 commit comments

Comments
 (0)