...
...
...
...
...
...
...
...
...
Software Requirements
Fortran 90/95 and C compiler
MPI or OpenMP libraries
netCDF4 library linked with HDF5 and zip libraries and extended by the Fortran netCDF package (The netCDF4 package comes with the programs ncdump and nccopy)
UNIX utilities: make, ksh, uname, sed, awk, wget, etc.
For post-processing: Climate Data Operators (CDO) and netCDF Operators (NCO)
...
Info |
---|
CCLM_SP uses netCDF I/O of COSMO-CLM |
The starter package is written for the HRLE–3 Mistral HRLE-4 Levante at DKRZ. Additional changes need to be applied for unsage on other machines. On the Mistral At DKRZ the Simple Linux Utility for Resource Management SLURM ist is installed.On mistral please use OPENMPI by setting
Code Block | ||
---|---|---|
| ||
module load intel-oneapi-compilers/172022.0.1-gcc-11.2.0 module load openmpi/4.1.2-intel-2021.0.2p1_hpcx-intel14 export OMPI_MCA_pml=cm export OMPI_MCA_mtl=mxm export MCM_RDMA_PORTS=mlx5_0:15.0 |
Unpack and Configure
1. Copy the starter package from RedC🔑 Downloads.
2. Unpack the starter package:
Code Block | ||
---|---|---|
| ||
$ tar -xzvf cclm-sp-45.0.tgz $ mv cclm-sp-45.0 yourpath/cclm-sp |
yourpath/cclm-sp
is named SPDIR from here on.
3. Copy and unpack the supplementary data files for testing the starter package (the program wget needs to be installed on your system)
Code Block | ||
---|---|---|
| ||
$ cd yourpath/cclm-sp$SPDIR/data $ ./get_sp_ext.sh |
4. Change to the directory yourpath/cclm-sp$SPDIR/configure_scripts
5. Adjust the settings in the file system_settings
to your computer system
6. Type the following command to create a default test experiment
Code Block | ||
---|---|---|
| ||
$ ./config.sh |
this first compiles the necessary cfu program and the fortran-csv-lib, and then creates the test experiments ${SPDIR}/chain/gcm2cclm/sp001
and ${SPDIR}/chain/cclm2cclm/sp002
.
or, if you want to create a default experiment including add-ons:
Code Block | ||
---|---|---|
| ||
$ ./config.sh -a addon1,addon2,… |
...
The source code for INT2LM, CCLM, and the auxiliary program packages CFU and fortran-csv-lib need to be compiled for running a simulation with the regional climate model. INT2LM and CCLM needs need to be compiled by yourself. CFU and fortran-csv-lib are automatically compiled when you run the config.sh
script.
...
Compile INT2LM
Code Block | ||
---|---|---|
| ||
$ cd /$SPDIR/src/int2lm |
Open the Fopts script with any text editor and change the fortran Fortran options according to your computer platform. Compile INT2LM:
Code Block | ||
---|---|---|
| ||
$ make |
In case of problems, try module unload python3
before the make-command (conda might have installed Fortran and destroyed the Intel-Fortran). If compilation is successful an executable $SPDIR/src/int2lm/bin/int2lm.exe
is created.
You may try to perform a parallel make by typing:
Code Block | ||
---|---|---|
| ||
$ make -j N |
this results in a much faster compilation. Replace N
by the number of requested processors.
1 Get the source code
...
Compile CCLM
Code Block | ||
---|---|---|
| ||
$ tar -xvf spice-v1.0.tar.gz
$ cd spice-v1.0
$ SPDIR=$PWD # used as a shortcut in the following |
2 Get supplementary data
2.1 Get the example constant and external data files
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/data
$ ./get_spice_rcm.sh |
A directory rcm
is created holding the necessary data to run the ICON-CLM test experiment.
3 Configure SPICE and run the test examples
Expand | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/configure_scripts
$ ./config.sh -s dkrz |
or at DWD like so
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/configure_scripts
$ ./config.sh -s dwd |
This will create two directories including the basic scripts. You find them under ${SPDIR}/chain/gcm2icon/sp001
and ${SPDIR}/chain/icon2icon/sp002
.
Run the test examples
There are two tests, one for testing ICON with GCM or reanalysis data as initial and boundary conditions (${SPDIR}/chain/gcm2icon/sp001
) and one for testing ICON with coarse grid ICON data as initial and boundary conditions (${SPDIR}/chain/icon2icon/sp002
). Actually sp001
creates the necessary input data for sp002
.
Before you start the experiment look for the following environment variables in the job_settings
of sp001 and sp002 file and adopt them to your needs.
Code Block | ||
---|---|---|
| ||
PROJECT_ACCOUNT= # your project account
EMAIL_ADDRESS= # your email address if you want to get information when your job crashes or finishes
BINARY_ICON= # ICON executable including full path
ECRADDIR= # path to the ECRAD data directory, if you plan to use the ECRAD radiation scheme |
Info | |||||
---|---|---|---|---|---|
If you are not running the tests at DKRZ: Adopt the input directory of the ERAInterim data
and probably the de-tar part in prep.job.sh. |
Now you should be ready to start the first experiment:
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/chain/gcm2icon/sp001
$ ./subchain start |
This experiment is a two month simulation, 50 km / Europe / driven bei ERAInterim
After successful completion start the second one:
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/chain/icon2icon/sp002
$ ./subchain start |
This experiment is a two month simulation, 3km / region around Hamburg / driven by ICON output of sp001
.
title | Configuration on a not supported computing platform |
---|
3.1 Create the supplemental programs
a. Create the fortran library libcsv
This library is used for reading csv data files. The original source code can be found on GitHub under https://github.com/jacobwilliams/fortran-csv-module
Choose a Fopts
file in the directory LOCAL
and copy it to the base directory of libcsv (here we choose Fopts.dkrz
as an example):
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/src/fortran-csv-lib
$ cp LOCAL/Fopts.dkrz Fopts |
Adopt the Fopts
file to your system and type:
Code Block | ||
---|---|---|
| ||
$ make |
After successful compilation you find the libcsv
in ${SPDIR}/src/fortran-csv-lib/lib
.
b. Create the cfu
executable
The climate fortran utilities contain several functions needed in the runtime environment.
Choose a Fopts
file in the directory LOCAL
and copy it to the base directory of libcsv (here we choose Fopts.dkrz
as an example):
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/src/cfu
$ cp LOCAL/Fopts.dkrz Fopts |
Fopts
file to your system and typecd $SPDIR/src/cclm
Open the Fopts script with any text editor and change the Fortran options according to your computer platform. The Makefile might be edited for setting the right MACHINE (e.g., levante.atos.local). Compile CCLM:
Code Block | ||
---|---|---|
| ||
$ make After successful compilation you find the cfu executable in ${SPDIR} |
If compilation is successful an executable $SPDIR/src/
...
c. Create additional conversion programs
The programs are used to convert COSMO-CLM caf-files to ICON-CLM compatible caf-file (ccaf2icaf
) and to correct the netCDF output of ICON-CLM (correct_cf
).
Choose a Fopts
file in the directory LOCAL
and copy it to the base directory of libcsv (here we choose Fopts.dkrz
as an example):
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/src/utils
$ cp LOCAL/Fopts.dkrz Fopts |
Adopt the Fopts
file to your system and type:
Code Block | ||
---|---|---|
| ||
$ make |
After successful compilation you find the executables ccaf2icaf
and correct_cf
in ${SPDIR}/src/utils/bin
3.2 Configure SPICE on your computing system
If you intent not to run ICON-CLM at DKRZ or DWD you have to perform some adoptions. First, find out which batch system comes nearest to your system. DKRZ uses SLURM (i.e. SBATCH commands) and DWD uses the Portable Batch Commands (i.e. PBS commands). Lets suppose as an example in the following that you use SLURM on your computing system and therefore you use "dkrz" as a template.
...
cclm/bin/cclm.exe
is created.
You may try to perform a parallel make by typing:
Code Block | |||||
---|---|---|---|---|---|
| |||||
$ cd ${SPDIR}/configure_scriptsb. Adopt the dkrz part in the c. Run the
This will create two directories including the basic scripts. You find them under ${SPDIR}/chain/gcm2icon/sp001 . make -j N |
this results in a much faster compilation. Replace N
by the number of requested processors.
Run the test examples
There are two tests, one for testing
...
CCLM with GCM or reanalysis data as initial and boundary conditions (${SPDIR}/chain/
...
gcm2cclm/sp001) and one for testing
...
CCLM with coarse grid
...
CCLM data as initial and boundary conditions (${SPDIR}/chain/
...
cclm2cclm/sp002). Actually, sp001 creates the necessary input data for sp002
...
SP001
is a two month simulation, 50 km / Europe / driven bei ERAInterim
...
.
...
Before you start the experiment look for the following environment variables in the job_
...
settings of sp001 and sp002 file and adapt them to your needs.
Code Block | |||||
---|---|---|---|---|---|
| |||||
PROJECT_ACCOUNT= # your project account
EMAIL_ADDRESS= # your email address if you want to get information when your job crashes or finishes
BINARY_ICON= # ICON executable including full path
ECRADDIR= # path to the ECRAD data directory, if you plan to use the ECRAD radiation schemeAdopt the input directory of the ERAInterim data
|
Now you should be ready to start the first experiment:
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/chain/ gcm2icongcm2cclm/sp001 $ ./subchain startIn SPICE the |
This experiment is a two month simulation, 50 km / Europe / driven by ERAInterim
The scripts are called in the order prep.job.sh,
...
int2lm.job.sh,
...
cclm.job.sh, arch.job.sh, post.job.sh. If your job crashes in one of the scripts you do not have to run all the successful scripts again, but can start this script again after you made the corrections by submitting the appropriate command from the following list:
Code Block | ||
---|---|---|
| ||
$ ./subchain prep subchain prep $ ./subchain conv2icon $ ./subchainicon cclm noprep $ ./subchain arch $ ./subchain post |
After successful completion of
...
the sp001
experiment adapt the scripts in
...
sp002
and start this experiment:
Code Block | ||
---|---|---|
| ||
$ cd ${SPDIR}/chain/ icon2iconcclm2cclm/sp002 $ ./subchain start |
This experiment is a two-month simulation, 2 km resolution, around Hamburg, driven by the results from the sp001
experiment.