Skip to content

Commit

Permalink
ESCOMP tag: cam6_4_055
Browse files Browse the repository at this point in the history
Merge pull request ESCOMP#1203 from brian-eaton/misc06

cam6_4_055: Add QPLT and QPMT compsets, plus misc.

ESCOMP commit: 7de26a3
  • Loading branch information
brian-eaton authored and Steve Goldhaber committed Feb 19, 2025
1 parent 2d5c498 commit f574414
Show file tree
Hide file tree
Showing 14 changed files with 311 additions and 135 deletions.
63 changes: 63 additions & 0 deletions bld/namelist_files/use_cases/aquaplanet_cam7.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?xml version="1.0"?>

<namelist_defaults>

<!-- Spun up IC files -->
<ncdata hgrid="ne3np4" nlev="58" >atm/cam/inic/se/QPLT_L58_ne3pg3_c241127.nc</ncdata>
<ncdata hgrid="ne30np4" nlev="58" >atm/cam/inic/se/QPLT_L58_ne30pg3_c241127.nc</ncdata>
<ncdata hgrid="ne3np4" nlev="93" >atm/cam/inic/se/QPMT_L93_ne3pg3_c241223.nc</ncdata>
<ncdata hgrid="ne30np4" nlev="93" >atm/cam/inic/se/QPMT_L93_ne30pg3_c241223.nc</ncdata>

<!-- make planet orbit circular -->
<orb_eccen >0.</orb_eccen>
<orb_obliq >0.</orb_obliq>
<orb_mvelp >0.</orb_mvelp>
<orb_mode>fixed_parameters</orb_mode>

<!-- turn off volcanos -->
<prescribed_strataero_feedback> false </prescribed_strataero_feedback>

<!-- APE ghg -->
<ch4vmr >1.650e-6</ch4vmr>
<n2ovmr >0.306e-6</n2ovmr>
<co2vmr >348.0e-6</co2vmr>
<f11vmr >0.0 </f11vmr>
<f12vmr >0.0 </f12vmr>

<!-- Solar insolation of 1365 -->
<solar_irrad_data_file >atm/cam/solar/ape_solar_ave_tsi_1365.nc</solar_irrad_data_file>

<!-- zonally symmetric ozone file -->
<prescribed_ozone_file model_top="lt">apeozone_cam3_5_54.nc</prescribed_ozone_file>
<prescribed_ozone_file model_top="mt">aquaplanet_ozone_hightop_c20180412.nc</prescribed_ozone_file>
<prescribed_ozone_datapath>atm/cam/ozone</prescribed_ozone_datapath>
<prescribed_ozone_name >OZONE</prescribed_ozone_name>
<prescribed_ozone_type >CYCLICAL</prescribed_ozone_type>
<prescribed_ozone_cycle_yr>1990</prescribed_ozone_cycle_yr>

<!-- Revised physics constants for ape experiments -->
<sday >86164.10063718943</sday>
<rearth >6.37100e6</rearth>
<gravit >9.79764</gravit>
<mwdry >28.96623324623746</mwdry>
<mwh2o >18.01618112892741</mwh2o>
<cpwv >1.846e3</cpwv>

<use_topo_file >.false.</use_topo_file>

<micro_mg_nccons >.true. </micro_mg_nccons>
<micro_mg_nicons >.true. </micro_mg_nicons>
<ext_frc_specifier > "" </ext_frc_specifier>
<srf_emis_specifier > "" </srf_emis_specifier>
<tracer_cnst_specifier > "" </tracer_cnst_specifier>
<prescribed_aero_file > "" </prescribed_aero_file>
<prescribed_aero_specifier> "" </prescribed_aero_specifier>

<seasalt_emis_scale > 0.0 </seasalt_emis_scale>

<!-- Just make the GHGs radiatively active (no aerosols).
CFC concentrations are set to zero above -->
<rad_climate> 'A:Q:H2O', 'N:O2:O2', 'N:CO2:CO2', 'N:ozone:O3',
'N:N2O:N2O', 'N:CH4:CH4', 'N:CFC11:CFC11', 'N:CFC12:CFC12' </rad_climate>

