Skip to content

Commit

Permalink
Merge pull request #149 from DirkOlivie/PR_fullchem
Browse files Browse the repository at this point in the history
Summary: Introduction of the ability to run with more complex atmospheric gas-phase chemistry.

Contributors: Dirk Olivié
Reviewers: Steve Goldhaber

Purpose of changes: #100 Add trop+strat chemistry scheme. The new scheme is a
combination of the aerosols from OSLO_AERO and the gas-phase species from the TS1 chemistry (pp_trop_strat_mam4_vbs).

Github PR URL: #149
Changes made to build system: None
Changes made to the namelist:

- The namelist used by the new compsets contains elements from the standard aerosol-only
NorESM namelist, but some external forcings have been removed as not used anymore
(ozone climatology, ozone climatology, volcanic stratospheric AOD).
- New things are : more emissions files are used, more GHGs/ODSs are prescribed, and the
lightning NOx scaling factor is now used.
- Concerning MEGAN fluxes from the land-model : more species are mapped into
monoterpene (to make it more in line with CESM).
- 3D-chemical species are taken into account in the radiation

Changes to the defaults for the boundary datasets:
- there are additional emission files
- some climatologies are not used anymore (ozone, oxidants)

Substantial timing or memory changes: an N1850_f19_tn14 simulation on 1024 CPUs is
much slower. The throughput is 8.67 simulated years/day (compared to 19.84 simulated
years/day in aerosol-only version)

