<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emillour</id>
		<title>LMDZPedia - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emillour"/>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php/Sp%C3%A9cial:Contributions/Emillour"/>
		<updated>2026-05-28T18:37:53Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=LMDZ_zoom_collection&amp;diff=542</id>
		<title>LMDZ zoom collection</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=LMDZ_zoom_collection&amp;diff=542"/>
				<updated>2026-05-22T15:14:27Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Some illustrative examples of zoom grids and related parameters, from various users ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The collaborative Google spreadsheet summarizing some zoomed simulation setups: [https://docs.google.com/spreadsheets/d/1bjRQps-2b06oQIO6H73m9-6VE7rXrH6OYAXPzQ4JCvo/edit#gid=0 &amp;quot;LMDZ_Zoom_collection&amp;quot;]&lt;br /&gt;
... Link unfortunately dead ...&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Zoom region&lt;br /&gt;
! Grid / Physics&lt;br /&gt;
! Resolution in Zoom&lt;br /&gt;
! Nudging&lt;br /&gt;
! day_step&lt;br /&gt;
! iphysiq&lt;br /&gt;
! tetagdiv / tetagrot / tetatemp&lt;br /&gt;
! clon / clat&lt;br /&gt;
! grossismx / grossismy&lt;br /&gt;
! dzoomx / dzoomy&lt;br /&gt;
! taux /tauy&lt;br /&gt;
|-&lt;br /&gt;
| Europe&lt;br /&gt;
| 128x118(x39?) / NPV3.2&lt;br /&gt;
| x&lt;br /&gt;
| yes&lt;br /&gt;
| 2880&lt;br /&gt;
| 15&lt;br /&gt;
| 1200 / 1200 / 1200&lt;br /&gt;
| 8.5E / 50N&lt;br /&gt;
| 4.48751 / 3.40784&lt;br /&gt;
| 0.208914 / 0.243706&lt;br /&gt;
| 10 / 10&lt;br /&gt;
|-&lt;br /&gt;
| Europe&lt;br /&gt;
| 128x128x79 / NPv6.0,15T&lt;br /&gt;
| x&lt;br /&gt;
| yes&lt;br /&gt;
| 2160&lt;br /&gt;
| 15&lt;br /&gt;
| 900 / 900 / 900&lt;br /&gt;
| 22E / 48N&lt;br /&gt;
| 2.5766 / 2.856&lt;br /&gt;
| 0.267585 / 0.169102&lt;br /&gt;
| 6 / 4&lt;br /&gt;
|-&lt;br /&gt;
| France&lt;br /&gt;
| 96x95x79 / NPv6_0_15&lt;br /&gt;
| x&lt;br /&gt;
| yes&lt;br /&gt;
| 2160&lt;br /&gt;
| 15&lt;br /&gt;
| 900 / 900 / 1800&lt;br /&gt;
| 22.208E / 48.713E&lt;br /&gt;
| 5.5278 / 4.23288&lt;br /&gt;
| 0.0603014 / 0.0793744&lt;br /&gt;
| 3 / 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- template of a table :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! header 1&lt;br /&gt;
! header 2&lt;br /&gt;
! header 3&lt;br /&gt;
! header 4&lt;br /&gt;
! header 5&lt;br /&gt;
! header 6&lt;br /&gt;
! header 7&lt;br /&gt;
! header 8&lt;br /&gt;
! header 9&lt;br /&gt;
! header 10&lt;br /&gt;
! header 11&lt;br /&gt;
|-&lt;br /&gt;
| row 1, cell 1&lt;br /&gt;
| row 1, cell 2&lt;br /&gt;
| row 1, cell 3&lt;br /&gt;
| row 1, cell 4&lt;br /&gt;
| row 1, cell 5&lt;br /&gt;
| row 1, cell 6&lt;br /&gt;
| row 1, cell 7&lt;br /&gt;
| row 1, cell 8&lt;br /&gt;
| row 1, cell 9&lt;br /&gt;
| row 1, cell 10&lt;br /&gt;
| row 1, cell 11&lt;br /&gt;
|-&lt;br /&gt;
| row 2, cell 1&lt;br /&gt;
| row 2, cell 2&lt;br /&gt;
| row 2, cell 3&lt;br /&gt;
| row 2, cell 4&lt;br /&gt;
| row 2, cell 5&lt;br /&gt;
| row 2, cell 6&lt;br /&gt;
| row 2, cell 7&lt;br /&gt;
| row 2, cell 8&lt;br /&gt;
| row 2, cell 9&lt;br /&gt;
| row 2, cell 10&lt;br /&gt;
| row 2, cell 11&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Zoom]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Install_lmdz.sh_cmake_error_%22Could_NOT_find_PkgConfig_(missing:_PKG_CONFIG_EXECUTABLE)%22&amp;diff=519</id>
		<title>Install lmdz.sh cmake error &quot;Could NOT find PkgConfig (missing: PKG CONFIG EXECUTABLE)&quot;</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Install_lmdz.sh_cmake_error_%22Could_NOT_find_PkgConfig_(missing:_PKG_CONFIG_EXECUTABLE)%22&amp;diff=519"/>
				<updated>2026-01-07T11:12:42Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « On some Linux Systems, when running the install_lmdz.sh script one can get a Cmake error message of the likes of: &amp;lt;pre&amp;gt; CMake Error... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On some Linux Systems, when running the [[WhatIs:_The_install_lmdz.sh_script|install_lmdz.sh]] script one can get a Cmake error message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CMake Error at /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):&lt;br /&gt;
Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)&lt;br /&gt;
Call Stack (most recent call first):&lt;br /&gt;
/usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)&lt;br /&gt;
/usr/share/cmake-3.28/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)&lt;br /&gt;
cmake/FindNetCDF_Fortran.cmake:4 (find_package)&lt;br /&gt;
CMakeLists.txt:25 (find_package)&lt;br /&gt;
&lt;br /&gt;
-- Configuring incomplete, errors occurred!&lt;br /&gt;
EXIT (error)&lt;br /&gt;
install_lmdz.sh failed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is because the '''pkg-config''' binary tool is not available. Installing it (e.g. &amp;lt;code&amp;gt;sudo apt install pkg-config&amp;lt;/code&amp;gt; on Ubuntu) should fix the problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ErrorMessages]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Howto:_Run_with_the_ORCHIDEE_continental_surface_model&amp;diff=438</id>
		<title>Howto: Run with the ORCHIDEE continental surface model</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Howto:_Run_with_the_ORCHIDEE_continental_surface_model&amp;diff=438"/>
				<updated>2024-01-03T16:23:13Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « == The ORCHIDEE continental surface model == This model is separate from LMDZ in the sense that it can be run on its own and that its source code is not included in the LM... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The ORCHIDEE continental surface model ==&lt;br /&gt;
This model is separate from LMDZ in the sense that it can be run on its own and that its source code is not included in the LMDZ repository.&lt;br /&gt;
&lt;br /&gt;
You can check out the official ORCHIDEE website here : https://orchidee.ipsl.fr/&lt;br /&gt;
&lt;br /&gt;
=== Coupling with LMDZ ===&lt;br /&gt;
Coupling between LMDZ and ORCHIDEE is however implemented and merely requires that:&lt;br /&gt;
# The ORCHIDEE source code is available alongside the LMDZ directory (not mandatory but must match what is given in the arch.path file, see [[WhatIs: The target architecture (&amp;quot;arch&amp;quot;) files]])&lt;br /&gt;
# The GCM must be compiled with the adequate &amp;quot;-v&amp;quot; option (see [[WhatIs: The makelmdz fcm script]]), i.e. &amp;quot;-v orchideetrunk&amp;quot; or &amp;quot;-v orchidee2.1&amp;quot; or &amp;quot;-v orchidee2.0&amp;quot; or &amp;quot;-v orchidee1.9&amp;quot;; use &amp;quot;makelmdz_fcm -h&amp;quot; to learn more about these)&lt;br /&gt;
# the &amp;quot;VEGET&amp;quot; parameter in config.def should be set to &amp;quot;y&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
VEGET=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that if &amp;quot;VEGET&amp;quot; is set to &amp;quot;n&amp;quot; then a simple bucket scheme will be used.&lt;br /&gt;
&lt;br /&gt;
=== ORCHIDEE parameters ===&lt;br /&gt;
There are many! All usually grouped in a &amp;quot;orchidee.def&amp;quot; file&lt;br /&gt;
&lt;br /&gt;
=== ORCHIDEE input and output files ===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
03/01/2024&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_XIOS_library&amp;diff=424</id>
		<title>Some pointers about standalone installation of the XIOS library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_XIOS_library&amp;diff=424"/>
				<updated>2023-11-21T10:43:57Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing the XIOS library, as this step is automated in the install_lmdz.sh script (if run with the ''-xios'' option). Note also that the download and installation by install_lmdz.sh is done via the use of a dedicated &amp;quot;install_xios.bash&amp;quot; script available here: https://web.lmd.jussieu.fr/~lmdz/pub/script_install/install_xios.bash , which could also be used in a standalone installation (run ''install_xios.bash -h'' and/or inspect the script).&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
There are a couple of prerequisites to installing and using the XIOS library:&lt;br /&gt;
# An MPI library must be available&lt;br /&gt;
# A NetCDF4-HDF5 library, preferably compiled with MPI enabled, must be available&lt;br /&gt;
The rest of this page assume all prerequisites are met. People interested in building an appropriate NetCDF library on their Linux machine might be interested in the following installation script: https://web.lmd.jussieu.fr/~lmdz/pub/script_install/install_netcdf4_hdf5.bash (which might need some adaptations to work in your specific case).&lt;br /&gt;
&lt;br /&gt;
== Downloading and compiling the XIOS library ==&lt;br /&gt;
The XIOS source code is available for download using svn (subversion), e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* To compile the library, one must first have adequate architecture &amp;quot;arch&amp;quot; files at hand, just like for the GCM (see the [[WhatIs:_The_target_architecture_(&amp;quot;arch&amp;quot;)_files|page about these)]]). In principle both ''arch.env'' and ''arch.path'' files could be the same as for the GCM; ''arch.fcm'' will of course differ, as XIOS source code is in C++ (along with a Fortran interface). If using a &amp;quot;known&amp;quot; machine (e.g. Occigen, Irene-Rome, Ciclad) then ready-to-use up-to-date arch files for that machine should be present in the ''arch'' directory. If not you will have to create your own (it is advised to use the existing ones as templates!)&lt;br /&gt;
* Assuming ''some_machine'' arch files (i.e. files ''arch-some_machine.env'', ''arch-some_machine.path'', ''arch-some_machine.fcm'') are present in the '''arch''' subdirectory, compiling the XIOS is done using the dedicated ''make_xios'' script, e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./make_xios --prod --arch some_machine --job 8 &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If the compilation steps went well then the '''lib''' directory should contain file ''libxios.a'' and the '''bin''' directory should contain&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fcm_env.ksh  generic_testcase.exe  xios_server.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling LMDZ6 with the XIOS library ==&lt;br /&gt;
To compile with XIOS enabled, one must specify the option&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 -io xios&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
to the [[WhatIs: The makelmdz fcm script|makelmdz_fcm]] script.&lt;br /&gt;
&lt;br /&gt;
05/08/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:Xios]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=423</id>
		<title>Some pointers about standalone installation of LMDZ</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=423"/>
				<updated>2023-11-21T10:39:06Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing LMDZ6&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
