@@ -509,14 +509,6 @@ if ($phys_mode_flags > 1) {
509
509
my $simple_phys = 0;
510
510
if ($adia_mode or $ideal_mode ) { $simple_phys = 1; }
511
511
512
- # If running either a simple physics or an aquaplanet configuration, the nitrogen
513
- # deposition data is not used. These files are set in buildnml and can't be overridden
514
- # via user_nl_cam. So provide an override here.
515
- if ($simple_phys or $aqua_mode ) {
516
- $nl -> set_variable_value(' ndep_stream_nl' , ' stream_ndep_data_filename' , ' " "' );
517
- $nl -> set_variable_value(' ndep_stream_nl' , ' stream_ndep_mesh_filename' , ' " "' );
518
- }
519
-
520
512
# Single column mode
521
513
my $scam = $cfg -> get(' scam' );
522
514
my $scam_iop = $cfg -> get(' scam_iop' );
@@ -705,6 +697,19 @@ if ($sim_year =~ /(\d+)-(\d+)/) {
705
697
$sim_year_start = $1 ;
706
698
}
707
699
700
+ # Setup default ndep streams only if not simple_phys or aqua_mode and
701
+ # the chemistry cannot produce the nitrogen depostion fluxes
702
+ if (!($simple_phys or $aqua_mode )) {
703
+ my $chem_nitrodep = chem_has_species($cfg , ' NO' ) and chem_has_species($cfg , ' NH3' );
704
+ if ((!$chem_nitrodep ) or ($chem =~ / geoschem/ )) {
705
+ add_default($nl , ' stream_ndep_mesh_filename' );
706
+ add_default($nl , ' stream_ndep_data_filename' , ' sim_year' => $sim_year );
707
+ add_default($nl , ' stream_ndep_year_first' , ' sim_year' => $sim_year );
708
+ add_default($nl , ' stream_ndep_year_last' , ' sim_year' => $sim_year );
709
+ add_default($nl , ' stream_ndep_year_align' , ' sim_year' => $sim_year );
710
+ }
711
+ }
712
+
708
713
# Topography
709
714
add_default($nl , ' use_topo_file' );
710
715
my $use_topo_file = $nl -> get_value(' use_topo_file' );
@@ -755,11 +760,9 @@ if ($rad_pkg =~ /rrtmg/ or $chem =~ /waccm/) {
755
760
# use solar data file as the default for rrtmg and waccm_ma
756
761
add_default($nl , ' solar_irrad_data_file' );
757
762
758
- # This option only used by camrt and rrtmg radiation schemes.
759
- # The solar spectral scaling is done internal to RRTMGP code.
760
- if ($rad_pkg ne ' rrtmgp' ) {
761
- add_default($nl , ' solar_htng_spctrl_scl' , ' val' => ' .true.' );
762
- }
763
+ # The solar spectral scaling is done based on the distribution from
764
+ # the solar_irrad_data_file.
765
+ add_default($nl , ' solar_htng_spctrl_scl' , ' val' => ' .true.' );
763
766
764
767
}
765
768
elsif (!$simple_phys ) {
@@ -1268,6 +1271,7 @@ if ($carma ne 'none') {
1268
1271
add_default($nl , ' carma_model' , ' val' => $carma );
1269
1272
add_default($nl , ' carma_flag' , ' val' => ' .true.' );
1270
1273
add_default($nl , ' history_carma' , ' val' => ' .true.' );
1274
+ add_default($nl , ' carma_sulfnuc_method' ,' val' => ' ZhaoTurco' );
1271
1275
}
1272
1276
if ($carma eq ' bc_strat' ) {
1273
1277
add_default($nl , ' carma_do_drydep' , ' val' => ' .true.' );
@@ -1587,7 +1591,7 @@ if (defined $nl->get_value('prescribed_strataero_3modes')) {
1587
1591
1588
1592
# determine if prescribed stratospheric aerosol data is needed
1589
1593
if ( ($het_chem ) || ($nl -> get_value(' prescribed_strataero_feedback' ) =~ / $TRUE /io ) ){
1590
- if ( ( $carma ne ' sulfate ' ) && !($nl -> get_value(' modal_strat_sulfate' ) =~ / $TRUE /io ) ) { # if no prognostic stratospheric aerosols
1594
+ if ( !($nl -> get_value(' modal_strat_sulfate' ) =~ / $TRUE /io ) ) { # if no prognostic stratospheric aerosols
1591
1595
1592
1596
unless (defined $nl -> get_value(' prescribed_strataero_type' )) {
1593
1597
add_default($nl , ' prescribed_strataero_type' ,' val' => ' CYCLICAL' );
@@ -3771,6 +3775,14 @@ if (!$simple_phys) {
3771
3775
add_default($nl , ' use_gw_movmtn_pbl' , ' val' => ' .true.' );
3772
3776
}
3773
3777
3778
+ my $use_gw_movmtn_pbl = $nl -> get_value(' use_gw_movmtn_pbl' );
3779
+ if ($use_gw_movmtn_pbl =~ / $TRUE /io ) {
3780
+ if ( ! ($dyn =~ / se/ ) ) {
3781
+ die " $ProgName - ERROR: use_gw_movmtn_pbl is only available with the SE dycore \n " ;
3782
+
3783
+ }
3784
+ }
3785
+
3774
3786
add_default($nl , ' use_gw_rdg_gamma' , ' val' => ' .false.' );
3775
3787
add_default($nl , ' use_gw_front_igw' , ' val' => ' .false.' );
3776
3788
add_default($nl , ' use_gw_convect_sh' , ' val' => ' .false.' );
@@ -3832,6 +3844,7 @@ my $do_gw_convect_sh = ($nl->get_value('use_gw_convect_sh') =~ /$TRUE/io);
3832
3844
my $do_gw_movmtn_pbl = ($nl -> get_value(' use_gw_movmtn_pbl' ) =~ / $TRUE /io );
3833
3845
my $do_gw_rdg_beta = ($nl -> get_value(' use_gw_rdg_beta' ) =~ / $TRUE /io );
3834
3846
my $do_gw_rdg_gamma = ($nl -> get_value(' use_gw_rdg_gamma' ) =~ / $TRUE /io );
3847
+ my $do_gw_rdg_resid = ($nl -> get_value(' use_gw_rdg_resid' ) =~ / $TRUE /io );
3835
3848
3836
3849
my $do_divstream = ($nl -> get_value(' gw_rdg_do_divstream' ) =~ / $TRUE /io );
3837
3850
@@ -3886,6 +3899,10 @@ if ($do_gw_convect_sh) {
3886
3899
if ($do_gw_movmtn_pbl ) {
3887
3900
add_default($nl , ' gw_drag_file_mm' );
3888
3901
add_default($nl , ' alpha_gw_movmtn' );
3902
+ add_default($nl , ' effgw_movmtn_pbl' );
3903
+ add_default($nl , ' movmtn_source' );
3904
+ add_default($nl , ' movmtn_psteer' );
3905
+ add_default($nl , ' movmtn_plaunch' );
3889
3906
}
3890
3907
3891
3908
if ($do_gw_rdg_beta ) {
@@ -3905,6 +3922,10 @@ if ($do_gw_rdg_beta) {
3905
3922
add_default($nl , ' gw_prndl' );
3906
3923
}
3907
3924
3925
+ if ($do_gw_rdg_resid ) {
3926
+ add_default($nl , ' effgw_rdg_resid' );
3927
+ }
3928
+
3908
3929
if ($do_gw_rdg_gamma ) {
3909
3930
add_default($nl , ' n_rdg_gamma' , ' val' => ' -1' );
3910
3931
add_default($nl , ' effgw_rdg_gamma' , ' val' => ' 1.0D0' );
0 commit comments