@@ -1688,6 +1688,7 @@ sub process_namelist_inline_logic {
16881688 setup_logic_cnmatrix($opts , $nl_flags , $definition , $defaults , $nl , $envxml_ref );
16891689 setup_logic_spinup($opts , $nl_flags , $definition , $defaults , $nl );
16901690 setup_logic_supplemental_nitrogen($opts , $nl_flags , $definition , $defaults , $nl );
1691+ setup_logic_c_isotope($opts , $nl_flags , $definition , $defaults , $nl );
16911692 setup_logic_snowpack($opts , $nl_flags , $definition , $defaults , $nl );
16921693 setup_logic_fates($opts , $nl_flags , $definition , $defaults , $nl );
16931694 setup_logic_z0param($opts , $nl_flags , $definition , $defaults , $nl );
@@ -1737,7 +1738,6 @@ sub process_namelist_inline_logic {
17371738 # namelist group: ch4par_in #
17381739 # ##############################
17391740 setup_logic_methane($opts , $nl_flags , $definition , $defaults , $nl );
1740- setup_logic_c_isotope($opts , $nl_flags , $definition , $defaults , $nl );
17411741
17421742 # ##############################
17431743 # namelist group: ndepdyn_nml #
@@ -3175,10 +3175,11 @@ sub setup_logic_do_grossunrep {
31753175
31763176 my $var = ' do_grossunrep' ;
31773177
3178- # Start by assuming a default value of '.true .'. Then check a number of
3178+ # Start by assuming a default value of '.false .'. Then check a number of
31793179 # conditions under which do_grossunrep cannot be true. Under these
3180- # conditions: (1) set default value to '.false.'; (2) make sure that the
3180+ # conditions: (1) set default value to '.false.' again ; (2) make sure that the
31813181 # value is indeed false (e.g., that the user didn't try to set it to true).
3182+ # Ideally the default value would be set in namelist_defaults
31823183
31833184 my $default_val = " .false." ;
31843185
@@ -3703,63 +3704,53 @@ sub setup_logic_c_isotope {
37033704 #
37043705 my ($opts , $nl_flags , $definition , $defaults , $nl ) = @_ ;
37053706
3707+ add_default($opts , $nl_flags -> {' inputdata_rootdir' }, $definition , $defaults , $nl , ' use_c13' , ' bgc_mode' => $nl_flags -> {' bgc_mode' }, ' phys' => $nl_flags -> {' phys' });
3708+ add_default($opts , $nl_flags -> {' inputdata_rootdir' }, $definition , $defaults , $nl , ' use_c14' , ' bgc_mode' => $nl_flags -> {' bgc_mode' }, ' phys' => $nl_flags -> {' phys' });
37063709 my $use_c13 = $nl -> get_value(' use_c13' );
37073710 my $use_c14 = $nl -> get_value(' use_c14' );
37083711 if ( $nl_flags -> {' bgc_mode' } ne " sp" && $nl_flags -> {' bgc_mode' } ne " fates" ) {
37093712 if ( $nl_flags -> {' bgc_mode' } ne " bgc" ) {
3710- if ( defined ( $use_c13 ) && &value_is_true($use_c13 ) ) {
3713+ if ( &value_is_true($use_c13 ) ) {
37113714 $log -> warning(" use_c13 is ONLY scientifically validated with the bgc=BGC configuration" );
37123715 }
3713- if ( defined ( $use_c14 ) && &value_is_true($use_c14 ) ) {
3716+ if ( &value_is_true($use_c14 ) ) {
37143717 $log -> warning(" use_c14 is ONLY scientifically validated with the bgc=BGC configuration" );
37153718 }
37163719 }
3717- if ( defined ($use_c14 ) ) {
3718- if ( &value_is_true($use_c14 ) ) {
3719- my $use_c14_bombspike = $nl -> get_value(' use_c14_bombspike' );
3720- if ( defined ($use_c14_bombspike ) && &value_is_true($use_c14_bombspike ) ) {
3721- add_default($opts , $nl_flags -> {' inputdata_rootdir' }, $definition , $defaults , $nl , ' atm_c14_filename' ,
3722- ' use_c14' => $use_c14 , ' use_cn' => $nl_flags -> {' use_cn' }, ' use_c14_bombspike' => $nl -> get_value(' use_c14_bombspike' ),
3723- ' ssp_rcp' => $nl_flags -> {' ssp_rcp' } );
3724- }
3725- } else {
3726- if ( defined ($nl -> get_value(' use_c14_bombspike' )) ||
3727- defined ($nl -> get_value(' atm_c14_filename' )) ) {
3728- $log -> fatal_error(" use_c14 is FALSE and use_c14_bombspike or atm_c14_filename set" );
3729- }
3720+ if ( &value_is_true($use_c14 ) ) {
3721+ add_default($opts , $nl_flags -> {' inputdata_rootdir' }, $definition , $defaults , $nl , ' use_c14_bombspike' , ' bgc_mode' => $nl_flags -> {' bgc_mode' }, ' phys' => $nl_flags -> {' phys' });
3722+ my $use_c14_bombspike = $nl -> get_value(' use_c14_bombspike' );
3723+ if ( &value_is_true($use_c14_bombspike ) ) {
3724+ add_default($opts , $nl_flags -> {' inputdata_rootdir' }, $definition , $defaults , $nl , ' atm_c14_filename' ,
3725+ ' use_c14' => $use_c14 , ' use_cn' => $nl_flags -> {' use_cn' }, ' use_c14_bombspike' => $nl -> get_value(' use_c14_bombspike' ),
3726+ ' ssp_rcp' => $nl_flags -> {' ssp_rcp' } );
37303727 }
37313728 } else {
37323729 if ( defined ($nl -> get_value(' use_c14_bombspike' )) ||
37333730 defined ($nl -> get_value(' atm_c14_filename' )) ) {
3734- $log -> fatal_error(" use_c14 NOT set to .true., but use_c14_bompspike/ atm_c14_filename defined. " );
3731+ $log -> fatal_error(" use_c14 is FALSE and use_c14_bombspike or atm_c14_filename set " );
37353732 }
37363733 }
3737- if ( defined ($use_c13 ) ) {
3738- if ( &value_is_true($use_c13 ) ) {
3739- my $use_c13_timeseries = $nl -> get_value(' use_c13_timeseries' );
3740- if ( defined ($use_c13_timeseries ) && &value_is_true($use_c13_timeseries ) ) {
3741- add_default($opts , $nl_flags -> {' inputdata_rootdir' }, $definition , $defaults , $nl , ' atm_c13_filename' ,
3742- ' use_c13' => $use_c13 , ' use_cn' => $nl_flags -> {' use_cn' }, ' use_c13_timeseries' => $nl -> get_value(' use_c13_timeseries' ),
3743- ' ssp_rcp' => $nl_flags -> {' ssp_rcp' } );
3744- }
3745- } else {
3746- if ( defined ($nl -> get_value(' use_c13_timeseries' )) ||
3747- defined ($nl -> get_value(' atm_c13_filename' )) ) {
3748- $log -> fatal_error(" use_c13 is FALSE and use_c13_timeseries or atm_c13_filename set" );
3749- }
3734+ if ( &value_is_true($use_c13 ) ) {
3735+ add_default($opts , $nl_flags -> {' inputdata_rootdir' }, $definition , $defaults , $nl , ' use_c13_timeseries' , ' bgc_mode' => $nl_flags -> {' bgc_mode' }, ' phys' => $nl_flags -> {' phys' });
3736+ my $use_c13_timeseries = $nl -> get_value(' use_c13_timeseries' );
3737+ if ( &value_is_true($use_c13_timeseries ) ) {
3738+ add_default($opts , $nl_flags -> {' inputdata_rootdir' }, $definition , $defaults , $nl , ' atm_c13_filename' ,
3739+ ' use_c13' => $use_c13 , ' use_cn' => $nl_flags -> {' use_cn' }, ' use_c13_timeseries' => $nl -> get_value(' use_c13_timeseries' ),
3740+ ' ssp_rcp' => $nl_flags -> {' ssp_rcp' } );
37503741 }
37513742 } else {
37523743 if ( defined ($nl -> get_value(' use_c13_timeseries' )) ||
37533744 defined ($nl -> get_value(' atm_c13_filename' )) ) {
3754- $log -> fatal_error(" use_c13 NOT set to .true., but use_c13_bompspike/ atm_c13_filename defined. " );
3745+ $log -> fatal_error(" use_c13 is FALSE and use_c13_timeseries or atm_c13_filename set " );
37553746 }
37563747 }
37573748 } else {
3758- if ( defined ($use_c13 ) ||
3759- defined ($use_c14 ) ||
3760- defined ($nl -> get_value(' use_c14_bombspike' )) ||
3749+ if ( &value_is_true ($use_c13 ) ||
3750+ &value_is_true ($use_c14 ) ||
3751+ &value_is_true ($nl -> get_value(' use_c14_bombspike' )) ||
37613752 defined ($nl -> get_value(' atm_c14_filename' )) ||
3762- defined ($nl -> get_value(' use_c13_timeseries' )) ||
3753+ &value_is_true ($nl -> get_value(' use_c13_timeseries' )) ||
37633754 defined ($nl -> get_value(' atm_c13_filename' )) ) {
37643755 $log -> fatal_error(" bgc=sp and C isotope namelist variables were set, both can't be used at the same time" );
37653756 }
0 commit comments