</namelist_defaults>
6 changes: 0 additions & 6 deletions cime_config/testdefs/testmods_dirs/cam/dae/shell_commands

This file was deleted.

4 changes: 0 additions & 4 deletions cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cam

This file was deleted.

2 changes: 0 additions & 2 deletions cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cpl

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
CAM_CONFIG_OPTS=`./xmlquery CAM_CONFIG_OPTS --value`
if [[ $CAM_CONFIG_OPTS != *"-cosp"* ]]; then
./xmlchange -append CAM_CONFIG_OPTS="-cosp"
./xmlchange --append CAM_CONFIG_OPTS="-cosp"
fi
./xmlchange ROF_NCPL=\$ATM_NCPL
./xmlchange GLC_NCPL=\$ATM_NCPL
./xmlchange CAM_NML_USE_CASE=UNSET
./xmlchange RUN_STARTDATE="19950101"
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ mfilt=1,1,1,1,1,1
ndens=1,1,1,1,1,1
nhtfrq=3,3,3,3,3,3
inithist='ENDOFRUN'
fexcl1='CFAD_DBZE94_CS','CLDTOT_CALCS','CLD_CAL_NOTCS','CS_MIXCERT','CS_MIXPOSS','CS_NOPRECIP','CS_PIA','CS_RAINPOSS','CS_RAINPROB'
fexcl1='CFAD_DBZE94_CS','CLDTOT_CALCS','CLD_CAL_NOTCS','CS_MIXCERT','CS_MIXPOSS','CS_NOPRECIP','CS_PIA',
'CS_RAINPOSS','CS_RAINPROB','CS_SNOWCERT','CS_SNOWPOSS'
198 changes: 198 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,202 @@
===============================================================

Tag name: cam6_4_055
Originator(s): eaton
Date: 13 January 2025
One-line Summary: Add QPLT and QPMT compsets, plus misc.
Github PR URL: https://github.com/ESCOMP/CAM/pull/1203

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

Issue #814 - Introduce QPC7 and possibly QPS7 aquaplanet compsets
- Analogous to FLT and FMT compset names, create QPLT and QPMT compsets.
- Open new issue to address QPS7.
- The new aquaplanet configurations use '-chem none' to eliminate the
aerosols. This is much faster and requires much less memory than a
configuration that leaves the default chemistry in place and removes
aerosols by zeroing the initial concentrations and emission sources.

Issue #1159 - Prealpha tests exceeding wallclock
- increased time limit to 20 minutes for these prealpha tests:
ERP_Ln9.f09_f09_mg17.FHIST_BGC.derecho_intel.cam-outfrq9s
ERP_Ln9.f09_f09_mg17.FHIST.derecho_intel.cam-outfrq9s

Issue #670 - DAE test broken
- ChangeLog indicates that this test has never worked since it was added
in cam6_2_046 (2020-09-01). Test removed.

Issue #807 - add UT and UQ to cam_diagnostics
- Add UT and UQ. Note that other possible fields mentioned in the issue,
i.e., OMEGA2, OMEGAQ, OMEGAU, and OMEGAV, are already implemented.
OMEGA2 is called OMGAOMGA.

Describe any changes made to build system: none

Describe any changes made to the namelist: none

List any changes to the defaults for the boundary datasets:
. add spun up initial files for QPLT compset on ne3pg3 and ne30pg3 grids.
atm/cam/inic/se/QPLT_L58_ne3pg3_c241127.nc
atm/cam/inic/se/QPLT_L58_ne30pg3_c241127.nc

. add spun up initial files for QPMT compset on ne3pg3 and ne30pg3 grids.
atm/cam/inic/se/QPMT_L93_ne3pg3_c241223.nc
atm/cam/inic/se/QPMT_L93_ne30pg3_c241223.nc

. add ozone dataset for high top aquaplanet runs
atm/cam/ozone/aquaplanet_ozone_hightop_c20180412.nc

Describe any substantial timing or memory changes: n/a

Code reviewed by: cacraig

List all files eliminated:

cime_config/testdefs/testmods_dirs/cam/dae/shell_commands
cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cam
cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cpl
test/system/da_cam_no_data_mod.sh
. DAE test removed

