Here is an example of a list of prescribed greenhouse gases (user_nl_cam):

&chem_surfvals_nl
 flbc_list              = 'CH4', 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CO2', 'H2',
         'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'CH2BR2', 'CHBR3', 'H2402', 'OCS', 'SF6'

If you want to run without prescribed methane for example, remove 'CH4' from the list:

&chem_surfvals_nl
 flbc_list              = 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CO2', 'H2',
         'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'CH2BR2', 'CHBR3', 'H2402', 'OCS', 'SF6'

You might want to add your favorite emission file in srf_emis_specifier list and output 'SFCH4', 'DF_CH4'.

Now the code in components/cam/bld/build-namelist will break because it contains the following:

# Make sure the flbc_list specifies all the GHGs needed for radiation.
my $flbc_list = $nl->get_value('flbc_list');
if (defined $flbc_list) {
# If flbc_list has already been defined, check that it contains all
# the GHGs needed by the radiation code.
foreach my $ghg ('CO2','CH4', 'N2O','CFC11','CFC12') {
if ($flbc_list !~ /$ghg/) {
die "$ProgName - ERROR: $ghg is missing from flbc_list \n";
}
}
}
else {
my $val = "'CO2','CH4','N2O','CFC11','CFC12'";
add_default($nl, 'flbc_list', 'val'=>$val);
}


So you need to remove 'CH4' from the list:

# Make sure the flbc_list specifies all the GHGs needed for radiation.
my $flbc_list = $nl->get_value('flbc_list');
if (defined $flbc_list) {
# If flbc_list has already been defined, check that it contains all
# the GHGs needed by the radiation code.
foreach my $ghg ('CO2', 'N2O','CFC11','CFC12') {
if ($flbc_list !~ /$ghg/) {
die "$ProgName - ERROR: $ghg is missing from flbc_list \n";
}
}
}
else {
my $val = "'CO2','N2O','CFC11','CFC12'";
add_default($nl, 'flbc_list', 'val'=>$val);
}
  • No labels