In the most minimal case, where one would only run the serial version of the GCM, then the prerequisites are:&lt;br /&gt;
# Have a Fortran compiler at hand &lt;br /&gt;
# Have a NetCDF library (compiled with the same compiler) available (see [[The netCDF library|this page]] for more about installing NetCDF),&lt;br /&gt;
as well as the companion NetCDF95 library (compiled with the same compiler) available (see [[The netCDF95 library|this page]] for more about installing it)&lt;br /&gt;
# Have the IOIPSL library available (see [[Some pointers about standalone installation of the IOIPSL library|this page]] for more about installing IOIPSL)&lt;br /&gt;
&lt;br /&gt;
In a more realistic case, you'll probably want to run the parallel version of the GCM, most likely with XIOS; The prerequisites are then:&lt;br /&gt;
# Have a Fortran-enabled MPI library at hand (see [[Building an MPI library|this page]] for more about installing MPI)&lt;br /&gt;
# A NetCDF4-HDF5 library, preferably compiled with MPI enabled&lt;br /&gt;
# Have the IOIPSL library available (see [[Some pointers about standalone installation of the IOIPSL library|this page]] for more about installing IOIPSL)&lt;br /&gt;
# Have the XIOS library available (see [[Some pointers about standalone installation of the XIOS library|this page]] for more about installing XIOS)&lt;br /&gt;
&lt;br /&gt;
== Downloading LMDZ6 source code ==&lt;br /&gt;
This is easily done using svn (subversion). To download the latest version from the trunk as an &amp;quot;LMDZ&amp;quot; directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
svn checkout http://svn.lmd.jussieu.fr/LMDZ/LMDZ6/trunk LMDZ&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that the recommended way to proceed is to have all models and libraries at the same level in a master directory, so a working example would be where the master directory contents would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IOIPSL  LMDZ  XIOS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compile LMDZ one would then proceed to the LMDZ subdirectory, make some adequate [[WhatIs: The target architecture (&amp;quot;arch&amp;quot;) files|architecture files]] (if needed) and use the [[WhatIs: The makelmdz fcm script|makelmdz_fcm.sh]] script&lt;br /&gt;
&lt;br /&gt;
21/11/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_flag_aerosol_strat_parameter&amp;diff=422</id>
		<title>The flag aerosol strat parameter</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_flag_aerosol_strat_parameter&amp;diff=422"/>
				<updated>2023-11-21T08:56:12Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « The '''flag_aerosol_strat''' parameter is an integer flag which sets which forcing is used for stratospheric aerosols optical properties (i.e. format of the taustrat*.nc f... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''flag_aerosol_strat''' parameter is an integer flag which sets which forcing is used for stratospheric aerosols optical properties (i.e. format of the taustrat*.nc files read by the model; see https://trac.lmd.jussieu.fr/LMDZ/browser/LMDZ6/trunk/libf/phylmd/readaerosolstrato_m.F90) :&lt;br /&gt;
* flag_aerosol_strat = 0 : no stratospheric aerosols (default value)&lt;br /&gt;
* flag_aerosol_strat = 1 : old forcings (only case; only one optical parameter)&lt;br /&gt;
* flag_aerosol_strat = 2 : 2 files corresponding to SW and LW spectral bands (files tauswstrat.2D.nc and taulwstrat.2D.nc) with 3 optical parameters. This option was introduced for CMIP6 runs using RRTM (i.e. requires rrtm=1 flag)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
21/11/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;br /&gt;
[[Category:Inputs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=412</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=412"/>
				<updated>2023-05-24T07:02:05Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI https://www.open-mpi.org/ and MPICH https://www.mpich.org/ libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== using a package manager ==&lt;br /&gt;
If you have sudo privileges and are on an Ubuntu or Linux Mint machine you should be able to install the OpenMPI library with&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libopenmpi-dev openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of personal installation of the the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/myopenmpi''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/myopenmpi/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PATH_OPENMPI/bin/mpif90 -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0&lt;br /&gt;
Copyright (C) 2019 Free Software Foundation, Inc.&lt;br /&gt;
This is free software; see the source for copying conditions.  There is NO&lt;br /&gt;
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a distribution correctly installed you will need to update your environment variables '''PATH''' and '''LD_LIBRARY_PATH''' to point to the relevant locations (the '''bin''' and '''lib''' subdirectories of the distribution).&lt;br /&gt;
In practice this is typically done in your ''$HOME/.bash_profile'' or ''$HOME/.bashrc'' file, where for instance, if your installed the library in '''$HOME/myopenmpi''' you would add:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/myopenmpi/bin&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/myopenmpi/lib&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A few things worth knowing about ==&lt;br /&gt;
* '''mpif90''' is just a wrapper around a given compiler which could be gfortran, ifort, pgfortran, etc. to know more about that run&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mpif90 --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* in some cases the Fortran wrapper is called '''mpifort''' or '''mpiifort''' (e.g. with ifort, sometimes) , not '''mpif90'''&lt;br /&gt;
* It is vital to use the '''mpirun''' command from the same package than the '''mpif90''' compilation wrapper used to compile the code. Otherwise one can get some really weird results... &lt;br /&gt;
&lt;br /&gt;
24/05/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=411</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=411"/>
				<updated>2023-05-24T06:58:09Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI https://www.open-mpi.org/ and MPICH https://www.mpich.org/ libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== using a package manager ==&lt;br /&gt;
If you have sudo privileges and are on an Ubuntu or Linux Mint machine you should be able to install the OpenMPI library with&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libopenmpi-dev openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of personal installation of the the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/myopenmpi''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/myopenmpi/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PATH_OPENMPI/bin/mpif90 -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0&lt;br /&gt;
Copyright (C) 2019 Free Software Foundation, Inc.&lt;br /&gt;
This is free software; see the source for copying conditions.  There is NO&lt;br /&gt;
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a distribution correctly installed you will need to update your environment variables '''PATH''' and '''LD_LIBRARY_PATH''' to point to the relevant locations (the '''bin''' and '''lib''' subdirectories of the distribution).&lt;br /&gt;
In practice this is typically done in your ''$HOME/.bash_profile'' or ''$HOME/.bashrc'' file, where for instance, if your installed the library in '''$HOME/myopenmpi''' you would add:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/myopenmpi/bin&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/myopenmpi/lib&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A few things worth knowing about ==&lt;br /&gt;
* '''mpif90''' is just a wrapper around a given compiler which could be gfortran, ifort, pgfortran, etc. to know more about that run&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mpif90 --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* in some cases the Fortran wrapper is called '''mpifort''' or '''mpiifort''' (e.g. with ifort) , not '''mpif90'''&lt;br /&gt;
* It is vital to use the '''mpirun''' command from the same package than the '''mpif90''' compilation wrapper used to compile the code. Otherwise one can get some really weird results... &lt;br /&gt;
&lt;br /&gt;
24/05/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=410</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=410"/>
				<updated>2023-05-24T06:56:30Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI https://www.open-mpi.org/ and MPICH https://www.mpich.org/ libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== using a package manager ==&lt;br /&gt;
If you have sudo privileges and are on an Ubuntu or Linux Mint machine you should be able to install the OpenMPI library with&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libopenmpi-dev openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of personal installation of the the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/myopenmpi''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/myopenmpi/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PATH_OPENMPI/bin/mpif90 -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0&lt;br /&gt;
Copyright (C) 2019 Free Software Foundation, Inc.&lt;br /&gt;
This is free software; see the source for copying conditions.  There is NO&lt;br /&gt;
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a distribution correctly installed you will need to update your environment variables '''PATH''' and '''LD_LIBRARY_PATH''' to point to the relevant locations (the '''bin''' and '''lib''' subdirectories of the distribution).&lt;br /&gt;
In practice this is typically done in your ''$HOME/.bash_profile'' or ''$HOME/.bashrc'' file, where for instance, if your installed the library in '''$HOME/myopenmpi''' you would add:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/myopenmpi/bin&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/myopenmpi/lib&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A few things worth knowing about ==&lt;br /&gt;
* '''mpif90''' is just a wrapper around a given compiler which could be gfortran, ifort, pgfortran, etc. to know more about that run&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mpif90 --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* in some cases (e.g. with ifort) the Fortran wrapper is called '''mpiifort''', not '''mpif90'''&lt;br /&gt;
* It is vital to use the '''mpirun''' command from the same package than the '''mpif90''' compilation wrapper used to compile the code. Otherwise one can get some really weird results... &lt;br /&gt;
&lt;br /&gt;
24/05/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF95_library&amp;diff=386</id>
		<title>The netCDF95 library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF95_library&amp;diff=386"/>
				<updated>2023-04-24T10:15:51Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The NetCDF95 library ==&lt;br /&gt;
This is essentially a wrapper on top of the &amp;quot;regular&amp;quot; [[The netCDF library|NetCDF library]].&lt;br /&gt;
Added, and thus required, since April 2023 (revision 4500, roughly speaking, of the code).&lt;br /&gt;
&lt;br /&gt;
It is freely available from https://lguez.github.io/NetCDF95/&lt;br /&gt;
&lt;br /&gt;
Along with installation instructions: https://lguez.github.io/NetCDF95/installation/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=385</id>
		<title>Some pointers about standalone installation of LMDZ</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=385"/>
				<updated>2023-04-24T10:13:50Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing LMDZ6&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
In the most minimal case, where one would only run the serial version of the GCM, then the prerequisites are:&lt;br /&gt;
# Have a Fortran compiler at hand &lt;br /&gt;
# Have a NetCDF library (compiled with the same compiler) available (see [[The netCDF library|this page]] for more about installing NetCDF),&lt;br /&gt;
as well as the companion NetCDF95 library (compiled with the same compiler) available (see [[The netCDF95 library|this page]] for more about installing it)&lt;br /&gt;
# Have the IOIPSL library available (see [[Some pointers about standalone installation of the IOIPSL library|this page]] for more about installing IOIPSL)&lt;br /&gt;
&lt;br /&gt;
In a more realistic case, you'll probably want to run the parallel version of the GCM, most likely with XIOS; The prerequisites are then:&lt;br /&gt;
# Have a Fortran-enabled MPI library at hand (see [[Building an MPI library|this page]] for more about installing MPI)&lt;br /&gt;
# A NetCDF4-HDF5 library, preferably compiled with MPI enabled&lt;br /&gt;
# Have the IOIPSL library available&lt;br /&gt;
# Have the XIOS library available (see [[Some pointers about standalone installation of the XIOS library|this page]] for more about installing XIOS)&lt;br /&gt;
&lt;br /&gt;
== Downloading LMDZ6 source code ==&lt;br /&gt;
This is easily done using svn (subversion). To download the latest version from the trunk as an &amp;quot;LMDZ&amp;quot; directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
svn checkout http://svn.lmd.jussieu.fr/LMDZ/LMDZ6/trunk LMDZ&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that the recommended way to proceed is to have all models and libraries at the same level in a master directory, so a working example would be where the master directory contents would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IOIPSL  LMDZ  XIOS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compile LMDZ one would then proceed to the LMDZ subdirectory, make some adequate [[WhatIs: The target architecture (&amp;quot;arch&amp;quot;) files|architecture files]] (if needed) and use the [[WhatIs: The makelmdz fcm script|makelmdz_fcm.sh]] script&lt;br /&gt;
&lt;br /&gt;
10/03/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF95_library&amp;diff=384</id>
		<title>The netCDF95 library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF95_library&amp;diff=384"/>
				<updated>2023-04-24T07:27:12Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « == The NetCDF95 library == This is essentially a wrapper on top of the &amp;quot;regular&amp;quot; NetCDF library. Added, and thus required, since revision 4500 (roug... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The NetCDF95 library ==&lt;br /&gt;
This is essentially a wrapper on top of the &amp;quot;regular&amp;quot; [[The netCDF library|NetCDF library]].&lt;br /&gt;
Added, and thus required, since revision 4500 (roughly speaking) of the code.&lt;br /&gt;
&lt;br /&gt;
It is freely available from https://lguez.github.io/NetCDF95/&lt;br /&gt;
&lt;br /&gt;
Along with installation instructions: https://lguez.github.io/NetCDF95/installation/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=383</id>
		<title>Some pointers about standalone installation of LMDZ</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=383"/>
				<updated>2023-04-24T07:14:11Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing LMDZ6&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
In the most minimal case, where one would only run the serial version of the GCM, then the prerequisites are:&lt;br /&gt;
# Have a Fortran compiler at hand &lt;br /&gt;
# Have a NetCDF library (compiled with the same compiler) available (see [[The netCDF library|this page]] for more about installing NetCDF)&lt;br /&gt;
# Have a companion NetCDF95 library (compiled with the same compiler) available (see [[The netCDF95 library|this page]] for more about installing it)&lt;br /&gt;
# Have the IOIPSL library available (see [[Some pointers about standalone installation of the IOIPSL library|this page]] for more about installing IOIPSL)&lt;br /&gt;
&lt;br /&gt;
In a more realistic case, you'll probably want to run the parallel version of the GCM, most likely with XIOS; The prerequisites are then:&lt;br /&gt;
# Have a Fortran-enabled MPI library at hand (see [[Building an MPI library|this page]] for more about installing MPI)&lt;br /&gt;
# A NetCDF4-HDF5 library, preferably compiled with MPI enabled&lt;br /&gt;
# Have the IOIPSL library available&lt;br /&gt;
# Have the XIOS library available (see [[Some pointers about standalone installation of the XIOS library|this page]] for more about installing XIOS)&lt;br /&gt;
&lt;br /&gt;
== Downloading LMDZ6 source code ==&lt;br /&gt;
This is easily done using svn (subversion). To download the latest version from the trunk as an &amp;quot;LMDZ&amp;quot; directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
svn checkout http://svn.lmd.jussieu.fr/LMDZ/LMDZ6/trunk LMDZ&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that the recommended way to proceed is to have all models and libraries at the same level in a master directory, so a working example would be where the master directory contents would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IOIPSL  LMDZ  XIOS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compile LMDZ one would then proceed to the LMDZ subdirectory, make some adequate [[WhatIs: The target architecture (&amp;quot;arch&amp;quot;) files|architecture files]] (if needed) and use the [[WhatIs: The makelmdz fcm script|makelmdz_fcm.sh]] script&lt;br /&gt;
&lt;br /&gt;
10/03/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=325</id>
		<title>Some pointers about standalone installation of LMDZ</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=325"/>
				<updated>2023-03-10T08:22:18Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing LMDZ6&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
In the most minimal case, where one would only run the serial version of the GCM, then the prerequisites are:&lt;br /&gt;
# Have a Fortran compiler at hand &lt;br /&gt;
# Have a NetCDF library (compiled with the same compiler) available (see [[The netCDF library|this page]] for more about installing NetCDF)&lt;br /&gt;
# Have the IOIPSL library available (see [[Some pointers about standalone installation of the IOIPSL library|this page]] for more about installing IOIPSL)&lt;br /&gt;
&lt;br /&gt;
In a more realistic case, you'll probably want to run the parallel version of the GCM, most likely with XIOS; The prerequisites are then:&lt;br /&gt;
# Have a Fortran-enabled MPI library at hand (see [[Building an MPI library|this page]] for more about installing MPI)&lt;br /&gt;
# A NetCDF4-HDF5 library, preferably compiled with MPI enabled&lt;br /&gt;
# Have the IOIPSL library available&lt;br /&gt;
# Have the XIOS library available (see [[Some pointers about standalone installation of the XIOS library|this page]] for more about installing XIOS)&lt;br /&gt;
&lt;br /&gt;
== Downloading LMDZ6 source code ==&lt;br /&gt;
This is easily done using svn (subversion). To download the latest version from the trunk as an &amp;quot;LMDZ&amp;quot; directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
svn checkout http://svn.lmd.jussieu.fr/LMDZ/LMDZ6/trunk LMDZ&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that the recommended way to proceed is to have all models and libraries at the same level in a master directory, so a working example would be where the master directory contents would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IOIPSL  LMDZ  XIOS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compile LMDZ one would then proceed to the LMDZ subdirectory, make some adequate [[WhatIs: The target architecture (&amp;quot;arch&amp;quot;) files|architecture files]] (if needed) and use the [[WhatIs: The makelmdz fcm script|makelmdz_fcm.sh]] script&lt;br /&gt;
&lt;br /&gt;
10/03/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_running_LMDZ_in_parallel&amp;diff=313</id>
		<title>Some pointers about running LMDZ in parallel</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_running_LMDZ_in_parallel&amp;diff=313"/>
				<updated>2023-01-12T10:22:45Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some pointers and advice for those who want to run LMDZ in parallel on a Linux PC&lt;br /&gt;
&lt;br /&gt;
This note is mainly oriented towards using LMDZ on a &amp;quot;personal&amp;quot; computer, i.e. as opposed to on a cluster or national center (surc as IDRIS or CCRT or CINES) where many tools and libraries are available.&lt;br /&gt;
&lt;br /&gt;
The first step is of course to have the model installed on your Linux machine, which should be relatively easy using the ''install_lmdz.sh'' script launched with appropriate option, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./install_lmdz.sh -parallel mpi_omp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If unfortunately the script fails, you might need to make some adjustments and generate your own NetCDF or IOIPSL libraries and/or your own ''arch'' files. What follows assumes that necessary libraries have been correctly built and are available. The focus here is on generating appropriate arch.fcm files and then compiling and running the GCM.&lt;br /&gt;
&lt;br /&gt;
== Compiling and running in MPI only ==&lt;br /&gt;
A prerequisite is (obviously) to have an MPI library at hand (e.g. MPICH, OpenMPI, etc.). Also having a  BLAS library at hand, although not mandatory, is recommended.&lt;br /&gt;
If the ''install_lmdz.sh'' script ran fine (with the ''-parallel mpi_omp'' option, then this is clearly the case.&lt;br /&gt;
&lt;br /&gt;
Assuming that ''mpif90'' points to the MPI wrapper (to gfortran) , that the MPI library is installed in ''/my/mpi/directory/lib'', that related files to include (mpi.h) are in directory ''/my/mpi/directory/include'', that the BLAS library is installed in ''/my/blas/directory/lib'', then an example of an adequate ''arch-local.fcm'' file would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%COMPILER            /my/mpi/directory/bin/mpif90&lt;br /&gt;
%LINK                /my/mpi/directory/bin/mpif90&lt;br /&gt;
%AR                  ar&lt;br /&gt;
%MAKE                make&lt;br /&gt;
%FPP_FLAGS           -P -traditional&lt;br /&gt;
%FPP_DEF             NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM&lt;br /&gt;
%BASE_FFLAGS         -cpp -ffree-line-length-0 -fdefault-real-8 &lt;br /&gt;
%PROD_FFLAGS         -O3 -funroll-loops&lt;br /&gt;
%DEV_FFLAGS          -g -O1 -Wall&lt;br /&gt;
%DEBUG_FFLAGS        -g3 -Wall -fbounds-check -ffpe-trap=invalid,zero,overflow -O0 -fstack-protector-all -fbacktrace -finit-real=snan&lt;br /&gt;
%MPI_FFLAGS          -fcray-pointer -I/my/mpi/directory/include&lt;br /&gt;
%OMP_FFLAGS          &lt;br /&gt;
%BASE_LD             -L/my/blas/directory/lib -lblas&lt;br /&gt;
%MPI_LD              -L/my/mpi/directory/lib -lmpi&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And compiling the GCM would be done via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch local -parallel mpi ......&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To then run LMDZ on N=4 processors would require running the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/my/mpi/directory/bin/mpirun -np 4 gcm_32x32x39_phylmd_para_mem.e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that prior to running you might need to update your ''LD_LIBRARY_PATH'' environment variable to include the path to your MPI/NetCDF/BLAS libraries, especially if these are locate in non-standard paths. Note also that if you are using the IOIPSL library, then output files will be split into as many files as processors were used and should be recombined into a single file using the IOIPSL [[WhatIs: the ioipsl library|rebuild utility]].&lt;br /&gt;
&lt;br /&gt;
== Compiling and running in OpenMP only ==&lt;br /&gt;
Assuming that the BLAS library is installed in ''/my/blas/directory/lib'', then an example of an adequate ''arch-local.fcm'' file would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%COMPILER            gfortran&lt;br /&gt;
%LINK                gfortran&lt;br /&gt;
%AR                  ar&lt;br /&gt;
%MAKE                make&lt;br /&gt;
%FPP_FLAGS           -P -traditional&lt;br /&gt;
%FPP_DEF             NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM&lt;br /&gt;
%BASE_FFLAGS         -cpp -ffree-line-length-0 -fdefault-real-8 &lt;br /&gt;
%PROD_FFLAGS         -O3 -funroll-loops&lt;br /&gt;
%DEV_FFLAGS          -g -O1 -Wall&lt;br /&gt;
%DEBUG_FFLAGS        -g3 -Wall -fbounds-check -ffpe-trap=invalid,zero,overflow -O0 -fstack-protector-all -fbacktrace -finit-real=snan&lt;br /&gt;
%MPI_FFLAGS          -fcray-pointer -I/my/mpi/directory/include&lt;br /&gt;
%OMP_FFLAGS          -fopenmp -fcray-pointer&lt;br /&gt;
%BASE_LD             -L/my/blas/directory/lib -lblas&lt;br /&gt;
%MPI_LD              &lt;br /&gt;
%OMP_LD              -fopenmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And compiling the GCM would be done via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch local -parallel omp ......&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To then run LMDZ using X=4 tasks would require running the commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OMP_NUM_THREADS=4&lt;br /&gt;
export OMP_STACKSIZE=200M&lt;br /&gt;
./gcm_32x32x39_phylmd_para_mem.e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that to avoid memory issues (which can easily arrive in OpenMP as separate tasks need some private memory to store their variables, which is defined by the ''OMP_STACKSIZE=...'' environment variable) it is strongly recommended to have as much stack available as possible. Which in practice means setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ulimit -s unlimited&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
prior to running (and in practice this can be put in your .bashrc or .bash_profile file to be always set this way).&lt;br /&gt;
&lt;br /&gt;
== Compiling and running in mixed MPI/OpenMP ==&lt;br /&gt;
All that is mentionned above about MPI and OpenMP applies.&lt;br /&gt;
An example of an adequate ''arch-local.fcm'' file would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%COMPILER            /my/mpi/directory/bin/mpif90&lt;br /&gt;
%LINK                /my/mpi/directory/bin/mpif90&lt;br /&gt;
%AR                  ar&lt;br /&gt;
%MAKE                make&lt;br /&gt;
%FPP_FLAGS           -P -traditional&lt;br /&gt;
%FPP_DEF             NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM&lt;br /&gt;
%BASE_FFLAGS         -cpp -ffree-line-length-0 -fdefault-real-8 &lt;br /&gt;
%PROD_FFLAGS         -O3 -funroll-loops&lt;br /&gt;
%DEV_FFLAGS          -g -O1 -Wall&lt;br /&gt;
%DEBUG_FFLAGS        -g3 -Wall -fbounds-check -ffpe-trap=invalid,zero,overflow -O0 -fstack-protector-all -fbacktrace -finit-real=snan&lt;br /&gt;
%MPI_FFLAGS          -fcray-pointer -I/my/mpi/directory/include&lt;br /&gt;
%OMP_FFLAGS          -fopenmp -fcray-pointer&lt;br /&gt;
%BASE_LD             -L/my/blas/directory/lib -lblas&lt;br /&gt;
%MPI_LD              -L/my/mpi/directory/lib -lmpi&lt;br /&gt;
%OMP_LD              -fopenmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And compiling the GCM would be done via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch local -parallel mpi_omp ......&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To then run LMDZ using N=4 MPI processes with X=2 tasks each (i.e.using  N*X=8 cores overall) would require running the commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OMP_NUM_THREADS=2&lt;br /&gt;
export OMP_STACKSIZE=200M&lt;br /&gt;
/my/mpi/directory/bin/mpirun -np 4 gcm_32x32x39_phylmd_para_mem.e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12/01/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:Parallel]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=312</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=312"/>
				<updated>2023-01-06T06:35:46Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI https://www.open-mpi.org/ and MPICH https://www.mpich.org/ libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== using a package manager ==&lt;br /&gt;
If you have sudo privileges and are on an Ubuntu or Linux Mint machine you should be able to install the OpenMPI library with&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libopenmpi-dev openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of personal installation of the the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/LMDZ''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/LMDZ/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI/openmpi-1.10.3&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PATH_OPENMPI/openmpi-1.10.3/bin/mpif90 -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0&lt;br /&gt;
Copyright (C) 2019 Free Software Foundation, Inc.&lt;br /&gt;
This is free software; see the source for copying conditions.  There is NO&lt;br /&gt;
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a distribution correctly installed you will need to update your environment variables '''PATH''' and '''LD_LIBRARY_PATH''' to point to the relevant locations (the '''bin''' and '''lib''' subdirectories of the distribution).&lt;br /&gt;
In practice this is typically done in your ''$HOME/.bash_profile'' or ''$HOME/.bashrc'' file, where for instance, if your installed the library in '''$HOME/myopenmpi''' you would add:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/myopenmpi/bin&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/myopenmpi/lib&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A few things worth knowing about ==&lt;br /&gt;
* '''mpif90''' is just a wrapper around a given compiler which could be gfortran, ifort, pgfortran, etc. to know more about that run&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mpif90 --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* in some cases (e.g. with ifort) the Fortran wrapper is called '''mpiifort''', not '''mpif90'''&lt;br /&gt;
* It is vital to use the '''mpirun''' command from the same package than the '''mpif90''' compilation wrapper used to compile the code. Otherwise one can get some really weird results... &lt;br /&gt;
&lt;br /&gt;
05/01/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=311</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=311"/>
				<updated>2023-01-05T15:35:05Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI https://www.open-mpi.org/ and MPICH https://www.mpich.org/ libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== using a package manager ==&lt;br /&gt;
If you have sudo privileges and are on an Ubuntu or Linux Mint machine you should be able to install the OpenMPI library with&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libopenmpi-dev openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of personal installation of the the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/LMDZ''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/LMDZ/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI/openmpi-1.10.3&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PATH_OPENMPI/openmpi-1.10.3/bin/mpif90 -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0&lt;br /&gt;
Copyright (C) 2019 Free Software Foundation, Inc.&lt;br /&gt;
This is free software; see the source for copying conditions.  There is NO&lt;br /&gt;
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== A few things worth knowing about ==&lt;br /&gt;
* '''mpif90''' is just a wrapper around a given compiler which could be gfortran, ifort, pgfortran, etc. to know more about that run&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mpif90 --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* in some cases (e.g. with ifort) the Fortran wrapper is called '''mpiifort''' , not '''mpif90'''&lt;br /&gt;
* It is vital to use the '''mpirun''' command from the same package than the '''mpif90''' compilation wrapper use to compile. Otherwise one can get some really weird results... &lt;br /&gt;
&lt;br /&gt;
05/01/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=310</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=310"/>
				<updated>2023-01-05T15:23:17Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI and MPICH libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== using a package manager ==&lt;br /&gt;
If you have sudo privileges and are on an Ubuntu or Linux Mint machine you should be able to install the OpenMPI library with&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libopenmpi-dev openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of personal installation of the the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/LMDZ''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/LMDZ/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI/openmpi-1.10.3&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PATH_OPENMPI/openmpi-1.10.3/bin/mpif90 -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== Worth knowing about ==&lt;br /&gt;
* '''mpif90''' is just a wrapper around a given compiler which could be gfortran, ifort, pgfortran, etc. to know more about that run&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mpif90 --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* in some cases (e.g. with ifort) the Fortran wrapper is called '''mpiifort''' , not '''mpif90'''&lt;br /&gt;
* It is vital to use the '''mpirun''' command from the same package than the '''mpif90''' compilation wrapper use to compile. Otherwise one can get some really weird results... &lt;br /&gt;
&lt;br /&gt;
03/01/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=309</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=309"/>
				<updated>2023-01-05T14:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI and MPICH libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== using a package manager ==&lt;br /&gt;
If you have sudo privileges and are on an Ubuntu or Linux Mint machine you should be able to install the OpenMPI library with&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libopenmpi-dev openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of personal installation of the the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/LMDZ''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/LMDZ/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI/openmpi-1.10.3&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PATH_OPENMPI/openmpi-1.10.3/bin/mpif90 -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== Worth knowing about ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
03/01/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=308</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=308"/>
				<updated>2023-01-05T14:33:03Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI and MPICH libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== Example of installing the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/LMDZ''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/LMDZ/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI/openmpi-1.10.3&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PATH_OPENMPI/openmpi-1.10.3/bin/mpif90 -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaninful&lt;br /&gt;
&lt;br /&gt;
== Worth knowing about ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
03/01/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=307</id>
		<title>Building an MPI library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Building_an_MPI_library&amp;diff=307"/>
				<updated>2023-01-05T10:42:47Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI and MPICH libraries  == Checking if you have an Fortran enabled MPI lib... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a few freely available MPI libraries around; among the most widely spread are the OpenMPI and MPICH libraries&lt;br /&gt;
&lt;br /&gt;
== Checking if you have an Fortran enabled MPI library already installed and at hand ==&lt;br /&gt;
This can easily be done by checking if the MPI wrapper '''mpif90''' is available, i.e. that&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which mpif90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful&lt;br /&gt;
&lt;br /&gt;
== Example of installing the OpenMPI library ==&lt;br /&gt;
To adapt to fit your onw needs and system specificities, obviously.&lt;br /&gt;
In the example below the installation is done in the '''$HOME/LMDZ''' directory (for convenience this path is stored in the '''PATH_OPENMPI''' variable. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PATH_OPENMPI=$HOME/LMDZ/&lt;br /&gt;
mkdir -p $PATH_OPENMPI&lt;br /&gt;
cd $PATH_OPENMPI&lt;br /&gt;
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz&lt;br /&gt;
gunzip openmpi-1.10.3.tar.gz &lt;br /&gt;
tar xvf openmpi-1.10.3.tar &lt;br /&gt;
cd openmpi-1.10.3&lt;br /&gt;
./configure --prefix $PATH_OPENMPI/openmpi-1.10.3&lt;br /&gt;
make all install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To check that the install went well check that...&lt;br /&gt;
&lt;br /&gt;
== Worth knowing about ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
03/01/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=306</id>
		<title>Some pointers about standalone installation of LMDZ</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=306"/>
				<updated>2023-01-04T16:29:07Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing LMDZ6&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
In the most minimal case, where one would only run the serial version of the GCM, then the prerequisites are:&lt;br /&gt;
# Have a Fortran compiler at hand &lt;br /&gt;
# Have a NetCDF library (compiled with the same compiler) available (see [[The netCDF library|this page]] for more about installing NetCDF)&lt;br /&gt;
# Have the IOIPSL library available (see [[Some pointers about standalone installation of the IOIPSL library|this page]] for more about installing IOIPSL)&lt;br /&gt;
&lt;br /&gt;
In a more realistic case, you'll probably want to run the parallel version of the GCM, most likely with XIOS; The prerequisites are then:&lt;br /&gt;
# Have a Fortran-enabled MPI library at hand (see [[Building an MPI library|this page]] for more about installing MPI)&lt;br /&gt;
# A NetCDF4-HDF5 library, preferably compiled with MPI enabled&lt;br /&gt;
# Have the IOIPSL library available&lt;br /&gt;
# Have the XIOS library available (see [[Some pointers about standalone installation of the XIOS library|this page]] for more about installing XIOS)&lt;br /&gt;
&lt;br /&gt;
== Downloading LMDZ6 source code ==&lt;br /&gt;
This is easily done using svn (subversion). To download the latest version from the trunk as an &amp;quot;LMDZ6&amp;quot; directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
svn checkout http://svn.lmd.jussieu.fr/LMDZ/LMDZ6/trunk LMDZ6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that the recommended way to proceed is to have all models and libraries at the same level in a master directory, so a working example would be where the master directory contents would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IOIPSL  LMDZ6  XIOS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compile LMDZ one would then proceed to the LMDZ6 subdirectory, make some adequate [[WhatIs: The target architecture (&amp;quot;arch&amp;quot;) files|architecture files]] (if needed) and use the [[WhatIs: The makelmdz fcm script|makelmdz_fcm.sh]] script&lt;br /&gt;
&lt;br /&gt;
04/01/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF_library&amp;diff=301</id>
		<title>The netCDF library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF_library&amp;diff=301"/>
				<updated>2023-01-03T13:50:02Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== the NetCDF library ==&lt;br /&gt;
The model reads and writes input and output files in NetCDF (Network Common Data Form) format (developed and maintained by Unidata: https://www.unidata.ucar.edu/software/netcdf/ ) and therefore a NetCDF library must be at hand when compiling and running LMDZ6.&lt;br /&gt;
&lt;br /&gt;
As this library is not quite standard, chances are that you might need to install it yourself on your system (note that the [[WhatIs: The install lmdz.sh script|install_lmdz.sh]] default behavior is to download and install that library), hence this page with some indications on how to do so.&lt;br /&gt;
&lt;br /&gt;
== Checking if a NetCDF library is already available ==&lt;br /&gt;
It is possible that the library, including its Fortran component, is already available. An easy way to check this is to see if the related utilities like '''ncdump''' are available, i.e. that &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which ncdump&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns a positive answer.&lt;br /&gt;
&lt;br /&gt;
Note that this does not suffice as the full library, including its Fortran component, and not just the related utilities are required. A neat way to check this is to use the '''nf-config'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nf-config --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful. If not, you probably need to take some action along the lines of what is indicated in the following sections.&lt;br /&gt;
&lt;br /&gt;
== Various ways to install the NetCDF library ==&lt;br /&gt;
=== Install via a system manager ===&lt;br /&gt;
If on Ubuntu (and with admin, i.e. ''sudo'' rights) you can try&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libnetcdff-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Personal installation ===&lt;br /&gt;
One can always download the source code and compile the NetCDF library (see https://docs.unidata.ucar.edu/netcdf-c/current/faq.html#HowdoIgetthenetCDFsoftwarepackage ). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory and:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/import/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
Check that the installation was successfully installed :-)&lt;br /&gt;
Again, a neat way to do that is to run and check the output of&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nf-config --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Personal installation of an advanced NetCDF4-HDF5 library with MPI enabled ===&lt;br /&gt;
This specific version is useful especially if running with the XIOS library.&lt;br /&gt;
A prerequisite is to have an MPI library installed and available.&lt;br /&gt;
You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory and:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf4hdf5&lt;br /&gt;
cd netcdf4hdf5&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/import/install_netcdf4_hdf5.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5.bash&lt;br /&gt;
./install_netcdf4_hdf5.bash -CC mpicc -FC mpif90 -CXX mpiCC -MPI /path/to/your/MPI/install &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You should of course adapt the command line, especially the ''-MPI /path/to/your/MPI/install'' part to your settings. &lt;br /&gt;
&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf4hdf5/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5.bash&amp;quot; script in a &amp;quot;netcdf4hdf5&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
Check that the installation was successfully installed :-)&lt;br /&gt;
Again, a neat way to do that is to run and check the output of&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nf-config --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
03/01/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF_library&amp;diff=300</id>
		<title>The netCDF library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF_library&amp;diff=300"/>
				<updated>2023-01-03T12:43:41Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== the NetCDF library ==&lt;br /&gt;