List all files added and what they do: none

List all existing files that have been modified, and describe the changes:

bld/namelist_files/namelist_defaults_cam.xml
. Remove ncdata files for nlev=58 and nlev=93 aquaplanet. Those files are
specified in the aquaplanet_cam7.xml use case file.

bld/namelist_files/use_cases/aquaplanet_cam7.xml
. use case file for QPLT and QPMT. Same as for QPC6 except:
- set f11vmr=f12vmr=0 to override the non-zero default values from
namelist_defaults_cam.xml.
- set prescribed_aero_file="" and prescribed_aero_specifier="" to
override the default bulk aerosol settings from build-namelist.
- set rad_climate to just make the GHGs radiatively active to override
the default build-namelist setting which includes bulk aerosols.
- Add spun-up IC files. This allows us to remove the ic_ymd attribute
which should not be needed for aquaplanet runs. Removing ic_ymd
enables testing with arbitrary start dates.
- Add ozone dataset for high top aquaplanet configuration

cime_config/config_component.xml
. CAM_CONFIG_OPTS
- add match for _CAM70.*_SLND_SICE_DOCN%AQP to set '-chem none'
. CAM_NML_USE_CASE
- add match for 2000_CAM70.*_SLND_SICE_DOCN%AQP to use aquaplanet_cam7.
This match will work for both %LT and %MT configs.

cime_config/config_compsets.xml
. add QPLT = 2000_CAM70%LT_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
. add QPMT = 2000_CAM70%MT_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV

cime_config/testdefs/testlist_cam.xml
. increase time limit to 20 minutes for these prealpha tests:
ERP_Ln9.f09_f09_mg17.FHIST_BGC.derecho_intel.cam-outfrq9s
ERP_Ln9.f09_f09_mg17.FHIST.derecho_intel.cam-outfrq9s
. remove non-working DAE test
. replace ERP_D_Ln9.f19_f19_mg17.QPC6.derecho_intel.cam-outfrq9s
by ERP_D_Ln9.ne30pg3_ne30pg3_mg17.QPLT.derecho_intel.cam-outfrq3s_cosp
. Add ERP_D_Ln9.ne30pg3_ne30pg3_mg17.QPMT.derecho_intel.cam-outfrq9s
. replace ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPC6.izumi_gnu.cam-outfrq9s_rrtmgp
by ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPLT.izumi_gnu.cam-outfrq9s
. Add ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPMT.izumi_gnu.cam-outfrq9s

cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/shell_commands
. remove "./xmlchange CAM_NML_USE_CASE=UNSET"

cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/user_nl_cam
. add CS_SNOWCERT and CS_SNOWPOSS to fexcl1

src/chemistry/mozart/mo_drydep.F90
. get_landuse_and_soilw_from_file
- restrict the INFO messages to only print from masterproc

src/physics/cam/cam_diagnostics.F90
. diag_init_dry
- add addfld call for UT, and corresponding add_default for UT inside the
history_eddy conditional.
. diag_phys_writeout_dry
- add calculation and outfld call for UT
. diag_init_moist
- add addfld call for UQ, and corresponding add_default for UQ inside the
history_eddy conditional.
. diag_phys_writeout_moist
- add calculation and outfld call for UQ

src/physics/cam/microp_aero.F90
. microp_aero_run
- add condition that number of bulk aerosols must be > 0 before calling
ndrop_bam_run.

src/physics/cam/nucleate_ice_cam.F90
. nucleate_ice_cam_calc
- add conditionals so naer2 array not referenced when there are no
aerosols.

src/physics/cam/vertical_diffusion.F90
. vertical_diffusion_init
- fix conditional around add_default call for UFLX and VFLX so those
fields aren't added if they're not computed.

src/physics/cam7/physpkg.F90
. tphysbc
- add conditionals so modal aerosol calculations only called when modal
aerosols are present.

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:

ERC_D_Ln9.f19_f19_mg17.QPC6.derecho_intel.cam-outfrq3s_cosp (Overall: DIFF)
- diffs due to changing the test definition (in outfrq3s_cosp) so that the use case file,
aquaplanet_cam6.xml, is no longer ignored. This changes answers.

