Version 38 (modified by jgipsl, 3 years ago) (diff)


The LMDZ model

1. LMDZ documentation

Information about the LMDZ model can be found on the website

2. Resolutions

The following resolutions are available: 56x55x19, 96x71x19, 96x95x19, 96x95x39, 144x142x19, 144x142x39, 144x142x79. However only the resolutions 96x95x39(also called LR : low resolution) and 144x142x39(MR : mid resolution) are equilibrated in coupled simulations and fully tested. If you want to add a new resolution you must create the GENERAL/PARAM/gcm.def_resol file. If the vertical resolution changes you must also add the corresponding physiq.def_ file.

If you use LMDZ in forced mode with or without ORCHIDEE, you must create boundary condition files for the chosen resolution once before starting the simulation, see below.

3. Restart files and boundary conditions

The LMDZ model uses two restart files, one for the dynamical part of the model ( and one for the physical part of the model ( Those two files describe the atmospheric state at a given time. If the LMDZ model is run in forced mode, a file containing the boundary conditions is also used ( which contains the surface temperature SST, the ice cover and the roughness).

The resolution of the variables in those files must be the same as the resolution of the chosen configuration.

A second boundary condition file might be needed depending on the options for the ozone field ( This file only depends on the latitude grid of LMDZ. It does not depend on the longitude or vertical grids of LMDZ.

You can find a documentation on climoz file use for IPCC here at the igcmg wiki

The restart files can be:

  • obtained from a previous simulation (with the proper resolution)
  • obtained from the ce0l executable with a CREATE_xxx job, see below

3.1. Creating initial states and interpolating boundary conditions

Once you have chosen and installed your configuration, you will find the config.card and lmdz.card files in the modipsl/config/.../EXPERIMENTS/LMDZ/CREATE_xxx directories. These files allow you to prepare jobs that create restarts and boundary conditions from initial files located on shared accounts. The jobs follow the classical procedure explained in Chapter 3: Simulation setup. The files found in the directories are:

creates boundary conditions with climatological SSTs
creates interannual AMIP boundary conditions

You must properly define the same calendar leap/noleap/360d in config.card of the job that creates initial states and in config.card of the job that starts your experiment. Don't forget to adapt the parameter DateEnd of your simulation to this calendar if needed.

Note : If you want to use datasets other than AMIP you must change the lmdz.card file in the experiment CREATE_xxxx chosen.

3.2. Create from the data of a previous coupled simulation

Follow the steps below to create the files from the data of a previous coupled simulation with the IPSL model.

Note: the ce0l program from LMDZ4_AR5 cannot be used. Instead, use the LMDZ5/trunk 1508, or later, revision 1508. Once the files are created, LMDZ4_AR5 or LMDZ5 can be used.

3.2.1. Which sst and sic files ? Use SST of a coupled simulation without correction of anomalies

Identify the time series for the simulation you want to use. Use the tsol_oce variables for the surface temperature (SST) and pourc_sic for the sea ice concentration (SIC). The variables must be monthly outputs of the LMDz model. For example, the files for the IPSLCM5A rcp4.5 simulation are located at the TGCC :


You can choose to work with annually-varying outputs or with a climatology. Annually-varying files (for this case you will use the experiment CREATE_amip)

Divide the mensual time series into annual files. Use cdo to divide them into annual files with 12 timesteps in each file:

cdo splityear  $WORKDIR/my_new_dir/v3.rcp45.1_tsol_oce_
cdo splityear $WORKDIR/my_new_dir/v3.rcp45.1_pourc_sic_ Climatological files (for this case you will use the experiment CREATE_clim)

You can use cdo to make an average for each month over the years (with mensual time series).

  • Extract the period you want from the timeseries :
    cdo seltimestep,my_first_timestep/my_last_timestep my_directory/ATM/Analyse/TS_MO/
  • Create the corresponding climatology
    cdo ymonmean
  • Rename variables and dimensions
    ncrename -v lon,longitude -d lon,longitude -v lat,latitude -d lat,latitude -v time_counter,time -d time_counter,time
    Same for sea-ice

Or if you want to use all the TS period :

cdo ymonmean  $WORKDIR/my_new_dir/
cdo ymonmean $WORKDIR/my_new_dir/

Note that in this simple example, you may get some inconsistencies between the SST and sea ice fields. Be cautious! Use SST of a coupled simulation with correction of anomalies

SST can be corrected with the difference between an AMIP reference SST and a reference SST from a coupled simulation. These two references must be on a same period.

For example, you can use the SST from a historical simulation and the AMIP SST for the period 1979-2005. You can compute the difference and apply it to any period of the future RCP 4.5 simulation.

In order to do so, you can use the create_sst_anomaly.ksh script (or use it as an example) instead of Step 1 above. Afterwards continue with Step 2 from above.

The script is here: Files already created with the IPSL coupled model outputs

Some coupled simulations have already been used as boundary conditions for simulations in forced mode. Read more on the igcmg wiki about these files and where to find them:

3.2.2. Land-sea mask /

You can use restart files from a IPSLCM5/6 coupled simulation to start a simulation with the forced LMDZ model. The land-sea mask must be identical in the and in the restart files. The land-sea mask of the coupled model is stored in the file. This file must exist when the files are created in order to use the restarts of a coupled simulation. To this end, the complete path for the file with the proper resolution must be provided in CREATE_xxx/COMP/lmdz.card (in the list "ListNonDel" and in the section "[BoundaryFiles]"). You need to add the appropriate line at the ListNonDel section in lmdz.card

### Optional: Add the file to fit with the coupled configuration for the 
### land-sea mask. This file is different for different versions of the coupled model and
### the different resolutions. Choose between following to fit with IPSLCM6 coupled model:
#       (${R_IN}/ATM/IPSLCM6/eORCA1.1xLMD144142/,
#	(${R_IN}/ATM/IPSLCM6/ORCA2.3xLMD96x95_v1/,

for example

ListNonDel= (${R_IN}/ATM/, .), \
	(${R_IN}/ATM/,, \
	(${R_IN}/ATM/, .), \
	(${R_IN}/ATM/, .), \
	(${R_IN}/ATM/, .), \
	(${R_IN}/ATM/, .),\

3.2.3. the CREATE Experiment

The annual files can now be used directly with the ce0l program (revision 1508 or later) LMDZ5/trunk. The files must be renamed and in the execution directory. The AMIP files must not be in the execution directory because they will be used first.

Use EXPERIMENT/LMDZ/CREATE_amip (or CREATE_clim, following the case you choose before). Change it to use those new files instead of the AMIP files:

cd modipsl/config/XXXX     # XXXX can be all v5 or v6 configurations containing LMDZ
cp EXPERIMENT/LMDZ/CREATE_amip/config.card .
vi config.card                # Modify JobName, simulation period
cd MyJobName

vi COMP/lmdz.card    
# Modify
List=   (${R_IN}/ATM/AMIP/amipbc_sst_360x180_${year}.nc,, \
        (${R_IN}/ATM/AMIP/amipbc_sic_360x180_${year}.nc,, \
# into
List=   (/the/whole/path/to/the/yearly/files_tsol_oce_${year}.nc,, \
        (/the/whole/path/to/the/yearly/files_pourc_sic_${year}.nc,, \

4. Parallelism and the Bands file

The LMDZ model in parallel mode uses the MPI library. You will find more information on the parallelism here.

4.1. Maximum number of processes

The maximum number of processes you can use in MPI mode depends on the model resolution. The maximum number of processes is the number of latitudes divided by 3.

If the amount of processes you chose is too large, your simulation will stop with the following message:

Arrêt : le nombre de bande de latitude par process est trop faible (<2).
  ---> diminuez le nombre de CPU ou augmentez la taille en latitude

(Stop : the number of latitude bands per process is too low (<2).
 ---> decrease the CPU number or increase the latitude size)

The number of processes for the job is set in the beginning of the main job.

4.2. Adjustment

If the number of points per MPI job is uniformly distributed in LMDZ, the load equilibrium is not optimum. The adjust option in LMDZ allows you to ask the model to "adjust" its points distribution. To this end, you must compute the time spent in each part of the model and define the optimum distribution during the run. This new distribution is stored in the Bands_resol_nbProc.dat file (it depends on the configuration, on the machine, on the resolution and on the proc number).

You must perform a pre-simulation in order to create this file (~ 3-month simulation) with the configuration that will be used later. Then you must use this file for the "main" simulation. The file will be stored in the PARAM directory, in the submission directory located on the computing machine.

For all previous configurations : the Bands file is stored in the ${R_OUT}/nom_config/ATM/Debug/ directory on the storage server.

By default, the simulation adjusts the Bands file during the 3 first months of the simulation and then uses the one of the last month. If you use the Bands file of another simulation you must specify adjust=0 in lmdz.card and use the variable LMDZ_Bands_file_name to specify the path of the chosen file.

It is not (yet) possible to run with adjust=y in 'full' hybrid MPI/OpenMP mode. Therefore you will need to make a pre-run (using either a MPI only compiled executable or a hybrid executable but executed with only one OpenMP task) to create the Bands file and then run your 'full' hybrid simulation using this Bands file.

To make sure to obtain the same results between two simulations, you must cancel the adjustment and the creation of Bands files. You must use the same Bands file for the two simulations.

With INCA you cannot run with adjust=y (the simulation will be wrong) so you need to make a pre-run to create the Bands file and then run your simulation by linking this file

5. lmdz.card

The different parameters you can change in the section [UserChoices] of the lmdz.card file are described below. The examples used here are taken from the version of this file located in the LMDZOR_v5 clim configuration:

Section [UserChoices]
  • LMDZ_Physics

This parameter allows you to choose the version of the physics (old or new) used by LMDZ. The available values are:

  • AP, old physics
  • NPv3.1, "new" physics, version v3.1 (available for the model versions on the development branch starting from the version 1554 or on the testing branches and LMDZ5_AR5)

New physics doesn't work with and from create_etat0_limit -- you need to take them from another simulation with new or old physics

The model will use the parameters included in the PARAM/physiq.def_$LMDZ_Physics file when running.


This parameter defines the name and therefore the location of the simulation that has created the initial states and the boundary conditions.

  • !ByPass_hgardfou

This parameter allows you to divide by two dissipation times used by LMDZ on the next simulation period (1 month in general) in order to try to overcome a model crash.


This parameter allows you to choose the matsuno temporal scheme (rather than leapfrog) on the next simulation period in order to try to overcome a model crash.

  • Adjust

LMDZ_NbPeriod_adjust determines the number of simulation periods (3 in general) during which LMDZ allocates as best as possible the parallel domains on the number of chosen processors in order to have proper load equilibrium. During those periods adjust=y will be stored in run.def and later it will be adjust=n.

The LMDZ_Bands_file_name parameter is optional. It can indicate an equilibrium file (bands file) already created with its entire path on the storage server. For this option to be taken into account you must also specify LMDZ_NbPeriod_adjust=0.

To start without an equilibrium file and with adjust=n, you can set LMDZ_NbPeriod_adjust=0 without specifying LMDZ_Bands_file_name.

  • !ConfType

This parameter allows you to choose the configuration to use for the aerosols, the solar constant, and the greenhouse gases. The file PARAM/config.def_$ConfType will be used when running.

Set ConfType=preind for constant preindustrial values or ConfType=actuel for constant present-day values choose.

For annual values choose ConfType=annuel and add the following input text files containing the yearly values : SOLARANDVOLCANOES.txt, CO2.txt, CH4.txt, N2O.txt, CFC11.txt, CFC12.txt. The file config.def_annual contains only the key word AUTO for the solar constant and the greenhouse gases. lmdz.driver will substitute AUTO with the values from these files. The syntax of these files are always the same. See here an example :

> cat CO2_1765_2005.txt

The values might change due to the simulation protocol. Stored at the IPSL shared repository are files corresponding to the CMIP5 protocol. Find them here :


where IGCM_directory can be found here DocBenvEcommonfiles.

For a set-up example see lmdz.card in experiment LMDZOR/amip.

  • Aerosols and ozone options

These flags are described in the following section.

  • !OutLevel

This parameter allows you to choose the output volume to be created. The file PARAM/output.def_$OutLevel will be used when running.

  • COSP options

Parameters activating the COSP simulator outputs for monthly, daily and/or high frequencies.

  • NMC options

Parameters activating the NMC monthly, daily and/or high frequency outputs (outputs on standard pressure levels).

  • ok_guide

allows you to activate the LMDZ nudging(fr guidage) by wind, temperature and humidity fields. Be careful the fields used for nudging must be specified in the section BoundaryFiles. The nudging files must be on the same horizontal grid as the model. Use the variables year and month for copying these files. The parameters contained in file PARAM/guide.def control the nudging used during the simulation and you can adapt that file as needed.

For example, set in lmdz.card :


6. Information about the aerosol radiative forcing

The management of the aerosol effects relies on the aerosol_couple, flag_aerosol, aer_type, ok_cdnc, ok_ade and ok_aie flags.
When LMDz runs without the INCA module, the aerosol_couple flag must be set to .false. The flag flag_aerosol then controls the way aerosols are taken into account based on monthly climatologies. You will find more information about the climatologies used for AR5 here
flag_aerosol can be set to the following values:

  • 0 no aerosols
  • 1 sulphate only
  • 2 black carbon only (BC)
  • 3 organic matter only (POM)
  • 4 marine salt only
  • 5 dust only
  • 6 all aerosols

When flag_aerosol > 0 you must provide aerosol files to the model. In all cases, the file is needed. Another flag aer_type determines which aerosols are taken into account. If aer_type is set to "preind", preindustrial aerosols are used and only the file must be provided to the model. If the flag is set to "actuel" present-day aerosols are used with the file. If the flag is set to "scenario" the aerosols follow a scenario with files such as with a 10-year resolution. Finally, if the flag is set to "annuel" the aerosols are taken for a specific year and the input file is where XXX is the year in the run.
If flag_aerosol > 0 both flags ok_ade and ok_aie (set to y or n) control the activation of direct and indirect (respectively) aerosol effects. In case an effect is deactivated, natural aerosols are used for this effect. The flags ok_ade and ok_aie are independent from each other. However flag_aerosol must be > 0 as soon as one of the two flags ok_ade and ok_aie is activated. This also activates the radiative forcing diagnostics (topswad and topswai variables). In case, ok_aie is activated you must choose the explicit computation of the cloud droplet number concentration (CDNC) with the flag ok_cdnc=y. In the opposite case, you can choose ok_cdnc=y (CDNC is computed explicitly from an empirical relationship which depends on aerosols) or ok_cdnc=n (an effective radius is then directly prescribed).
bl95_b0=1.7 and bl95_b1=0.2 are the parameters of the relationship between aerosol mass and CDNC according to the Boucher and Lohmann (1995) parametrization.

These flags are defined in lmdz.card :

  • ok_ade
  • ok_aie
  • ok_cdnc
  • aerosol_couple
  • flag_aerosol

The aerosol_couple flag must be set to "y" to take into account the interactive aerosols of the INCA model. In this case the radiation interface is different.

6.1. Which aerosols are used?

You must distinguish between

  • 9 aerosol families:
    ZERO; AER total; NAT; BC; SO4; POM; DUST; SS; NO3

Note : the NO3 is not yet taken into account in the model

  • 8 species in each family :

(see the aero_mod.F90 module in LMDZ/libf/phylmd)

7. Information about the ozone field for the radiative transfer

The ozone field is driven by the read_climoz parameter in lmdz.card. You will find all the information here

8. Simulation with nudging

For details about nudging options and implementation in LMDZ, see a description in french at the LMDZ web-site, choose "Guidage de LMDZ". The ERA-interim files are available at TGCC/curie and IDRIS. You must be in the group subipsl to have the permission to access these files. Contact Sophie Bouffies-Cloche (IPSL) for IDRIS or Anne Cozic (LSCE) for TGCC to be added to subipsl. Before using the ERA-interim files with LMDZ they must be interpolated to the model grid. For the standard resolution 96x95x39 the files are already interpolated and available at the shared account. For all other resolutions ask to Anne Cozic to know if files already exist, or see section below how to interpolate the files.

For resolution 96x95x39 and 96x95x19, the files are available here:

/workgpfs/rech/psl/rpsl035/IGCM/BC/ATM/LMDZ/LMD9695/NUDGE_FILES     at ada 
/ccc/work/cont003/dsm/p86ipsl/IGCM/BC/ATM/LMDZ/LMD9695/NUDGE_FILES  at curie

If you are nudging your simulation with ERAI data, it is consistent to use boundaries files ( created with ERAI data. These files are stored here (for 96x95x39):

/workgpfs/rech/psl/rpsl035/IGCM/BC/ATM/LMDZ/LMD9695/LIMIT     at ada 
/ccc/work/cont003/dsm/p86ipsl/IGCM/BC/ATM/LMDZ/LMD9695/LIMIT  at curie

8.1. Interpolation of nudge files

The files that will be used for the nudging (fr guidage) must be interpolated to the model grid before running the gcm. Scripts to do this are stored in directory To interpolate ERA-Interim use the script interp_from_era.ksh. You must first modify the beginning of this script. To interpolate LMDZ model output files use the script interp_from_TS.ksh. Both scripts depend on the script era2gcm.ksh. These script access the archive directory with a use in ferret. These scripts are tested at curie. Follow step 1 to 3 :

1) Create file
The file is created by default during the CREATE experience if you use revision 1508 of LMDZ5/trunk or later and revision 1333 or later of the configuration LMDZOR_v4. The file contains the different grids used as target for the interpolation. The file is created with ce0l if the parameter grille_gcm_netcdf=T(default in CREATE). After a normal CREATE experience the file can be found in the archive directory IGCM_OUT/LMDZOR/ELXXXX/ATM/Output/Boundary/. If the grid contains a zoom it is important that the file is created at the same time as the other boundary conditions and initial state files, using the same .def parameter files describing the grid.

2) Extract the INTERP_NUDGE directory from svn repository:


Modify and run the script interp_from_era.ksh from a machine that access the ERA files by use in ferret. Script tested at curie.

3) Move interpolated files to archive directory.

8.2. For running

Follow 3 steps to activate nudging in LMDZ :

1) Set parameter ok_guide=y in lmdz.card. The lmdz.driver will then put ok_guide=y in the guide.def file.

2) Add files containing the nudging variables in lmdz.card (_Climat or _AMIP) in section BoundaryFiles. These files have to be interpolated previously to the model horizontal grid.

3) Most probably you will have to modify parameter file guide.def containing specifications for the nudging according to your experiment.