wiki:Doc/Models/LMDZ

Version 8 (modified by jgipsl, 6 years ago) (diff)

--

The LMDZ model



1. LMDZ documentation

Information about the LMDZ model can be found on the website lmdz.lmd.jussieu.fr

2. Resolutions

The following resolutions are available: 56x55x19, 96x71x19, 96x95x19, 96x95x39, 144x142x19, 144x142x39. 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 once create boundary condition files for the chosen resolution, see below.

3. Restart files and boundary conditions

The LMDZ model uses two restart files, one for the dynamical part of the model (start.nc) and one for the physical part of the model (startphy.nc). Those two files describe the atmospheric state at a given time. If the LMDZ model is ran in forced mode, a file containing the boundary conditions is also used (limit.nc 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 (climoz_LMDZ.nc). 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

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 chose 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 here. The files found in the directories are:

CREATE_clim
allow to create boundary conditions with climatological SSTs
CREATE_amip
allow to create interannual AMIP boundary conditions

You must properly define the same calender leap/noleap/360d in config.card of the job that creates initial states and in config.card of the job that starts your experiment.

Note : If you want to use datasets other than AMIP you must change the lmdz.card file in the experiment CREATE_xxxx choisi and maybe also in the LMDZ model.

3.2. Using the coupled IPSL model outputs

Follow the steps below to create the limit.nc files of a previous LMDZ simulation (coupled or forced).

Note: ce0l of LMDZ4_AR5 can not be used. Use instead LMDZ5/trunk revision 1508 or a later revision. Once the limit.nc files created, LMDZ4_AR5 or LMDZ5 can be used.

Step 1
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 LMDZ. Cut the time series into annual files. For example, the files for the IPSLCM5A rcp4.5 simulation are located at CCRT :

/dmnfs/cont003/p86denv/IGCM_OUT/IPSLCM5A/PROD/rcp45/v3.rcp45.1/ATM/Analyse/TS_MO/v3.rcp45.1_20060101_21251231_1M_tsol_oce.nc
/dmnfs/cont003/p86denv/IGCM_OUT/IPSLCM5A/PROD/rcp45/v3.rcp45.1/ATM/Analyse/TS_MO/v3.rcp45.1_20060101_21251231_1M_pourc_sic.nc

Use cdo to cut them into annual files with 12 timesteps in each file:

cdo splityear all_path_to_file_TS_MO_tsol_oce.nc  $WORKDIR/my_new_dir/v3.rcp45.1_tsol_oce_
cdo splityear all_path_to_file_TS_MO_pourc_sic.nc $WORKDIR/my_new_dir/v3.rcp45.1_pourc_sic_

Step 2
The annual files can now be used directly with the ce0l script (revision 1508) LMDZ5/trunk or more recent. The files must be renamed histmth_sst.nc and histmth_sic.nc 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. Change it to use those new files instead of the AMIP files:

cd modipsl/config/XXXX_v5     # XXXX_v5 maybe all config _v5 containing LMDZ
cp EXPERIMENT/LMDZ/CREATE_amip/config.card .
vi config.card                # Modify JobName, simulation period
../../util/ins_job
cd MyJobName

vi COMP/lmdz.card    
# Modify
[BoundaryFiles]
List=   (${R_INIT}/ATM/${config_UserChoices_TagName}/AMIP/amipbc_sst_360x180_${year}.nc, amipbc_sst_1x1.nc), \
        (${R_INIT}/ATM/${config_UserChoices_TagName}/AMIP/amipbc_sic_360x180_${year}.nc, amipbc_sic_1x1.nc), \
# into
[BoundaryFiles]
List=   (/the/whole/path/to/the/yearly/files_tosl_oce_${year}.nc,  histmth_sst.nc), \
        (/the/whole/path/to/the/yearly/files_pourc_sic_${year}.nc, histmth_sic.nc), \

3.3. Creating limit.nc with the coupled IPSL model outputs anomalies

The SST of a coupled simulation can be used as described above or it 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_anomly.ksh script (or use it as an example) instead of the Step 1 above. Afterwards continue with Step 2 above.

The script is here:
http://forge.ipsl.jussieu.fr/igcmg/browser/TOOLS/INTERP_NUDGE/create_sst_anomaly.ksh.

3.4. Files already created with the IPSL coupled model outputs

BoundaryFiles?

3.5. Using restart files of a IPSLCM5 coupled simulation to start a forced simulation

You can use restart files from a IPSLCM5 coupled simulation to start a simulation with the forced LMDZ model. The land-sea mask must be identical in the limit.nc and in the restart files. The land-sea mask of the coupled model is stored in the o2a.nc file.This file must exist when the limit.nc files are created in order to use the restarts of a coupled simulation. To this end, the complete path for the o2a.nc file with the proper resolution must be provided in CREATE_xxx/COMP/lmdz.card (in the list "ListNonDel" and in the section "[BoundaryFiles]"). For example ${R_INIT}/ATM/IPSLCM5/ORCA2xLMD9695/o2a.nc


4. Parallelism and the Bands file

The parallel LMDZ model with 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.

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

With INCA you can't 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
    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 start.nc and startphy.nc 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.

  • CREATE
    CREATE=
    

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

  • !ByPass_hgardfou
    ByPass_hgardfou_teta=(y/n)
    

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

ByPass_hgardfou_mats=(y/n)

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

  • Adjust
    LMDZ_NbPeriod_adjust=0/1/.../3
    LMDZ_Bands_file_name=
    

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 a 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
    ConfType=(preind/actuel/annuel)
    

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 the files. The syntax of these files are always the same. See here an example :

> cat CO2_1765_2005.txt
Annee_1765=0.27805158E+03
Annee_1766=0.27810615E+03
Annee_1767=0.27822039E+03
Annee_1768=0.27834305E+03
...

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 :

IGCM_directory/BC/ATM/LMDZ/IPCC_AR5

where IGCM_directory can be found here DocBenvEcommonfiles.

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

  • Aerosols and ozone options
    ok_ade=(y/n)
    ok_aie=(y/n)
    ok_cdnc=(y/n) 
    flag_aerosol=([0-6])
    aerosol_couple=(y/n)
    

These flags are described in the following section.

  • !OutLevel
    OutLevel=(low/medium/high)
    

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
    LMDZ_COSP_OK=(y/n)
    LMDZ_COSP_monthly=(y/n)
    LMDZ_COSP_daily=(y/n)
    LMDZ_COSP_hf=(y/n)
    

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

  • NMC options
    LMDZ_NMC_monthly=(y/n)
    LMDZ_NMC_daily=(y/n)
    LMDZ_NMC_hf=(y/n)
    

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

  • ok_guide
    ok_guide=(y/n)
    

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 at the same horizontal grid as the model. Use the variables year and month for coping these files. The parameter file PARAM/guide.def will be used and you can adapt it as you need.

For example, set in lmdz.card :

ok_guide=y
[BoundaryFiles]
List=(/thepathtoyournudgingfile_u${year}-${month}.nc, u.nc),\
     (/thepathtoyournudgingfile_v${year}-${month}.nc, v.nc)



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 any case, the file aerosols.nat.nc 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 aerosols.nat.nc must be provided to the model. If the flag is set to "actuel" present-day aerosols are used with the aerosols1980.nc file. If the flag is set to "scenario" the aerosols follow a scenario with files such as aerosolsXXXX.nc 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 aerosolsXXXX.nc where XXX is the year in the run.
In case 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 independant 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 :
    ASBCM, ASPOMM, SO4, CSSO4M, SSSSM, CSSSM, ASSSM, CIDUSTM, AIBCM, AIPOMM
    

(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 the second joint file called "Guidage de LMDZ". The ERA-interm 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, 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

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 http://forge.ipsl.jussieu.fr/igcmg/browser/TOOLS/INTERP_NUDGE. 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 grilles_gcm.nc
The file grilles_gcm.nc 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 grilles_gcm.nc 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 grilles_gcm.nc 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:

svn co http://forge.ipsl.jussieu.fr/igcmg/svn/TOOLS/INTERP_NUDGE INTERP_NUDGE

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 have to modify parameter file guide.def containing specifications for the nudging according to your experience.