The model reads and writes input and output files in NetCDF (Network Common Data Form) format (developed and maintained by Unidata: https://www.unidata.ucar.edu/software/netcdf/ ) and therefore a NetCDF library must be at hand when compiling and running LMDZ6.&lt;br /&gt;
&lt;br /&gt;
As this library is not quite standard, chances are that you might need to install it yourself on your system (note that the [[WhatIs: The install lmdz.sh script|install_lmdz.sh]] default behavior is to download and install that library), hence this page with some indications on how to do so.&lt;br /&gt;
&lt;br /&gt;
=== Checking if a NetCDF library is already available ===&lt;br /&gt;
It is possible that the library, including its Fortran component, is already available. An easy way to check this is to see if the related utilities like '''ncdump''' are available, i.e. that &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which ncdump&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns a positive answer.&lt;br /&gt;
&lt;br /&gt;
Note that this does not suffice as the full library, including its Fortran component, and not just the related utilities are required. A neat way to check this is to use the '''nf-config'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nf-config --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful. If not, you probably need to take some action along the lines of what is indicated in the following sections.&lt;br /&gt;
&lt;br /&gt;
=== Install via a system manager ===&lt;br /&gt;
If on Ubuntu (and with admin, i.e. ''sudo'' rights) you can try&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libnetcdff-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Personal installation ===&lt;br /&gt;
One can always download the source code and compile the NetCDF library (see https://docs.unidata.ucar.edu/netcdf-c/current/faq.html#HowdoIgetthenetCDFsoftwarepackage ). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/import/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
03/01/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF_library&amp;diff=297</id>
		<title>The netCDF library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_netCDF_library&amp;diff=297"/>
				<updated>2023-01-03T11:40:27Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « == the NetCDF library == The model reads and writes input and output files in NetCDF (Network Common Data Form) format (developed and maintained by Unidata: https://www.un... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== the NetCDF library ==&lt;br /&gt;
The model reads and writes input and output files in NetCDF (Network Common Data Form) format (developed and maintained by Unidata: https://www.unidata.ucar.edu/software/netcdf/ ) and therefore a NetCDF library must be at hand when compiling and running LMDZ6.&lt;br /&gt;
&lt;br /&gt;
As this library is not quite standard, chances are that you might need to install it yourself on your system (note that the [[WhatIs: The install lmdz.sh script|install_lmdz.sh]] default behavior is to download and install that library), hence this page with some indications on how to do so.&lt;br /&gt;
&lt;br /&gt;
=== Checking if a NetCDF library is already available ===&lt;br /&gt;
It is possible that the library, including its Fortran component, is already available. An easy way to check this is to see if the related utilities like '''ncdump''' are available, i.e. that &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which ncdump&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns a positive answer.&lt;br /&gt;
&lt;br /&gt;
Note that this does not suffice as the full library, including its Fortran component, and not just the related utilities are required. A neat way to check this is to use the '''nf-config'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nf-config --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
returns something meaningful. If not, you probably need to take some action along the lines of what is indicated in the following sections.&lt;br /&gt;
&lt;br /&gt;
=== Install via a system manager ===&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_tracer.def_input_file&amp;diff=296</id>
		<title>WhatIs: The tracer.def input file</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_tracer.def_input_file&amp;diff=296"/>
				<updated>2023-01-03T08:23:36Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The tracer.def input file ==&lt;br /&gt;
This file contains information on the tracers that will be advected in the dynamics. It should be used instead of the now depreciated [[WhatIs: The traceur.def input file|traceur.def]] input file.&lt;br /&gt;
&lt;br /&gt;
== Simple example of a ''tracer.def'' file ==&lt;br /&gt;
In this example there are 4 tracers: 3 for water (one for each of its phases, gas, liquid or solid) and one called ''Aga''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;version=1.0&lt;br /&gt;
&amp;amp;lmdz&lt;br /&gt;
default    type=tracer  phases=g    hadv=10   vadv=10   parent=air&lt;br /&gt;
H2O                                 hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=ls&lt;br /&gt;
Aga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The mandatory first line ''&amp;amp;version'' is there to handle (potential) versioning of these file and their format&lt;br /&gt;
* The mandatory second line ''&amp;amp;lmdz'' is there to specify the scope of the following lines, i.e. that all that follow is relevant for the LMDZ lon-lat dynamical core.&lt;br /&gt;
* The mandatory third line starting with ''default'' specifies the default attributes for all the tracers. In this example that they are of type ''tracer'' (as opposed to type ''tag'' for tagging), that there phase is ''g'' (gas), that they are advected using advection schemes hadv and vadv ''10'' (Van Leer advection scheme) and that their parent (i.e. carrier fluid) is ''air''.&lt;br /&gt;
* Then one should specify on successive lines the tracer names and optionally their properties such as phases (g: gas, l: liquid, s:solid). Note that one may condense information about phases using a mix of letters g/l/s rather than specifying the information for each on a separate line. In practice the lines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H2O                                 hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From the example above which specifies there are 3 H2O phases (gas, liquid and solid), where the gas phase is advected with the hadv and vadv ''14'' dedicated scheme could also be written more explicitly as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H2O                     phases=g    hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=l&lt;br /&gt;
H2O                     phases=s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A more advanced example of a ''tracer.def file'' ==&lt;br /&gt;
The following example includes water isotopes (identified by the fact that their ''parent'' is not ''air'' but the tracer ''H2O'')&lt;br /&gt;
with two tags (''con'' and ''oce'')&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;version=1.0&lt;br /&gt;
&amp;amp;lmdz&lt;br /&gt;
default hadv=10 vadv=10 phases=g parent=air type=tracer&lt;br /&gt;
H2O hadv=14 vadv=14&lt;br /&gt;
H2O phases=ls&lt;br /&gt;
RN,PB&lt;br /&gt;
H2[18]O,H[2]HO,H2[16]O phases=gls parent=H2O&lt;br /&gt;
con,oce phases=gls parent=H2[18]O,H[2]HO,H2[16]O type=tag&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As LMDZ runs it outputs the detailed information about all tracers and their dependencies to one another. For the example above one would get:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
readTracersFiles: RAW CONTENT OF SECTION &amp;quot;lmdz&amp;quot;:&lt;br /&gt;
readTracersFiles: iq | hadv | vadv | name | parent | phase&lt;br /&gt;
readTracersFiles: ----+------+------+------------------------+------------------------+-------&lt;br /&gt;
readTracersFiles: 1 | 14 | 14 | H2O | air | g&lt;br /&gt;
readTracersFiles: 2 | 10 | 10 | H2O | air | ls&lt;br /&gt;
readTracersFiles: 3 | 10 | 10 | RN,PB | air | g&lt;br /&gt;
readTracersFiles: 4 | 10 | 10 | H2[18]O,H[2]HO,H2[16]O | H2O | gls&lt;br /&gt;
readTracersFiles: 5 | 10 | 10 | con,oce | H2[18]O,H[2]HO,H2[16]O | gls&lt;br /&gt;
readTracersFiles:&lt;br /&gt;
readTracersFiles: EXPANDED CONTENT OF SECTION &amp;quot;lmdz&amp;quot;:&lt;br /&gt;
readTracersFiles: iq | hadv | vadv | name | parent | igen | phase&lt;br /&gt;
readTracersFiles: ----+------+------+---------------+-----------+------+-------&lt;br /&gt;
readTracersFiles: 1 | 14 | 14 | H2O_g | air | 0 | g&lt;br /&gt;
readTracersFiles: 2 | 10 | 10 | H2O_l | air | 0 | l&lt;br /&gt;
readTracersFiles: 3 | 10 | 10 | H2O_s | air | 0 | s&lt;br /&gt;
readTracersFiles: 4 | 10 | 10 | RN | air | 0 | g&lt;br /&gt;
readTracersFiles: 5 | 10 | 10 | PB | air | 0 | g&lt;br /&gt;
readTracersFiles: 6 | 10 | 10 | H2[18]O_g | H2O_g | 1 | g&lt;br /&gt;
readTracersFiles: 7 | 10 | 10 | H2[18]O_l | H2O_l | 1 | l&lt;br /&gt;
readTracersFiles: 8 | 10 | 10 | H2[18]O_s | H2O_s | 1 | s&lt;br /&gt;
readTracersFiles: 9 | 10 | 10 | H[2]HO_g | H2O_g | 1 | g&lt;br /&gt;
readTracersFiles: 10 | 10 | 10 | H[2]HO_l | H2O_l | 1 | l&lt;br /&gt;
readTracersFiles: 11 | 10 | 10 | H[2]HO_s | H2O_s | 1 | s&lt;br /&gt;
readTracersFiles: 12 | 10 | 10 | H2[16]O_g | H2O_g | 1 | g&lt;br /&gt;
readTracersFiles: 13 | 10 | 10 | H2[16]O_l | H2O_l | 1 | l&lt;br /&gt;
readTracersFiles: 14 | 10 | 10 | H2[16]O_s | H2O_s | 1 | s&lt;br /&gt;
readTracersFiles: 15 | 10 | 10 | H2[18]O_g_con | H2[18]O_g | 2 | g&lt;br /&gt;
readTracersFiles: 16 | 10 | 10 | H2[18]O_l_con | H2[18]O_l | 2 | l&lt;br /&gt;
readTracersFiles: 17 | 10 | 10 | H2[18]O_s_con | H2[18]O_s | 2 | s&lt;br /&gt;
readTracersFiles: 18 | 10 | 10 | H2[18]O_g_oce | H2[18]O_g | 2 | g&lt;br /&gt;
readTracersFiles: 19 | 10 | 10 | H2[18]O_l_oce | H2[18]O_l | 2 | l&lt;br /&gt;
readTracersFiles: 20 | 10 | 10 | H2[18]O_s_oce | H2[18]O_s | 2 | s&lt;br /&gt;
readTracersFiles: 21 | 10 | 10 | H[2]HO_g_con | H[2]HO_g | 2 | g&lt;br /&gt;
readTracersFiles: 22 | 10 | 10 | H[2]HO_l_con | H[2]HO_l | 2 | l&lt;br /&gt;
readTracersFiles: 23 | 10 | 10 | H[2]HO_s_con | H[2]HO_s | 2 | s&lt;br /&gt;
readTracersFiles: 24 | 10 | 10 | H[2]HO_g_oce | H[2]HO_g | 2 | g&lt;br /&gt;
readTracersFiles: 25 | 10 | 10 | H[2]HO_l_oce | H[2]HO_l | 2 | l&lt;br /&gt;
readTracersFiles: 26 | 10 | 10 | H[2]HO_s_oce | H[2]HO_s | 2 | s&lt;br /&gt;
readTracersFiles: 27 | 10 | 10 | H2[16]O_g_con | H2[16]O_g | 2 | g&lt;br /&gt;
readTracersFiles: 28 | 10 | 10 | H2[16]O_l_con | H2[16]O_l | 2 | l&lt;br /&gt;
readTracersFiles: 29 | 10 | 10 | H2[16]O_s_con | H2[16]O_s | 2 | s&lt;br /&gt;
readTracersFiles: 30 | 10 | 10 | H2[16]O_g_oce | H2[16]O_g | 2 | g&lt;br /&gt;
readTracersFiles: 31 | 10 | 10 | H2[16]O_l_oce | H2[16]O_l | 2 | l&lt;br /&gt;
readTracersFiles: 32 | 10 | 10 | H2[16]O_s_oce | H2[16]O_s | 2 | s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
03/01/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_tracer.def_input_file&amp;diff=295</id>
		<title>WhatIs: The tracer.def input file</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_tracer.def_input_file&amp;diff=295"/>
				<updated>2023-01-03T08:17:55Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The tracer.def input file ==&lt;br /&gt;
This file contains information on the tracers that will be advected in the dynamics. It should be used instead of the now depreciated [[WhatIs: The traceur.def input file|traceur.def]] input file.&lt;br /&gt;
&lt;br /&gt;
== Simple example of a ''tracer.def'' file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;version=1.0&lt;br /&gt;
&amp;amp;lmdz&lt;br /&gt;
default    type=tracer  phases=g    hadv=10   vadv=10   parent=air&lt;br /&gt;
H2O                                 hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=ls&lt;br /&gt;
Aga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The mandatory first line ''&amp;amp;version'' is there to handle (potential) versioning of these file and their format&lt;br /&gt;
* The mandatory second line ''&amp;amp;lmdz'' is there to specify the scope of the following lines, i.e. that all that follow is relevant for the LMDZ lon-lat dynamical core.&lt;br /&gt;
* The mandatory third line starting with ''default'' specifies the default attributes for all the tracers. In this example that they are of type ''tracer'' (as opposed to type ''tag'' for tagging), that there phase is ''g'' (gas), that they are advected using advection schemes hadv and vadv ''10'' (Van Leer advection scheme) and that their parent (i.e. carrier fluid) is ''air''.&lt;br /&gt;
* Then one should specify on successive lines the tracer names and optionally their properties such as phases (g: gas, l: liquid, s:solid). Note that one may condense information about phases using a mix of letters g/l/s rather than specifying the information for each on a separate line. In practice the lines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H2O                                 hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From the example above which specifies there are 3 H2O phases (gas, liquid and solid), where the gas phase is advected with the hadv and vadv ''14'' dedicated scheme could also be written more explicitly as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H2O                     phases=g    hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=l&lt;br /&gt;
H2O                     phases=s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A more advanced example of a ''tracer.def file'' ==&lt;br /&gt;
The following example includes water isotopes (identified by the fact that their ''parent'' is not ''air'' but the tracer ''H2O'')&lt;br /&gt;
with two tags (''con'' and ''oce'')&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;version=1.0&lt;br /&gt;
&amp;amp;lmdz&lt;br /&gt;
default hadv=10 vadv=10 phases=g parent=air type=tracer&lt;br /&gt;
H2O hadv=14 vadv=14&lt;br /&gt;
H2O phases=ls&lt;br /&gt;
RN,PB&lt;br /&gt;
H2[18]O,H[2]HO,H2[16]O phases=gls parent=H2O&lt;br /&gt;
con,oce phases=gls parent=H2[18]O,H[2]HO,H2[16]O type=tag&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As LMDZ runs it outputs the detailed information about all tracers and their dependencies to one another. For the example above one would get:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
readTracersFiles: RAW CONTENT OF SECTION &amp;quot;lmdz&amp;quot;:&lt;br /&gt;
readTracersFiles: iq | hadv | vadv | name | parent | phase&lt;br /&gt;
readTracersFiles: ----+------+------+------------------------+------------------------+-------&lt;br /&gt;
readTracersFiles: 1 | 14 | 14 | H2O | air | g&lt;br /&gt;
readTracersFiles: 2 | 10 | 10 | H2O | air | ls&lt;br /&gt;
readTracersFiles: 3 | 10 | 10 | RN,PB | air | g&lt;br /&gt;
readTracersFiles: 4 | 10 | 10 | H2[18]O,H[2]HO,H2[16]O | H2O | gls&lt;br /&gt;
readTracersFiles: 5 | 10 | 10 | con,oce | H2[18]O,H[2]HO,H2[16]O | gls&lt;br /&gt;
readTracersFiles:&lt;br /&gt;
readTracersFiles: EXPANDED CONTENT OF SECTION &amp;quot;lmdz&amp;quot;:&lt;br /&gt;
readTracersFiles: iq | hadv | vadv | name | parent | igen | phase&lt;br /&gt;
readTracersFiles: ----+------+------+---------------+-----------+------+-------&lt;br /&gt;
readTracersFiles: 1 | 14 | 14 | H2O_g | air | 0 | g&lt;br /&gt;
readTracersFiles: 2 | 10 | 10 | H2O_l | air | 0 | l&lt;br /&gt;
readTracersFiles: 3 | 10 | 10 | H2O_s | air | 0 | s&lt;br /&gt;
readTracersFiles: 4 | 10 | 10 | RN | air | 0 | g&lt;br /&gt;
readTracersFiles: 5 | 10 | 10 | PB | air | 0 | g&lt;br /&gt;
readTracersFiles: 6 | 10 | 10 | H2[18]O_g | H2O_g | 1 | g&lt;br /&gt;
readTracersFiles: 7 | 10 | 10 | H2[18]O_l | H2O_l | 1 | l&lt;br /&gt;
readTracersFiles: 8 | 10 | 10 | H2[18]O_s | H2O_s | 1 | s&lt;br /&gt;
readTracersFiles: 9 | 10 | 10 | H[2]HO_g | H2O_g | 1 | g&lt;br /&gt;
readTracersFiles: 10 | 10 | 10 | H[2]HO_l | H2O_l | 1 | l&lt;br /&gt;
readTracersFiles: 11 | 10 | 10 | H[2]HO_s | H2O_s | 1 | s&lt;br /&gt;
readTracersFiles: 12 | 10 | 10 | H2[16]O_g | H2O_g | 1 | g&lt;br /&gt;
readTracersFiles: 13 | 10 | 10 | H2[16]O_l | H2O_l | 1 | l&lt;br /&gt;
readTracersFiles: 14 | 10 | 10 | H2[16]O_s | H2O_s | 1 | s&lt;br /&gt;
readTracersFiles: 15 | 10 | 10 | H2[18]O_g_con | H2[18]O_g | 2 | g&lt;br /&gt;
readTracersFiles: 16 | 10 | 10 | H2[18]O_l_con | H2[18]O_l | 2 | l&lt;br /&gt;
readTracersFiles: 17 | 10 | 10 | H2[18]O_s_con | H2[18]O_s | 2 | s&lt;br /&gt;
readTracersFiles: 18 | 10 | 10 | H2[18]O_g_oce | H2[18]O_g | 2 | g&lt;br /&gt;
readTracersFiles: 19 | 10 | 10 | H2[18]O_l_oce | H2[18]O_l | 2 | l&lt;br /&gt;
readTracersFiles: 20 | 10 | 10 | H2[18]O_s_oce | H2[18]O_s | 2 | s&lt;br /&gt;
readTracersFiles: 21 | 10 | 10 | H[2]HO_g_con | H[2]HO_g | 2 | g&lt;br /&gt;
readTracersFiles: 22 | 10 | 10 | H[2]HO_l_con | H[2]HO_l | 2 | l&lt;br /&gt;
readTracersFiles: 23 | 10 | 10 | H[2]HO_s_con | H[2]HO_s | 2 | s&lt;br /&gt;
readTracersFiles: 24 | 10 | 10 | H[2]HO_g_oce | H[2]HO_g | 2 | g&lt;br /&gt;
readTracersFiles: 25 | 10 | 10 | H[2]HO_l_oce | H[2]HO_l | 2 | l&lt;br /&gt;
readTracersFiles: 26 | 10 | 10 | H[2]HO_s_oce | H[2]HO_s | 2 | s&lt;br /&gt;
readTracersFiles: 27 | 10 | 10 | H2[16]O_g_con | H2[16]O_g | 2 | g&lt;br /&gt;
readTracersFiles: 28 | 10 | 10 | H2[16]O_l_con | H2[16]O_l | 2 | l&lt;br /&gt;
readTracersFiles: 29 | 10 | 10 | H2[16]O_s_con | H2[16]O_s | 2 | s&lt;br /&gt;
readTracersFiles: 30 | 10 | 10 | H2[16]O_g_oce | H2[16]O_g | 2 | g&lt;br /&gt;
readTracersFiles: 31 | 10 | 10 | H2[16]O_l_oce | H2[16]O_l | 2 | l&lt;br /&gt;
readTracersFiles: 32 | 10 | 10 | H2[16]O_s_oce | H2[16]O_s | 2 | s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
03/01/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_tracer.def_input_file&amp;diff=294</id>
		<title>WhatIs: The tracer.def input file</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_tracer.def_input_file&amp;diff=294"/>
				<updated>2023-01-03T08:14:22Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The tracer.def input file ==&lt;br /&gt;
This file contains information on the tracers that will be advected in the dynamics. It should be used instead of the now depreciated [[WhatIs: The traceur.def input file|traceur.def]] input file.&lt;br /&gt;
&lt;br /&gt;
== Simple example of a ''tracer.def'' file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;version=1.0&lt;br /&gt;
&amp;amp;lmdz&lt;br /&gt;
default    type=tracer  phases=g    hadv=10   vadv=10   parent=air&lt;br /&gt;
H2O                                 hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=ls&lt;br /&gt;
Aga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The mandatory first line ''&amp;amp;version'' is there to handle (potential) versioning of these file and their format&lt;br /&gt;
* The mandatory second line ''&amp;amp;lmdz'' is there to specify the scope of the following lines, i.e. that all that follow is relevant for the LMDZ lon-lat dynamical core.&lt;br /&gt;
* The mandatory third line starting with ''default'' specifies the default attributes for all the tracers. In this example that they are of type ''tracer'' (as opposed to type ''tag'' for tagging), that there phase is ''g'' (gas), that they are advected using advection schemes hadv and vadv ''10'' (Van Leer advection scheme) and that their parent (i.e. carrier fluid) is ''air''.&lt;br /&gt;
* Then one should specify on successive lines the tracer names and optionally their properties such as phases (g: gas, l: liquid, s:solid). Note that one may condense information about phases using a mix of letters g/l/s rather than specifying the information for each on a separate line. In practice the lines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H2O                                 hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From the example above which specifies there are 3 H2O phases (gas, liquid and solid), where the gas phase is advected with the hadv and vadv ''14'' dedicated scheme could also be written more explicitly as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H2O                     phases=g    hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=l&lt;br /&gt;
H2O                     phases=s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A more advanced example of a ''tracer.def file'' ==&lt;br /&gt;
The following example includes water isotopes (identified by the fact that their ''parent'' is not ''air'' but the tracer ''H2O'')&lt;br /&gt;
with two tags (''con'' and ''oce'')&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;version=1.0&lt;br /&gt;
&amp;amp;lmdz&lt;br /&gt;
default hadv=10 vadv=10 phases=g parent=air type=tracer&lt;br /&gt;
H2O hadv=14 vadv=14&lt;br /&gt;
H2O phases=ls&lt;br /&gt;
RN,PB&lt;br /&gt;
H2[18]O,H[2]HO,H2[16]O phases=gls parent=H2O&lt;br /&gt;
con,oce phases=gls parent=H2[18]O,H[2]HO,H2[16]O type=tag&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
03/01/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_traceur.def_input_file&amp;diff=293</id>
		<title>WhatIs: The traceur.def input file</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_traceur.def_input_file&amp;diff=293"/>
				<updated>2023-01-03T08:08:04Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The traceur.def input file tells LMDZ about the tracers to advect ==&lt;br /&gt;
&lt;br /&gt;
The traceur.def is a plain text file that is read at run time by LMDZ. Its format is quite strict:&lt;br /&gt;
&lt;br /&gt;
* The first line contains the number n of tracers to advect in the dynamics&lt;br /&gt;
* The n following lines contain the following set ( two integer numbers and a string): hadv , vadv, tname . hadv and vadv are traceur advection scheme numbers and tname is the tracer name&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
'''Tracer advection schemes'''&lt;br /&gt;
&lt;br /&gt;
A few are coded, but not for the parallel case, so we only present the important (i.e. operational) ones here:&lt;br /&gt;
&lt;br /&gt;
* 0 : no advection. This tracer will not be advected by the dynamics&lt;br /&gt;
* 10: advection using a Van Leer scheme. This is the standard advection scheme to use for tracers.&lt;br /&gt;
* 14: a specific advection scheme for the water vapor tracer (i.e. &amp;quot;H2Ov&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
'''Illustrative example'''&lt;br /&gt;
&lt;br /&gt;
In practice a &amp;quot;traceur.def&amp;quot; file will look like this:&lt;br /&gt;
&lt;br /&gt;
 4&lt;br /&gt;
 14 14 H2Ov&lt;br /&gt;
 10 10 H2Ol&lt;br /&gt;
 10 10 H2Oi&lt;br /&gt;
 00 00 Aga&lt;br /&gt;
&lt;br /&gt;
In this example, there are 4 tracers, the first one is &amp;quot;H2Ov&amp;quot; (water vapor) and advected using scheme number 14, the second and third are &amp;quot;H2Ol&amp;quot; (liquid water) and &amp;quot;H2Oi&amp;quot; (water ice), and the last is called &amp;quot;Aga&amp;quot; and completely passive (i.e. untouched by the dynamics).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The tracer.def input file ==&lt;br /&gt;
Note that the use of a '''traceur.def''' file as described above is now depreciated (but should still work fine as the code is retro-compatible) and that it is recommended to now use a '''tracer.def''' as described [[WhatIs: The tracer.def input file|here]].&lt;br /&gt;
&lt;br /&gt;
03/01/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_tracer.def_input_file&amp;diff=292</id>
		<title>WhatIs: The tracer.def input file</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_tracer.def_input_file&amp;diff=292"/>
				<updated>2023-01-03T08:07:52Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « == The tracer.def input file == This file contains information on the tracers that will be advected in the dynamics. It should be used instead of the now depreciated Wha... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The tracer.def input file ==&lt;br /&gt;
This file contains information on the tracers that will be advected in the dynamics. It should be used instead of the now depreciated [[WhatIs: The traceur.def input file|traceur.def]] input file.&lt;br /&gt;
&lt;br /&gt;
== Simple example of a ''tracer.def'' file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;version=1.0&lt;br /&gt;
&amp;amp;lmdz&lt;br /&gt;
default    type=tracer  phases=g    hadv=10   vadv=10   parent=air&lt;br /&gt;
H2O                                 hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=ls&lt;br /&gt;
Aga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The mandatory first line ''&amp;amp;version'' is there to handle (potential) versioning of these file and their format&lt;br /&gt;
* The mandatory second line ''&amp;amp;lmdz'' is there to specify the scope of the following lines, i.e. that all that follow is relevant for the LMDZ lon-lat dynamical core.&lt;br /&gt;
* The mandatory third line starting with ''default'' specifies the default attributes for all the tracers. In this example that they are of type ''tracer'' (as opposed to type ''tag'' for tagging), that there phase is ''g'' (gas), that they are advected using advection schemes hadv and vadv ''10'' (Van Leer advection scheme) and that their parent (i.e. carrier fluid) is ''air''.&lt;br /&gt;
* Then one should specify on successive lines the tracer names and optionally their properties such as phases (g: gas, l: liquid, s:solid). Note that one may condense information about phases using a mix of letters g/l/s rather than specifying the information for each on a separate line. In practice the lines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H2O                                 hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From the example above which specifies there are 3 H2O phases (gas, liquid and solid), where the gas phase is advected with the hadv and vadv ''14'' dedicated scheme could also be written more explicitly as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H2O                     phases=g    hadv=14   vadv=14&lt;br /&gt;
H2O                     phases=l&lt;br /&gt;
H2O                     phases=s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A more advanced example of a ''tracer.def file'' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
03/01/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_traceur.def_input_file&amp;diff=291</id>
		<title>WhatIs: The traceur.def input file</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_traceur.def_input_file&amp;diff=291"/>
				<updated>2023-01-03T07:24:58Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The traceur.def input file tells LMDZ about the tracers to advect ==&lt;br /&gt;
&lt;br /&gt;
The traceur.def is a plain text file that is read at run time by LMDZ. Its format is quite strict:&lt;br /&gt;
&lt;br /&gt;
* The first line contains the number n of tracers to advect in the dynamics&lt;br /&gt;
* The n following lines contain the following set ( two integer numbers and a string): hadv , vadv, tname . hadv and vadv are traceur advection scheme numbers and tname is the tracer name&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
'''Tracer advection schemes'''&lt;br /&gt;
&lt;br /&gt;
A few are coded, but not for the parallel case, so we only present the important (i.e. operational) ones here:&lt;br /&gt;
&lt;br /&gt;
* 0 : no advection. This tracer will not be advected by the dynamics&lt;br /&gt;
* 10: advection using a Van Leer scheme. This is the standard advection scheme to use for tracers.&lt;br /&gt;
* 14: a specific advection scheme for the water vapor tracer (i.e. &amp;quot;H2Ov&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
'''Illustrative example'''&lt;br /&gt;
&lt;br /&gt;
In practice a &amp;quot;traceur.def&amp;quot; file will look like this:&lt;br /&gt;
&lt;br /&gt;
 4&lt;br /&gt;
 14 14 H2Ov&lt;br /&gt;
 10 10 H2Ol&lt;br /&gt;
 10 10 H2Oi&lt;br /&gt;
 00 00 Aga&lt;br /&gt;
&lt;br /&gt;
In this example, there are 4 tracers, the first one is &amp;quot;H2Ov&amp;quot; (water vapor) and advected using scheme number 14, the second and third are &amp;quot;H2Ol&amp;quot; (liquid water) and &amp;quot;H2Oi&amp;quot; (water ice), and the last is called &amp;quot;Aga&amp;quot; and completely passive (i.e. untouched by the dynamics).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The tracer.def input file ==&lt;br /&gt;
Note that the use of a '''traceur.def''' file as described above is now depreciated (but should still work fine as the code is retro-compatible) and that it is recommended to now use a '''tracer.def''' as described here.&lt;br /&gt;
&lt;br /&gt;
03/01/2023&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=LMDZ_zoom_parameters&amp;diff=276</id>
		<title>LMDZ zoom parameters</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=LMDZ_zoom_parameters&amp;diff=276"/>
				<updated>2022-10-10T09:54:03Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;quot;Z&amp;quot; in LMDZ stands for &amp;quot;Zoom&amp;quot;.&lt;br /&gt;
This is because it is possible to define, instead of a regular longitude-latitude grid, a grid with varying mesh sizes along longitudes and latitudes.&lt;br /&gt;
&lt;br /&gt;
== Zoom parameters ==&lt;br /&gt;
In practice one defines a &amp;quot;zoomed region&amp;quot; of interest where the resolution will be highest (and homogeneous), whereas outside this region the resolution will be low (and also homogeneous, apart from a transition region between the two). This is achieved by specifying the following parameters (usually in gcm.def):&lt;br /&gt;
* The zoom center coordinates (in degrees), ''clon'' and ''clat''&lt;br /&gt;
* The zoom factor along longitude(x)/latitude(y) directions, ''grossismx'' and ''grossismy''. These ratio represent the ratio between meshes in the zoomed region versus meshes far outside of it. &lt;br /&gt;
* The fraction of the zoomed region (i.e. relative to the whole planet which is 360° in longitude and 180° in latitude) along longitude (x) and latitude (y), ''dzoomx'' and ''dzoomy''. In practice the extension in longitude and latitude of the zoomed region will thus be of dzoomx*360° in longitude and dzoomy*180° in latitude&lt;br /&gt;
* The steepness of the mesh transition between the inner zoom and outer meshes, ''taux'' and ''tauy''. Typically one should avoid a too sharp transition; tau ~3 is a typically maximum value if running without nudging; with strong nudging harsher transitions, e.g. tau~8 or even 10 can also work.&lt;br /&gt;
* It is advised to target, by adjusting number of points along longitude and latitude, to have something close to a &amp;quot;square&amp;quot; mesh (i.e. same extension, in degrees, along longitudes and latitudes) in the inner zoomed area.&lt;br /&gt;
&lt;br /&gt;
== Choosing an adequate time step for a zoomed simulation ==&lt;br /&gt;
The rule of thumb, starting from a &amp;quot;day_step&amp;quot; value that works for a given regular (non-zoomed) grid:&lt;br /&gt;
 day_step(zoom) ~ day_step(regular)*max(grossismx,grossismy)&lt;br /&gt;
&lt;br /&gt;
It is also advised to check what others users have successfully used, see e.g. [[LMDZ_zoom_collection]]&lt;br /&gt;
&lt;br /&gt;
24/11/2021&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Zoom]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=275</id>
		<title>Some pointers about standalone installation of LMDZ</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_LMDZ&amp;diff=275"/>
				<updated>2022-08-05T13:30:15Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing LMDZ6  == Prerequisites == In the most minimal case, where one would only run the serial version o... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing LMDZ6&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
In the most minimal case, where one would only run the serial version of the GCM, then the prerequisites are:&lt;br /&gt;
# Have a Fortran compiler at hand&lt;br /&gt;
# Have a NetCDF library (compiled with the same compiler) available&lt;br /&gt;
# Have the IOIPSL library available (see [[Some pointers about standalone installation of the IOIPSL library|this page]] for more about installing IOIPSL)&lt;br /&gt;
&lt;br /&gt;
In a more realistic case, you'll probably want to run the parallel version of the GCM, most likely with XIOS; The prerequisites are then:&lt;br /&gt;
# Have a Fortran-enabled MPI library at hand&lt;br /&gt;
# A NetCDF4-HDF5 library, preferably compiled with MPI enabled&lt;br /&gt;
# Have the IOIPSL library available&lt;br /&gt;
# Have the XIOS library available (see [[Some pointers about standalone installation of the XIOS library|this page]] for more about installing XIOS)&lt;br /&gt;
&lt;br /&gt;
== Downloading LMDZ6 source code ==&lt;br /&gt;
This is easily done using svn (subversion). To download the latest version from the trunk as an &amp;quot;LMDZ6&amp;quot; directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
svn checkout http://svn.lmd.jussieu.fr/LMDZ/LMDZ6/trunk LMDZ6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that the recommended way to proceed is to have all models and libraries at the same level in a master directory, so a working example would be where the master directory contents would be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IOIPSL  LMDZ6  XIOS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compile LMDZ one would then proceed to the LMDZ6 subdirectory, make some adequate [[WhatIs: The target architecture (&amp;quot;arch&amp;quot;) files|architecture files]] (if needed) and use the [[WhatIs: The makelmdz fcm script|makelmdz_fcm.sh]] script&lt;br /&gt;
&lt;br /&gt;
05/08/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_XIOS_library&amp;diff=274</id>
		<title>Some pointers about standalone installation of the XIOS library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_XIOS_library&amp;diff=274"/>
				<updated>2022-08-05T12:12:10Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing the XIOS library, as this step is automated in the install_lmdz.sh script (if run with the ''-xios... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing the XIOS library, as this step is automated in the install_lmdz.sh script (if run with the ''-xios'' option). Note also that the download and installation by install_lmdz.sh is done via the use of a dedicated &amp;quot;install_xios.bash&amp;quot; script available here: https://web.lmd.jussieu.fr/~lmdz/pub/import/install_xios.bash , which could also be used in a standalone installation (run ''install_xios.bash -h'' and/or inspect the script).&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
There are a couple of prerequisites to installing and using the XIOS library:&lt;br /&gt;
# An MPI library must be available&lt;br /&gt;
# A NetCDF4-HDF5 library, preferably compiled with MPI enabled, must be available&lt;br /&gt;
The rest of this page assume all prerequisites are met. People interested in building an appropriate NetCDF library on their Linux machine might be interested in the following installation script: https://web.lmd.jussieu.fr/~lmdz/pub/import/install_netcdf4_hdf5.bash (which might need some adaptations to work in your specific case).&lt;br /&gt;
&lt;br /&gt;
== Downloading and compiling the XIOS library ==&lt;br /&gt;
The XIOS source code is available for download using svn (subversion), e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* To compile the library, one must first have adequate architecture &amp;quot;arch&amp;quot; files at hand, just like for the GCM (see the [[WhatIs:_The_target_architecture_(&amp;quot;arch&amp;quot;)_files|page about these)]]). In principle both ''arch.env'' and ''arch.path'' files could be the same as for the GCM; ''arch.fcm'' will of course differ, as XIOS source code is in C++ (along with a Fortran interface). If using a &amp;quot;known&amp;quot; machine (e.g. Occigen, Irene-Rome, Ciclad) then ready-to-use up-to-date arch files for that machine should be present in the ''arch'' directory. If not you will have to create your own (it is advised to use the existing ones as templates!)&lt;br /&gt;
* Assuming ''some_machine'' arch files (i.e. files ''arch-some_machine.env'', ''arch-some_machine.path'', ''arch-some_machine.fcm'') are present in the '''arch''' subdirectory, compiling the XIOS is done using the dedicated ''make_xios'' script, e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./make_xios --prod --arch some_machine --job 8 &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If the compilation steps went well then the '''lib''' directory should contain file ''libxios.a'' and the '''bin''' directory should contain&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fcm_env.ksh  generic_testcase.exe  xios_server.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling LMDZ6 with the XIOS library ==&lt;br /&gt;
To compile with XIOS enabled, one must specify the option&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 -io xios&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
to the [[WhatIs: The makelmdz fcm script|makelmdz_fcm]] script.&lt;br /&gt;
&lt;br /&gt;
05/08/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:Xios]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Available_(bench)_test_cases&amp;diff=273</id>
		<title>Available (bench) test cases</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Available_(bench)_test_cases&amp;diff=273"/>
				<updated>2022-08-05T10:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « Test cases (or &amp;quot;bench&amp;quot; cases) are sets of initial conditions and input files that a user can download and use &amp;quot;out of the box&amp;quot;, usually to test that his/her installation o... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test cases (or &amp;quot;bench&amp;quot; cases) are sets of initial conditions and input files that a user can download and use &amp;quot;out of the box&amp;quot;, usually to test that his/her installation of LMDZ6 is fine.&lt;br /&gt;
&lt;br /&gt;
== Obtaining test (bench) cases ==&lt;br /&gt;
If using the [[WhatIs:_The_install_lmdz.sh_script|install_lmdz.sh script]], then a default (assuming script was run with &amp;quot;-bench 1&amp;quot;) 32x32x39 case is downloaded (file ''bench_lmdz_32x32x39.tar.gz'') and used. One has to manually change the&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
grid_resolution=32x32x39&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
variable in the script (before running it) to pick a different reference case (assuming it is available, see below)&lt;br /&gt;
&lt;br /&gt;
== Downloading test (bench) case ==&lt;br /&gt;
To download one of the test cases, simply head for https://web.lmd.jussieu.fr/~lmdz/pub/3DBenchs where you will find .tar.gz files for various GCM resolution and setups. Check out file '''000_Readme''' for more information.&lt;br /&gt;
&lt;br /&gt;
05/08/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_IOIPSL_library&amp;diff=272</id>
		<title>Some pointers about standalone installation of the IOIPSL library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_IOIPSL_library&amp;diff=272"/>
				<updated>2022-08-05T07:20:37Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing the IOIPSL library.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
IOIPSL is written in Fortran, so you need to have a Fortran compiler at hand (gfortran in the following examples), as well as an available NetCDF library compiled using that same compiler.&lt;br /&gt;
&lt;br /&gt;
One of the IOIPSL install scripts uses ksh (Korn Shell), which is not always available (Bash, Bourne Again Shell, is now the standard). So you might want to first install it, e.g. on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If that is not an option (e.g. you do not have super-user privileges to install ksh) the you will need to manually modify a file (see section &amp;quot;Know problems and issues worth knowing about&amp;quot; below)&lt;br /&gt;
&lt;br /&gt;
=== Downloading the IOIPSL library sources ===&lt;br /&gt;
One can do this using svn (subversion):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout --username icmc_users --password icmc2022 https://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
where the trailing argument ''IOIPSL'' is customizable to whatever (non existing) subdirectory name one wants to have the library put in.&lt;br /&gt;
As of April 2022 the IOIPSL distribution requires username/password authentification (not a big issue as a this does not require any specific registration step as the generic username/password given in the svn command line above can be used). &lt;br /&gt;
&lt;br /&gt;
=== The makeioipsl_fcm compilation script and related FCM architecture files ===&lt;br /&gt;
The main script to compile the library is '''makeioipsl_fcm''', located in the distribution's top directory. It uses FCM (Flexible Configuration Management) to know about specific configuration options and set-up and thus requires (just like the GCM) appropriate ''architecture files'' (check out the [[WhatIs:_The_target_architecture_(&amp;quot;arch&amp;quot;)_files|page about these)]]. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice one must thus create these ASCII text files in the '''arch/''' subdirectory. The naming convention is rather straightforward, when the script '''makeioipsl_fcm''' is run with the option '''-arch somename''', it will look for files '''arch/arch-somename.env''', '''arch/arch-somename.path''' and '''arch/arch-somename.fcm'''.&lt;br /&gt;
&lt;br /&gt;
You will most likely use the IOIPSL with LMDZ6. In that case it is recommended to use the same set of architecture files to compile IOIPSL and the GCM.&lt;br /&gt;
&lt;br /&gt;
== Building the IOIPSL library ==&lt;br /&gt;
Building the IOIPSL library then merely requires running the '''makeioipsl_fcm''' with the adequate mandatory '''-arch''' option (note that one can learn about all the possible options by running '''./makeioipsl_fcm -h'''), e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makeioipsl_fcm -arch gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking that the install was successful ===&lt;br /&gt;
If the previous step went well the '''IOIPSL/lib''' directory should contain the library:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
libioipsl.a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The '''IOIPSL/inc''' directory should contain the following module files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
calendar.mod   flincom.mod   histcom.mod  restcom.mod&lt;br /&gt;
defprec.mod    fliocom.mod   ioipsl.mod   stringop.mod&lt;br /&gt;
errioipsl.mod  getincom.mod  mathelp.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And the '''IOIPSL/bin''' directory should contain the ''rebuild'' utility:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flio_rbld  rebuild&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Congratulations! You can now use the IOIPSL library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Know problems and issues worth knowing about ==&lt;br /&gt;
* ksh is needed to compile &amp;quot;out of the box&amp;quot;; if ksh is not available then the workaround is to replace line&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
in the '''IOIPSL/ins_m_prec''' file prior to running the makeioipsl_fcm script.&lt;br /&gt;
* Recent versions of the IOIPSL fails to work properly if compiled by gfortran version 4.8.5 (see e.g. https://trac.lmd.jussieu.fr/Planeto/ticket/62 ) but works fine with more recent versions of the compiler (tested with versions 7.2+)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
05/08/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_IOIPSL_library&amp;diff=271</id>
		<title>Some pointers about standalone installation of the IOIPSL library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_IOIPSL_library&amp;diff=271"/>
				<updated>2022-08-05T07:18:16Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing the IOIPSL library.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
IOIPSL is written in Fortran, so you need to have a Fortran compiler at hand (gfortran in the following examples), as well as an available NetCDF library compiled using that same compiler.&lt;br /&gt;
&lt;br /&gt;
One of the IOIPSL install scripts uses ksh (Korn Shell), which is not always available (Bash, Bourne Again Shell, is now the standard). So you might want to first install it, e.g. on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If that is not an option (e.g. you do not have super-user privileges to install ksh) the you will need to manually modify a file (see section &amp;quot;Know problems and issues worth knowing about&amp;quot; below)&lt;br /&gt;
&lt;br /&gt;
=== Downloading the IOIPSL library sources ===&lt;br /&gt;
One can do this using svn (subversion):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout --username icmc_users --password icmc2022 https://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
where the trailing argument ''IOIPSL'' is customizable to whatever (non existing) subdirectory name one wants to have the library put in.&lt;br /&gt;
As of April 2022 the IOIPSL distribution requires username/password authentification (not a big issue as a this does not require any specific registration step as the generic username/password given in the svn command line above can be used). &lt;br /&gt;
&lt;br /&gt;
=== The makeioipsl_fcm compilation script and related FCM architecture files ===&lt;br /&gt;
The main script to compile the library is '''makeioipsl_fcm''', located in the distribution's top directory. It uses FCM (Flexible Configuration Management) to know about specific configuration options and set-up and thus requires (just like the GCM) appropriate ''architecture files'' (see [[WhatIs:_The_target_architecture_(&amp;quot;arch&amp;quot;)_files]]. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice one must thus create these ASCII text files in the '''arch/''' subdirectory. The naming convention is rather straightforward, when the script '''makeioipsl_fcm''' is run with the option '''-arch somename''', it will look for files '''arch/arch-somename.env''', '''arch/arch-somename.path''' and '''arch/arch-somename.fcm'''.&lt;br /&gt;
&lt;br /&gt;
You will most likely use the IOIPSL with LMDZ6. In that case it is recommended to use the same set of architecture files to compile IOIPSL and the GCM.&lt;br /&gt;
&lt;br /&gt;
== Building the IOIPSL library ==&lt;br /&gt;
Building the IOIPSL library then merely requires running the '''makeioipsl_fcm''' with the adequate mandatory '''-arch''' option (note that one can learn about all the possible options by running '''./makeioipsl_fcm -h'''), e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makeioipsl_fcm -arch gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking that the install was successful ===&lt;br /&gt;
If the previous step went well the '''IOIPSL/lib''' directory should contain the library:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
libioipsl.a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The '''IOIPSL/inc''' directory should contain the following module files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
calendar.mod   flincom.mod   histcom.mod  restcom.mod&lt;br /&gt;
defprec.mod    fliocom.mod   ioipsl.mod   stringop.mod&lt;br /&gt;
errioipsl.mod  getincom.mod  mathelp.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And the '''IOIPSL/bin''' directory should contain the ''rebuild'' utility:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flio_rbld  rebuild&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Congratulations! You can now use the IOIPSL library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Know problems and issues worth knowing about ==&lt;br /&gt;
* ksh is needed to compile &amp;quot;out of the box&amp;quot;; if ksh is not available then the workaround is to replace line&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
in the '''IOIPSL/ins_m_prec''' file prior to running the makeioipsl_fcm script.&lt;br /&gt;
* Recent versions of the IOIPSL fails to work properly if compiled by gfortran version 4.8.5 (see e.g. https://trac.lmd.jussieu.fr/Planeto/ticket/62 ) but works fine with more recent versions of the compiler (tested with versions 7.2+)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
05/08/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_IOIPSL_library&amp;diff=270</id>
		<title>Some pointers about standalone installation of the IOIPSL library</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Some_pointers_about_standalone_installation_of_the_IOIPSL_library&amp;diff=270"/>
				<updated>2022-08-05T07:13:55Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing the IOIPSL library.  == Prerequisites == IOIPSL is written in Fortran, so you need to have a Fortr... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is mostly for &amp;quot;do-it-yourself&amp;quot; people interested in installing the IOIPSL library.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
IOIPSL is written in Fortran, so you need to have a Fortran compiler at hand (gfortran in the following examples), as well as an available NetCDF library compiled using that same compiler.&lt;br /&gt;
&lt;br /&gt;
One of the IOIPSL install scripts uses ksh (Korn Shell), which is not always available (Bash, Bourne Again Shell, is now the standard). So you might want to first install it, e.g. on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If that is not an option (e.g. you do not have super-user privileges to install ksh) the you will need to manually modify a file (see section &amp;quot;Know problems and issues worth knowing about&amp;quot; below)&lt;br /&gt;
&lt;br /&gt;
=== Downloading the IOIPSL library sources ===&lt;br /&gt;
One can do this using svn (subversion):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout --username icmc_users --password icmc2022 https://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
where the trailing argument ''IOIPSL'' is customizable to whatever (non existing) subdirectory name one wants to have the library put in.&lt;br /&gt;
As of April 2022 the IOIPSL distribution requires username/password authentification (not a big issue as a this does not require any specific registration step as the generic username/password given in the svn command line above can be used). &lt;br /&gt;
&lt;br /&gt;
=== The makeioipsl_fcm compilation script and related FCM architecture files ===&lt;br /&gt;
The main script to compile the library is '''makeioipsl_fcm''', located in the distribution's top directory. It uses FCM (Flexible Configuration Management) to know about specific configuration options and set-up and thus requires (just like the GCM) appropriate ''architecture files'' (see [[WhatIs:_The_target_architecture_(&amp;quot;arch&amp;quot;)_files]]. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice one must thus create these ASCII text files in the '''arch/''' subdirectory. The naming convention is rather straightforward, when the script '''makeioipsl_fcm''' is run with the option '''-arch somename''', it will look for files '''arch/arch-somename.env''', '''arch/arch-somename.path''' and '''arch/arch-somename.fcm'''.&lt;br /&gt;
&lt;br /&gt;
You will most likely use the IOIPSL with LMDZ6. In that case it is recommended to use the same set of architecture files to compile IOIPSL and the GCM.&lt;br /&gt;
&lt;br /&gt;
== Building the IOIPSL library ==&lt;br /&gt;
Building the IOIPSL library then merely requires running the '''makeioipsl_fcm''' with the adequate mandatory '''-arch''' option (note that one can learn about all the possible options by running '''./makeioipsl_fcm -h'''), e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makeioipsl_fcm -arch gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking that the install was successful ===&lt;br /&gt;
If the previous step went well the '''IOIPSL/lib''' directory should contain the library:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
libioipsl.a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the '''IOIPSL/inc''' directory should contain the following module files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
calendar.mod   flincom.mod   histcom.mod  restcom.mod&lt;br /&gt;
defprec.mod    fliocom.mod   ioipsl.mod   stringop.mod&lt;br /&gt;
errioipsl.mod  getincom.mod  mathelp.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Congratulations! You can now use the IOIPSL library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Know problems and issues worth knowing about ==&lt;br /&gt;
* ksh is needed to compile &amp;quot;out of the box&amp;quot;; if ksh is not available then the workaround is to replace line&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
in the '''IOIPSL/ins_m_prec''' file prior to running the makeioipsl_fcm script.&lt;br /&gt;
* Recent versions of the IOIPSL fails to work properly if compiled by gfortran version 4.8.5 (see e.g. https://trac.lmd.jussieu.fr/Planeto/ticket/62 ) but works fine with more recent versions of the compiler (tested with versions 7.2+)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
05/08/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Radiative_transfer_schemes&amp;diff=269</id>
		<title>Radiative transfer schemes</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Radiative_transfer_schemes&amp;diff=269"/>
				<updated>2022-07-05T15:30:08Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different radiative schemes that can be used in LMDZ:&lt;br /&gt;
&lt;br /&gt;
* the &amp;quot;legacy&amp;quot; (oldest) radiative scheme: always available. May be selected using the '''iflag_rrtm=0''' option in physiq.def. Note that this schemes also requires using 2 bands in the SW (Short Wave, i.e. visible wavelengths), i.e. setting '''NSW=2''' in physiq.def&lt;br /&gt;
* RRTM, selected with '''iflag_rrtm=1''' (and requiring that '''NSW=6'''), which will be available if the GCM was compiled with the '''-rad rrtm''' option (see  [[WhatIs: The makelmdz fcm script]]).&lt;br /&gt;
* ECRAD (implementation is ongoing at the time of writing this) , selected with '''iflag_rrtm=2''', which will be available if the GCM was compiled with the '''-rad ecrad''' option.&lt;br /&gt;
&lt;br /&gt;
05/07/2022&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Radiative_transfer_schemes&amp;diff=268</id>
		<title>Radiative transfer schemes</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Radiative_transfer_schemes&amp;diff=268"/>
				<updated>2022-07-05T15:28:33Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « There are different radiative schemes that can be used in LMDZ:  * the &amp;quot;legacy&amp;quot; (oldest) radiative scheme: always available. May be selected using the '''iflag_rrtm=0''' o... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different radiative schemes that can be used in LMDZ:&lt;br /&gt;
&lt;br /&gt;
* the &amp;quot;legacy&amp;quot; (oldest) radiative scheme: always available. May be selected using the '''iflag_rrtm=0''' option in physiq.def. Note that this schemes also requires using 2 bands in the SW (Short Wave, i.e. visible wavelengths), i.e. setting '''NSW=2''' in physiq.def&lt;br /&gt;
* RRTM, selected with '''iflag_rrtm=1''' (and requiring that '''NSW=6'''), which will be available if the GCM was compiled with the '''-rad rrtm''' option (see  [[WhatIs: The makelmdz fcm script]] )&lt;br /&gt;
* ECRAD (implementation is ongoing at the time of writing this) , selected with '''iflag_rrtm=2''', which will be available if the GCM was compiled with the '''-rad ecrad''' option&lt;br /&gt;
&lt;br /&gt;
05/07/2022&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=HowTo:_Hard_code_the_path_to_a_dynamic_library_in_the_executable&amp;diff=267</id>
		<title>HowTo: Hard code the path to a dynamic library in the executable</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=HowTo:_Hard_code_the_path_to_a_dynamic_library_in_the_executable&amp;diff=267"/>
				<updated>2022-07-05T14:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you don't want to use the LD_LIBRARY_PATH environment variable (this is however the recommended way to proceed) to let your executable know where to find needed dynamic libraries (*.so shared object libraries), you can hard code the paths at compile (linking) time, with the &amp;lt;code&amp;gt;-Wl,rpath=&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
== general illustrative example ==&lt;br /&gt;
You want your executable to always first look for the needed library in /my/personal/stuff/lib and /some/other/place/lib , then compile with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-Wl,rpath=/my/personal/stuff/lib:/some/other/place/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The drawback of this method is that if the libraries are later moved to different locations, your executable won't know about it and probably abort with an error message of the likes of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;error while loading shared libraries: ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMDZ-specific example ==&lt;br /&gt;
Since compilation options are set in the [[WhatIs:_The_target_architecture_(&amp;quot;arch&amp;quot;)_files|arch.fcm]] file, this is where the option  &amp;lt;code&amp;gt;-Wl,rpath=...&amp;lt;/code&amp;gt; should be set, on the line starting with &amp;lt;code&amp;gt;%BASE_LD&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if one wants to hard code to look for personal netcdf libraries that are located in /my/personal/netcdf/lib:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;%BASE_LD -Wl,-rpath=/my/personal/netcdf/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not that '''it is generally not recommended''' to use this option as if later on the target library is moved to a different location then the executable won't work anymore... You have been warned.&lt;br /&gt;
&lt;br /&gt;
05/07/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_raz_date_parameter&amp;diff=266</id>
		<title>WhatIs: The raz date parameter</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_raz_date_parameter&amp;diff=266"/>
				<updated>2022-07-05T11:12:02Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''raz_date''' parameter is an integer flag (usually in the ''run.def'' file) which can be set to 0 (its default value) to let the model use the date read in the start.nc file as an initial date for the run (and thus technically continue time marching where it had left off at the previous simulation) or, if set to 1, reset the date manually.&lt;br /&gt;
&lt;br /&gt;
('''raz''' is French shorthand for &amp;quot;Remise à zéro&amp;quot;, i.e. reset to zero)&lt;br /&gt;
&lt;br /&gt;
If resetting the calendar with raz_date=1, then the user should also provide the following relevant information in ''run.def'':&lt;br /&gt;
* anneeref=... : calendar year (default=1998; why not? have to start somewhere...)&lt;br /&gt;
* dayref=... : day of the year at which the simulation starts (default=1; i.e. first day of the year)&lt;br /&gt;
* starttime=... : hour at which the simulation begins (default=0 ; i.e. midnight at longitude 0)&lt;br /&gt;
&lt;br /&gt;
05/07/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_raz_date_parameter&amp;diff=265</id>
		<title>WhatIs: The raz date parameter</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_raz_date_parameter&amp;diff=265"/>
				<updated>2022-07-05T11:10:35Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « The '''raz_date''' parameter is an integer flag (usually in the run.def file) which can be set to 0 (its default value) to let the model use the date read in the start.nc... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''raz_date''' parameter is an integer flag (usually in the run.def file) which can be set to 0 (its default value) to let the model use the date read in the start.nc file as an initial date for the run (and thus technically continue time marching where it had left off at the previous simulation) or, if set to 1 reset the date manually.&lt;br /&gt;
&lt;br /&gt;
('''raz''' is French shorthand for &amp;quot;Remise à zéro&amp;quot;, i.e. reset to zero)&lt;br /&gt;
&lt;br /&gt;
If resetting the calendar with raz_date=1, then the user should also provide the following relevant information in ''run.def'':&lt;br /&gt;
* anneeref=... : calendar year (default=1998; why not? have to start somewhere...)&lt;br /&gt;
* dayref=... : day of the year at which the simulation starts (default=1; i.e. first day of the year)&lt;br /&gt;
* starttime=... : hour at which the simulation begins (default=0 ; i.e. midnight at longitude 0)&lt;br /&gt;
&lt;br /&gt;
05/07/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Calendars&amp;diff=264</id>
		<title>Calendars</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Calendars&amp;diff=264"/>
				<updated>2022-07-05T11:10:23Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LMDZ can run using various calendars.&lt;br /&gt;
&lt;br /&gt;
The choice of calendar is set using the ''calend'' parameter (string) in the ''run.def'' file, which may be set to:&lt;br /&gt;
* calend=earth_360d (default value if ''calend'' is not set) : years of 360 days (12 months of 30 days each)&lt;br /&gt;
* calend=earth_365d : years of 365 days (12 months of varying length; 28 days in February every year)&lt;br /&gt;
* calend=earth_366d : real gregorian year of 365 or 366 days with leap years&lt;br /&gt;
* calend=gregorian : same as earth_366d&lt;br /&gt;
&lt;br /&gt;
The default behavior of the model is to use the date read in the start.nc file as an initial date for the run (and thus technically continue time marching where it had left off at the previous simulation). But the user may reset the date via the following flag:&lt;br /&gt;
* raz_date=1 (default is 0, i.e. no calendar reset, continue from date read in the start file) : reset the calendar&lt;br /&gt;
&lt;br /&gt;
If resetting the calendar then the user should also provide in ''run.def'' :&lt;br /&gt;
* anneeref=... : calendar year (default=1998; why not? have to start somewhere...)&lt;br /&gt;
* dayref=... : day of the year at which the simulation starts (default=1; i.e. first day of the year)&lt;br /&gt;
* starttime=... : hour at which the simulation begins (default=0 ; i.e. midnight at longitude 0)&lt;br /&gt;
&lt;br /&gt;
03/12/2021&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Cat%C3%A9gorie:Nudging&amp;diff=249</id>
		<title>Catégorie:Nudging</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Cat%C3%A9gorie:Nudging&amp;diff=249"/>
				<updated>2022-05-16T10:13:11Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various pages about nudging in LMDZ&lt;br /&gt;
&lt;br /&gt;
See also the &amp;quot;Guidage&amp;quot; Category for French pages on this topic&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Cat%C3%A9gorie:Nudging&amp;diff=248</id>
		<title>Catégorie:Nudging</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Cat%C3%A9gorie:Nudging&amp;diff=248"/>
				<updated>2022-05-16T10:02:43Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : Page créée avec « Various pages about nudging in LMDZ »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various pages about nudging in LMDZ&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Nudging_in_LMDZ&amp;diff=247</id>
		<title>Nudging in LMDZ</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Nudging_in_LMDZ&amp;diff=247"/>
				<updated>2022-05-16T10:01:32Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The concept ==&lt;br /&gt;
''For indepth theoretical explanations, see this doc in French (dated 2009, some code détails are obsolete): https://lmdz.lmd.jussieu.fr/le-coin-des-developpeurs/notes-techniques/ressources/guidage_LMDZ.pdf''&lt;br /&gt;
 &lt;br /&gt;
Nudging is simply adding a forcing term to the GFD equation governing a variable $$V$$ to drive it towards a known value $$V_{analysis}$$ over a given time scale $$\tau$$:&lt;br /&gt;
\begin{align}&lt;br /&gt;
\frac{\partial V}{\partial t} = \frac{\partial V}{\partial t}_{GCM} + \frac{V_{analysis}-V}{\tau}&lt;br /&gt;
\end{align}&lt;br /&gt;
Where $$V$$ can be zonal wind u, meridional wind v, relative humidity Q, pressure P or temperature T&lt;br /&gt;
&lt;br /&gt;
Nudging is often used in conjunction with zoomed configurations, where strong nudging towards reanalyses in enforced outside the zoomed region.&lt;br /&gt;
&lt;br /&gt;
== Nudging parameters in LMDZ ==&lt;br /&gt;
The master parameter to turn nudging on is ''ok_guide'' (most often all nudging parameters are put in a '''guide.def''' file included in '''run.def''') which must be set to &amp;quot;y&amp;quot; (or equivalently &amp;quot;.true.&amp;quot;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ok_guide = y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(&amp;quot;guide&amp;quot; means &amp;quot;nudge&amp;quot; in French).&lt;br /&gt;
&lt;br /&gt;
Then one must select which fields will be nudged via the ''guide_*'' parameters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
guide_u=y&lt;br /&gt;
guide_v=y&lt;br /&gt;
guide_T=y&lt;br /&gt;
guide_P=n&lt;br /&gt;
guide_Q=n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the example above, nudging is done on horizontal winds (u,v) and on temperature (T) only.&lt;br /&gt;
&lt;br /&gt;
In addition, the user must provide two time scales $\tau$, for each of the nudged variables; one for the inner zoom area ''tau_max_*'' and another relative to outside the zoomed area ''tau_min_*''. These time scales are stated in unit of days, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tau_min_u= 0.0208333&lt;br /&gt;
tau_max_u= 10.&lt;br /&gt;
tau_min_v= 0.0208333&lt;br /&gt;
tau_max_v= 10.&lt;br /&gt;
tau_min_T= 0.0208333&lt;br /&gt;
tau_max_T= 10.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this example all 3 variables are nudged with a time scale of 10 days, i.e very loosely, within the zoomed region and a time scale of 30 minutes (30.*60/86400.= 0.0208333), i.e. very strongly, outside the zoomed region.&lt;br /&gt;
&lt;br /&gt;
== Nudging files ==&lt;br /&gt;
In addition to stating which variable is nudged and the related time scales, one must provide the fields towards which to nudge (these must be on the same grid as the simulation and must be created separately, e.g. using a re-interpolation of ERA-interim files). These files must be in the directory where LMDZ runs and must be called ''u.nc'', ''v.nc'', ''T.nc'', etc.&lt;br /&gt;
&lt;br /&gt;
== Nudging contribution output ==&lt;br /&gt;
One can request that the nudging term be stored in an output file, '''guide_ins.nc''' by setting (in guide.def):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
guide_sav=y&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
14/12/2021&lt;br /&gt;
[[Category:Nudging]]&lt;br /&gt;
[[Category:Guidage]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Nudging_in_LMDZ&amp;diff=246</id>
		<title>Nudging in LMDZ</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=Nudging_in_LMDZ&amp;diff=246"/>
				<updated>2022-05-16T09:58:08Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The concept ==&lt;br /&gt;
''For indepth theoretical explanations, see this doc in French (dated 2009, some code détails are obsolete): https://lmdz.lmd.jussieu.fr/le-coin-des-developpeurs/notes-techniques/ressources/guidage_LMDZ.pdf''&lt;br /&gt;
 &lt;br /&gt;
Nudging is simply adding a forcing term to the GFD equation governing a variable $$V$$ to drive it towards a known value $$V_{analysis}$$ over a given time scale $$\tau$$:&lt;br /&gt;
\begin{align}&lt;br /&gt;
\frac{\partial V}{\partial t} = \frac{\partial V}{\partial t}_{GCM} + \frac{V_{analysis}-V}{\tau}&lt;br /&gt;
\end{align}&lt;br /&gt;
Where $$V$$ can be zonal wind u, meridional wind v, relative humidity Q, pressure P or temperature T&lt;br /&gt;
&lt;br /&gt;
Nudging is often used in conjunction with zoomed configurations, where strong nudging towards reanalyses in enforced outside the zoomed region.&lt;br /&gt;
&lt;br /&gt;
== Nudging parameters in LMDZ ==&lt;br /&gt;
The master parameter to turn nudging on is ''ok_guide'' (most often all nudging parameters are put in a '''guide.def''' file included in '''run.def''') which must be set to &amp;quot;y&amp;quot; (or equivalently &amp;quot;.true.&amp;quot;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ok_guide = y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(&amp;quot;guide&amp;quot; means &amp;quot;nudge&amp;quot; in French).&lt;br /&gt;
&lt;br /&gt;
Then one must select which fields will be nudged via the ''guide_*'' parameters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
guide_u=y&lt;br /&gt;
guide_v=y&lt;br /&gt;
guide_T=y&lt;br /&gt;
guide_P=n&lt;br /&gt;
guide_Q=n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the example above, nudging is done on horizontal winds (u,v) and on temperature (T) only.&lt;br /&gt;
&lt;br /&gt;
In addition, the user must provide two time scales $\tau$, for each of the nudged variables; one for the inner zoom area ''tau_max_*'' and another relative to outside the zoomed area ''tau_min_*''. These time scales are stated in unit of days, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tau_min_u= 0.0208333&lt;br /&gt;
tau_max_u= 10.&lt;br /&gt;
tau_min_v= 0.0208333&lt;br /&gt;
tau_max_v= 10.&lt;br /&gt;
tau_min_T= 0.0208333&lt;br /&gt;
tau_max_T= 10.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this example all 3 variables are nudged with a time scale of 10 days, i.e very loosely, within the zoomed region and a time scale of 30 minutes (30.*60/86400.= 0.0208333), i.e. very strongly, outside the zoomed region.&lt;br /&gt;
&lt;br /&gt;
== Nudging files ==&lt;br /&gt;
In addition to stating which variable is nudged and the related time scales, one must provide the fields towards which to nudge (these must be on the same grid as the simulation and must be created separately, e.g. using a re-interpolation of ERA-interim files). These files must be in the directory where LMDZ runs and must be called ''u.nc'', ''v.nc'', ''T.nc'', etc.&lt;br /&gt;
&lt;br /&gt;
== Nudging contribution output ==&lt;br /&gt;
One can request that the nudging term be stored in an output file, '''guide_ins.nc''' by setting (in guide.def):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
guide_sav=y&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
14/12/2021&lt;br /&gt;
[[Category:Nudging|Guidage]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_sponge_layer&amp;diff=232</id>
		<title>The sponge layer</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=The_sponge_layer&amp;diff=232"/>
				<updated>2022-05-09T10:10:47Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== in a nutshell ==&lt;br /&gt;
The sponge layer is necessary to damp vertically propagating waves, which would otherwise non-physically be reflected downward from the model top.&lt;br /&gt;
In practice its application is thus limited to a few of the topmost layers (usually 4), with decreasing impact with decreasing altitudes.&lt;br /&gt;
The sponge layer is a relaxation of main variables (winds and/or potential temperature) towards a given value or their zonal mean along a given time scale.&lt;br /&gt;
&lt;br /&gt;
== Sponge layer parameters ==&lt;br /&gt;
The parameters controlling the sponge layer are in input file gcm.def (or sometimes in vert_L**.def as they are strongly linked to the vertical grid)&lt;br /&gt;
* iflag_top_bound (integer): 0 for no sponge, 1 for a sponge over the last 4 topmost layers, 2 to have a sponge layer extending over topmost layers down to a pressure which is 100 times that of the topmost layer's.&lt;br /&gt;
* mode_top_bound (integer): 0 for no relaxation, 1 to relax winds (u,v) to zero, 2 to relax winds (u,v) towards their zonal mean, 3 to relax winds (u,v) and potential temperature towards their zonal mean.&lt;br /&gt;
* tau_top_bound (real, Hz): inverse of the relaxation characteristic time scale at the topmost layer; which is then halved at each successive descending layer.&lt;br /&gt;
&lt;br /&gt;
== Application of the sponge ==&lt;br /&gt;
The sponge is applied right after dissipation at each dissipation step, but only if the flag '''ok_strato=y''' &lt;br /&gt;
&lt;br /&gt;
== Sponge routine ==&lt;br /&gt;
The sponge computations are done in routine '''dyn3d/top_bound.F''' (for the serial dynamical core; equivalently in '''dyn3dmem/top_bound_loc.F''' for the parallel dynamical core)&lt;br /&gt;
&lt;br /&gt;
09/05/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:inputs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_ok_strato_parameter&amp;diff=231</id>
		<title>WhatIs: The ok strato parameter</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_ok_strato_parameter&amp;diff=231"/>
				<updated>2022-05-09T10:02:26Z</updated>
		
		<summary type="html">&lt;p&gt;Emillour : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''ok_strato''' parameter is a logical flag, i.e. to be set to &amp;quot;y&amp;quot; (or equivalently &amp;quot;.true.&amp;quot;) or &amp;quot;n&amp;quot; (or equivalently &amp;quot;.false.&amp;quot;) in the run.def file, in practice most often in the &amp;quot;vert.def&amp;quot; (or sometimes &amp;quot;gcm.def&amp;quot;) file, as it is strongly linked to the model vertical resolution&lt;br /&gt;
&lt;br /&gt;
Setting '''ok_strato=y''' is recommended in most cases as it implies:&lt;br /&gt;
* Some impact on the vertical discretization (i.e. where the model levels are placed)&lt;br /&gt;
* Some switches on physical parametrizations related to the impact of gravity waves (orographic and non-orographic)&lt;br /&gt;
&lt;br /&gt;
Running with '''ok_strato=n''' would only be useful and advised if running with simple setups such as with 19 vertical layers (with old ~CMIP3-like physics packages) or for aquaplanets or without physics (in Held&amp;amp;Suarez configuration).&lt;br /&gt;
&lt;br /&gt;
Note also that if '''ok_strato=n''' then the sponge layer is not used either (see the leapfrog routine).&lt;br /&gt;
&lt;br /&gt;
09/05/2022&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;br /&gt;
[[Category:Inputs]]&lt;/div&gt;</summary>
		<author><name>Emillour</name></author>	</entry>

	</feed>