{{{ #!html

The LMDZ model

}}} ---- [[TOC(heading=Table of contents,depth=1,inline)]] [[PageOutline(1,Table of contents,pullout)]] ---- # LMDZ documentation # Information about the LMDZ model can be found on the website [http://lmdz.lmd.jussieu.fr lmdz.lmd.jussieu.fr] # 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, [wiki:DocImodelBlmdz#Creatinginitialstatesandinterpolatingboundaryconditions see below]. # 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). [[NoteBox(warn, The resolution of the variables in those files must be the same as the resolution of the chosen configuration.,600px)]] 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 [wiki:InfosOzone 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 ## 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 [wiki:/DocEsetup 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 [[NoteBox(warn, 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.,600px)]] __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. ## Using the coupled IPSL model outputs ## Follow the steps below to create the limit.nc files of a previous LMDZ simulation (coupled or forced). [[BR]] 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''' [[BR]] 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'''[[BR]] 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), \ }}} ## 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. [[BR]] 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. [[BR]] 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: [[BR]] [http://forge.ipsl.jussieu.fr/igcmg/browser/TOOLS/INTERP_NUDGE/create_sst_anomaly.ksh]. ## Files already created with the IPSL coupled model outputs ## [wiki:BoundaryFiles] ## 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 ---- # Parallelism and the ''Bands'' file # The parallel LMDZ model with the MPI library. You will find more information on the parallelism [http://lmdz.lmd.jussieu.fr/developpeurs/notes-techniques/ressources/parallelisme-LMDZ.pdf here]. ## 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. [[BR]] 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. ## 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). [[BR]] 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. [[NoteBox(warn,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., 600px)]] [[NoteBox(warn,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, 600px)]] ---- # 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 [http://forge.ipsl.jussieu.fr/igcmg/svn/CONFIG/UNIFORM/v5/LMDZOR_v5/EXPERIMENTS/LMDZOR/clim/COMP/lmdz.card 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) [[NoteBox(warn,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,600px)]] 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. [[BR]] {{{ 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. [[BR]] 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.[[BR]] 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.[[BR]] Set !ConfType=preind for constant preindustrial values or !ConfType=actuel for constant present-day values choose. [[BR]] 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 [wiki:DocBenvEcommonfiles#Repositoryforsharedfiles]. For a set-up example see [https://forge.ipsl.jussieu.fr/igcmg/browser/CONFIG/UNIFORM/v5/LMDZOR_v5/EXPERIMENTS/LMDZOR/amip/COMP/lmdz.card 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 [wiki:DocImodelBlmdz#Informationabouttheaerosolradiativeforcing 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. [[BR]][[BR]] 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) }}} [[BR]][[BR]] # 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. [[BR]] 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 [http://forge.ipsl.jussieu.fr/igcmg/wiki/InfosAerosol here] [[BR]] 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. [[BR]] 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). [[BR]] 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. [[BR]] These flags are defined in lmdz.card : * ok_ade * ok_aie * ok_cdnc * aerosol_couple * flag_aerosol [[BR]] The aerosol_couple flag must be set to "y" to take into account the interactive aerosols of the INCA model. In this case [wiki:DocHconfigClmdzorinca#TheaerosolcouplingandtheradiativeeffectinLMDZORINCA the radiation interface] is different. ## 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) # 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 [http://lmdz.lmd.jussieu.fr/utilisateurs/guides/lmdz-pas-a-pas/utilisation-comme-boite-noire/le-champ-dozone here] # Simulation with nudging : section under edition (J. Ghattas) # For details about nudging options and implementation in LMDZ, see a description in french at the [http://lmdz.lmd.jussieu.fr/documentation/notes-techniques LMDZ web-site], choose the second joint file called "Guidage de LMDZ". ## 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 [http://forge.ipsl.jussieu.fr/igcmg/browser/TOOLS/INTERP_NUDGE/interp_from_era.ksh interp_from_era.ksh]. You must first modify the beginning of this script. To interpolate LMDZ model output files use the script [http://forge.ipsl.jussieu.fr/igcmg/browser/TOOLS/INTERP_NUDGE/interp_from_TS.ksh interp_from_TS.ksh]. Both scripts depend on the script [http://forge.ipsl.jussieu.fr/igcmg/browser/TOOLS/INTERP_NUDGE/era2gcm.ksh 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[[BR]] 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. [[BR]] 3) Move interpolated files to archive directory.[[BR]] ## For running ## Follow 3 steps to activate nudging in LMDZ : [[BR]] 1) Set parameter ok_guide=y in lmdz.card. The lmdz.driver will then put ok_guide=y in the guide.def file.[[BR]] 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.[[BR]]