ERP_D_Ln9.ne30pg3_ne30pg3_mg17.QPLT.derecho_intel.cam-outfrq3s_cosp (Overall: DIFF)
ERP_D_Ln9.ne30pg3_ne30pg3_mg17.QPMT.derecho_intel.cam-outfrq9s (Overall: DIFF)
- There are no baselines for these new tests.

ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s (Overall: FAIL)
- pre-existing failure due to HEMCO not having reproducible results issues #1018 and #856

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

derecho/nvhpc/aux_cam:

ERS_Ln9.ne30pg3_ne30pg3_mg17.F2000dev.derecho_nvhpc.cam-outfrq9s_gpu_default (Overall: FAIL)
- pre-existing failure -- issue #1220

izumi/nag/aux_cam:

ERC_D_Ln9.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_cosp (Overall: DIFF) details:
- diffs due to changing the test definition (in outfrq3s_cosp) so that the use case file,
aquaplanet_cam5.xml, is no longer ignored. This changes answers.

izumi/gnu/aux_cam:

ERC_D_Ln9.f10_f10_mg37.QPC4.izumi_gnu.cam-outfrq3s_diags (Overall: DIFF)
- Diff is due to the new diagnostic fields UT and UQ being included in the
test. Otherwise the run is identical with the baseline.

ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPLT.izumi_gnu.cam-outfrq9s (Overall: DIFF)
ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPMT.izumi_gnu.cam-outfrq9s (Overall: DIFF)
- There are no baselines for these new tests.

CAM tag used for the baseline comparison tests if different than previous
tag:

Summarize any changes to answers: BFB. Note however that a change in the
test definition for outfrq3s_cosp causes answer changes for tests
using that testmod.

===============================================================
===============================================================

Tag name: cam6_4_054
Originator(s): nusbaume
Date: 9 Jan 2025
Expand Down Expand Up @@ -366,6 +563,7 @@ Summarize any changes to answers:

===============================================================
===============================================================

Tag name: cam6_4_050
Originator(s): jimmielin
Date: 31 Dec 2024
Expand Down
26 changes: 15 additions & 11 deletions src/chemistry/mozart/mo_drydep.F90
Original file line number Diff line number Diff line change
Expand Up @@ -520,11 +520,13 @@ subroutine get_landuse_and_soilw_from_file()
logical :: lexist

if (len_trim(drydep_srf_file) == 0) then
write(iulog,*)'**************************************'
write(iulog,*)' get_landuse_and_soilw_from_file: INFO:'
write(iulog,*)' drydep_srf_file not set:'
write(iulog,*)' setting fraction_landuse to zero'
write(iulog,*)'**************************************'
if (masterproc) then
write(iulog,*)'**************************************'
write(iulog,*)' get_landuse_and_soilw_from_file: INFO:'
write(iulog,*)' drydep_srf_file not set:'
write(iulog,*)' setting fraction_landuse to zero'
write(iulog,*)'**************************************'
end if
fraction_landuse = 0._r8
return
end if
Expand All @@ -536,12 +538,14 @@ subroutine get_landuse_and_soilw_from_file()
call infld('fraction_landuse', piofile, 'ncol','class',1,pcols,1,n_land_type, begchunk,endchunk, &
fraction_landuse, readvar, gridname='physgrid')
if (.not. readvar) then
write(iulog,*)'**************************************'
write(iulog,*)'get_landuse_and_soilw_from_file: INFO:'
write(iulog,*)' fraction_landuse not read from file: '
write(iulog,*)' ', trim(locfn)
write(iulog,*)' setting all values to zero'
write(iulog,*)'**************************************'
if (masterproc) then
write(iulog,*)'**************************************'
write(iulog,*)'get_landuse_and_soilw_from_file: INFO:'
write(iulog,*)' fraction_landuse not read from file: '
write(iulog,*)' ', trim(locfn)
write(iulog,*)' setting all values to zero'
write(iulog,*)'**************************************'
end if
fraction_landuse = 0._r8
end if

Expand Down
Loading

0 comments on commit f574414

Please sign in to comment.