Detailed description of changes :
General files :
bld/config_files/definition.xml [new chemical package "tropstrat_mam_oslo]

Files in specific chemistry directory pp_tropstrat_mam_oslo (generated by chemical preprocessor):

Test run: ERP_D_Ln9.f19_f19_mtn14.NF1850norbc_tropstratchem.betzy_intel.cam-outfrq
aux_cam_noresm tests are BFB except for this new test
  • Loading branch information
gold2718 authored Sep 19, 2024
2 parents 3db5e69 + 7ef6b68 commit 1450ca0
Show file tree
Hide file tree
Showing 30 changed files with 22,487 additions and 23 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ buildcppc
.#*
\#*#
*.swp

# To avoid *.pyc files
cime_config/__pycache__
2 changes: 1 addition & 1 deletion Externals_CAM.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
local_path = src/chemistry/oslo_aero
protocol = git
repo_url = https://github.com/NorESMhub/OSLO_AERO.git
tag = oslo_aero_2_3a1
tag = oslo_aero_2_3a2
required = True

[externals_description]
Expand Down
54 changes: 37 additions & 17 deletions bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -666,7 +666,7 @@ my $rad_prog_bcarb = (($prog_species =~ "BC" or $aero_chem) and !($chem_rad_pa
my $rad_prog_sulf = (($prog_species =~ "SO4" or $aero_chem) and !($chem_rad_passive));
my $rad_prog_dust = (($prog_species =~ "DST" or $aero_chem) and !($chem_rad_passive));
my $rad_prog_sslt = (($prog_species =~ "SSLT" or $aero_chem) and !($chem_rad_passive));
my $rad_prog_ozone = (($chem =~ "mozart" or $chem =~ "waccm_ma" or $chem =~ "tsmlt" or $chem =~ "trop_strat") and !($chem_rad_passive));
my $rad_prog_ozone = (($chem =~ "mozart" or $chem =~ "waccm_ma" or $chem =~ "tsmlt" or $chem =~ "trop_strat" or $chem =~"tropstrat_mam_oslo") and !($chem_rad_passive));

# Check for eruptive volcano emissions. These will be radiatively active by default, but
# only if using BAM and the camrt radiation package
Expand Down Expand Up @@ -1658,7 +1658,7 @@ elsif ($carma eq 'tholin') {
# turn on stratospheric aerosol forcings in CAM6 configurations
my $chem_has_ocs = chem_has_species($cfg, 'OCS');
# djlo
if ($phys =~ /cam6/ and $chem ne 'trop_mam_oslo') {
if ($phys =~ /cam6/ and $chem ne 'trop_mam_oslo' and $chem ne 'tropstrat_mam_oslo') {
# turn on volc forcings in cam6 -- prognostic or prescribed
if ( $chem_has_ocs ) {
# turn on prognostic stratospheric aerosols
Expand Down Expand Up @@ -2232,7 +2232,7 @@ if ($chem eq 'trop_mam3') {
}
}

if ($chem eq 'trop_mam_oslo' ) {
if ($chem eq 'trop_mam_oslo' or $chem eq 'tropstrat_mam_oslo') {

my %species;

Expand Down Expand Up @@ -2296,26 +2296,41 @@ if ($chem eq 'trop_mam_oslo' ) {
}

# Prescribed species
add_default($nl, 'tracer_cnst_specifier', 'val'=>"'O3','OH','NO3','HO2'");
unless (defined $nl->get_value('tracer_cnst_type')) {
add_default($nl, 'tracer_cnst_type', 'ver'=>'fixed_ox');
add_default($nl, 'tracer_cnst_cycle_yr','ver'=>'fixed_ox');
}
if ($chem eq 'trop_mam_oslo') {
add_default($nl, 'tracer_cnst_specifier', 'val'=>"'O3','OH','NO3','HO2'");
unless (defined $nl->get_value('tracer_cnst_type')) {
add_default($nl, 'tracer_cnst_type', 'ver'=>'fixed_ox');
add_default($nl, 'tracer_cnst_cycle_yr','ver'=>'fixed_ox');
}

my @files = ('tracer_cnst_datapath', 'tracer_cnst_file', 'tracer_cnst_filelist');
foreach my $file (@files) {
add_default($nl, $file, 'ver'=>'fixed_ox');
my @files = ('tracer_cnst_datapath', 'tracer_cnst_file', 'tracer_cnst_filelist');
foreach my $file (@files) {
add_default($nl, $file, 'ver'=>'fixed_ox');
}
}

add_default($nl, 'fstrat_list', 'val'=>"' '");
if ($chem eq 'trop_mam_oslo') {add_default($nl, 'fstrat_list', 'val'=>"' '")};
add_default($nl, 'flbc_list', 'val'=>"' '");
add_default($nl, 'xactive_prates', 'val'=>'.false.');
if ($chem eq 'trop_mam_oslo') {add_default($nl, 'xactive_prates', 'val'=>'.false.')};

# Datasets
my @files = ('soil_erod_file',
'xs_long_file', 'rsf_file', 'exo_coldens_file' );
foreach my $file (@files) {
add_default($nl, $file);
if ($chem eq 'trop_mam_oslo') {

my @files = ('soil_erod_file',
'xs_long_file', 'rsf_file', 'exo_coldens_file' );
foreach my $file (@files) {
add_default($nl, $file);
}
}
if ($chem eq 'tropstrat_mam_oslo') {

my @files = ('soil_erod_file',
# 'xs_long_file', 'rsf_file', 'exo_coldens_file' );
# 'xs_long_file', 'xs_short_file', 'xs_coef_file', 'rsf_file', 'exo_coldens_file' );
'xs_long_file', 'xs_short_file', 'xs_coef_file', 'rsf_file' );
foreach my $file (@files) {
add_default($nl, $file);
}
}
}

Expand Down Expand Up @@ -3309,6 +3324,11 @@ if ( length($nl->get_value('soil_erod_file'))>0 ) {
# set scaling of lightning NOx production
add_default($nl, 'lght_no_prd_factor' );
}
elsif ($chem =~ /tropstrat/) {
add_default($nl, 'dust_emis_fact');
# set scaling of lightning NOx production
add_default($nl, 'lght_no_prd_factor' );
}
else {
add_default($nl, 'dust_emis_fact');
}
Expand Down
4 changes: 2 additions & 2 deletions bld/config_files/definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ meteor_smoke (Meteor Smoke), mixed_sulfate (Meteor Smoke and Sulfate), pmc (Pola
sulfate (Sulfate Aerosols), tholin (early earth haze), test_detrain (Detrainment), test_growth (Particle Growth), test_passive (Passive Dust),
test_radiative (Radiatively Active Dust), test_swelling (Sea Salt), test_tracers (Asian Monsoon), test_tracers2 (Guam).
</entry>
<entry id="chem" valid_values="trop_mam3,trop_mam4,trop_mam7,trop_mozart,trop_strat_mam4_vbs,trop_strat_mam4_vbsext,waccm_ma,waccm_mad,waccm_mad_mam4,waccm_ma_mam4,waccm_ma_sulfur,waccm_sc,waccm_sc_mam4,waccm_tsmlt_mam4,terminator,trop_mam_oslo,none" value="">
Chemistry package: trop_mam3 trop_mam4 trop_mam7 trop_mozart trop_strat_mam4_vbs trop_strat_mam4_vbsext waccm_ma waccm_mad waccm_mad_mam4 waccm_ma_mam4 waccm_ma_sulfur waccm_sc waccm_sc_mam4 waccm_tsmlt_mam4 terminator trop_mam_oslo none
<entry id="chem" valid_values="trop_mam3,trop_mam4,trop_mam7,trop_mozart,trop_strat_mam4_vbs,trop_strat_mam4_vbsext,waccm_ma,waccm_mad,waccm_mad_mam4,waccm_ma_mam4,waccm_ma_sulfur,waccm_sc,waccm_sc_mam4,waccm_tsmlt_mam4,terminator,trop_mam_oslo,tropstrat_mam_oslo,none" value="">
Chemistry package: trop_mam3 trop_mam4 trop_mam7 trop_mozart trop_strat_mam4_vbs trop_strat_mam4_vbsext waccm_ma waccm_mad waccm_mad_mam4 waccm_ma_mam4 waccm_ma_sulfur waccm_sc waccm_sc_mam4 waccm_tsmlt_mam4 terminator trop_mam_oslo tropstrat_mam_oslo none
</entry>
<entry id="prog_species" valid_values="DST,SSLT,SO4,GHG,OC,BC,CARBON16" value="" list="1">
Prognostic mozart species packages: list of any subset of the following: DST,SSLT,SO4,GHG,OC,BC,CARBON16
Expand Down
2 changes: 1 addition & 1 deletion bld/configure
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ OPTIONS
[ trop_mam3 | trop_mam4 | trop_mam7 | trop_mozart | trop_strat_mam4_vbs | trop_strat_mam4_vbsext |
waccm_ma | waccm_mad | waccm_mad_mam4 | waccm_ma_mam4 |
waccm_ma_sulfur | waccm_sc | waccm_sc_mam4 | waccm_tsmlt_mam4 |
terminator | trop_mam_oslo | none ].
terminator | trop_mam_oslo | tropstrat_mam_oslo | none ].
Default: trop_mam_oslo when -camnor is specified
Default: trop_mam4 for cam6 and trop_mam3 for cam5.
-[no]clubb_sgs Switch on [off] CLUBB_SGS. Default: on for cam6, otherwise off.
Expand Down
Loading

0 comments on commit 1450ca0

Please sign in to comment.