Advanced configuration of NorESM2 test

Creating a new compset for use of CAM5-Oslo aerosols

In this example we use the CESM1.2 compset FAMIPC5 (AMIP run with CAM5) as basis. If starting from fresh, include the new CAM5-Oslo on a new directory;

~/noresm/models/atm/cam/src/physics/cam_oslo/

then add the new CAM5-Oslo capability by editing the following files:

~/noresm/models/atm/cam/bld/configure

Under “GetOptions(” add

"cam_oslo=s" => \$opts{'cam_oslo'},

At the end of the section starting with “The default physics package is cam5...”, add

#cam-oslo configuration
my $cam_oslo='none';
my $cam_oslo_nadv = 0;
# Check cam-oslo option
if (defined $opts{'cam_oslo'}){
$cam_oslo=$opts{'cam_oslo'};
}
if($cam_oslo != 'none' and $cam_oslo != 'aerlife'){
die "only valid cam_oslo configuration is currently 'aerlife' or 'none' \n ";
}
if($cam_oslo eq 'aerlife'){
$cam_oslo_nadv =23;
}

At the end of the section starting with “User source directories”, add

#if cam_oslo is defined its source goes before the usr_sources
if ($cam_oslo ne 'none'){
my @usr_src_dirs = split ',', $cfg_ref->get('usr_src');
unshift(@usr_src_dirs, "$cam_root/models/atm/cam/src/physics/cam_oslo");
my $usr_src_dirs_string = join(",",@usr_src_dirs);
$cfg_ref->set('usr_src',$usr_src_dirs_string);
}

At the end of the section starting with “Number of advected constituents”, add

#CAM5-Oslo

if ($cam_oslo_nadv > 0){
$nadv += $cam_oslo_nadv;
if($print >=2 ){ print "Advected constituents added by CAM-Oslo $cam_oslo : $cam_oslo_nadv$eol"; }
}

At the end of the section starting with “For the CPP tokens”, add

if ($cam_oslo eq 'aerlife'){
$usr_cppdefs .= ' -DAERLIFE -DDIRIND';
}

The two chosen cppdefs options make sure that all code under “#ifdef AERLIFE” and “#ifdef DIRIND” is compiled, so that both the CAM5-Oslo aerosol life cycle and its direct and indirect effects on climate are taken into account.

~/noresm/models/atm/cam/bld/config_files/definition.xml

Under “<config_definition>”, add

<entry id="cam_oslo" value="">
Options for building cam-oslo
</entry>

~/noresm/scripts/ccsm_utils/Case.template/config_compsets.xml

Under “”, add

<COMPSET sname="F_AMIP_CAM5-OSLO" alias="FAMIPOSLO" >AMIP_CAM5%OSLO_CLM40%SP_CICE%PRES_DOCN%DOM_RTM_SGLC_SWAV</COMPSET>

Setting up a case with the new compset and building the model

It should now be possible to create a new case directory, which we here name FAMIPOSLOtst and configure with 1 degree horizontal atmospheric resolution;

./create_newcase -case ../cases/FAMIPOSLOtst -compset FAMIPOSLO -mach hexagon -res f09_f09

and finally set up and compile the model:

cd ../cases/FAMIPOSLOtst ./cesm_setup ./FAMIPOSLOtst.build