NorESM1-M for external users

Access

To request model access, please send a request to noresm-ncc@met.no with some background information on how you plan to use the model.

Installing

Untar NorESM1-M_sourceCode_vXXX.tar.zg in your home directory. This will install the model source code in the folder $HOME/NorESM1-M.

Untar NorESM1-M_inputdata_vXXX.tar.zg to a folder that is available during run-time and has at least 70 GB of free space. This will create a sub-folder inputdata and install NorESM's forcing data and other boundary conditions to it.

Untar NorESM1-M_initialPiHist1_vXXX.tar.zg to a folder that is available during run-time and has at least 2 GB of free space. This will install restart conditions for the CMIP5 PiControl and first member of historical experiment.

Porting

Machine name and characteristics

Define the characteristics of your HPC system in NorESM1-M/scripts/ccsm_utils/Machines/config_machines.xml.

Edit following section:

<machine MACH="vilje"
DESC="NTNU, Trondheim, 16 pes/node, batch system is PBS"
EXEROOT="/work/$CCSMUSER/noresm/$CASE"
OBJROOT="$EXEROOT"
INCROOT="$EXEROOT/lib/include"
DIN_LOC_ROOT_CSMDATA="/work/shared/noresm/inputdata"
DIN_LOC_ROOT_CLMQIAN="UNSET"
DOUT_S_ROOT="/work/$CCSMUSER/archive/$CASE"
DOUT_L_HTAR="FALSE"
DOUT_L_MSROOT="/norstore/project/norclim/noresm/cases/$CASE"
DOUT_L_MSHOST="norstore-trd-app0.hpc.ntnu.no"
CCSM_BASELINE="UNSET"
CCSM_CPRNC="UNSET"
OS="CNL"
BATCHQUERY="qstat -f"
BATCHSUBMIT="qsub"
GMAKE_J="4"
MAX_TASKS_PER_NODE="16"
MPISERIAL_SUPPORT="FALSE" />

Set MACH to an acronym/name tag of your choice of your HPC system. Update DESC correspondingly.

Set EXEROOT to the root location where the model should create the build and run-directories. The model will replace $CCSMUSER with your unix user and $CASE with the specific case name (=simulation/experiment name).

Set DIN_LOC_ROOT_CSMDATA to the location where you installed the forcing and boundary condition data (this path should end with “/inputdata”).

Set DOUT_S_ROOT to the root location for the short-term archiving (normally on the work disk area of the HPC system).

Optionally, set DOUT_L_MSROOT to the root location for the long-term archiving (normally a location that is not subject to automatic deletion). Leave unchanged if you don't plan to use automatic long-term archiving (e.g., if you want to move the data manually).

Optionally, set DOUT_L_MSHOST to the name of the (remote)-server for long-term archiving. Leave unchanged if you don't plan to use automatic long-term archiving

Set BATCHSUBMIT to the submit command on your HPC system.

Set GMAKE_J to the number of make instances run in parallel when building the system. Set to 1 if licence or memory issues occur.

Set MAX_TASKS_PER_NODE to the maximum number of MPI tasks that can run on a single node on your HPC system (usually the same as the number of cores per node).

CPU configurations

Define NorESM1-M CPU-configurations for your HPC system in NorESM1-M/scripts/ccsm_utils/Machines/config_pes.xml.

As a start, we recommend to simply replace all instances of vilje with your choice for MACH (i.e. the name tag of your machine).

Building and runtime options

Copy env_machopts.vilje to env_machopts.$MACH where $MACH has to be replaced with the name of your machine.

Edit settings as necessary. The settings should make compilers, libraries, queuing system commands ect. available during building and model execution. You likely have to remove/replace the module specifications, while the runtime environment settings work for most systems.

Compiler and linker options

Copy Macros.vilje to Macros.$MACH if your compiler is intel. If your compiler is pgi, then instead use Macros.hexagon as template.

Following lines need to be customised:

FC := FORTRAN COMPILER COMMAND
CC := FORTRAN COMPILER COMMAND
NETCDF_PATH := ROOT PATH FOR NETCDF LIBRARY
MPI_ROOT := ROOT PATH FOR MPI LIBRARY
INC_NETCDF := $(NETCDF_PATH)/include
LIB_NETCDF := $(NETCDF_PATH)/lib
MOD_NETCDF := $(NETCDF_PATH)/include
INC_MPI := $(MPI_ROOT)/include
LIB_MPI := $(MPI_ROOT)/lib

Batch/queuing system rules

Copy mkbatch.vilje to mkbatch.$MACH.

Change as necessary the settings for mach, group_id, mppsize, mppnodes, etc.

Replace the line mpiexec_mpt -stats -n $mpptotal omplace -nt ${maxthrds} ./ccsm.exe >&! ccsm.log.\$LID with the submit command and appropriate options for your HPC system.

----

Testing

We suggest to test the installation by running a pre-industrial spin-up experiment that is configured as 'start-up' simulation (i.e. uses idealised conditions and observational climatologies as initial conditions).

Change directory to $HOME/NorESM1-M/scripts.

Set up pre-industrial spin-up simulation with ./create_newcase -case ../cases/NorESM1-M_PI_spinup -compset NAER1850CN -res f19_g16 -mach $MACH where $MACH is the name tag of your machine.

Change directory to ../cases/NorESM1-M_PI_spinup

Run .configure -case to set up simulation.

Run ./NorESM1-M_PI_spinup.$MACH.build to stage namelists in run directory and build model code.

Submit run-script ./NorESM1-M_PI_spinup.$MACH.run (use appropriate submit command for your HPC system, e.g. qsub).

If the test was successful then the model should run for 5 days and write our restart conditions at the beginning of the 6th day. The location of the run directory is specified via EXEROOT in config_machines.xml (see section Porting).