@@ -541,7 +541,7 @@ my $rad_prog_bcarb = (($prog_species =~ "BC" or $aero_chem) and !($chem_rad_pa
541541my $rad_prog_sulf = (($prog_species =~ " SO4" or $aero_chem ) and !($chem_rad_passive ));
542542my $rad_prog_dust = (($prog_species =~ " DST" or $aero_chem ) and !($chem_rad_passive ));
543543my $rad_prog_sslt = (($prog_species =~ " SSLT" or $aero_chem ) and !($chem_rad_passive ));
544- my $rad_prog_ozone = (($chem =~ " mozart" or $chem =~ " waccm_ma" or $chem =~ " tsmlt" or $chem =~ " trop_strat" or $chem =~ / geoschem/ ) and !($chem_rad_passive ));
544+ my $rad_prog_ozone = (($chem =~ " mozart" or $chem =~ " waccm_ma" or $chem =~ " tsmlt" or $chem =~ " _t4ma " or $chem =~ " trop_strat" or $chem =~ / geoschem/ ) and !($chem_rad_passive ));
545545
546546# Check for eruptive volcano emissions. These will be radiatively active by default, but
547547# only if using BAM and the camrt radiation package
@@ -881,7 +881,7 @@ my @aerosources = ();
881881# and commas) that will be assigned to the namelist variable rad_climate.
882882my $radval = " 'A:Q:H2O'" ;
883883
884- if (($chem =~ / waccm_ma/ or $chem =~ / waccm_tsmlt/ ) and !$chem_rad_passive ) {
884+ if (($chem =~ / waccm_ma/ or $chem =~ / waccm_tsmlt/ or $chem =~ / waccm_t4ma / ) and !$chem_rad_passive ) {
885885 $radval .= " ,'A:O2:O2','A:CO2:CO2'" ;
886886}
887887elsif (($chem =~ / trop_strat/ or $chem =~ / geoschem/ ) and !$chem_rad_passive ) {
@@ -911,7 +911,7 @@ if ($rad_prog_ozone) {
911911 die " ERROR: can not set ozone rad_climate specification\n " ;
912912}
913913
914- if ((($chem =~ / ghg_mam4/ ) or ($chem =~ / waccm_ma/ ) or ($chem =~ / waccm_sc_mam/ ) or ($chem =~ / waccm_tsmlt/ ) or ($chem =~ / trop_strat/ )) and !$chem_rad_passive ) {
914+ if ((($chem =~ / ghg_mam4/ ) or ($chem =~ / waccm_ma/ ) or ($chem =~ / waccm_t4ma / ) or ( $chem =~ / waccm_sc_mam/ ) or ($chem =~ / waccm_tsmlt/ ) or ($chem =~ / trop_strat/ )) and !$chem_rad_passive ) {
915915 $radval .= " ,'A:N2O:N2O','A:CH4:CH4','N:CFC11STAR:CFC11','A:CFC12:CFC12'" ;
916916} elsif ($prog_ghg1 and $prog_ghg2 and !$chem_rad_passive ) {
917917 $radval .= " ,'A:N2O:N2O','A:CH4:CH4','A:CFC11:CFC11','A:CFC12:CFC12'" ;
@@ -2136,7 +2136,7 @@ if ($chem =~ /geoschem/) {
21362136 }
21372137}
21382138
2139- if ($chem =~ / trop_mozart/ or $chem =~ / trop_strat/ or $chem =~ / waccm_tsmlt/ ) {
2139+ if ($chem =~ / trop_mozart/ or $chem =~ / trop_strat/ or $chem =~ / waccm_tsmlt/ or $chem =~ / _t4ma / ) {
21402140
21412141 my $val ;
21422142
@@ -2168,7 +2168,7 @@ if ($chem =~ /trop_mozart/ or $chem =~ /trop_strat/ or $chem =~ /waccm_tsmlt/) {
21682168
21692169 my @files ;
21702170 # Datasets
2171- if ($chem =~ / trop_strat/ or $chem =~ / waccm_tsmlt/ ) {
2171+ if ($chem =~ / trop_strat/ or $chem =~ / waccm_tsmlt/ or $chem =~ / waccm_t4ma / ) {
21722172 @files = ( ' flbc_file' ,
21732173 ' xs_coef_file' ,' xs_short_file' ,' xs_long_file' , ' rsf_file' );
21742174 } else {
@@ -2351,7 +2351,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
23512351 }
23522352
23532353 # for mid-atmos gas-phase chemistry
2354- if ($chem =~ / trop_strat/ or $chem =~ / _tsmlt/ or $chem =~ / waccm_ma/ ) {
2354+ if ($chem =~ / trop_strat/ or $chem =~ / _tsmlt/ or $chem =~ / waccm_ma/ or $chem =~ / waccm_t4ma / ) {
23552355 %species = (%species ,
23562356 ' NO_an_srf_file' => ' NO' ,
23572357 ' NO_bb_srf_file' => ' NO' ,
@@ -2364,7 +2364,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
23642364 }
23652365
23662366 # for troposphere gas-phase chemistry
2367- if ($chem =~ / trop_strat/ or $chem =~ / _tsmlt/ ) {
2367+ if ($chem =~ / trop_strat/ or $chem =~ / _tsmlt/ or $chem =~ / _t4ma / ) {
23682368 %species = (%species ,
23692369 ' BIGALK_an_srf_file' => ' BIGALK' ,
23702370 ' BIGALK_bb_srf_file' => ' BIGALK' ,
@@ -2395,9 +2395,12 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
23952395 ' ISOP_bb_srf_file' => ' ISOP' ,
23962396 ' NH3_an_srf_file' => ' NH3' ,
23972397 ' NH3_bb_srf_file' => ' NH3' ,
2398- ' NH3_ot_srf_file' => ' NH3' ,
2398+ ' NH3_ot_srf_file' => ' NH3' ) ;
2399+ if (chem_has_species($cfg , ' E90' )) {
2400+ %species = (%species ,
23992401 ' E90_srf_file' => ' E90' );
2400- if ($chem !~ / _ts4/ ) {
2402+ }
2403+ if ($chem !~ / _ts4/ and $chem !~ / _t4ma/ ) {
24012404 %species = (%species ,
24022405 ' BENZENE_an_srf_file' => ' BENZENE' ,
24032406 ' BENZENE_bb_srf_file' => ' BENZENE' ,
@@ -2421,7 +2424,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
24212424 if ($chem =~ / trop_strat_mam4_ts2/ or $chem =~ / trop_strat_mam5_ts2/ ) {
24222425 %species = (%species ,
24232426 ' MTERP_bb_srf_file' => ' APIN' ) ;
2424- } elsif ($chem =~ / _ts4/ ) {
2427+ } elsif ($chem =~ / _ts4/ or $chem =~ / _t4ma / ) {
24252428 %species = (%species ,
24262429 ' MTERP_bb_srf_file' => ' TERP' ) ;
24272430 } else {
@@ -2446,7 +2449,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
24462449 ' IVOC_bb_srf_file' => ' IVOCbb' ,
24472450 ' SVOC_an_srf_file' => ' SVOCff' ,
24482451 ' SVOC_bb_srf_file' => ' SVOCbb' );
2449- } elsif ($chem !~ / _ts4/ ) {
2452+ } elsif ($chem !~ / _ts4/ and $chem !~ / _t4ma / ) {
24502453 %species = (%species ,
24512454 ' IVOC_an_srf_file' => ' IVOC' ,
24522455 ' IVOC_bb_srf_file' => ' IVOC' ,
@@ -2471,7 +2474,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
24712474 $first = 0;
24722475 }
24732476 }
2474- if ($chem eq ' trop_mam4' or $chem eq ' waccm_sc_mam4' or $chem eq ' ghg_mam4' or $chem =~ / _ts4/ ) {
2477+ if ($chem eq ' trop_mam4' or $chem eq ' waccm_sc_mam4' or $chem eq ' ghg_mam4' or $chem =~ / _ts4/ or $chem =~ / _t4ma / ) {
24752478 # SOA yields (used for the interactive emissions) have been calculated based on the VBS yields in CAM-chem.
24762479 # Duseong S. Jo, et al. to be submitted to GMD, 2023 -- see https://github.com/ESCOMP/CAM/pull/727 discussion for additional detail.
24772480 my %soae_fctrs = (' BENZENE_an_srf_file' => ' 2.5592D0' ,
@@ -2686,7 +2689,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
26862689 add_default($nl , ' megan_factors_file' );
26872690 add_default($nl , ' megan_mapped_emisfctrs' , ' val' => ' .false.' );
26882691 }
2689- if ($chem =~ / trop_strat_mam5_ts4/ ) {
2692+ if ($chem =~ / trop_strat_mam5_ts4/ or $chem =~ / _t4ma / ) {
26902693 my $val = " 'ISOP = isoprene',"
26912694 . " 'TERP = carene_3 + pinene_a + thujene_a + bornene + terpineol_4 + terpineol_a + terpinyl_ACT_a +',"
26922695 . " ' myrtenal + sabinene + pinene_b + camphene + fenchene_a + limonene + phellandrene_a + terpinene_a +',"
@@ -2757,7 +2760,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
27572760 add_default($nl , ' megan_mapped_emisfctrs' , ' val' => ' .false.' );
27582761 }
27592762 if ($chem =~ / waccm_ma/ ) {
2760- my $val = " 'CH2O = formaldehyde', 'CO = carbon_monoxide'" ;
2763+ my $val = " 'CH2O = formaldehyde','CO = carbon_monoxide'" ;
27612764 add_default($nl , ' megan_specifier' , ' val' => $val );
27622765 add_default($nl , ' megan_factors_file' );
27632766 add_default($nl , ' megan_mapped_emisfctrs' , ' val' => ' .false.' );
@@ -2891,12 +2894,13 @@ if ($chem eq 'trop_mam7') {
28912894}
28922895
28932896my $waccmx = $cfg -> get(' waccmx' );
2897+ my $model_top = $cfg -> get(' model_top' );
28942898
28952899# set maximum solar zenith angle for photolysis
28962900my $maxzen = 0.0;
28972901if ($waccmx ){
28982902 $maxzen = 116.;
2899- } elsif ($chem =~ " trop_strat" or $chem =~ " waccm_" ) {
2903+ } elsif ($chem =~ " trop_strat" or $chem =~ " waccm_" or $model_top eq " ht " ) {
29002904 $maxzen = 97.01;
29012905} elsif ($chem =~ " trop_mam" or $chem =~ " trop_mozart" or $chem =~ " ghg_mam" ) {
29022906 $maxzen = 88.85;
@@ -2907,17 +2911,17 @@ if ($maxzen>0.0) {
29072911
29082912# upper boundary specifier
29092913my $ubc_ver ;
2910- if (($chem =~ / waccm_ma/ or $chem =~ / waccm_tsmlt/ ) and !$waccmx ) {
2914+ if (($chem =~ / waccm_ma/ or $chem =~ / waccm_tsmlt/ or $chem =~ / waccm_t4ma / ) and !$waccmx ) {
29112915 $ubc_ver = ' waccmchem' ;
2912- } elsif ($chem =~ / waccm_sc/ ) {
2916+ } elsif ($chem =~ / waccm_sc/ or ( $model_top eq " ht " and $chem =~ / ghg_mam / ) ) {
29132917 $ubc_ver = ' waccmsc' ;
29142918}
29152919if (defined $ubc_ver ) {
29162920 add_default($nl , ' ubc_specifier' , ' ver' => $ubc_ver );
29172921}
29182922
29192923# WACCM options.
2920- if ($chem =~ / waccm_ma/ or $chem =~ / waccm_tsmlt/ ) {
2924+ if ($chem =~ / waccm_ma/ or $chem =~ / waccm_tsmlt/ or $chem =~ / waccm_t4ma / ) {
29212925
29222926 # Species with fixed lower boundary
29232927 my $val = " 'CCL4','CF2CLBR','CF3BR','CFC11','CFC113','CFC12','CH3BR','CH3CCL3','CH3CL','CH4','CO2'"
0 commit comments