- General
noresm2cmor is a FORTRAN based command line tool for post-processing NorESM output using the Climate Model Output Rewriter (cmor) libraries.
System, model, experiment and variable information are set in namelist files which noresm2cmor reads during its execution.
- Installation
2.1 Download
Download noresm2cmor with git clone https://github.com/NorwegianClimateCentre/noresm2cmor
2.2 Build
Change directory to noresm2cmor/build/
Make a copy of Makefile.nird_intel - e.g., Makefile.xxx - and customize your make file. IMPORTANT: The build of noresm2cmor requires the fortran version of the cmor-library (see https://pcmdi.github.io/cmor-site/download.htm for download instructions).
Build with make –f Makefile.xxx
2.3 Installation of grid data and sample input (use only if data not available)
Change directory to noresm2cmor/scripts
Run installation script for grid data ./install_griddata.sh
Run installation script for input data sample ./install_sampledata.sh
2.4 Set paths to grid data, sample data and output folder
Change directory to noresm2cmor/scripts
If install_griddata.sh not used, set path to grid data ./setpath_griddata.sh
If install_sampledata.sh not used, set path to sample data ./setpath_griddata.sh
Set path to output folder ./install_cmorout.sh
Change directory to noresm2cmor/scripts
Run CMORization test with ./cmorize_sampledata.sh
- General usage of noresm2cmor binary executable
NORSTORE:
Load modules . /usr/share/Modules/init/sh module unload netcdf gcc hdf module load gcc/4.7.2 or . /usr/share/Modules/init/sh module unload netcdf gcc hdf module load netcdf.intel/4.4.0 udunits/2.2.17 uuid/1.5.1 depending on whether noresm2cmor was compiled with intel or gnu.
NIRD:
Make intel environment available and increase stack size
source /opt/intel/compilers_and_libraries/linux/bin/compilervars.sh -arch intel64 -platform linux
ulimit -s unlimited
Change directory to folder with executable cd noresm2cmor/bin
Start CMORization with ./noresm2cmor <path to noresm2cmor's namelist file> or ./noresm2cmor3 <path to noresm2cmor3's namelist file>
E.g.
./noresm2cmor ../namelists/noresm2cmor_CMIP5_NorESM1-M_historical_r1i1p1.nml
./noresm2cmor3 ../namelists/noresm2cmor3_CMIP5_NorESM1-M_historical_r1i1p1.nml
Call noresm2cmor or noresm2cmor3 without argument to prompt syntax.
- Easy CMORization with cmorize_generic.sh wrapper script
Change directory to noresm2cmor/scripts
Start CMORization with ./cmorize_generic.sh
E.g.
./cmorize_generic.sh pwd
/../data/sampledata/N20TRAERCN_f19_g16_01 2000 2000
- Parallel CMORization
NORSTORE (only CMOR2 parallel support):
Load modules with module load intel/2017.1 openmpi.intel/1.10.2
Compile with cd build make -f Makefile_cmor2mpi.norstore_intel
CMORize (e.g. using 8 tasks) with cd ../bin export I_MPI_WAIT_MODE=1 mpirun -n 8 noresm2cmor_mpi
NIRD:
Compile with cd build make -f Makefile_cmor2mpi.nird_intel make -f Makefile_cmor3mpi.nird_intel
CMORize (e.g. using 8 tasks) with cd ../bin export I_MPI_WAIT_MODE=1 mpirun -n 8 ./noresm2cmor_mpi mpirun -n 8 ./noresm2cmor3_mpi