/noresm2cmor

A command line tool for cmorizing NorESM output

Primary LanguageFortran

noresm2cmor
-----------


1. 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. 


2. 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 <absolute path to folder where grid data should be stored> 

Run installation script for input data sample 
 ./install_sampledata.sh <absolute path to folder where sample input should be stored> 

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 <absolute path to folder where grid data is stored>

If install_sampledata.sh not used, set path to sample data 
 ./setpath_griddata.sh <absolute path to folder where sample input is stored>

Set path to output folder
 ./install_cmorout.sh <absolute path to folder where CMOR output should be stored>


3 Testing of CMORization on sample data
---------------------------------------

Change directory to noresm2cmor/scripts

Run CMORization test with 
 ./cmorize_sampledata.sh 


4. 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.


5. Easy CMORization with cmorize_generic.sh wrapper script
----------------------------------------------------------

Change directory to noresm2cmor/scripts

Start CMORization with 
 ./cmorize_generic.sh <absolute path to NorESM case folder> <start year> <end year> 

E.g. 
 ./cmorize_generic.sh `pwd`/../data/sampledata/N20TRAERCN_f19_g16_01 2000 2000


6. 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 <path to namelist> 

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 <path to namelist> 
 mpirun -n 8 noresm2cmor3_mpi <path to namelist>