Skip to content

Installation

Our journey starts with cloning MODIPSL that manages IPSL-CM-LAM model (the IPSLCM7* configurations).

Getting MODIPSL

Type in your shell:

svn co https://forge.ipsl.fr/igcmg/svn/modipsl/trunk modipsl #(1)!
  1. Check if Subversion is available with the command: svn --version. On IDRIS/Jean-Zay, run module load svn to load it.

SVN authentication

Cloning of MODIPSL and model components on ESPRI/Spirit(x) and third-party machines requires SVN authentication. You must provide passwords for the subsequent users, if you will be using corresponding components:

  • MODIPSL/IOIPSL/IGCMG, username: icmc_users
  • LMDZ, username: lmdz-users
  • ORCHIDEE, username: sechiba
  • INCA, username: inca

Please consult the webpage of the particular component, ask us, or ask MODIPSL support (mailing list platform-users@listes.ipsl.fr) to obtain required passwords.

Tip

In order to increase reproducibility of your experiments, work on specific revision of modipsl. You can clone a selected revision with svn co -r <REVISION>. By doing so, you make sure that versions of models and experiments are the same for you and other users.

Structure of MODIPSL

MODIPSL has a fixed structure with several directories:

modipsl/
├── bin #(1)!
├── config #(2)!
├── doc
   └── NEMO_CeCILL.txt
├── lib #(3)!
├── modeles #(4)!
└── util
    ├── AA_make.gdef
    ├── ins_make
    ├── ins_m_prec
    ├── mod.def #(5)!
    ├── model #(6)!
    ├── README
    └── w_i_h
  1. This directory will contain binaries of compiled coupled models, such as icosa_lmdz_orch4_prod.exe or xios_server_prod.exe.
  2. This directory will be populated with model and experiment configurations.
  3. This directory will contain compiled libraries, like DYNAMICO's libicosa.a.
  4. This directory will consists of downloaded components (e.g. DYNAMICO, LMDZ, XIOS, ORCHIDEE).
  5. This file contains the definitions of coupled models. The file uses custom structure which is explained in the IGCM Tools Documentation. You can use ipsl-common Python library to load the mod.def file into the Python dictionary.
  6. The script for listing and downloading coupled models. Run ./model -h to list available models, and ./model <MODEL_NAME> to download the selected model.

Some directories are empty and will be later populated with directories and files. For example, after the compilation, bin/ and lib/ will contain produced binaries and libraries. Or, experiments will be placed in the config/ directory.

Downloading model

Downloading of models is performed by the util/model script. Type ./model -h to see a list of available model configurations:

...
Possible configurations are :
IOIPSL_PLUS
IPSLCM5A2.1
IPSLCM5A2.2
IPSLCM5A2_work
IPSLCM6.1.11-LR
IPSLCM6.1.12_LANDN-LR
...

Models compatible with LAM

The IPSL-CM-LAM works with the following models:

IPSLCM7.0
IPSLCM7.1
IPSLCM7.1.1
IPSLCM7.2
IPSLCM7_work

The IPSLCM7_work model is the development version. Use it with caution! Furthermore, any future model version IPSLCM7* should work with the LAM as well.

Finally, select the model to download onto your machine with the command: ./model IPSLCM7_work. Remember, that you might be prompted to provide passwords for several SVN repositories (check the SVN authentication information above).

Compiling model

To compile the downloaded model, run the compilation script config/IPSLCM7/compile_ipslcm7.sh from the config/IPSLCM7/ working directory. In fact, the path and the name of this script is the same for all IPSLCM7* models. Two arguments are worth considering:

  • -subconfig ICOLMDZOR limits the number of used components to only essential: dynamics (DYNAMICO), physics (LMDZ) and land surface model (ORCHIDEE).
  • -regular_latlon no makes sure the icosahedral grid of DYNAMICO is used.

Due to the resource-demanding compilation, request some computational resources beforehand if your machine allows doing so:

srun --pty \ #(1)!
     --ntasks=1 \ #(2)!
     --cpus-per-task=20 \ #(3)!
     --hint=nomultithread \
     --time 00:30:00 \ #(4)!
     --account=<YOUR_PROJECT>@cpu \ #(5)!
     --qos=qos_cpu-dev \ #(6)!
     bash #(7)!
./compile_ipslcm7.sh -arch X64_JEANZAY \ #(8)!
                     -subconfig ICOLMDZOR \ #(9)!
                     -regular_latlon no \ #(10)!
  1. Use pseudo-terminal. This is required for the interactive session.
  2. One computational node is enough as it has 40 cores (see Jean-Zay documentation).
  3. Going with more than 40 cores doesn't make sense as only the XIOS compilation script is launch with that many cores. Nevertheless, 20 cores is still a sensible choice.
  4. The session time in minutes - it might require adjustment.
  5. Correctly choose the name of your computational projet to use, e.g. wuu@cpu or brn@cpu.
  6. Use development queue - it shortens the waiting time for resources.
  7. Run interactive Bash session.
  8. Specification of the FCM architecture files is sometimes optional, as the compile_ipslcm7.sh is capable of figuring out the current machine.
  9. Subconfiguration is a limited collection of components. In the context of LAM, usually the classical ICOLMDZOR configuration is used with dynamics (DYNAMICO), physics (LMDZ) and land surface model (ORCHIDEE).
  10. Turning off the lat-lon grid will make sure our model uses icosahedral grid of DYNAMICO.
# TODO: test the exact srun command to use
ccc_mprun -s \ #(1)!
          -T 1800 \ #(2)!
          -x \ #(3)!
          -p rome \ #(4)!
          -Q test \ #(5)!
          -A <YOUR_PROJECT> #(6)!
./compile_ipslcm7.sh -arch X64_IRENE-AMD \ #(7)!
                   -subconfig ICOLMDZOR \ #(8)!
                   -regular_latlon no #(9)!
  1. Launch an interactive shell session.
  2. The session time in seconds - it might require adjustment.
  3. Request exclusive use of a computational node (might be optional).
  4. Select computing partition.
  5. Use testing queue - it shortens the waiting time for resources.
  6. Correctly choose your computational project/accout name.
  7. Specification of the FCM architecture files is sometimes optional, as the compile_ipslcm7.sh is capable of figuring out the current machine.
  8. Subconfiguration is a limited collection of components. In the context of LAM, usually the classical ICOLMDZOR configuration is used with dynamics (DYNAMICO), physics (LMDZ) and land surface model (ORCHIDEE).
  9. Turning off the lat-lon grid will make sure our model uses icosahedral grid of DYNAMICO.

At this point, the compilation should finish and the modipsl/bin and modipsl/lib directories should contain prepared binaries and libraries.