<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jbclement</id>
		<title>Planets - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jbclement"/>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Special:Contributions/Jbclement"/>
		<updated>2026-08-07T10:11:26Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3290</id>
		<title>The rcm1d.def Input File</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3290"/>
				<updated>2026-06-12T14:16:02Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The run.def input file and its format ==&lt;br /&gt;
&lt;br /&gt;
=== some general comments and disambiguation to start with ===&lt;br /&gt;
This page specifically focuses on the old ''rcm1d.def'' file used by the 1D version of the Generic PCM. The new one is this one [[The_1D_run.def_Input_File|'''this one''']].&lt;br /&gt;
Please note that the file ''rcm1d.def'' is now only relevant for Venus and Titan, and even then, they are two very different files!&lt;br /&gt;
&lt;br /&gt;
The rcm1d.def file is very similar to the [[The_run.def_Input_File|'''run.def''']] file (in fact, rcm1d.def is copied to run.def during execution of the 1D model), with the difference that the 3D options (linked to the dynamic core) are not used, and a whole bunch of new 1D-specific options (information contained in the start and startfi files) are now in the rcm1d.def file.&lt;br /&gt;
&lt;br /&gt;
== Reference def files ==&lt;br /&gt;
Reference *.def files are provided in the LMDZ.GENERIC/deftank directory&lt;br /&gt;
&lt;br /&gt;
== Outputted used_*def files ==&lt;br /&gt;
When the GCM run finishes, for each of the input def files *.def, an ASCII output file '''used_*.def''' is generated (in practice this would be '''used_rcm1d.def''' and '''used_callphys.def''' for the 1D simulations). These files contain, along the same format as the *.def input files, the &amp;quot;key = value&amp;quot; that were used, along with comments about whether &amp;quot;value&amp;quot; was read in the input def file or if the code default was used (i.e. the sought &amp;quot;keyword&amp;quot; was not present in the input def files).&lt;br /&gt;
&lt;br /&gt;
== Example of ''rcm1d.def'' file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#---------------------------------#&lt;br /&gt;
# Run parameters for the 1D model #                                         &lt;br /&gt;
#---------------------------------#&lt;br /&gt;
&lt;br /&gt;
## Planetary constants&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## NB: those are mandatory&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## LENGTH OF A DAY in s&lt;br /&gt;
daysec         = 86400.&lt;br /&gt;
## GRAVITY in m s-2&lt;br /&gt;
g              = 3.72&lt;br /&gt;
## Radius of the planet, in m&lt;br /&gt;
rad = 3390000&lt;br /&gt;
## LENGTH OF A YEAR in days&lt;br /&gt;
year_day       = 3000&lt;br /&gt;
## MIN DIST STAR-PLANET in AU [periastron]&lt;br /&gt;
periastr       = 1.0&lt;br /&gt;
## MAX DIST STAR-PLANET in AU [apoastron]&lt;br /&gt;
apoastr        = 1.0&lt;br /&gt;
## DATE OF PERIASTRON in days&lt;br /&gt;
peri_day       = 0.&lt;br /&gt;
## OBLIQUITY in deg&lt;br /&gt;
obliquit       = 0.&lt;br /&gt;
## SURFACE PRESSURE in Pa&lt;br /&gt;
psurf          = 100000.&lt;br /&gt;
&lt;br /&gt;
## Time integration parameters&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Initial date (in solar days,=0 at Ls=0)&lt;br /&gt;
day0           = 0&lt;br /&gt;
# Initial local time (in hours, between 0 and 24)&lt;br /&gt;
time           = 12 &lt;br /&gt;
# Number of time steps per sol&lt;br /&gt;
day_step       = 40&lt;br /&gt;
# Number of sols to run &lt;br /&gt;
ndt            = 1000&lt;br /&gt;
# Number of steps between each writing in diagfi &lt;br /&gt;
diagfi_output_rate=12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Vertical levels&lt;br /&gt;
## ~~~~~~~~~~~~~~~&lt;br /&gt;
# hybrid vertical coordinate ? (.true. for hybrid and .false. for sigma levels)&lt;br /&gt;
hybrid         = .true.&lt;br /&gt;
# autocompute vertical discretisation? (useful for exoplanet runs)&lt;br /&gt;
autozlevs      = .false.&lt;br /&gt;
# Ceiling pressure (Pa) ?&lt;br /&gt;
pceil          = 0.00001&lt;br /&gt;
&lt;br /&gt;
## Thermal properties&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Simulate global averaged conditions ? &lt;br /&gt;
global1d       = .true.&lt;br /&gt;
# Latitude (deg) [only used if global1d = F]&lt;br /&gt;
latitude       = 0.0&lt;br /&gt;
# Solar Zenith angle (deg) [only used if global1d = T]&lt;br /&gt;
szangle        = 60. &lt;br /&gt;
# Force specific heat capacity and molecular mass values&lt;br /&gt;
force_cpp      = .false.&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if force_cpp = T]&lt;br /&gt;
cpp            = 0.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if force_cpp = T]&lt;br /&gt;
mugaz          = 18.&lt;br /&gt;
# Albedo of bare ground&lt;br /&gt;
albedo         = 0.1&lt;br /&gt;
# Emissivity of bare ground&lt;br /&gt;
emis           = 1.0&lt;br /&gt;
# Soil thermal inertia (SI)&lt;br /&gt;
inertia        = 1000.&lt;br /&gt;
# Initial CO2 ice on the surface (kg.m-2)&lt;br /&gt;
co2ice         = 0.&lt;br /&gt;
&lt;br /&gt;
## Wind profile&lt;br /&gt;
## ~~~~~~~~~~~~&lt;br /&gt;
## zonal eastward component of the geostrophic wind (m/s)&lt;br /&gt;
u              = 10.&lt;br /&gt;
# meridional northward component of the geostrophic wind (m/s)&lt;br /&gt;
v              = 0.&lt;br /&gt;
&lt;br /&gt;
## Initial atmospheric temperature profile&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
#&lt;br /&gt;
# Type of initial temperature profile&lt;br /&gt;
#         ichoice=1   Constant Temperature:  T=tref&lt;br /&gt;
#         [Mars] ichoice=2   Savidjari profile (as Seiff but with dT/dz=cte)&lt;br /&gt;
#         [Mars] ichoice=3   Lindner (polar profile)&lt;br /&gt;
#         [Mars] ichoice=4   inversion&lt;br /&gt;
#         [Mars] ichoice=5   Seiff  (standard profile, based on Viking entry)&lt;br /&gt;
#         ichoice=6   constant T  +  gaussian perturbation (levels)&lt;br /&gt;
#         ichoice=7   constant T  + gaussian perturbation (km)&lt;br /&gt;
#         ichoice=8   Read in an ascii file &amp;quot;profile&amp;quot; &lt;br /&gt;
ichoice        = 1&lt;br /&gt;
# Reference temperature tref (K)&lt;br /&gt;
tref           = 300. &lt;br /&gt;
# Add a perturbation to profile if isin=1&lt;br /&gt;
isin           = 0&lt;br /&gt;
# peak of gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
pic            = 26.522&lt;br /&gt;
# width of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
largeur        = 10&lt;br /&gt;
# height of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
hauteur        = 30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
* Lines beginning with a hashtag are comments&lt;br /&gt;
* values associated to keywords may be logicals, integers, reals or even strings&lt;br /&gt;
* The parsing is case-sensitive : &amp;quot;thisparameter=&amp;quot; and &amp;quot;ThisParameter=&amp;quot; are identified as two distinct keywords&lt;br /&gt;
* The order in which the parameters are given in the file does not matter (except if a parameter is specified multiple times, clearly a bad idea, and then the last occurrence will prevail).&lt;br /&gt;
* Accessing a parameter and its value from ''rcm1d.def''/''run.def'' in the Fortran code is done using the '''getin_p''' routine, e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
       call getin_p(&amp;quot;keyword&amp;quot;,val)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will look for the line with &amp;quot;keyword = &amp;quot; in file ''run.def'' and extract trailing value which will be use to set the value of the  '''val''' variable in the code.&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;br /&gt;
[[Category:WhatIs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3289</id>
		<title>The rcm1d.def Input File</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3289"/>
				<updated>2026-06-12T14:11:48Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: Undo revision 3277 by Jbclement (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The run.def input file and its format ==&lt;br /&gt;
&lt;br /&gt;
=== some general comments and disambiguation to start with ===&lt;br /&gt;
This pages specifically focuses on the ''rcm1d.def'' file used by the 1D version of the Generic PCM. &lt;br /&gt;
&lt;br /&gt;
The rcm1d.def file is very similar to the [[The_run.def_Input_File|'''run.def''']] file (in fact, rcm1d.def is copied to run.def during execution of the 1D model), with the difference that the 3D options (linked to the dynamic core) are not used, and a whole bunch of new 1D-specific options (information contained in the start and startfi files) are now in the rcm1d.def file.&lt;br /&gt;
&lt;br /&gt;
== Reference def files ==&lt;br /&gt;
Reference *.def files are provided in the LMDZ.GENERIC/deftank directory&lt;br /&gt;
&lt;br /&gt;
== Outputted used_*def files ==&lt;br /&gt;
When the GCM run finishes, for each of the input def files *.def, an ASCII output file '''used_*.def''' is generated (in practice this would be '''used_rcm1d.def''' and '''used_callphys.def''' for the 1D simulations). These files contain, along the same format as the *.def input files, the &amp;quot;key = value&amp;quot; that were used, along with comments about whether &amp;quot;value&amp;quot; was read in the input def file or if the code default was used (i.e. the sought &amp;quot;keyword&amp;quot; was not present in the input def files).&lt;br /&gt;
&lt;br /&gt;
== Example of ''rcm1d.def'' file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#---------------------------------#&lt;br /&gt;
# Run parameters for the 1D model #                                         &lt;br /&gt;
#---------------------------------#&lt;br /&gt;
&lt;br /&gt;
## Planetary constants&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## NB: those are mandatory&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## LENGTH OF A DAY in s&lt;br /&gt;
daysec         = 86400.&lt;br /&gt;
## GRAVITY in m s-2&lt;br /&gt;
g              = 3.72&lt;br /&gt;
## Radius of the planet, in m&lt;br /&gt;
rad = 3390000&lt;br /&gt;
## LENGTH OF A YEAR in days&lt;br /&gt;
year_day       = 3000&lt;br /&gt;
## MIN DIST STAR-PLANET in AU [periastron]&lt;br /&gt;
periastr       = 1.0&lt;br /&gt;
## MAX DIST STAR-PLANET in AU [apoastron]&lt;br /&gt;
apoastr        = 1.0&lt;br /&gt;
## DATE OF PERIASTRON in days&lt;br /&gt;
peri_day       = 0.&lt;br /&gt;
## OBLIQUITY in deg&lt;br /&gt;
obliquit       = 0.&lt;br /&gt;
## SURFACE PRESSURE in Pa&lt;br /&gt;
psurf          = 100000.&lt;br /&gt;
&lt;br /&gt;
## Time integration parameters&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Initial date (in solar days,=0 at Ls=0)&lt;br /&gt;
day0           = 0&lt;br /&gt;
# Initial local time (in hours, between 0 and 24)&lt;br /&gt;
time           = 12 &lt;br /&gt;
# Number of time steps per sol&lt;br /&gt;
day_step       = 40&lt;br /&gt;
# Number of sols to run &lt;br /&gt;
ndt            = 1000&lt;br /&gt;
# Number of steps between each writing in diagfi &lt;br /&gt;
diagfi_output_rate=12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Vertical levels&lt;br /&gt;
## ~~~~~~~~~~~~~~~&lt;br /&gt;
# hybrid vertical coordinate ? (.true. for hybrid and .false. for sigma levels)&lt;br /&gt;
hybrid         = .true.&lt;br /&gt;
# autocompute vertical discretisation? (useful for exoplanet runs)&lt;br /&gt;
autozlevs      = .false.&lt;br /&gt;
# Ceiling pressure (Pa) ?&lt;br /&gt;
pceil          = 0.00001&lt;br /&gt;
&lt;br /&gt;
## Thermal properties&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Simulate global averaged conditions ? &lt;br /&gt;
global1d       = .true.&lt;br /&gt;
# Latitude (deg) [only used if global1d = F]&lt;br /&gt;
latitude       = 0.0&lt;br /&gt;
# Solar Zenith angle (deg) [only used if global1d = T]&lt;br /&gt;
szangle        = 60. &lt;br /&gt;
# Force specific heat capacity and molecular mass values&lt;br /&gt;
force_cpp      = .false.&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if force_cpp = T]&lt;br /&gt;
cpp            = 0.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if force_cpp = T]&lt;br /&gt;
mugaz          = 18.&lt;br /&gt;
# Albedo of bare ground&lt;br /&gt;
albedo         = 0.1&lt;br /&gt;
# Emissivity of bare ground&lt;br /&gt;
emis           = 1.0&lt;br /&gt;
# Soil thermal inertia (SI)&lt;br /&gt;
inertia        = 1000.&lt;br /&gt;
# Initial CO2 ice on the surface (kg.m-2)&lt;br /&gt;
co2ice         = 0.&lt;br /&gt;
&lt;br /&gt;
## Wind profile&lt;br /&gt;
## ~~~~~~~~~~~~&lt;br /&gt;
## zonal eastward component of the geostrophic wind (m/s)&lt;br /&gt;
u              = 10.&lt;br /&gt;
# meridional northward component of the geostrophic wind (m/s)&lt;br /&gt;
v              = 0.&lt;br /&gt;
&lt;br /&gt;
## Initial atmospheric temperature profile&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
#&lt;br /&gt;
# Type of initial temperature profile&lt;br /&gt;
#         ichoice=1   Constant Temperature:  T=tref&lt;br /&gt;
#         [Mars] ichoice=2   Savidjari profile (as Seiff but with dT/dz=cte)&lt;br /&gt;
#         [Mars] ichoice=3   Lindner (polar profile)&lt;br /&gt;
#         [Mars] ichoice=4   inversion&lt;br /&gt;
#         [Mars] ichoice=5   Seiff  (standard profile, based on Viking entry)&lt;br /&gt;
#         ichoice=6   constant T  +  gaussian perturbation (levels)&lt;br /&gt;
#         ichoice=7   constant T  + gaussian perturbation (km)&lt;br /&gt;
#         ichoice=8   Read in an ascii file &amp;quot;profile&amp;quot; &lt;br /&gt;
ichoice        = 1&lt;br /&gt;
# Reference temperature tref (K)&lt;br /&gt;
tref           = 300. &lt;br /&gt;
# Add a perturbation to profile if isin=1&lt;br /&gt;
isin           = 0&lt;br /&gt;
# peak of gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
pic            = 26.522&lt;br /&gt;
# width of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
largeur        = 10&lt;br /&gt;
# height of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
hauteur        = 30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
* Lines beginning with a hashtag are comments&lt;br /&gt;
* values associated to keywords may be logicals, integers, reals or even strings&lt;br /&gt;
* The parsing is case-sensitive : &amp;quot;thisparameter=&amp;quot; and &amp;quot;ThisParameter=&amp;quot; are identified as two distinct keywords&lt;br /&gt;
* The order in which the parameters are given in the file does not matter (except if a parameter is specified multiple times, clearly a bad idea, and then the last occurrence will prevail).&lt;br /&gt;
* Accessing a parameter and its value from ''rcm1d.def''/''run.def'' in the Fortran code is done using the '''getin_p''' routine, e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
       call getin_p(&amp;quot;keyword&amp;quot;,val)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will look for the line with &amp;quot;keyword = &amp;quot; in file ''run.def'' and extract trailing value which will be use to set the value of the  '''val''' variable in the code.&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;br /&gt;
[[Category:WhatIs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3288</id>
		<title>The rcm1d.def Input File</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3288"/>
				<updated>2026-06-12T14:11:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: Undo revision 3278 by Jbclement (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The run.def input file and its format ==&lt;br /&gt;
&lt;br /&gt;
=== some general comments and disambiguation to start with ===&lt;br /&gt;
This pages specifically focuses on the ''run.def'' file used by the 1D version of the Generic PCM. &lt;br /&gt;
&lt;br /&gt;
The run.def file is very similar to the [[The_run.def_Input_File|'''run.def''']] file, with the difference that the 3D options (linked to the dynamic core) are not used, and a whole bunch of new 1D-specific options (information contained in the start and startfi files) are now in the 1D run.def file. Especially, the 1D file has to hold the &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
== Reference def files ==&lt;br /&gt;
Reference *.def files are provided in the LMDZ.GENERIC/deftank directory&lt;br /&gt;
&lt;br /&gt;
== Outputted used_*def files ==&lt;br /&gt;
When the GCM run finishes, for each of the input def files *.def, an ASCII output file '''used_*.def''' is generated (in practice this would be '''used_run.def''' and '''used_callphys.def''' for the 1D simulations). These files contain, along the same format as the *.def input files, the &amp;quot;key = value&amp;quot; that were used, along with comments about whether &amp;quot;value&amp;quot; was read in the input def file or if the code default was used (i.e. the sought &amp;quot;keyword&amp;quot; was not present in the input def files).&lt;br /&gt;
&lt;br /&gt;
== Example of 1D ''run.def'' file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#---------------------------------#&lt;br /&gt;
# Run parameters for the 1D model #                                         &lt;br /&gt;
#---------------------------------#&lt;br /&gt;
&lt;br /&gt;
run_1d=.true.&lt;br /&gt;
&lt;br /&gt;
## Planetary constants&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## NB: those are mandatory&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## LENGTH OF A DAY in s&lt;br /&gt;
daysec         = 86400.&lt;br /&gt;
## GRAVITY in m s-2&lt;br /&gt;
g              = 3.72&lt;br /&gt;
## Radius of the planet, in m&lt;br /&gt;
rad = 3390000&lt;br /&gt;
## LENGTH OF A YEAR in days&lt;br /&gt;
year_day       = 3000&lt;br /&gt;
## MIN DIST STAR-PLANET in AU [periastron]&lt;br /&gt;
periastr       = 1.0&lt;br /&gt;
## MAX DIST STAR-PLANET in AU [apoastron]&lt;br /&gt;
apoastr        = 1.0&lt;br /&gt;
## DATE OF PERIASTRON in days&lt;br /&gt;
peri_day       = 0.&lt;br /&gt;
## OBLIQUITY in deg&lt;br /&gt;
obliquit       = 0.&lt;br /&gt;
## SURFACE PRESSURE in Pa&lt;br /&gt;
psurf          = 100000.&lt;br /&gt;
&lt;br /&gt;
## Time integration parameters&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Initial date (in solar days,=0 at Ls=0)&lt;br /&gt;
day0           = 0&lt;br /&gt;
# Initial local time (in hours, between 0 and 24)&lt;br /&gt;
time           = 12 &lt;br /&gt;
# Number of time steps per sol&lt;br /&gt;
day_step       = 40&lt;br /&gt;
# Number of sols to run &lt;br /&gt;
ndt            = 1000&lt;br /&gt;
# Number of steps between each writing in diagfi &lt;br /&gt;
diagfi_output_rate=12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Vertical levels&lt;br /&gt;
## ~~~~~~~~~~~~~~~&lt;br /&gt;
# hybrid vertical coordinate ? (.true. for hybrid and .false. for sigma levels)&lt;br /&gt;
hybrid         = .true.&lt;br /&gt;
# autocompute vertical discretisation? (useful for exoplanet runs)&lt;br /&gt;
autozlevs      = .false.&lt;br /&gt;
# Ceiling pressure (Pa) ?&lt;br /&gt;
pceil          = 0.00001&lt;br /&gt;
&lt;br /&gt;
## Thermal properties&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Simulate global averaged conditions ? &lt;br /&gt;
global1d       = .true.&lt;br /&gt;
# Latitude (deg) [only used if global1d = F]&lt;br /&gt;
latitude       = 0.0&lt;br /&gt;
# Solar Zenith angle (deg) [only used if global1d = T]&lt;br /&gt;
szangle        = 60. &lt;br /&gt;
# Force specific heat capacity and molecular mass values&lt;br /&gt;
force_cpp      = .false.&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if force_cpp = T]&lt;br /&gt;
cpp            = 0.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if force_cpp = T]&lt;br /&gt;
mugaz          = 18.&lt;br /&gt;
# Albedo of bare ground&lt;br /&gt;
albedo         = 0.1&lt;br /&gt;
# Emissivity of bare ground&lt;br /&gt;
emis           = 1.0&lt;br /&gt;
# Soil thermal inertia (SI)&lt;br /&gt;
inertia        = 1000.&lt;br /&gt;
# Initial CO2 ice on the surface (kg.m-2)&lt;br /&gt;
co2ice         = 0.&lt;br /&gt;
&lt;br /&gt;
## Wind profile&lt;br /&gt;
## ~~~~~~~~~~~~&lt;br /&gt;
## zonal eastward component of the geostrophic wind (m/s)&lt;br /&gt;
u              = 10.&lt;br /&gt;
# meridional northward component of the geostrophic wind (m/s)&lt;br /&gt;
v              = 0.&lt;br /&gt;
&lt;br /&gt;
## Initial atmospheric temperature profile&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
#&lt;br /&gt;
# Type of initial temperature profile&lt;br /&gt;
#         ichoice=1   Constant Temperature:  T=tref&lt;br /&gt;
#         [Mars] ichoice=2   Savidjari profile (as Seiff but with dT/dz=cte)&lt;br /&gt;
#         [Mars] ichoice=3   Lindner (polar profile)&lt;br /&gt;
#         [Mars] ichoice=4   inversion&lt;br /&gt;
#         [Mars] ichoice=5   Seiff  (standard profile, based on Viking entry)&lt;br /&gt;
#         ichoice=6   constant T  +  gaussian perturbation (levels)&lt;br /&gt;
#         ichoice=7   constant T  + gaussian perturbation (km)&lt;br /&gt;
#         ichoice=8   Read in an ascii file &amp;quot;profile&amp;quot; &lt;br /&gt;
ichoice        = 1&lt;br /&gt;
# Reference temperature tref (K)&lt;br /&gt;
tref           = 300. &lt;br /&gt;
# Add a perturbation to profile if isin=1&lt;br /&gt;
isin           = 0&lt;br /&gt;
# peak of gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
pic            = 26.522&lt;br /&gt;
# width of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
largeur        = 10&lt;br /&gt;
# height of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
hauteur        = 30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
* Lines beginning with a hashtag are comments&lt;br /&gt;
* values associated to keywords may be logicals, integers, reals or even strings&lt;br /&gt;
* The parsing is case-sensitive : &amp;quot;thisparameter=&amp;quot; and &amp;quot;ThisParameter=&amp;quot; are identified as two distinct keywords&lt;br /&gt;
* The order in which the parameters are given in the file does not matter (except if a parameter is specified multiple times, clearly a bad idea, and then the last occurrence will prevail).&lt;br /&gt;
* Accessing a parameter and its value from ''run.def'' in the Fortran code is done using the '''getin_p''' routine, e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
       call getin_p(&amp;quot;keyword&amp;quot;,val)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will look for the line with &amp;quot;keyword = &amp;quot; in file ''run.def'' and extract trailing value which will be use to set the value of the  '''val''' variable in the code.&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;br /&gt;
[[Category:WhatIs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Other_GCM_Configurations_worth_knowing_about&amp;diff=3287</id>
		<title>Other GCM Configurations worth knowing about</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Other_GCM_Configurations_worth_knowing_about&amp;diff=3287"/>
				<updated>2026-06-12T14:07:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 3D lon-lat LMDZ setup =&lt;br /&gt;
&lt;br /&gt;
== early Mars ==&lt;br /&gt;
&lt;br /&gt;
It is already described in the [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Quick_Install_and_Run ''Quick Install and Run''] section.&lt;br /&gt;
&lt;br /&gt;
== Earth with slab ocean ==rcm1d&lt;br /&gt;
&lt;br /&gt;
TBD by Siddharth, once all changes have been committed (also need a validation of the model on Earth to be sure)&lt;br /&gt;
&lt;br /&gt;
== TRAPPIST-1e with photochemistry ==&lt;br /&gt;
&lt;br /&gt;
A temperate rocky planet in synchronous rotation around a low mass star.&lt;br /&gt;
&lt;br /&gt;
Here is an example to simulate the planet TRAPPIST-1e with an Earth atmosphere using the photochemical module of the GCM.&lt;br /&gt;
&lt;br /&gt;
To install the model and run it, follow [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Quick_Install_and_Run ''Quick Install and Run''] but with the following changes:&lt;br /&gt;
&lt;br /&gt;
=== GCM Input Datafiles and Datasets ===&lt;br /&gt;
Section [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run&amp;amp;action=edit&amp;amp;section=9 ''GCM Input Datafiles and Datasets''] download the TRAPPIST-1e files (instead of the early Mars files):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate https://web.lmd.jussieu.fr/~lmdz/planets/generic/reference_setups/bench_trappist1e_photochemistry_64x48x30_b38x36.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find the same type of file with the additional folder containing the chemical network file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
callphys.def  gases.def  startfi.nc  traceur.def&lt;br /&gt;
datadir/      run.def    start.nc    z2sig.def&lt;br /&gt;
chemnetwork/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling the GCM ===&lt;br /&gt;
==== Prior to a first compilation: setting up the target architecture files ====&lt;br /&gt;
The chemical solver require the libraries BLAS and LAPACK which need to be specified in the '''arch*.fcm''' file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&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 LAPACK BLAS SGEMV=DGEMV SGEMM=DGEMM&lt;br /&gt;
%BASE_FFLAGS         -c -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fno-align-commons&lt;br /&gt;
%PROD_FFLAGS         -O3&lt;br /&gt;
%DEV_FFLAGS          -O&lt;br /&gt;
%DEBUG_FFLAGS        -ffpe-trap=invalid,zero,overflow -fbounds-check -g3 -O0 -fstack-protector-all -finit-real=snan -fbacktrace&lt;br /&gt;
%MPI_FFLAGS&lt;br /&gt;
%OMP_FFLAGS         &lt;br /&gt;
%BASE_LD             -llapack -lblas&lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Specific to photochemistry: set hard coded reactions ====&lt;br /&gt;
In '''/LMDZ.GENERIC/libf/aeronogeneric/chimiedata_h.F90''' you can hard code reaction if needed, for instance because the reaction rate is very specific and out of the generic formula or your photochemical reaction does not use a regular cross section.&lt;br /&gt;
&lt;br /&gt;
The TRAPPIST-1e test case use 3 hard coded reactions.&lt;br /&gt;
&lt;br /&gt;
*Uncomment the following lines to fill reaction species indexes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!===========================================================&lt;br /&gt;
!      r001 : HNO3 + rain -&amp;gt; H2O&lt;br /&gt;
!===========================================================&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
indice_phot(nb_phot) = z3spec(1.0, indexchim('hno3'), 1.0, indexchim('h2o_vap'), 0.0, 1)&lt;br /&gt;
&lt;br /&gt;
!===========================================================&lt;br /&gt;
!      e001 : CO + OH -&amp;gt; CO2 + H &lt;br /&gt;
!===========================================================&lt;br /&gt;
nb_reaction_4 = nb_reaction_4 + 1&lt;br /&gt;
indice_4(nb_reaction_4) = z4spec(1.0, indexchim('co'), 1.0, indexchim('oh'), 1.0, indexchim('co2'), 1.0, indexchim('h'))&lt;br /&gt;
&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
!     photodissociation of NO : NO + hv -&amp;gt; N + O&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
indice_phot(nb_phot) = z3spec(1.0, indexchim('no'), 1.0, indexchim('n'), 1.0, indexchim('o'))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Uncomment the following lines to fill reaction rates:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!     carbon reactions&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
     &lt;br /&gt;
!---  e001: oh + co -&amp;gt; co2 + h&lt;br /&gt;
&lt;br /&gt;
      nb_reaction_4 = nb_reaction_4 + 1&lt;br /&gt;
&lt;br /&gt;
!     joshi et al., 2006&lt;br /&gt;
&lt;br /&gt;
      do ilev = 1,nlayer&lt;br /&gt;
         k1a0 = 1.34*2.5*dens(ilev)                                  &amp;amp;&lt;br /&gt;
               *1/(1/(3.62e-26*t(ilev)**(-2.739)*exp(-20./t(ilev)))  &amp;amp;&lt;br /&gt;
               + 1/(6.48e-33*t(ilev)**(0.14)*exp(-57./t(ilev))))     ! typo in paper corrected&lt;br /&gt;
         k1b0 = 1.17e-19*t(ilev)**(2.053)*exp(139./t(ilev))          &amp;amp;&lt;br /&gt;
              + 9.56e-12*t(ilev)**(-0.664)*exp(-167./t(ilev))&lt;br /&gt;
         k1ainf = 1.52e-17*t(ilev)**(1.858)*exp(28.8/t(ilev))        &amp;amp;&lt;br /&gt;
                + 4.78e-8*t(ilev)**(-1.851)*exp(-318./t(ilev))&lt;br /&gt;
         x = k1a0/(k1ainf - k1b0)&lt;br /&gt;
         y = k1b0/(k1ainf - k1b0)&lt;br /&gt;
         fc = 0.628*exp(-1223./t(ilev)) + (1. - 0.628)*exp(-39./t(ilev))  &amp;amp;&lt;br /&gt;
            + exp(-t(ilev)/255.)&lt;br /&gt;
         fx = fc**(1./(1. + (alog(x))**2))                           ! typo in paper corrected&lt;br /&gt;
         k1a = k1a0*((1. + y)/(1. + x))*fx&lt;br /&gt;
         k1b = k1b0*(1./(1.+x))*fx&lt;br /&gt;
            &lt;br /&gt;
         v_4(ilev,nb_reaction_4) = k1a + k1b&lt;br /&gt;
      end do&lt;br /&gt;
&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!     washout r001 : HNO3 + rain -&amp;gt; H2O&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
      &lt;br /&gt;
rain_h2o  = 100.e-6&lt;br /&gt;
!rain_rate = 1.e-6  ! 10 days&lt;br /&gt;
rain_rate = 1.e-8&lt;br /&gt;
      &lt;br /&gt;
do ilev = 1,nlayer&lt;br /&gt;
   if (c(ilev,indexchim('h2o_vap'))/dens(ilev) &amp;gt;= rain_h2o) then&lt;br /&gt;
      v_phot(ilev,nb_phot) = rain_rate&lt;br /&gt;
   else&lt;br /&gt;
      v_phot(ilev,nb_phot) = 0.&lt;br /&gt;
   end if&lt;br /&gt;
end do&lt;br /&gt;
&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
!     photodissociation of NO&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
      &lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
      &lt;br /&gt;
colo3(nlayer) = 0.&lt;br /&gt;
!     ozone columns for other levels (molecule.cm-2)&lt;br /&gt;
do ilev = nlayer-1,1,-1&lt;br /&gt;
   colo3(ilev) = colo3(ilev+1) + (c(ilev+1,indexchim('o3')) + c(ilev,indexchim('o3')))*0.5*avocado*1e-4*((press(ilev) - press(ilev+1))*100.)/(1.e-3*zmmean(ilev)*g*dens(ilev))&lt;br /&gt;
end do&lt;br /&gt;
call jno(nlayer, c(nlayer:1:-1,indexchim('no')), c(nlayer:1:-1,indexchim('o2')), colo3(nlayer:1:-1), dens(nlayer:1:-1), press(nlayer:1:-1), sza, v_phot(nlayer:1:-1,nb_phot))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Change the following lines to set the number of hard coded reactions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
integer, parameter :: nphot_hard_coding = 2&lt;br /&gt;
integer, parameter :: n4_hard_coding    = 1&lt;br /&gt;
integer, parameter :: n3_hard_coding    = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling a test case (TRAPPIST-1e) ===&lt;br /&gt;
Change the following compiling option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-d 64x48x30 -b 38x36&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: option -b is mandatory to change while option -d will still run with lower or higher resolution (if '''z2sig.def''' remains coherent with the number of altitude levels, meaning at least as many altitude levels defined as the number of levels wanted).&lt;br /&gt;
&lt;br /&gt;
== TRAPPIST-1c in Venus-like conditions ==&lt;br /&gt;
&lt;br /&gt;
A warm rocky planet in synchronous rotation around a low mass star. Here we provide an '''example''' to simulate the atmosphere of Trappist-1c, assuming it evolved to a modern Venus-like atmosphere.&lt;br /&gt;
&lt;br /&gt;
The planetary parameters are taken from  [https://arxiv.org/abs/2010.01074 Algol et al. 2021] and can be found in this table [[Media:Planetary_parameters_Trappist1c.png]]&lt;br /&gt;
&lt;br /&gt;
First, install the model and run it, following [[Quick Install and Run]]  but instead of  ''Early Mars files'', please download ''bench_trappist1c_64x48x50_b32x36'' using this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate https://web.lmd.jussieu.fr/~lmdz/planets/generic/reference_setups/bench_trappist1c_64x48x50_b32x36.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling a test case (TRAPPIST-1c) ===&lt;br /&gt;
Change the following compiling option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-d 64x48x50 -b 32x36&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find the same type of  ASCII *def files than in the case of ''Early Mars'',  but adapted to the planet's characteristics and orbital parameters of Trappist 1c.&lt;br /&gt;
In particular ''callphys.def'' contains the following changes:&lt;br /&gt;
&lt;br /&gt;
* The planet is assumed to be in 1:1 spin-orbit resonance, therefore&lt;br /&gt;
   diurnal = .false. &lt;br /&gt;
   tlocked = .true.&lt;br /&gt;
* The planet equilibrium temperature is about 342 K&lt;br /&gt;
   tplanet    = 341.9&lt;br /&gt;
* The host star is TRAPPIST1, with a stellar flux at 1 AU of 0.7527 [W m-2]&lt;br /&gt;
   stelspec_file = spectrum_TRAPPIST1_2022.dat&lt;br /&gt;
   tstellar = 2600.&lt;br /&gt;
   Fat1AU = 0.7527&lt;br /&gt;
* Fixed aerosol distribution, no radiative active tracers (no evaporation/condensation of H2O and CO2):&lt;br /&gt;
   aerofixed     = .true.&lt;br /&gt;
   aeroco2       = .false.&lt;br /&gt;
   aeroh2o       = .false.&lt;br /&gt;
* No water cycle model, no water cloud formation or water precipitation, no CO2 condensation:&lt;br /&gt;
   water         = .false.&lt;br /&gt;
   watercond     = .false.&lt;br /&gt;
   waterrain     = .false.&lt;br /&gt;
   hydrology     = .false.&lt;br /&gt;
   nonideal      = .true.&lt;br /&gt;
   co2cond       = .false.&lt;br /&gt;
* Following [https://www.sciencedirect.com/science/article/pii/S0032063313002596?via%3Dihub Haus et al. 2015] a prescribed radiatively active cloud model is included. &lt;br /&gt;
It can be activated/deactivated with the flag ''aerovenus''.&lt;br /&gt;
   aerovenus = .true.&lt;br /&gt;
* Mode 1, 2, 2p, 3 and the &amp;quot;unknown&amp;quot; UV absorber can be included/excluded by setting to true/false the following keywords. The characteristics of each mode (e.g. effect radius, effective variance) are based on Venus Express/ESA observations and can be found in this table [[Media:Table1 aerosolVenus trappist1c.png]]&lt;br /&gt;
   aerovenus1    = .true.&lt;br /&gt;
   aerovenus2    = .true.&lt;br /&gt;
   aerovenus2p   = .true.&lt;br /&gt;
   aerovenus3    = .true.&lt;br /&gt;
   aerovenusUV   = .true.&lt;br /&gt;
&lt;br /&gt;
The cloud model is prescribed from 1 to 0.037 ''bar'' pressure layers. For each mode, the top/bottom pressure can be modified by hard-coding model routine ''aerosol_opacity.F90''.&lt;br /&gt;
Here below an example for mode 1 particles, where the top pressure layer and bottom pressure layer are prescribed at 0.1 bar and 1 bar, respectively:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
!       1. Initialization&lt;br /&gt;
          aerosol(1:ngrid,1:nlayer,iaer)=0.0&lt;br /&gt;
          p_bot = 1.e5 ! bottom pressure [Pa]&lt;br /&gt;
          p_top = 1.e4&lt;br /&gt;
          h_bot = 1.0e3 ! bottom scale height [m]&lt;br /&gt;
          h_top = 5.0e3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''TO BE COMPLETED BY GABRIELLA'''&lt;br /&gt;
&lt;br /&gt;
== mini-Neptune GJ1214b ==&lt;br /&gt;
&lt;br /&gt;
A warm mini-Neptune&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED BY BENJAMIN'''&lt;br /&gt;
&lt;br /&gt;
= 3D DYNAMICO setup =&lt;br /&gt;
&lt;br /&gt;
Due to the rich dynamical activities in their atmospheres (banded zonal jets, eddies, vortices, storms, equatorial oscillations,...) resulting from multi-scale dynamic interactions, the Global Climate Modelling of the giant planet requires to resolve eddies arising from hydrodynamical instabilities to correctly establish the planetary-scaled jets regime. To this purpose, their Rossby radius deformation $$L_D$$, which is the length scale at which rotational effects become as important as buoyancy or gravity wave effects in the evolution of the flow about some disturbance, is calculated to determine the most suitable horizontal grid resolution. At mid-latitude range, for the giant planets, $$L_D$$ is of the same order of magnitude as that of the Earth. As the giant planets have a size of roughly 10 times the Earth size (i.e., Jupiter and Saturn), the modelling grid must be of a horizontal resolution of 0.5$$^{\circ}$$ over longitude and latitude (vs 5$$^{\circ}$$ for the Earth), considering 3 grid points to resolved $$L_D$$. &lt;br /&gt;
Moreover, to have a chance to model the equatorial oscillation, meridional cell circulations and/or a seasonal inter-hemispheric circulation, a giant planet GCM must also include a high vertical resolution. Indeed, these climate phenomena have been studied for decades for the Earth's atmosphere, and result from small- and large-scale interactions between the troposphere and stratosphere. This implies that the propagation of dynamic instabilities, waves and turbulence should be resolved as far as possible along the vertical. Contrary to horizontal resolution, it doesn't really exist a criterion (similar to $$L_D$$) to determine the most suitable vertical grid resolution and still an adjustable parameter according to the processes to be represented. However, we advise the user to set a vertical resolution of at least 5 grid points per scale height as first stage.    &lt;br /&gt;
Finally, these atmospheres are cold, with long radiative response time which needs radiative transfer computations over decade-long years of Jupiter (given that a Jupiter year $$\approx$$ 12 Earth years), Saturn ( a Saturn year $$\approx$$ 30 Earth years), Uranus (a Uranus year $$\approx$$ 84 earth years) or Neptune (a Neptune year $$\approx$$ 169 Earth years), depending on the chosen planet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be able to deal with these three -- and non-exhaustive -- requirements to build a giant planet GCM, we need massive computational ressources. For this, we use a dynamical core suitable and numerically stable for massive parallel ressource computations: [[The_DYNAMICO_dynamical_core | DYNAMICO]] [Dubos et al,. 2015].  &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In these two following subsections, we purpose an example of installation for Jupiter and a Hot Jupiter. All the install, compiling, setting and parameters files for each giant planets could be found on: https://gitlab.in2p3.fr/aymeric.spiga/dynamico-giant (the old repo is archived as read-only https://github.com/aymeric-spiga/dynamico-giant)&lt;br /&gt;
&lt;br /&gt;
The [[Dynamico-giant | DYNAMICO-giant wiki is here]]&lt;br /&gt;
&lt;br /&gt;
If you have already downloaded '''LMDZ.COMMON''', '''LMDZ.GENERIC''', '''IOIPSL''', '''ARCH''', you only have to download:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ICOSAGCM''': the DYNAMICO dynamical core&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://gitlab.in2p3.fr/ipsl/projets/dynamico/dynamico.git ICOSAGCM&lt;br /&gt;
cd ICOSAGCM&lt;br /&gt;
git checkout 110016896ae9e85e614af43223b18fe38f211020   # Version du 6 nov. 2024&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''ICOSA_LMDZ''': the interface using to link LMDZ.GENERIC physical packages and ICOSAGCM&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update -r 3729 -q ICOSA_LMDZ   # Version du 18 avr. 2025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''XIOS (XML Input Output Server)''': the library to interpolate input/output fields between the icosahedral and longitude/latitude regular grids on fly&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co -r 2626 -q http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS   # Version du 22 mar. 2024&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you haven't already download '''LMDZ.COMMON''', '''LMDZ.GENERIC''', '''IOIPSL''', '''ARCH''', you can use the '''install.sh''' script provided by the GitLab repository. &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Once each part of the GCM is downloaded, you are able to compile it. &lt;br /&gt;
Firstly, you have to define your [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files | target architecture file ]] (hereafter named YOUR_ARCH_FILE) where you will fill in all the necessary information about the local environment, where libraries are located, which compiler, and compiler options will be used, etc.&lt;br /&gt;
Some architecture files related to specific machines are provided in the '''ARCH''' directory, which are referenced in the following lines without the prefix 'arch-' (i.e., arch-X64_IRENE-AMD.env will be referenced as X64_IRENE-AMD).  &lt;br /&gt;
&lt;br /&gt;
The main specificity of DYNAMICO-giant is that every main parts of the model ('''ICOSAGCM''', '''LMDZ.COMMON''' and '''LMDZ.GENERIC''') are compiled as libraries, and settings and running configuration are managed by the '''ICOSA_LMDZ''' interface.&lt;br /&gt;
&lt;br /&gt;
First, you have to compile '''IOIPSL''',&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd LMDZ.COMMON/ioipsl/                                                                                                             &lt;br /&gt;
    ./install_ioipsl_YOUR-MACHINE.bash&lt;br /&gt;
cd ../../&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
then '''XIOS''' library, &lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd XIOS/                                                                                                               &lt;br /&gt;
    ./make_xios --prod --arch YOUR_ARCH_FILE --arch_path ../ARCH --job 8 --full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
the physics packaging,&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd LMDZ.COMMON/                                                                                                        &lt;br /&gt;
    ./makelmdz_fcm -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -prod -parallel mpi -libphy -io xios -arch YOUR_ARCH_FILE -arch_path ../ARCH -j 8 -full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
the dynamical core '''DYNAMICO''' (located in '''ICOSAGCM''' directory, named from the icosahedral shape of the horizontal mesh),&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ICOSAGCM/&lt;br /&gt;
    ./make_icosa -prod -parallel mpi -external_ioipsl -with_xios -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
and finally the '''ICOSA_LMDZ''' interface&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ICOSA_LMDZ/&lt;br /&gt;
    ./make_icosa_lmdz -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -parallel mpi -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -nodeps&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This last step is a bit redundant with the two previous one, hence ''make_icosa_lmdz'' will execute ''./make_icosa'' (in the '''ICOSAGCM''' directory) and ''./makelmdz_fcm'' (in the '''LMDZ.COMMON''' directory) to create and source the architecture files shared between all parts of the model, as well as create the intermediate file ''config.fcm''. As you have already compiled these two elements, ''make_icosa_lmdz'' should only create the linked architecture files, ''config.fcm'' and compile the interface. Here, ''-nodeps'' option prevents the checking of XIOS and IOIPSL compilation, which saves you from recompiling these two elements again.&lt;br /&gt;
      &lt;br /&gt;
Finally, your executable programs should appeared in '''ICOSA_LMDZ/bin''' subdirectory, as '''icosa_lmdz.exe''' and in '''XIOS/bin''' subdirectory, as '''xios_server.exe''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All these compiling steps are summed up in ''make_isoca_lmdz'' program that should be adapted to your own computational settings (i.e., through you target architecture file).&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./make_icosa_lmdz -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -parallel mpi -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -full&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Here, ''-full'' option assure the compilation of each part ('''IOIPSL''', '''XIOS''', '''LMDZ.COMMON''', '''ICOSAGCM''' and '''ICOSA_LMDZ''') of the model.  &lt;br /&gt;
&lt;br /&gt;
Now you can move your two executable files to your working directory and start to run your own simulation of Jupiter or a Hot Jupiter, as what follows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: If you are using the GitLab file architecture (https://gitlab.in2p3.fr/aymeric.spiga/dynamico-giant), you should be able to compile the model directly from your working directory (for instance ''dynamico-giant/jupiter/'') by using the ''compile_occigen.sh'' program, which has to be adapted to your machine/cluster.&lt;br /&gt;
&lt;br /&gt;
''Note 2 : Depending on the compiler module you use, especially with gfortran, you may need to modify the tracers_icosa.F90 file located in the src directory in order to successfully compile ICOSAGCM. For example, if you are using GCC/11.3.0 and OpenMPI/4.1.4, you must update the insert_tracer_output subroutine as follows:''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
SUBROUTINE insert_tracer_output&lt;br /&gt;
      USE xios_mod&lt;br /&gt;
      USE grid_param&lt;br /&gt;
      IMPLICIT NONE&lt;br /&gt;
      TYPE(xios_fieldgroup) :: fieldgroup_hdl&lt;br /&gt;
      TYPE(xios_field) :: field_hdl&lt;br /&gt;
      INTEGER :: iq&lt;br /&gt;
      CHARACTER(len=1000) :: tracername1&lt;br /&gt;
      CHARACTER(len=1000) :: tracername2&lt;br /&gt;
      CHARACTER(len=1000) :: tracername3 &lt;br /&gt;
&lt;br /&gt;
      CALL xios_get_handle(&amp;quot;standard_output_tracers&amp;quot;, fieldgroup_hdl)&lt;br /&gt;
      DO iq = 1, nqtot&lt;br /&gt;
         tracername1 = &amp;quot;tracer_&amp;quot;//TRIM(tracers(iq)%name)&lt;br /&gt;
         CALL xios_add_child(fieldgroup_hdl, field_hdl, tracername1)&lt;br /&gt;
         CALL xios_set_attr(field_hdl, name=TRIM(tracers(iq)%name))&lt;br /&gt;
      END DO&lt;br /&gt;
&lt;br /&gt;
      CALL xios_get_handle(&amp;quot;standard_output_tracers_init&amp;quot;, fieldgroup_hdl)&lt;br /&gt;
      DO iq = 1, nqtot&lt;br /&gt;
         tracername2 = &amp;quot;tracer_&amp;quot;//TRIM(tracers(iq)%name)//&amp;quot;_init&amp;quot;&lt;br /&gt;
         tracername3 = TRIM(tracers(iq)%name)//&amp;quot;_init&amp;quot;&lt;br /&gt;
         CALL xios_add_child(fieldgroup_hdl, field_hdl, tracername2)&lt;br /&gt;
         CALL xios_set_attr(field_hdl, name=tracername3)&lt;br /&gt;
      END DO&lt;br /&gt;
&lt;br /&gt;
   END SUBROUTINE insert_tracer_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jupiter with DYNAMICO ==&lt;br /&gt;
Using a new dynamical core implies new setting files, in addition or as a replacement of those relevant to '''LMDZ.COMMON''' dynamical core using. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two kind of setting files:&lt;br /&gt;
&lt;br /&gt;
'''A first group relevant to DYNAMICO:'''&lt;br /&gt;
&lt;br /&gt;
- [[The ''context_dynamico.xml'' Input File|''context_dynamico.xml'']]: Configuration file for '''DYNAMICO''' for reading and writing  files using '''XIOS''', mainly used when you want to check the installation of '''ICOSAGCM''' with [[The_DYNAMICO_dynamical_core | an ''Held and Suarez'' test case]]. When your installation, compilation and run environment is fully functional, the dynamic core output files will not (necessarily) be useful and you can disable their writing. &lt;br /&gt;
&lt;br /&gt;
- [[The context_input_dynamico.xml Input File|''context_input_dynamico.xml'']]:&lt;br /&gt;
&lt;br /&gt;
- [[The file_def_dynamico.xml Input File|''file_def_dynamico.xml'']]: Definition of output diagnostic files which will be written into the output files only related to '''ICOSAGCM'''. &lt;br /&gt;
&lt;br /&gt;
- [[The field_def_dynamico.xml Input File|''field_def_dynamico.xml'']]: Definition of all existing variables that can be output from DYNAMICO.&lt;br /&gt;
&lt;br /&gt;
- [[The tracer.def Input File|''tracer.def'']]: Definition of the name and physico-chemical properties of the tracers which will be advected by the dynamical core. For now, there is two files related to tracers, we are working to harmonise it.  &lt;br /&gt;
&lt;br /&gt;
''' A second group relevant to LMDZ.GENERIC physical packages: '''&lt;br /&gt;
&lt;br /&gt;
- [[The context_lmdz_physics.xml Input File|''context_lmdz_physics.xml'']]: File in which are defined the horizontal grid, vertical coordinate, output file(s) definition, with the setting of frequency output writing, time unit, geophysical variables to be written, etc. Each new geophysical variables added here have to be defined in the ''field_def_physics.xml'' file.&lt;br /&gt;
&lt;br /&gt;
- [[The field_def_physics.xml Input File|''field_def_physics.xml'']]: Definition of all existing variables that can be output from the physical packages interfaced with '''DYNAMICO'''. This is where you will add each geophysical fields that you want to appear in the ''Xhistins.nc'' output files. For instance, related to the ''thermal plume scheme'' using for Jupiter's tropospheric dynamics, we have added the following variables: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
             &amp;lt;field id=&amp;quot;h2o_vap&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Vapor mass mixing ratio&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/kg&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;h2o_ice&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Vapor mass mixing ratio&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/kg&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;detr&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Detrainment&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/m2/s&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;entr&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Entrainment&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/m2/s&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;w_plm&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Plume vertical velocity&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;m/s&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The_callphys.def_Input_File|''callphys.def'']]: This setting file is used either with '''DYNAMICO''' or '''LMDZ.COMMON''' and allows the user to choose the physical parametrisation schemes and their appropriate main parameter values relevant to the planet being simulated. In our case of Jupiter, there are some specific parametrisations that should be added or modified from the example given as link at the beginning of this line: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
# Diurnal cycle ?  if diurnal=false, diurnally averaged solar heating&lt;br /&gt;
diurnal      = .false. #.true.&lt;br /&gt;
# Seasonal cycle ? if season=false, Ls stays constant, to value set in &amp;quot;start&amp;quot;&lt;br /&gt;
season       = .true. &lt;br /&gt;
# Tidally resonant orbit ? must have diurnal=false, correct rotation rate in newstart&lt;br /&gt;
tlocked      = .false.&lt;br /&gt;
# Tidal resonance ratio ? ratio T_orbit to T_rotation&lt;br /&gt;
nres         = 1&lt;br /&gt;
# Planet with rings?&lt;br /&gt;
rings_shadow = .false.&lt;br /&gt;
# Compute latitude-dependent gravity field??&lt;br /&gt;
oblate       = .true.&lt;br /&gt;
# Include non-zero flattening (a-b)/a?&lt;br /&gt;
flatten      = 0.06487&lt;br /&gt;
# Needed if oblate=.true.: J2&lt;br /&gt;
J2           = 0.01470&lt;br /&gt;
# Needed if oblate=.true.: Planet mean radius (m)&lt;br /&gt;
Rmean        = 69911000.&lt;br /&gt;
# Needed if oblate=.true.: Mass of the planet (*1e24 kg)&lt;br /&gt;
MassPlanet   = 1898.3&lt;br /&gt;
# use (read/write) a startfi.nc file? (default=.true.)&lt;br /&gt;
startphy_file = .false.&lt;br /&gt;
# constant value for surface albedo (if startphy_file = .false.)&lt;br /&gt;
surfalbedo   = 0.0&lt;br /&gt;
# constant value for surface emissivity (if startphy_file = .false.)&lt;br /&gt;
surfemis     = 1.0&lt;br /&gt;
&lt;br /&gt;
# the rad. transfer is computed every &amp;quot;iradia&amp;quot; physical timestep&lt;br /&gt;
iradia           = 160&lt;br /&gt;
# folder in which correlated-k data is stored ?&lt;br /&gt;
corrkdir         = Jupiter_HITRAN2012_REY_ISO_NoKarko_T460K_article2019_gauss8p8_095&lt;br /&gt;
# Uniform absorption coefficient in radiative transfer?&lt;br /&gt;
graybody         = .false.&lt;br /&gt;
# Characteristic planetary equilibrium (black body) temperature&lt;br /&gt;
# This is used only in the aerosol radiative transfer setup. (see aerave.F)&lt;br /&gt;
tplanet          = 100.&lt;br /&gt;
# Output global radiative balance in file 'rad_bal.out' - slow for 1D!!&lt;br /&gt;
meanOLR          = .false.&lt;br /&gt;
# Variable gas species: Radiatively active ?&lt;br /&gt;
varactive        = .false.&lt;br /&gt;
# Computes atmospheric specific heat capacity and&lt;br /&gt;
# could calculated by the dynamics, set in callphys.def or calculeted from gases.def.&lt;br /&gt;
# You have to choose: 0 for dynamics (3d), 1 for forced in callfis (1d) or 2: computed from gases.def (1d)&lt;br /&gt;
# Force_cpp and check_cpp_match are now deprecated.  &lt;br /&gt;
cpp_mugaz_mode = 0&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if cpp_mugaz_mode = 1]&lt;br /&gt;
cpp              = 11500.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if cpp_mugaz_mode = 1]&lt;br /&gt;
mugaz            = 2.30&lt;br /&gt;
### DEBUG&lt;br /&gt;
# To not call abort when temperature is outside boundaries:&lt;br /&gt;
strictboundcorrk = .false.&lt;br /&gt;
# To not stop run when temperature is greater than 400 K for H2-H2 CIA dataset:   &lt;br /&gt;
strictboundcia = .false.&lt;br /&gt;
# Add temperature sponge effect after radiative transfer?&lt;br /&gt;
callradsponge    = .false.&lt;br /&gt;
&lt;br /&gt;
Fat1AU = 1366.0&lt;br /&gt;
&lt;br /&gt;
## Other physics options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# call turbulent vertical diffusion ?&lt;br /&gt;
calldifv    = .false.&lt;br /&gt;
# use turbdiff instead of vdifc ?&lt;br /&gt;
UseTurbDiff = .true.&lt;br /&gt;
# call convective adjustment ?&lt;br /&gt;
calladj     = .true.&lt;br /&gt;
# call thermal plume model ?&lt;br /&gt;
calltherm   = .true.&lt;br /&gt;
# call thermal conduction in the soil ?&lt;br /&gt;
callsoil    = .false.&lt;br /&gt;
# Internal heat flux (matters only if callsoil=F)&lt;br /&gt;
intheat     = 7.48&lt;br /&gt;
# Remove lower boundary (e.g. for gas giant sims)&lt;br /&gt;
nosurf      = .true.&lt;br /&gt;
#########################################################################&lt;br /&gt;
## extra non-standard definitions for Earth&lt;br /&gt;
#########################################################################&lt;br /&gt;
&lt;br /&gt;
## Thermal plume model options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
dvimpl               = .true.&lt;br /&gt;
r_aspect_thermals    = 2.0&lt;br /&gt;
tau_thermals         = 0.0&lt;br /&gt;
betalpha             = 0.9&lt;br /&gt;
afact                = 0.7&lt;br /&gt;
fact_epsilon         = 2.e-4&lt;br /&gt;
alpha_max            = 0.7&lt;br /&gt;
fomass_max           = 0.5&lt;br /&gt;
pres_limit           = 2.e5&lt;br /&gt;
&lt;br /&gt;
## Tracer and aerosol options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Ammonia cloud (Saturn/Jupiter)?&lt;br /&gt;
aeronh3             = .true.&lt;br /&gt;
size_nh3_cloud      = 10.D-6&lt;br /&gt;
pres_nh3_cloud      = 1.1D5                        # old: 9.D4&lt;br /&gt;
tau_nh3_cloud       = 10.                          # old: 15.&lt;br /&gt;
# Radiatively active aerosol (Saturn/Jupiter)?&lt;br /&gt;
aeroback2lay         = .true.&lt;br /&gt;
optprop_back2lay_vis = optprop_jupiter_vis_n20.dat&lt;br /&gt;
optprop_back2lay_ir  = optprop_jupiter_ir_n20.dat&lt;br /&gt;
obs_tau_col_tropo    = 4.0&lt;br /&gt;
size_tropo           = 5.e-7&lt;br /&gt;
pres_bottom_tropo    = 8.0D4&lt;br /&gt;
pres_top_tropo       = 1.8D4&lt;br /&gt;
obs_tau_col_strato   = 0.1D0&lt;br /&gt;
# Auroral aerosols (Saturn/Jupiter)?&lt;br /&gt;
aeroaurora         = .false.&lt;br /&gt;
size_aurora        = 3.e-7&lt;br /&gt;
obs_tau_col_aurora = 2.0&lt;br /&gt;
&lt;br /&gt;
# Radiatively active CO2 aerosol?&lt;br /&gt;
aeroco2            = .false.&lt;br /&gt;
# Fixed CO2 aerosol distribution?&lt;br /&gt;
aerofixco2     = .false.&lt;br /&gt;
# Radiatively active water aerosol?&lt;br /&gt;
aeroh2o        = .false.&lt;br /&gt;
# Fixed water aerosol distribution?&lt;br /&gt;
aerofixh2o     = .false.&lt;br /&gt;
# basic dust opacity&lt;br /&gt;
dusttau        = 0.0&lt;br /&gt;
# Varying H2O cloud fraction?&lt;br /&gt;
CLFvarying     = .false.&lt;br /&gt;
# H2O cloud fraction if fixed?&lt;br /&gt;
CLFfixval      = 0.0&lt;br /&gt;
# fixed radii for cloud particles?&lt;br /&gt;
radfixed       = .false.&lt;br /&gt;
# number mixing ratio of CO2 ice particles&lt;br /&gt;
Nmix_co2       = 100000.&lt;br /&gt;
# number mixing ratio of water particles (for rafixed=.false.)&lt;br /&gt;
Nmix_h2o       = 1.e7&lt;br /&gt;
# number mixing ratio of water ice particles (for rafixed=.false.)&lt;br /&gt;
Nmix_h2o_ice   = 5.e5&lt;br /&gt;
# radius of H2O water particles (for rafixed=.true.):&lt;br /&gt;
rad_h2o        = 10.e-6&lt;br /&gt;
# radius of H2O ice particles (for rafixed=.true.):&lt;br /&gt;
rad_h2o_ice    = 35.e-6&lt;br /&gt;
# atm mass update due to tracer evaporation/condensation?&lt;br /&gt;
mass_redistrib = .false.&lt;br /&gt;
&lt;br /&gt;
## Water options &lt;br /&gt;
## ~~~~~~~~~~~~~&lt;br /&gt;
# Model water cycle&lt;br /&gt;
water         = .true.&lt;br /&gt;
# Model water cloud formation&lt;br /&gt;
watercond     = .true.&lt;br /&gt;
# Model water precipitation (including coagulation etc.)&lt;br /&gt;
waterrain     = .true.&lt;br /&gt;
# Use simple precipitation scheme?&lt;br /&gt;
precip_scheme = 1&lt;br /&gt;
# Evaporate precipitation?&lt;br /&gt;
evap_prec     = .true.&lt;br /&gt;
# multiplicative constant in Boucher 95 precip scheme&lt;br /&gt;
Cboucher      = 1.&lt;br /&gt;
# Include hydrology ?&lt;br /&gt;
hydrology     = .false.&lt;br /&gt;
# H2O snow (and ice) albedo ?&lt;br /&gt;
albedosnow    = 0.6&lt;br /&gt;
# Maximum sea ice thickness ?&lt;br /&gt;
maxicethick   = 10.&lt;br /&gt;
# Freezing point of seawater (degrees C) ?&lt;br /&gt;
Tsaldiff      = 0.0&lt;br /&gt;
# Evolve surface water sources ?&lt;br /&gt;
sourceevol    = .false.&lt;br /&gt;
&lt;br /&gt;
## CO2 options &lt;br /&gt;
## ~~~~~~~~~~~&lt;br /&gt;
# call CO2 condensation ?&lt;br /&gt;
co2cond       = .false.&lt;br /&gt;
# Set initial temperature profile to 1 K above CO2 condensation everywhere?&lt;br /&gt;
nearco2cond   = .false.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The_gases.def_Input_file|''gases.def'']]: File containing the gas composition of the atmosphere you want to model, with their molar mixing ratios. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
# gases&lt;br /&gt;
5&lt;br /&gt;
H2_&lt;br /&gt;
He_&lt;br /&gt;
CH4&lt;br /&gt;
C2H2&lt;br /&gt;
C2H6&lt;br /&gt;
0.863&lt;br /&gt;
0.134&lt;br /&gt;
0.0018&lt;br /&gt;
1.e-7&lt;br /&gt;
1.e-5&lt;br /&gt;
# First line is number of gases&lt;br /&gt;
# Followed by gas names (always 3 characters)&lt;br /&gt;
# and then molar mixing ratios.&lt;br /&gt;
# mixing ratio -1 means the gas is variable.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The jupiter_const.def Input File|''jupiter_const.def'']]: Files that gather all orbital and physical parameters of Jupiter.&lt;br /&gt;
&lt;br /&gt;
- [[The_traceur.def_Input_File|''traceur.def'']]: At this time, only two tracers are used for modelling Jupiter atmosphere, so the ''traceur.def'' file is summed up as follow&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
2&lt;br /&gt;
h2o_vap&lt;br /&gt;
h2o_ice&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Two additional files are used to set the running parameter of the simulation itself:'''&lt;br /&gt;
&lt;br /&gt;
- [[The run_icosa.def Input File | ''run_icosa.def'']]: file containing parameters for '''ICOSAGCM''' to execute the simulation, use to determine the [[Advanced Use of the GCM | horizontal and vertical resolutions]], the number of processors, the number of subdivisions, the duration of the simulation, etc.&lt;br /&gt;
&lt;br /&gt;
- ''run.def'': file which brings together all the setting files and will be reading by the interface '''ICOSA_LMDZ''' to link each part of the model ('''ICOSAGCM''', '''LMDZ.GENERIC''') with its particular setting file(s) when the library '''XIOS''' does not take action (through the ''.xml'' files).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
###########################################################################&lt;br /&gt;
### INCLUDE OTHER DEF FILES (physics, specific settings, etc...)&lt;br /&gt;
###########################################################################&lt;br /&gt;
INCLUDEDEF=run_icosa.def&lt;br /&gt;
&lt;br /&gt;
INCLUDEDEF=jupiter_const.def&lt;br /&gt;
&lt;br /&gt;
INCLUDEDEF=callphys.def&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
prt_level=0&lt;br /&gt;
&lt;br /&gt;
## iphysiq must be same as itau_physics&lt;br /&gt;
iphysiq=40&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hot Jupiter with DYNAMICO ==&lt;br /&gt;
&lt;br /&gt;
Modelling the atmosphere of Hot Jupiter is challenging because of the extreme temperature conditions, and the fact that these planets are gas giants. Therefore, using a dynamical core such as Dynamico is strongly recommended. Here, we discuss how to perform a cloudless simulation of the Hot Jupiter WASP-43 b, using Dynamico.&lt;br /&gt;
&lt;br /&gt;
'''1st step''': You need to go to the github mentionned previously for Dynamico: https://github.com/aymeric-spiga/dynamico-giant. ''Git clone'' this repo on your favorite cluster, and ''checkout'' to the &amp;quot;hot_jupiter&amp;quot; branch.&lt;br /&gt;
&lt;br /&gt;
'''2nd step''': Now, run the install.sh script. This script will install '''all''' the required models ('''LMDZ.COMMON''', '''LMDZ.GENERIC''','''ICOSA_LMDZ''','''XIOS''','''FCM''','''ICOSAGCM'''). At this point, you only miss '''IOIPSL'''. To install it, go to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
dynamico-giant/code/LMDZ.COMMON/ioipsl/ &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There, you will find some examples of installations script. You need to create one that will work on your cluster, with your own arch files.&lt;br /&gt;
During the installation of '''IOIPSL''', you might be asked for a login/password. Contact TGCC computing center to get access.&lt;br /&gt;
&lt;br /&gt;
'''3rd step''': Great, now we have all we need to get started. Navigate to the ''hot_jupiter'' folder. You will find a ''compile_mesopsl.sh'' and a ''compile_occigen.sh'' script. Use them as examples to create the compile script adapted to your own cluster, then run it. &lt;br /&gt;
While running, I suggest that you take a look at the ''log_compile'' file. The compilation can take a while (~ 10minutes, especially because of XIOS). On quick trick to make sure that everything went right is to check the number of ''Build command finished'' messages in ''log_compile''. If everything worked out, there should be 6 of them.&lt;br /&gt;
&lt;br /&gt;
'''4th step''': Okay, the model compiled, good job ! Now we need to create the initial condition for our run. In the hot_jupiter1d folder, you already have a ''temp_profile.txt'' computed with the 1D version of the LMDZ.GENERIC (see rcm1d on this page). Thus, no need to recompute a 1D model but it will be needed if you want to model another Hot Jupiter.&lt;br /&gt;
Navigate to the 'makestart' folder, located at &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
dynamico-giant/hot_jupiter/makestart/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To generate the initial conditions for the 3D run, we're gonna start the model using the temperature profile from the 1D run. to do that, you will find a &amp;quot;job_mpi&amp;quot; script. Open it, and adapt it to your cluster and launch the job. This job is using 20 procs, and it runs 5 days of simulations. &lt;br /&gt;
If everything goes well, you should see few netcdf files appear. The important ones are '''start_icosa0.nc''', '''startfi0.nc''' and '''Xhistins.nc'''. &lt;br /&gt;
If you see these files, you're all set to launch a real simulation !&lt;br /&gt;
&lt;br /&gt;
'''5th step''': Go back to ''hot_jupiter'' folder. There are a bunch of script to launch your simulation. Take a look at the ''astro_fat_mpi'' script, and adapt it to your cluster. Then you can launch your simulation by doing &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
./run_astro_fat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will start the simulation, using 90 procs. In the same folder, check if the icosa_lmdz.out file is created. This is the logfile of the simulation, while it is running. You can check there that everything is going well.&lt;br /&gt;
&lt;br /&gt;
'''Important side note''': When using the ''run_astro_fat'' script to run a simulation, it will run a chained simulation, restarting the simulation from the previous state after 100 days of simulations and generating ''Xhistins.nc'' files. This is your results file, where you will find all the variables that controls your atmosphere (temperature field, wind fields, etc..). &lt;br /&gt;
&lt;br /&gt;
Good luck and enjoy the generic PCM Dynamico for Hot Jupiter !&lt;br /&gt;
&lt;br /&gt;
'''2nd important side note''': These 5 steps are the basic needed steps to run a simulation. If you want to tune simulations to another planet, or change other stuff, you need to take a look at '''*.def''' and '''*.xml''' files. If you're lost in all of this, take a look at the different pages of this website and/or contact us !&lt;br /&gt;
Also, you might want to check the wiki on the [https://github.com/aymeric-spiga/dynamico-giant ''Github''], that explains a lot of settings for Dynamico&lt;br /&gt;
&lt;br /&gt;
= 3D LES setup =&lt;br /&gt;
&lt;br /&gt;
== Proxima b with LES ==&lt;br /&gt;
&lt;br /&gt;
To model the subgrid atmospheric turbulence, the [[WRF dynamical core for LES/mesoscale simulations|'''WRF''']] dynamical core coupled with the LMD Generic physics package is used. The first studied conducted was to resolve the convective activity of the substellar point of Proxami-b (Lefevre et al 2021). The impact of the stellar insolation and rotation period were studied. The files for the reference case, with a stellar flux of 880 W/m2 and an 11 days rotation period, are presented&lt;br /&gt;
&lt;br /&gt;
The input_* file are the used to initialize the temperature, pressure, winds and moisture of the domain. &lt;br /&gt;
input_souding : altitude (km), potential temperature, water vapour (kg/kg), u, v&lt;br /&gt;
input_therm : normalized gas constant, isobaric heat capacity, pressure, density, temperature&lt;br /&gt;
input_hr : SW heating, LW heating, Large-scale heating extracted from the GCM. Only the last one is used in this configuration.&lt;br /&gt;
&lt;br /&gt;
The file namelist.input is used to set up the domain parameters (resolution, grid points, etc). The file levels specifies the eta-levels of the vertical domain.&lt;br /&gt;
&lt;br /&gt;
Planet is used set up the atmospheric parameters, in order : gravity (m/s2), isobaric heat capacity (J/kg/K), molecular mass (g/mol), reference temperature (K), surface pressure (Pa), planet radius (m) and planet rotation rate (s-1).&lt;br /&gt;
&lt;br /&gt;
The files *.def are the parameter for the physics. Compared to GCM runs, the convective adjustment in callphys.def is turned off&lt;br /&gt;
&lt;br /&gt;
The file controle.txt, equivalent of the field controle in GCM start.nc, needed to initialize some physics constants.&lt;br /&gt;
&lt;br /&gt;
TBC ML&lt;br /&gt;
&lt;br /&gt;
= 1D setups =&lt;br /&gt;
&lt;br /&gt;
== rcm1d program ==&lt;br /&gt;
&lt;br /&gt;
Running the model in 1D (i.e. considering simply a column of atmosphere) is a common first step to test a new setup. To do so, you first have to compile the 1D version of the model. The command line is very similar to [[Quick_Install_and_Run#Compiling a test case (early Mars)|the one for the 3D]], except for 2 changes:&lt;br /&gt;
# put just the vertical resolution after the -d option (&amp;quot;VERT&amp;quot; instead of ''LON''x''LAT''x''VERT'' for the 3D case)&lt;br /&gt;
# at the end of the line, replace &amp;quot;gcm&amp;quot; with &amp;quot;rcm1d&amp;quot;&lt;br /&gt;
It will generate a file called '''rcm1d_XX_phyxxx_seq.e''', where ''XX'' and ''phyxxx'' are the vertical resolution and the physics package, respectively.&lt;br /&gt;
&lt;br /&gt;
Check out the [[Generic unicolumn rcm1d program| dedicated page about rcm1d]] for more details.&lt;br /&gt;
&lt;br /&gt;
Note that the '''.def''' files differ a bit from the 3D case. Indeed, the 1D run.def contains different information and needs to hold the key &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt;; see [[The_1D_run.def_Input_File|'''run.def''']]. In addition, the 1D model generally does not use [[The_start.nc_and_startfi.nc_input_files|'''start.nc''']] or [[The_start.nc_and_startfi.nc_input_files|'''startfi.nc''']] files to initialize. You can find examples of 1D configuration in ''LMDZ.GENERIC/deftank'' (e.g. '''run.def.earlymars1d''', '''run.def.earth1d'''), the best thing is to have a look at them.&lt;br /&gt;
&lt;br /&gt;
== kcm1d program ==&lt;br /&gt;
&lt;br /&gt;
Our 1-D inverse model&lt;br /&gt;
&lt;br /&gt;
TBD by Guillaume or Martin&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-DYNAMICO]]&lt;br /&gt;
[[Category:Generic-WRF]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3286</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3286"/>
				<updated>2026-06-12T14:06:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is suitable for 1D: see [[The 1D run.def Input File]]. Especially, the 1D file has to hold the key &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_1D_run.def_Input_File&amp;diff=3285</id>
		<title>The 1D run.def Input File</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_1D_run.def_Input_File&amp;diff=3285"/>
				<updated>2026-06-12T14:05:44Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: Created page with &amp;quot;== The run.def input file and its format ==  === some general comments and disambiguation to start with === This pages specifically focuses on the ''run.def'' file used by the...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The run.def input file and its format ==&lt;br /&gt;
&lt;br /&gt;
=== some general comments and disambiguation to start with ===&lt;br /&gt;
This pages specifically focuses on the ''run.def'' file used by the 1D version of the Generic PCM. &lt;br /&gt;
&lt;br /&gt;
The run.def file is very similar to the [[The_run.def_Input_File|'''run.def''']] file, with the difference that the 3D options (linked to the dynamic core) are not used, and a whole bunch of new 1D-specific options (information contained in the start and startfi files) are now in the 1D run.def file. Especially, the 1D file has to hold the key &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Reference def files ==&lt;br /&gt;
Reference *.def files are provided in the LMDZ.GENERIC/deftank directory&lt;br /&gt;
&lt;br /&gt;
== Outputted used_*def files ==&lt;br /&gt;
When the GCM run finishes, for each of the input def files *.def, an ASCII output file '''used_*.def''' is generated (in practice this would be '''used_run.def''' and '''used_callphys.def''' for the 1D simulations). These files contain, along the same format as the *.def input files, the &amp;quot;key = value&amp;quot; that were used, along with comments about whether &amp;quot;value&amp;quot; was read in the input def file or if the code default was used (i.e. the sought &amp;quot;keyword&amp;quot; was not present in the input def files).&lt;br /&gt;
&lt;br /&gt;
== Example of 1D ''run.def'' file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#---------------------------------#&lt;br /&gt;
# Run parameters for the 1D model #                                         &lt;br /&gt;
#---------------------------------#&lt;br /&gt;
&lt;br /&gt;
run_1d=.true.&lt;br /&gt;
&lt;br /&gt;
## Planetary constants&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## NB: those are mandatory&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## LENGTH OF A DAY in s&lt;br /&gt;
daysec         = 86400.&lt;br /&gt;
## GRAVITY in m s-2&lt;br /&gt;
g              = 3.72&lt;br /&gt;
## Radius of the planet, in m&lt;br /&gt;
rad = 3390000&lt;br /&gt;
## LENGTH OF A YEAR in days&lt;br /&gt;
year_day       = 3000&lt;br /&gt;
## MIN DIST STAR-PLANET in AU [periastron]&lt;br /&gt;
periastr       = 1.0&lt;br /&gt;
## MAX DIST STAR-PLANET in AU [apoastron]&lt;br /&gt;
apoastr        = 1.0&lt;br /&gt;
## DATE OF PERIASTRON in days&lt;br /&gt;
peri_day       = 0.&lt;br /&gt;
## OBLIQUITY in deg&lt;br /&gt;
obliquit       = 0.&lt;br /&gt;
## SURFACE PRESSURE in Pa&lt;br /&gt;
psurf          = 100000.&lt;br /&gt;
&lt;br /&gt;
## Time integration parameters&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Initial date (in solar days,=0 at Ls=0)&lt;br /&gt;
day0           = 0&lt;br /&gt;
# Initial local time (in hours, between 0 and 24)&lt;br /&gt;
time           = 12 &lt;br /&gt;
# Number of time steps per sol&lt;br /&gt;
day_step       = 40&lt;br /&gt;
# Number of sols to run &lt;br /&gt;
ndt            = 1000&lt;br /&gt;
# Number of steps between each writing in diagfi &lt;br /&gt;
diagfi_output_rate=12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Vertical levels&lt;br /&gt;
## ~~~~~~~~~~~~~~~&lt;br /&gt;
# hybrid vertical coordinate ? (.true. for hybrid and .false. for sigma levels)&lt;br /&gt;
hybrid         = .true.&lt;br /&gt;
# autocompute vertical discretisation? (useful for exoplanet runs)&lt;br /&gt;
autozlevs      = .false.&lt;br /&gt;
# Ceiling pressure (Pa) ?&lt;br /&gt;
pceil          = 0.00001&lt;br /&gt;
&lt;br /&gt;
## Thermal properties&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Simulate global averaged conditions ? &lt;br /&gt;
global1d       = .true.&lt;br /&gt;
# Latitude (deg) [only used if global1d = F]&lt;br /&gt;
latitude       = 0.0&lt;br /&gt;
# Solar Zenith angle (deg) [only used if global1d = T]&lt;br /&gt;
szangle        = 60. &lt;br /&gt;
# Force specific heat capacity and molecular mass values&lt;br /&gt;
force_cpp      = .false.&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if force_cpp = T]&lt;br /&gt;
cpp            = 0.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if force_cpp = T]&lt;br /&gt;
mugaz          = 18.&lt;br /&gt;
# Albedo of bare ground&lt;br /&gt;
albedo         = 0.1&lt;br /&gt;
# Emissivity of bare ground&lt;br /&gt;
emis           = 1.0&lt;br /&gt;
# Soil thermal inertia (SI)&lt;br /&gt;
inertia        = 1000.&lt;br /&gt;
# Initial CO2 ice on the surface (kg.m-2)&lt;br /&gt;
co2ice         = 0.&lt;br /&gt;
&lt;br /&gt;
## Wind profile&lt;br /&gt;
## ~~~~~~~~~~~~&lt;br /&gt;
## zonal eastward component of the geostrophic wind (m/s)&lt;br /&gt;
u              = 10.&lt;br /&gt;
# meridional northward component of the geostrophic wind (m/s)&lt;br /&gt;
v              = 0.&lt;br /&gt;
&lt;br /&gt;
## Initial atmospheric temperature profile&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
#&lt;br /&gt;
# Type of initial temperature profile&lt;br /&gt;
#         ichoice=1   Constant Temperature:  T=tref&lt;br /&gt;
#         [Mars] ichoice=2   Savidjari profile (as Seiff but with dT/dz=cte)&lt;br /&gt;
#         [Mars] ichoice=3   Lindner (polar profile)&lt;br /&gt;
#         [Mars] ichoice=4   inversion&lt;br /&gt;
#         [Mars] ichoice=5   Seiff  (standard profile, based on Viking entry)&lt;br /&gt;
#         ichoice=6   constant T  +  gaussian perturbation (levels)&lt;br /&gt;
#         ichoice=7   constant T  + gaussian perturbation (km)&lt;br /&gt;
#         ichoice=8   Read in an ascii file &amp;quot;profile&amp;quot; &lt;br /&gt;
ichoice        = 1&lt;br /&gt;
# Reference temperature tref (K)&lt;br /&gt;
tref           = 300. &lt;br /&gt;
# Add a perturbation to profile if isin=1&lt;br /&gt;
isin           = 0&lt;br /&gt;
# peak of gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
pic            = 26.522&lt;br /&gt;
# width of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
largeur        = 10&lt;br /&gt;
# height of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
hauteur        = 30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
* Lines beginning with a hashtag are comments&lt;br /&gt;
* values associated to keywords may be logicals, integers, reals or even strings&lt;br /&gt;
* The parsing is case-sensitive : &amp;quot;thisparameter=&amp;quot; and &amp;quot;ThisParameter=&amp;quot; are identified as two distinct keywords&lt;br /&gt;
* The order in which the parameters are given in the file does not matter (except if a parameter is specified multiple times, clearly a bad idea, and then the last occurrence will prevail).&lt;br /&gt;
* Accessing a parameter and its value from ''run.def'' in the Fortran code is done using the '''getin_p''' routine, e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
       call getin_p(&amp;quot;keyword&amp;quot;,val)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will look for the line with &amp;quot;keyword = &amp;quot; in file ''run.def'' and extract trailing value which will be use to set the value of the  '''val''' variable in the code.&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;br /&gt;
[[Category:WhatIs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Dynamico-giant&amp;diff=3284</id>
		<title>Dynamico-giant</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Dynamico-giant&amp;diff=3284"/>
				<updated>2026-06-12T13:30:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* comment changer le bottom du modele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[transferred from github, now active here]&lt;br /&gt;
&lt;br /&gt;
= 1. Introduction =&lt;br /&gt;
&lt;br /&gt;
Modeling the atmospheric circulation of giant planets of our solar System (Jupiter, Saturn, Uranus and Neptune) require high horizontal resolution grid: typically, half a degree (in latitude, longitude) for Jupiter and Saturn, and one degree for Uranus and Neptune. &lt;br /&gt;
For this reason, GCM runs for giant planets use the DYNAMICO dynamical core (see [[The_DYNAMICO_dynamical_core|Dynamico]]), coupled to the Generic physics (see [[Overview_of_the_Generic_PCM|Generic-PCM]]).&lt;br /&gt;
&lt;br /&gt;
= 2. Installation =&lt;br /&gt;
&lt;br /&gt;
== A) Fichiers d'architecture ==&lt;br /&gt;
&lt;br /&gt;
=== - Modules ===&lt;br /&gt;
&lt;br /&gt;
Two options:&lt;br /&gt;
&lt;br /&gt;
1/ Before installation, set environment (do it once) in your .bash_profile.&lt;br /&gt;
&lt;br /&gt;
Example for Ciclad:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ulimit -s unlimited&lt;br /&gt;
# modules&lt;br /&gt;
module purge&lt;br /&gt;
module load gnu/4.9.3 &lt;br /&gt;
module load intel/15.0.6.233&lt;br /&gt;
module load openmpi/1.6.5-ifort&lt;br /&gt;
module load hdf5/1.8.18-parallel-ifort&lt;br /&gt;
module load netcdf4/4.4.1.1-parallel-ifort&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beware, if you change version of model (newer or older version), it's possible that you have to change modules...&lt;br /&gt;
&lt;br /&gt;
2/ Or, in your script that launches a job, source a .env file (' source .../dynamico-giant/code/ARCH/arch-ADASTRA-gnu.env ')&lt;br /&gt;
&lt;br /&gt;
=== - Installation sur un nouveau cluster ===&lt;br /&gt;
&lt;br /&gt;
En pratique LMDZ.COMMON, ICOSA_LMDZ et IOIPSL peuvent utiliser exactement le même fichier arch.fcm ; mais celui pour ICOSAGCM est légèrement différent (les %FPP_DEF diffèrent, peut-être aussi le %FPP).&lt;br /&gt;
&lt;br /&gt;
make_icosa_lmdz doit être lancé avec -arch_path ../ARCH puisque les arch.env et arch.path communs se trouvent dans ../ARCH (l'option -arch_path ne concerne d'ailleurs que les fichiers arch.env et arch.path; le fichier arch.fcm recherché sera toujours celui dans le &amp;amp;quot;arch&amp;amp;quot; de chacun des modèles. Donc il faut bien mettre pour chacun des quatre modèles (LMDZ.COMMON, ICOSA_LMDZ,IOIPSL et ICOSAGCM) le arch.fcm dans le sous-dossier arch/ du modèle correspondant.&lt;br /&gt;
&lt;br /&gt;
L'installation d'IOIPSL doit se faire à partir du bon script bash. Si vous utilisez un server autre qu'occigen, il vous faut changer le nom du script à utiliser dans install_ioipsl.sh. Par exemple, il vous faudra utiliser install_ioipsl_ciclad-ifort.bash pour CICLAD.&lt;br /&gt;
&lt;br /&gt;
XIOS est écrit en C++, et pas en Fortran. Le fichier arch.fcm correspondant est donc nécessairement différent de celui des quatre autres modèles. Pour créér ce arch.fcm, prendre exemple sur les fichiers .fcm déjà présent dans XIOS/arch/, avec une architecture similaire à celle du nouveau cluster. En particulier, il faut utiliser des versions de gcc/gfortran &amp;amp;gt; 6+. Il faut absolument avoir une bibliothèque HDF5 compilée en parallèle, ainsi que netcdf-C et netcdf-fortran (et peut être aussi netcdf-Cxx) compilé en parallèle. Sans ça, il sera peut-être possible de compiler le modèle, mais pas de lancer une simulation en utilisant XIOS.&lt;br /&gt;
&lt;br /&gt;
== B. Download ==&lt;br /&gt;
&lt;br /&gt;
Download structure&lt;br /&gt;
&lt;br /&gt;
Take place on a repository and git clone the model.&lt;br /&gt;
&lt;br /&gt;
On occigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $SCRATCHDIR&lt;br /&gt;
git clone https://github.com/aymeric-spiga/dynamico-giant.git [optional different name]&amp;lt;/pre&amp;gt;&lt;br /&gt;
== C. Install ==&lt;br /&gt;
&lt;br /&gt;
Install code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd dynamico-giant&lt;br /&gt;
./install.sh&lt;br /&gt;
./install_ioipsl.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
A login and a password are necessary to install IOIPSL (only for the first time, after that we can save them). Please contact TGCC computing center to get the login/password.&lt;br /&gt;
&lt;br /&gt;
After that, please add &amp;amp;quot;$PWD&amp;amp;quot;/FCM_V1.2/bin/ to PATH environment variable.&lt;br /&gt;
&lt;br /&gt;
Ant that's all, we can now change parameters of files or compile the code to do a test (part 6) or eat a beautiful tartiflette (can be also do during compilation).&lt;br /&gt;
&lt;br /&gt;
= 3. General parameters =&lt;br /&gt;
&lt;br /&gt;
== A) Mesh grid &amp;amp;amp; resolution ==&lt;br /&gt;
&lt;br /&gt;
On run_icosa.def:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nbp --&amp;amp;gt; number of subdivision on a main triangle: integer (default=40)&lt;br /&gt;
        nbp = sqrt((nbr_lat x nbr_lon)/10)&lt;br /&gt;
        nbp                 20  40  80 160&lt;br /&gt;
        T-edge length (km) 500 250 120  60&lt;br /&gt;
        Example: nbp(128x96)=35 -&amp;amp;gt; 40&lt;br /&gt;
                 nbp(256x192)=70 -&amp;amp;gt; 80&lt;br /&gt;
                 nbp(360x720)=160 -&amp;amp;gt; 160&lt;br /&gt;
nsplit_i, nsplit_j --&amp;amp;gt; sub splitting of main rhombus: integer&lt;br /&gt;
                        Example: for nbp=80, nsplit_i=4,nsplit_j=6&lt;br /&gt;
                        nbp/nsplit_{i,j} = 20 &amp;amp;gt; 10 &amp;amp;amp; 13 &amp;amp;gt; 10 --&amp;amp;gt; GOOD&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== - Remapping ===&lt;br /&gt;
&lt;br /&gt;
Pour le remapping, il faut aller dans context_lmdz_physics.xml changer les paramètres ni_glo et nj_glo par exemple pour remapper sur du lat/lon à 360 pts en latitude et 720 pts en longitude (0.5°).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;domain id=&amp;amp;quot;dom_regular&amp;amp;quot; ni_glo=&amp;amp;quot;720&amp;amp;quot; nj_glo=&amp;amp;quot;360&amp;amp;quot; type=&amp;amp;quot;rectilinear&amp;amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B) Time ==&lt;br /&gt;
&lt;br /&gt;
* ndays is number of days to simulate.&lt;br /&gt;
* day_step is number of dynamical time step per day&lt;br /&gt;
* Dynamics called every day_length(in s) / day_step per day&lt;br /&gt;
* 1 ts (physical timestep) = (day_length(in s)/day_step) x itau_physics&lt;br /&gt;
* Physics called (day_step / itau_physics) per day&lt;br /&gt;
* Physics called day_length(in s) / ts per day&lt;br /&gt;
* Radiative called every Physics x iradia physical timestep&lt;br /&gt;
* Radiative called every iradia/Physics days&lt;br /&gt;
&lt;br /&gt;
== C) Sponge layer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;iflag_sponge=0 for no sponge (default)&lt;br /&gt;
iflag_sponge=1 for sponge over 4 topmost layers&lt;br /&gt;
iflag_sponge=2 for sponge from top to ~1% of top layer pressure&lt;br /&gt;
mode_sponge=1 for u,v --&amp;amp;gt; 0&lt;br /&gt;
mode_sponge=2 for u,v --&amp;amp;gt; zonal mean&lt;br /&gt;
mode_sponge=3 for u,v,h --&amp;amp;gt; zonal mean&lt;br /&gt;
tau_sponge --&amp;amp;gt; damping frequency at last layer&lt;br /&gt;
           --&amp;amp;gt; e-5 medium / e-4 strong yet reasonable / e-3 very strong&amp;lt;/pre&amp;gt;&lt;br /&gt;
Spiga et al (2020): Shaw and Shepherd (2007) showed that the inclusion of sponge-layer parameterizations that do not conserve angular momentum (which is the case for Rayleigh drag), or allow for momentum to escape to space, implies a sensitivity of the dynamical results (especially zonal wind speed) to the choice for model top or drag characteristic timescale, because of spurious downward influence when momentum conservation is violated.&lt;br /&gt;
&lt;br /&gt;
Il ne faut donc pas ajouter de sponge layer pour les planètes géantes (iflag_sponge = 0)&lt;br /&gt;
&lt;br /&gt;
== D) Dissipation ==&lt;br /&gt;
&lt;br /&gt;
Spiga et al (2020): A subgrid-scale dissipation term is included in our Saturn DYNAMICO GCM to prevent the accumulation of energy at scales close to the grid resolution, caused by the GCM not resolving the turbulent scales at which this energy is dissipated. This hyperviscosity term is written in our Saturn DYNAMICO model as an iterated Laplacian term on a given variable. The three variables denoted are vorticity, divergence, and potential temperature, chosen to set horizontal dissipation on respectively the rotational component of the flow (e.g. Rossby waves), the divergent component of the flow (e.g. gravity waves), and the diabatic perturbations (e.g. coming from the physical packages).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;tau_graddiv --&amp;amp;gt; dissipation timescale of smallest wvl: u,v (gradiv) : real (default=5000)&lt;br /&gt;
tau_gradrot --&amp;amp;gt; dissipation timescale of smallest wvl: u,v (nxgradrot) : real (default=5000)&lt;br /&gt;
tau_divgrad --&amp;amp;gt; dissipation timescale of smallest wvl: h (divgrad) : real (default=5000)&lt;br /&gt;
nitergdiv --&amp;amp;gt; number of iterations for gradiv operator : integer (default=1)&lt;br /&gt;
nitergrot --&amp;amp;gt; number of iterations for nxgradrot operator : integer (default=1)&lt;br /&gt;
niterdivgrad --&amp;amp;gt; number of iterations for divgrad operator : integer (default=1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
tau_graddiv,tau_gradrot,tau_divgrad correspondent au temps de dissipation (plus c'est petit, plus la dissipation est efficace). nitergdiv,nitergrot,niterdivgrad correspondent à l'ordre du laplacien (plus c'est grand, plus on dissipe sélectivement les petites échelles).&lt;br /&gt;
&lt;br /&gt;
Attention, Trop dissiper -&amp;amp;gt; instabilité numérique&lt;br /&gt;
&lt;br /&gt;
Pas assez dissiper -&amp;amp;gt; instabilité dynamique trop forte&lt;br /&gt;
&lt;br /&gt;
L'ordre du laplacien dans les fichiers .def est suffisant. S'il faut changer la dissipation, il vaut mieux changer les temps de dissipation que l'ordre du laplacien (risque d'instabilité numérique).&lt;br /&gt;
&lt;br /&gt;
=== - Facteurs de dissipation ===&lt;br /&gt;
&lt;br /&gt;
A partir de ces valeurs de temps de dissipation, il est également possible d'ajouter 2 facteurs de dissipation (fac_mid et fac_up) qui permettent d'augmenter la dissipation à partir de certains niveaux. Le fac_mid permet de diminuer le temps de dissipation d'un facteur sur toute l'atmosphère jusqu'au bottom. Il y a une zone transition de quelques niveaux entre le bottom (le temp de dissipation au bottom est sans facteur) et quelques niveaux au-dessus où la valeur du temps de dissipation est avec ce facteur jusqu'au top. On ne peut donc pas choisir l'altitude et la zone de transition avec ce facteur. Quant au fac_up, il permet de diminuer le temps de dissipation d'un facteur à partir d'une altitude et d'une épaisseur de zone de transition qu'on peut choisir. On peut utiliser la combinaison des 2 ou l'un des 2. Pour ne pas prendre en compte ces facteurs de dissipation, il faut qu'il soit mis à 1.&lt;br /&gt;
&lt;br /&gt;
Il existe 2 modes possibles pour le fac_up: le mode martien (en fonction de l'altitude) et le mode vénusien (en fonction de la pression). Dans le 1er cas, il faut renseigner l'altitude où démarre la zone de transition et l'épaisseur de cette zone. Dans le 2ème cas, il faut renseigner la pression où démarre la zone de transition et l'échelle de hauteur de cette zone de transition.&lt;br /&gt;
&lt;br /&gt;
Il est vivement conseillé de tracer votre profil de dissipation à partir des équations (dans vert_prof_dissip_icosa_lmdz.f90) afin d'être certain de leur allure.&lt;br /&gt;
&lt;br /&gt;
== E) Rayleigh Friction ==&lt;br /&gt;
&lt;br /&gt;
Spiga et al 2020: This drag plays the role devoted to surface friction on terrestrial planets, which allows to close the angular momentum budget through downward control (Haynes and McIntyre, 1987; Haynes et al., 1991). This could also be regarded as a zeroth-order parameterization for Magneto-HydroDynamic (MHD) drag as a result of Lorenz forces acting on jet streams putatively extending to the depths of Saturn's interior (Liu et al., 2008; Galanti et al., 2019), much deeper than the shallow GCM's model bottom.&lt;br /&gt;
&lt;br /&gt;
Comme Liu and Schneider (2010), cette couche de frottement ne s'exerce pas aux régions équatoriales car à l’extérieur du cylindre tangeant du rayon équatorial, les cylindres convectifs ne coupent pas cette couche et ne subissent pas les frottements liés aux effets de la MHD.&lt;br /&gt;
&lt;br /&gt;
Le paramètre rayleigh_limlat correspond à la latitude maximale de part et d'autre de l'équateur où cette friction n'est pas observée.&lt;br /&gt;
&lt;br /&gt;
Pour le temps (rayleigh_friction_tau), il est similaire à celui utilisé par Liu and Schneider (2010). Elle est fixée à 100 jours terrestres. Mais attention, on fonction de la valeur, la dynamique peut évoluer dans votre simulation.&lt;br /&gt;
&lt;br /&gt;
== F) Conservation ==&lt;br /&gt;
&lt;br /&gt;
Dans run_icosa.def:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;check_conservation = detailed &lt;br /&gt;
itau_check_conserv = 320&amp;lt;/pre&amp;gt;&lt;br /&gt;
Le itau_check_conserv est comme itau_physics pour que la contribution de la physique à AAM ne soit pas nulle. de plus il est coûteux d'appeler les diagnostics trop souvent.&lt;br /&gt;
&lt;br /&gt;
S. Lebonnois, C. Covey, A. Grossman, H. Parish, G. Schubert, R. Walterscheid, P. Lauritzen, and C. Jablonowski. Angular momentum budget in General Circulation Models of superrotating atmospheres: A critical diagnostic. Journal of Geophysical Research (Planets), 117:E12004, 2012.&lt;br /&gt;
&lt;br /&gt;
P. H. Lauritzen, J. T. Bacmeister, T. Dubos, S. Lebonnois, and M. A. Taylor. Held-Suarez simulations with the Community Atmosphere Model Spectral Element (CAM-SE) dynamical core: A global axial angular momentum analysis using Eulerian and floating Lagrangian vertical coordinates. Journal of Advances in Modeling Earth Systems, 6:129-140, 2014.&lt;br /&gt;
&lt;br /&gt;
== G) Traceur ==&lt;br /&gt;
&lt;br /&gt;
=== - Branche master version du 04/04/2022 dans le dossier Jupiter (traceur) ===&lt;br /&gt;
&lt;br /&gt;
La version actuelle des fichiers de réglage dans le dossier Jupiter est réglée pour utiliser des traceurs. Si vous souhaiter utiliser le modèle sans traceur, il vous faut modifier les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
run_icosa.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        nqtot = 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
traceur.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        0&amp;lt;/pre&amp;gt;&lt;br /&gt;
context_dynamico.xml (ligne 125)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;         &amp;amp;lt;field id=&amp;amp;quot;q_start&amp;amp;quot; name=&amp;amp;quot;q&amp;amp;quot;  grid_ref=&amp;amp;quot;grid_q_start&amp;amp;quot; prec=&amp;amp;quot;8&amp;amp;quot;/&amp;amp;gt;   &amp;lt;/pre&amp;gt;&lt;br /&gt;
== H) Bottom du modèle ==&lt;br /&gt;
&lt;br /&gt;
* refaire tourner le 1D&lt;br /&gt;
** changer la pression &amp;lt;code&amp;gt;psurf&amp;lt;/code&amp;gt; dans run.def&lt;br /&gt;
** changer &amp;lt;code&amp;gt;ichoice=1&amp;lt;/code&amp;gt; et changer &amp;lt;code&amp;gt;tref&amp;lt;/code&amp;gt; (ex: 10b: 330K)&lt;br /&gt;
* refaire tourner le 3D (avec makestart) en changeant &amp;lt;code&amp;gt;preff&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;[nom_de_la_planète]_const.def&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Physical parameterizations =&lt;br /&gt;
&lt;br /&gt;
== A) Cycle diurne ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diurnal = .false.&amp;lt;/code&amp;gt; Car le temps radiatif est beaucoup plus long sur les planètes géantes.&lt;br /&gt;
&lt;br /&gt;
== B) Anneaux ==&lt;br /&gt;
&lt;br /&gt;
[Pour saturne uniquement] Il est possible d'ajouter l'ombre des anneaux dans le callphys.def:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rings_shadow = .true.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C) Collision-induced absorption data ==&lt;br /&gt;
&lt;br /&gt;
L'absorption induite par collision est importante dans le transfet radiatif sur les planètes géantes, notamment celle provenant de H2. Cependant, le rapport ortho-para du H2 est différent selon les planètes et peut modifier fortement le chauffage sur ces planètes. Pour le cas des géantes gazeuses, le rapport ortho-para est normal (rapport 3:1). Mais pour le cas des géantes glacées, le rapport ortho-para est à l'équilibre. Par défaut, le rapport ortho-para est normal (H2orthopara_mixture = normal). Pour les géantes glacées, il faut mettre H2orthopara_mixture = equilibrium .&lt;br /&gt;
&lt;br /&gt;
Si vous voulez modifier le fichier utilisé dans un cas de CIA, il faut aller dans le code (dynamico-giant/code/LMDZ.GENERIC/libf/phygeneric/interpolate????.F90) et changer le nom du fichier (assurez-vous que ce fichier soit dans votre répertoire DATAGENERIC/continuum_data).&lt;br /&gt;
&lt;br /&gt;
Dans la version actuelle, il n'existe pas d'option qui permet de ne pas utiliser certaines contributions de CIA. Par exemple, si votre atmosphère est composé de H2, He et CH4 et que vous ne voulez pas des contributions venant du CH4, il vous faut commenter dans le modèle ces contributions.&lt;br /&gt;
&lt;br /&gt;
== D) K-correlated data ==&lt;br /&gt;
&lt;br /&gt;
Les fichiers k-corrélées doivent se situer dans votre répertoire DATAGENERIC/corrk_data .&lt;br /&gt;
&lt;br /&gt;
== E) Cpp mode ==&lt;br /&gt;
&lt;br /&gt;
cpp_mugaz_mode=0 pour que la valeur de cpp et de mugaz proviennent de la dynamique. cpp_mugaz_mode=1 pour forcer la valeur de cpp et de mugaz dans le callphys.def (à utiliser dans le makestart uniquement) cpp_mugaz_mode=2 pour calculer automatiquement à partir de données de références à 300 K et du gases.def (à éviter)&lt;br /&gt;
&lt;br /&gt;
== F) Generic n-layer aerosols (replaces the former 2-layer and NH3 cloud) ==&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de créer des couches d'aérosols/nuages ayant une opacité (aeronlay_tauref) à une longueur d'onde donnée (aeronlay_lamref), un rayon de particule fixe (aeronlay_size) situés à une pression fixe et en fonction des propriétés optiques des particules (optprop_aeronlay_vis et optprop_aeronlay_ir). Pour le cas de l'altitude, on peut choisir soit (aeronlay_choice = 1) une pression max (aeronlay_ptop) et une pression min (aeronlay_pbot), soit (aeronlay_choice = 2) une pression min (aeronlay_pbot) et une échelle de hauteur (aeronlay_sclhght). On peut également choisir la variance effective pour les rayons de particules.&lt;br /&gt;
&lt;br /&gt;
Le nombre de couche de nuage (nlayero) est égal au nombre de scatterers dans la compilation (option -s ).&lt;br /&gt;
&lt;br /&gt;
Les fichiers de propriétés optiques doivent être dans votre DATAGENERIC.&lt;br /&gt;
&lt;br /&gt;
Un exemple pour 3 couches:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;aeronlay = .true.&lt;br /&gt;
nlayaero = 3&lt;br /&gt;
aeronlay_tauref       = 2.5 0.04 0.1&lt;br /&gt;
aeronlay_lamref       = 0.8e-6 0.8e-6 0.16e-6&lt;br /&gt;
aeronlay_choice       = 2 2 1&lt;br /&gt;
aeronlay_pbot         = 1.5e5 1.6e5 20.&lt;br /&gt;
aeronlay_ptop         = 1.1e5 1. 1.&lt;br /&gt;
aeronlay_sclhght      = 0.1 2.0 1&lt;br /&gt;
aeronlay_size         = 0.5e-6 0.05e-6 0.5e-6&lt;br /&gt;
aeronlay_nueff        = 0.3 0.3 0.3&lt;br /&gt;
optprop_aeronlay_vis  = optprop_aerosol2_vis.dat optprop_aerosol3_vis.dat optprop_carbon4_vis.dat&lt;br /&gt;
optprop_aeronlay_ir   = optprop_aerosol2_ir.dat optprop_aerosol3_ir.dat optprop_carbon4_ir.dat&amp;lt;/pre&amp;gt;&lt;br /&gt;
== G) Panaches thermiques ==&lt;br /&gt;
&lt;br /&gt;
# Comme pour toutes nouvelles simulations, il faut commencer par un run 1D de plusieurs décennies permettant d'obtenir un profil de température (&amp;lt;code&amp;gt;temp_profile.txt&amp;lt;/code&amp;gt;) et les coefficients ap et bp (&amp;lt;code&amp;gt;apbp.txt&amp;lt;/code&amp;gt;) en équilibre radiatif-convectif pour la planète que l'on étudie. Ce run 1D s'effectue dans les dossiers jupiter1d, saturn1d, neptune1d et/ou uranus1d, avec ces options pour le callphys.def :&lt;br /&gt;
&lt;br /&gt;
callrad = true calladj = true tous les autres mots clés à false (y compris &amp;lt;code&amp;gt;calltherm&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Faire un &amp;amp;quot;makestart&amp;amp;quot; run : permet d'obtenir les fichiers restart à partir du profil de température initial. Il s'agit du run dont l'état initial est le profil de température créé par run 1D (&amp;lt;code&amp;gt;temp_profile.txt&amp;lt;/code&amp;gt; est appliquer à chaque point de grille horizontale du modèle). L'état initial est ainsi une planète isotherme horizontalement mais qui varie verticalement. Pour ce run, aucun traceur ne va être utilisé dans le modèle. Néanmoins, il faut renseigner au modèle le nombre de traceurs que nous souhaitons utiliser avec le schéma des panaches thermiques afin qu'il puisse créer la dimension nq et le champ q dans les fichiers &amp;lt;code&amp;gt;restart_icosa.nc&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt;. dans '''callphys.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;          traceur = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;dans '''run_icosa.def''' : &amp;lt;code&amp;gt;nqtot = 2&amp;lt;/code&amp;gt; (par exemple, h2o_vap et h2o_ice) dans '''traceur.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;           2&lt;br /&gt;
           h2o_vap&lt;br /&gt;
           h2o_ice&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Ajout des quantités pour chaque traceur. Ici, nous ajoutons les profils pour chacun des traceurs dans les fichiers &amp;lt;code&amp;gt;restart_icosa.nc&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; &amp;amp;quot;à la main&amp;amp;quot; en utilisant le programme python &amp;lt;code&amp;gt;/processing_codes/tracer_settings.py&amp;lt;/code&amp;gt; pour obtenir des fichiers restart avec la bonne abondance d'eau dans le cas présent.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Commencer la simulation : Il ne reste plus qu'à lancer la simulation 3D avec les nouveaux fichiers restart et les réglages suivant : dans '''callphys.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;            traceur = true&lt;br /&gt;
            calltherm = true&lt;br /&gt;
            # thermal plume model options:&lt;br /&gt;
            divmpl = true&lt;br /&gt;
            r_aspect_thermals = 2.0&lt;br /&gt;
            tau_thermals      = 0.0&lt;br /&gt;
            betalpha          = 0.9&lt;br /&gt;
            afact             = 0.7&lt;br /&gt;
            fact_epsilon      = 2.e-4&lt;br /&gt;
            alpha_max         = 0.7&lt;br /&gt;
            fomass_max        = 0.5&lt;br /&gt;
            pres_limit        = 2.e5&lt;br /&gt;
            water             = true&lt;br /&gt;
            watercond         = true&lt;br /&gt;
            waterain          = true&lt;br /&gt;
            evap_prec         = true&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans '''run_icosa.def''' : &amp;lt;code&amp;gt;nqtot = 2&amp;lt;/code&amp;gt; dans '''traceur.def''' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;               2&lt;br /&gt;
               h2o_vap&lt;br /&gt;
               h2o_ice&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enfin, ajouter la déclaration et l'écriture des variables relatives à l'utilisation du schéma des thermiques (&amp;lt;code&amp;gt;h2o_vap&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h2o_ice&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;w_plm&amp;lt;/code&amp;gt;) dans les fichiers XML de la physique.&lt;br /&gt;
&lt;br /&gt;
== H) Rotation ==&lt;br /&gt;
&lt;br /&gt;
Dans [name_of_planet]_const.def, changer le taux de rotation.&lt;br /&gt;
&lt;br /&gt;
Cela n'a jamais été testé avec 0, mais cela pourrait créer des problèmes (ex: beta). ''vérifier que omega dans saturn_const.def n'intervient pas dans la physique LMDZ.GENERIC/libf/phygeneric/''&lt;br /&gt;
&lt;br /&gt;
== I) Appel à la physique ==&lt;br /&gt;
&lt;br /&gt;
Il faut changer à ''deux endroits'' en réglant la même valeur: - dans run_icosa.def, changer itau_physics ; - dans run.def, changer iphysiq. Ces paramètres sont exprimés en pas de temps dynamique. Pour appeler la physique à chaque pas de temps dynamique, régler ces paramètres à 1.&lt;br /&gt;
&lt;br /&gt;
'''Attention: ''' Lorsque l'on change dans le ''run_icosa.def'' la valeur de itau_physics, faire bien attention à la valeur du champ itau_adv (qui controle la frequence d'advection des traceurs par la dynamique, compté en pas de temps dynamique). Il faut que itau_physics soit un multiple de itau_adv. Cela veut dire, que l'on advecte notre champ de traceurs plus souvent (ou autant de fois) que l'on appelle la physique, qui peut transformer ces traceurs.&lt;br /&gt;
&lt;br /&gt;
= 5. Ecriture des fichiers =&lt;br /&gt;
&lt;br /&gt;
== A) Nombre d'écriture dans chaque Xhistins.nc ==&lt;br /&gt;
&lt;br /&gt;
Prenons l'exemple de l'écriture d'un fichier sur une simu Uranus pour 1000j&lt;br /&gt;
&lt;br /&gt;
Nombre d'écriture = day_step X ndays/(itau_physics X output_freq)&lt;br /&gt;
&lt;br /&gt;
* ndays = 1000&lt;br /&gt;
* day_step = 200&lt;br /&gt;
* itau_physics = 50&lt;br /&gt;
* output_freq = 200&lt;br /&gt;
&lt;br /&gt;
On a 20 sorties tous les 1000 jours.&lt;br /&gt;
&lt;br /&gt;
Globalement, il est conseillé d'avoir 800 à 1000 sorties minimum par année planétaire (voir beaucoup plus en fonction de votre étude).&lt;br /&gt;
&lt;br /&gt;
== B) Ajouter une variable ==&lt;br /&gt;
&lt;br /&gt;
Pour ajouter une variable dans le fichier de sortie Xhistins.nc, il faut l'ajouter dans le field_group correspondant et s'assurer que cette variable est présente en tant que variable de sortie dans dynamico-giant/code/LMDZ.GENERIC/libf/phygeneric/physiq_mod.F90. Si ce n'est pas le cas, il faut faire un call writediagfi de la variable puis l'ajouter dans un call send_xios_field.&lt;br /&gt;
&lt;br /&gt;
== C) Forcer XIOS à écrire tous les .... ==&lt;br /&gt;
&lt;br /&gt;
Il faut utiliser l'attribut (ici par ex pour forcer l'écriture tous les ts (==time step) ; d'autres délais doivent être possible): &amp;lt;code&amp;gt;sync_freq=&amp;amp;quot;1ts&amp;amp;quot;&amp;lt;/code&amp;gt; dans le &amp;lt;code&amp;gt;&amp;amp;lt;file id=... .... &amp;amp;gt;&amp;lt;/code&amp;gt; concerné.&lt;br /&gt;
&lt;br /&gt;
== D) XIOS server ou client ==&lt;br /&gt;
&lt;br /&gt;
# XIOS client &amp;lt;code&amp;gt;use_server=False&amp;lt;/code&amp;gt; Broadwell 24 processeurs sur 28&lt;br /&gt;
# XIOS server &amp;lt;code&amp;gt;use_server=true&amp;lt;/code&amp;gt; Broadwell 24 processurs sur 28 + 4 processeurs pour XIOS&lt;br /&gt;
&lt;br /&gt;
Le cas 1 est 3 min plus lent que le cas 2 -- sur 2h20...(!) parce qu'on fait peu de sorties.&lt;br /&gt;
&lt;br /&gt;
= 6. Running the model =&lt;br /&gt;
&lt;br /&gt;
== A) Compilation ==&lt;br /&gt;
&lt;br /&gt;
Pour compiler le modèle, il suffit d'aller dans le dossier avec vos fichiers .def et .xml et d'utiliser le script compile_occigen.sh si on est sur occigen ou compile_ciclad.sh si on est sur ciclad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./compile_occigen.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les options qui peuvent être modifiées/ajoutées sont - -s : le nombre de scatterers - -parallel: mpi ou mpi_omp - -arch: le nom du ficher d'architecture - -arch_path: le chemin vers ce fichier - -job: 8 (conseillé) - -full: compile le code entièrement - -debug: pour trouver un éventuel bug. A ENLEVER obligatoirement s'il n'y a plus de bug car multiplie par 5 votre temp de calcul.&lt;br /&gt;
&lt;br /&gt;
En 1D, d'autres options sont nécessaires: - -t: nombre de traceurs - -d: nombre de niveaux verticaux - -parallel: none (en 1D uniquement)&lt;br /&gt;
&lt;br /&gt;
=== - Versions fonctionnelles de dynamico-giant ===&lt;br /&gt;
&lt;br /&gt;
'''Jupiter''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 756&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 339&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2228 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
but check Physics version 2142 and 2180&lt;br /&gt;
&lt;br /&gt;
'''Saturne (référence Spiga 2020, à vérifier)''' - DYNAMICO --&amp;amp;gt; Revision: 756 - PHYSICS --&amp;amp;gt; Revision: 2005 - XIOS --&amp;amp;gt; Revision: 1583 - IOIPSL --&amp;amp;gt; Revision: 310?&lt;br /&gt;
&lt;br /&gt;
'''Saturne (simulation de référence sur 61 niveaux, Bardet et al. Icarus 2021)''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 310&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2005 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Saturne (simulation avec la GWD paramétrisation sur 61 niveaux, chapitre 6 PhD Bardet)''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 310&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2213 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Saturne (simulation sur 96 niveaux, Bardet et al. Nature Astronomy 2022)''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 431&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2305 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Saturne (simulation avec la GWD paramétrisation sur 96 niveaux, chapitre 6 PhD Bardet)''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 431&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2403 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Uranus &amp;amp;amp; Neptune (old version)''' - XIOS revision 1944 - ICOSAGCM revision 765 - IOIPSL revision 431 - FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2413 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Uranus &amp;amp;amp; Neptune (new version)''' - XIOS revision 2203 - ICOSAGCM revision (20/08/2021) - IOIPSL revision 450 - FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2555 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Jupiter, Saturne, Uranus &amp;amp;amp; Neptune [OCCIGEN VERSION]''' - XIOS revision 2319 - ICOSAGCM revision (90f7138a60ebd3644fbbc42bc9dfa22923386385) - IOIPSL revision 453 - FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2655 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Jupiter, Saturne, Uranus &amp;amp;amp; Neptune [IRENE VERSION]''' - XIOS revision 2399 - ICOSAGCM revision (4fbd393a9051fd9c1a5b662683f6ad8d0dc2867c) - IOIPSL revision 6234 - FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2842 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
== B) Run 1D ==&lt;br /&gt;
&lt;br /&gt;
Pour une simulation 1D, 1 seul CPU suffit.&lt;br /&gt;
&lt;br /&gt;
To run on Occigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sbatch job_mpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run on Irene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ccc_msub job_mpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To see evolution of your job on Occigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;squeue -u username&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To see evolution of your job on Irene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ccc_mpp -u username&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To kill your job on Occigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scancel id_of_your_job&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To kill your job on Irene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ccc_mdel id_of_your_job&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que votre simulation est fini, lancer le script python printapbp.py qui vous permettra d'obtenir les fichiers apbp.txt et temp_profile.txt nécessaires pour les simulations en 3D.&lt;br /&gt;
&lt;br /&gt;
== C) Run 3D ==&lt;br /&gt;
&lt;br /&gt;
Pour lancer une première simulation, il faut tout d'abord le faire une seule fois dans le dossier makestart de l'un des dossiers jupiter, saturne, uranus ou neptune. Ce dernier permettra de créer les premiers fichiers restart_icosa.nc et restartfi.nc. Ensuite, il suffit revenir dans le dossier parent (jupiter, saturne, uranus, neptune) et de lancer ses simulations.&lt;br /&gt;
&lt;br /&gt;
=== - MPI ===&lt;br /&gt;
&lt;br /&gt;
Avant de lancer une simulation, il est nécessaire de déterminer - le nombre de procs - le nombre de noeuds&lt;br /&gt;
&lt;br /&gt;
Il faut avant tout savoir qu'il y a 10 x nsplit_i x nsplit_j domaines. Ces domaines sont divisés en plusieurs cellules. Il y a (nbp)²/(nsplit_i x nsplit_j) cellules par domaine. Ce nombre est égal au nombre de MPI process.&lt;br /&gt;
&lt;br /&gt;
Il est important de ne pas faire des tuiles &amp;amp;quot;trop petites&amp;amp;quot; et donc de garder nsplit_i et nsplit_j tels que nbp/nsplit_{i,j} &amp;amp;gt;=10-15 (plutôt 15). Car il y a des calculs &amp;amp;quot;redondants&amp;amp;quot; faits sur les bords du domaine. Admettons que ton domaine soit 10 x 10 (100 cellules par domaine). Le nombre de cellules au bord du domaine est égal à 2 x nsplit_i + 2 x nsplit_j - 4. Dans ce cas, le nombre de cellules au bord est de 36. Cela signifie que le bord du domaine correspond à 36% du domaine (36 points sur 100). Si le domaine est 15 x 15, alors le bord du domaine n'est plus que de 24.8 %. On aimerait avoir des domaines les plus grands possibles mais il faut aussi voir que chaque cellule correspond à une colonne à résoudre... Et c'est là ou il faut expérimenter un peu pour trouver l'optimum entre le nombre total de proc à employer et le gain effectif (temps total &amp;amp;quot;facturé&amp;amp;quot; au vu du nombre de procs monopolisés pour une simu donnée). Ehouarn&lt;br /&gt;
&lt;br /&gt;
Il faut au total que le nombre de procs soit égal à 10 x nsplit_i x nsplit_j qu'il faut répartir entre les noeuds.&lt;br /&gt;
&lt;br /&gt;
Pour les noeuds, il faut tenir compte qu'un noeud sur Occigen, c'est 24 (ou 28) procs. Disons 24. Quand on demande N procs, le système te donne M noeuds, soit M X 24 procs (les noeuds ne sont pas partagés avec d'autres applications). Et bien sûr on te facturera ces M noeuds, même si tu n'utilises pas tous les procs. Donc il faut s'efforcer de tomber juste et demander un multiple de 24 procs. Même raisonement si tu demandes à utiliser des noeuds de 28 procs.&lt;br /&gt;
&lt;br /&gt;
Par exemple, nsplit_i = 4 et nsplit_j = 6. 4 x 6 est égal à 24. On utilisera donc 10 noeuds pour avoir 240 nprocs.&lt;br /&gt;
&lt;br /&gt;
Prenons un autre exemple. nsplit_i = 5 et nsplit_j = 6. 5x6 = 30 Or il y a 24 procs par noeuds. Il faudra utiliser 13 noeuds. Et ce ne sont pas 300 procs qui seront facturés au total mais 312.&lt;br /&gt;
&lt;br /&gt;
Mais comme vu plus haut, en fonction de la configuration de tes domaines, il est possible que le 2nd exemple coûte moins cher en heure CPU que le 1er exemple car il sera plus rapide.&lt;br /&gt;
&lt;br /&gt;
=== - OpenMP / MPI ===&lt;br /&gt;
&lt;br /&gt;
Dans le cas mixte OpenMP/MPI, il est nécessaire de renseigner le nombre de tâche OpenMP et de MPI threads. Dans le script pour le job, on a :&lt;br /&gt;
&lt;br /&gt;
cpus-per-task et OMP_NUM_THREADS correspondent au nombre de tâche OpenMP ntask-per-node correspond au nombre de tâche par noeud&lt;br /&gt;
&lt;br /&gt;
Pour déterminer la configuration à utiliser en OpenMP/MPI, il faut respecter ces règles: - ntask-per-node x nodes correspond au nombre total de MPI threads qu'il devrait y avoir (c'est-à-dire dans le cas MPI seul). - cpus-per-task x ntask-per-node doit être égale ou inférieur au nombre de procs par noeuds (24 ou 28- sur Occigen) - cpus-per-task devrait être ~égal au nombre de niveaux verticaux / 10 - OMP_NUM_THREADS doit être égal au cpus-per-task - omp_level_size (dans le fichier run_icosa.def) devrait être ~égal au nombre de cpus-per-task. (dans le cas MPI seul, il faut le laisser égal à 1)&lt;br /&gt;
&lt;br /&gt;
Au total, le nombre total de nprocs est égal à cpus-per-task x ntask-per-node x nodes&lt;br /&gt;
&lt;br /&gt;
En reprenant le premier exemple MPI (on suppose qu'on a 40 niveaux verticaux), on aura - cpus-per-task = 4 - ntask-per-norde = 6 On a bien cpus-per-task x ntask-per-norde &amp;amp;lt;= 24. Le nombre de noeuds doit être égal à 40 car 6x40 = 240 nprocs MPI Le nombre de procs qu'on utilisera au total sera de 960.&lt;br /&gt;
&lt;br /&gt;
=== - Comment déterminer le nombre d'heure CPU (consommation en heure)? ===&lt;br /&gt;
&lt;br /&gt;
Heures CPU = durée_de_la_simu X nombre de procs total facturé&lt;br /&gt;
&lt;br /&gt;
Si on veut connaître le nombre d'heure CPU qu'on consommera à partir d'un test, voici le calcul&lt;br /&gt;
&lt;br /&gt;
Heures CPU = durée_de_la_simu_test X nombre de procs total facturé X nombre de jour qu'on veut simulé / (nombre de jour simulées pendant la simu test)&lt;br /&gt;
&lt;br /&gt;
== D) Optimisation ==&lt;br /&gt;
&lt;br /&gt;
Pour savoir quelle est la meilleure configuration en MPI seul, en OpenMP/MPI et entre les 2, des tests ont été effectués. Ces tests ont été réalisés sur Uranus à nbp80 sur les noeuds Broadwell (28 procs par noeud). 1000 jours uraniens ont été simulés à chaque fois.&lt;br /&gt;
&lt;br /&gt;
'''MPI:''' [[File:fig1.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenMP/MPI:''' [[File:fig2.png]]&lt;br /&gt;
&lt;br /&gt;
La comparaison du MPI seul et du mixte OpenMP/MPI permet de tirer la conclusion que le mixte OpenMP/MPI est beaucoup plus rapide (facteur 2.5 à 3) mais consomme plus (facteur 1.1 à 1.7).&lt;br /&gt;
&lt;br /&gt;
[[File:fig3.png]]&lt;br /&gt;
&lt;br /&gt;
== E) Visualizing the output files ==&lt;br /&gt;
&lt;br /&gt;
=== - Comment comparer deux fichiers? file1.nc file2.nc ===&lt;br /&gt;
&lt;br /&gt;
ncdiff file1.nc file2.nc output.nc&lt;br /&gt;
&lt;br /&gt;
=== - Comment coller plusieurs fichiers file1.nc file2.nc file3.nc ===&lt;br /&gt;
&lt;br /&gt;
ncrcat file1.nc file2.nc file3.nc output.nc&lt;br /&gt;
&lt;br /&gt;
Avec juste la vitesse u et v: ncrcat -v u -v v file1.nc file2.nc file3.nc output.nc&lt;br /&gt;
&lt;br /&gt;
Avec tous les fichiers fileXXX.nc disponibles ncrcat file*.nc output.nc&lt;br /&gt;
&lt;br /&gt;
=== - Comment tracer les champs et divers diagnostics en moyenne zonale? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;mettre à jour planetoplot et planets&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;utiliser precast.py dans planetoplot/examples/ppclass_additional/dynanalysis&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer les options au début (il y a des exemples), exemple pour Saturne&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;fileAP=&amp;quot;Xhistins_42.nc&amp;quot;&lt;br /&gt;
p_upper,p_lower,nlev = 4.0e2,2.5e5,40&lt;br /&gt;
targetp1d = np.logspace(np.log10(p_lower),np.log10(p_upper),nlev)&lt;br /&gt;
myp = planets.Saturn&lt;br /&gt;
day_per_year = 24430.&lt;br /&gt;
short = False&lt;br /&gt;
includels = False&lt;br /&gt;
charx = &amp;quot;0,360&amp;quot;&lt;br /&gt;
ispressure = False&lt;br /&gt;
vartemp = &amp;quot;temperature&amp;quot;&lt;br /&gt;
outfile = &amp;quot;precast.nc&amp;quot;&lt;br /&gt;
nopole = True&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Il faut que apbp.txt soit présent !&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Le résultat se trouve dans le fichier indiqué dans outfile.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== F) Debug ==&lt;br /&gt;
&lt;br /&gt;
=== - Pour debugger ===&lt;br /&gt;
&lt;br /&gt;
Réglez &amp;lt;code&amp;gt;info_level&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; dans le fichier &amp;lt;code&amp;gt;iodef.xml&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
=== - Erreur en début de run, SEGMENTATION FAULT dans la routine &amp;lt;code&amp;gt;advect.f90&amp;lt;/code&amp;gt; (ICOSAGCM/ppsrc/transport) au niveau de l'appel à &amp;lt;code&amp;gt;cross_product2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
La routine &amp;lt;code&amp;gt;cross_product2&amp;lt;/code&amp;gt; effectue des produits vectoriels. Cette erreur vient du fait qu'en essayant de faire des optimisations de calcul, le compilateur se prend &amp;amp;quot;les pieds dans le tapis&amp;amp;quot; et ne sait plus faire le produit vectoriel. Pour empêcher le compilateur de faire des optimisations trop poussées, il faut ajouter l'option &amp;lt;code&amp;gt;-fp-model strict&amp;lt;/code&amp;gt; au niveau du mot-clé &amp;lt;code&amp;gt;%BASE_FFLAGS&amp;lt;/code&amp;gt; dans tous les fichiers &amp;lt;code&amp;gt;.fcm&amp;lt;/code&amp;gt; du modèle (LMDZ.COMMON / ICOSAGCM / ICOSA_LMDZ).&lt;br /&gt;
&lt;br /&gt;
== G) Pas de radiatif et perturbations ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;faire descendre le modèle&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;modifier le code pour perturbations vitesse et pas température&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;compiler (voir README.md)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer dans callphys.def (dans saturn/makestart)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;surfalbedo = 1.0&lt;br /&gt;
surfemis = 0.0&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer dans callphys.def (dans saturn '''et''' saturn/makestart)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;corrk      = .false.&lt;br /&gt;
enertest  = .true.&lt;br /&gt;
randompert = 1&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;voir si on garde le flux interne ou non (&amp;lt;code&amp;gt;intheat&amp;lt;/code&amp;gt;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;refaire les états initiaux (dans makestart)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;faire un run court pour voir sur les spectres l'injection d'Ek&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== H) PROFILING with DYNAMICO-Giant ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-pg&amp;lt;/code&amp;gt;: Generate extra code to write profile information suitable for analysis program &amp;lt;code&amp;gt;gprof&amp;lt;/code&amp;gt;. You must use this option when compiling the sources files you want data about and you must '''also use it when linking'''. 1. For DYNAMICO-Giant: in the arch.fcm file of each part of the model (ICOSAGCM, ICOSA_LMDZ, LMDZ.COMMON and XIOS), you have to add the option &amp;lt;code&amp;gt;-pg&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;%PROD_FFLAGS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;%BASE_LD&amp;lt;/code&amp;gt; 2. Compile as usual 3. Execute your code as usual 4. Run &amp;lt;code&amp;gt;gprof&amp;lt;/code&amp;gt; tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;    gprof icosa_lmdz.exe goon.out &amp;amp;gt; analysis.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OLD WIKI (DEPRECATED, JUST FOR REFERENCE/INFORMATION) =&lt;br /&gt;
&lt;br /&gt;
``Welcome to the dynamico-giant wiki!&lt;br /&gt;
&lt;br /&gt;
== pour debugger ==&lt;br /&gt;
&lt;br /&gt;
régler &amp;lt;code&amp;gt;info_level&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; dans le fichier &amp;lt;code&amp;gt;iodef.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== pourquoi diurnal=.false. ==&lt;br /&gt;
&lt;br /&gt;
le temps radiatif est beaucoup plus long sur les géantes&lt;br /&gt;
&lt;br /&gt;
== comment changer la fréquence d'appel à la physique? ==&lt;br /&gt;
&lt;br /&gt;
il faut changer à ''deux endroits'' en réglant la même valeur - dans run_icosa.def, changer itau_physics - dans run.def, changer iphysiq ces paramètres sont exprimés en pas de temps dynamique. pour appeler la physique à chaque pas de temps dynamique, régler ces paramètres à 1&lt;br /&gt;
&lt;br /&gt;
== comment changer la résolution ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/aymeric-spiga/dynamico-giant/commit/f39e3b651c19cefb26da72ab77933520ff8f27f5 voir lien ici]&lt;br /&gt;
&lt;br /&gt;
== comment choisir le nombre de processeurs pour la résolution ==&lt;br /&gt;
&lt;br /&gt;
voir commentaires sur run_icosa.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;###########################################&lt;br /&gt;
## There must be less MPIxOpenMP processes than the 10 x nsplit_i x nsplit_j tiles&lt;br /&gt;
## typically for pure MPI runs, let nproc = 10 x nsplit_i x nsplit_j&lt;br /&gt;
## it is better to have nbp/split &amp;amp;gt;~ 10&lt;br /&gt;
###########################################&lt;br /&gt;
#### 40 noeuds de 24 processeurs = 960 procs&lt;br /&gt;
nsplit_i=12&lt;br /&gt;
nsplit_j=8&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ehouarn: ''Une règle à suivre est de ne pas faire des tuiles &amp;amp;quot;trop petites&amp;amp;quot; et donc de garder nbsplit_i et nbsplit_j tels que nbp/nbsplit &amp;amp;gt;=10-15 (plutôt 15). Car il y a des calculs &amp;amp;quot;redondants&amp;amp;quot; faits sur les bords du domaine. Or si ton domaine est 10''10, le bord du domaine c'est 38% du domaine (38 points sur le bord pour 100 points en tout) alors que si ton domaine est 15''15, le bord du domaine n'est plus que 56/(15''15) = 25.7%. 56=2''15+2''13 (pour ne pas compter 2 fois les coins). On voudrait du coup des domaine les plus grand possible, clairement, mais il faut aussi voir que chaque domaine c'est nbp''nbp colonnes à résoudre sur ce même proc... Et c'est là ou il faut expérimenter un peu pour trouver l'optimum entre le nombre total de proc à employer et le gain effectif (temps total &amp;amp;quot;facturé&amp;amp;quot; au vu du nombre de procs monopolisés pour une simu donnée).''&lt;br /&gt;
&lt;br /&gt;
_Pour les noeuds, il faut tenir compte qu'un noeud sur Occigen, c'est 24 (ou 28) procs. Disons 24. Quand on demande N procs, le système te donne M noeuds, soit M*24 procs (les noeuds ne sont pas partagés avec d'autres applications). Et bien sûr on te facturera ces M noeuds, même si tu n'utilises pas tous les procs. Donc il faut s'efforcer de tomber juste et demander un multiple de 24 procs. Même raisonement si tu demandes à utiliser des noeuds de 28 procs._&lt;br /&gt;
&lt;br /&gt;
== comment changer la rotation? ==&lt;br /&gt;
&lt;br /&gt;
dans saturn_const.def, changer le taux de rotation jamais testé avec 0, mais pourrait créer des problèmes (ex: beta) ''vérifier que omega dans saturn_const.def n'intervient pas dans la physique LMDZ.GENERIC/libf/phygeneric/''&lt;br /&gt;
&lt;br /&gt;
== la dissipation c'est où? ==&lt;br /&gt;
&lt;br /&gt;
laplacien itéré: hyperviscosity - tau_graddiv,tau_gradrot,tau_divgrad: periode (plus c'est petit, plus la dissipation est efficace) - nitergdiv,nitergrot,niterdivgrad: ordre du laplacien (plus c'est grand, plus on dissipe sélectivement les petites échelles)&lt;br /&gt;
&lt;br /&gt;
== comment changer la grille cible du remapping on-the-fly ==&lt;br /&gt;
&lt;br /&gt;
dans context_lmdz_physics.xml changer les paramètres ni_glo et nj_glo par exemple pour remapper sur du lat/lon à 360 pts en latitude et 720 pts en longitude (0.5°) &amp;lt;domain id=&amp;quot;dom_regular&amp;quot; ni_glo=&amp;quot;720&amp;quot; nj_glo=&amp;quot;360&amp;quot; type=&amp;quot;rectilinear&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Forcer XIOS à écrire tous les .... ==&lt;br /&gt;
&lt;br /&gt;
Il faut utiliser l'attribut (ici par ex pour forcer l'écriture tous les ts (==time step) ; d'autres délais doivent être possible): &amp;lt;code&amp;gt;sync_freq=&amp;amp;quot;1ts&amp;amp;quot;&amp;lt;/code&amp;gt; dans le &amp;lt;code&amp;gt;&amp;amp;lt;file id=... .... &amp;amp;gt;&amp;lt;/code&amp;gt; concerné.&lt;br /&gt;
&lt;br /&gt;
== comment changer le bottom du modele ==&lt;br /&gt;
&lt;br /&gt;
* refaire tourner le 1D&lt;br /&gt;
** changer la pression &amp;lt;code&amp;gt;psurf&amp;lt;/code&amp;gt; dans run.def&lt;br /&gt;
** changer &amp;lt;code&amp;gt;ichoice=1&amp;lt;/code&amp;gt; et changer &amp;lt;code&amp;gt;tref&amp;lt;/code&amp;gt; (ex: 10b: 330K)&lt;br /&gt;
* refaire tourner le 3D (avec makestart) en changeant &amp;lt;code&amp;gt;preff&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;saturn_const.def&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== comment changer la fréquence de sortie des Xhistins.nc ==&lt;br /&gt;
&lt;br /&gt;
les commandes XIOS sont appelées depuis la physique (dans la config présente) dans context_lmdz_physics.xml il suffit de changer output_freq ''attention'' ts se comprend comme le pas de temps physique (voir donc dans run_icosa.def les paramètres dt et itau_physics pour le connaître) par exemple, pour des sorties tous les 20 jours Saturne&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;file id=&amp;quot;histins&amp;quot;&lt;br /&gt;
      name=&amp;quot;Xhistins&amp;quot;&lt;br /&gt;
      output_freq=&amp;quot;40ts&amp;quot;&lt;br /&gt;
      type=&amp;quot;one_file&amp;quot;&lt;br /&gt;
      enabled=&amp;quot;.true.&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
== pas de radiatif et perturbations ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;faire descendre le modèle&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;modifier le code pour perturbations vitesse et pas température&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;compiler (voir README.md)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer dans callphys.def (dans saturn/makestart)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;surfalbedo = 1.0&lt;br /&gt;
surfemis = 0.0&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer dans callphys.def (dans saturn '''et''' saturn/makestart)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;corrk      = .false.&lt;br /&gt;
enertest  = .true.&lt;br /&gt;
randompert = 1&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;voir si on garde le flux interne ou non (&amp;lt;code&amp;gt;intheat&amp;lt;/code&amp;gt;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;refaire les états initiaux (dans makestart)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;faire un run court pour voir sur les spectres l'injection d'Ek&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== comment comparer deux fichiers? file1.nc file2.nc ==&lt;br /&gt;
&lt;br /&gt;
ncdiff file1.nc file2.nc output.nc&lt;br /&gt;
&lt;br /&gt;
== comment coller plusieurs fichiers file1.nc file2.nc file3.nc ==&lt;br /&gt;
&lt;br /&gt;
ncrcat file1.nc file2.nc file3.nc output.nc avec juste la vitesse u et v ncrcat -v u -v v file1.nc file2.nc file3.nc output.nc avec tous les fichiers fileXXX.nc disponibles ncrcat file*.nc output.nc&lt;br /&gt;
&lt;br /&gt;
== comment tracer les champs et divers diagnostics en moyenne zonale? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;mettre à jour planetoplot et planets&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;utiliser precast.py dans planetoplot/examples/ppclass_additional/dynanalysis&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer les options au début (il y a des exemples), exemple pour Saturne&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;fileAP=&amp;quot;Xhistins_42.nc&amp;quot;&lt;br /&gt;
p_upper,p_lower,nlev = 4.0e2,2.5e5,40&lt;br /&gt;
targetp1d = np.logspace(np.log10(p_lower),np.log10(p_upper),nlev)&lt;br /&gt;
myp = planets.Saturn&lt;br /&gt;
day_per_year = 24430.&lt;br /&gt;
short = False&lt;br /&gt;
includels = False&lt;br /&gt;
charx = &amp;quot;0,360&amp;quot;&lt;br /&gt;
ispressure = False&lt;br /&gt;
vartemp = &amp;quot;temperature&amp;quot;&lt;br /&gt;
outfile = &amp;quot;precast.nc&amp;quot;&lt;br /&gt;
nopole = True&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Il faut que apbp.txt soit présent !&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;le résultat se trouve dans le fichier indiqué dans outfile&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== bilan de moment cinétique ==&lt;br /&gt;
&lt;br /&gt;
dans run_icosa.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;check_conservation = detailed &lt;br /&gt;
itau_check_conserv = 160&amp;lt;/pre&amp;gt;&lt;br /&gt;
le itau_check_conserv est comme itau_physics pour que la contribution de la physique à AAM ne soit pas nulle. de plus il est coûteux d'appeler les diagnostics trop souvent.&lt;br /&gt;
&lt;br /&gt;
S. Lebonnois, C. Covey, A. Grossman, H. Parish, G. Schubert, R. Walterscheid, P. Lauritzen, and C. Jablonowski. Angular momentum budget in General Circulation Models of superrotating atmospheres: A critical diagnostic. Journal of Geophysical Research (Planets), 117:E12004, 2012.&lt;br /&gt;
&lt;br /&gt;
P. H. Lauritzen, J. T. Bacmeister, T. Dubos, S. Lebonnois, and M. A. Taylor. Held-Suarez simulations with the Community Atmosphere Model Spectral Element (CAM-SE) dynamical core: A global axial angular momentum analysis using Eulerian and floating Lagrangian vertical coordinates. Journal of Advances in Modeling Earth Systems, 6:129-140, 2014.&lt;br /&gt;
&lt;br /&gt;
== XIOS server ou client ==&lt;br /&gt;
&lt;br /&gt;
# XIOS client &amp;lt;code&amp;gt;use_server=False&amp;lt;/code&amp;gt; Broadwell 24 processeurs sur 28&lt;br /&gt;
# XIOS server &amp;lt;code&amp;gt;use_server=true&amp;lt;/code&amp;gt; Broadwell 24 processurs sur 28 + 4 processeurs pour XIOS&lt;br /&gt;
&lt;br /&gt;
cas 1 est 3 min plus lent que cas 2 -- sur 2h20...! parce qu'on fait peu de sorties&lt;br /&gt;
&lt;br /&gt;
== Optimisation ==&lt;br /&gt;
&lt;br /&gt;
# 40 noeuds au lieu de 50 noeuds, même temps de calcul...! Testé dans la branche https://github.com/aymeric-spiga/dynamico-giant/tree/work_61levels&lt;br /&gt;
# &amp;lt;code&amp;gt;sync_freq=40ts&amp;lt;/code&amp;gt; (ou multiple de, si 40ts est la fréquence d'écriture) dans context_lmdz_physics.xml doit être inclus sinon il n'est pas réglé et XIOS transfère tout à la fin du run ce qui prend du temps (et peut occasionner des problèmes de mémoire)&lt;br /&gt;
&lt;br /&gt;
== Versions fonctionnelles de dynamico-giant ==&lt;br /&gt;
&lt;br /&gt;
=== Jupiter ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 756&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 339&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2228 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
but check Physics version 2142 and 2180&lt;br /&gt;
&lt;br /&gt;
=== Saturne (référence Spiga 2020, à vérifier) ===&lt;br /&gt;
&lt;br /&gt;
* DYNAMICO --&amp;amp;gt; Revision: 756&lt;br /&gt;
* PHYSICS --&amp;amp;gt; Revision: 2005&lt;br /&gt;
* XIOS --&amp;amp;gt; Revision: 1583&lt;br /&gt;
* IOIPSL --&amp;amp;gt; Revision: 310?&lt;br /&gt;
&lt;br /&gt;
=== Saturne (simulation de référence sur 61 niveaux, Bardet et al. Icarus 2021) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 310&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2005 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Saturne (simulation avec la GWD paramétrisation sur 61 niveaux, chapitre 6 PhD Bardet) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 310&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2213 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Saturne (simulation sur 96 niveaux, Bardet et al. Nature Astronomy 2022) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 431&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2305 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Saturne (simulation avec la GWD paramétrisation sur 96 niveaux, chapitre 6 PhD Bardet) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 431&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2403 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Uranus &amp;amp;amp; Neptune (old version) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1944&lt;br /&gt;
* ICOSAGCM revision 765&lt;br /&gt;
* IOIPSL revision 431&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2413 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Uranus &amp;amp;amp; Neptune (new version) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 2203&lt;br /&gt;
* ICOSAGCM revision (20/08/2021)&lt;br /&gt;
* IOIPSL revision 450&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2555 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
works on 03/03/2022 for all HEAD&lt;br /&gt;
&lt;br /&gt;
== Les fichiers d'architecture (Installation sur un nouveau cluster) ==&lt;br /&gt;
&lt;br /&gt;
En pratique LMDZ.COMMON, ICOSA_LMDZ et IOIPSL peuvent utiliser exactement le même fichier arch.fcm ; mais celui pour ICOSAGCM est légèrement différent (les %FPP_DEF diffèrent, peut-être aussi le %FPP).&lt;br /&gt;
&lt;br /&gt;
make_icosa_lmdz doit être lancé avec -arch_path ../ARCH puisque les arch.env et arch.path communs se trouvent dans ../ARCH (l'option -arch_path ne concerne d'ailleurs que les fichiers arch.env et arch.path; le fichier arch.fcm recherché sera toujours celui dans le &amp;amp;quot;arch&amp;amp;quot; de chacun des modèles. Donc il faut bien mettre pour chacun des quatre modèles (LMDZ.COMMON, ICOSA_LMDZ,IOIPSL et ICOSAGCM) le arch.fcm dans le sous-dossier arch/ du modèle correspondant.&lt;br /&gt;
&lt;br /&gt;
XIOS est écrit en C++, et pas en Fortran. Le fichier arch.fcm correspondant est donc nécessairement différent de celui des quatre autres modèles. Pour créér ce arch.fcm, prendre exemple sur les fichiers .fcm déjà présent dans XIOS/arch/, avec une architecture similaire à celle du nouveau cluster. En particulier, il faut utiliser des versions de gcc/gfortran &amp;amp;gt; 6+. Il faut absolument avoir une bibliothèque HDF5 compilée en parallèle, ainsi que netcdf-C et netcdf-fortran (et peut être aussi netcdf-Cxx) compilé en parallèle. Sans ça, il sera peut-être possible de compiler le modèle, mais pas de lancer une simulation en utilisant XIOS.&lt;br /&gt;
&lt;br /&gt;
== Commencer une nouvelle simulation en utilisant le schéma des panaches thermiques ==&lt;br /&gt;
&lt;br /&gt;
# Comme pour toutes nouvelles simulations, il faut commencer par un run 1D de plusieurs décennies permettant d'obtenir un profil de température (&amp;lt;code&amp;gt;temp_profile.txt&amp;lt;/code&amp;gt;) et les coefficients ap et bp (&amp;lt;code&amp;gt;apbp.txt&amp;lt;/code&amp;gt;) en équilibre radiatif-convectif pour la planète que l'on étudie. Ce run 1D s'effectue dans les dossiers jupiter1d, saturn1d, neptune1d et/ou uranus1d, avec ces options pour le callphys.def :&lt;br /&gt;
&lt;br /&gt;
callrad = true calladj = true tous les autres mots clés à false (y compris &amp;lt;code&amp;gt;calltherm&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Faire un &amp;amp;quot;makestart&amp;amp;quot; run : permet d'obtenir les fichiers restart à partir du profil de température initial. Il s'agit du run dont l'état initial est le profil de température créé par run 1D (&amp;lt;code&amp;gt;temp_profile.txt&amp;lt;/code&amp;gt; est appliquer à chaque point de grille horizontale du modèle). L'état initial est ainsi une planète isotherme horizontalement mais qui varie verticalement. Pour ce run, aucun traceur ne va être utilisé dans le modèle. Néanmoins, il faut renseigner au modèle le nombre de traceurs que nous souhaitons utiliser avec le schéma des panaches thermiques afin qu'il puisse créer la dimension nq et le champ q dans les fichiers &amp;lt;code&amp;gt;restart_icosa.nc&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt;. dans '''callphys.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;          traceur = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;dans '''run_icosa.def''' : &amp;lt;code&amp;gt;nqtot = 2&amp;lt;/code&amp;gt; (par exemple, h2o_vap et h2o_ice) dans '''traceur.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;           2&lt;br /&gt;
           h2o_vap&lt;br /&gt;
           h2o_ice&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Ajout des quantités pour chaque traceur. Ici, nous ajoutons les profils pour chacun des traceurs dans les fichiers &amp;lt;code&amp;gt;restart_icosa.nc&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; &amp;amp;quot;à la main&amp;amp;quot; en utilisant le programme python &amp;lt;code&amp;gt;/processing_codes/tracer_settings.py&amp;lt;/code&amp;gt; pour obtenir des fichiers restart avec la bonne abondance d'eau dans le cas présent.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Commencer la simulation : Il ne reste plus qu'à lancer la simulation 3D avec les nouveaux fichiers restart et les réglages suivant : dans '''callphys.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;            traceur = true&lt;br /&gt;
            calltherm = true&lt;br /&gt;
            # thermal plume model options:&lt;br /&gt;
            divmpl = true&lt;br /&gt;
            r_aspect_thermals = 2.0&lt;br /&gt;
            tau_thermals      = 0.0&lt;br /&gt;
            betalpha          = 0.9&lt;br /&gt;
            afact             = 0.7&lt;br /&gt;
            fact_epsilon      = 2.e-4&lt;br /&gt;
            alpha_max         = 0.7&lt;br /&gt;
            fomass_max        = 0.5&lt;br /&gt;
            pres_limit        = 2.e5&lt;br /&gt;
            water             = true&lt;br /&gt;
            watercond         = true&lt;br /&gt;
            waterain          = true&lt;br /&gt;
            evap_prec         = true&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans '''run_icosa.def''' : &amp;lt;code&amp;gt;nqtot = 2&amp;lt;/code&amp;gt; dans '''traceur.def''' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;               2&lt;br /&gt;
               h2o_vap&lt;br /&gt;
               h2o_ice&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enfin, ajouter la déclaration et l'écriture des variables relatives à l'utilisation du schéma des thermiques (&amp;lt;code&amp;gt;h2o_vap&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h2o_ice&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;w_plm&amp;lt;/code&amp;gt;) dans les fichiers XML de la physique.&lt;br /&gt;
&lt;br /&gt;
== Erreur en début de run, SEGMENTATION FAULT dans la routine &amp;lt;code&amp;gt;advect.f90&amp;lt;/code&amp;gt; (ICOSAGCM/ppsrc/transport) au niveau de l'appel à &amp;lt;code&amp;gt;cross_product2&amp;lt;/code&amp;gt;. ==&lt;br /&gt;
&lt;br /&gt;
La routine &amp;lt;code&amp;gt;cross_product2&amp;lt;/code&amp;gt; effectue des produits vectoriels. Cette erreur vient du fait qu'en essayant de faire des optimisations de calcul, le compilateur se prend &amp;amp;quot;les pieds dans le tapis&amp;amp;quot; et ne sait plus faire le produit vectoriel. Pour empêcher le compilateur de faire des optimisations trop poussées, il faut ajouter l'option &amp;lt;code&amp;gt;-fp-model strict&amp;lt;/code&amp;gt; au niveau du mot-clé &amp;lt;code&amp;gt;%BASE_FFLAGS&amp;lt;/code&amp;gt; dans tous les fichiers &amp;lt;code&amp;gt;.fcm&amp;lt;/code&amp;gt; du modèle (LMDZ.COMMON / ICOSAGCM / ICOSA_LMDZ)&lt;br /&gt;
&lt;br /&gt;
== Branche master version du 04/04/2022 dans le dossier Jupiter ==&lt;br /&gt;
&lt;br /&gt;
La version actuelle des fichiers de réglage dans le dossier Jupiter sont réglés pour utiliser des traceurs. Si vous souhaiter utiliser le modèle sans traceur, il vous faut modifier les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
run_icosa.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        nqtot = 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
traceur.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        0&amp;lt;/pre&amp;gt;&lt;br /&gt;
context_dynamico.xml (ligne 125)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;         &amp;amp;lt;field id=&amp;amp;quot;q_start&amp;amp;quot; name=&amp;amp;quot;q&amp;amp;quot;  grid_ref=&amp;amp;quot;grid_q_start&amp;amp;quot; prec=&amp;amp;quot;8&amp;amp;quot;/&amp;amp;gt;   &amp;lt;/pre&amp;gt;&lt;br /&gt;
== PROFILING with DYNAMICO-Giant: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-pg&amp;lt;/code&amp;gt;: Generate extra code to write profile information suitable for analysis program &amp;lt;code&amp;gt;gprof&amp;lt;/code&amp;gt;. You must use this option when compiling the sources files you want data about and you must '''also use it when linking'''. 1. For DYNAMICO-Giant: in the arch.fcm file of each part of the model (ICOSAGCM, ICOSA_LMDZ, LMDZ.COMMON and XIOS), you have to add the option &amp;lt;code&amp;gt;-pg&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;%PROD_FFLAGS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;%BASE_LD&amp;lt;/code&amp;gt; 2. Compile as usual 3. Execute your code as usual 4. Run &amp;lt;code&amp;gt;gprof&amp;lt;/code&amp;gt; tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;    gprof icosa_lmdz.exe goon.out &amp;amp;gt; analysis.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:DYNAMICO]]&lt;br /&gt;
[[Category:Generic-DYNAMICO]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Dynamico-giant&amp;diff=3283</id>
		<title>Dynamico-giant</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Dynamico-giant&amp;diff=3283"/>
				<updated>2026-06-12T13:30:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* H) Bottom du modèle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[transferred from github, now active here]&lt;br /&gt;
&lt;br /&gt;
= 1. Introduction =&lt;br /&gt;
&lt;br /&gt;
Modeling the atmospheric circulation of giant planets of our solar System (Jupiter, Saturn, Uranus and Neptune) require high horizontal resolution grid: typically, half a degree (in latitude, longitude) for Jupiter and Saturn, and one degree for Uranus and Neptune. &lt;br /&gt;
For this reason, GCM runs for giant planets use the DYNAMICO dynamical core (see [[The_DYNAMICO_dynamical_core|Dynamico]]), coupled to the Generic physics (see [[Overview_of_the_Generic_PCM|Generic-PCM]]).&lt;br /&gt;
&lt;br /&gt;
= 2. Installation =&lt;br /&gt;
&lt;br /&gt;
== A) Fichiers d'architecture ==&lt;br /&gt;
&lt;br /&gt;
=== - Modules ===&lt;br /&gt;
&lt;br /&gt;
Two options:&lt;br /&gt;
&lt;br /&gt;
1/ Before installation, set environment (do it once) in your .bash_profile.&lt;br /&gt;
&lt;br /&gt;
Example for Ciclad:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ulimit -s unlimited&lt;br /&gt;
# modules&lt;br /&gt;
module purge&lt;br /&gt;
module load gnu/4.9.3 &lt;br /&gt;
module load intel/15.0.6.233&lt;br /&gt;
module load openmpi/1.6.5-ifort&lt;br /&gt;
module load hdf5/1.8.18-parallel-ifort&lt;br /&gt;
module load netcdf4/4.4.1.1-parallel-ifort&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beware, if you change version of model (newer or older version), it's possible that you have to change modules...&lt;br /&gt;
&lt;br /&gt;
2/ Or, in your script that launches a job, source a .env file (' source .../dynamico-giant/code/ARCH/arch-ADASTRA-gnu.env ')&lt;br /&gt;
&lt;br /&gt;
=== - Installation sur un nouveau cluster ===&lt;br /&gt;
&lt;br /&gt;
En pratique LMDZ.COMMON, ICOSA_LMDZ et IOIPSL peuvent utiliser exactement le même fichier arch.fcm ; mais celui pour ICOSAGCM est légèrement différent (les %FPP_DEF diffèrent, peut-être aussi le %FPP).&lt;br /&gt;
&lt;br /&gt;
make_icosa_lmdz doit être lancé avec -arch_path ../ARCH puisque les arch.env et arch.path communs se trouvent dans ../ARCH (l'option -arch_path ne concerne d'ailleurs que les fichiers arch.env et arch.path; le fichier arch.fcm recherché sera toujours celui dans le &amp;amp;quot;arch&amp;amp;quot; de chacun des modèles. Donc il faut bien mettre pour chacun des quatre modèles (LMDZ.COMMON, ICOSA_LMDZ,IOIPSL et ICOSAGCM) le arch.fcm dans le sous-dossier arch/ du modèle correspondant.&lt;br /&gt;
&lt;br /&gt;
L'installation d'IOIPSL doit se faire à partir du bon script bash. Si vous utilisez un server autre qu'occigen, il vous faut changer le nom du script à utiliser dans install_ioipsl.sh. Par exemple, il vous faudra utiliser install_ioipsl_ciclad-ifort.bash pour CICLAD.&lt;br /&gt;
&lt;br /&gt;
XIOS est écrit en C++, et pas en Fortran. Le fichier arch.fcm correspondant est donc nécessairement différent de celui des quatre autres modèles. Pour créér ce arch.fcm, prendre exemple sur les fichiers .fcm déjà présent dans XIOS/arch/, avec une architecture similaire à celle du nouveau cluster. En particulier, il faut utiliser des versions de gcc/gfortran &amp;amp;gt; 6+. Il faut absolument avoir une bibliothèque HDF5 compilée en parallèle, ainsi que netcdf-C et netcdf-fortran (et peut être aussi netcdf-Cxx) compilé en parallèle. Sans ça, il sera peut-être possible de compiler le modèle, mais pas de lancer une simulation en utilisant XIOS.&lt;br /&gt;
&lt;br /&gt;
== B. Download ==&lt;br /&gt;
&lt;br /&gt;
Download structure&lt;br /&gt;
&lt;br /&gt;
Take place on a repository and git clone the model.&lt;br /&gt;
&lt;br /&gt;
On occigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $SCRATCHDIR&lt;br /&gt;
git clone https://github.com/aymeric-spiga/dynamico-giant.git [optional different name]&amp;lt;/pre&amp;gt;&lt;br /&gt;
== C. Install ==&lt;br /&gt;
&lt;br /&gt;
Install code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd dynamico-giant&lt;br /&gt;
./install.sh&lt;br /&gt;
./install_ioipsl.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
A login and a password are necessary to install IOIPSL (only for the first time, after that we can save them). Please contact TGCC computing center to get the login/password.&lt;br /&gt;
&lt;br /&gt;
After that, please add &amp;amp;quot;$PWD&amp;amp;quot;/FCM_V1.2/bin/ to PATH environment variable.&lt;br /&gt;
&lt;br /&gt;
Ant that's all, we can now change parameters of files or compile the code to do a test (part 6) or eat a beautiful tartiflette (can be also do during compilation).&lt;br /&gt;
&lt;br /&gt;
= 3. General parameters =&lt;br /&gt;
&lt;br /&gt;
== A) Mesh grid &amp;amp;amp; resolution ==&lt;br /&gt;
&lt;br /&gt;
On run_icosa.def:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nbp --&amp;amp;gt; number of subdivision on a main triangle: integer (default=40)&lt;br /&gt;
        nbp = sqrt((nbr_lat x nbr_lon)/10)&lt;br /&gt;
        nbp                 20  40  80 160&lt;br /&gt;
        T-edge length (km) 500 250 120  60&lt;br /&gt;
        Example: nbp(128x96)=35 -&amp;amp;gt; 40&lt;br /&gt;
                 nbp(256x192)=70 -&amp;amp;gt; 80&lt;br /&gt;
                 nbp(360x720)=160 -&amp;amp;gt; 160&lt;br /&gt;
nsplit_i, nsplit_j --&amp;amp;gt; sub splitting of main rhombus: integer&lt;br /&gt;
                        Example: for nbp=80, nsplit_i=4,nsplit_j=6&lt;br /&gt;
                        nbp/nsplit_{i,j} = 20 &amp;amp;gt; 10 &amp;amp;amp; 13 &amp;amp;gt; 10 --&amp;amp;gt; GOOD&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== - Remapping ===&lt;br /&gt;
&lt;br /&gt;
Pour le remapping, il faut aller dans context_lmdz_physics.xml changer les paramètres ni_glo et nj_glo par exemple pour remapper sur du lat/lon à 360 pts en latitude et 720 pts en longitude (0.5°).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;domain id=&amp;amp;quot;dom_regular&amp;amp;quot; ni_glo=&amp;amp;quot;720&amp;amp;quot; nj_glo=&amp;amp;quot;360&amp;amp;quot; type=&amp;amp;quot;rectilinear&amp;amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B) Time ==&lt;br /&gt;
&lt;br /&gt;
* ndays is number of days to simulate.&lt;br /&gt;
* day_step is number of dynamical time step per day&lt;br /&gt;
* Dynamics called every day_length(in s) / day_step per day&lt;br /&gt;
* 1 ts (physical timestep) = (day_length(in s)/day_step) x itau_physics&lt;br /&gt;
* Physics called (day_step / itau_physics) per day&lt;br /&gt;
* Physics called day_length(in s) / ts per day&lt;br /&gt;
* Radiative called every Physics x iradia physical timestep&lt;br /&gt;
* Radiative called every iradia/Physics days&lt;br /&gt;
&lt;br /&gt;
== C) Sponge layer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;iflag_sponge=0 for no sponge (default)&lt;br /&gt;
iflag_sponge=1 for sponge over 4 topmost layers&lt;br /&gt;
iflag_sponge=2 for sponge from top to ~1% of top layer pressure&lt;br /&gt;
mode_sponge=1 for u,v --&amp;amp;gt; 0&lt;br /&gt;
mode_sponge=2 for u,v --&amp;amp;gt; zonal mean&lt;br /&gt;
mode_sponge=3 for u,v,h --&amp;amp;gt; zonal mean&lt;br /&gt;
tau_sponge --&amp;amp;gt; damping frequency at last layer&lt;br /&gt;
           --&amp;amp;gt; e-5 medium / e-4 strong yet reasonable / e-3 very strong&amp;lt;/pre&amp;gt;&lt;br /&gt;
Spiga et al (2020): Shaw and Shepherd (2007) showed that the inclusion of sponge-layer parameterizations that do not conserve angular momentum (which is the case for Rayleigh drag), or allow for momentum to escape to space, implies a sensitivity of the dynamical results (especially zonal wind speed) to the choice for model top or drag characteristic timescale, because of spurious downward influence when momentum conservation is violated.&lt;br /&gt;
&lt;br /&gt;
Il ne faut donc pas ajouter de sponge layer pour les planètes géantes (iflag_sponge = 0)&lt;br /&gt;
&lt;br /&gt;
== D) Dissipation ==&lt;br /&gt;
&lt;br /&gt;
Spiga et al (2020): A subgrid-scale dissipation term is included in our Saturn DYNAMICO GCM to prevent the accumulation of energy at scales close to the grid resolution, caused by the GCM not resolving the turbulent scales at which this energy is dissipated. This hyperviscosity term is written in our Saturn DYNAMICO model as an iterated Laplacian term on a given variable. The three variables denoted are vorticity, divergence, and potential temperature, chosen to set horizontal dissipation on respectively the rotational component of the flow (e.g. Rossby waves), the divergent component of the flow (e.g. gravity waves), and the diabatic perturbations (e.g. coming from the physical packages).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;tau_graddiv --&amp;amp;gt; dissipation timescale of smallest wvl: u,v (gradiv) : real (default=5000)&lt;br /&gt;
tau_gradrot --&amp;amp;gt; dissipation timescale of smallest wvl: u,v (nxgradrot) : real (default=5000)&lt;br /&gt;
tau_divgrad --&amp;amp;gt; dissipation timescale of smallest wvl: h (divgrad) : real (default=5000)&lt;br /&gt;
nitergdiv --&amp;amp;gt; number of iterations for gradiv operator : integer (default=1)&lt;br /&gt;
nitergrot --&amp;amp;gt; number of iterations for nxgradrot operator : integer (default=1)&lt;br /&gt;
niterdivgrad --&amp;amp;gt; number of iterations for divgrad operator : integer (default=1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
tau_graddiv,tau_gradrot,tau_divgrad correspondent au temps de dissipation (plus c'est petit, plus la dissipation est efficace). nitergdiv,nitergrot,niterdivgrad correspondent à l'ordre du laplacien (plus c'est grand, plus on dissipe sélectivement les petites échelles).&lt;br /&gt;
&lt;br /&gt;
Attention, Trop dissiper -&amp;amp;gt; instabilité numérique&lt;br /&gt;
&lt;br /&gt;
Pas assez dissiper -&amp;amp;gt; instabilité dynamique trop forte&lt;br /&gt;
&lt;br /&gt;
L'ordre du laplacien dans les fichiers .def est suffisant. S'il faut changer la dissipation, il vaut mieux changer les temps de dissipation que l'ordre du laplacien (risque d'instabilité numérique).&lt;br /&gt;
&lt;br /&gt;
=== - Facteurs de dissipation ===&lt;br /&gt;
&lt;br /&gt;
A partir de ces valeurs de temps de dissipation, il est également possible d'ajouter 2 facteurs de dissipation (fac_mid et fac_up) qui permettent d'augmenter la dissipation à partir de certains niveaux. Le fac_mid permet de diminuer le temps de dissipation d'un facteur sur toute l'atmosphère jusqu'au bottom. Il y a une zone transition de quelques niveaux entre le bottom (le temp de dissipation au bottom est sans facteur) et quelques niveaux au-dessus où la valeur du temps de dissipation est avec ce facteur jusqu'au top. On ne peut donc pas choisir l'altitude et la zone de transition avec ce facteur. Quant au fac_up, il permet de diminuer le temps de dissipation d'un facteur à partir d'une altitude et d'une épaisseur de zone de transition qu'on peut choisir. On peut utiliser la combinaison des 2 ou l'un des 2. Pour ne pas prendre en compte ces facteurs de dissipation, il faut qu'il soit mis à 1.&lt;br /&gt;
&lt;br /&gt;
Il existe 2 modes possibles pour le fac_up: le mode martien (en fonction de l'altitude) et le mode vénusien (en fonction de la pression). Dans le 1er cas, il faut renseigner l'altitude où démarre la zone de transition et l'épaisseur de cette zone. Dans le 2ème cas, il faut renseigner la pression où démarre la zone de transition et l'échelle de hauteur de cette zone de transition.&lt;br /&gt;
&lt;br /&gt;
Il est vivement conseillé de tracer votre profil de dissipation à partir des équations (dans vert_prof_dissip_icosa_lmdz.f90) afin d'être certain de leur allure.&lt;br /&gt;
&lt;br /&gt;
== E) Rayleigh Friction ==&lt;br /&gt;
&lt;br /&gt;
Spiga et al 2020: This drag plays the role devoted to surface friction on terrestrial planets, which allows to close the angular momentum budget through downward control (Haynes and McIntyre, 1987; Haynes et al., 1991). This could also be regarded as a zeroth-order parameterization for Magneto-HydroDynamic (MHD) drag as a result of Lorenz forces acting on jet streams putatively extending to the depths of Saturn's interior (Liu et al., 2008; Galanti et al., 2019), much deeper than the shallow GCM's model bottom.&lt;br /&gt;
&lt;br /&gt;
Comme Liu and Schneider (2010), cette couche de frottement ne s'exerce pas aux régions équatoriales car à l’extérieur du cylindre tangeant du rayon équatorial, les cylindres convectifs ne coupent pas cette couche et ne subissent pas les frottements liés aux effets de la MHD.&lt;br /&gt;
&lt;br /&gt;
Le paramètre rayleigh_limlat correspond à la latitude maximale de part et d'autre de l'équateur où cette friction n'est pas observée.&lt;br /&gt;
&lt;br /&gt;
Pour le temps (rayleigh_friction_tau), il est similaire à celui utilisé par Liu and Schneider (2010). Elle est fixée à 100 jours terrestres. Mais attention, on fonction de la valeur, la dynamique peut évoluer dans votre simulation.&lt;br /&gt;
&lt;br /&gt;
== F) Conservation ==&lt;br /&gt;
&lt;br /&gt;
Dans run_icosa.def:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;check_conservation = detailed &lt;br /&gt;
itau_check_conserv = 320&amp;lt;/pre&amp;gt;&lt;br /&gt;
Le itau_check_conserv est comme itau_physics pour que la contribution de la physique à AAM ne soit pas nulle. de plus il est coûteux d'appeler les diagnostics trop souvent.&lt;br /&gt;
&lt;br /&gt;
S. Lebonnois, C. Covey, A. Grossman, H. Parish, G. Schubert, R. Walterscheid, P. Lauritzen, and C. Jablonowski. Angular momentum budget in General Circulation Models of superrotating atmospheres: A critical diagnostic. Journal of Geophysical Research (Planets), 117:E12004, 2012.&lt;br /&gt;
&lt;br /&gt;
P. H. Lauritzen, J. T. Bacmeister, T. Dubos, S. Lebonnois, and M. A. Taylor. Held-Suarez simulations with the Community Atmosphere Model Spectral Element (CAM-SE) dynamical core: A global axial angular momentum analysis using Eulerian and floating Lagrangian vertical coordinates. Journal of Advances in Modeling Earth Systems, 6:129-140, 2014.&lt;br /&gt;
&lt;br /&gt;
== G) Traceur ==&lt;br /&gt;
&lt;br /&gt;
=== - Branche master version du 04/04/2022 dans le dossier Jupiter (traceur) ===&lt;br /&gt;
&lt;br /&gt;
La version actuelle des fichiers de réglage dans le dossier Jupiter est réglée pour utiliser des traceurs. Si vous souhaiter utiliser le modèle sans traceur, il vous faut modifier les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
run_icosa.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        nqtot = 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
traceur.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        0&amp;lt;/pre&amp;gt;&lt;br /&gt;
context_dynamico.xml (ligne 125)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;         &amp;amp;lt;field id=&amp;amp;quot;q_start&amp;amp;quot; name=&amp;amp;quot;q&amp;amp;quot;  grid_ref=&amp;amp;quot;grid_q_start&amp;amp;quot; prec=&amp;amp;quot;8&amp;amp;quot;/&amp;amp;gt;   &amp;lt;/pre&amp;gt;&lt;br /&gt;
== H) Bottom du modèle ==&lt;br /&gt;
&lt;br /&gt;
* refaire tourner le 1D&lt;br /&gt;
** changer la pression &amp;lt;code&amp;gt;psurf&amp;lt;/code&amp;gt; dans run.def&lt;br /&gt;
** changer &amp;lt;code&amp;gt;ichoice=1&amp;lt;/code&amp;gt; et changer &amp;lt;code&amp;gt;tref&amp;lt;/code&amp;gt; (ex: 10b: 330K)&lt;br /&gt;
* refaire tourner le 3D (avec makestart) en changeant &amp;lt;code&amp;gt;preff&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;[nom_de_la_planète]_const.def&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Physical parameterizations =&lt;br /&gt;
&lt;br /&gt;
== A) Cycle diurne ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diurnal = .false.&amp;lt;/code&amp;gt; Car le temps radiatif est beaucoup plus long sur les planètes géantes.&lt;br /&gt;
&lt;br /&gt;
== B) Anneaux ==&lt;br /&gt;
&lt;br /&gt;
[Pour saturne uniquement] Il est possible d'ajouter l'ombre des anneaux dans le callphys.def:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rings_shadow = .true.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C) Collision-induced absorption data ==&lt;br /&gt;
&lt;br /&gt;
L'absorption induite par collision est importante dans le transfet radiatif sur les planètes géantes, notamment celle provenant de H2. Cependant, le rapport ortho-para du H2 est différent selon les planètes et peut modifier fortement le chauffage sur ces planètes. Pour le cas des géantes gazeuses, le rapport ortho-para est normal (rapport 3:1). Mais pour le cas des géantes glacées, le rapport ortho-para est à l'équilibre. Par défaut, le rapport ortho-para est normal (H2orthopara_mixture = normal). Pour les géantes glacées, il faut mettre H2orthopara_mixture = equilibrium .&lt;br /&gt;
&lt;br /&gt;
Si vous voulez modifier le fichier utilisé dans un cas de CIA, il faut aller dans le code (dynamico-giant/code/LMDZ.GENERIC/libf/phygeneric/interpolate????.F90) et changer le nom du fichier (assurez-vous que ce fichier soit dans votre répertoire DATAGENERIC/continuum_data).&lt;br /&gt;
&lt;br /&gt;
Dans la version actuelle, il n'existe pas d'option qui permet de ne pas utiliser certaines contributions de CIA. Par exemple, si votre atmosphère est composé de H2, He et CH4 et que vous ne voulez pas des contributions venant du CH4, il vous faut commenter dans le modèle ces contributions.&lt;br /&gt;
&lt;br /&gt;
== D) K-correlated data ==&lt;br /&gt;
&lt;br /&gt;
Les fichiers k-corrélées doivent se situer dans votre répertoire DATAGENERIC/corrk_data .&lt;br /&gt;
&lt;br /&gt;
== E) Cpp mode ==&lt;br /&gt;
&lt;br /&gt;
cpp_mugaz_mode=0 pour que la valeur de cpp et de mugaz proviennent de la dynamique. cpp_mugaz_mode=1 pour forcer la valeur de cpp et de mugaz dans le callphys.def (à utiliser dans le makestart uniquement) cpp_mugaz_mode=2 pour calculer automatiquement à partir de données de références à 300 K et du gases.def (à éviter)&lt;br /&gt;
&lt;br /&gt;
== F) Generic n-layer aerosols (replaces the former 2-layer and NH3 cloud) ==&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de créer des couches d'aérosols/nuages ayant une opacité (aeronlay_tauref) à une longueur d'onde donnée (aeronlay_lamref), un rayon de particule fixe (aeronlay_size) situés à une pression fixe et en fonction des propriétés optiques des particules (optprop_aeronlay_vis et optprop_aeronlay_ir). Pour le cas de l'altitude, on peut choisir soit (aeronlay_choice = 1) une pression max (aeronlay_ptop) et une pression min (aeronlay_pbot), soit (aeronlay_choice = 2) une pression min (aeronlay_pbot) et une échelle de hauteur (aeronlay_sclhght). On peut également choisir la variance effective pour les rayons de particules.&lt;br /&gt;
&lt;br /&gt;
Le nombre de couche de nuage (nlayero) est égal au nombre de scatterers dans la compilation (option -s ).&lt;br /&gt;
&lt;br /&gt;
Les fichiers de propriétés optiques doivent être dans votre DATAGENERIC.&lt;br /&gt;
&lt;br /&gt;
Un exemple pour 3 couches:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;aeronlay = .true.&lt;br /&gt;
nlayaero = 3&lt;br /&gt;
aeronlay_tauref       = 2.5 0.04 0.1&lt;br /&gt;
aeronlay_lamref       = 0.8e-6 0.8e-6 0.16e-6&lt;br /&gt;
aeronlay_choice       = 2 2 1&lt;br /&gt;
aeronlay_pbot         = 1.5e5 1.6e5 20.&lt;br /&gt;
aeronlay_ptop         = 1.1e5 1. 1.&lt;br /&gt;
aeronlay_sclhght      = 0.1 2.0 1&lt;br /&gt;
aeronlay_size         = 0.5e-6 0.05e-6 0.5e-6&lt;br /&gt;
aeronlay_nueff        = 0.3 0.3 0.3&lt;br /&gt;
optprop_aeronlay_vis  = optprop_aerosol2_vis.dat optprop_aerosol3_vis.dat optprop_carbon4_vis.dat&lt;br /&gt;
optprop_aeronlay_ir   = optprop_aerosol2_ir.dat optprop_aerosol3_ir.dat optprop_carbon4_ir.dat&amp;lt;/pre&amp;gt;&lt;br /&gt;
== G) Panaches thermiques ==&lt;br /&gt;
&lt;br /&gt;
# Comme pour toutes nouvelles simulations, il faut commencer par un run 1D de plusieurs décennies permettant d'obtenir un profil de température (&amp;lt;code&amp;gt;temp_profile.txt&amp;lt;/code&amp;gt;) et les coefficients ap et bp (&amp;lt;code&amp;gt;apbp.txt&amp;lt;/code&amp;gt;) en équilibre radiatif-convectif pour la planète que l'on étudie. Ce run 1D s'effectue dans les dossiers jupiter1d, saturn1d, neptune1d et/ou uranus1d, avec ces options pour le callphys.def :&lt;br /&gt;
&lt;br /&gt;
callrad = true calladj = true tous les autres mots clés à false (y compris &amp;lt;code&amp;gt;calltherm&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Faire un &amp;amp;quot;makestart&amp;amp;quot; run : permet d'obtenir les fichiers restart à partir du profil de température initial. Il s'agit du run dont l'état initial est le profil de température créé par run 1D (&amp;lt;code&amp;gt;temp_profile.txt&amp;lt;/code&amp;gt; est appliquer à chaque point de grille horizontale du modèle). L'état initial est ainsi une planète isotherme horizontalement mais qui varie verticalement. Pour ce run, aucun traceur ne va être utilisé dans le modèle. Néanmoins, il faut renseigner au modèle le nombre de traceurs que nous souhaitons utiliser avec le schéma des panaches thermiques afin qu'il puisse créer la dimension nq et le champ q dans les fichiers &amp;lt;code&amp;gt;restart_icosa.nc&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt;. dans '''callphys.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;          traceur = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;dans '''run_icosa.def''' : &amp;lt;code&amp;gt;nqtot = 2&amp;lt;/code&amp;gt; (par exemple, h2o_vap et h2o_ice) dans '''traceur.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;           2&lt;br /&gt;
           h2o_vap&lt;br /&gt;
           h2o_ice&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Ajout des quantités pour chaque traceur. Ici, nous ajoutons les profils pour chacun des traceurs dans les fichiers &amp;lt;code&amp;gt;restart_icosa.nc&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; &amp;amp;quot;à la main&amp;amp;quot; en utilisant le programme python &amp;lt;code&amp;gt;/processing_codes/tracer_settings.py&amp;lt;/code&amp;gt; pour obtenir des fichiers restart avec la bonne abondance d'eau dans le cas présent.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Commencer la simulation : Il ne reste plus qu'à lancer la simulation 3D avec les nouveaux fichiers restart et les réglages suivant : dans '''callphys.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;            traceur = true&lt;br /&gt;
            calltherm = true&lt;br /&gt;
            # thermal plume model options:&lt;br /&gt;
            divmpl = true&lt;br /&gt;
            r_aspect_thermals = 2.0&lt;br /&gt;
            tau_thermals      = 0.0&lt;br /&gt;
            betalpha          = 0.9&lt;br /&gt;
            afact             = 0.7&lt;br /&gt;
            fact_epsilon      = 2.e-4&lt;br /&gt;
            alpha_max         = 0.7&lt;br /&gt;
            fomass_max        = 0.5&lt;br /&gt;
            pres_limit        = 2.e5&lt;br /&gt;
            water             = true&lt;br /&gt;
            watercond         = true&lt;br /&gt;
            waterain          = true&lt;br /&gt;
            evap_prec         = true&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans '''run_icosa.def''' : &amp;lt;code&amp;gt;nqtot = 2&amp;lt;/code&amp;gt; dans '''traceur.def''' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;               2&lt;br /&gt;
               h2o_vap&lt;br /&gt;
               h2o_ice&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enfin, ajouter la déclaration et l'écriture des variables relatives à l'utilisation du schéma des thermiques (&amp;lt;code&amp;gt;h2o_vap&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h2o_ice&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;w_plm&amp;lt;/code&amp;gt;) dans les fichiers XML de la physique.&lt;br /&gt;
&lt;br /&gt;
== H) Rotation ==&lt;br /&gt;
&lt;br /&gt;
Dans [name_of_planet]_const.def, changer le taux de rotation.&lt;br /&gt;
&lt;br /&gt;
Cela n'a jamais été testé avec 0, mais cela pourrait créer des problèmes (ex: beta). ''vérifier que omega dans saturn_const.def n'intervient pas dans la physique LMDZ.GENERIC/libf/phygeneric/''&lt;br /&gt;
&lt;br /&gt;
== I) Appel à la physique ==&lt;br /&gt;
&lt;br /&gt;
Il faut changer à ''deux endroits'' en réglant la même valeur: - dans run_icosa.def, changer itau_physics ; - dans run.def, changer iphysiq. Ces paramètres sont exprimés en pas de temps dynamique. Pour appeler la physique à chaque pas de temps dynamique, régler ces paramètres à 1.&lt;br /&gt;
&lt;br /&gt;
'''Attention: ''' Lorsque l'on change dans le ''run_icosa.def'' la valeur de itau_physics, faire bien attention à la valeur du champ itau_adv (qui controle la frequence d'advection des traceurs par la dynamique, compté en pas de temps dynamique). Il faut que itau_physics soit un multiple de itau_adv. Cela veut dire, que l'on advecte notre champ de traceurs plus souvent (ou autant de fois) que l'on appelle la physique, qui peut transformer ces traceurs.&lt;br /&gt;
&lt;br /&gt;
= 5. Ecriture des fichiers =&lt;br /&gt;
&lt;br /&gt;
== A) Nombre d'écriture dans chaque Xhistins.nc ==&lt;br /&gt;
&lt;br /&gt;
Prenons l'exemple de l'écriture d'un fichier sur une simu Uranus pour 1000j&lt;br /&gt;
&lt;br /&gt;
Nombre d'écriture = day_step X ndays/(itau_physics X output_freq)&lt;br /&gt;
&lt;br /&gt;
* ndays = 1000&lt;br /&gt;
* day_step = 200&lt;br /&gt;
* itau_physics = 50&lt;br /&gt;
* output_freq = 200&lt;br /&gt;
&lt;br /&gt;
On a 20 sorties tous les 1000 jours.&lt;br /&gt;
&lt;br /&gt;
Globalement, il est conseillé d'avoir 800 à 1000 sorties minimum par année planétaire (voir beaucoup plus en fonction de votre étude).&lt;br /&gt;
&lt;br /&gt;
== B) Ajouter une variable ==&lt;br /&gt;
&lt;br /&gt;
Pour ajouter une variable dans le fichier de sortie Xhistins.nc, il faut l'ajouter dans le field_group correspondant et s'assurer que cette variable est présente en tant que variable de sortie dans dynamico-giant/code/LMDZ.GENERIC/libf/phygeneric/physiq_mod.F90. Si ce n'est pas le cas, il faut faire un call writediagfi de la variable puis l'ajouter dans un call send_xios_field.&lt;br /&gt;
&lt;br /&gt;
== C) Forcer XIOS à écrire tous les .... ==&lt;br /&gt;
&lt;br /&gt;
Il faut utiliser l'attribut (ici par ex pour forcer l'écriture tous les ts (==time step) ; d'autres délais doivent être possible): &amp;lt;code&amp;gt;sync_freq=&amp;amp;quot;1ts&amp;amp;quot;&amp;lt;/code&amp;gt; dans le &amp;lt;code&amp;gt;&amp;amp;lt;file id=... .... &amp;amp;gt;&amp;lt;/code&amp;gt; concerné.&lt;br /&gt;
&lt;br /&gt;
== D) XIOS server ou client ==&lt;br /&gt;
&lt;br /&gt;
# XIOS client &amp;lt;code&amp;gt;use_server=False&amp;lt;/code&amp;gt; Broadwell 24 processeurs sur 28&lt;br /&gt;
# XIOS server &amp;lt;code&amp;gt;use_server=true&amp;lt;/code&amp;gt; Broadwell 24 processurs sur 28 + 4 processeurs pour XIOS&lt;br /&gt;
&lt;br /&gt;
Le cas 1 est 3 min plus lent que le cas 2 -- sur 2h20...(!) parce qu'on fait peu de sorties.&lt;br /&gt;
&lt;br /&gt;
= 6. Running the model =&lt;br /&gt;
&lt;br /&gt;
== A) Compilation ==&lt;br /&gt;
&lt;br /&gt;
Pour compiler le modèle, il suffit d'aller dans le dossier avec vos fichiers .def et .xml et d'utiliser le script compile_occigen.sh si on est sur occigen ou compile_ciclad.sh si on est sur ciclad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./compile_occigen.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les options qui peuvent être modifiées/ajoutées sont - -s : le nombre de scatterers - -parallel: mpi ou mpi_omp - -arch: le nom du ficher d'architecture - -arch_path: le chemin vers ce fichier - -job: 8 (conseillé) - -full: compile le code entièrement - -debug: pour trouver un éventuel bug. A ENLEVER obligatoirement s'il n'y a plus de bug car multiplie par 5 votre temp de calcul.&lt;br /&gt;
&lt;br /&gt;
En 1D, d'autres options sont nécessaires: - -t: nombre de traceurs - -d: nombre de niveaux verticaux - -parallel: none (en 1D uniquement)&lt;br /&gt;
&lt;br /&gt;
=== - Versions fonctionnelles de dynamico-giant ===&lt;br /&gt;
&lt;br /&gt;
'''Jupiter''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 756&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 339&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2228 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
but check Physics version 2142 and 2180&lt;br /&gt;
&lt;br /&gt;
'''Saturne (référence Spiga 2020, à vérifier)''' - DYNAMICO --&amp;amp;gt; Revision: 756 - PHYSICS --&amp;amp;gt; Revision: 2005 - XIOS --&amp;amp;gt; Revision: 1583 - IOIPSL --&amp;amp;gt; Revision: 310?&lt;br /&gt;
&lt;br /&gt;
'''Saturne (simulation de référence sur 61 niveaux, Bardet et al. Icarus 2021)''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 310&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2005 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Saturne (simulation avec la GWD paramétrisation sur 61 niveaux, chapitre 6 PhD Bardet)''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 310&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2213 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Saturne (simulation sur 96 niveaux, Bardet et al. Nature Astronomy 2022)''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 431&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2305 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Saturne (simulation avec la GWD paramétrisation sur 96 niveaux, chapitre 6 PhD Bardet)''' - XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
- ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
- IOIPSL revision 431&amp;lt;br /&amp;gt;&lt;br /&gt;
- FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2403 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Uranus &amp;amp;amp; Neptune (old version)''' - XIOS revision 1944 - ICOSAGCM revision 765 - IOIPSL revision 431 - FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2413 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Uranus &amp;amp;amp; Neptune (new version)''' - XIOS revision 2203 - ICOSAGCM revision (20/08/2021) - IOIPSL revision 450 - FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2555 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Jupiter, Saturne, Uranus &amp;amp;amp; Neptune [OCCIGEN VERSION]''' - XIOS revision 2319 - ICOSAGCM revision (90f7138a60ebd3644fbbc42bc9dfa22923386385) - IOIPSL revision 453 - FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2655 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
'''Jupiter, Saturne, Uranus &amp;amp;amp; Neptune [IRENE VERSION]''' - XIOS revision 2399 - ICOSAGCM revision (4fbd393a9051fd9c1a5b662683f6ad8d0dc2867c) - IOIPSL revision 6234 - FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
- Physics revision 2842 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
== B) Run 1D ==&lt;br /&gt;
&lt;br /&gt;
Pour une simulation 1D, 1 seul CPU suffit.&lt;br /&gt;
&lt;br /&gt;
To run on Occigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sbatch job_mpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run on Irene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ccc_msub job_mpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To see evolution of your job on Occigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;squeue -u username&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To see evolution of your job on Irene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ccc_mpp -u username&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To kill your job on Occigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scancel id_of_your_job&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To kill your job on Irene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ccc_mdel id_of_your_job&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que votre simulation est fini, lancer le script python printapbp.py qui vous permettra d'obtenir les fichiers apbp.txt et temp_profile.txt nécessaires pour les simulations en 3D.&lt;br /&gt;
&lt;br /&gt;
== C) Run 3D ==&lt;br /&gt;
&lt;br /&gt;
Pour lancer une première simulation, il faut tout d'abord le faire une seule fois dans le dossier makestart de l'un des dossiers jupiter, saturne, uranus ou neptune. Ce dernier permettra de créer les premiers fichiers restart_icosa.nc et restartfi.nc. Ensuite, il suffit revenir dans le dossier parent (jupiter, saturne, uranus, neptune) et de lancer ses simulations.&lt;br /&gt;
&lt;br /&gt;
=== - MPI ===&lt;br /&gt;
&lt;br /&gt;
Avant de lancer une simulation, il est nécessaire de déterminer - le nombre de procs - le nombre de noeuds&lt;br /&gt;
&lt;br /&gt;
Il faut avant tout savoir qu'il y a 10 x nsplit_i x nsplit_j domaines. Ces domaines sont divisés en plusieurs cellules. Il y a (nbp)²/(nsplit_i x nsplit_j) cellules par domaine. Ce nombre est égal au nombre de MPI process.&lt;br /&gt;
&lt;br /&gt;
Il est important de ne pas faire des tuiles &amp;amp;quot;trop petites&amp;amp;quot; et donc de garder nsplit_i et nsplit_j tels que nbp/nsplit_{i,j} &amp;amp;gt;=10-15 (plutôt 15). Car il y a des calculs &amp;amp;quot;redondants&amp;amp;quot; faits sur les bords du domaine. Admettons que ton domaine soit 10 x 10 (100 cellules par domaine). Le nombre de cellules au bord du domaine est égal à 2 x nsplit_i + 2 x nsplit_j - 4. Dans ce cas, le nombre de cellules au bord est de 36. Cela signifie que le bord du domaine correspond à 36% du domaine (36 points sur 100). Si le domaine est 15 x 15, alors le bord du domaine n'est plus que de 24.8 %. On aimerait avoir des domaines les plus grands possibles mais il faut aussi voir que chaque cellule correspond à une colonne à résoudre... Et c'est là ou il faut expérimenter un peu pour trouver l'optimum entre le nombre total de proc à employer et le gain effectif (temps total &amp;amp;quot;facturé&amp;amp;quot; au vu du nombre de procs monopolisés pour une simu donnée). Ehouarn&lt;br /&gt;
&lt;br /&gt;
Il faut au total que le nombre de procs soit égal à 10 x nsplit_i x nsplit_j qu'il faut répartir entre les noeuds.&lt;br /&gt;
&lt;br /&gt;
Pour les noeuds, il faut tenir compte qu'un noeud sur Occigen, c'est 24 (ou 28) procs. Disons 24. Quand on demande N procs, le système te donne M noeuds, soit M X 24 procs (les noeuds ne sont pas partagés avec d'autres applications). Et bien sûr on te facturera ces M noeuds, même si tu n'utilises pas tous les procs. Donc il faut s'efforcer de tomber juste et demander un multiple de 24 procs. Même raisonement si tu demandes à utiliser des noeuds de 28 procs.&lt;br /&gt;
&lt;br /&gt;
Par exemple, nsplit_i = 4 et nsplit_j = 6. 4 x 6 est égal à 24. On utilisera donc 10 noeuds pour avoir 240 nprocs.&lt;br /&gt;
&lt;br /&gt;
Prenons un autre exemple. nsplit_i = 5 et nsplit_j = 6. 5x6 = 30 Or il y a 24 procs par noeuds. Il faudra utiliser 13 noeuds. Et ce ne sont pas 300 procs qui seront facturés au total mais 312.&lt;br /&gt;
&lt;br /&gt;
Mais comme vu plus haut, en fonction de la configuration de tes domaines, il est possible que le 2nd exemple coûte moins cher en heure CPU que le 1er exemple car il sera plus rapide.&lt;br /&gt;
&lt;br /&gt;
=== - OpenMP / MPI ===&lt;br /&gt;
&lt;br /&gt;
Dans le cas mixte OpenMP/MPI, il est nécessaire de renseigner le nombre de tâche OpenMP et de MPI threads. Dans le script pour le job, on a :&lt;br /&gt;
&lt;br /&gt;
cpus-per-task et OMP_NUM_THREADS correspondent au nombre de tâche OpenMP ntask-per-node correspond au nombre de tâche par noeud&lt;br /&gt;
&lt;br /&gt;
Pour déterminer la configuration à utiliser en OpenMP/MPI, il faut respecter ces règles: - ntask-per-node x nodes correspond au nombre total de MPI threads qu'il devrait y avoir (c'est-à-dire dans le cas MPI seul). - cpus-per-task x ntask-per-node doit être égale ou inférieur au nombre de procs par noeuds (24 ou 28- sur Occigen) - cpus-per-task devrait être ~égal au nombre de niveaux verticaux / 10 - OMP_NUM_THREADS doit être égal au cpus-per-task - omp_level_size (dans le fichier run_icosa.def) devrait être ~égal au nombre de cpus-per-task. (dans le cas MPI seul, il faut le laisser égal à 1)&lt;br /&gt;
&lt;br /&gt;
Au total, le nombre total de nprocs est égal à cpus-per-task x ntask-per-node x nodes&lt;br /&gt;
&lt;br /&gt;
En reprenant le premier exemple MPI (on suppose qu'on a 40 niveaux verticaux), on aura - cpus-per-task = 4 - ntask-per-norde = 6 On a bien cpus-per-task x ntask-per-norde &amp;amp;lt;= 24. Le nombre de noeuds doit être égal à 40 car 6x40 = 240 nprocs MPI Le nombre de procs qu'on utilisera au total sera de 960.&lt;br /&gt;
&lt;br /&gt;
=== - Comment déterminer le nombre d'heure CPU (consommation en heure)? ===&lt;br /&gt;
&lt;br /&gt;
Heures CPU = durée_de_la_simu X nombre de procs total facturé&lt;br /&gt;
&lt;br /&gt;
Si on veut connaître le nombre d'heure CPU qu'on consommera à partir d'un test, voici le calcul&lt;br /&gt;
&lt;br /&gt;
Heures CPU = durée_de_la_simu_test X nombre de procs total facturé X nombre de jour qu'on veut simulé / (nombre de jour simulées pendant la simu test)&lt;br /&gt;
&lt;br /&gt;
== D) Optimisation ==&lt;br /&gt;
&lt;br /&gt;
Pour savoir quelle est la meilleure configuration en MPI seul, en OpenMP/MPI et entre les 2, des tests ont été effectués. Ces tests ont été réalisés sur Uranus à nbp80 sur les noeuds Broadwell (28 procs par noeud). 1000 jours uraniens ont été simulés à chaque fois.&lt;br /&gt;
&lt;br /&gt;
'''MPI:''' [[File:fig1.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenMP/MPI:''' [[File:fig2.png]]&lt;br /&gt;
&lt;br /&gt;
La comparaison du MPI seul et du mixte OpenMP/MPI permet de tirer la conclusion que le mixte OpenMP/MPI est beaucoup plus rapide (facteur 2.5 à 3) mais consomme plus (facteur 1.1 à 1.7).&lt;br /&gt;
&lt;br /&gt;
[[File:fig3.png]]&lt;br /&gt;
&lt;br /&gt;
== E) Visualizing the output files ==&lt;br /&gt;
&lt;br /&gt;
=== - Comment comparer deux fichiers? file1.nc file2.nc ===&lt;br /&gt;
&lt;br /&gt;
ncdiff file1.nc file2.nc output.nc&lt;br /&gt;
&lt;br /&gt;
=== - Comment coller plusieurs fichiers file1.nc file2.nc file3.nc ===&lt;br /&gt;
&lt;br /&gt;
ncrcat file1.nc file2.nc file3.nc output.nc&lt;br /&gt;
&lt;br /&gt;
Avec juste la vitesse u et v: ncrcat -v u -v v file1.nc file2.nc file3.nc output.nc&lt;br /&gt;
&lt;br /&gt;
Avec tous les fichiers fileXXX.nc disponibles ncrcat file*.nc output.nc&lt;br /&gt;
&lt;br /&gt;
=== - Comment tracer les champs et divers diagnostics en moyenne zonale? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;mettre à jour planetoplot et planets&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;utiliser precast.py dans planetoplot/examples/ppclass_additional/dynanalysis&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer les options au début (il y a des exemples), exemple pour Saturne&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;fileAP=&amp;quot;Xhistins_42.nc&amp;quot;&lt;br /&gt;
p_upper,p_lower,nlev = 4.0e2,2.5e5,40&lt;br /&gt;
targetp1d = np.logspace(np.log10(p_lower),np.log10(p_upper),nlev)&lt;br /&gt;
myp = planets.Saturn&lt;br /&gt;
day_per_year = 24430.&lt;br /&gt;
short = False&lt;br /&gt;
includels = False&lt;br /&gt;
charx = &amp;quot;0,360&amp;quot;&lt;br /&gt;
ispressure = False&lt;br /&gt;
vartemp = &amp;quot;temperature&amp;quot;&lt;br /&gt;
outfile = &amp;quot;precast.nc&amp;quot;&lt;br /&gt;
nopole = True&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Il faut que apbp.txt soit présent !&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Le résultat se trouve dans le fichier indiqué dans outfile.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== F) Debug ==&lt;br /&gt;
&lt;br /&gt;
=== - Pour debugger ===&lt;br /&gt;
&lt;br /&gt;
Réglez &amp;lt;code&amp;gt;info_level&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; dans le fichier &amp;lt;code&amp;gt;iodef.xml&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
=== - Erreur en début de run, SEGMENTATION FAULT dans la routine &amp;lt;code&amp;gt;advect.f90&amp;lt;/code&amp;gt; (ICOSAGCM/ppsrc/transport) au niveau de l'appel à &amp;lt;code&amp;gt;cross_product2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
La routine &amp;lt;code&amp;gt;cross_product2&amp;lt;/code&amp;gt; effectue des produits vectoriels. Cette erreur vient du fait qu'en essayant de faire des optimisations de calcul, le compilateur se prend &amp;amp;quot;les pieds dans le tapis&amp;amp;quot; et ne sait plus faire le produit vectoriel. Pour empêcher le compilateur de faire des optimisations trop poussées, il faut ajouter l'option &amp;lt;code&amp;gt;-fp-model strict&amp;lt;/code&amp;gt; au niveau du mot-clé &amp;lt;code&amp;gt;%BASE_FFLAGS&amp;lt;/code&amp;gt; dans tous les fichiers &amp;lt;code&amp;gt;.fcm&amp;lt;/code&amp;gt; du modèle (LMDZ.COMMON / ICOSAGCM / ICOSA_LMDZ).&lt;br /&gt;
&lt;br /&gt;
== G) Pas de radiatif et perturbations ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;faire descendre le modèle&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;modifier le code pour perturbations vitesse et pas température&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;compiler (voir README.md)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer dans callphys.def (dans saturn/makestart)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;surfalbedo = 1.0&lt;br /&gt;
surfemis = 0.0&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer dans callphys.def (dans saturn '''et''' saturn/makestart)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;corrk      = .false.&lt;br /&gt;
enertest  = .true.&lt;br /&gt;
randompert = 1&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;voir si on garde le flux interne ou non (&amp;lt;code&amp;gt;intheat&amp;lt;/code&amp;gt;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;refaire les états initiaux (dans makestart)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;faire un run court pour voir sur les spectres l'injection d'Ek&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== H) PROFILING with DYNAMICO-Giant ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-pg&amp;lt;/code&amp;gt;: Generate extra code to write profile information suitable for analysis program &amp;lt;code&amp;gt;gprof&amp;lt;/code&amp;gt;. You must use this option when compiling the sources files you want data about and you must '''also use it when linking'''. 1. For DYNAMICO-Giant: in the arch.fcm file of each part of the model (ICOSAGCM, ICOSA_LMDZ, LMDZ.COMMON and XIOS), you have to add the option &amp;lt;code&amp;gt;-pg&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;%PROD_FFLAGS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;%BASE_LD&amp;lt;/code&amp;gt; 2. Compile as usual 3. Execute your code as usual 4. Run &amp;lt;code&amp;gt;gprof&amp;lt;/code&amp;gt; tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;    gprof icosa_lmdz.exe goon.out &amp;amp;gt; analysis.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OLD WIKI (DEPRECATED, JUST FOR REFERENCE/INFORMATION) =&lt;br /&gt;
&lt;br /&gt;
``Welcome to the dynamico-giant wiki!&lt;br /&gt;
&lt;br /&gt;
== pour debugger ==&lt;br /&gt;
&lt;br /&gt;
régler &amp;lt;code&amp;gt;info_level&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; dans le fichier &amp;lt;code&amp;gt;iodef.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== pourquoi diurnal=.false. ==&lt;br /&gt;
&lt;br /&gt;
le temps radiatif est beaucoup plus long sur les géantes&lt;br /&gt;
&lt;br /&gt;
== comment changer la fréquence d'appel à la physique? ==&lt;br /&gt;
&lt;br /&gt;
il faut changer à ''deux endroits'' en réglant la même valeur - dans run_icosa.def, changer itau_physics - dans run.def, changer iphysiq ces paramètres sont exprimés en pas de temps dynamique. pour appeler la physique à chaque pas de temps dynamique, régler ces paramètres à 1&lt;br /&gt;
&lt;br /&gt;
== comment changer la résolution ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/aymeric-spiga/dynamico-giant/commit/f39e3b651c19cefb26da72ab77933520ff8f27f5 voir lien ici]&lt;br /&gt;
&lt;br /&gt;
== comment choisir le nombre de processeurs pour la résolution ==&lt;br /&gt;
&lt;br /&gt;
voir commentaires sur run_icosa.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;###########################################&lt;br /&gt;
## There must be less MPIxOpenMP processes than the 10 x nsplit_i x nsplit_j tiles&lt;br /&gt;
## typically for pure MPI runs, let nproc = 10 x nsplit_i x nsplit_j&lt;br /&gt;
## it is better to have nbp/split &amp;amp;gt;~ 10&lt;br /&gt;
###########################################&lt;br /&gt;
#### 40 noeuds de 24 processeurs = 960 procs&lt;br /&gt;
nsplit_i=12&lt;br /&gt;
nsplit_j=8&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ehouarn: ''Une règle à suivre est de ne pas faire des tuiles &amp;amp;quot;trop petites&amp;amp;quot; et donc de garder nbsplit_i et nbsplit_j tels que nbp/nbsplit &amp;amp;gt;=10-15 (plutôt 15). Car il y a des calculs &amp;amp;quot;redondants&amp;amp;quot; faits sur les bords du domaine. Or si ton domaine est 10''10, le bord du domaine c'est 38% du domaine (38 points sur le bord pour 100 points en tout) alors que si ton domaine est 15''15, le bord du domaine n'est plus que 56/(15''15) = 25.7%. 56=2''15+2''13 (pour ne pas compter 2 fois les coins). On voudrait du coup des domaine les plus grand possible, clairement, mais il faut aussi voir que chaque domaine c'est nbp''nbp colonnes à résoudre sur ce même proc... Et c'est là ou il faut expérimenter un peu pour trouver l'optimum entre le nombre total de proc à employer et le gain effectif (temps total &amp;amp;quot;facturé&amp;amp;quot; au vu du nombre de procs monopolisés pour une simu donnée).''&lt;br /&gt;
&lt;br /&gt;
_Pour les noeuds, il faut tenir compte qu'un noeud sur Occigen, c'est 24 (ou 28) procs. Disons 24. Quand on demande N procs, le système te donne M noeuds, soit M*24 procs (les noeuds ne sont pas partagés avec d'autres applications). Et bien sûr on te facturera ces M noeuds, même si tu n'utilises pas tous les procs. Donc il faut s'efforcer de tomber juste et demander un multiple de 24 procs. Même raisonement si tu demandes à utiliser des noeuds de 28 procs._&lt;br /&gt;
&lt;br /&gt;
== comment changer la rotation? ==&lt;br /&gt;
&lt;br /&gt;
dans saturn_const.def, changer le taux de rotation jamais testé avec 0, mais pourrait créer des problèmes (ex: beta) ''vérifier que omega dans saturn_const.def n'intervient pas dans la physique LMDZ.GENERIC/libf/phygeneric/''&lt;br /&gt;
&lt;br /&gt;
== la dissipation c'est où? ==&lt;br /&gt;
&lt;br /&gt;
laplacien itéré: hyperviscosity - tau_graddiv,tau_gradrot,tau_divgrad: periode (plus c'est petit, plus la dissipation est efficace) - nitergdiv,nitergrot,niterdivgrad: ordre du laplacien (plus c'est grand, plus on dissipe sélectivement les petites échelles)&lt;br /&gt;
&lt;br /&gt;
== comment changer la grille cible du remapping on-the-fly ==&lt;br /&gt;
&lt;br /&gt;
dans context_lmdz_physics.xml changer les paramètres ni_glo et nj_glo par exemple pour remapper sur du lat/lon à 360 pts en latitude et 720 pts en longitude (0.5°) &amp;lt;domain id=&amp;quot;dom_regular&amp;quot; ni_glo=&amp;quot;720&amp;quot; nj_glo=&amp;quot;360&amp;quot; type=&amp;quot;rectilinear&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Forcer XIOS à écrire tous les .... ==&lt;br /&gt;
&lt;br /&gt;
Il faut utiliser l'attribut (ici par ex pour forcer l'écriture tous les ts (==time step) ; d'autres délais doivent être possible): &amp;lt;code&amp;gt;sync_freq=&amp;amp;quot;1ts&amp;amp;quot;&amp;lt;/code&amp;gt; dans le &amp;lt;code&amp;gt;&amp;amp;lt;file id=... .... &amp;amp;gt;&amp;lt;/code&amp;gt; concerné.&lt;br /&gt;
&lt;br /&gt;
== comment changer le bottom du modele ==&lt;br /&gt;
&lt;br /&gt;
* refaire tourner le 1D&lt;br /&gt;
** changer la pression &amp;lt;code&amp;gt;psurf&amp;lt;/code&amp;gt; dans rcm1d.def&lt;br /&gt;
** changer &amp;lt;code&amp;gt;ichoice=1&amp;lt;/code&amp;gt; et changer &amp;lt;code&amp;gt;tref&amp;lt;/code&amp;gt; (ex: 10b: 330K)&lt;br /&gt;
* refaire tourner le 3D (avec makestart) en changeant &amp;lt;code&amp;gt;preff&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;saturn_const.def&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== comment changer la fréquence de sortie des Xhistins.nc ==&lt;br /&gt;
&lt;br /&gt;
les commandes XIOS sont appelées depuis la physique (dans la config présente) dans context_lmdz_physics.xml il suffit de changer output_freq ''attention'' ts se comprend comme le pas de temps physique (voir donc dans run_icosa.def les paramètres dt et itau_physics pour le connaître) par exemple, pour des sorties tous les 20 jours Saturne&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;file id=&amp;quot;histins&amp;quot;&lt;br /&gt;
      name=&amp;quot;Xhistins&amp;quot;&lt;br /&gt;
      output_freq=&amp;quot;40ts&amp;quot;&lt;br /&gt;
      type=&amp;quot;one_file&amp;quot;&lt;br /&gt;
      enabled=&amp;quot;.true.&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
== pas de radiatif et perturbations ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;faire descendre le modèle&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;modifier le code pour perturbations vitesse et pas température&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;compiler (voir README.md)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer dans callphys.def (dans saturn/makestart)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;surfalbedo = 1.0&lt;br /&gt;
surfemis = 0.0&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer dans callphys.def (dans saturn '''et''' saturn/makestart)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;corrk      = .false.&lt;br /&gt;
enertest  = .true.&lt;br /&gt;
randompert = 1&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;voir si on garde le flux interne ou non (&amp;lt;code&amp;gt;intheat&amp;lt;/code&amp;gt;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;refaire les états initiaux (dans makestart)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;faire un run court pour voir sur les spectres l'injection d'Ek&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== comment comparer deux fichiers? file1.nc file2.nc ==&lt;br /&gt;
&lt;br /&gt;
ncdiff file1.nc file2.nc output.nc&lt;br /&gt;
&lt;br /&gt;
== comment coller plusieurs fichiers file1.nc file2.nc file3.nc ==&lt;br /&gt;
&lt;br /&gt;
ncrcat file1.nc file2.nc file3.nc output.nc avec juste la vitesse u et v ncrcat -v u -v v file1.nc file2.nc file3.nc output.nc avec tous les fichiers fileXXX.nc disponibles ncrcat file*.nc output.nc&lt;br /&gt;
&lt;br /&gt;
== comment tracer les champs et divers diagnostics en moyenne zonale? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;mettre à jour planetoplot et planets&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;utiliser precast.py dans planetoplot/examples/ppclass_additional/dynanalysis&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;changer les options au début (il y a des exemples), exemple pour Saturne&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;fileAP=&amp;quot;Xhistins_42.nc&amp;quot;&lt;br /&gt;
p_upper,p_lower,nlev = 4.0e2,2.5e5,40&lt;br /&gt;
targetp1d = np.logspace(np.log10(p_lower),np.log10(p_upper),nlev)&lt;br /&gt;
myp = planets.Saturn&lt;br /&gt;
day_per_year = 24430.&lt;br /&gt;
short = False&lt;br /&gt;
includels = False&lt;br /&gt;
charx = &amp;quot;0,360&amp;quot;&lt;br /&gt;
ispressure = False&lt;br /&gt;
vartemp = &amp;quot;temperature&amp;quot;&lt;br /&gt;
outfile = &amp;quot;precast.nc&amp;quot;&lt;br /&gt;
nopole = True&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Il faut que apbp.txt soit présent !&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;le résultat se trouve dans le fichier indiqué dans outfile&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== bilan de moment cinétique ==&lt;br /&gt;
&lt;br /&gt;
dans run_icosa.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;check_conservation = detailed &lt;br /&gt;
itau_check_conserv = 160&amp;lt;/pre&amp;gt;&lt;br /&gt;
le itau_check_conserv est comme itau_physics pour que la contribution de la physique à AAM ne soit pas nulle. de plus il est coûteux d'appeler les diagnostics trop souvent.&lt;br /&gt;
&lt;br /&gt;
S. Lebonnois, C. Covey, A. Grossman, H. Parish, G. Schubert, R. Walterscheid, P. Lauritzen, and C. Jablonowski. Angular momentum budget in General Circulation Models of superrotating atmospheres: A critical diagnostic. Journal of Geophysical Research (Planets), 117:E12004, 2012.&lt;br /&gt;
&lt;br /&gt;
P. H. Lauritzen, J. T. Bacmeister, T. Dubos, S. Lebonnois, and M. A. Taylor. Held-Suarez simulations with the Community Atmosphere Model Spectral Element (CAM-SE) dynamical core: A global axial angular momentum analysis using Eulerian and floating Lagrangian vertical coordinates. Journal of Advances in Modeling Earth Systems, 6:129-140, 2014.&lt;br /&gt;
&lt;br /&gt;
== XIOS server ou client ==&lt;br /&gt;
&lt;br /&gt;
# XIOS client &amp;lt;code&amp;gt;use_server=False&amp;lt;/code&amp;gt; Broadwell 24 processeurs sur 28&lt;br /&gt;
# XIOS server &amp;lt;code&amp;gt;use_server=true&amp;lt;/code&amp;gt; Broadwell 24 processurs sur 28 + 4 processeurs pour XIOS&lt;br /&gt;
&lt;br /&gt;
cas 1 est 3 min plus lent que cas 2 -- sur 2h20...! parce qu'on fait peu de sorties&lt;br /&gt;
&lt;br /&gt;
== Optimisation ==&lt;br /&gt;
&lt;br /&gt;
# 40 noeuds au lieu de 50 noeuds, même temps de calcul...! Testé dans la branche https://github.com/aymeric-spiga/dynamico-giant/tree/work_61levels&lt;br /&gt;
# &amp;lt;code&amp;gt;sync_freq=40ts&amp;lt;/code&amp;gt; (ou multiple de, si 40ts est la fréquence d'écriture) dans context_lmdz_physics.xml doit être inclus sinon il n'est pas réglé et XIOS transfère tout à la fin du run ce qui prend du temps (et peut occasionner des problèmes de mémoire)&lt;br /&gt;
&lt;br /&gt;
== Versions fonctionnelles de dynamico-giant ==&lt;br /&gt;
&lt;br /&gt;
=== Jupiter ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 756&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 339&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2228 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
but check Physics version 2142 and 2180&lt;br /&gt;
&lt;br /&gt;
=== Saturne (référence Spiga 2020, à vérifier) ===&lt;br /&gt;
&lt;br /&gt;
* DYNAMICO --&amp;amp;gt; Revision: 756&lt;br /&gt;
* PHYSICS --&amp;amp;gt; Revision: 2005&lt;br /&gt;
* XIOS --&amp;amp;gt; Revision: 1583&lt;br /&gt;
* IOIPSL --&amp;amp;gt; Revision: 310?&lt;br /&gt;
&lt;br /&gt;
=== Saturne (simulation de référence sur 61 niveaux, Bardet et al. Icarus 2021) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 310&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2005 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Saturne (simulation avec la GWD paramétrisation sur 61 niveaux, chapitre 6 PhD Bardet) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 310&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2213 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Saturne (simulation sur 96 niveaux, Bardet et al. Nature Astronomy 2022) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 431&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2305 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Saturne (simulation avec la GWD paramétrisation sur 96 niveaux, chapitre 6 PhD Bardet) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1583&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ICOSAGCM revision 765&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IOIPSL revision 431&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2403 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Uranus &amp;amp;amp; Neptune (old version) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 1944&lt;br /&gt;
* ICOSAGCM revision 765&lt;br /&gt;
* IOIPSL revision 431&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2413 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
=== Uranus &amp;amp;amp; Neptune (new version) ===&lt;br /&gt;
&lt;br /&gt;
* XIOS revision 2203&lt;br /&gt;
* ICOSAGCM revision (20/08/2021)&lt;br /&gt;
* IOIPSL revision 450&lt;br /&gt;
* FCM_V1.2 revision 12&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Physics revision 2555 (LMDZ.COMMON, LMDZ.GENERIC, ICOSA_LMDZ, ARCH)&lt;br /&gt;
&lt;br /&gt;
works on 03/03/2022 for all HEAD&lt;br /&gt;
&lt;br /&gt;
== Les fichiers d'architecture (Installation sur un nouveau cluster) ==&lt;br /&gt;
&lt;br /&gt;
En pratique LMDZ.COMMON, ICOSA_LMDZ et IOIPSL peuvent utiliser exactement le même fichier arch.fcm ; mais celui pour ICOSAGCM est légèrement différent (les %FPP_DEF diffèrent, peut-être aussi le %FPP).&lt;br /&gt;
&lt;br /&gt;
make_icosa_lmdz doit être lancé avec -arch_path ../ARCH puisque les arch.env et arch.path communs se trouvent dans ../ARCH (l'option -arch_path ne concerne d'ailleurs que les fichiers arch.env et arch.path; le fichier arch.fcm recherché sera toujours celui dans le &amp;amp;quot;arch&amp;amp;quot; de chacun des modèles. Donc il faut bien mettre pour chacun des quatre modèles (LMDZ.COMMON, ICOSA_LMDZ,IOIPSL et ICOSAGCM) le arch.fcm dans le sous-dossier arch/ du modèle correspondant.&lt;br /&gt;
&lt;br /&gt;
XIOS est écrit en C++, et pas en Fortran. Le fichier arch.fcm correspondant est donc nécessairement différent de celui des quatre autres modèles. Pour créér ce arch.fcm, prendre exemple sur les fichiers .fcm déjà présent dans XIOS/arch/, avec une architecture similaire à celle du nouveau cluster. En particulier, il faut utiliser des versions de gcc/gfortran &amp;amp;gt; 6+. Il faut absolument avoir une bibliothèque HDF5 compilée en parallèle, ainsi que netcdf-C et netcdf-fortran (et peut être aussi netcdf-Cxx) compilé en parallèle. Sans ça, il sera peut-être possible de compiler le modèle, mais pas de lancer une simulation en utilisant XIOS.&lt;br /&gt;
&lt;br /&gt;
== Commencer une nouvelle simulation en utilisant le schéma des panaches thermiques ==&lt;br /&gt;
&lt;br /&gt;
# Comme pour toutes nouvelles simulations, il faut commencer par un run 1D de plusieurs décennies permettant d'obtenir un profil de température (&amp;lt;code&amp;gt;temp_profile.txt&amp;lt;/code&amp;gt;) et les coefficients ap et bp (&amp;lt;code&amp;gt;apbp.txt&amp;lt;/code&amp;gt;) en équilibre radiatif-convectif pour la planète que l'on étudie. Ce run 1D s'effectue dans les dossiers jupiter1d, saturn1d, neptune1d et/ou uranus1d, avec ces options pour le callphys.def :&lt;br /&gt;
&lt;br /&gt;
callrad = true calladj = true tous les autres mots clés à false (y compris &amp;lt;code&amp;gt;calltherm&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Faire un &amp;amp;quot;makestart&amp;amp;quot; run : permet d'obtenir les fichiers restart à partir du profil de température initial. Il s'agit du run dont l'état initial est le profil de température créé par run 1D (&amp;lt;code&amp;gt;temp_profile.txt&amp;lt;/code&amp;gt; est appliquer à chaque point de grille horizontale du modèle). L'état initial est ainsi une planète isotherme horizontalement mais qui varie verticalement. Pour ce run, aucun traceur ne va être utilisé dans le modèle. Néanmoins, il faut renseigner au modèle le nombre de traceurs que nous souhaitons utiliser avec le schéma des panaches thermiques afin qu'il puisse créer la dimension nq et le champ q dans les fichiers &amp;lt;code&amp;gt;restart_icosa.nc&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt;. dans '''callphys.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;          traceur = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;dans '''run_icosa.def''' : &amp;lt;code&amp;gt;nqtot = 2&amp;lt;/code&amp;gt; (par exemple, h2o_vap et h2o_ice) dans '''traceur.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;           2&lt;br /&gt;
           h2o_vap&lt;br /&gt;
           h2o_ice&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Ajout des quantités pour chaque traceur. Ici, nous ajoutons les profils pour chacun des traceurs dans les fichiers &amp;lt;code&amp;gt;restart_icosa.nc&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; &amp;amp;quot;à la main&amp;amp;quot; en utilisant le programme python &amp;lt;code&amp;gt;/processing_codes/tracer_settings.py&amp;lt;/code&amp;gt; pour obtenir des fichiers restart avec la bonne abondance d'eau dans le cas présent.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Commencer la simulation : Il ne reste plus qu'à lancer la simulation 3D avec les nouveaux fichiers restart et les réglages suivant : dans '''callphys.def''' :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;            traceur = true&lt;br /&gt;
            calltherm = true&lt;br /&gt;
            # thermal plume model options:&lt;br /&gt;
            divmpl = true&lt;br /&gt;
            r_aspect_thermals = 2.0&lt;br /&gt;
            tau_thermals      = 0.0&lt;br /&gt;
            betalpha          = 0.9&lt;br /&gt;
            afact             = 0.7&lt;br /&gt;
            fact_epsilon      = 2.e-4&lt;br /&gt;
            alpha_max         = 0.7&lt;br /&gt;
            fomass_max        = 0.5&lt;br /&gt;
            pres_limit        = 2.e5&lt;br /&gt;
            water             = true&lt;br /&gt;
            watercond         = true&lt;br /&gt;
            waterain          = true&lt;br /&gt;
            evap_prec         = true&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans '''run_icosa.def''' : &amp;lt;code&amp;gt;nqtot = 2&amp;lt;/code&amp;gt; dans '''traceur.def''' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;               2&lt;br /&gt;
               h2o_vap&lt;br /&gt;
               h2o_ice&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enfin, ajouter la déclaration et l'écriture des variables relatives à l'utilisation du schéma des thermiques (&amp;lt;code&amp;gt;h2o_vap&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h2o_ice&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;w_plm&amp;lt;/code&amp;gt;) dans les fichiers XML de la physique.&lt;br /&gt;
&lt;br /&gt;
== Erreur en début de run, SEGMENTATION FAULT dans la routine &amp;lt;code&amp;gt;advect.f90&amp;lt;/code&amp;gt; (ICOSAGCM/ppsrc/transport) au niveau de l'appel à &amp;lt;code&amp;gt;cross_product2&amp;lt;/code&amp;gt;. ==&lt;br /&gt;
&lt;br /&gt;
La routine &amp;lt;code&amp;gt;cross_product2&amp;lt;/code&amp;gt; effectue des produits vectoriels. Cette erreur vient du fait qu'en essayant de faire des optimisations de calcul, le compilateur se prend &amp;amp;quot;les pieds dans le tapis&amp;amp;quot; et ne sait plus faire le produit vectoriel. Pour empêcher le compilateur de faire des optimisations trop poussées, il faut ajouter l'option &amp;lt;code&amp;gt;-fp-model strict&amp;lt;/code&amp;gt; au niveau du mot-clé &amp;lt;code&amp;gt;%BASE_FFLAGS&amp;lt;/code&amp;gt; dans tous les fichiers &amp;lt;code&amp;gt;.fcm&amp;lt;/code&amp;gt; du modèle (LMDZ.COMMON / ICOSAGCM / ICOSA_LMDZ)&lt;br /&gt;
&lt;br /&gt;
== Branche master version du 04/04/2022 dans le dossier Jupiter ==&lt;br /&gt;
&lt;br /&gt;
La version actuelle des fichiers de réglage dans le dossier Jupiter sont réglés pour utiliser des traceurs. Si vous souhaiter utiliser le modèle sans traceur, il vous faut modifier les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
run_icosa.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        nqtot = 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
traceur.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        0&amp;lt;/pre&amp;gt;&lt;br /&gt;
context_dynamico.xml (ligne 125)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;         &amp;amp;lt;field id=&amp;amp;quot;q_start&amp;amp;quot; name=&amp;amp;quot;q&amp;amp;quot;  grid_ref=&amp;amp;quot;grid_q_start&amp;amp;quot; prec=&amp;amp;quot;8&amp;amp;quot;/&amp;amp;gt;   &amp;lt;/pre&amp;gt;&lt;br /&gt;
== PROFILING with DYNAMICO-Giant: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-pg&amp;lt;/code&amp;gt;: Generate extra code to write profile information suitable for analysis program &amp;lt;code&amp;gt;gprof&amp;lt;/code&amp;gt;. You must use this option when compiling the sources files you want data about and you must '''also use it when linking'''. 1. For DYNAMICO-Giant: in the arch.fcm file of each part of the model (ICOSAGCM, ICOSA_LMDZ, LMDZ.COMMON and XIOS), you have to add the option &amp;lt;code&amp;gt;-pg&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;%PROD_FFLAGS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;%BASE_LD&amp;lt;/code&amp;gt; 2. Compile as usual 3. Execute your code as usual 4. Run &amp;lt;code&amp;gt;gprof&amp;lt;/code&amp;gt; tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;    gprof icosa_lmdz.exe goon.out &amp;amp;gt; analysis.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:DYNAMICO]]&lt;br /&gt;
[[Category:Generic-DYNAMICO]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Other_GCM_Configurations_worth_knowing_about&amp;diff=3282</id>
		<title>Other GCM Configurations worth knowing about</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Other_GCM_Configurations_worth_knowing_about&amp;diff=3282"/>
				<updated>2026-06-12T13:30:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* rcm1d program */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 3D lon-lat LMDZ setup =&lt;br /&gt;
&lt;br /&gt;
== early Mars ==&lt;br /&gt;
&lt;br /&gt;
It is already described in the [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Quick_Install_and_Run ''Quick Install and Run''] section.&lt;br /&gt;
&lt;br /&gt;
== Earth with slab ocean ==&lt;br /&gt;
&lt;br /&gt;
TBD by Siddharth, once all changes have been committed (also need a validation of the model on Earth to be sure)&lt;br /&gt;
&lt;br /&gt;
== TRAPPIST-1e with photochemistry ==&lt;br /&gt;
&lt;br /&gt;
A temperate rocky planet in synchronous rotation around a low mass star.&lt;br /&gt;
&lt;br /&gt;
Here is an example to simulate the planet TRAPPIST-1e with an Earth atmosphere using the photochemical module of the GCM.&lt;br /&gt;
&lt;br /&gt;
To install the model and run it, follow [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Quick_Install_and_Run ''Quick Install and Run''] but with the following changes:&lt;br /&gt;
&lt;br /&gt;
=== GCM Input Datafiles and Datasets ===&lt;br /&gt;
Section [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run&amp;amp;action=edit&amp;amp;section=9 ''GCM Input Datafiles and Datasets''] download the TRAPPIST-1e files (instead of the early Mars files):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate https://web.lmd.jussieu.fr/~lmdz/planets/generic/reference_setups/bench_trappist1e_photochemistry_64x48x30_b38x36.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find the same type of file with the additional folder containing the chemical network file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
callphys.def  gases.def  startfi.nc  traceur.def&lt;br /&gt;
datadir/      run.def    start.nc    z2sig.def&lt;br /&gt;
chemnetwork/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling the GCM ===&lt;br /&gt;
==== Prior to a first compilation: setting up the target architecture files ====&lt;br /&gt;
The chemical solver require the libraries BLAS and LAPACK which need to be specified in the '''arch*.fcm''' file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&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 LAPACK BLAS SGEMV=DGEMV SGEMM=DGEMM&lt;br /&gt;
%BASE_FFLAGS         -c -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fno-align-commons&lt;br /&gt;
%PROD_FFLAGS         -O3&lt;br /&gt;
%DEV_FFLAGS          -O&lt;br /&gt;
%DEBUG_FFLAGS        -ffpe-trap=invalid,zero,overflow -fbounds-check -g3 -O0 -fstack-protector-all -finit-real=snan -fbacktrace&lt;br /&gt;
%MPI_FFLAGS&lt;br /&gt;
%OMP_FFLAGS         &lt;br /&gt;
%BASE_LD             -llapack -lblas&lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Specific to photochemistry: set hard coded reactions ====&lt;br /&gt;
In '''/LMDZ.GENERIC/libf/aeronogeneric/chimiedata_h.F90''' you can hard code reaction if needed, for instance because the reaction rate is very specific and out of the generic formula or your photochemical reaction does not use a regular cross section.&lt;br /&gt;
&lt;br /&gt;
The TRAPPIST-1e test case use 3 hard coded reactions.&lt;br /&gt;
&lt;br /&gt;
*Uncomment the following lines to fill reaction species indexes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!===========================================================&lt;br /&gt;
!      r001 : HNO3 + rain -&amp;gt; H2O&lt;br /&gt;
!===========================================================&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
indice_phot(nb_phot) = z3spec(1.0, indexchim('hno3'), 1.0, indexchim('h2o_vap'), 0.0, 1)&lt;br /&gt;
&lt;br /&gt;
!===========================================================&lt;br /&gt;
!      e001 : CO + OH -&amp;gt; CO2 + H &lt;br /&gt;
!===========================================================&lt;br /&gt;
nb_reaction_4 = nb_reaction_4 + 1&lt;br /&gt;
indice_4(nb_reaction_4) = z4spec(1.0, indexchim('co'), 1.0, indexchim('oh'), 1.0, indexchim('co2'), 1.0, indexchim('h'))&lt;br /&gt;
&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
!     photodissociation of NO : NO + hv -&amp;gt; N + O&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
indice_phot(nb_phot) = z3spec(1.0, indexchim('no'), 1.0, indexchim('n'), 1.0, indexchim('o'))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Uncomment the following lines to fill reaction rates:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!     carbon reactions&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
     &lt;br /&gt;
!---  e001: oh + co -&amp;gt; co2 + h&lt;br /&gt;
&lt;br /&gt;
      nb_reaction_4 = nb_reaction_4 + 1&lt;br /&gt;
&lt;br /&gt;
!     joshi et al., 2006&lt;br /&gt;
&lt;br /&gt;
      do ilev = 1,nlayer&lt;br /&gt;
         k1a0 = 1.34*2.5*dens(ilev)                                  &amp;amp;&lt;br /&gt;
               *1/(1/(3.62e-26*t(ilev)**(-2.739)*exp(-20./t(ilev)))  &amp;amp;&lt;br /&gt;
               + 1/(6.48e-33*t(ilev)**(0.14)*exp(-57./t(ilev))))     ! typo in paper corrected&lt;br /&gt;
         k1b0 = 1.17e-19*t(ilev)**(2.053)*exp(139./t(ilev))          &amp;amp;&lt;br /&gt;
              + 9.56e-12*t(ilev)**(-0.664)*exp(-167./t(ilev))&lt;br /&gt;
         k1ainf = 1.52e-17*t(ilev)**(1.858)*exp(28.8/t(ilev))        &amp;amp;&lt;br /&gt;
                + 4.78e-8*t(ilev)**(-1.851)*exp(-318./t(ilev))&lt;br /&gt;
         x = k1a0/(k1ainf - k1b0)&lt;br /&gt;
         y = k1b0/(k1ainf - k1b0)&lt;br /&gt;
         fc = 0.628*exp(-1223./t(ilev)) + (1. - 0.628)*exp(-39./t(ilev))  &amp;amp;&lt;br /&gt;
            + exp(-t(ilev)/255.)&lt;br /&gt;
         fx = fc**(1./(1. + (alog(x))**2))                           ! typo in paper corrected&lt;br /&gt;
         k1a = k1a0*((1. + y)/(1. + x))*fx&lt;br /&gt;
         k1b = k1b0*(1./(1.+x))*fx&lt;br /&gt;
            &lt;br /&gt;
         v_4(ilev,nb_reaction_4) = k1a + k1b&lt;br /&gt;
      end do&lt;br /&gt;
&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!     washout r001 : HNO3 + rain -&amp;gt; H2O&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
      &lt;br /&gt;
rain_h2o  = 100.e-6&lt;br /&gt;
!rain_rate = 1.e-6  ! 10 days&lt;br /&gt;
rain_rate = 1.e-8&lt;br /&gt;
      &lt;br /&gt;
do ilev = 1,nlayer&lt;br /&gt;
   if (c(ilev,indexchim('h2o_vap'))/dens(ilev) &amp;gt;= rain_h2o) then&lt;br /&gt;
      v_phot(ilev,nb_phot) = rain_rate&lt;br /&gt;
   else&lt;br /&gt;
      v_phot(ilev,nb_phot) = 0.&lt;br /&gt;
   end if&lt;br /&gt;
end do&lt;br /&gt;
&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
!     photodissociation of NO&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
      &lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
      &lt;br /&gt;
colo3(nlayer) = 0.&lt;br /&gt;
!     ozone columns for other levels (molecule.cm-2)&lt;br /&gt;
do ilev = nlayer-1,1,-1&lt;br /&gt;
   colo3(ilev) = colo3(ilev+1) + (c(ilev+1,indexchim('o3')) + c(ilev,indexchim('o3')))*0.5*avocado*1e-4*((press(ilev) - press(ilev+1))*100.)/(1.e-3*zmmean(ilev)*g*dens(ilev))&lt;br /&gt;
end do&lt;br /&gt;
call jno(nlayer, c(nlayer:1:-1,indexchim('no')), c(nlayer:1:-1,indexchim('o2')), colo3(nlayer:1:-1), dens(nlayer:1:-1), press(nlayer:1:-1), sza, v_phot(nlayer:1:-1,nb_phot))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Change the following lines to set the number of hard coded reactions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
integer, parameter :: nphot_hard_coding = 2&lt;br /&gt;
integer, parameter :: n4_hard_coding    = 1&lt;br /&gt;
integer, parameter :: n3_hard_coding    = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling a test case (TRAPPIST-1e) ===&lt;br /&gt;
Change the following compiling option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-d 64x48x30 -b 38x36&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: option -b is mandatory to change while option -d will still run with lower or higher resolution (if '''z2sig.def''' remains coherent with the number of altitude levels, meaning at least as many altitude levels defined as the number of levels wanted).&lt;br /&gt;
&lt;br /&gt;
== TRAPPIST-1c in Venus-like conditions ==&lt;br /&gt;
&lt;br /&gt;
A warm rocky planet in synchronous rotation around a low mass star. Here we provide an '''example''' to simulate the atmosphere of Trappist-1c, assuming it evolved to a modern Venus-like atmosphere.&lt;br /&gt;
&lt;br /&gt;
The planetary parameters are taken from  [https://arxiv.org/abs/2010.01074 Algol et al. 2021] and can be found in this table [[Media:Planetary_parameters_Trappist1c.png]]&lt;br /&gt;
&lt;br /&gt;
First, install the model and run it, following [[Quick Install and Run]]  but instead of  ''Early Mars files'', please download ''bench_trappist1c_64x48x50_b32x36'' using this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate https://web.lmd.jussieu.fr/~lmdz/planets/generic/reference_setups/bench_trappist1c_64x48x50_b32x36.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling a test case (TRAPPIST-1c) ===&lt;br /&gt;
Change the following compiling option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-d 64x48x50 -b 32x36&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find the same type of  ASCII *def files than in the case of ''Early Mars'',  but adapted to the planet's characteristics and orbital parameters of Trappist 1c.&lt;br /&gt;
In particular ''callphys.def'' contains the following changes:&lt;br /&gt;
&lt;br /&gt;
* The planet is assumed to be in 1:1 spin-orbit resonance, therefore&lt;br /&gt;
   diurnal = .false. &lt;br /&gt;
   tlocked = .true.&lt;br /&gt;
* The planet equilibrium temperature is about 342 K&lt;br /&gt;
   tplanet    = 341.9&lt;br /&gt;
* The host star is TRAPPIST1, with a stellar flux at 1 AU of 0.7527 [W m-2]&lt;br /&gt;
   stelspec_file = spectrum_TRAPPIST1_2022.dat&lt;br /&gt;
   tstellar = 2600.&lt;br /&gt;
   Fat1AU = 0.7527&lt;br /&gt;
* Fixed aerosol distribution, no radiative active tracers (no evaporation/condensation of H2O and CO2):&lt;br /&gt;
   aerofixed     = .true.&lt;br /&gt;
   aeroco2       = .false.&lt;br /&gt;
   aeroh2o       = .false.&lt;br /&gt;
* No water cycle model, no water cloud formation or water precipitation, no CO2 condensation:&lt;br /&gt;
   water         = .false.&lt;br /&gt;
   watercond     = .false.&lt;br /&gt;
   waterrain     = .false.&lt;br /&gt;
   hydrology     = .false.&lt;br /&gt;
   nonideal      = .true.&lt;br /&gt;
   co2cond       = .false.&lt;br /&gt;
* Following [https://www.sciencedirect.com/science/article/pii/S0032063313002596?via%3Dihub Haus et al. 2015] a prescribed radiatively active cloud model is included. &lt;br /&gt;
It can be activated/deactivated with the flag ''aerovenus''.&lt;br /&gt;
   aerovenus = .true.&lt;br /&gt;
* Mode 1, 2, 2p, 3 and the &amp;quot;unknown&amp;quot; UV absorber can be included/excluded by setting to true/false the following keywords. The characteristics of each mode (e.g. effect radius, effective variance) are based on Venus Express/ESA observations and can be found in this table [[Media:Table1 aerosolVenus trappist1c.png]]&lt;br /&gt;
   aerovenus1    = .true.&lt;br /&gt;
   aerovenus2    = .true.&lt;br /&gt;
   aerovenus2p   = .true.&lt;br /&gt;
   aerovenus3    = .true.&lt;br /&gt;
   aerovenusUV   = .true.&lt;br /&gt;
&lt;br /&gt;
The cloud model is prescribed from 1 to 0.037 ''bar'' pressure layers. For each mode, the top/bottom pressure can be modified by hard-coding model routine ''aerosol_opacity.F90''.&lt;br /&gt;
Here below an example for mode 1 particles, where the top pressure layer and bottom pressure layer are prescribed at 0.1 bar and 1 bar, respectively:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
!       1. Initialization&lt;br /&gt;
          aerosol(1:ngrid,1:nlayer,iaer)=0.0&lt;br /&gt;
          p_bot = 1.e5 ! bottom pressure [Pa]&lt;br /&gt;
          p_top = 1.e4&lt;br /&gt;
          h_bot = 1.0e3 ! bottom scale height [m]&lt;br /&gt;
          h_top = 5.0e3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''TO BE COMPLETED BY GABRIELLA'''&lt;br /&gt;
&lt;br /&gt;
== mini-Neptune GJ1214b ==&lt;br /&gt;
&lt;br /&gt;
A warm mini-Neptune&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED BY BENJAMIN'''&lt;br /&gt;
&lt;br /&gt;
= 3D DYNAMICO setup =&lt;br /&gt;
&lt;br /&gt;
Due to the rich dynamical activities in their atmospheres (banded zonal jets, eddies, vortices, storms, equatorial oscillations,...) resulting from multi-scale dynamic interactions, the Global Climate Modelling of the giant planet requires to resolve eddies arising from hydrodynamical instabilities to correctly establish the planetary-scaled jets regime. To this purpose, their Rossby radius deformation $$L_D$$, which is the length scale at which rotational effects become as important as buoyancy or gravity wave effects in the evolution of the flow about some disturbance, is calculated to determine the most suitable horizontal grid resolution. At mid-latitude range, for the giant planets, $$L_D$$ is of the same order of magnitude as that of the Earth. As the giant planets have a size of roughly 10 times the Earth size (i.e., Jupiter and Saturn), the modelling grid must be of a horizontal resolution of 0.5$$^{\circ}$$ over longitude and latitude (vs 5$$^{\circ}$$ for the Earth), considering 3 grid points to resolved $$L_D$$. &lt;br /&gt;
Moreover, to have a chance to model the equatorial oscillation, meridional cell circulations and/or a seasonal inter-hemispheric circulation, a giant planet GCM must also include a high vertical resolution. Indeed, these climate phenomena have been studied for decades for the Earth's atmosphere, and result from small- and large-scale interactions between the troposphere and stratosphere. This implies that the propagation of dynamic instabilities, waves and turbulence should be resolved as far as possible along the vertical. Contrary to horizontal resolution, it doesn't really exist a criterion (similar to $$L_D$$) to determine the most suitable vertical grid resolution and still an adjustable parameter according to the processes to be represented. However, we advise the user to set a vertical resolution of at least 5 grid points per scale height as first stage.    &lt;br /&gt;
Finally, these atmospheres are cold, with long radiative response time which needs radiative transfer computations over decade-long years of Jupiter (given that a Jupiter year $$\approx$$ 12 Earth years), Saturn ( a Saturn year $$\approx$$ 30 Earth years), Uranus (a Uranus year $$\approx$$ 84 earth years) or Neptune (a Neptune year $$\approx$$ 169 Earth years), depending on the chosen planet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be able to deal with these three -- and non-exhaustive -- requirements to build a giant planet GCM, we need massive computational ressources. For this, we use a dynamical core suitable and numerically stable for massive parallel ressource computations: [[The_DYNAMICO_dynamical_core | DYNAMICO]] [Dubos et al,. 2015].  &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In these two following subsections, we purpose an example of installation for Jupiter and a Hot Jupiter. All the install, compiling, setting and parameters files for each giant planets could be found on: https://gitlab.in2p3.fr/aymeric.spiga/dynamico-giant (the old repo is archived as read-only https://github.com/aymeric-spiga/dynamico-giant)&lt;br /&gt;
&lt;br /&gt;
The [[Dynamico-giant | DYNAMICO-giant wiki is here]]&lt;br /&gt;
&lt;br /&gt;
If you have already downloaded '''LMDZ.COMMON''', '''LMDZ.GENERIC''', '''IOIPSL''', '''ARCH''', you only have to download:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ICOSAGCM''': the DYNAMICO dynamical core&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://gitlab.in2p3.fr/ipsl/projets/dynamico/dynamico.git ICOSAGCM&lt;br /&gt;
cd ICOSAGCM&lt;br /&gt;
git checkout 110016896ae9e85e614af43223b18fe38f211020   # Version du 6 nov. 2024&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''ICOSA_LMDZ''': the interface using to link LMDZ.GENERIC physical packages and ICOSAGCM&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update -r 3729 -q ICOSA_LMDZ   # Version du 18 avr. 2025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''XIOS (XML Input Output Server)''': the library to interpolate input/output fields between the icosahedral and longitude/latitude regular grids on fly&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co -r 2626 -q http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS   # Version du 22 mar. 2024&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you haven't already download '''LMDZ.COMMON''', '''LMDZ.GENERIC''', '''IOIPSL''', '''ARCH''', you can use the '''install.sh''' script provided by the GitLab repository. &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Once each part of the GCM is downloaded, you are able to compile it. &lt;br /&gt;
Firstly, you have to define your [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files | target architecture file ]] (hereafter named YOUR_ARCH_FILE) where you will fill in all the necessary information about the local environment, where libraries are located, which compiler, and compiler options will be used, etc.&lt;br /&gt;
Some architecture files related to specific machines are provided in the '''ARCH''' directory, which are referenced in the following lines without the prefix 'arch-' (i.e., arch-X64_IRENE-AMD.env will be referenced as X64_IRENE-AMD).  &lt;br /&gt;
&lt;br /&gt;
The main specificity of DYNAMICO-giant is that every main parts of the model ('''ICOSAGCM''', '''LMDZ.COMMON''' and '''LMDZ.GENERIC''') are compiled as libraries, and settings and running configuration are managed by the '''ICOSA_LMDZ''' interface.&lt;br /&gt;
&lt;br /&gt;
First, you have to compile '''IOIPSL''',&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd LMDZ.COMMON/ioipsl/                                                                                                             &lt;br /&gt;
    ./install_ioipsl_YOUR-MACHINE.bash&lt;br /&gt;
cd ../../&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
then '''XIOS''' library, &lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd XIOS/                                                                                                               &lt;br /&gt;
    ./make_xios --prod --arch YOUR_ARCH_FILE --arch_path ../ARCH --job 8 --full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
the physics packaging,&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd LMDZ.COMMON/                                                                                                        &lt;br /&gt;
    ./makelmdz_fcm -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -prod -parallel mpi -libphy -io xios -arch YOUR_ARCH_FILE -arch_path ../ARCH -j 8 -full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
the dynamical core '''DYNAMICO''' (located in '''ICOSAGCM''' directory, named from the icosahedral shape of the horizontal mesh),&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ICOSAGCM/&lt;br /&gt;
    ./make_icosa -prod -parallel mpi -external_ioipsl -with_xios -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
and finally the '''ICOSA_LMDZ''' interface&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ICOSA_LMDZ/&lt;br /&gt;
    ./make_icosa_lmdz -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -parallel mpi -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -nodeps&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This last step is a bit redundant with the two previous one, hence ''make_icosa_lmdz'' will execute ''./make_icosa'' (in the '''ICOSAGCM''' directory) and ''./makelmdz_fcm'' (in the '''LMDZ.COMMON''' directory) to create and source the architecture files shared between all parts of the model, as well as create the intermediate file ''config.fcm''. As you have already compiled these two elements, ''make_icosa_lmdz'' should only create the linked architecture files, ''config.fcm'' and compile the interface. Here, ''-nodeps'' option prevents the checking of XIOS and IOIPSL compilation, which saves you from recompiling these two elements again.&lt;br /&gt;
      &lt;br /&gt;
Finally, your executable programs should appeared in '''ICOSA_LMDZ/bin''' subdirectory, as '''icosa_lmdz.exe''' and in '''XIOS/bin''' subdirectory, as '''xios_server.exe''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All these compiling steps are summed up in ''make_isoca_lmdz'' program that should be adapted to your own computational settings (i.e., through you target architecture file).&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./make_icosa_lmdz -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -parallel mpi -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -full&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Here, ''-full'' option assure the compilation of each part ('''IOIPSL''', '''XIOS''', '''LMDZ.COMMON''', '''ICOSAGCM''' and '''ICOSA_LMDZ''') of the model.  &lt;br /&gt;
&lt;br /&gt;
Now you can move your two executable files to your working directory and start to run your own simulation of Jupiter or a Hot Jupiter, as what follows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: If you are using the GitLab file architecture (https://gitlab.in2p3.fr/aymeric.spiga/dynamico-giant), you should be able to compile the model directly from your working directory (for instance ''dynamico-giant/jupiter/'') by using the ''compile_occigen.sh'' program, which has to be adapted to your machine/cluster.&lt;br /&gt;
&lt;br /&gt;
''Note 2 : Depending on the compiler module you use, especially with gfortran, you may need to modify the tracers_icosa.F90 file located in the src directory in order to successfully compile ICOSAGCM. For example, if you are using GCC/11.3.0 and OpenMPI/4.1.4, you must update the insert_tracer_output subroutine as follows:''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
SUBROUTINE insert_tracer_output&lt;br /&gt;
      USE xios_mod&lt;br /&gt;
      USE grid_param&lt;br /&gt;
      IMPLICIT NONE&lt;br /&gt;
      TYPE(xios_fieldgroup) :: fieldgroup_hdl&lt;br /&gt;
      TYPE(xios_field) :: field_hdl&lt;br /&gt;
      INTEGER :: iq&lt;br /&gt;
      CHARACTER(len=1000) :: tracername1&lt;br /&gt;
      CHARACTER(len=1000) :: tracername2&lt;br /&gt;
      CHARACTER(len=1000) :: tracername3 &lt;br /&gt;
&lt;br /&gt;
      CALL xios_get_handle(&amp;quot;standard_output_tracers&amp;quot;, fieldgroup_hdl)&lt;br /&gt;
      DO iq = 1, nqtot&lt;br /&gt;
         tracername1 = &amp;quot;tracer_&amp;quot;//TRIM(tracers(iq)%name)&lt;br /&gt;
         CALL xios_add_child(fieldgroup_hdl, field_hdl, tracername1)&lt;br /&gt;
         CALL xios_set_attr(field_hdl, name=TRIM(tracers(iq)%name))&lt;br /&gt;
      END DO&lt;br /&gt;
&lt;br /&gt;
      CALL xios_get_handle(&amp;quot;standard_output_tracers_init&amp;quot;, fieldgroup_hdl)&lt;br /&gt;
      DO iq = 1, nqtot&lt;br /&gt;
         tracername2 = &amp;quot;tracer_&amp;quot;//TRIM(tracers(iq)%name)//&amp;quot;_init&amp;quot;&lt;br /&gt;
         tracername3 = TRIM(tracers(iq)%name)//&amp;quot;_init&amp;quot;&lt;br /&gt;
         CALL xios_add_child(fieldgroup_hdl, field_hdl, tracername2)&lt;br /&gt;
         CALL xios_set_attr(field_hdl, name=tracername3)&lt;br /&gt;
      END DO&lt;br /&gt;
&lt;br /&gt;
   END SUBROUTINE insert_tracer_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jupiter with DYNAMICO ==&lt;br /&gt;
Using a new dynamical core implies new setting files, in addition or as a replacement of those relevant to '''LMDZ.COMMON''' dynamical core using. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two kind of setting files:&lt;br /&gt;
&lt;br /&gt;
'''A first group relevant to DYNAMICO:'''&lt;br /&gt;
&lt;br /&gt;
- [[The ''context_dynamico.xml'' Input File|''context_dynamico.xml'']]: Configuration file for '''DYNAMICO''' for reading and writing  files using '''XIOS''', mainly used when you want to check the installation of '''ICOSAGCM''' with [[The_DYNAMICO_dynamical_core | an ''Held and Suarez'' test case]]. When your installation, compilation and run environment is fully functional, the dynamic core output files will not (necessarily) be useful and you can disable their writing. &lt;br /&gt;
&lt;br /&gt;
- [[The context_input_dynamico.xml Input File|''context_input_dynamico.xml'']]:&lt;br /&gt;
&lt;br /&gt;
- [[The file_def_dynamico.xml Input File|''file_def_dynamico.xml'']]: Definition of output diagnostic files which will be written into the output files only related to '''ICOSAGCM'''. &lt;br /&gt;
&lt;br /&gt;
- [[The field_def_dynamico.xml Input File|''field_def_dynamico.xml'']]: Definition of all existing variables that can be output from DYNAMICO.&lt;br /&gt;
&lt;br /&gt;
- [[The tracer.def Input File|''tracer.def'']]: Definition of the name and physico-chemical properties of the tracers which will be advected by the dynamical core. For now, there is two files related to tracers, we are working to harmonise it.  &lt;br /&gt;
&lt;br /&gt;
''' A second group relevant to LMDZ.GENERIC physical packages: '''&lt;br /&gt;
&lt;br /&gt;
- [[The context_lmdz_physics.xml Input File|''context_lmdz_physics.xml'']]: File in which are defined the horizontal grid, vertical coordinate, output file(s) definition, with the setting of frequency output writing, time unit, geophysical variables to be written, etc. Each new geophysical variables added here have to be defined in the ''field_def_physics.xml'' file.&lt;br /&gt;
&lt;br /&gt;
- [[The field_def_physics.xml Input File|''field_def_physics.xml'']]: Definition of all existing variables that can be output from the physical packages interfaced with '''DYNAMICO'''. This is where you will add each geophysical fields that you want to appear in the ''Xhistins.nc'' output files. For instance, related to the ''thermal plume scheme'' using for Jupiter's tropospheric dynamics, we have added the following variables: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
             &amp;lt;field id=&amp;quot;h2o_vap&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Vapor mass mixing ratio&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/kg&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;h2o_ice&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Vapor mass mixing ratio&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/kg&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;detr&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Detrainment&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/m2/s&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;entr&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Entrainment&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/m2/s&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;w_plm&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Plume vertical velocity&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;m/s&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The_callphys.def_Input_File|''callphys.def'']]: This setting file is used either with '''DYNAMICO''' or '''LMDZ.COMMON''' and allows the user to choose the physical parametrisation schemes and their appropriate main parameter values relevant to the planet being simulated. In our case of Jupiter, there are some specific parametrisations that should be added or modified from the example given as link at the beginning of this line: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
# Diurnal cycle ?  if diurnal=false, diurnally averaged solar heating&lt;br /&gt;
diurnal      = .false. #.true.&lt;br /&gt;
# Seasonal cycle ? if season=false, Ls stays constant, to value set in &amp;quot;start&amp;quot;&lt;br /&gt;
season       = .true. &lt;br /&gt;
# Tidally resonant orbit ? must have diurnal=false, correct rotation rate in newstart&lt;br /&gt;
tlocked      = .false.&lt;br /&gt;
# Tidal resonance ratio ? ratio T_orbit to T_rotation&lt;br /&gt;
nres         = 1&lt;br /&gt;
# Planet with rings?&lt;br /&gt;
rings_shadow = .false.&lt;br /&gt;
# Compute latitude-dependent gravity field??&lt;br /&gt;
oblate       = .true.&lt;br /&gt;
# Include non-zero flattening (a-b)/a?&lt;br /&gt;
flatten      = 0.06487&lt;br /&gt;
# Needed if oblate=.true.: J2&lt;br /&gt;
J2           = 0.01470&lt;br /&gt;
# Needed if oblate=.true.: Planet mean radius (m)&lt;br /&gt;
Rmean        = 69911000.&lt;br /&gt;
# Needed if oblate=.true.: Mass of the planet (*1e24 kg)&lt;br /&gt;
MassPlanet   = 1898.3&lt;br /&gt;
# use (read/write) a startfi.nc file? (default=.true.)&lt;br /&gt;
startphy_file = .false.&lt;br /&gt;
# constant value for surface albedo (if startphy_file = .false.)&lt;br /&gt;
surfalbedo   = 0.0&lt;br /&gt;
# constant value for surface emissivity (if startphy_file = .false.)&lt;br /&gt;
surfemis     = 1.0&lt;br /&gt;
&lt;br /&gt;
# the rad. transfer is computed every &amp;quot;iradia&amp;quot; physical timestep&lt;br /&gt;
iradia           = 160&lt;br /&gt;
# folder in which correlated-k data is stored ?&lt;br /&gt;
corrkdir         = Jupiter_HITRAN2012_REY_ISO_NoKarko_T460K_article2019_gauss8p8_095&lt;br /&gt;
# Uniform absorption coefficient in radiative transfer?&lt;br /&gt;
graybody         = .false.&lt;br /&gt;
# Characteristic planetary equilibrium (black body) temperature&lt;br /&gt;
# This is used only in the aerosol radiative transfer setup. (see aerave.F)&lt;br /&gt;
tplanet          = 100.&lt;br /&gt;
# Output global radiative balance in file 'rad_bal.out' - slow for 1D!!&lt;br /&gt;
meanOLR          = .false.&lt;br /&gt;
# Variable gas species: Radiatively active ?&lt;br /&gt;
varactive        = .false.&lt;br /&gt;
# Computes atmospheric specific heat capacity and&lt;br /&gt;
# could calculated by the dynamics, set in callphys.def or calculeted from gases.def.&lt;br /&gt;
# You have to choose: 0 for dynamics (3d), 1 for forced in callfis (1d) or 2: computed from gases.def (1d)&lt;br /&gt;
# Force_cpp and check_cpp_match are now deprecated.  &lt;br /&gt;
cpp_mugaz_mode = 0&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if cpp_mugaz_mode = 1]&lt;br /&gt;
cpp              = 11500.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if cpp_mugaz_mode = 1]&lt;br /&gt;
mugaz            = 2.30&lt;br /&gt;
### DEBUG&lt;br /&gt;
# To not call abort when temperature is outside boundaries:&lt;br /&gt;
strictboundcorrk = .false.&lt;br /&gt;
# To not stop run when temperature is greater than 400 K for H2-H2 CIA dataset:   &lt;br /&gt;
strictboundcia = .false.&lt;br /&gt;
# Add temperature sponge effect after radiative transfer?&lt;br /&gt;
callradsponge    = .false.&lt;br /&gt;
&lt;br /&gt;
Fat1AU = 1366.0&lt;br /&gt;
&lt;br /&gt;
## Other physics options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# call turbulent vertical diffusion ?&lt;br /&gt;
calldifv    = .false.&lt;br /&gt;
# use turbdiff instead of vdifc ?&lt;br /&gt;
UseTurbDiff = .true.&lt;br /&gt;
# call convective adjustment ?&lt;br /&gt;
calladj     = .true.&lt;br /&gt;
# call thermal plume model ?&lt;br /&gt;
calltherm   = .true.&lt;br /&gt;
# call thermal conduction in the soil ?&lt;br /&gt;
callsoil    = .false.&lt;br /&gt;
# Internal heat flux (matters only if callsoil=F)&lt;br /&gt;
intheat     = 7.48&lt;br /&gt;
# Remove lower boundary (e.g. for gas giant sims)&lt;br /&gt;
nosurf      = .true.&lt;br /&gt;
#########################################################################&lt;br /&gt;
## extra non-standard definitions for Earth&lt;br /&gt;
#########################################################################&lt;br /&gt;
&lt;br /&gt;
## Thermal plume model options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
dvimpl               = .true.&lt;br /&gt;
r_aspect_thermals    = 2.0&lt;br /&gt;
tau_thermals         = 0.0&lt;br /&gt;
betalpha             = 0.9&lt;br /&gt;
afact                = 0.7&lt;br /&gt;
fact_epsilon         = 2.e-4&lt;br /&gt;
alpha_max            = 0.7&lt;br /&gt;
fomass_max           = 0.5&lt;br /&gt;
pres_limit           = 2.e5&lt;br /&gt;
&lt;br /&gt;
## Tracer and aerosol options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Ammonia cloud (Saturn/Jupiter)?&lt;br /&gt;
aeronh3             = .true.&lt;br /&gt;
size_nh3_cloud      = 10.D-6&lt;br /&gt;
pres_nh3_cloud      = 1.1D5                        # old: 9.D4&lt;br /&gt;
tau_nh3_cloud       = 10.                          # old: 15.&lt;br /&gt;
# Radiatively active aerosol (Saturn/Jupiter)?&lt;br /&gt;
aeroback2lay         = .true.&lt;br /&gt;
optprop_back2lay_vis = optprop_jupiter_vis_n20.dat&lt;br /&gt;
optprop_back2lay_ir  = optprop_jupiter_ir_n20.dat&lt;br /&gt;
obs_tau_col_tropo    = 4.0&lt;br /&gt;
size_tropo           = 5.e-7&lt;br /&gt;
pres_bottom_tropo    = 8.0D4&lt;br /&gt;
pres_top_tropo       = 1.8D4&lt;br /&gt;
obs_tau_col_strato   = 0.1D0&lt;br /&gt;
# Auroral aerosols (Saturn/Jupiter)?&lt;br /&gt;
aeroaurora         = .false.&lt;br /&gt;
size_aurora        = 3.e-7&lt;br /&gt;
obs_tau_col_aurora = 2.0&lt;br /&gt;
&lt;br /&gt;
# Radiatively active CO2 aerosol?&lt;br /&gt;
aeroco2            = .false.&lt;br /&gt;
# Fixed CO2 aerosol distribution?&lt;br /&gt;
aerofixco2     = .false.&lt;br /&gt;
# Radiatively active water aerosol?&lt;br /&gt;
aeroh2o        = .false.&lt;br /&gt;
# Fixed water aerosol distribution?&lt;br /&gt;
aerofixh2o     = .false.&lt;br /&gt;
# basic dust opacity&lt;br /&gt;
dusttau        = 0.0&lt;br /&gt;
# Varying H2O cloud fraction?&lt;br /&gt;
CLFvarying     = .false.&lt;br /&gt;
# H2O cloud fraction if fixed?&lt;br /&gt;
CLFfixval      = 0.0&lt;br /&gt;
# fixed radii for cloud particles?&lt;br /&gt;
radfixed       = .false.&lt;br /&gt;
# number mixing ratio of CO2 ice particles&lt;br /&gt;
Nmix_co2       = 100000.&lt;br /&gt;
# number mixing ratio of water particles (for rafixed=.false.)&lt;br /&gt;
Nmix_h2o       = 1.e7&lt;br /&gt;
# number mixing ratio of water ice particles (for rafixed=.false.)&lt;br /&gt;
Nmix_h2o_ice   = 5.e5&lt;br /&gt;
# radius of H2O water particles (for rafixed=.true.):&lt;br /&gt;
rad_h2o        = 10.e-6&lt;br /&gt;
# radius of H2O ice particles (for rafixed=.true.):&lt;br /&gt;
rad_h2o_ice    = 35.e-6&lt;br /&gt;
# atm mass update due to tracer evaporation/condensation?&lt;br /&gt;
mass_redistrib = .false.&lt;br /&gt;
&lt;br /&gt;
## Water options &lt;br /&gt;
## ~~~~~~~~~~~~~&lt;br /&gt;
# Model water cycle&lt;br /&gt;
water         = .true.&lt;br /&gt;
# Model water cloud formation&lt;br /&gt;
watercond     = .true.&lt;br /&gt;
# Model water precipitation (including coagulation etc.)&lt;br /&gt;
waterrain     = .true.&lt;br /&gt;
# Use simple precipitation scheme?&lt;br /&gt;
precip_scheme = 1&lt;br /&gt;
# Evaporate precipitation?&lt;br /&gt;
evap_prec     = .true.&lt;br /&gt;
# multiplicative constant in Boucher 95 precip scheme&lt;br /&gt;
Cboucher      = 1.&lt;br /&gt;
# Include hydrology ?&lt;br /&gt;
hydrology     = .false.&lt;br /&gt;
# H2O snow (and ice) albedo ?&lt;br /&gt;
albedosnow    = 0.6&lt;br /&gt;
# Maximum sea ice thickness ?&lt;br /&gt;
maxicethick   = 10.&lt;br /&gt;
# Freezing point of seawater (degrees C) ?&lt;br /&gt;
Tsaldiff      = 0.0&lt;br /&gt;
# Evolve surface water sources ?&lt;br /&gt;
sourceevol    = .false.&lt;br /&gt;
&lt;br /&gt;
## CO2 options &lt;br /&gt;
## ~~~~~~~~~~~&lt;br /&gt;
# call CO2 condensation ?&lt;br /&gt;
co2cond       = .false.&lt;br /&gt;
# Set initial temperature profile to 1 K above CO2 condensation everywhere?&lt;br /&gt;
nearco2cond   = .false.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The_gases.def_Input_file|''gases.def'']]: File containing the gas composition of the atmosphere you want to model, with their molar mixing ratios. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
# gases&lt;br /&gt;
5&lt;br /&gt;
H2_&lt;br /&gt;
He_&lt;br /&gt;
CH4&lt;br /&gt;
C2H2&lt;br /&gt;
C2H6&lt;br /&gt;
0.863&lt;br /&gt;
0.134&lt;br /&gt;
0.0018&lt;br /&gt;
1.e-7&lt;br /&gt;
1.e-5&lt;br /&gt;
# First line is number of gases&lt;br /&gt;
# Followed by gas names (always 3 characters)&lt;br /&gt;
# and then molar mixing ratios.&lt;br /&gt;
# mixing ratio -1 means the gas is variable.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The jupiter_const.def Input File|''jupiter_const.def'']]: Files that gather all orbital and physical parameters of Jupiter.&lt;br /&gt;
&lt;br /&gt;
- [[The_traceur.def_Input_File|''traceur.def'']]: At this time, only two tracers are used for modelling Jupiter atmosphere, so the ''traceur.def'' file is summed up as follow&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
2&lt;br /&gt;
h2o_vap&lt;br /&gt;
h2o_ice&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Two additional files are used to set the running parameter of the simulation itself:'''&lt;br /&gt;
&lt;br /&gt;
- [[The run_icosa.def Input File | ''run_icosa.def'']]: file containing parameters for '''ICOSAGCM''' to execute the simulation, use to determine the [[Advanced Use of the GCM | horizontal and vertical resolutions]], the number of processors, the number of subdivisions, the duration of the simulation, etc.&lt;br /&gt;
&lt;br /&gt;
- ''run.def'': file which brings together all the setting files and will be reading by the interface '''ICOSA_LMDZ''' to link each part of the model ('''ICOSAGCM''', '''LMDZ.GENERIC''') with its particular setting file(s) when the library '''XIOS''' does not take action (through the ''.xml'' files).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
###########################################################################&lt;br /&gt;
### INCLUDE OTHER DEF FILES (physics, specific settings, etc...)&lt;br /&gt;
###########################################################################&lt;br /&gt;
INCLUDEDEF=run_icosa.def&lt;br /&gt;
&lt;br /&gt;
INCLUDEDEF=jupiter_const.def&lt;br /&gt;
&lt;br /&gt;
INCLUDEDEF=callphys.def&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
prt_level=0&lt;br /&gt;
&lt;br /&gt;
## iphysiq must be same as itau_physics&lt;br /&gt;
iphysiq=40&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hot Jupiter with DYNAMICO ==&lt;br /&gt;
&lt;br /&gt;
Modelling the atmosphere of Hot Jupiter is challenging because of the extreme temperature conditions, and the fact that these planets are gas giants. Therefore, using a dynamical core such as Dynamico is strongly recommended. Here, we discuss how to perform a cloudless simulation of the Hot Jupiter WASP-43 b, using Dynamico.&lt;br /&gt;
&lt;br /&gt;
'''1st step''': You need to go to the github mentionned previously for Dynamico: https://github.com/aymeric-spiga/dynamico-giant. ''Git clone'' this repo on your favorite cluster, and ''checkout'' to the &amp;quot;hot_jupiter&amp;quot; branch.&lt;br /&gt;
&lt;br /&gt;
'''2nd step''': Now, run the install.sh script. This script will install '''all''' the required models ('''LMDZ.COMMON''', '''LMDZ.GENERIC''','''ICOSA_LMDZ''','''XIOS''','''FCM''','''ICOSAGCM'''). At this point, you only miss '''IOIPSL'''. To install it, go to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
dynamico-giant/code/LMDZ.COMMON/ioipsl/ &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There, you will find some examples of installations script. You need to create one that will work on your cluster, with your own arch files.&lt;br /&gt;
During the installation of '''IOIPSL''', you might be asked for a login/password. Contact TGCC computing center to get access.&lt;br /&gt;
&lt;br /&gt;
'''3rd step''': Great, now we have all we need to get started. Navigate to the ''hot_jupiter'' folder. You will find a ''compile_mesopsl.sh'' and a ''compile_occigen.sh'' script. Use them as examples to create the compile script adapted to your own cluster, then run it. &lt;br /&gt;
While running, I suggest that you take a look at the ''log_compile'' file. The compilation can take a while (~ 10minutes, especially because of XIOS). On quick trick to make sure that everything went right is to check the number of ''Build command finished'' messages in ''log_compile''. If everything worked out, there should be 6 of them.&lt;br /&gt;
&lt;br /&gt;
'''4th step''': Okay, the model compiled, good job ! Now we need to create the initial condition for our run. In the hot_jupiter1d folder, you already have a ''temp_profile.txt'' computed with the 1D version of the LMDZ.GENERIC (see rcm1d on this page). Thus, no need to recompute a 1D model but it will be needed if you want to model another Hot Jupiter.&lt;br /&gt;
Navigate to the 'makestart' folder, located at &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
dynamico-giant/hot_jupiter/makestart/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To generate the initial conditions for the 3D run, we're gonna start the model using the temperature profile from the 1D run. to do that, you will find a &amp;quot;job_mpi&amp;quot; script. Open it, and adapt it to your cluster and launch the job. This job is using 20 procs, and it runs 5 days of simulations. &lt;br /&gt;
If everything goes well, you should see few netcdf files appear. The important ones are '''start_icosa0.nc''', '''startfi0.nc''' and '''Xhistins.nc'''. &lt;br /&gt;
If you see these files, you're all set to launch a real simulation !&lt;br /&gt;
&lt;br /&gt;
'''5th step''': Go back to ''hot_jupiter'' folder. There are a bunch of script to launch your simulation. Take a look at the ''astro_fat_mpi'' script, and adapt it to your cluster. Then you can launch your simulation by doing &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
./run_astro_fat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will start the simulation, using 90 procs. In the same folder, check if the icosa_lmdz.out file is created. This is the logfile of the simulation, while it is running. You can check there that everything is going well.&lt;br /&gt;
&lt;br /&gt;
'''Important side note''': When using the ''run_astro_fat'' script to run a simulation, it will run a chained simulation, restarting the simulation from the previous state after 100 days of simulations and generating ''Xhistins.nc'' files. This is your results file, where you will find all the variables that controls your atmosphere (temperature field, wind fields, etc..). &lt;br /&gt;
&lt;br /&gt;
Good luck and enjoy the generic PCM Dynamico for Hot Jupiter !&lt;br /&gt;
&lt;br /&gt;
'''2nd important side note''': These 5 steps are the basic needed steps to run a simulation. If you want to tune simulations to another planet, or change other stuff, you need to take a look at '''*.def''' and '''*.xml''' files. If you're lost in all of this, take a look at the different pages of this website and/or contact us !&lt;br /&gt;
Also, you might want to check the wiki on the [https://github.com/aymeric-spiga/dynamico-giant ''Github''], that explains a lot of settings for Dynamico&lt;br /&gt;
&lt;br /&gt;
= 3D LES setup =&lt;br /&gt;
&lt;br /&gt;
== Proxima b with LES ==&lt;br /&gt;
&lt;br /&gt;
To model the subgrid atmospheric turbulence, the [[WRF dynamical core for LES/mesoscale simulations|'''WRF''']] dynamical core coupled with the LMD Generic physics package is used. The first studied conducted was to resolve the convective activity of the substellar point of Proxami-b (Lefevre et al 2021). The impact of the stellar insolation and rotation period were studied. The files for the reference case, with a stellar flux of 880 W/m2 and an 11 days rotation period, are presented&lt;br /&gt;
&lt;br /&gt;
The input_* file are the used to initialize the temperature, pressure, winds and moisture of the domain. &lt;br /&gt;
input_souding : altitude (km), potential temperature, water vapour (kg/kg), u, v&lt;br /&gt;
input_therm : normalized gas constant, isobaric heat capacity, pressure, density, temperature&lt;br /&gt;
input_hr : SW heating, LW heating, Large-scale heating extracted from the GCM. Only the last one is used in this configuration.&lt;br /&gt;
&lt;br /&gt;
The file namelist.input is used to set up the domain parameters (resolution, grid points, etc). The file levels specifies the eta-levels of the vertical domain.&lt;br /&gt;
&lt;br /&gt;
Planet is used set up the atmospheric parameters, in order : gravity (m/s2), isobaric heat capacity (J/kg/K), molecular mass (g/mol), reference temperature (K), surface pressure (Pa), planet radius (m) and planet rotation rate (s-1).&lt;br /&gt;
&lt;br /&gt;
The files *.def are the parameter for the physics. Compared to GCM runs, the convective adjustment in callphys.def is turned off&lt;br /&gt;
&lt;br /&gt;
The file controle.txt, equivalent of the field controle in GCM start.nc, needed to initialize some physics constants.&lt;br /&gt;
&lt;br /&gt;
TBC ML&lt;br /&gt;
&lt;br /&gt;
= 1D setups =&lt;br /&gt;
&lt;br /&gt;
== rcm1d program ==&lt;br /&gt;
&lt;br /&gt;
Running the model in 1D (i.e. considering simply a column of atmosphere) is a common first step to test a new setup. To do so, you first have to compile the 1D version of the model. The command line is very similar to [[Quick_Install_and_Run#Compiling a test case (early Mars)|the one for the 3D]], except for 2 changes:&lt;br /&gt;
# put just the vertical resolution after the -d option (&amp;quot;VERT&amp;quot; instead of ''LON''x''LAT''x''VERT'' for the 3D case)&lt;br /&gt;
# at the end of the line, replace &amp;quot;gcm&amp;quot; with &amp;quot;rcm1d&amp;quot;&lt;br /&gt;
It will generate a file called '''rcm1d_XX_phyxxx_seq.e''', where ''XX'' and ''phyxxx'' are the vertical resolution and the physics package, respectively.&lt;br /&gt;
&lt;br /&gt;
Check out the [[Generic unicolumn rcm1d program| dedicated page about rcm1d]] for more details.&lt;br /&gt;
&lt;br /&gt;
Note that the '''.def''' files differ a bit from the 3D case. Indeed, the 1D run.def contains different information and needs to hold the key &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt;; see [[The_rcm1d.def_Input_File|'''run.def''']]. In addition, the 1D model generally does not use [[The_start.nc_and_startfi.nc_input_files|'''start.nc''']] or [[The_start.nc_and_startfi.nc_input_files|'''startfi.nc''']] files to initialize. You can find examples of 1D configuration in ''LMDZ.GENERIC/deftank'' (e.g. '''run.def.earlymars1d''', '''run.def.earth1d'''), the best thing is to have a look at them.&lt;br /&gt;
&lt;br /&gt;
== kcm1d program ==&lt;br /&gt;
&lt;br /&gt;
Our 1-D inverse model&lt;br /&gt;
&lt;br /&gt;
TBD by Guillaume or Martin&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-DYNAMICO]]&lt;br /&gt;
[[Category:Generic-WRF]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Other_GCM_Configurations_worth_knowing_about&amp;diff=3281</id>
		<title>Other GCM Configurations worth knowing about</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Other_GCM_Configurations_worth_knowing_about&amp;diff=3281"/>
				<updated>2026-06-12T13:29:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* rcm1d program */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 3D lon-lat LMDZ setup =&lt;br /&gt;
&lt;br /&gt;
== early Mars ==&lt;br /&gt;
&lt;br /&gt;
It is already described in the [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Quick_Install_and_Run ''Quick Install and Run''] section.&lt;br /&gt;
&lt;br /&gt;
== Earth with slab ocean ==&lt;br /&gt;
&lt;br /&gt;
TBD by Siddharth, once all changes have been committed (also need a validation of the model on Earth to be sure)&lt;br /&gt;
&lt;br /&gt;
== TRAPPIST-1e with photochemistry ==&lt;br /&gt;
&lt;br /&gt;
A temperate rocky planet in synchronous rotation around a low mass star.&lt;br /&gt;
&lt;br /&gt;
Here is an example to simulate the planet TRAPPIST-1e with an Earth atmosphere using the photochemical module of the GCM.&lt;br /&gt;
&lt;br /&gt;
To install the model and run it, follow [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Quick_Install_and_Run ''Quick Install and Run''] but with the following changes:&lt;br /&gt;
&lt;br /&gt;
=== GCM Input Datafiles and Datasets ===&lt;br /&gt;
Section [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run&amp;amp;action=edit&amp;amp;section=9 ''GCM Input Datafiles and Datasets''] download the TRAPPIST-1e files (instead of the early Mars files):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate https://web.lmd.jussieu.fr/~lmdz/planets/generic/reference_setups/bench_trappist1e_photochemistry_64x48x30_b38x36.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find the same type of file with the additional folder containing the chemical network file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
callphys.def  gases.def  startfi.nc  traceur.def&lt;br /&gt;
datadir/      run.def    start.nc    z2sig.def&lt;br /&gt;
chemnetwork/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling the GCM ===&lt;br /&gt;
==== Prior to a first compilation: setting up the target architecture files ====&lt;br /&gt;
The chemical solver require the libraries BLAS and LAPACK which need to be specified in the '''arch*.fcm''' file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&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 LAPACK BLAS SGEMV=DGEMV SGEMM=DGEMM&lt;br /&gt;
%BASE_FFLAGS         -c -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fno-align-commons&lt;br /&gt;
%PROD_FFLAGS         -O3&lt;br /&gt;
%DEV_FFLAGS          -O&lt;br /&gt;
%DEBUG_FFLAGS        -ffpe-trap=invalid,zero,overflow -fbounds-check -g3 -O0 -fstack-protector-all -finit-real=snan -fbacktrace&lt;br /&gt;
%MPI_FFLAGS&lt;br /&gt;
%OMP_FFLAGS         &lt;br /&gt;
%BASE_LD             -llapack -lblas&lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Specific to photochemistry: set hard coded reactions ====&lt;br /&gt;
In '''/LMDZ.GENERIC/libf/aeronogeneric/chimiedata_h.F90''' you can hard code reaction if needed, for instance because the reaction rate is very specific and out of the generic formula or your photochemical reaction does not use a regular cross section.&lt;br /&gt;
&lt;br /&gt;
The TRAPPIST-1e test case use 3 hard coded reactions.&lt;br /&gt;
&lt;br /&gt;
*Uncomment the following lines to fill reaction species indexes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!===========================================================&lt;br /&gt;
!      r001 : HNO3 + rain -&amp;gt; H2O&lt;br /&gt;
!===========================================================&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
indice_phot(nb_phot) = z3spec(1.0, indexchim('hno3'), 1.0, indexchim('h2o_vap'), 0.0, 1)&lt;br /&gt;
&lt;br /&gt;
!===========================================================&lt;br /&gt;
!      e001 : CO + OH -&amp;gt; CO2 + H &lt;br /&gt;
!===========================================================&lt;br /&gt;
nb_reaction_4 = nb_reaction_4 + 1&lt;br /&gt;
indice_4(nb_reaction_4) = z4spec(1.0, indexchim('co'), 1.0, indexchim('oh'), 1.0, indexchim('co2'), 1.0, indexchim('h'))&lt;br /&gt;
&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
!     photodissociation of NO : NO + hv -&amp;gt; N + O&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
indice_phot(nb_phot) = z3spec(1.0, indexchim('no'), 1.0, indexchim('n'), 1.0, indexchim('o'))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Uncomment the following lines to fill reaction rates:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!     carbon reactions&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
     &lt;br /&gt;
!---  e001: oh + co -&amp;gt; co2 + h&lt;br /&gt;
&lt;br /&gt;
      nb_reaction_4 = nb_reaction_4 + 1&lt;br /&gt;
&lt;br /&gt;
!     joshi et al., 2006&lt;br /&gt;
&lt;br /&gt;
      do ilev = 1,nlayer&lt;br /&gt;
         k1a0 = 1.34*2.5*dens(ilev)                                  &amp;amp;&lt;br /&gt;
               *1/(1/(3.62e-26*t(ilev)**(-2.739)*exp(-20./t(ilev)))  &amp;amp;&lt;br /&gt;
               + 1/(6.48e-33*t(ilev)**(0.14)*exp(-57./t(ilev))))     ! typo in paper corrected&lt;br /&gt;
         k1b0 = 1.17e-19*t(ilev)**(2.053)*exp(139./t(ilev))          &amp;amp;&lt;br /&gt;
              + 9.56e-12*t(ilev)**(-0.664)*exp(-167./t(ilev))&lt;br /&gt;
         k1ainf = 1.52e-17*t(ilev)**(1.858)*exp(28.8/t(ilev))        &amp;amp;&lt;br /&gt;
                + 4.78e-8*t(ilev)**(-1.851)*exp(-318./t(ilev))&lt;br /&gt;
         x = k1a0/(k1ainf - k1b0)&lt;br /&gt;
         y = k1b0/(k1ainf - k1b0)&lt;br /&gt;
         fc = 0.628*exp(-1223./t(ilev)) + (1. - 0.628)*exp(-39./t(ilev))  &amp;amp;&lt;br /&gt;
            + exp(-t(ilev)/255.)&lt;br /&gt;
         fx = fc**(1./(1. + (alog(x))**2))                           ! typo in paper corrected&lt;br /&gt;
         k1a = k1a0*((1. + y)/(1. + x))*fx&lt;br /&gt;
         k1b = k1b0*(1./(1.+x))*fx&lt;br /&gt;
            &lt;br /&gt;
         v_4(ilev,nb_reaction_4) = k1a + k1b&lt;br /&gt;
      end do&lt;br /&gt;
&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!     washout r001 : HNO3 + rain -&amp;gt; H2O&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
      &lt;br /&gt;
rain_h2o  = 100.e-6&lt;br /&gt;
!rain_rate = 1.e-6  ! 10 days&lt;br /&gt;
rain_rate = 1.e-8&lt;br /&gt;
      &lt;br /&gt;
do ilev = 1,nlayer&lt;br /&gt;
   if (c(ilev,indexchim('h2o_vap'))/dens(ilev) &amp;gt;= rain_h2o) then&lt;br /&gt;
      v_phot(ilev,nb_phot) = rain_rate&lt;br /&gt;
   else&lt;br /&gt;
      v_phot(ilev,nb_phot) = 0.&lt;br /&gt;
   end if&lt;br /&gt;
end do&lt;br /&gt;
&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
!     photodissociation of NO&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
      &lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
      &lt;br /&gt;
colo3(nlayer) = 0.&lt;br /&gt;
!     ozone columns for other levels (molecule.cm-2)&lt;br /&gt;
do ilev = nlayer-1,1,-1&lt;br /&gt;
   colo3(ilev) = colo3(ilev+1) + (c(ilev+1,indexchim('o3')) + c(ilev,indexchim('o3')))*0.5*avocado*1e-4*((press(ilev) - press(ilev+1))*100.)/(1.e-3*zmmean(ilev)*g*dens(ilev))&lt;br /&gt;
end do&lt;br /&gt;
call jno(nlayer, c(nlayer:1:-1,indexchim('no')), c(nlayer:1:-1,indexchim('o2')), colo3(nlayer:1:-1), dens(nlayer:1:-1), press(nlayer:1:-1), sza, v_phot(nlayer:1:-1,nb_phot))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Change the following lines to set the number of hard coded reactions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
integer, parameter :: nphot_hard_coding = 2&lt;br /&gt;
integer, parameter :: n4_hard_coding    = 1&lt;br /&gt;
integer, parameter :: n3_hard_coding    = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling a test case (TRAPPIST-1e) ===&lt;br /&gt;
Change the following compiling option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-d 64x48x30 -b 38x36&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: option -b is mandatory to change while option -d will still run with lower or higher resolution (if '''z2sig.def''' remains coherent with the number of altitude levels, meaning at least as many altitude levels defined as the number of levels wanted).&lt;br /&gt;
&lt;br /&gt;
== TRAPPIST-1c in Venus-like conditions ==&lt;br /&gt;
&lt;br /&gt;
A warm rocky planet in synchronous rotation around a low mass star. Here we provide an '''example''' to simulate the atmosphere of Trappist-1c, assuming it evolved to a modern Venus-like atmosphere.&lt;br /&gt;
&lt;br /&gt;
The planetary parameters are taken from  [https://arxiv.org/abs/2010.01074 Algol et al. 2021] and can be found in this table [[Media:Planetary_parameters_Trappist1c.png]]&lt;br /&gt;
&lt;br /&gt;
First, install the model and run it, following [[Quick Install and Run]]  but instead of  ''Early Mars files'', please download ''bench_trappist1c_64x48x50_b32x36'' using this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate https://web.lmd.jussieu.fr/~lmdz/planets/generic/reference_setups/bench_trappist1c_64x48x50_b32x36.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling a test case (TRAPPIST-1c) ===&lt;br /&gt;
Change the following compiling option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-d 64x48x50 -b 32x36&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find the same type of  ASCII *def files than in the case of ''Early Mars'',  but adapted to the planet's characteristics and orbital parameters of Trappist 1c.&lt;br /&gt;
In particular ''callphys.def'' contains the following changes:&lt;br /&gt;
&lt;br /&gt;
* The planet is assumed to be in 1:1 spin-orbit resonance, therefore&lt;br /&gt;
   diurnal = .false. &lt;br /&gt;
   tlocked = .true.&lt;br /&gt;
* The planet equilibrium temperature is about 342 K&lt;br /&gt;
   tplanet    = 341.9&lt;br /&gt;
* The host star is TRAPPIST1, with a stellar flux at 1 AU of 0.7527 [W m-2]&lt;br /&gt;
   stelspec_file = spectrum_TRAPPIST1_2022.dat&lt;br /&gt;
   tstellar = 2600.&lt;br /&gt;
   Fat1AU = 0.7527&lt;br /&gt;
* Fixed aerosol distribution, no radiative active tracers (no evaporation/condensation of H2O and CO2):&lt;br /&gt;
   aerofixed     = .true.&lt;br /&gt;
   aeroco2       = .false.&lt;br /&gt;
   aeroh2o       = .false.&lt;br /&gt;
* No water cycle model, no water cloud formation or water precipitation, no CO2 condensation:&lt;br /&gt;
   water         = .false.&lt;br /&gt;
   watercond     = .false.&lt;br /&gt;
   waterrain     = .false.&lt;br /&gt;
   hydrology     = .false.&lt;br /&gt;
   nonideal      = .true.&lt;br /&gt;
   co2cond       = .false.&lt;br /&gt;
* Following [https://www.sciencedirect.com/science/article/pii/S0032063313002596?via%3Dihub Haus et al. 2015] a prescribed radiatively active cloud model is included. &lt;br /&gt;
It can be activated/deactivated with the flag ''aerovenus''.&lt;br /&gt;
   aerovenus = .true.&lt;br /&gt;
* Mode 1, 2, 2p, 3 and the &amp;quot;unknown&amp;quot; UV absorber can be included/excluded by setting to true/false the following keywords. The characteristics of each mode (e.g. effect radius, effective variance) are based on Venus Express/ESA observations and can be found in this table [[Media:Table1 aerosolVenus trappist1c.png]]&lt;br /&gt;
   aerovenus1    = .true.&lt;br /&gt;
   aerovenus2    = .true.&lt;br /&gt;
   aerovenus2p   = .true.&lt;br /&gt;
   aerovenus3    = .true.&lt;br /&gt;
   aerovenusUV   = .true.&lt;br /&gt;
&lt;br /&gt;
The cloud model is prescribed from 1 to 0.037 ''bar'' pressure layers. For each mode, the top/bottom pressure can be modified by hard-coding model routine ''aerosol_opacity.F90''.&lt;br /&gt;
Here below an example for mode 1 particles, where the top pressure layer and bottom pressure layer are prescribed at 0.1 bar and 1 bar, respectively:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
!       1. Initialization&lt;br /&gt;
          aerosol(1:ngrid,1:nlayer,iaer)=0.0&lt;br /&gt;
          p_bot = 1.e5 ! bottom pressure [Pa]&lt;br /&gt;
          p_top = 1.e4&lt;br /&gt;
          h_bot = 1.0e3 ! bottom scale height [m]&lt;br /&gt;
          h_top = 5.0e3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''TO BE COMPLETED BY GABRIELLA'''&lt;br /&gt;
&lt;br /&gt;
== mini-Neptune GJ1214b ==&lt;br /&gt;
&lt;br /&gt;
A warm mini-Neptune&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED BY BENJAMIN'''&lt;br /&gt;
&lt;br /&gt;
= 3D DYNAMICO setup =&lt;br /&gt;
&lt;br /&gt;
Due to the rich dynamical activities in their atmospheres (banded zonal jets, eddies, vortices, storms, equatorial oscillations,...) resulting from multi-scale dynamic interactions, the Global Climate Modelling of the giant planet requires to resolve eddies arising from hydrodynamical instabilities to correctly establish the planetary-scaled jets regime. To this purpose, their Rossby radius deformation $$L_D$$, which is the length scale at which rotational effects become as important as buoyancy or gravity wave effects in the evolution of the flow about some disturbance, is calculated to determine the most suitable horizontal grid resolution. At mid-latitude range, for the giant planets, $$L_D$$ is of the same order of magnitude as that of the Earth. As the giant planets have a size of roughly 10 times the Earth size (i.e., Jupiter and Saturn), the modelling grid must be of a horizontal resolution of 0.5$$^{\circ}$$ over longitude and latitude (vs 5$$^{\circ}$$ for the Earth), considering 3 grid points to resolved $$L_D$$. &lt;br /&gt;
Moreover, to have a chance to model the equatorial oscillation, meridional cell circulations and/or a seasonal inter-hemispheric circulation, a giant planet GCM must also include a high vertical resolution. Indeed, these climate phenomena have been studied for decades for the Earth's atmosphere, and result from small- and large-scale interactions between the troposphere and stratosphere. This implies that the propagation of dynamic instabilities, waves and turbulence should be resolved as far as possible along the vertical. Contrary to horizontal resolution, it doesn't really exist a criterion (similar to $$L_D$$) to determine the most suitable vertical grid resolution and still an adjustable parameter according to the processes to be represented. However, we advise the user to set a vertical resolution of at least 5 grid points per scale height as first stage.    &lt;br /&gt;
Finally, these atmospheres are cold, with long radiative response time which needs radiative transfer computations over decade-long years of Jupiter (given that a Jupiter year $$\approx$$ 12 Earth years), Saturn ( a Saturn year $$\approx$$ 30 Earth years), Uranus (a Uranus year $$\approx$$ 84 earth years) or Neptune (a Neptune year $$\approx$$ 169 Earth years), depending on the chosen planet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be able to deal with these three -- and non-exhaustive -- requirements to build a giant planet GCM, we need massive computational ressources. For this, we use a dynamical core suitable and numerically stable for massive parallel ressource computations: [[The_DYNAMICO_dynamical_core | DYNAMICO]] [Dubos et al,. 2015].  &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In these two following subsections, we purpose an example of installation for Jupiter and a Hot Jupiter. All the install, compiling, setting and parameters files for each giant planets could be found on: https://gitlab.in2p3.fr/aymeric.spiga/dynamico-giant (the old repo is archived as read-only https://github.com/aymeric-spiga/dynamico-giant)&lt;br /&gt;
&lt;br /&gt;
The [[Dynamico-giant | DYNAMICO-giant wiki is here]]&lt;br /&gt;
&lt;br /&gt;
If you have already downloaded '''LMDZ.COMMON''', '''LMDZ.GENERIC''', '''IOIPSL''', '''ARCH''', you only have to download:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ICOSAGCM''': the DYNAMICO dynamical core&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://gitlab.in2p3.fr/ipsl/projets/dynamico/dynamico.git ICOSAGCM&lt;br /&gt;
cd ICOSAGCM&lt;br /&gt;
git checkout 110016896ae9e85e614af43223b18fe38f211020   # Version du 6 nov. 2024&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''ICOSA_LMDZ''': the interface using to link LMDZ.GENERIC physical packages and ICOSAGCM&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update -r 3729 -q ICOSA_LMDZ   # Version du 18 avr. 2025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''XIOS (XML Input Output Server)''': the library to interpolate input/output fields between the icosahedral and longitude/latitude regular grids on fly&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co -r 2626 -q http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS   # Version du 22 mar. 2024&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you haven't already download '''LMDZ.COMMON''', '''LMDZ.GENERIC''', '''IOIPSL''', '''ARCH''', you can use the '''install.sh''' script provided by the GitLab repository. &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Once each part of the GCM is downloaded, you are able to compile it. &lt;br /&gt;
Firstly, you have to define your [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files | target architecture file ]] (hereafter named YOUR_ARCH_FILE) where you will fill in all the necessary information about the local environment, where libraries are located, which compiler, and compiler options will be used, etc.&lt;br /&gt;
Some architecture files related to specific machines are provided in the '''ARCH''' directory, which are referenced in the following lines without the prefix 'arch-' (i.e., arch-X64_IRENE-AMD.env will be referenced as X64_IRENE-AMD).  &lt;br /&gt;
&lt;br /&gt;
The main specificity of DYNAMICO-giant is that every main parts of the model ('''ICOSAGCM''', '''LMDZ.COMMON''' and '''LMDZ.GENERIC''') are compiled as libraries, and settings and running configuration are managed by the '''ICOSA_LMDZ''' interface.&lt;br /&gt;
&lt;br /&gt;
First, you have to compile '''IOIPSL''',&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd LMDZ.COMMON/ioipsl/                                                                                                             &lt;br /&gt;
    ./install_ioipsl_YOUR-MACHINE.bash&lt;br /&gt;
cd ../../&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
then '''XIOS''' library, &lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd XIOS/                                                                                                               &lt;br /&gt;
    ./make_xios --prod --arch YOUR_ARCH_FILE --arch_path ../ARCH --job 8 --full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
the physics packaging,&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd LMDZ.COMMON/                                                                                                        &lt;br /&gt;
    ./makelmdz_fcm -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -prod -parallel mpi -libphy -io xios -arch YOUR_ARCH_FILE -arch_path ../ARCH -j 8 -full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
the dynamical core '''DYNAMICO''' (located in '''ICOSAGCM''' directory, named from the icosahedral shape of the horizontal mesh),&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ICOSAGCM/&lt;br /&gt;
    ./make_icosa -prod -parallel mpi -external_ioipsl -with_xios -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
and finally the '''ICOSA_LMDZ''' interface&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ICOSA_LMDZ/&lt;br /&gt;
    ./make_icosa_lmdz -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -parallel mpi -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -nodeps&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This last step is a bit redundant with the two previous one, hence ''make_icosa_lmdz'' will execute ''./make_icosa'' (in the '''ICOSAGCM''' directory) and ''./makelmdz_fcm'' (in the '''LMDZ.COMMON''' directory) to create and source the architecture files shared between all parts of the model, as well as create the intermediate file ''config.fcm''. As you have already compiled these two elements, ''make_icosa_lmdz'' should only create the linked architecture files, ''config.fcm'' and compile the interface. Here, ''-nodeps'' option prevents the checking of XIOS and IOIPSL compilation, which saves you from recompiling these two elements again.&lt;br /&gt;
      &lt;br /&gt;
Finally, your executable programs should appeared in '''ICOSA_LMDZ/bin''' subdirectory, as '''icosa_lmdz.exe''' and in '''XIOS/bin''' subdirectory, as '''xios_server.exe''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All these compiling steps are summed up in ''make_isoca_lmdz'' program that should be adapted to your own computational settings (i.e., through you target architecture file).&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./make_icosa_lmdz -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -parallel mpi -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -full&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Here, ''-full'' option assure the compilation of each part ('''IOIPSL''', '''XIOS''', '''LMDZ.COMMON''', '''ICOSAGCM''' and '''ICOSA_LMDZ''') of the model.  &lt;br /&gt;
&lt;br /&gt;
Now you can move your two executable files to your working directory and start to run your own simulation of Jupiter or a Hot Jupiter, as what follows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: If you are using the GitLab file architecture (https://gitlab.in2p3.fr/aymeric.spiga/dynamico-giant), you should be able to compile the model directly from your working directory (for instance ''dynamico-giant/jupiter/'') by using the ''compile_occigen.sh'' program, which has to be adapted to your machine/cluster.&lt;br /&gt;
&lt;br /&gt;
''Note 2 : Depending on the compiler module you use, especially with gfortran, you may need to modify the tracers_icosa.F90 file located in the src directory in order to successfully compile ICOSAGCM. For example, if you are using GCC/11.3.0 and OpenMPI/4.1.4, you must update the insert_tracer_output subroutine as follows:''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
SUBROUTINE insert_tracer_output&lt;br /&gt;
      USE xios_mod&lt;br /&gt;
      USE grid_param&lt;br /&gt;
      IMPLICIT NONE&lt;br /&gt;
      TYPE(xios_fieldgroup) :: fieldgroup_hdl&lt;br /&gt;
      TYPE(xios_field) :: field_hdl&lt;br /&gt;
      INTEGER :: iq&lt;br /&gt;
      CHARACTER(len=1000) :: tracername1&lt;br /&gt;
      CHARACTER(len=1000) :: tracername2&lt;br /&gt;
      CHARACTER(len=1000) :: tracername3 &lt;br /&gt;
&lt;br /&gt;
      CALL xios_get_handle(&amp;quot;standard_output_tracers&amp;quot;, fieldgroup_hdl)&lt;br /&gt;
      DO iq = 1, nqtot&lt;br /&gt;
         tracername1 = &amp;quot;tracer_&amp;quot;//TRIM(tracers(iq)%name)&lt;br /&gt;
         CALL xios_add_child(fieldgroup_hdl, field_hdl, tracername1)&lt;br /&gt;
         CALL xios_set_attr(field_hdl, name=TRIM(tracers(iq)%name))&lt;br /&gt;
      END DO&lt;br /&gt;
&lt;br /&gt;
      CALL xios_get_handle(&amp;quot;standard_output_tracers_init&amp;quot;, fieldgroup_hdl)&lt;br /&gt;
      DO iq = 1, nqtot&lt;br /&gt;
         tracername2 = &amp;quot;tracer_&amp;quot;//TRIM(tracers(iq)%name)//&amp;quot;_init&amp;quot;&lt;br /&gt;
         tracername3 = TRIM(tracers(iq)%name)//&amp;quot;_init&amp;quot;&lt;br /&gt;
         CALL xios_add_child(fieldgroup_hdl, field_hdl, tracername2)&lt;br /&gt;
         CALL xios_set_attr(field_hdl, name=tracername3)&lt;br /&gt;
      END DO&lt;br /&gt;
&lt;br /&gt;
   END SUBROUTINE insert_tracer_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jupiter with DYNAMICO ==&lt;br /&gt;
Using a new dynamical core implies new setting files, in addition or as a replacement of those relevant to '''LMDZ.COMMON''' dynamical core using. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two kind of setting files:&lt;br /&gt;
&lt;br /&gt;
'''A first group relevant to DYNAMICO:'''&lt;br /&gt;
&lt;br /&gt;
- [[The ''context_dynamico.xml'' Input File|''context_dynamico.xml'']]: Configuration file for '''DYNAMICO''' for reading and writing  files using '''XIOS''', mainly used when you want to check the installation of '''ICOSAGCM''' with [[The_DYNAMICO_dynamical_core | an ''Held and Suarez'' test case]]. When your installation, compilation and run environment is fully functional, the dynamic core output files will not (necessarily) be useful and you can disable their writing. &lt;br /&gt;
&lt;br /&gt;
- [[The context_input_dynamico.xml Input File|''context_input_dynamico.xml'']]:&lt;br /&gt;
&lt;br /&gt;
- [[The file_def_dynamico.xml Input File|''file_def_dynamico.xml'']]: Definition of output diagnostic files which will be written into the output files only related to '''ICOSAGCM'''. &lt;br /&gt;
&lt;br /&gt;
- [[The field_def_dynamico.xml Input File|''field_def_dynamico.xml'']]: Definition of all existing variables that can be output from DYNAMICO.&lt;br /&gt;
&lt;br /&gt;
- [[The tracer.def Input File|''tracer.def'']]: Definition of the name and physico-chemical properties of the tracers which will be advected by the dynamical core. For now, there is two files related to tracers, we are working to harmonise it.  &lt;br /&gt;
&lt;br /&gt;
''' A second group relevant to LMDZ.GENERIC physical packages: '''&lt;br /&gt;
&lt;br /&gt;
- [[The context_lmdz_physics.xml Input File|''context_lmdz_physics.xml'']]: File in which are defined the horizontal grid, vertical coordinate, output file(s) definition, with the setting of frequency output writing, time unit, geophysical variables to be written, etc. Each new geophysical variables added here have to be defined in the ''field_def_physics.xml'' file.&lt;br /&gt;
&lt;br /&gt;
- [[The field_def_physics.xml Input File|''field_def_physics.xml'']]: Definition of all existing variables that can be output from the physical packages interfaced with '''DYNAMICO'''. This is where you will add each geophysical fields that you want to appear in the ''Xhistins.nc'' output files. For instance, related to the ''thermal plume scheme'' using for Jupiter's tropospheric dynamics, we have added the following variables: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
             &amp;lt;field id=&amp;quot;h2o_vap&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Vapor mass mixing ratio&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/kg&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;h2o_ice&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Vapor mass mixing ratio&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/kg&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;detr&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Detrainment&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/m2/s&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;entr&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Entrainment&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/m2/s&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;w_plm&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Plume vertical velocity&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;m/s&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The_callphys.def_Input_File|''callphys.def'']]: This setting file is used either with '''DYNAMICO''' or '''LMDZ.COMMON''' and allows the user to choose the physical parametrisation schemes and their appropriate main parameter values relevant to the planet being simulated. In our case of Jupiter, there are some specific parametrisations that should be added or modified from the example given as link at the beginning of this line: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
# Diurnal cycle ?  if diurnal=false, diurnally averaged solar heating&lt;br /&gt;
diurnal      = .false. #.true.&lt;br /&gt;
# Seasonal cycle ? if season=false, Ls stays constant, to value set in &amp;quot;start&amp;quot;&lt;br /&gt;
season       = .true. &lt;br /&gt;
# Tidally resonant orbit ? must have diurnal=false, correct rotation rate in newstart&lt;br /&gt;
tlocked      = .false.&lt;br /&gt;
# Tidal resonance ratio ? ratio T_orbit to T_rotation&lt;br /&gt;
nres         = 1&lt;br /&gt;
# Planet with rings?&lt;br /&gt;
rings_shadow = .false.&lt;br /&gt;
# Compute latitude-dependent gravity field??&lt;br /&gt;
oblate       = .true.&lt;br /&gt;
# Include non-zero flattening (a-b)/a?&lt;br /&gt;
flatten      = 0.06487&lt;br /&gt;
# Needed if oblate=.true.: J2&lt;br /&gt;
J2           = 0.01470&lt;br /&gt;
# Needed if oblate=.true.: Planet mean radius (m)&lt;br /&gt;
Rmean        = 69911000.&lt;br /&gt;
# Needed if oblate=.true.: Mass of the planet (*1e24 kg)&lt;br /&gt;
MassPlanet   = 1898.3&lt;br /&gt;
# use (read/write) a startfi.nc file? (default=.true.)&lt;br /&gt;
startphy_file = .false.&lt;br /&gt;
# constant value for surface albedo (if startphy_file = .false.)&lt;br /&gt;
surfalbedo   = 0.0&lt;br /&gt;
# constant value for surface emissivity (if startphy_file = .false.)&lt;br /&gt;
surfemis     = 1.0&lt;br /&gt;
&lt;br /&gt;
# the rad. transfer is computed every &amp;quot;iradia&amp;quot; physical timestep&lt;br /&gt;
iradia           = 160&lt;br /&gt;
# folder in which correlated-k data is stored ?&lt;br /&gt;
corrkdir         = Jupiter_HITRAN2012_REY_ISO_NoKarko_T460K_article2019_gauss8p8_095&lt;br /&gt;
# Uniform absorption coefficient in radiative transfer?&lt;br /&gt;
graybody         = .false.&lt;br /&gt;
# Characteristic planetary equilibrium (black body) temperature&lt;br /&gt;
# This is used only in the aerosol radiative transfer setup. (see aerave.F)&lt;br /&gt;
tplanet          = 100.&lt;br /&gt;
# Output global radiative balance in file 'rad_bal.out' - slow for 1D!!&lt;br /&gt;
meanOLR          = .false.&lt;br /&gt;
# Variable gas species: Radiatively active ?&lt;br /&gt;
varactive        = .false.&lt;br /&gt;
# Computes atmospheric specific heat capacity and&lt;br /&gt;
# could calculated by the dynamics, set in callphys.def or calculeted from gases.def.&lt;br /&gt;
# You have to choose: 0 for dynamics (3d), 1 for forced in callfis (1d) or 2: computed from gases.def (1d)&lt;br /&gt;
# Force_cpp and check_cpp_match are now deprecated.  &lt;br /&gt;
cpp_mugaz_mode = 0&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if cpp_mugaz_mode = 1]&lt;br /&gt;
cpp              = 11500.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if cpp_mugaz_mode = 1]&lt;br /&gt;
mugaz            = 2.30&lt;br /&gt;
### DEBUG&lt;br /&gt;
# To not call abort when temperature is outside boundaries:&lt;br /&gt;
strictboundcorrk = .false.&lt;br /&gt;
# To not stop run when temperature is greater than 400 K for H2-H2 CIA dataset:   &lt;br /&gt;
strictboundcia = .false.&lt;br /&gt;
# Add temperature sponge effect after radiative transfer?&lt;br /&gt;
callradsponge    = .false.&lt;br /&gt;
&lt;br /&gt;
Fat1AU = 1366.0&lt;br /&gt;
&lt;br /&gt;
## Other physics options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# call turbulent vertical diffusion ?&lt;br /&gt;
calldifv    = .false.&lt;br /&gt;
# use turbdiff instead of vdifc ?&lt;br /&gt;
UseTurbDiff = .true.&lt;br /&gt;
# call convective adjustment ?&lt;br /&gt;
calladj     = .true.&lt;br /&gt;
# call thermal plume model ?&lt;br /&gt;
calltherm   = .true.&lt;br /&gt;
# call thermal conduction in the soil ?&lt;br /&gt;
callsoil    = .false.&lt;br /&gt;
# Internal heat flux (matters only if callsoil=F)&lt;br /&gt;
intheat     = 7.48&lt;br /&gt;
# Remove lower boundary (e.g. for gas giant sims)&lt;br /&gt;
nosurf      = .true.&lt;br /&gt;
#########################################################################&lt;br /&gt;
## extra non-standard definitions for Earth&lt;br /&gt;
#########################################################################&lt;br /&gt;
&lt;br /&gt;
## Thermal plume model options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
dvimpl               = .true.&lt;br /&gt;
r_aspect_thermals    = 2.0&lt;br /&gt;
tau_thermals         = 0.0&lt;br /&gt;
betalpha             = 0.9&lt;br /&gt;
afact                = 0.7&lt;br /&gt;
fact_epsilon         = 2.e-4&lt;br /&gt;
alpha_max            = 0.7&lt;br /&gt;
fomass_max           = 0.5&lt;br /&gt;
pres_limit           = 2.e5&lt;br /&gt;
&lt;br /&gt;
## Tracer and aerosol options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Ammonia cloud (Saturn/Jupiter)?&lt;br /&gt;
aeronh3             = .true.&lt;br /&gt;
size_nh3_cloud      = 10.D-6&lt;br /&gt;
pres_nh3_cloud      = 1.1D5                        # old: 9.D4&lt;br /&gt;
tau_nh3_cloud       = 10.                          # old: 15.&lt;br /&gt;
# Radiatively active aerosol (Saturn/Jupiter)?&lt;br /&gt;
aeroback2lay         = .true.&lt;br /&gt;
optprop_back2lay_vis = optprop_jupiter_vis_n20.dat&lt;br /&gt;
optprop_back2lay_ir  = optprop_jupiter_ir_n20.dat&lt;br /&gt;
obs_tau_col_tropo    = 4.0&lt;br /&gt;
size_tropo           = 5.e-7&lt;br /&gt;
pres_bottom_tropo    = 8.0D4&lt;br /&gt;
pres_top_tropo       = 1.8D4&lt;br /&gt;
obs_tau_col_strato   = 0.1D0&lt;br /&gt;
# Auroral aerosols (Saturn/Jupiter)?&lt;br /&gt;
aeroaurora         = .false.&lt;br /&gt;
size_aurora        = 3.e-7&lt;br /&gt;
obs_tau_col_aurora = 2.0&lt;br /&gt;
&lt;br /&gt;
# Radiatively active CO2 aerosol?&lt;br /&gt;
aeroco2            = .false.&lt;br /&gt;
# Fixed CO2 aerosol distribution?&lt;br /&gt;
aerofixco2     = .false.&lt;br /&gt;
# Radiatively active water aerosol?&lt;br /&gt;
aeroh2o        = .false.&lt;br /&gt;
# Fixed water aerosol distribution?&lt;br /&gt;
aerofixh2o     = .false.&lt;br /&gt;
# basic dust opacity&lt;br /&gt;
dusttau        = 0.0&lt;br /&gt;
# Varying H2O cloud fraction?&lt;br /&gt;
CLFvarying     = .false.&lt;br /&gt;
# H2O cloud fraction if fixed?&lt;br /&gt;
CLFfixval      = 0.0&lt;br /&gt;
# fixed radii for cloud particles?&lt;br /&gt;
radfixed       = .false.&lt;br /&gt;
# number mixing ratio of CO2 ice particles&lt;br /&gt;
Nmix_co2       = 100000.&lt;br /&gt;
# number mixing ratio of water particles (for rafixed=.false.)&lt;br /&gt;
Nmix_h2o       = 1.e7&lt;br /&gt;
# number mixing ratio of water ice particles (for rafixed=.false.)&lt;br /&gt;
Nmix_h2o_ice   = 5.e5&lt;br /&gt;
# radius of H2O water particles (for rafixed=.true.):&lt;br /&gt;
rad_h2o        = 10.e-6&lt;br /&gt;
# radius of H2O ice particles (for rafixed=.true.):&lt;br /&gt;
rad_h2o_ice    = 35.e-6&lt;br /&gt;
# atm mass update due to tracer evaporation/condensation?&lt;br /&gt;
mass_redistrib = .false.&lt;br /&gt;
&lt;br /&gt;
## Water options &lt;br /&gt;
## ~~~~~~~~~~~~~&lt;br /&gt;
# Model water cycle&lt;br /&gt;
water         = .true.&lt;br /&gt;
# Model water cloud formation&lt;br /&gt;
watercond     = .true.&lt;br /&gt;
# Model water precipitation (including coagulation etc.)&lt;br /&gt;
waterrain     = .true.&lt;br /&gt;
# Use simple precipitation scheme?&lt;br /&gt;
precip_scheme = 1&lt;br /&gt;
# Evaporate precipitation?&lt;br /&gt;
evap_prec     = .true.&lt;br /&gt;
# multiplicative constant in Boucher 95 precip scheme&lt;br /&gt;
Cboucher      = 1.&lt;br /&gt;
# Include hydrology ?&lt;br /&gt;
hydrology     = .false.&lt;br /&gt;
# H2O snow (and ice) albedo ?&lt;br /&gt;
albedosnow    = 0.6&lt;br /&gt;
# Maximum sea ice thickness ?&lt;br /&gt;
maxicethick   = 10.&lt;br /&gt;
# Freezing point of seawater (degrees C) ?&lt;br /&gt;
Tsaldiff      = 0.0&lt;br /&gt;
# Evolve surface water sources ?&lt;br /&gt;
sourceevol    = .false.&lt;br /&gt;
&lt;br /&gt;
## CO2 options &lt;br /&gt;
## ~~~~~~~~~~~&lt;br /&gt;
# call CO2 condensation ?&lt;br /&gt;
co2cond       = .false.&lt;br /&gt;
# Set initial temperature profile to 1 K above CO2 condensation everywhere?&lt;br /&gt;
nearco2cond   = .false.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The_gases.def_Input_file|''gases.def'']]: File containing the gas composition of the atmosphere you want to model, with their molar mixing ratios. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
# gases&lt;br /&gt;
5&lt;br /&gt;
H2_&lt;br /&gt;
He_&lt;br /&gt;
CH4&lt;br /&gt;
C2H2&lt;br /&gt;
C2H6&lt;br /&gt;
0.863&lt;br /&gt;
0.134&lt;br /&gt;
0.0018&lt;br /&gt;
1.e-7&lt;br /&gt;
1.e-5&lt;br /&gt;
# First line is number of gases&lt;br /&gt;
# Followed by gas names (always 3 characters)&lt;br /&gt;
# and then molar mixing ratios.&lt;br /&gt;
# mixing ratio -1 means the gas is variable.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The jupiter_const.def Input File|''jupiter_const.def'']]: Files that gather all orbital and physical parameters of Jupiter.&lt;br /&gt;
&lt;br /&gt;
- [[The_traceur.def_Input_File|''traceur.def'']]: At this time, only two tracers are used for modelling Jupiter atmosphere, so the ''traceur.def'' file is summed up as follow&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
2&lt;br /&gt;
h2o_vap&lt;br /&gt;
h2o_ice&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Two additional files are used to set the running parameter of the simulation itself:'''&lt;br /&gt;
&lt;br /&gt;
- [[The run_icosa.def Input File | ''run_icosa.def'']]: file containing parameters for '''ICOSAGCM''' to execute the simulation, use to determine the [[Advanced Use of the GCM | horizontal and vertical resolutions]], the number of processors, the number of subdivisions, the duration of the simulation, etc.&lt;br /&gt;
&lt;br /&gt;
- ''run.def'': file which brings together all the setting files and will be reading by the interface '''ICOSA_LMDZ''' to link each part of the model ('''ICOSAGCM''', '''LMDZ.GENERIC''') with its particular setting file(s) when the library '''XIOS''' does not take action (through the ''.xml'' files).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
###########################################################################&lt;br /&gt;
### INCLUDE OTHER DEF FILES (physics, specific settings, etc...)&lt;br /&gt;
###########################################################################&lt;br /&gt;
INCLUDEDEF=run_icosa.def&lt;br /&gt;
&lt;br /&gt;
INCLUDEDEF=jupiter_const.def&lt;br /&gt;
&lt;br /&gt;
INCLUDEDEF=callphys.def&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
prt_level=0&lt;br /&gt;
&lt;br /&gt;
## iphysiq must be same as itau_physics&lt;br /&gt;
iphysiq=40&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hot Jupiter with DYNAMICO ==&lt;br /&gt;
&lt;br /&gt;
Modelling the atmosphere of Hot Jupiter is challenging because of the extreme temperature conditions, and the fact that these planets are gas giants. Therefore, using a dynamical core such as Dynamico is strongly recommended. Here, we discuss how to perform a cloudless simulation of the Hot Jupiter WASP-43 b, using Dynamico.&lt;br /&gt;
&lt;br /&gt;
'''1st step''': You need to go to the github mentionned previously for Dynamico: https://github.com/aymeric-spiga/dynamico-giant. ''Git clone'' this repo on your favorite cluster, and ''checkout'' to the &amp;quot;hot_jupiter&amp;quot; branch.&lt;br /&gt;
&lt;br /&gt;
'''2nd step''': Now, run the install.sh script. This script will install '''all''' the required models ('''LMDZ.COMMON''', '''LMDZ.GENERIC''','''ICOSA_LMDZ''','''XIOS''','''FCM''','''ICOSAGCM'''). At this point, you only miss '''IOIPSL'''. To install it, go to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
dynamico-giant/code/LMDZ.COMMON/ioipsl/ &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There, you will find some examples of installations script. You need to create one that will work on your cluster, with your own arch files.&lt;br /&gt;
During the installation of '''IOIPSL''', you might be asked for a login/password. Contact TGCC computing center to get access.&lt;br /&gt;
&lt;br /&gt;
'''3rd step''': Great, now we have all we need to get started. Navigate to the ''hot_jupiter'' folder. You will find a ''compile_mesopsl.sh'' and a ''compile_occigen.sh'' script. Use them as examples to create the compile script adapted to your own cluster, then run it. &lt;br /&gt;
While running, I suggest that you take a look at the ''log_compile'' file. The compilation can take a while (~ 10minutes, especially because of XIOS). On quick trick to make sure that everything went right is to check the number of ''Build command finished'' messages in ''log_compile''. If everything worked out, there should be 6 of them.&lt;br /&gt;
&lt;br /&gt;
'''4th step''': Okay, the model compiled, good job ! Now we need to create the initial condition for our run. In the hot_jupiter1d folder, you already have a ''temp_profile.txt'' computed with the 1D version of the LMDZ.GENERIC (see rcm1d on this page). Thus, no need to recompute a 1D model but it will be needed if you want to model another Hot Jupiter.&lt;br /&gt;
Navigate to the 'makestart' folder, located at &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
dynamico-giant/hot_jupiter/makestart/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To generate the initial conditions for the 3D run, we're gonna start the model using the temperature profile from the 1D run. to do that, you will find a &amp;quot;job_mpi&amp;quot; script. Open it, and adapt it to your cluster and launch the job. This job is using 20 procs, and it runs 5 days of simulations. &lt;br /&gt;
If everything goes well, you should see few netcdf files appear. The important ones are '''start_icosa0.nc''', '''startfi0.nc''' and '''Xhistins.nc'''. &lt;br /&gt;
If you see these files, you're all set to launch a real simulation !&lt;br /&gt;
&lt;br /&gt;
'''5th step''': Go back to ''hot_jupiter'' folder. There are a bunch of script to launch your simulation. Take a look at the ''astro_fat_mpi'' script, and adapt it to your cluster. Then you can launch your simulation by doing &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
./run_astro_fat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will start the simulation, using 90 procs. In the same folder, check if the icosa_lmdz.out file is created. This is the logfile of the simulation, while it is running. You can check there that everything is going well.&lt;br /&gt;
&lt;br /&gt;
'''Important side note''': When using the ''run_astro_fat'' script to run a simulation, it will run a chained simulation, restarting the simulation from the previous state after 100 days of simulations and generating ''Xhistins.nc'' files. This is your results file, where you will find all the variables that controls your atmosphere (temperature field, wind fields, etc..). &lt;br /&gt;
&lt;br /&gt;
Good luck and enjoy the generic PCM Dynamico for Hot Jupiter !&lt;br /&gt;
&lt;br /&gt;
'''2nd important side note''': These 5 steps are the basic needed steps to run a simulation. If you want to tune simulations to another planet, or change other stuff, you need to take a look at '''*.def''' and '''*.xml''' files. If you're lost in all of this, take a look at the different pages of this website and/or contact us !&lt;br /&gt;
Also, you might want to check the wiki on the [https://github.com/aymeric-spiga/dynamico-giant ''Github''], that explains a lot of settings for Dynamico&lt;br /&gt;
&lt;br /&gt;
= 3D LES setup =&lt;br /&gt;
&lt;br /&gt;
== Proxima b with LES ==&lt;br /&gt;
&lt;br /&gt;
To model the subgrid atmospheric turbulence, the [[WRF dynamical core for LES/mesoscale simulations|'''WRF''']] dynamical core coupled with the LMD Generic physics package is used. The first studied conducted was to resolve the convective activity of the substellar point of Proxami-b (Lefevre et al 2021). The impact of the stellar insolation and rotation period were studied. The files for the reference case, with a stellar flux of 880 W/m2 and an 11 days rotation period, are presented&lt;br /&gt;
&lt;br /&gt;
The input_* file are the used to initialize the temperature, pressure, winds and moisture of the domain. &lt;br /&gt;
input_souding : altitude (km), potential temperature, water vapour (kg/kg), u, v&lt;br /&gt;
input_therm : normalized gas constant, isobaric heat capacity, pressure, density, temperature&lt;br /&gt;
input_hr : SW heating, LW heating, Large-scale heating extracted from the GCM. Only the last one is used in this configuration.&lt;br /&gt;
&lt;br /&gt;
The file namelist.input is used to set up the domain parameters (resolution, grid points, etc). The file levels specifies the eta-levels of the vertical domain.&lt;br /&gt;
&lt;br /&gt;
Planet is used set up the atmospheric parameters, in order : gravity (m/s2), isobaric heat capacity (J/kg/K), molecular mass (g/mol), reference temperature (K), surface pressure (Pa), planet radius (m) and planet rotation rate (s-1).&lt;br /&gt;
&lt;br /&gt;
The files *.def are the parameter for the physics. Compared to GCM runs, the convective adjustment in callphys.def is turned off&lt;br /&gt;
&lt;br /&gt;
The file controle.txt, equivalent of the field controle in GCM start.nc, needed to initialize some physics constants.&lt;br /&gt;
&lt;br /&gt;
TBC ML&lt;br /&gt;
&lt;br /&gt;
= 1D setups =&lt;br /&gt;
&lt;br /&gt;
== rcm1d program ==&lt;br /&gt;
&lt;br /&gt;
Running the model in 1D (i.e. considering simply a column of atmosphere) is a common first step to test a new setup. To do so, you first have to compile the 1D version of the model. The command line is very similar to [[Quick_Install_and_Run#Compiling a test case (early Mars)|the one for the 3D]], except for 2 changes:&lt;br /&gt;
# put just the vertical resolution after the -d option (&amp;quot;VERT&amp;quot; instead of ''LON''x''LAT''x''VERT'' for the 3D case)&lt;br /&gt;
# at the end of the line, replace &amp;quot;gcm&amp;quot; with &amp;quot;rcm1d&amp;quot;&lt;br /&gt;
It will generate a file called '''rcm1d_XX_phyxxx_seq.e''', where ''XX'' and ''phyxxx'' are the vertical resolution and the physics package, respectively.&lt;br /&gt;
&lt;br /&gt;
Check out the [[Generic unicolumn rcm1d program| dedicated page about rcm1d]] for more details.&lt;br /&gt;
&lt;br /&gt;
Note that the '''.def''' files differ a bit from the 3D case. Indeed, [[The_run.def_Input_File|'''run.def''']] contains different information and needs to hold the key &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt;; see [[The_rcm1d.def_Input_File|'''run.def''']]. In addition, the 1D model generally does not use [[The_start.nc_and_startfi.nc_input_files|'''start.nc''']] or [[The_start.nc_and_startfi.nc_input_files|'''startfi.nc''']] files to initialize. You can find examples of 1D configuration in ''LMDZ.GENERIC/deftank'' (e.g. '''run.def.earlymars1d''', '''run.def.earth1d'''), the best thing is to have a look at them.&lt;br /&gt;
&lt;br /&gt;
== kcm1d program ==&lt;br /&gt;
&lt;br /&gt;
Our 1-D inverse model&lt;br /&gt;
&lt;br /&gt;
TBD by Guillaume or Martin&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-DYNAMICO]]&lt;br /&gt;
[[Category:Generic-WRF]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3280</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3280"/>
				<updated>2026-06-12T13:17:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is suitable for 1D: see [[The rcm1d.def Input File]]. Especially, the 1D file has to hold the key &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Other_GCM_Configurations_worth_knowing_about&amp;diff=3279</id>
		<title>Other GCM Configurations worth knowing about</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Other_GCM_Configurations_worth_knowing_about&amp;diff=3279"/>
				<updated>2026-06-12T13:17:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* 1D setups */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 3D lon-lat LMDZ setup =&lt;br /&gt;
&lt;br /&gt;
== early Mars ==&lt;br /&gt;
&lt;br /&gt;
It is already described in the [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Quick_Install_and_Run ''Quick Install and Run''] section.&lt;br /&gt;
&lt;br /&gt;
== Earth with slab ocean ==&lt;br /&gt;
&lt;br /&gt;
TBD by Siddharth, once all changes have been committed (also need a validation of the model on Earth to be sure)&lt;br /&gt;
&lt;br /&gt;
== TRAPPIST-1e with photochemistry ==&lt;br /&gt;
&lt;br /&gt;
A temperate rocky planet in synchronous rotation around a low mass star.&lt;br /&gt;
&lt;br /&gt;
Here is an example to simulate the planet TRAPPIST-1e with an Earth atmosphere using the photochemical module of the GCM.&lt;br /&gt;
&lt;br /&gt;
To install the model and run it, follow [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Quick_Install_and_Run ''Quick Install and Run''] but with the following changes:&lt;br /&gt;
&lt;br /&gt;
=== GCM Input Datafiles and Datasets ===&lt;br /&gt;
Section [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run&amp;amp;action=edit&amp;amp;section=9 ''GCM Input Datafiles and Datasets''] download the TRAPPIST-1e files (instead of the early Mars files):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate https://web.lmd.jussieu.fr/~lmdz/planets/generic/reference_setups/bench_trappist1e_photochemistry_64x48x30_b38x36.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find the same type of file with the additional folder containing the chemical network file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
callphys.def  gases.def  startfi.nc  traceur.def&lt;br /&gt;
datadir/      run.def    start.nc    z2sig.def&lt;br /&gt;
chemnetwork/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling the GCM ===&lt;br /&gt;
==== Prior to a first compilation: setting up the target architecture files ====&lt;br /&gt;
The chemical solver require the libraries BLAS and LAPACK which need to be specified in the '''arch*.fcm''' file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&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 LAPACK BLAS SGEMV=DGEMV SGEMM=DGEMM&lt;br /&gt;
%BASE_FFLAGS         -c -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fno-align-commons&lt;br /&gt;
%PROD_FFLAGS         -O3&lt;br /&gt;
%DEV_FFLAGS          -O&lt;br /&gt;
%DEBUG_FFLAGS        -ffpe-trap=invalid,zero,overflow -fbounds-check -g3 -O0 -fstack-protector-all -finit-real=snan -fbacktrace&lt;br /&gt;
%MPI_FFLAGS&lt;br /&gt;
%OMP_FFLAGS         &lt;br /&gt;
%BASE_LD             -llapack -lblas&lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Specific to photochemistry: set hard coded reactions ====&lt;br /&gt;
In '''/LMDZ.GENERIC/libf/aeronogeneric/chimiedata_h.F90''' you can hard code reaction if needed, for instance because the reaction rate is very specific and out of the generic formula or your photochemical reaction does not use a regular cross section.&lt;br /&gt;
&lt;br /&gt;
The TRAPPIST-1e test case use 3 hard coded reactions.&lt;br /&gt;
&lt;br /&gt;
*Uncomment the following lines to fill reaction species indexes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!===========================================================&lt;br /&gt;
!      r001 : HNO3 + rain -&amp;gt; H2O&lt;br /&gt;
!===========================================================&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
indice_phot(nb_phot) = z3spec(1.0, indexchim('hno3'), 1.0, indexchim('h2o_vap'), 0.0, 1)&lt;br /&gt;
&lt;br /&gt;
!===========================================================&lt;br /&gt;
!      e001 : CO + OH -&amp;gt; CO2 + H &lt;br /&gt;
!===========================================================&lt;br /&gt;
nb_reaction_4 = nb_reaction_4 + 1&lt;br /&gt;
indice_4(nb_reaction_4) = z4spec(1.0, indexchim('co'), 1.0, indexchim('oh'), 1.0, indexchim('co2'), 1.0, indexchim('h'))&lt;br /&gt;
&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
!     photodissociation of NO : NO + hv -&amp;gt; N + O&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
indice_phot(nb_phot) = z3spec(1.0, indexchim('no'), 1.0, indexchim('n'), 1.0, indexchim('o'))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Uncomment the following lines to fill reaction rates:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!     carbon reactions&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
     &lt;br /&gt;
!---  e001: oh + co -&amp;gt; co2 + h&lt;br /&gt;
&lt;br /&gt;
      nb_reaction_4 = nb_reaction_4 + 1&lt;br /&gt;
&lt;br /&gt;
!     joshi et al., 2006&lt;br /&gt;
&lt;br /&gt;
      do ilev = 1,nlayer&lt;br /&gt;
         k1a0 = 1.34*2.5*dens(ilev)                                  &amp;amp;&lt;br /&gt;
               *1/(1/(3.62e-26*t(ilev)**(-2.739)*exp(-20./t(ilev)))  &amp;amp;&lt;br /&gt;
               + 1/(6.48e-33*t(ilev)**(0.14)*exp(-57./t(ilev))))     ! typo in paper corrected&lt;br /&gt;
         k1b0 = 1.17e-19*t(ilev)**(2.053)*exp(139./t(ilev))          &amp;amp;&lt;br /&gt;
              + 9.56e-12*t(ilev)**(-0.664)*exp(-167./t(ilev))&lt;br /&gt;
         k1ainf = 1.52e-17*t(ilev)**(1.858)*exp(28.8/t(ilev))        &amp;amp;&lt;br /&gt;
                + 4.78e-8*t(ilev)**(-1.851)*exp(-318./t(ilev))&lt;br /&gt;
         x = k1a0/(k1ainf - k1b0)&lt;br /&gt;
         y = k1b0/(k1ainf - k1b0)&lt;br /&gt;
         fc = 0.628*exp(-1223./t(ilev)) + (1. - 0.628)*exp(-39./t(ilev))  &amp;amp;&lt;br /&gt;
            + exp(-t(ilev)/255.)&lt;br /&gt;
         fx = fc**(1./(1. + (alog(x))**2))                           ! typo in paper corrected&lt;br /&gt;
         k1a = k1a0*((1. + y)/(1. + x))*fx&lt;br /&gt;
         k1b = k1b0*(1./(1.+x))*fx&lt;br /&gt;
            &lt;br /&gt;
         v_4(ilev,nb_reaction_4) = k1a + k1b&lt;br /&gt;
      end do&lt;br /&gt;
&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!     washout r001 : HNO3 + rain -&amp;gt; H2O&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
      &lt;br /&gt;
rain_h2o  = 100.e-6&lt;br /&gt;
!rain_rate = 1.e-6  ! 10 days&lt;br /&gt;
rain_rate = 1.e-8&lt;br /&gt;
      &lt;br /&gt;
do ilev = 1,nlayer&lt;br /&gt;
   if (c(ilev,indexchim('h2o_vap'))/dens(ilev) &amp;gt;= rain_h2o) then&lt;br /&gt;
      v_phot(ilev,nb_phot) = rain_rate&lt;br /&gt;
   else&lt;br /&gt;
      v_phot(ilev,nb_phot) = 0.&lt;br /&gt;
   end if&lt;br /&gt;
end do&lt;br /&gt;
&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
!     photodissociation of NO&lt;br /&gt;
!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&lt;br /&gt;
      &lt;br /&gt;
nb_phot = nb_phot + 1&lt;br /&gt;
      &lt;br /&gt;
colo3(nlayer) = 0.&lt;br /&gt;
!     ozone columns for other levels (molecule.cm-2)&lt;br /&gt;
do ilev = nlayer-1,1,-1&lt;br /&gt;
   colo3(ilev) = colo3(ilev+1) + (c(ilev+1,indexchim('o3')) + c(ilev,indexchim('o3')))*0.5*avocado*1e-4*((press(ilev) - press(ilev+1))*100.)/(1.e-3*zmmean(ilev)*g*dens(ilev))&lt;br /&gt;
end do&lt;br /&gt;
call jno(nlayer, c(nlayer:1:-1,indexchim('no')), c(nlayer:1:-1,indexchim('o2')), colo3(nlayer:1:-1), dens(nlayer:1:-1), press(nlayer:1:-1), sza, v_phot(nlayer:1:-1,nb_phot))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Change the following lines to set the number of hard coded reactions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
integer, parameter :: nphot_hard_coding = 2&lt;br /&gt;
integer, parameter :: n4_hard_coding    = 1&lt;br /&gt;
integer, parameter :: n3_hard_coding    = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling a test case (TRAPPIST-1e) ===&lt;br /&gt;
Change the following compiling option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-d 64x48x30 -b 38x36&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: option -b is mandatory to change while option -d will still run with lower or higher resolution (if '''z2sig.def''' remains coherent with the number of altitude levels, meaning at least as many altitude levels defined as the number of levels wanted).&lt;br /&gt;
&lt;br /&gt;
== TRAPPIST-1c in Venus-like conditions ==&lt;br /&gt;
&lt;br /&gt;
A warm rocky planet in synchronous rotation around a low mass star. Here we provide an '''example''' to simulate the atmosphere of Trappist-1c, assuming it evolved to a modern Venus-like atmosphere.&lt;br /&gt;
&lt;br /&gt;
The planetary parameters are taken from  [https://arxiv.org/abs/2010.01074 Algol et al. 2021] and can be found in this table [[Media:Planetary_parameters_Trappist1c.png]]&lt;br /&gt;
&lt;br /&gt;
First, install the model and run it, following [[Quick Install and Run]]  but instead of  ''Early Mars files'', please download ''bench_trappist1c_64x48x50_b32x36'' using this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate https://web.lmd.jussieu.fr/~lmdz/planets/generic/reference_setups/bench_trappist1c_64x48x50_b32x36.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiling a test case (TRAPPIST-1c) ===&lt;br /&gt;
Change the following compiling option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-d 64x48x50 -b 32x36&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find the same type of  ASCII *def files than in the case of ''Early Mars'',  but adapted to the planet's characteristics and orbital parameters of Trappist 1c.&lt;br /&gt;
In particular ''callphys.def'' contains the following changes:&lt;br /&gt;
&lt;br /&gt;
* The planet is assumed to be in 1:1 spin-orbit resonance, therefore&lt;br /&gt;
   diurnal = .false. &lt;br /&gt;
   tlocked = .true.&lt;br /&gt;
* The planet equilibrium temperature is about 342 K&lt;br /&gt;
   tplanet    = 341.9&lt;br /&gt;
* The host star is TRAPPIST1, with a stellar flux at 1 AU of 0.7527 [W m-2]&lt;br /&gt;
   stelspec_file = spectrum_TRAPPIST1_2022.dat&lt;br /&gt;
   tstellar = 2600.&lt;br /&gt;
   Fat1AU = 0.7527&lt;br /&gt;
* Fixed aerosol distribution, no radiative active tracers (no evaporation/condensation of H2O and CO2):&lt;br /&gt;
   aerofixed     = .true.&lt;br /&gt;
   aeroco2       = .false.&lt;br /&gt;
   aeroh2o       = .false.&lt;br /&gt;
* No water cycle model, no water cloud formation or water precipitation, no CO2 condensation:&lt;br /&gt;
   water         = .false.&lt;br /&gt;
   watercond     = .false.&lt;br /&gt;
   waterrain     = .false.&lt;br /&gt;
   hydrology     = .false.&lt;br /&gt;
   nonideal      = .true.&lt;br /&gt;
   co2cond       = .false.&lt;br /&gt;
* Following [https://www.sciencedirect.com/science/article/pii/S0032063313002596?via%3Dihub Haus et al. 2015] a prescribed radiatively active cloud model is included. &lt;br /&gt;
It can be activated/deactivated with the flag ''aerovenus''.&lt;br /&gt;
   aerovenus = .true.&lt;br /&gt;
* Mode 1, 2, 2p, 3 and the &amp;quot;unknown&amp;quot; UV absorber can be included/excluded by setting to true/false the following keywords. The characteristics of each mode (e.g. effect radius, effective variance) are based on Venus Express/ESA observations and can be found in this table [[Media:Table1 aerosolVenus trappist1c.png]]&lt;br /&gt;
   aerovenus1    = .true.&lt;br /&gt;
   aerovenus2    = .true.&lt;br /&gt;
   aerovenus2p   = .true.&lt;br /&gt;
   aerovenus3    = .true.&lt;br /&gt;
   aerovenusUV   = .true.&lt;br /&gt;
&lt;br /&gt;
The cloud model is prescribed from 1 to 0.037 ''bar'' pressure layers. For each mode, the top/bottom pressure can be modified by hard-coding model routine ''aerosol_opacity.F90''.&lt;br /&gt;
Here below an example for mode 1 particles, where the top pressure layer and bottom pressure layer are prescribed at 0.1 bar and 1 bar, respectively:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
!       1. Initialization&lt;br /&gt;
          aerosol(1:ngrid,1:nlayer,iaer)=0.0&lt;br /&gt;
          p_bot = 1.e5 ! bottom pressure [Pa]&lt;br /&gt;
          p_top = 1.e4&lt;br /&gt;
          h_bot = 1.0e3 ! bottom scale height [m]&lt;br /&gt;
          h_top = 5.0e3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''TO BE COMPLETED BY GABRIELLA'''&lt;br /&gt;
&lt;br /&gt;
== mini-Neptune GJ1214b ==&lt;br /&gt;
&lt;br /&gt;
A warm mini-Neptune&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED BY BENJAMIN'''&lt;br /&gt;
&lt;br /&gt;
= 3D DYNAMICO setup =&lt;br /&gt;
&lt;br /&gt;
Due to the rich dynamical activities in their atmospheres (banded zonal jets, eddies, vortices, storms, equatorial oscillations,...) resulting from multi-scale dynamic interactions, the Global Climate Modelling of the giant planet requires to resolve eddies arising from hydrodynamical instabilities to correctly establish the planetary-scaled jets regime. To this purpose, their Rossby radius deformation $$L_D$$, which is the length scale at which rotational effects become as important as buoyancy or gravity wave effects in the evolution of the flow about some disturbance, is calculated to determine the most suitable horizontal grid resolution. At mid-latitude range, for the giant planets, $$L_D$$ is of the same order of magnitude as that of the Earth. As the giant planets have a size of roughly 10 times the Earth size (i.e., Jupiter and Saturn), the modelling grid must be of a horizontal resolution of 0.5$$^{\circ}$$ over longitude and latitude (vs 5$$^{\circ}$$ for the Earth), considering 3 grid points to resolved $$L_D$$. &lt;br /&gt;
Moreover, to have a chance to model the equatorial oscillation, meridional cell circulations and/or a seasonal inter-hemispheric circulation, a giant planet GCM must also include a high vertical resolution. Indeed, these climate phenomena have been studied for decades for the Earth's atmosphere, and result from small- and large-scale interactions between the troposphere and stratosphere. This implies that the propagation of dynamic instabilities, waves and turbulence should be resolved as far as possible along the vertical. Contrary to horizontal resolution, it doesn't really exist a criterion (similar to $$L_D$$) to determine the most suitable vertical grid resolution and still an adjustable parameter according to the processes to be represented. However, we advise the user to set a vertical resolution of at least 5 grid points per scale height as first stage.    &lt;br /&gt;
Finally, these atmospheres are cold, with long radiative response time which needs radiative transfer computations over decade-long years of Jupiter (given that a Jupiter year $$\approx$$ 12 Earth years), Saturn ( a Saturn year $$\approx$$ 30 Earth years), Uranus (a Uranus year $$\approx$$ 84 earth years) or Neptune (a Neptune year $$\approx$$ 169 Earth years), depending on the chosen planet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be able to deal with these three -- and non-exhaustive -- requirements to build a giant planet GCM, we need massive computational ressources. For this, we use a dynamical core suitable and numerically stable for massive parallel ressource computations: [[The_DYNAMICO_dynamical_core | DYNAMICO]] [Dubos et al,. 2015].  &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In these two following subsections, we purpose an example of installation for Jupiter and a Hot Jupiter. All the install, compiling, setting and parameters files for each giant planets could be found on: https://gitlab.in2p3.fr/aymeric.spiga/dynamico-giant (the old repo is archived as read-only https://github.com/aymeric-spiga/dynamico-giant)&lt;br /&gt;
&lt;br /&gt;
The [[Dynamico-giant | DYNAMICO-giant wiki is here]]&lt;br /&gt;
&lt;br /&gt;
If you have already downloaded '''LMDZ.COMMON''', '''LMDZ.GENERIC''', '''IOIPSL''', '''ARCH''', you only have to download:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ICOSAGCM''': the DYNAMICO dynamical core&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://gitlab.in2p3.fr/ipsl/projets/dynamico/dynamico.git ICOSAGCM&lt;br /&gt;
cd ICOSAGCM&lt;br /&gt;
git checkout 110016896ae9e85e614af43223b18fe38f211020   # Version du 6 nov. 2024&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''ICOSA_LMDZ''': the interface using to link LMDZ.GENERIC physical packages and ICOSAGCM&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update -r 3729 -q ICOSA_LMDZ   # Version du 18 avr. 2025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''XIOS (XML Input Output Server)''': the library to interpolate input/output fields between the icosahedral and longitude/latitude regular grids on fly&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co -r 2626 -q http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS   # Version du 22 mar. 2024&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you haven't already download '''LMDZ.COMMON''', '''LMDZ.GENERIC''', '''IOIPSL''', '''ARCH''', you can use the '''install.sh''' script provided by the GitLab repository. &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Once each part of the GCM is downloaded, you are able to compile it. &lt;br /&gt;
Firstly, you have to define your [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files | target architecture file ]] (hereafter named YOUR_ARCH_FILE) where you will fill in all the necessary information about the local environment, where libraries are located, which compiler, and compiler options will be used, etc.&lt;br /&gt;
Some architecture files related to specific machines are provided in the '''ARCH''' directory, which are referenced in the following lines without the prefix 'arch-' (i.e., arch-X64_IRENE-AMD.env will be referenced as X64_IRENE-AMD).  &lt;br /&gt;
&lt;br /&gt;
The main specificity of DYNAMICO-giant is that every main parts of the model ('''ICOSAGCM''', '''LMDZ.COMMON''' and '''LMDZ.GENERIC''') are compiled as libraries, and settings and running configuration are managed by the '''ICOSA_LMDZ''' interface.&lt;br /&gt;
&lt;br /&gt;
First, you have to compile '''IOIPSL''',&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd LMDZ.COMMON/ioipsl/                                                                                                             &lt;br /&gt;
    ./install_ioipsl_YOUR-MACHINE.bash&lt;br /&gt;
cd ../../&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
then '''XIOS''' library, &lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd XIOS/                                                                                                               &lt;br /&gt;
    ./make_xios --prod --arch YOUR_ARCH_FILE --arch_path ../ARCH --job 8 --full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
the physics packaging,&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd LMDZ.COMMON/                                                                                                        &lt;br /&gt;
    ./makelmdz_fcm -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -prod -parallel mpi -libphy -io xios -arch YOUR_ARCH_FILE -arch_path ../ARCH -j 8 -full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
the dynamical core '''DYNAMICO''' (located in '''ICOSAGCM''' directory, named from the icosahedral shape of the horizontal mesh),&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ICOSAGCM/&lt;br /&gt;
    ./make_icosa -prod -parallel mpi -external_ioipsl -with_xios -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -full&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
and finally the '''ICOSA_LMDZ''' interface&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ICOSA_LMDZ/&lt;br /&gt;
    ./make_icosa_lmdz -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -parallel mpi -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -nodeps&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This last step is a bit redundant with the two previous one, hence ''make_icosa_lmdz'' will execute ''./make_icosa'' (in the '''ICOSAGCM''' directory) and ''./makelmdz_fcm'' (in the '''LMDZ.COMMON''' directory) to create and source the architecture files shared between all parts of the model, as well as create the intermediate file ''config.fcm''. As you have already compiled these two elements, ''make_icosa_lmdz'' should only create the linked architecture files, ''config.fcm'' and compile the interface. Here, ''-nodeps'' option prevents the checking of XIOS and IOIPSL compilation, which saves you from recompiling these two elements again.&lt;br /&gt;
      &lt;br /&gt;
Finally, your executable programs should appeared in '''ICOSA_LMDZ/bin''' subdirectory, as '''icosa_lmdz.exe''' and in '''XIOS/bin''' subdirectory, as '''xios_server.exe''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All these compiling steps are summed up in ''make_isoca_lmdz'' program that should be adapted to your own computational settings (i.e., through you target architecture file).&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./make_icosa_lmdz -p generic -p_opt &amp;quot;-b 20x25&amp;quot; -parallel mpi -arch YOUR_ARCH_FILE -arch_path ../ARCH -job 8 -full&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Here, ''-full'' option assure the compilation of each part ('''IOIPSL''', '''XIOS''', '''LMDZ.COMMON''', '''ICOSAGCM''' and '''ICOSA_LMDZ''') of the model.  &lt;br /&gt;
&lt;br /&gt;
Now you can move your two executable files to your working directory and start to run your own simulation of Jupiter or a Hot Jupiter, as what follows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: If you are using the GitLab file architecture (https://gitlab.in2p3.fr/aymeric.spiga/dynamico-giant), you should be able to compile the model directly from your working directory (for instance ''dynamico-giant/jupiter/'') by using the ''compile_occigen.sh'' program, which has to be adapted to your machine/cluster.&lt;br /&gt;
&lt;br /&gt;
''Note 2 : Depending on the compiler module you use, especially with gfortran, you may need to modify the tracers_icosa.F90 file located in the src directory in order to successfully compile ICOSAGCM. For example, if you are using GCC/11.3.0 and OpenMPI/4.1.4, you must update the insert_tracer_output subroutine as follows:''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
SUBROUTINE insert_tracer_output&lt;br /&gt;
      USE xios_mod&lt;br /&gt;
      USE grid_param&lt;br /&gt;
      IMPLICIT NONE&lt;br /&gt;
      TYPE(xios_fieldgroup) :: fieldgroup_hdl&lt;br /&gt;
      TYPE(xios_field) :: field_hdl&lt;br /&gt;
      INTEGER :: iq&lt;br /&gt;
      CHARACTER(len=1000) :: tracername1&lt;br /&gt;
      CHARACTER(len=1000) :: tracername2&lt;br /&gt;
      CHARACTER(len=1000) :: tracername3 &lt;br /&gt;
&lt;br /&gt;
      CALL xios_get_handle(&amp;quot;standard_output_tracers&amp;quot;, fieldgroup_hdl)&lt;br /&gt;
      DO iq = 1, nqtot&lt;br /&gt;
         tracername1 = &amp;quot;tracer_&amp;quot;//TRIM(tracers(iq)%name)&lt;br /&gt;
         CALL xios_add_child(fieldgroup_hdl, field_hdl, tracername1)&lt;br /&gt;
         CALL xios_set_attr(field_hdl, name=TRIM(tracers(iq)%name))&lt;br /&gt;
      END DO&lt;br /&gt;
&lt;br /&gt;
      CALL xios_get_handle(&amp;quot;standard_output_tracers_init&amp;quot;, fieldgroup_hdl)&lt;br /&gt;
      DO iq = 1, nqtot&lt;br /&gt;
         tracername2 = &amp;quot;tracer_&amp;quot;//TRIM(tracers(iq)%name)//&amp;quot;_init&amp;quot;&lt;br /&gt;
         tracername3 = TRIM(tracers(iq)%name)//&amp;quot;_init&amp;quot;&lt;br /&gt;
         CALL xios_add_child(fieldgroup_hdl, field_hdl, tracername2)&lt;br /&gt;
         CALL xios_set_attr(field_hdl, name=tracername3)&lt;br /&gt;
      END DO&lt;br /&gt;
&lt;br /&gt;
   END SUBROUTINE insert_tracer_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jupiter with DYNAMICO ==&lt;br /&gt;
Using a new dynamical core implies new setting files, in addition or as a replacement of those relevant to '''LMDZ.COMMON''' dynamical core using. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two kind of setting files:&lt;br /&gt;
&lt;br /&gt;
'''A first group relevant to DYNAMICO:'''&lt;br /&gt;
&lt;br /&gt;
- [[The ''context_dynamico.xml'' Input File|''context_dynamico.xml'']]: Configuration file for '''DYNAMICO''' for reading and writing  files using '''XIOS''', mainly used when you want to check the installation of '''ICOSAGCM''' with [[The_DYNAMICO_dynamical_core | an ''Held and Suarez'' test case]]. When your installation, compilation and run environment is fully functional, the dynamic core output files will not (necessarily) be useful and you can disable their writing. &lt;br /&gt;
&lt;br /&gt;
- [[The context_input_dynamico.xml Input File|''context_input_dynamico.xml'']]:&lt;br /&gt;
&lt;br /&gt;
- [[The file_def_dynamico.xml Input File|''file_def_dynamico.xml'']]: Definition of output diagnostic files which will be written into the output files only related to '''ICOSAGCM'''. &lt;br /&gt;
&lt;br /&gt;
- [[The field_def_dynamico.xml Input File|''field_def_dynamico.xml'']]: Definition of all existing variables that can be output from DYNAMICO.&lt;br /&gt;
&lt;br /&gt;
- [[The tracer.def Input File|''tracer.def'']]: Definition of the name and physico-chemical properties of the tracers which will be advected by the dynamical core. For now, there is two files related to tracers, we are working to harmonise it.  &lt;br /&gt;
&lt;br /&gt;
''' A second group relevant to LMDZ.GENERIC physical packages: '''&lt;br /&gt;
&lt;br /&gt;
- [[The context_lmdz_physics.xml Input File|''context_lmdz_physics.xml'']]: File in which are defined the horizontal grid, vertical coordinate, output file(s) definition, with the setting of frequency output writing, time unit, geophysical variables to be written, etc. Each new geophysical variables added here have to be defined in the ''field_def_physics.xml'' file.&lt;br /&gt;
&lt;br /&gt;
- [[The field_def_physics.xml Input File|''field_def_physics.xml'']]: Definition of all existing variables that can be output from the physical packages interfaced with '''DYNAMICO'''. This is where you will add each geophysical fields that you want to appear in the ''Xhistins.nc'' output files. For instance, related to the ''thermal plume scheme'' using for Jupiter's tropospheric dynamics, we have added the following variables: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
             &amp;lt;field id=&amp;quot;h2o_vap&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Vapor mass mixing ratio&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/kg&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;h2o_ice&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Vapor mass mixing ratio&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/kg&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;detr&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Detrainment&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/m2/s&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;entr&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Entrainment&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;kg/m2/s&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field id=&amp;quot;w_plm&amp;quot; &lt;br /&gt;
                   long_name=&amp;quot;Plume vertical velocity&amp;quot; &lt;br /&gt;
                   unit=&amp;quot;m/s&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The_callphys.def_Input_File|''callphys.def'']]: This setting file is used either with '''DYNAMICO''' or '''LMDZ.COMMON''' and allows the user to choose the physical parametrisation schemes and their appropriate main parameter values relevant to the planet being simulated. In our case of Jupiter, there are some specific parametrisations that should be added or modified from the example given as link at the beginning of this line: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
# Diurnal cycle ?  if diurnal=false, diurnally averaged solar heating&lt;br /&gt;
diurnal      = .false. #.true.&lt;br /&gt;
# Seasonal cycle ? if season=false, Ls stays constant, to value set in &amp;quot;start&amp;quot;&lt;br /&gt;
season       = .true. &lt;br /&gt;
# Tidally resonant orbit ? must have diurnal=false, correct rotation rate in newstart&lt;br /&gt;
tlocked      = .false.&lt;br /&gt;
# Tidal resonance ratio ? ratio T_orbit to T_rotation&lt;br /&gt;
nres         = 1&lt;br /&gt;
# Planet with rings?&lt;br /&gt;
rings_shadow = .false.&lt;br /&gt;
# Compute latitude-dependent gravity field??&lt;br /&gt;
oblate       = .true.&lt;br /&gt;
# Include non-zero flattening (a-b)/a?&lt;br /&gt;
flatten      = 0.06487&lt;br /&gt;
# Needed if oblate=.true.: J2&lt;br /&gt;
J2           = 0.01470&lt;br /&gt;
# Needed if oblate=.true.: Planet mean radius (m)&lt;br /&gt;
Rmean        = 69911000.&lt;br /&gt;
# Needed if oblate=.true.: Mass of the planet (*1e24 kg)&lt;br /&gt;
MassPlanet   = 1898.3&lt;br /&gt;
# use (read/write) a startfi.nc file? (default=.true.)&lt;br /&gt;
startphy_file = .false.&lt;br /&gt;
# constant value for surface albedo (if startphy_file = .false.)&lt;br /&gt;
surfalbedo   = 0.0&lt;br /&gt;
# constant value for surface emissivity (if startphy_file = .false.)&lt;br /&gt;
surfemis     = 1.0&lt;br /&gt;
&lt;br /&gt;
# the rad. transfer is computed every &amp;quot;iradia&amp;quot; physical timestep&lt;br /&gt;
iradia           = 160&lt;br /&gt;
# folder in which correlated-k data is stored ?&lt;br /&gt;
corrkdir         = Jupiter_HITRAN2012_REY_ISO_NoKarko_T460K_article2019_gauss8p8_095&lt;br /&gt;
# Uniform absorption coefficient in radiative transfer?&lt;br /&gt;
graybody         = .false.&lt;br /&gt;
# Characteristic planetary equilibrium (black body) temperature&lt;br /&gt;
# This is used only in the aerosol radiative transfer setup. (see aerave.F)&lt;br /&gt;
tplanet          = 100.&lt;br /&gt;
# Output global radiative balance in file 'rad_bal.out' - slow for 1D!!&lt;br /&gt;
meanOLR          = .false.&lt;br /&gt;
# Variable gas species: Radiatively active ?&lt;br /&gt;
varactive        = .false.&lt;br /&gt;
# Computes atmospheric specific heat capacity and&lt;br /&gt;
# could calculated by the dynamics, set in callphys.def or calculeted from gases.def.&lt;br /&gt;
# You have to choose: 0 for dynamics (3d), 1 for forced in callfis (1d) or 2: computed from gases.def (1d)&lt;br /&gt;
# Force_cpp and check_cpp_match are now deprecated.  &lt;br /&gt;
cpp_mugaz_mode = 0&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if cpp_mugaz_mode = 1]&lt;br /&gt;
cpp              = 11500.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if cpp_mugaz_mode = 1]&lt;br /&gt;
mugaz            = 2.30&lt;br /&gt;
### DEBUG&lt;br /&gt;
# To not call abort when temperature is outside boundaries:&lt;br /&gt;
strictboundcorrk = .false.&lt;br /&gt;
# To not stop run when temperature is greater than 400 K for H2-H2 CIA dataset:   &lt;br /&gt;
strictboundcia = .false.&lt;br /&gt;
# Add temperature sponge effect after radiative transfer?&lt;br /&gt;
callradsponge    = .false.&lt;br /&gt;
&lt;br /&gt;
Fat1AU = 1366.0&lt;br /&gt;
&lt;br /&gt;
## Other physics options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# call turbulent vertical diffusion ?&lt;br /&gt;
calldifv    = .false.&lt;br /&gt;
# use turbdiff instead of vdifc ?&lt;br /&gt;
UseTurbDiff = .true.&lt;br /&gt;
# call convective adjustment ?&lt;br /&gt;
calladj     = .true.&lt;br /&gt;
# call thermal plume model ?&lt;br /&gt;
calltherm   = .true.&lt;br /&gt;
# call thermal conduction in the soil ?&lt;br /&gt;
callsoil    = .false.&lt;br /&gt;
# Internal heat flux (matters only if callsoil=F)&lt;br /&gt;
intheat     = 7.48&lt;br /&gt;
# Remove lower boundary (e.g. for gas giant sims)&lt;br /&gt;
nosurf      = .true.&lt;br /&gt;
#########################################################################&lt;br /&gt;
## extra non-standard definitions for Earth&lt;br /&gt;
#########################################################################&lt;br /&gt;
&lt;br /&gt;
## Thermal plume model options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
dvimpl               = .true.&lt;br /&gt;
r_aspect_thermals    = 2.0&lt;br /&gt;
tau_thermals         = 0.0&lt;br /&gt;
betalpha             = 0.9&lt;br /&gt;
afact                = 0.7&lt;br /&gt;
fact_epsilon         = 2.e-4&lt;br /&gt;
alpha_max            = 0.7&lt;br /&gt;
fomass_max           = 0.5&lt;br /&gt;
pres_limit           = 2.e5&lt;br /&gt;
&lt;br /&gt;
## Tracer and aerosol options&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Ammonia cloud (Saturn/Jupiter)?&lt;br /&gt;
aeronh3             = .true.&lt;br /&gt;
size_nh3_cloud      = 10.D-6&lt;br /&gt;
pres_nh3_cloud      = 1.1D5                        # old: 9.D4&lt;br /&gt;
tau_nh3_cloud       = 10.                          # old: 15.&lt;br /&gt;
# Radiatively active aerosol (Saturn/Jupiter)?&lt;br /&gt;
aeroback2lay         = .true.&lt;br /&gt;
optprop_back2lay_vis = optprop_jupiter_vis_n20.dat&lt;br /&gt;
optprop_back2lay_ir  = optprop_jupiter_ir_n20.dat&lt;br /&gt;
obs_tau_col_tropo    = 4.0&lt;br /&gt;
size_tropo           = 5.e-7&lt;br /&gt;
pres_bottom_tropo    = 8.0D4&lt;br /&gt;
pres_top_tropo       = 1.8D4&lt;br /&gt;
obs_tau_col_strato   = 0.1D0&lt;br /&gt;
# Auroral aerosols (Saturn/Jupiter)?&lt;br /&gt;
aeroaurora         = .false.&lt;br /&gt;
size_aurora        = 3.e-7&lt;br /&gt;
obs_tau_col_aurora = 2.0&lt;br /&gt;
&lt;br /&gt;
# Radiatively active CO2 aerosol?&lt;br /&gt;
aeroco2            = .false.&lt;br /&gt;
# Fixed CO2 aerosol distribution?&lt;br /&gt;
aerofixco2     = .false.&lt;br /&gt;
# Radiatively active water aerosol?&lt;br /&gt;
aeroh2o        = .false.&lt;br /&gt;
# Fixed water aerosol distribution?&lt;br /&gt;
aerofixh2o     = .false.&lt;br /&gt;
# basic dust opacity&lt;br /&gt;
dusttau        = 0.0&lt;br /&gt;
# Varying H2O cloud fraction?&lt;br /&gt;
CLFvarying     = .false.&lt;br /&gt;
# H2O cloud fraction if fixed?&lt;br /&gt;
CLFfixval      = 0.0&lt;br /&gt;
# fixed radii for cloud particles?&lt;br /&gt;
radfixed       = .false.&lt;br /&gt;
# number mixing ratio of CO2 ice particles&lt;br /&gt;
Nmix_co2       = 100000.&lt;br /&gt;
# number mixing ratio of water particles (for rafixed=.false.)&lt;br /&gt;
Nmix_h2o       = 1.e7&lt;br /&gt;
# number mixing ratio of water ice particles (for rafixed=.false.)&lt;br /&gt;
Nmix_h2o_ice   = 5.e5&lt;br /&gt;
# radius of H2O water particles (for rafixed=.true.):&lt;br /&gt;
rad_h2o        = 10.e-6&lt;br /&gt;
# radius of H2O ice particles (for rafixed=.true.):&lt;br /&gt;
rad_h2o_ice    = 35.e-6&lt;br /&gt;
# atm mass update due to tracer evaporation/condensation?&lt;br /&gt;
mass_redistrib = .false.&lt;br /&gt;
&lt;br /&gt;
## Water options &lt;br /&gt;
## ~~~~~~~~~~~~~&lt;br /&gt;
# Model water cycle&lt;br /&gt;
water         = .true.&lt;br /&gt;
# Model water cloud formation&lt;br /&gt;
watercond     = .true.&lt;br /&gt;
# Model water precipitation (including coagulation etc.)&lt;br /&gt;
waterrain     = .true.&lt;br /&gt;
# Use simple precipitation scheme?&lt;br /&gt;
precip_scheme = 1&lt;br /&gt;
# Evaporate precipitation?&lt;br /&gt;
evap_prec     = .true.&lt;br /&gt;
# multiplicative constant in Boucher 95 precip scheme&lt;br /&gt;
Cboucher      = 1.&lt;br /&gt;
# Include hydrology ?&lt;br /&gt;
hydrology     = .false.&lt;br /&gt;
# H2O snow (and ice) albedo ?&lt;br /&gt;
albedosnow    = 0.6&lt;br /&gt;
# Maximum sea ice thickness ?&lt;br /&gt;
maxicethick   = 10.&lt;br /&gt;
# Freezing point of seawater (degrees C) ?&lt;br /&gt;
Tsaldiff      = 0.0&lt;br /&gt;
# Evolve surface water sources ?&lt;br /&gt;
sourceevol    = .false.&lt;br /&gt;
&lt;br /&gt;
## CO2 options &lt;br /&gt;
## ~~~~~~~~~~~&lt;br /&gt;
# call CO2 condensation ?&lt;br /&gt;
co2cond       = .false.&lt;br /&gt;
# Set initial temperature profile to 1 K above CO2 condensation everywhere?&lt;br /&gt;
nearco2cond   = .false.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The_gases.def_Input_file|''gases.def'']]: File containing the gas composition of the atmosphere you want to model, with their molar mixing ratios. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
# gases&lt;br /&gt;
5&lt;br /&gt;
H2_&lt;br /&gt;
He_&lt;br /&gt;
CH4&lt;br /&gt;
C2H2&lt;br /&gt;
C2H6&lt;br /&gt;
0.863&lt;br /&gt;
0.134&lt;br /&gt;
0.0018&lt;br /&gt;
1.e-7&lt;br /&gt;
1.e-5&lt;br /&gt;
# First line is number of gases&lt;br /&gt;
# Followed by gas names (always 3 characters)&lt;br /&gt;
# and then molar mixing ratios.&lt;br /&gt;
# mixing ratio -1 means the gas is variable.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[The jupiter_const.def Input File|''jupiter_const.def'']]: Files that gather all orbital and physical parameters of Jupiter.&lt;br /&gt;
&lt;br /&gt;
- [[The_traceur.def_Input_File|''traceur.def'']]: At this time, only two tracers are used for modelling Jupiter atmosphere, so the ''traceur.def'' file is summed up as follow&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
2&lt;br /&gt;
h2o_vap&lt;br /&gt;
h2o_ice&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Two additional files are used to set the running parameter of the simulation itself:'''&lt;br /&gt;
&lt;br /&gt;
- [[The run_icosa.def Input File | ''run_icosa.def'']]: file containing parameters for '''ICOSAGCM''' to execute the simulation, use to determine the [[Advanced Use of the GCM | horizontal and vertical resolutions]], the number of processors, the number of subdivisions, the duration of the simulation, etc.&lt;br /&gt;
&lt;br /&gt;
- ''run.def'': file which brings together all the setting files and will be reading by the interface '''ICOSA_LMDZ''' to link each part of the model ('''ICOSAGCM''', '''LMDZ.GENERIC''') with its particular setting file(s) when the library '''XIOS''' does not take action (through the ''.xml'' files).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
###########################################################################&lt;br /&gt;
### INCLUDE OTHER DEF FILES (physics, specific settings, etc...)&lt;br /&gt;
###########################################################################&lt;br /&gt;
INCLUDEDEF=run_icosa.def&lt;br /&gt;
&lt;br /&gt;
INCLUDEDEF=jupiter_const.def&lt;br /&gt;
&lt;br /&gt;
INCLUDEDEF=callphys.def&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
prt_level=0&lt;br /&gt;
&lt;br /&gt;
## iphysiq must be same as itau_physics&lt;br /&gt;
iphysiq=40&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hot Jupiter with DYNAMICO ==&lt;br /&gt;
&lt;br /&gt;
Modelling the atmosphere of Hot Jupiter is challenging because of the extreme temperature conditions, and the fact that these planets are gas giants. Therefore, using a dynamical core such as Dynamico is strongly recommended. Here, we discuss how to perform a cloudless simulation of the Hot Jupiter WASP-43 b, using Dynamico.&lt;br /&gt;
&lt;br /&gt;
'''1st step''': You need to go to the github mentionned previously for Dynamico: https://github.com/aymeric-spiga/dynamico-giant. ''Git clone'' this repo on your favorite cluster, and ''checkout'' to the &amp;quot;hot_jupiter&amp;quot; branch.&lt;br /&gt;
&lt;br /&gt;
'''2nd step''': Now, run the install.sh script. This script will install '''all''' the required models ('''LMDZ.COMMON''', '''LMDZ.GENERIC''','''ICOSA_LMDZ''','''XIOS''','''FCM''','''ICOSAGCM'''). At this point, you only miss '''IOIPSL'''. To install it, go to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
dynamico-giant/code/LMDZ.COMMON/ioipsl/ &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There, you will find some examples of installations script. You need to create one that will work on your cluster, with your own arch files.&lt;br /&gt;
During the installation of '''IOIPSL''', you might be asked for a login/password. Contact TGCC computing center to get access.&lt;br /&gt;
&lt;br /&gt;
'''3rd step''': Great, now we have all we need to get started. Navigate to the ''hot_jupiter'' folder. You will find a ''compile_mesopsl.sh'' and a ''compile_occigen.sh'' script. Use them as examples to create the compile script adapted to your own cluster, then run it. &lt;br /&gt;
While running, I suggest that you take a look at the ''log_compile'' file. The compilation can take a while (~ 10minutes, especially because of XIOS). On quick trick to make sure that everything went right is to check the number of ''Build command finished'' messages in ''log_compile''. If everything worked out, there should be 6 of them.&lt;br /&gt;
&lt;br /&gt;
'''4th step''': Okay, the model compiled, good job ! Now we need to create the initial condition for our run. In the hot_jupiter1d folder, you already have a ''temp_profile.txt'' computed with the 1D version of the LMDZ.GENERIC (see rcm1d on this page). Thus, no need to recompute a 1D model but it will be needed if you want to model another Hot Jupiter.&lt;br /&gt;
Navigate to the 'makestart' folder, located at &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
dynamico-giant/hot_jupiter/makestart/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To generate the initial conditions for the 3D run, we're gonna start the model using the temperature profile from the 1D run. to do that, you will find a &amp;quot;job_mpi&amp;quot; script. Open it, and adapt it to your cluster and launch the job. This job is using 20 procs, and it runs 5 days of simulations. &lt;br /&gt;
If everything goes well, you should see few netcdf files appear. The important ones are '''start_icosa0.nc''', '''startfi0.nc''' and '''Xhistins.nc'''. &lt;br /&gt;
If you see these files, you're all set to launch a real simulation !&lt;br /&gt;
&lt;br /&gt;
'''5th step''': Go back to ''hot_jupiter'' folder. There are a bunch of script to launch your simulation. Take a look at the ''astro_fat_mpi'' script, and adapt it to your cluster. Then you can launch your simulation by doing &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
./run_astro_fat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will start the simulation, using 90 procs. In the same folder, check if the icosa_lmdz.out file is created. This is the logfile of the simulation, while it is running. You can check there that everything is going well.&lt;br /&gt;
&lt;br /&gt;
'''Important side note''': When using the ''run_astro_fat'' script to run a simulation, it will run a chained simulation, restarting the simulation from the previous state after 100 days of simulations and generating ''Xhistins.nc'' files. This is your results file, where you will find all the variables that controls your atmosphere (temperature field, wind fields, etc..). &lt;br /&gt;
&lt;br /&gt;
Good luck and enjoy the generic PCM Dynamico for Hot Jupiter !&lt;br /&gt;
&lt;br /&gt;
'''2nd important side note''': These 5 steps are the basic needed steps to run a simulation. If you want to tune simulations to another planet, or change other stuff, you need to take a look at '''*.def''' and '''*.xml''' files. If you're lost in all of this, take a look at the different pages of this website and/or contact us !&lt;br /&gt;
Also, you might want to check the wiki on the [https://github.com/aymeric-spiga/dynamico-giant ''Github''], that explains a lot of settings for Dynamico&lt;br /&gt;
&lt;br /&gt;
= 3D LES setup =&lt;br /&gt;
&lt;br /&gt;
== Proxima b with LES ==&lt;br /&gt;
&lt;br /&gt;
To model the subgrid atmospheric turbulence, the [[WRF dynamical core for LES/mesoscale simulations|'''WRF''']] dynamical core coupled with the LMD Generic physics package is used. The first studied conducted was to resolve the convective activity of the substellar point of Proxami-b (Lefevre et al 2021). The impact of the stellar insolation and rotation period were studied. The files for the reference case, with a stellar flux of 880 W/m2 and an 11 days rotation period, are presented&lt;br /&gt;
&lt;br /&gt;
The input_* file are the used to initialize the temperature, pressure, winds and moisture of the domain. &lt;br /&gt;
input_souding : altitude (km), potential temperature, water vapour (kg/kg), u, v&lt;br /&gt;
input_therm : normalized gas constant, isobaric heat capacity, pressure, density, temperature&lt;br /&gt;
input_hr : SW heating, LW heating, Large-scale heating extracted from the GCM. Only the last one is used in this configuration.&lt;br /&gt;
&lt;br /&gt;
The file namelist.input is used to set up the domain parameters (resolution, grid points, etc). The file levels specifies the eta-levels of the vertical domain.&lt;br /&gt;
&lt;br /&gt;
Planet is used set up the atmospheric parameters, in order : gravity (m/s2), isobaric heat capacity (J/kg/K), molecular mass (g/mol), reference temperature (K), surface pressure (Pa), planet radius (m) and planet rotation rate (s-1).&lt;br /&gt;
&lt;br /&gt;
The files *.def are the parameter for the physics. Compared to GCM runs, the convective adjustment in callphys.def is turned off&lt;br /&gt;
&lt;br /&gt;
The file controle.txt, equivalent of the field controle in GCM start.nc, needed to initialize some physics constants.&lt;br /&gt;
&lt;br /&gt;
TBC ML&lt;br /&gt;
&lt;br /&gt;
= 1D setups =&lt;br /&gt;
&lt;br /&gt;
== rcm1d program ==&lt;br /&gt;
&lt;br /&gt;
Running the model in 1D (i.e. considering simply a column of atmosphere) is a common first step to test a new setup. To do so, you first have to compile the 1D version of the model. The command line is very similar to [[Quick_Install_and_Run#Compiling a test case (early Mars)|the one for the 3D]], except for 2 changes:&lt;br /&gt;
# put just the vertical resolution after the -d option (&amp;quot;VERT&amp;quot; instead of ''LON''x''LAT''x''VERT'' for the 3D case)&lt;br /&gt;
# at the end of the line, replace &amp;quot;gcm&amp;quot; with &amp;quot;rcm1d&amp;quot;&lt;br /&gt;
It will generate a file called '''rcm1d_XX_phyxxx_seq.e''', where ''XX'' and ''phyxxx'' are the vertical resolution and the physics package, respectively.&lt;br /&gt;
&lt;br /&gt;
Check out the [[Generic unicolumn rcm1d program| dedicated page about rcm1d]] for more details.&lt;br /&gt;
&lt;br /&gt;
Note that the '''.def''' files differ a bit from the 3D case. Indeed, [[The_run.def_Input_File|'''run.def''']] contains different information and needs to hold the key &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt;; see [[The_rcm1d.def_Input_File|'''rcm1d.def''']]. In addition, the 1D model generally does not use [[The_start.nc_and_startfi.nc_input_files|'''start.nc''']] or [[The_start.nc_and_startfi.nc_input_files|'''startfi.nc''']] files to initialize. You can find examples of 1D configuration in ''LMDZ.GENERIC/deftank'' (e.g. '''run.def.earlymars1d''', '''run.def.earth1d'''), the best thing is to have a look at them.&lt;br /&gt;
&lt;br /&gt;
== kcm1d program ==&lt;br /&gt;
&lt;br /&gt;
Our 1-D inverse model&lt;br /&gt;
&lt;br /&gt;
TBD by Guillaume or Martin&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-DYNAMICO]]&lt;br /&gt;
[[Category:Generic-WRF]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3278</id>
		<title>The rcm1d.def Input File</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3278"/>
				<updated>2026-06-12T13:16:22Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* some general comments and disambiguation to start with */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The run.def input file and its format ==&lt;br /&gt;
&lt;br /&gt;
=== some general comments and disambiguation to start with ===&lt;br /&gt;
This pages specifically focuses on the ''run.def'' file used by the 1D version of the Generic PCM. &lt;br /&gt;
&lt;br /&gt;
The run.def file is very similar to the [[The_run.def_Input_File|'''run.def''']] file, with the difference that the 3D options (linked to the dynamic core) are not used, and a whole bunch of new 1D-specific options (information contained in the start and startfi files) are now in the 1D run.def file. Especially, the 1D file has to hold the key &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Reference def files ==&lt;br /&gt;
Reference *.def files are provided in the LMDZ.GENERIC/deftank directory&lt;br /&gt;
&lt;br /&gt;
== Outputted used_*def files ==&lt;br /&gt;
When the GCM run finishes, for each of the input def files *.def, an ASCII output file '''used_*.def''' is generated (in practice this would be '''used_run.def''' and '''used_callphys.def''' for the 1D simulations). These files contain, along the same format as the *.def input files, the &amp;quot;key = value&amp;quot; that were used, along with comments about whether &amp;quot;value&amp;quot; was read in the input def file or if the code default was used (i.e. the sought &amp;quot;keyword&amp;quot; was not present in the input def files).&lt;br /&gt;
&lt;br /&gt;
== Example of 1D ''run.def'' file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#---------------------------------#&lt;br /&gt;
# Run parameters for the 1D model #                                         &lt;br /&gt;
#---------------------------------#&lt;br /&gt;
&lt;br /&gt;
run_1d=.true.&lt;br /&gt;
&lt;br /&gt;
## Planetary constants&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## NB: those are mandatory&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## LENGTH OF A DAY in s&lt;br /&gt;
daysec         = 86400.&lt;br /&gt;
## GRAVITY in m s-2&lt;br /&gt;
g              = 3.72&lt;br /&gt;
## Radius of the planet, in m&lt;br /&gt;
rad = 3390000&lt;br /&gt;
## LENGTH OF A YEAR in days&lt;br /&gt;
year_day       = 3000&lt;br /&gt;
## MIN DIST STAR-PLANET in AU [periastron]&lt;br /&gt;
periastr       = 1.0&lt;br /&gt;
## MAX DIST STAR-PLANET in AU [apoastron]&lt;br /&gt;
apoastr        = 1.0&lt;br /&gt;
## DATE OF PERIASTRON in days&lt;br /&gt;
peri_day       = 0.&lt;br /&gt;
## OBLIQUITY in deg&lt;br /&gt;
obliquit       = 0.&lt;br /&gt;
## SURFACE PRESSURE in Pa&lt;br /&gt;
psurf          = 100000.&lt;br /&gt;
&lt;br /&gt;
## Time integration parameters&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Initial date (in solar days,=0 at Ls=0)&lt;br /&gt;
day0           = 0&lt;br /&gt;
# Initial local time (in hours, between 0 and 24)&lt;br /&gt;
time           = 12 &lt;br /&gt;
# Number of time steps per sol&lt;br /&gt;
day_step       = 40&lt;br /&gt;
# Number of sols to run &lt;br /&gt;
ndt            = 1000&lt;br /&gt;
# Number of steps between each writing in diagfi &lt;br /&gt;
diagfi_output_rate=12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Vertical levels&lt;br /&gt;
## ~~~~~~~~~~~~~~~&lt;br /&gt;
# hybrid vertical coordinate ? (.true. for hybrid and .false. for sigma levels)&lt;br /&gt;
hybrid         = .true.&lt;br /&gt;
# autocompute vertical discretisation? (useful for exoplanet runs)&lt;br /&gt;
autozlevs      = .false.&lt;br /&gt;
# Ceiling pressure (Pa) ?&lt;br /&gt;
pceil          = 0.00001&lt;br /&gt;
&lt;br /&gt;
## Thermal properties&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Simulate global averaged conditions ? &lt;br /&gt;
global1d       = .true.&lt;br /&gt;
# Latitude (deg) [only used if global1d = F]&lt;br /&gt;
latitude       = 0.0&lt;br /&gt;
# Solar Zenith angle (deg) [only used if global1d = T]&lt;br /&gt;
szangle        = 60. &lt;br /&gt;
# Force specific heat capacity and molecular mass values&lt;br /&gt;
force_cpp      = .false.&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if force_cpp = T]&lt;br /&gt;
cpp            = 0.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if force_cpp = T]&lt;br /&gt;
mugaz          = 18.&lt;br /&gt;
# Albedo of bare ground&lt;br /&gt;
albedo         = 0.1&lt;br /&gt;
# Emissivity of bare ground&lt;br /&gt;
emis           = 1.0&lt;br /&gt;
# Soil thermal inertia (SI)&lt;br /&gt;
inertia        = 1000.&lt;br /&gt;
# Initial CO2 ice on the surface (kg.m-2)&lt;br /&gt;
co2ice         = 0.&lt;br /&gt;
&lt;br /&gt;
## Wind profile&lt;br /&gt;
## ~~~~~~~~~~~~&lt;br /&gt;
## zonal eastward component of the geostrophic wind (m/s)&lt;br /&gt;
u              = 10.&lt;br /&gt;
# meridional northward component of the geostrophic wind (m/s)&lt;br /&gt;
v              = 0.&lt;br /&gt;
&lt;br /&gt;
## Initial atmospheric temperature profile&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
#&lt;br /&gt;
# Type of initial temperature profile&lt;br /&gt;
#         ichoice=1   Constant Temperature:  T=tref&lt;br /&gt;
#         [Mars] ichoice=2   Savidjari profile (as Seiff but with dT/dz=cte)&lt;br /&gt;
#         [Mars] ichoice=3   Lindner (polar profile)&lt;br /&gt;
#         [Mars] ichoice=4   inversion&lt;br /&gt;
#         [Mars] ichoice=5   Seiff  (standard profile, based on Viking entry)&lt;br /&gt;
#         ichoice=6   constant T  +  gaussian perturbation (levels)&lt;br /&gt;
#         ichoice=7   constant T  + gaussian perturbation (km)&lt;br /&gt;
#         ichoice=8   Read in an ascii file &amp;quot;profile&amp;quot; &lt;br /&gt;
ichoice        = 1&lt;br /&gt;
# Reference temperature tref (K)&lt;br /&gt;
tref           = 300. &lt;br /&gt;
# Add a perturbation to profile if isin=1&lt;br /&gt;
isin           = 0&lt;br /&gt;
# peak of gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
pic            = 26.522&lt;br /&gt;
# width of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
largeur        = 10&lt;br /&gt;
# height of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
hauteur        = 30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
* Lines beginning with a hashtag are comments&lt;br /&gt;
* values associated to keywords may be logicals, integers, reals or even strings&lt;br /&gt;
* The parsing is case-sensitive : &amp;quot;thisparameter=&amp;quot; and &amp;quot;ThisParameter=&amp;quot; are identified as two distinct keywords&lt;br /&gt;
* The order in which the parameters are given in the file does not matter (except if a parameter is specified multiple times, clearly a bad idea, and then the last occurrence will prevail).&lt;br /&gt;
* Accessing a parameter and its value from ''run.def'' in the Fortran code is done using the '''getin_p''' routine, e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
       call getin_p(&amp;quot;keyword&amp;quot;,val)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will look for the line with &amp;quot;keyword = &amp;quot; in file ''run.def'' and extract trailing value which will be use to set the value of the  '''val''' variable in the code.&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;br /&gt;
[[Category:WhatIs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3277</id>
		<title>The rcm1d.def Input File</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=The_rcm1d.def_Input_File&amp;diff=3277"/>
				<updated>2026-06-12T13:11:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The run.def input file and its format ==&lt;br /&gt;
&lt;br /&gt;
=== some general comments and disambiguation to start with ===&lt;br /&gt;
This pages specifically focuses on the ''run.def'' file used by the 1D version of the Generic PCM. &lt;br /&gt;
&lt;br /&gt;
The run.def file is very similar to the [[The_run.def_Input_File|'''run.def''']] file, with the difference that the 3D options (linked to the dynamic core) are not used, and a whole bunch of new 1D-specific options (information contained in the start and startfi files) are now in the 1D run.def file. Especially, the 1D file has to hold the &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
== Reference def files ==&lt;br /&gt;
Reference *.def files are provided in the LMDZ.GENERIC/deftank directory&lt;br /&gt;
&lt;br /&gt;
== Outputted used_*def files ==&lt;br /&gt;
When the GCM run finishes, for each of the input def files *.def, an ASCII output file '''used_*.def''' is generated (in practice this would be '''used_run.def''' and '''used_callphys.def''' for the 1D simulations). These files contain, along the same format as the *.def input files, the &amp;quot;key = value&amp;quot; that were used, along with comments about whether &amp;quot;value&amp;quot; was read in the input def file or if the code default was used (i.e. the sought &amp;quot;keyword&amp;quot; was not present in the input def files).&lt;br /&gt;
&lt;br /&gt;
== Example of 1D ''run.def'' file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#---------------------------------#&lt;br /&gt;
# Run parameters for the 1D model #                                         &lt;br /&gt;
#---------------------------------#&lt;br /&gt;
&lt;br /&gt;
run_1d=.true.&lt;br /&gt;
&lt;br /&gt;
## Planetary constants&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## NB: those are mandatory&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
## LENGTH OF A DAY in s&lt;br /&gt;
daysec         = 86400.&lt;br /&gt;
## GRAVITY in m s-2&lt;br /&gt;
g              = 3.72&lt;br /&gt;
## Radius of the planet, in m&lt;br /&gt;
rad = 3390000&lt;br /&gt;
## LENGTH OF A YEAR in days&lt;br /&gt;
year_day       = 3000&lt;br /&gt;
## MIN DIST STAR-PLANET in AU [periastron]&lt;br /&gt;
periastr       = 1.0&lt;br /&gt;
## MAX DIST STAR-PLANET in AU [apoastron]&lt;br /&gt;
apoastr        = 1.0&lt;br /&gt;
## DATE OF PERIASTRON in days&lt;br /&gt;
peri_day       = 0.&lt;br /&gt;
## OBLIQUITY in deg&lt;br /&gt;
obliquit       = 0.&lt;br /&gt;
## SURFACE PRESSURE in Pa&lt;br /&gt;
psurf          = 100000.&lt;br /&gt;
&lt;br /&gt;
## Time integration parameters&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Initial date (in solar days,=0 at Ls=0)&lt;br /&gt;
day0           = 0&lt;br /&gt;
# Initial local time (in hours, between 0 and 24)&lt;br /&gt;
time           = 12 &lt;br /&gt;
# Number of time steps per sol&lt;br /&gt;
day_step       = 40&lt;br /&gt;
# Number of sols to run &lt;br /&gt;
ndt            = 1000&lt;br /&gt;
# Number of steps between each writing in diagfi &lt;br /&gt;
diagfi_output_rate=12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Vertical levels&lt;br /&gt;
## ~~~~~~~~~~~~~~~&lt;br /&gt;
# hybrid vertical coordinate ? (.true. for hybrid and .false. for sigma levels)&lt;br /&gt;
hybrid         = .true.&lt;br /&gt;
# autocompute vertical discretisation? (useful for exoplanet runs)&lt;br /&gt;
autozlevs      = .false.&lt;br /&gt;
# Ceiling pressure (Pa) ?&lt;br /&gt;
pceil          = 0.00001&lt;br /&gt;
&lt;br /&gt;
## Thermal properties&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~&lt;br /&gt;
# Simulate global averaged conditions ? &lt;br /&gt;
global1d       = .true.&lt;br /&gt;
# Latitude (deg) [only used if global1d = F]&lt;br /&gt;
latitude       = 0.0&lt;br /&gt;
# Solar Zenith angle (deg) [only used if global1d = T]&lt;br /&gt;
szangle        = 60. &lt;br /&gt;
# Force specific heat capacity and molecular mass values&lt;br /&gt;
force_cpp      = .false.&lt;br /&gt;
# Specific heat capacity in J K-1 kg-1 [only used if force_cpp = T]&lt;br /&gt;
cpp            = 0.&lt;br /&gt;
# Molecular mass in g mol-1 [only used if force_cpp = T]&lt;br /&gt;
mugaz          = 18.&lt;br /&gt;
# Albedo of bare ground&lt;br /&gt;
albedo         = 0.1&lt;br /&gt;
# Emissivity of bare ground&lt;br /&gt;
emis           = 1.0&lt;br /&gt;
# Soil thermal inertia (SI)&lt;br /&gt;
inertia        = 1000.&lt;br /&gt;
# Initial CO2 ice on the surface (kg.m-2)&lt;br /&gt;
co2ice         = 0.&lt;br /&gt;
&lt;br /&gt;
## Wind profile&lt;br /&gt;
## ~~~~~~~~~~~~&lt;br /&gt;
## zonal eastward component of the geostrophic wind (m/s)&lt;br /&gt;
u              = 10.&lt;br /&gt;
# meridional northward component of the geostrophic wind (m/s)&lt;br /&gt;
v              = 0.&lt;br /&gt;
&lt;br /&gt;
## Initial atmospheric temperature profile&lt;br /&gt;
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
#&lt;br /&gt;
# Type of initial temperature profile&lt;br /&gt;
#         ichoice=1   Constant Temperature:  T=tref&lt;br /&gt;
#         [Mars] ichoice=2   Savidjari profile (as Seiff but with dT/dz=cte)&lt;br /&gt;
#         [Mars] ichoice=3   Lindner (polar profile)&lt;br /&gt;
#         [Mars] ichoice=4   inversion&lt;br /&gt;
#         [Mars] ichoice=5   Seiff  (standard profile, based on Viking entry)&lt;br /&gt;
#         ichoice=6   constant T  +  gaussian perturbation (levels)&lt;br /&gt;
#         ichoice=7   constant T  + gaussian perturbation (km)&lt;br /&gt;
#         ichoice=8   Read in an ascii file &amp;quot;profile&amp;quot; &lt;br /&gt;
ichoice        = 1&lt;br /&gt;
# Reference temperature tref (K)&lt;br /&gt;
tref           = 300. &lt;br /&gt;
# Add a perturbation to profile if isin=1&lt;br /&gt;
isin           = 0&lt;br /&gt;
# peak of gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
pic            = 26.522&lt;br /&gt;
# width of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
largeur        = 10&lt;br /&gt;
# height of the gaussian perturbation (for ichoice=6 or 7)&lt;br /&gt;
hauteur        = 30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
* Lines beginning with a hashtag are comments&lt;br /&gt;
* values associated to keywords may be logicals, integers, reals or even strings&lt;br /&gt;
* The parsing is case-sensitive : &amp;quot;thisparameter=&amp;quot; and &amp;quot;ThisParameter=&amp;quot; are identified as two distinct keywords&lt;br /&gt;
* The order in which the parameters are given in the file does not matter (except if a parameter is specified multiple times, clearly a bad idea, and then the last occurrence will prevail).&lt;br /&gt;
* Accessing a parameter and its value from ''run.def'' in the Fortran code is done using the '''getin_p''' routine, e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
       call getin_p(&amp;quot;keyword&amp;quot;,val)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will look for the line with &amp;quot;keyword = &amp;quot; in file ''run.def'' and extract trailing value which will be use to set the value of the  '''val''' variable in the code.&lt;br /&gt;
&lt;br /&gt;
[[Category:Inputs]]&lt;br /&gt;
[[Category:WhatIs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-LMDZ]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3276</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3276"/>
				<updated>2026-06-12T13:09:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is suitable for 1D: see [[The rcm1d.def Input File]]. Especially, the file has to hold the &amp;lt;code&amp;gt;run_1d=.true.&amp;lt;/code&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3275</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3275"/>
				<updated>2026-06-12T13:09:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is suitable for 1D: see [[The rcm1d.def Input File]]. Especially, the file has to hold the &amp;lt;code&amp;gt;run_1d.def=.true.&amp;lt;/code&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3274</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3274"/>
				<updated>2026-06-12T12:50:38Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is suitable for 1D: see [[The rcm1d.def Input File]]. Especially, the file has to hold the 'run_1d.def=.true.' key.&lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3273</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3273"/>
				<updated>2026-06-12T12:32:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Outputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is suitable for 1D: see [[The rcm1d.def Input File]].&lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3272</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3272"/>
				<updated>2026-06-12T12:32:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is suitable for 1D: see [[The rcm1d.def Input File]].&lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart1D.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3271</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3271"/>
				<updated>2026-06-12T12:32:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is suitable for 1D: see [[The rcm1d.def Input File]].&lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart1D.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart1D.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3270</id>
		<title>Generic unicolumn rcm1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Generic_unicolumn_rcm1d_program&amp;diff=3270"/>
				<updated>2026-06-12T12:30:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Gneric PCM in a uni-column (aka &amp;quot;single-column&amp;quot;) configuration: this can be done via the '''rcm1d''' program; quite useful form some first studies but also when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''rcm1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Generic lon-lat PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''rcm1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 26 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that it is possible to compile and run with the XIOS library, which will require compiling in &amp;quot;mpi&amp;quot; mode (required by XIOS), even though the run will be serial:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 26 -p generic -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Just like the 3D GCM, the ''rcm1d'' program needs some inputs to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is similar to the 3D [[The run.def Input File|run.def]]; see [[The rcm1d.def Input File]]. In practice the &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; file is in fact copied as &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; by the rcm1d program when it runs. &lt;br /&gt;
&lt;br /&gt;
Unlike the 3D GCMs, the ''rcm1d'' program can run without any start files, which is its default (&amp;lt;code&amp;gt;restart=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. At the end of a 1D simulation, ''rcm1d'' outputs a restart file '''restart1D.nc''' which can be used as an initial condition for a following run.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;restart=.true.&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; then the program will look for start files '''start1D.nc''' and '''startfi.nc''' and use these as initial conditions.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
If compiled without XIOS then ''rcm1d'' will output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files, just like the 3D GCM and the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
Likewise if compiled with XIOS then ''rcm1d'' will output all files as specified in the relevant xml files, just like the 3D GCM.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, at the end of a simulation &amp;lt;code&amp;gt;rcm1d&amp;lt;/code&amp;gt; also outputs a '''restart1D.nc''' file containing the final computed state.&lt;br /&gt;
&lt;br /&gt;
[[Category:Generic-Model]]&lt;br /&gt;
[[Category:Generic-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3240</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3240"/>
				<updated>2026-03-30T09:00:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Outputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the PEM dedicated to the Mars planet; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./pem_workflow.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to resume a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''pem_workflow.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_pcm.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'' and ''start.nc''/''start1D.txt'';&lt;br /&gt;
* the necessary PEM files: ''pem_workflow.sh'', ''pem_workflow_lib.sh'', ''pcm_run.job'', ''pem_run.job'', ''run_pem.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagevo.def'' to define the PEM variables to be ouputted and ''startevo.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''pem_workflow.sh'', the user has to specify:&lt;br /&gt;
#* '''n_planetary_years''' or '''n_earth_years''': the number of planetary/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''n_pcm_runs_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''n_pcm_runs''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''exec_mode''': the execution mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''pcm_run.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pcm_exe''', the name of the PCM executable file should be adapted.&lt;br /&gt;
#* '''exec_cmd''', the execution command should also be adapted according to the set-up.&lt;br /&gt;
# In ''pem_run.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pem_exe''', the name of the PEM executable file should be adapted.&lt;br /&gt;
#* '''pem_arg''' which is an optional argument for the PEM executable. It should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_pem.def'', ''run_pcm.def'' and ''callphys.def'' which must be consistent. In particular, ''run_pem.def'' needs to include some definitions in file ''run_pcm.def'' and ''callphys.def'' with &amp;lt;code&amp;gt;INCLUDEDEF=run_pcm.def&amp;lt;/code&amp;gt;.&lt;br /&gt;
The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''ini_pem_orbit.sh''' can do it automatically reading ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc''/''restart1D.txt'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''xoutdaily4pem*.nc''/''xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''pem_workflow.log'', ''pem_workflow.sts'' and possibly ''kill_pem_workflow.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''restartevo.nc'', ''restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagevo.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_pem_workflow.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3234</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3234"/>
				<updated>2026-03-05T09:19:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the PEM dedicated to the Mars planet; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./pem_workflow.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to resume a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''pem_workflow.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_pcm.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'' and ''start.nc''/''start1D.txt'';&lt;br /&gt;
* the necessary PEM files: ''pem_workflow.sh'', ''pem_workflow_lib.sh'', ''pcm_run.job'', ''pem_run.job'', ''run_pem.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagevo.def'' to define the PEM variables to be ouputted and ''startevo.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''pem_workflow.sh'', the user has to specify:&lt;br /&gt;
#* '''n_planetary_years''' or '''n_earth_years''': the number of planetary/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''n_pcm_runs_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''n_pcm_runs''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''exec_mode''': the execution mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''pcm_run.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pcm_exe''', the name of the PCM executable file should be adapted.&lt;br /&gt;
#* '''exec_cmd''', the execution command should also be adapted according to the set-up.&lt;br /&gt;
# In ''pem_run.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pem_exe''', the name of the PEM executable file should be adapted.&lt;br /&gt;
#* '''pem_arg''' which is an optional argument for the PEM executable. It should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_pem.def'', ''run_pcm.def'' and ''callphys.def'' which must be consistent. In particular, ''run_pem.def'' needs to include some definitions in file ''run_pcm.def'' and ''callphys.def'' with &amp;lt;code&amp;gt;INCLUDEDEF=run_pcm.def&amp;lt;/code&amp;gt;.&lt;br /&gt;
The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''ini_pem_orbit.sh''' can do it automatically reading ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc''/''restart1D.txt'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''pem_workflow.log'', ''pem_workflow.sts'' and possibly ''kill_pem_workflow.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''restartevo.nc'', ''restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagevo.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_pem_workflow.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3233</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3233"/>
				<updated>2026-03-05T09:18:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the PEM dedicated to the Mars planet; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./pem_workflow.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to resume a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''pem_workflow.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_pcm.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'' and ''start.nc''/''start1D.txt'';&lt;br /&gt;
* the necessary PEM files: ''pem_workflow.sh'', ''pem_workflow_lib.sh'', ''pcm_run.job'', ''pem_run.job'', ''run_pem.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagevo.def'' to define the PEM variables to be ouputted and ''startevo.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''pem_workflow.sh'', the user has to specify:&lt;br /&gt;
#* '''n_planetary_years''' or '''n_earth_years''': the number of planetary/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''n_pcm_runs_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''n_pcm_runs''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''exec_mode''': the execution mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''pcm_run.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pcm_exe''', the name of the PCM executable file should be adapted.&lt;br /&gt;
#* '''exec_cmd''', the execution command should also be adapted according to the set-up.&lt;br /&gt;
# In ''pem_run.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pem_exe''', the name of the PEM executable file should be adapted.&lt;br /&gt;
#* '''pem_arg''' which is an optional argument for the PEM executable. It should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_pem.def'', ''run_pcm.def'' and ''callphys.def'' which must be consistent. In particular, ''run_pem.def'' needs to include some definitions in file ''run_pcm.def'' and &amp;quot;callphys.def&amp;quot; with &amp;lt;code&amp;gt;INCLUDEDEF=run_pcm.def&amp;lt;/code&amp;gt;.&lt;br /&gt;
The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''ini_pem_orbit.sh''' can do it automatically reading ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc''/''restart1D.txt'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''pem_workflow.log'', ''pem_workflow.sts'' and possibly ''kill_pem_workflow.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''restartevo.nc'', ''restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagevo.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_pem_workflow.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=3232</id>
		<title>Tool Box Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=3232"/>
				<updated>2026-03-04T09:23:36Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are few tools provided along the PEM which can be found in the directory &amp;lt;code&amp;gt;LMDZ.COMMON/libf/evolution/deftank/&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;README&amp;lt;/code&amp;gt; text file gives information about the different files that this directory contains.&lt;br /&gt;
&lt;br /&gt;
The current tools available for the PEM in this directory are:&lt;br /&gt;
* &amp;lt;code&amp;gt;clean.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;concat_pem.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ini_pem_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_var.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;multiple_exec.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_layering_evo.py &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The purpose of these tools is described in the sections below. Their usage is quite straightforward and all the parameters to be modified by the user are always gathered at the beginning of the file, in the header, with short explanations.&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== Cleaning of files ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;clean.sh&amp;lt;/code&amp;gt; cleans the folder after a PEM simulation and reset the initial starting files to prepare a new simulation.&lt;br /&gt;
&lt;br /&gt;
=== Initialization of orbital parameters ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;ini_pem_orbit.sh&amp;lt;/code&amp;gt; sets the orbital parameters of a file ''startfi.nc'' from Laskar's data contained in ''obl_ecc_lsp.asc'' according to the initial date 'year_earth_bp_ini' defined in ''run_PEM.def''. See also &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting the orbital parameters ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt; allows to modify orbital parameters in the file ''startfi.nc''. They should be consistent with Laskar's data in ''obl_ecc_lsp.asc'' at the same date if orbital parameters are meant to vary during the simulation. See also &amp;lt;code&amp;gt;ini_pem_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting a variable in a NetCDF file ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; modifies the value of a variable in a file ''startfi.nc''.&lt;br /&gt;
&lt;br /&gt;
=== Lauching multiple simulations ===&lt;br /&gt;
&lt;br /&gt;
The bash script &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; executes multiple scripts in subdirectories. It is useful to launch multiple simulations at once.&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== Merging the PEM outputs ===&lt;br /&gt;
&lt;br /&gt;
The Python script &amp;lt;code&amp;gt;concat_pem.py&amp;lt;/code&amp;gt; allows to concatenate along the variable 'Time' all the ''diagevo'' files (PEM outputs) into one NetCDF file. 'Time' is re-indexed with the numbering of Martian years simulated by the PEM run. It is useful if one wants to visualize and analyse the evolution of variables during all the PEM runs of the chained simulation.&lt;br /&gt;
&lt;br /&gt;
=== Layering visualization ===&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_layering.py&amp;lt;/code&amp;gt; outputs the stratification data from the ''startevo.nc'' files.&lt;br /&gt;
&lt;br /&gt;
=== Layering visualization over time ===&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_layering_evo.py&amp;lt;/code&amp;gt; outputs the stratification data over time from the ''startevo.nc'' files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Mars_1D_testphys1d_program&amp;diff=3231</id>
		<title>Mars 1D testphys1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Mars_1D_testphys1d_program&amp;diff=3231"/>
				<updated>2026-03-03T10:55:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Mars PCM in a &amp;quot;single-column&amp;quot; configuration: this is the so-called 1D Mars PCM whose program is '''testphys1d'''. It is quite useful for some studies and or when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''testphys1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Mars PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''testphys1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 54 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 54 -p mars testphys1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Like the ''gcm'' program, the ''testphys1d'' program needs some inputs to be able to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is similar to the one for the 3D PCM described here [[The run.def Input File]]. It has to be be adapted to the 1D case. An example file, called &amp;lt;code&amp;gt;run.def.1d&amp;lt;/code&amp;gt;, is available in &amp;lt;code&amp;gt;LMDZ.MARS/deftank&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unlike the ''gcm'' program, the ''testphys1d'' program can run without start files, that is without &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt;.&lt;br /&gt;
This is the case by default (&amp;lt;code&amp;gt;startfiles_1D=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. In addition one can also provide a similar ''profile_temp'' file containing an initial temperature profile (first line should then contain the surface temperature value).&lt;br /&gt;
When the program ends, it will produce by its own a &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; file initialized with the default settings.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;code&amp;gt;startfiles_1D=.true.&amp;lt;/code&amp;gt; set in the &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt;, the program will look for starting files, that is a &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;start1D.txt&amp;lt;/code&amp;gt; file. If the starting files are present, it will read them to initialize the run accordingly. Otherwise, it will start as in the previous (default) case. In any cases, the program will create a &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;restart1D.txt&amp;lt;/code&amp;gt; file at the end of the run.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;start1D.txt&amp;lt;/code&amp;gt; is specific to the 1D model. An example can be found in &amp;lt;code&amp;gt;LMDZ.MARS/startfiles&amp;lt;/code&amp;gt;. The content is organized such that each line holds a header, to make the file human readable, and then values.&lt;br /&gt;
* First line is for pressure variables with header '''ps''' and the values are ''ps'', ''pa'' and ''preff''.&lt;br /&gt;
* The following lines define each tracer, in the same apparition order used in &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt;. The header is the '''tracer name''' and the values are the ones for each atmospheric layer.&lt;br /&gt;
* Next two lines are for winds. The headers are '''u''' and '''v''' for zonal and meridional wind respectively, and the values are the ones for each atmospheric layer.&lt;br /&gt;
* Last line is for potential temperature with header '''teta''' and values are the ones for each atmospheric layer.&lt;br /&gt;
When the values describe the atmospheric profile, then there must be as many as atmospheric layers defined by the user (vertical resolution).&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
The program ''testphys1d'' can output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files. Just like for the 3D PCM model, the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
&lt;br /&gt;
As described in the previous section, if &amp;lt;code&amp;gt;startfiles_1D=.true.&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt;, then ''testphys1d'' will create a &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;restart1D.txt&amp;lt;/code&amp;gt; file at the end of the run. &lt;br /&gt;
This option is particularly useful when one wants to make chained simulations with the 1D model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mars-Model]]&lt;br /&gt;
[[Category:Mars-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3230</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3230"/>
				<updated>2026-03-03T09:48:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the PEM dedicated to the Mars planet; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./pem_workflow.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to resume a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''pem_workflow.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_pcm.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'' and ''start.nc''/''start1D.txt'';&lt;br /&gt;
* the necessary PEM files: ''pem_workflow.sh'', ''pem_workflow_lib.sh'', ''pcm_run.job'', ''pem_run.job'', ''run_pem.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagevo.def'' to define the PEM variables to be ouputted and ''startevo.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''pem_workflow.sh'', the user has to specify:&lt;br /&gt;
#* '''n_planetary_years''' or '''n_earth_years''': the number of planetary/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''n_pcm_runs_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''n_pcm_runs''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''exec_mode''': the execution mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''pcm_run.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pcm_exe''', the name of the PCM executable file should be adapted.&lt;br /&gt;
#* '''exec_cmd''', the execution command should also be adapted according to the set-up.&lt;br /&gt;
# In ''pem_run.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pem_exe''', the name of the PEM executable file should be adapted.&lt;br /&gt;
#* '''pem_arg''' which is an optional argument for the PEM executable. It should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_pem.def'', ''run_pcm.def'' and ''callphys.def'' which must be consistent. In particular, ''run_pem.def'' needs to include some definitions for the physics in file ''run_pcm.def'' with &amp;lt;code&amp;gt;INCLUDEDEF=run_pcm.def&amp;lt;/code&amp;gt;.&lt;br /&gt;
The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''ini_pem_orbit.sh''' can do it automatically reading ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc''/''restart1D.txt'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''pem_workflow.log'', ''pem_workflow.sts'' and possibly ''kill_pem_workflow.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''restartevo.nc'', ''restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagevo.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_pem_workflow.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=3229</id>
		<title>Tool Box Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=3229"/>
				<updated>2026-03-03T09:48:11Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are few tools provided along the PEM which can be found in the directory &amp;lt;code&amp;gt;LMDZ.COMMON/libf/evolution/deftank/&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;README&amp;lt;/code&amp;gt; text file gives information about the different files that this directory contains.&lt;br /&gt;
&lt;br /&gt;
The current tools available for the PEM in this directory are:&lt;br /&gt;
* &amp;lt;code&amp;gt;clean.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;concat_pem.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ini_pem_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_var.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;multiple_exec.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_evol_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The purpose of these tools is described in the sections below. Their usage is quite straightforward and all the parameters to be modified by the user are always gathered at the beginning of the file, in the header, with short explanations.&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== Cleaning of files ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;clean.sh&amp;lt;/code&amp;gt; cleans the folder after a PEM simulation and reset the initial starting files to prepare a new simulation.&lt;br /&gt;
&lt;br /&gt;
=== Initialization of orbital parameters ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;ini_pem_orbit.sh&amp;lt;/code&amp;gt; sets the orbital parameters of a file ''startfi.nc'' from Laskar's data contained in ''obl_ecc_lsp.asc'' according to the initial date 'year_earth_bp_ini' defined in ''run_PEM.def''. See also &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting the orbital parameters ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt; allows to modify orbital parameters in the file ''startfi.nc''. They should be consistent with Laskar's data in ''obl_ecc_lsp.asc'' at the same date if orbital parameters are meant to vary during the simulation. See also &amp;lt;code&amp;gt;ini_pem_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting a variable in a NetCDF file ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; modifies the value of a variable in a file ''startfi.nc''.&lt;br /&gt;
&lt;br /&gt;
=== Lauching multiple simulations ===&lt;br /&gt;
&lt;br /&gt;
The bash script &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; executes multiple scripts in subdirectories. It is useful to launch multiple simulations at once.&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== Merging the PEM outputs ===&lt;br /&gt;
&lt;br /&gt;
The Python script &amp;lt;code&amp;gt;concat_pem.py&amp;lt;/code&amp;gt; allows to concatenate along the variable 'Time' all the ''diagevo'' files (PEM outputs) into one NetCDF file. 'Time' is re-indexed with the numbering of Martian years simulated by the PEM run. It is useful if one wants to visualize and analyse the evolution of variables during all the PEM runs of the chained simulation.&lt;br /&gt;
&lt;br /&gt;
=== Layering visualization over time ===&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_evol_layering.py&amp;lt;/code&amp;gt; outputs the stratification data over time from the ''startevo.nc'' files.&lt;br /&gt;
&lt;br /&gt;
=== Layering visualization ===&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_layering.py&amp;lt;/code&amp;gt; outputs the stratification data from the ''startevo.nc'' files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3228</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3228"/>
				<updated>2026-02-27T09:08:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the PEM dedicated to the Mars planet; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./pem_workflow.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to resume a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''pem_workflow.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_pcm.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'' and ''start.nc''/''start1D.txt'';&lt;br /&gt;
* the necessary PEM files: ''pem_workflow.sh'', ''pem_workflow_lib.sh'', ''pcm_run.job'', ''pem_run.job'', ''run_pem.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagevol.def'' to define the PEM variables to be ouputted and ''startevol.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''pem_workflow.sh'', the user has to specify:&lt;br /&gt;
#* '''n_planetary_years''' or '''n_earth_years''': the number of planetary/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''n_pcm_runs_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''n_pcm_runs''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''exec_mode''': the execution mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''pcm_run.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pcm_exe''', the name of the PCM executable file should be adapted.&lt;br /&gt;
#* '''exec_cmd''', the execution command should also be adapted according to the set-up.&lt;br /&gt;
# In ''pem_run.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source the arch file''' should be adapted to the machine.&lt;br /&gt;
#* '''pem_exe''', the name of the PEM executable file should be adapted.&lt;br /&gt;
#* '''pem_arg''' which is an optional argument for the PEM executable. It should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_pem.def'', ''run_pcm.def'' and ''callphys.def'' which must be consistent. In particular, ''run_pem.def'' needs to include some definitions for the physics in file ''run_pcm.def'' with &amp;lt;code&amp;gt;INCLUDEDEF=run_pcm.def&amp;lt;/code&amp;gt;.&lt;br /&gt;
The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''ini_pem_orbit.sh''' can do it automatically reading ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc''/''restart1D.txt'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''pem_workflow.log'', ''pem_workflow.sts'' and possibly ''kill_pem_workflow.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''restartevol.nc'', ''restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagevol.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_pem_workflow.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=3227</id>
		<title>Tool Box Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=3227"/>
				<updated>2026-02-26T17:15:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are few tools provided along the PEM which can be found in the directory &amp;lt;code&amp;gt;LMDZ.COMMON/libf/evolution/deftank/&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;README&amp;lt;/code&amp;gt; text file gives information about the different files that this directory contains.&lt;br /&gt;
&lt;br /&gt;
The current tools available for the PEM in this directory are:&lt;br /&gt;
* &amp;lt;code&amp;gt;clean.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;concat_pem.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ini_pem_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_var.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;multiple_exec.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_evol_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The purpose of these tools is described in the sections below. Their usage is quite straightforward and all the parameters to be modified by the user are always gathered at the beginning of the file, in the header, with short explanations.&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== Cleaning of files ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;clean.sh&amp;lt;/code&amp;gt; cleans the folder after a PEM simulation and reset the initial starting files to prepare a new simulation.&lt;br /&gt;
&lt;br /&gt;
=== Initialization of orbital parameters ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;ini_pem_orbit.sh&amp;lt;/code&amp;gt; sets the orbital parameters of a file ''startfi.nc'' from Laskar's data contained in ''obl_ecc_lsp.asc'' according to the initial date 'year_earth_bp_ini' defined in ''run_PEM.def''. See also &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting the orbital parameters ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt; allows to modify orbital parameters in the file ''startfi.nc''. They should be consistent with Laskar's data in ''obl_ecc_lsp.asc'' at the same date if orbital parameters are meant to vary during the simulation. See also &amp;lt;code&amp;gt;ini_pem_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting a variable in a NetCDF file ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; modifies the value of a variable in a file ''startfi.nc''.&lt;br /&gt;
&lt;br /&gt;
=== Lauching multiple simulations ===&lt;br /&gt;
&lt;br /&gt;
The bash script &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; executes multiple scripts in subdirectories. It is useful to launch multiple simulations at once.&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== Merging the PEM outputs ===&lt;br /&gt;
&lt;br /&gt;
The Python script &amp;lt;code&amp;gt;concat_pem.py&amp;lt;/code&amp;gt; allows to concatenate along the variable 'Time' all the ''diagpem'' files (PEM outputs) into one NetCDF file. 'Time' is re-indexed with the numbering of Martian years simulated by the PEM run. It is useful if one wants to visualize and analyse the evolution of variables during all the PEM runs of the chained simulation.&lt;br /&gt;
&lt;br /&gt;
=== Layering visualization over time ===&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_evol_layering.py&amp;lt;/code&amp;gt; outputs the stratification data over time from the ''startpem.nc'' files.&lt;br /&gt;
&lt;br /&gt;
=== Layering visualization ===&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_layering.py&amp;lt;/code&amp;gt; outputs the stratification data from the ''startpem.nc'' files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Advanced_Topics_Mars_PEM&amp;diff=3226</id>
		<title>Advanced Topics Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Advanced_Topics_Mars_PEM&amp;diff=3226"/>
				<updated>2026-02-26T17:08:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: Replaced content with &amp;quot;  Category:Planetary-Evolution-Model&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Mars_1D_testphys1d_program&amp;diff=3222</id>
		<title>Mars 1D testphys1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Mars_1D_testphys1d_program&amp;diff=3222"/>
				<updated>2026-02-26T09:48:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Mars PCM in a &amp;quot;single-column&amp;quot; configuration: this is the so-called 1D Mars PCM whose program is '''testphys1d'''. It is quite useful for some studies and or when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''testphys1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Mars PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''testphys1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 54 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 54 -p mars testphys1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Like the ''gcm'' program, the ''testphys1d'' program needs some inputs to be able to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is similar to the one for the 3D PCM described here [[The run.def Input File]]. It has to be be adapted to the 1D case. An example file, called &amp;lt;code&amp;gt;run.def.1d&amp;lt;/code&amp;gt;, is available in &amp;lt;code&amp;gt;LMDZ.MARS/deftank&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unlike the ''gcm'' program, the ''testphys1d'' program can run without start files, that is without &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt;.&lt;br /&gt;
This is the case by default (&amp;lt;code&amp;gt;startfiles_1D=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. In addition one can also provide a similar ''profile_temp'' file containing an initial temperature profile (first line should then contain the surface temperature value).&lt;br /&gt;
When the program ends, it will produce by its own a &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; file initialized with the default settings.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;code&amp;gt;startfiles_1D=.true.&amp;lt;/code&amp;gt; set in the &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt;, the program will look for starting files, that is a &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;start1D.txt&amp;lt;/code&amp;gt; file. If the starting files are present, it will read them to initialize the run accordingly. Otherwise, it will start as in the previous (default) case. In any cases, the program will create a &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;restart1D.txt&amp;lt;/code&amp;gt; file at the end of the run.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;start1D.txt&amp;lt;/code&amp;gt; is specific to the 1D model. An example can be found in &amp;lt;code&amp;gt;LMDZ.MARS/deftank&amp;lt;/code&amp;gt;. The content is organized such that each line holds a header, to make the file human readable, and then values.&lt;br /&gt;
* First line is for pressure variables with header '''ps''' and the values are ''ps'', ''pa'' and ''preff''.&lt;br /&gt;
* The following lines define each tracer, in the same apparition order used in &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt;. The header is the '''tracer name''' and the values are the ones for each atmospheric layer.&lt;br /&gt;
* Next two lines are for winds. The headers are '''u''' and '''v''' for zonal and meridional wind respectively, and the values are the ones for each atmospheric layer.&lt;br /&gt;
* Last line is for potential temperature with header '''teta''' and values are the ones for each atmospheric layer.&lt;br /&gt;
When the values describe the atmospheric profile, then there must be as many as atmospheric layers defined by the user (vertical resolution).&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
The program ''testphys1d'' can output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files. Just like for the 3D PCM model, the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
&lt;br /&gt;
As described in the previous section, if &amp;lt;code&amp;gt;startfiles_1D=.true.&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt;, then ''testphys1d'' will create a &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;restart1D.txt&amp;lt;/code&amp;gt; file at the end of the run. &lt;br /&gt;
This option is particularly useful when one wants to make chained simulations with the 1D model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mars-Model]]&lt;br /&gt;
[[Category:Mars-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Mars_1D_testphys1d_program&amp;diff=3221</id>
		<title>Mars 1D testphys1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Mars_1D_testphys1d_program&amp;diff=3221"/>
				<updated>2026-02-26T09:34:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Mars PCM in a &amp;quot;single-column&amp;quot; configuration: this is the so-called 1D Mars PCM whose program is '''testphys1d'''. It is quite useful for some studies and or when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''testphys1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Mars PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''testphys1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 54 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 54 -p mars testphys1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Like the ''gcm'' program, the ''testphys1d'' program needs some inputs to be able to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is similar to the one for the 3D PCM described here [[The run.def Input File]]. It has to be be adapted to the 1D case. An example file, called &amp;lt;code&amp;gt;run.def.1d&amp;lt;/code&amp;gt;, is available in &amp;lt;code&amp;gt;LMDZ.MARS/deftank&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unlike the ''gcm'' program, the ''testphys1d'' program can run without start files, that is without &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt;.&lt;br /&gt;
This is the case by default (&amp;lt;code&amp;gt;startfiles_1D=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. In addition one can also provide a similar ''profile_temp'' file containing an initial temperature profile (first line should then contain the surface temperature value).&lt;br /&gt;
When the program ends, it will produce by its own a &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; file initialized with the default settings.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;code&amp;gt;startfiles_1D=.true.&amp;lt;/code&amp;gt; set in the &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt;, the program will look for starting files, that is a &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;start1D.txt&amp;lt;/code&amp;gt; file. If the starting files are present, it will read them to initialize the run accordingly. Otherwise, it will start as in the previous (default) case. In any cases, the program will create a &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;restart1D.txt&amp;lt;/code&amp;gt; file at the end of the run.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;start1D.txt&amp;lt;/code&amp;gt; is specific to the 1D model. An example can be found in &amp;lt;code&amp;gt;LMDZ.MARS/deftank&amp;lt;/code&amp;gt;. The content is organized such that each line holds a header, to make the file human readable, and then values. First line is for pressure variables with header '''ps''' and the values are ''ps'', ''pa'' and ''preff''. The following lines account for each tracer, in the same apparition order used in &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt;. The header is the '''tracer name''' and the values are the ones for each atmospheric layer. Next two lines are for winds. The headers are '''u''' and '''v''' for zonal and meridional wind respectively, and the values are the ones for each atmospheric layer. Last line is for potential temperature with header '''teta''' and values are the ones for each atmospheric layer.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
The program ''testphys1d'' can output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files. Just like for the 3D PCM model, the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
&lt;br /&gt;
As described in the previous section, if &amp;lt;code&amp;gt;startfiles_1D=.true.&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt;, then ''testphys1d'' will create a &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;restart1D.txt&amp;lt;/code&amp;gt; file at the end of the run. &lt;br /&gt;
This option is particularly useful when one wants to make chained simulations with the 1D model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mars-Model]]&lt;br /&gt;
[[Category:Mars-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Mars_1D_testphys1d_program&amp;diff=3220</id>
		<title>Mars 1D testphys1d program</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Mars_1D_testphys1d_program&amp;diff=3220"/>
				<updated>2026-02-26T09:33:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to run the Mars PCM in a &amp;quot;single-column&amp;quot; configuration: this is the so-called 1D Mars PCM whose program is '''testphys1d'''. It is quite useful for some studies and or when developing and testing parametrizations.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
The main program '''testphys1d''' is compiled using the same compilation script, [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]], as for the 3D Mars PCM. Nevertheless, there are few modifications:&lt;br /&gt;
* the ''-d'' option requires only one argument, the number of vertical levels;&lt;br /&gt;
* the main program to compile is ''testphys1d'' rather than ''gcm''.&lt;br /&gt;
So for instance to compile a case for 54 vertical levels one would run something like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
makelmdz_fcm -arch somearch -d 54 -p mars testphys1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Like the ''gcm'' program, the ''testphys1d'' program needs some inputs to be able to run. The needed files are:&lt;br /&gt;
* &amp;lt;code&amp;gt;z2sig.def&amp;lt;/code&amp;gt; for the definition of vertical levels;&lt;br /&gt;
* &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; for the definition of tracers that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;callphys.def&amp;lt;/code&amp;gt; for the definition of parametrizations that the user wants the model to run with;&lt;br /&gt;
* &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt; for the run configuration, which is similar to the one for the 3D PCM described here [[The run.def Input File]]. It has to be be adapted to the 1D case. An example file, called &amp;lt;code&amp;gt;run.def.1d&amp;lt;/code&amp;gt;, is available in &amp;lt;code&amp;gt;LMDZ.MARS/deftank&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unlike the ''gcm'' program, the ''testphys1d'' program can run without start files, that is without &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt;.&lt;br /&gt;
This is the case by default (&amp;lt;code&amp;gt;startfiles_1D=.false.&amp;lt;/code&amp;gt;). In this setup, one can (and often needs) needs to provide initial profiles of each tracer. These consist in files called ''profile_sometracername'' containing column-wise the initial values of the considered tracer. Then, the first line corresponds to the surface tracer and the following lines correspond to the layers. In addition one can also provide a similar ''profile_temp'' file containing an initial temperature profile (first line should then contain the surface temperature value).&lt;br /&gt;
When the program ends, it will produce by its own a &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; file initialized with the default settings.&lt;br /&gt;
&lt;br /&gt;
In the case of &amp;lt;code&amp;gt;startfiles_1D=.true.&amp;lt;/code&amp;gt; set in the &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt;, the program will look for starting files, that is a &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;start1D.txt&amp;lt;/code&amp;gt; file. If the starting files are present, it will read them to initialize the run accordingly. Otherwise, it will start as in the previous (default) case. In any cases, the program will create a &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;restart1D.txt&amp;lt;/code&amp;gt; file at the end of the run.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;start1D.txt&amp;lt;/code&amp;gt; is specific to the 1D model. An example can be found in &amp;lt;code&amp;gt;LMDZ.MARS/deftank&amp;lt;/code&amp;gt;. The content is organized such that each line holds a header, to make the file human readable, and then values. First line is for pressure variables with header '''ps''' and the values are ''ps'', ''pa'' and ''preff''. The following lines account for each tracer, in the same apparition order used in &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt;. The header is the '''tracer name''' and the values are the one for each atmospheric layer. Next two lines are for winds. The headers are '''u''' and '''v''' for zonal and meridional wind respectively, and the values are the one for each atmospheric layer. Last line is for potential temperature with header '''teta''' and values are the one for each atmospheric layer.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
The program ''testphys1d'' can output &amp;lt;code&amp;gt;diagfi.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.nc&amp;lt;/code&amp;gt; files. Just like for the 3D PCM model, the optional &amp;lt;code&amp;gt;diagfi.def&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stats.def&amp;lt;/code&amp;gt; files can be respectively added to specify which variables need be outputted.&lt;br /&gt;
&lt;br /&gt;
As described in the previous section, if &amp;lt;code&amp;gt;startfiles_1D=.true.&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;run.def&amp;lt;/code&amp;gt;, then ''testphys1d'' will create a &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;restart1D.txt&amp;lt;/code&amp;gt; file at the end of the run. &lt;br /&gt;
This option is particularly useful when one wants to make chained simulations with the 1D model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mars-Model]]&lt;br /&gt;
[[Category:Mars-1D]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3209</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3209"/>
				<updated>2026-02-12T11:22:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM executable''' file should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''launchPEM.info'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3208</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3208"/>
				<updated>2026-02-12T11:10:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''launchPEM_lib.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM executable''' file should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''launchPEM.info'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3005</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=3005"/>
				<updated>2025-11-28T16:58:27Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM executable''' file should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''launchPEM.info'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2974</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2974"/>
				<updated>2025-11-27T14:01:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Outputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM years count&amp;quot;; any other values = &amp;quot;PCM years are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM executable''' file should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''launchPEM.info'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2973</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2973"/>
				<updated>2025-11-26T09:42:27Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM years count&amp;quot;; any other values = &amp;quot;PCM years are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM executable''' file should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2972</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2972"/>
				<updated>2025-11-26T09:41:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM years count&amp;quot;; any other values = &amp;quot;PCM years are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2971</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2971"/>
				<updated>2025-11-26T09:41:02Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM and the PEM with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM years count&amp;quot;; any other values = &amp;quot;PCM years are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM and Reshaping executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2970</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2970"/>
				<updated>2025-11-26T09:39:35Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The PEM main program is '''pem.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM, the PEM and the reshaping tool with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM years count&amp;quot;; any other values = &amp;quot;PCM years are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM and Reshaping executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM: ''Xoutdaily4pem*.nc''/''Xoutyearly4pem*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2934</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2934"/>
				<updated>2025-11-12T15:54:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The two PEM programs are '''pem.F90''' and '''reshape_XIOS_output.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a dedicated reshaping tool with consistent options. To compile it, in LMDZ_COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 reshape_XIOS_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To run the PEM, you also need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM, the PEM and the reshaping tool with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM years (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM years between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM years count&amp;quot;; any other values = &amp;quot;PCM years are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM and Reshaping executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM, then reshaped: ''Xdiurnalave.nc''/''data2reshape*.nc''/''data_PCM_Y*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2917</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2917"/>
				<updated>2025-10-24T10:09:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: Undo revision 2916 by Jbclement (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The two PEM programs are '''pem.F90''' and '''reshape_XIOS_output.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a dedicated reshaping tool with consistent options. To compile it, in LMDZ_COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 reshape_XIOS_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To run the PEM, you also need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io XIOS -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM, the PEM and the reshaping tool with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM runs (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM runs between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM runs count&amp;quot;; any other values = &amp;quot;PCM runs are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM and Reshaping executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM, then reshaped: ''Xdiurnalave.nc''/''data2reshape*.nc''/''data_PCM_Y*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2916</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2916"/>
				<updated>2025-10-24T10:08:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The two PEM programs are '''pem.F90''' and '''reshape_XIOS_output.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a dedicated reshaping tool with consistent options. To compile it, in LMDZ_COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 reshape_XIOS_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To run the PEM, you also need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io XIOS -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM, the PEM and the reshaping tool with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM runs (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM runs between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM runs count&amp;quot;; any other values = &amp;quot;PCM runs are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM and Reshaping executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# In addition, the user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM, then reshaped: ''Xdiurnalave.nc''/''data2reshape*.nc''/''data_PCM_Y*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2915</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2915"/>
				<updated>2025-10-24T10:05:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The two PEM programs are '''pem.F90''' and '''reshape_XIOS_output.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a dedicated reshaping tool with consistent options. To compile it, in LMDZ_COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 reshape_XIOS_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To run the PEM, you also need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io XIOS -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM, the PEM and the reshaping tool with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters/options:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM runs (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM runs between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM runs count&amp;quot;; any other values = &amp;quot;PCM runs are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM and Reshaping executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# The user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can do it automatically with ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM, then reshaped: ''Xdiurnalave.nc''/''data2reshape*.nc''/''data_PCM_Y*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2914</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2914"/>
				<updated>2025-10-24T09:57:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The two PEM programs are '''pem.F90''' and '''reshape_XIOS_output.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a dedicated reshaping tool with consistent options. To compile it, in LMDZ_COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 reshape_XIOS_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To run the PEM, you also need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io XIOS -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM, the PEM and the reshaping tool with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder, where a ''README'' file recaps everything.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM runs (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM runs between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM runs count&amp;quot;; any other values = &amp;quot;PCM runs are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM and Reshaping executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# In addition, the user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can set them automatically according to ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM, then reshaped: ''Xdiurnalave.nc''/''data2reshape*.nc''/''data_PCM_Y*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=2913</id>
		<title>Tool Box Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=2913"/>
				<updated>2025-10-24T09:53:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are few tools provided along the PEM which can be found in the directory &amp;lt;code&amp;gt;LMDZ.COMMON/libf/evolution/deftank/&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;README&amp;lt;/code&amp;gt; text file gives information about the different files that this directory contains.&lt;br /&gt;
&lt;br /&gt;
The current tools available for the PEM in this directory are:&lt;br /&gt;
* &amp;lt;code&amp;gt;clean.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;concat_pem.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;inipem_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_var.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;multiple_exec.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_evol_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The purpose of these tools is described in the sections below. Their usage is quite straightforward and all the parameters to be modified by the user are always gathered at the beginning of the file, in the header, with short explanations.&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== Cleaning of files ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;clean.sh&amp;lt;/code&amp;gt; cleans the folder after a PEM simulation and reset the initial starting files to prepare a new simulation.&lt;br /&gt;
&lt;br /&gt;
=== Initialization of orbital parameters ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;inipem_orbit.sh&amp;lt;/code&amp;gt; sets the orbital parameters of a file ''startfi.nc'' from Laskar's data contained in ''obl_ecc_lsp.asc'' according to the initial date 'year_earth_bp_ini' defined in ''run_PEM.def''. See also &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting the orbital parameters ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt; allows to modify orbital parameters in the file ''startfi.nc''. They should be consistent with Laskar's data in ''obl_ecc_lsp.asc'' at the same date if orbital parameters are meant to vary during the simulation. See also &amp;lt;code&amp;gt;inipem_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting a variable in a NetCDF file ===&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; modifies the value of a variable in a file ''startfi.nc''.&lt;br /&gt;
&lt;br /&gt;
=== Lauching multiple simulations ===&lt;br /&gt;
&lt;br /&gt;
The bash script &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; executes multiple scripts in subdirectories. It is useful to launch multiple simulations at once.&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== Merging the PEM outputs ===&lt;br /&gt;
&lt;br /&gt;
The Python script &amp;lt;code&amp;gt;concat_pem.py&amp;lt;/code&amp;gt; allows to concatenate along the variable 'Time' all the ''diagpem'' files (PEM outputs) into one NetCDF file. 'Time' is re-indexed with the numbering of Martian years simulated by the PEM run. It is useful if one wants to visualize and analyse the evolution of variables during all the PEM runs of the chained simulation.&lt;br /&gt;
&lt;br /&gt;
=== Layering visualization over time ===&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_evol_layering.py&amp;lt;/code&amp;gt; outputs the stratification data over time from the ''startpem.nc'' files.&lt;br /&gt;
&lt;br /&gt;
=== Layering visualization ===&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_layering.py&amp;lt;/code&amp;gt; outputs the stratification data from the ''startpem.nc'' files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2912</id>
		<title>Quick Install and Run Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PEM&amp;diff=2912"/>
				<updated>2025-10-24T09:45:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this page, we give a hopefully exhaustive enough overview of the necessary prerequisites and steps to download, compile and run a simple simulation with the PEM, set up on a Linux computer. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The PEM is downloaded alongside the '''LMDZ.COMMON''' repository of your trunk, following the same step described in the related section of [[Quick Install and Run Mars PCM]]. The Fortran code is in the following directory: &amp;lt;code&amp;gt;trunk/LMDZ.COMMON/libf/evolution/&amp;lt;/code&amp;gt;. The two PEM programs are '''pem.F90''' and '''reshape_XIOS_output.F90'''.&lt;br /&gt;
&lt;br /&gt;
== Compilation  ==&lt;br /&gt;
&lt;br /&gt;
To compile the PEM, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options with example:&lt;br /&gt;
# [local]: ''root name of arch files'', assuming that they have been set up for your configuration;&lt;br /&gt;
# [planet]: ''mars'' to use the Mars planet physics package; &lt;br /&gt;
# [dimensions]: ''64x48x54'' to define the grid you want to use (longitude x latitude x atmospheric layers).&lt;br /&gt;
To run the PEM, you need a dedicated reshaping tool with consistent options. To compile it, in LMDZ_COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 reshape_XIOS_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To run the PEM, you also need a PCM working with XIOS and consistent options. To compile it, in LMDZ.COMMON, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io XIOS -d [dimensions] -j 8 gcm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After compilation, the executable file can be found in the &amp;quot;bin&amp;quot; sub-directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To run a PEM simulation, do:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./launchPEM.sh [options]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Options:&lt;br /&gt;
# None: to start a simulation from scratch;&lt;br /&gt;
# 're': to relaunch a simulation from a starting point (interactive prompt).&lt;br /&gt;
&lt;br /&gt;
The Bash file ''launchPEM.sh'' is the master script to launch the PEM chained simulation. It checks if necessary files and required options for your simulation are ok.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To run the PEM, you can create a folder in which you need the following files:&lt;br /&gt;
* your executable files for the PCM, the PEM and the reshaping tool with consistent options;&lt;br /&gt;
* the xml files for XIOS which can be found in the PCM deftank folder: ''iodef.xml'', ''context_lmdz_physics.xml'', ''file_def_physics_mars.xml'' and ''field_def_physics_mars.xml'';&lt;br /&gt;
* the def files you want to run the PCM: ''run.def'', ''callphys.def'', ''traceur.def'', etc. '''Be careful, do not forget to rename the PCM ''run.def'' into ''run_PCM.def''''';&lt;br /&gt;
* the starting files you want to run the PCM: ''startfi.nc'', ''start.nc''/''start1D.txt''/profiles;&lt;br /&gt;
* the necessary PEM files: ''launchPEM.sh'', ''lib_launchPEM.sh'', ''PCMrun.job'', ''PEMrun.job'', ''run_PEM.def'' and ''obl_ecc_lsp.asc'';&lt;br /&gt;
* the optional PEM files ''diagpem.def'' to define the PEM variables to be ouputted and ''startpem.nc'' to set the initial state of the PEM.&lt;br /&gt;
&lt;br /&gt;
The PEM files can be found in the deftank folder.&lt;br /&gt;
&lt;br /&gt;
Before a simulation, you have to set up some parameters:&lt;br /&gt;
# In ''launchPEM.sh'', the user has to specify:&lt;br /&gt;
#* '''n_mars_years''', '''n_earth_years''': the number of Mars/Earth years to be simulated in total (&amp;gt; 0);&lt;br /&gt;
#* '''nPCM_ini''': the number of initial PCM runs (&amp;gt;= 2);&lt;br /&gt;
#* '''nPCM''': the number of PCM runs between each PEM run (&amp;gt;= 2, usually 2);&lt;br /&gt;
#* '''counting''': the counting method for the number of years to be simulated (0 = &amp;quot;only PEM runs count&amp;quot;; any other values = &amp;quot;PCM runs are taken into account&amp;quot;). The former option is the usual one;&lt;br /&gt;
#* '''mode''': the launching mode (0 = &amp;quot;processing scripts&amp;quot;; any other values = &amp;quot;submitting jobs&amp;quot;). The former option is usually used to process the script on a local machine while the latter is used to submit jobs on a supercomputer with SLURM or PBS/TORQUE.&lt;br /&gt;
# In ''PCMrun.job'', the user has to specify:&lt;br /&gt;
#* the '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PCM executable''' file should be adapted.&lt;br /&gt;
#* The '''execution command''' should also be adapted according to the set-up.&lt;br /&gt;
# In ''PEMrun.job'', the user has to specify:&lt;br /&gt;
#* The '''headers''' correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of &amp;quot;processing scripts&amp;quot; launching mode, the headers are naturally omitted.&lt;br /&gt;
#* The '''path to source''' the arch file should be adapted to the machine.&lt;br /&gt;
#* The '''name of the PEM and Reshaping executable''' files should be adapted.&lt;br /&gt;
#* The PEM executable can have an '''optional argument''' which should be specified according to the set-up (&amp;quot;--auto-exit&amp;quot; for SLURM and PBS/TORQUE | &amp;quot;&amp;quot; when the script is not run as a job).&lt;br /&gt;
# The user has to specify the wanted options in the '''def files''', especially for ''run_PEM.def'', ''run_PCM.def'', ''callphys.def''.&lt;br /&gt;
# In addition, the user has to provide a ''startfi.nc'' whose orbital parameters are consistent with the initial date set in ''run_PEM.def''. The script '''inipem_orbit.sh''' can set them automatically according to ''obl_ecc_lsp.asc''.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The PEM simulation generates the following files:&lt;br /&gt;
* the usual outputs of the PCM: ''restartfi.nc'', ''restart.nc'', ''diagfi.nc'', etc;&lt;br /&gt;
* the XIOS outputs of the PCM, then reshaped: ''Xdiurnalave.nc''/''data2reshape*.nc''/''data_PCM_Y*.nc'';&lt;br /&gt;
* the outputs of the chained simulation: ''launchPEM.log'', ''info_PEM.txt'' and possibly ''kill_launchPEM.sh'';&lt;br /&gt;
* the usual outputs of the PEM: ''&amp;quot;restartfi.nc'', ''restart.nc''/''restart1D.txt'' and ''diagpem.nc''.&lt;br /&gt;
&lt;br /&gt;
During the simulation, the PCM/PEM run files are renamed conveniently and stored in the sub-directories '''logs''' (log files), '''starts''' (starting files) and '''diags''' (diagnostic files).&lt;br /&gt;
&lt;br /&gt;
If you run a simulation by submitting jobs, the script ''kill_launchPEM.sh'' is automatically generated. It can be used to kill in the queue of the job scheduler the jobs related to your chained simulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=2911</id>
		<title>Tool Box Mars PEM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PEM&amp;diff=2911"/>
				<updated>2025-10-23T15:11:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jbclement: /* Merging the PEM outputs (post-processing) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are few tools provided along the PEM which can be found in the directory &amp;lt;code&amp;gt;LMDZ.COMMON/libf/evolution/deftank/&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;README&amp;lt;/code&amp;gt; text file gives information about the different files that this directory contains.&lt;br /&gt;
&lt;br /&gt;
The current tools available for the PEM in this directory are:&lt;br /&gt;
* &amp;lt;code&amp;gt;clean.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;concat_pem.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;inipem_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_orbit.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;modify_startfi_var.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;multiple_exec.sh &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_evol_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;visu_layering.py &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The purpose of these tools is described in the sections below. Their usage is quite straightforward and all the parameters to be modified by the user are always gathered at the beginning of the file, in the header, with short explanations.&lt;br /&gt;
&lt;br /&gt;
== Cleaning of files (post-processing) ==&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;clean.sh&amp;lt;/code&amp;gt; cleans the folder after a PEM simulation and reset the initial starting files to prepare a new simulation.&lt;br /&gt;
&lt;br /&gt;
== Merging the PEM outputs (post-processing) ==&lt;br /&gt;
&lt;br /&gt;
The Python script &amp;lt;code&amp;gt;concat_pem.py&amp;lt;/code&amp;gt; allows to concatenate along the variable 'Time' all the &amp;quot;diagpem&amp;quot; files (PEM outputs) into one NetCDF file. 'Time' is re-indexed with the numbering of Martian years simulated by the PEM run. It is useful if one wants to visualize and analyse the evolution of variables during all the PEM runs of the chained simulation.&lt;br /&gt;
&lt;br /&gt;
== Initialization of orbital parameters (pre-processing) ==&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;inipem_orbit.sh&amp;lt;/code&amp;gt; sets the orbital parameters of a file &amp;quot;startfi.nc&amp;quot; from Laskar's data contained in &amp;quot;obl_ecc_lsp.asc&amp;quot; according to the initial date 'year_earth_bp_ini' defined in &amp;quot;run_PEM.def&amp;quot;. See also &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Setting the orbital parameters (pre-processing) ==&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_orbit.sh&amp;lt;/code&amp;gt; allows to modify orbital parameters in the file &amp;quot;startfi.nc&amp;quot;. They should be consistent with Laskar's data in &amp;quot;obl_ecc_lsp.asc&amp;quot; at the same date if orbital parameters are meant to vary during the simulation. See also &amp;lt;code&amp;gt;inipem_orbit.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Setting a variable in a NetCDF file (pre-processing) ==&lt;br /&gt;
&lt;br /&gt;
The bash script file &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; modifies the value of a variable in a file &amp;quot;startfi.nc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Lauching multiple simulations (pre-processing) ==&lt;br /&gt;
&lt;br /&gt;
The bash script &amp;lt;code&amp;gt;modify_startfi_var.sh&amp;lt;/code&amp;gt; executes multiple scripts in subdirectories. It is useful to launch multiple simulations at once.&lt;br /&gt;
&lt;br /&gt;
== Layering visualization overged time (post-processing) ==&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_evol_layering.py&amp;lt;/code&amp;gt; outputs the stratification data over time from the &amp;quot;startpem.nc&amp;quot; files.&lt;br /&gt;
&lt;br /&gt;
== Layering visualization (post-processing) ==&lt;br /&gt;
&lt;br /&gt;
The Python script file &amp;lt;code&amp;gt;visu_layering.py&amp;lt;/code&amp;gt; outputs the stratification data from the &amp;quot;startpem.nc&amp;quot; files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Planetary-Evolution-Model]]&lt;/div&gt;</summary>
		<author><name>Jbclement</name></author>	</entry>

	</feed>