In NorESM2, the atmospheric model CAM6-Nor replaces standard CAM. CAM6-Nor differs from CAM6 in several ways. Some of the changes are modifications to existing files (scripts, xml-files, F90-files), some code changes are made by copying original files in a different directory and modifying them, and some changes are really new code. In the F90 files, some of the changes are actived by #CAMOSLO . Below the main differences in the code are described:
Atmospheric chemistry/aerosol/cloud module: OsloAero6
A different aerosol scheme is included in CAM6-Nor. The code for this scheme can be mainly be found in the following directories under <noresm-base>:
components/cam/src/chemistry/pp_trop_mam_oslo [contains code generated by a preprocessor]
components/cam/src/chemistry/oslo_aero [contains a lot of code which originally resides in other cam-directories]
Some modifications in CAM (which are not related to the CAM-Oslo aerosol scheme) are implemented in the original code, but with namelist choices such that the modifications can be activated/deactivated:
Parameterization of turbulent air-sea fluxes (see AMIP-type experiments for more details)
Averaging over (changing) zenith angle during one model time step
Improved conservation of energy and angular momentum
In addition some parameter settings, emisson and input files will differ from standard CAM6 set-up.
CAM6-Nor source directories
The different source directories are included/activated in the following way:
components/cam/cime_config/config_component.xmlIf the long compset name contains
then CAM_CONFIG_OPTS will contain
In components/cam/bld/configure: If chem contains the string
_oslo, the following two directories are added as source
cam/src/chemistry/pp_$chem_pkg(in our case thus
pp_trop_mam_oslo) will be added as source.
The following two directories are always added [this should in principle not be the case for a pure CESM compset, but that switch hasn’t been built in yet]:
cam/src/NorESM cam/src/NorESM/$dyn (in our case is thus often cam/src/NorESM/fv)
8.2. Initial conditions
- Startup runs
If your experiment is a
startuprun, the atmosphere is initialized using basestate files. The full pathname of the bastestate file is given in the cam namelist variable
ncdatawhich is set by build-namelist. For NorESM2-LM, the default basestate file is located in the inputdata folder (on Fram this is /cluster/shared/noresm/inputdata/):
For NorESM2-MM, the default basestate file is:
See the following file in your NorESM2 repository for a full list of basestate files for different configurations:
Alternatively, as NorESM2 and CESM2 has the same default files, the different default basestate files can be inspected by looking at the entry for
ncdatain the CESM2 documentation for CAM6.0 Fortran Namelist Definitions: http://www.cesm.ucar.edu/models/cesm2/settings/current/cam_nml.html
- Branch runs
If your experiment is a
branchrun, the atmosphere is initialized using the restart files from a previous run. The restart file is determined by the variables RUN_REFCASE and RUN_REFDATE in env_run.xml. The full pathname of the restart file is given by the cam namelist variable
cam_branch_file. This variable does not have a default value.
- Hybrid runs
If your experiment is a
hybridrun, the different model components are initialized as if it was a startup, but using initialization files from a previous case at a given date (again set by the RUN_REFCASE and RUN_REFDATE variables). CAM is initialized using a initial-condition file from the previous case. The full pathname of the initial-condition file will be set in the cam namelist variable
8.3. Setting up an AMIP-type experiment
Atmospheric Model Intercomparison Project (AMIP) style runs are runs in which the atmosphere and land components are active while values for sea surface temperatures and sea ice are prescribed (that is, read from a file). The sea-ice model CICE then runs in a simplified mode and computes surface fluxes, snow depth, albedo, and surface temperatures using 1D thermodynamics without conserving energy. The sea-ice thickness is assumed to be 2 m in the Northern Hemisphere and 1 m in the Southern Hemisphere.
The AMIP simulation is created in the same manner as a coupled simulation, but using compsets starting with NF.
8.3.1. AMIP compsets
Compsets starting with NF are NorESM AMIP (atmosphere/land-only) configurations. Predefined compsets for AMIP simulations can be found in:
To create an AMIP-type experiment:
./create_newcase --case <PAT_TO_CASEFOLDER>/CASENAME --compset NFHISTnorbc --res f19_f19 --mach fram --project nn2345k --user-mods-dir cmip6_noresm_fsst_xaer
Defined user-mod-dirs are available in:
Available user-mod-dir options for NorESM2 used in CMIP6:
cmip6_noresm_fsst_xaer(history_aerosol=.true. , AEROFFL and AEROCOM defined)
cmip6_noresm_fsst_hifreq_xaer(high frecuency output,history_aerosol=.true. , AEROFFL and AEROCOM defined)
8.3.2. Creating your own compset for AMIP simulations
The essential file to edit for a new AMIP NorESM compset is:
This examples shows how to simply add the “NFHIST” compset to config_components.xml. In <noresm_base>/components/cam/cime_config/config_compsets.xml the NFHIST is set as
<!-- fSST : evolving NorESM derived ; DMS: evolving NorESM derived --> <compset> <alias>NFHISTnorbc</alias> <lname>HIST_CAM60%NORESM%NORBC_CLM50%BGC-CROP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV</lname> <science_support grid="f09_f09_mg17"/> </compset>
Forcing and input files read from historical conditions (1850 - 2015)
Build CAM6.0 (the atmosphere model) with NorESM specific additions and NorESM derived boundary conditions (for the boundary conditions, please see explonation below).
Note for some AMIP compsets CAM60%PTAERO may be used instead of CAM60%NORESM. Don’t worry, those are identical.
Build CLM5 (land model) with a global crop model (interactive vegetation)
If you want pre-described vegetation, use CLM50%SP
Build CICE (sea-ice model) with prescribed sea-ice
Build data ocean with fixed SSTs.
Build MOSART (river runoff model) with default configurations
The SGLC (land-ice) and SWAV (ocean-wave) models are not interactive, but used only to satisfy the interface requirements
To use different prescribed fields for SSTs and sea-ice cover than the default, change the value of the variable
SSTICE_DATA_FILENAME in the
evn_run.xml file to the full path of a different file that complies to the requirements of the CICE and the data-ocean model.
8.4. AMIP-style simulations with observed SSTs and frc2 emission files
The compsets using observed sea suface temperatures include compset names with fsst:
<compset> <alias>NFHISTfsst</alias> <lname>HIST_CAM60%NORESM%FSST_CLM50%BGC-CROP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV</lname> <science_support grid="f09_f09_mg17"/> </compset>
frc2 option uses differently organized emission files. A new set of emission files have been made to avoid the occurence of random mid-month model crashes. These crashes are related to the reading of emission files, but are still under investigation. To use the newest emission files choose compset names with
frc2 or if you want to create a new copset add
<compset> <alias>NFHISTfsstfrc2</alias> <lname>HIST_CAM60%NORESM%FSST%FRC2_CLM50%BGC-CROP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV</lname> <science_support grid="f09_f09_mg17"/> </compset>
8.5. NorESM2-derived boundary conditions for AMIP-style simulations
While the prescribed values used in atmosphere-only simulations are often based on observations, one might also want to use values that resemble those from a fully-coupled simulation with NorESM2. To achieve this, it is necessary to use prescribed boundary conditions for SST, sea-ice cover and upper-ocean DMS concentrations (all three fields taken from the fully-coupled simulation). Up to now, 4 sets of boundary conditions have been made:
a pre-industrial climatology with 2-degree resolution * 2x2 degree resolution in the horizontal * contains 12 monthly values * based on a 30-year period (years 1751–1780) from the CMIP6 pre-industrial control (piControl) simulation with 2x2 degree resolution (NorESM2-LM). * was used for the CMIP6 simulation piClim-control, and all simulations that are perturbation runs based on piClim-control, with NorESM2-LM (mostly 30-year long simulations)
a pre-industrial climatology with 1-degree resolution * as above but on 1x1 resolution in the horizontal, and based on years 1351-1380 from the CMIP6 piControl simulation with 1x1 degree resolution (NorESM2-MM)
the historical period * 2x2 degree resolution in the horizontal * contains monthly values for years 1849-20155 * based on the period 1850–2014 from the CMIP6 historical simulation with 2x2 degree resolution (NorESM2-LM). * was used for the CMIP6 simulation histSST, and all simulations that are perturbation runs based on sstHIST, with NorESM2-LM (165-year long simulations).
a future period based on SSP3-7.0 * 2x2 degree resolution in the horizontal * contains monthly values for years 2014-2101 * based on years 2015-2100 frm the CMIP6 SSP3-7.0 simulation with 2-degree resolution (NorESM2-LM). * was used for the CMIP6 simulation ssp370SST, and all simulations that are perturbation runs based on ssp370SST, with NorESM2-LM (86-year longs imulations). * for comparison of piClim-control and piControl, one should focus on the 30-year periods mentioned above (year 1751–1780 and 1351–1380 ) due to inter-decadal variability and/or drifts in piControl
Another thing that must be kept in mind when doing AMIP-style simulations that should resemble the coupled NorESM2 climate as closely as possible is the choice of flux parameterization used for the transfer of heat, moisture and momentum between the ocean and atmosphere, the so-called COARE flux parameterization. The flux parameterization is controlled by the variable
OCN_FLUX_SCHEME in the
env_run.xml file. The standard choice in CESM is:
This parameterisation is different from the standard flux parameterization used in NorESM2, which is activated by:
and ends up in the drv_in namelist as:
8.6. Code modifications
To make more subtantial modification to the code than what is possible by the use of user_nl_cam, there are two methods:
Make a branch from the NorESM2 version (branch or release) you want to modify, checkout this branch in order to make code changes directly in the source code folder.
Copy the source code (the fortran file(s) you want to modify) to the SourceMods/src.cam folder in the case directory, and then make the modifications needed before building the model. By the use of this method, you will not change the source code in the <noresm-base> folder.
The CAM6/CAM6-Nor source code is located in: