<?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=Lebonnois</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=Lebonnois"/>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Special:Contributions/Lebonnois"/>
		<updated>2026-06-11T17:05:34Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=3241</id>
		<title>Quick Install and Run Venus PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=3241"/>
				<updated>2026-04-02T12:13:05Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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 Venus PCM (with the LMDZ dynamical core), set up on a Linux computer.&lt;br /&gt;
&lt;br /&gt;
Note that there is a dedicated, install script, that attempts to do all these steps (up to and including running the simulation) that you can obtain here: https://web.lmd.jussieu.fr/~lmdz/planets/install_lmdz_venus.bash&lt;br /&gt;
Automating the process is not trivial as there are many subtle variants of Linux flavors and user account setups, so the script may fail in your case, but hopefully the information given in this page should help you solve the encountered problems.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites: Tools and Libraries ==&lt;br /&gt;
In order to use (i.e. compile and run) the GCM, one needs to have some tools and installed libraries at hand. We list below a (minimal) set that you should check that is available and/or that you'll need to first install on your machine. Note that we assume in this tutorial that you are on a Linux native-OS/cluster.&lt;br /&gt;
&lt;br /&gt;
===  Fortran compiler ===&lt;br /&gt;
The GCM source code is in Fortran. One thus needs a Fortran compiler to build (compile) the executable.&lt;br /&gt;
The most easily available one (on Linux) is gfortran and examples discussed here will assume it is the one used.&lt;br /&gt;
You can check that you indeed have a gfortran compiler at hand with the following Bash command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which should return something like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
The source code is managed using subversion (svn), which you'll need to download or update. Leaving aside the subtleties of svn and code organization for now, downloading the code amounts to doing the following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
cd trunk&lt;br /&gt;
svn update LMDZ.COMMON LMDZ.VENUS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a side note: the source code that will be fetched by svn can also be browsed online here: https://trac.lmd.jussieu.fr/Planeto&lt;br /&gt;
&lt;br /&gt;
=== FCM ===&lt;br /&gt;
The FCM (Flexible Configuration Management) tool is a suite of perl scripts to help building and managing codes. We use a slightly modified version which can be obtained using subversion (svn). Ideally you'll want to download it somewhere on your computer once in for all. To do this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://forge.ipsl.fr/fcm/svn/PATCHED/FCM_V1.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You'll then need to add the resulting FCM_V1.2/bin to your PATH environment variable so that the command &amp;quot;fcm&amp;quot; may be used from anywhere on your machine. e.g. by adding the following line in your .bashrc:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/FCM_V1.2/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that the downloaded FCM_V1.2 directory is in your home ($HOME) directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
=== the NetCDF library ===&lt;br /&gt;
The GCM reads and writes input and output files in NetCDF format. Therefore a NetCDF library must be available. As this library is not quite standard you'll probably have to install it yourself on your system (check out [[the netCDF library]] page for more). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/script_install/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
As a side note: The NetCDF library provides a very simple command line tool (ncdump) to inspect the contents of NetCDF files, but you'll need more advanced visualization tools (e.g., Panoply, Python scripts, etc. - see further down this page in the &amp;quot;Checking the Results&amp;quot; section) for more advanced post-processing of the outputs.&lt;br /&gt;
&lt;br /&gt;
=== the IOIPSL library ===&lt;br /&gt;
&lt;br /&gt;
The IOIPSL (Input/Output IPSL) library is a library designed to handle both the reading of some input files used by the GCM (the *.def files which are described further below) and the writing of some NetCDF output files.&lt;br /&gt;
&lt;br /&gt;
==== Prior to a first compilation: ksh to bash conversion ====&lt;br /&gt;
Some of the IOIPSL install scripts are written in ksh (Korn shell).&lt;br /&gt;
Given that most systems currently use Bash (Bourne Again Shell) as their command-line interpreter and not ksh (Korn Shell), you might need to install ksh on your system (assuming you have super-user privileges), for e.g., on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or, if that is not an option, change the occurrences in the package's scripts ('''ins_m_prec''') from:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Automated IOIPSL install script ====&lt;br /&gt;
Scripts to download and install the IOIPSL library can be found in the &amp;quot;ioipsl&amp;quot; subdirectory of the &amp;quot;LMDZ.COMMON&amp;quot; library. Since here we assume we're working with gfortran, the relevant one is &amp;quot;install_ioipsl_gfortran.bash&amp;quot;. If your PATH environment variable is already such that it includes the path to your NetCDF library distribution's bin directory (see previous section) then all you need to do is execute the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./install_ioipsl_gfortran.bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If all went well the script should end with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OK: ioipsl library is in ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''(for further details about [[The_IOIPSL_Library|the IOIPSL library]] and installing it, follow the link and/or use the Search Box at the top of this page)''&lt;br /&gt;
&lt;br /&gt;
== GCM Input Datafiles and Datasets ==&lt;br /&gt;
In order to run, the GCM needs some inputs, such as initial conditions (values of state variables), external inputs (e.g. optical properties) and simulation setup (e.g. specifications on how long to run, which parametrizations should be activated, etc.)&lt;br /&gt;
&lt;br /&gt;
In the spirit of the illustrative example considered here, a set of necessary input data may be downloaded with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/planets/venus/bench_48x32x50.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this is a quite low resolution case, mostly for simple tests or checking that the model was well installed. For scientific work the model is typically run at higher resolution (e.g. 96x96x50; in fact the same directory can be found a bench_96x96x50.tar.gz file).&lt;br /&gt;
&lt;br /&gt;
Nonetheless this ''bench_48x32x50'' example already provides insights on the required input files one needs:&lt;br /&gt;
* a ''run.def'' file, along with companion ''gcm.def'' and ''physiq.def'' ASCII files&lt;br /&gt;
* a ''z2sig.def'' ASCII file, which is read at runtime and contains information about the vertical levels of the PCM&lt;br /&gt;
* a ''traceur.def'' ASCII file, which contains the list of tracers the PCM will use&lt;br /&gt;
* a ''start.nc'' and a ''startphy.nc'' NetCDF files which respectively contain the initial conditions for the dynamics and the physics&lt;br /&gt;
* Input datasets (read at run-time by the PCM) ''ksi_global.txt'' and ''SolarNetFlux_RH.dat''&lt;br /&gt;
&lt;br /&gt;
== Compiling the GCM ==&lt;br /&gt;
Now that all the prerequisites are fulfilled, it is (almost!) time to compile the GCM&lt;br /&gt;
&lt;br /&gt;
=== Prior to a first compilation: setting up the target architecture files ===&lt;br /&gt;
Compiling the model is done using a dedicated Bash script ''makelmdz_fcm'' located in the '''LMDZ.COMMON''' directory. This script however relies on ''architecture files''. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice, one must thus create these ASCII text files in the '''arch/''' subdirectory of '''LMDZ.COMMON'''. The naming convention is rather straightforward, when the script ''makelmdz_fcm'' is run with the option '''-arch somename''', it will look for files ''arch/arch-somename.env'', ''arch/arch-somename.path'' and ''arch/arch-somename.fcm''. Leaving aside a detailed description for later (see [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this page]]), here we mention that:&lt;br /&gt;
* the ''arch*.env'' is an optional file containing ''environment'' information, such as setting up environment variables or loading modules on some machines, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export NETCDF_HOME=/path/to/the/netcdf/distribution&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* the '''arch*.path''' is a mandatory file containing information relative to external libraries such as NetCDF and IOIPSL, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ROOT=$PWD&lt;br /&gt;
&lt;br /&gt;
NETCDF_LIBDIR=&amp;quot;-L${NETCDF_HOME}/lib&amp;quot;&lt;br /&gt;
NETCDF_LIB=&amp;quot;-lnetcdf -lnetcdff&amp;quot;&lt;br /&gt;
NETCDF_INCDIR=&amp;quot;-I${NETCDF_HOME}/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IOIPSL_INCDIR=&amp;quot;-I$ROOT/../IOIPSL/inc&amp;quot;&lt;br /&gt;
IOIPSL_LIBDIR=&amp;quot;-L$ROOT/../IOIPSL/lib&amp;quot;&lt;br /&gt;
IOIPSL_LIB=&amp;quot;-lioipsl&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each library is referenced by a fixed identifier (NETCDF, IOIPSL, XIOS, ...) and 3 trailing strings: '''_LIBDIR''', for the path to the library, '''_LIB''', for the library name(s), and '''_INCDIR''' for the path to the library's ''include'' directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* the '''arch*.fcm''' is a mandatory file containing information relative to the compiler and compilation options, e.g.&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&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     &lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Again, not going into a detailed description (follow [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this link]] for that), just note here that each line corresponds to a keyword (starting with &amp;quot;%&amp;quot;) followed by the relevant options. Here, we mention a few of the main ones:&lt;br /&gt;
* %COMPILER: The compiler to use (here, gfortran)&lt;br /&gt;
* %BASE_FFLAGS: compiler options (always included)&lt;br /&gt;
* %PROD_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-prod&amp;quot; option&lt;br /&gt;
* %DEBUG_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-debug&amp;quot; option&lt;br /&gt;
* %BASE_LD: flags to add at the linking step of the compilation&lt;br /&gt;
&lt;br /&gt;
=== Compiling the test case  ===&lt;br /&gt;
To compile the GCM at the sought resolution, run (in LMDZ.COMMON):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch local -p venus -d 48x32x50 -j 8 gcm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we assume that you have generated the '''arch-local.*''' files as per what is suggested in the previous section.&lt;br /&gt;
The options for ''makelmdz_fcm'' used here imply:&lt;br /&gt;
* '''-p venus''': the GCM will use the &amp;quot;venus&amp;quot; physics package&lt;br /&gt;
* '''-d 48x32x50''': the GCM grid will be 48x32 in longitude x latitude, with 50 vertical levels.&lt;br /&gt;
For a glimpse at all the possible ''makelmdz_fcm'' options and their meanings, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
and/or check the dedicated [[The_makelmdz_fcm_GCM_Compilation_Script|makelmdz_fcm page]].&lt;br /&gt;
&lt;br /&gt;
Upon successful compilation, the executable '''gcm_48x32x50_phyvenus_seq.e''' should be generated in the '''bin''' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Running the GCM ==&lt;br /&gt;
You need to copy (or move) the executable '''gcm_48x32x50_phyvenus_seq.e''' from '''LMDZ.COMMON/bin''' to the directory containing the initial conditions and parameter files, e.g. '''bench_48x32x50'''.&lt;br /&gt;
&lt;br /&gt;
You can now run the GCM.&lt;br /&gt;
This is usually a two-step process: the (optional) first step is to source the environment architecture file (the very same that was used to compile the model), e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ../LMDZ.COMMON/arch.env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The second step is to execute the model, e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gcm_48x32x50_phyvenus_seq.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command line, the (text) outputs messages are redirected into a text file, '''gcm.out'''. It is convenient to keep this file for later inspection (e.g., to track a bug). If there is no redirection (only '''./gcm_48x32x50_phyvenus_seq.e'''), then the outputs will be directly on the screen.&lt;br /&gt;
&lt;br /&gt;
== Checking the Results of a Simulation ==&lt;br /&gt;
Once the simulation is finished, you'll know that all went well (&amp;quot;everything is cool&amp;quot;) if the last few lines of the standard text output are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 in abort_gcm&lt;br /&gt;
 Stopping in leapfrog&lt;br /&gt;
 Reason = Simulation finished &lt;br /&gt;
 Everything is cool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, start looking for an error message and a way to fix the problem...&lt;br /&gt;
&lt;br /&gt;
Apart from the standard text output messages from the GCM, which are mostly for monitoring and checking the simulation progress, the user will more likely be interested in checking the contents of the ''histmth.nc'' file produced by the GCM, as it contains instantaneous values of the main model variables (atmospheric temperature, winds, etc.).&lt;br /&gt;
&lt;br /&gt;
...TODO...ADD HERE SOME ILLUSTRATIVE PLOTS OF THE EXPECTED BENCH OUTPUTS...&lt;br /&gt;
&lt;br /&gt;
== Taking Things to the Next Level ==&lt;br /&gt;
The short tutorial presented in this page is meant to be useful to get an overview of what is required to install and run the GCM, in addition to checking the results of a simulation. Moving on to a more intensive and problem-specific usage will require diving into additional topics and aspects.&lt;br /&gt;
&lt;br /&gt;
To run our reference simulation in 96x96x50 (no chemistry, limited to 95 km altitude), you can find here:&lt;br /&gt;
* initial states: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/start-96x96x50.nc?ref_type=heads start-96x96x50.nc] and [https://web.lmd.jussieu.fr/~lmdz/planets/venus/startphy-96x96x50.nc?ref_type=heads startphy-96x96x50.nc]&lt;br /&gt;
* needed inputs: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/venus-inputs-Avr2026.tgz?ref_type=heads venus-inputs-Avr2026.tgz]&lt;br /&gt;
* readme for inputs: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/readme-inputs.txt?ref_type=heads readme-inputs.txt]&lt;br /&gt;
&lt;br /&gt;
For such a run, these features will be essential:&lt;br /&gt;
* Compiling and running in parallel (MPI) to run faster: [[Running the Venus PCM in parallel]]&lt;br /&gt;
* Using [[The XIOS Library|the XIOS library]] (instead of IOIPSL) to handle PCM outputs: [[Managing the Venus PCM outputs]]&lt;br /&gt;
&lt;br /&gt;
To dive deeper into more advanced studies, you may consider also:&lt;br /&gt;
* Running with advanced configurations of the physics packages, e.g. adding chemistry, thermospheric processes, etc. &lt;br /&gt;
* Selecting the appropriate inputs and run parameters for a given study.&lt;br /&gt;
* Compiling and running with the other dynamical cores (DYNAMICO and WRF)&lt;br /&gt;
* post-processing and analysis of model outputs&lt;br /&gt;
&lt;br /&gt;
All these points and much more are detailed in the many pages of this site (do check out the menu on the left and dare use intensively the site's search engine)!&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;br /&gt;
[[Category:Venus-LMDZ]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=3166</id>
		<title>Quick Install and Run Venus PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=3166"/>
				<updated>2026-01-06T08:28:06Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: updating the venus-inputs archive&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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 Venus PCM (with the LMDZ dynamical core), set up on a Linux computer.&lt;br /&gt;
&lt;br /&gt;
Note that there is a dedicated, install script, that attempts to do all these steps (up to and including running the simulation) that you can obtain here: https://web.lmd.jussieu.fr/~lmdz/planets/install_lmdz_venus.bash&lt;br /&gt;
Automating the process is not trivial as there are many subtle variants of Linux flavors and user account setups, so the script may fail in your case, but hopefully the information given in this page should help you solve the encountered problems.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites: Tools and Libraries ==&lt;br /&gt;
In order to use (i.e. compile and run) the GCM, one needs to have some tools and installed libraries at hand. We list below a (minimal) set that you should check that is available and/or that you'll need to first install on your machine. Note that we assume in this tutorial that you are on a Linux native-OS/cluster.&lt;br /&gt;
&lt;br /&gt;
===  Fortran compiler ===&lt;br /&gt;
The GCM source code is in Fortran. One thus needs a Fortran compiler to build (compile) the executable.&lt;br /&gt;
The most easily available one (on Linux) is gfortran and examples discussed here will assume it is the one used.&lt;br /&gt;
You can check that you indeed have a gfortran compiler at hand with the following Bash command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which should return something like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
The source code is managed using subversion (svn), which you'll need to download or update. Leaving aside the subtleties of svn and code organization for now, downloading the code amounts to doing the following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
cd trunk&lt;br /&gt;
svn update LMDZ.COMMON LMDZ.VENUS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a side note: the source code that will be fetched by svn can also be browsed online here: https://trac.lmd.jussieu.fr/Planeto&lt;br /&gt;
&lt;br /&gt;
=== FCM ===&lt;br /&gt;
The FCM (Flexible Configuration Management) tool is a suite of perl scripts to help building and managing codes. We use a slightly modified version which can be obtained using subversion (svn). Ideally you'll want to download it somewhere on your computer once in for all. To do this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://forge.ipsl.fr/fcm/svn/PATCHED/FCM_V1.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You'll then need to add the resulting FCM_V1.2/bin to your PATH environment variable so that the command &amp;quot;fcm&amp;quot; may be used from anywhere on your machine. e.g. by adding the following line in your .bashrc:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/FCM_V1.2/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that the downloaded FCM_V1.2 directory is in your home ($HOME) directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
=== the NetCDF library ===&lt;br /&gt;
The GCM reads and writes input and output files in NetCDF format. Therefore a NetCDF library must be available. As this library is not quite standard you'll probably have to install it yourself on your system (check out [[the netCDF library]] page for more). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/script_install/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
As a side note: The NetCDF library provides a very simple command line tool (ncdump) to inspect the contents of NetCDF files, but you'll need more advanced visualization tools (e.g., Panoply, Python scripts, etc. - see further down this page in the &amp;quot;Checking the Results&amp;quot; section) for more advanced post-processing of the outputs.&lt;br /&gt;
&lt;br /&gt;
=== the IOIPSL library ===&lt;br /&gt;
&lt;br /&gt;
The IOIPSL (Input/Output IPSL) library is a library designed to handle both the reading of some input files used by the GCM (the *.def files which are described further below) and the writing of some NetCDF output files.&lt;br /&gt;
&lt;br /&gt;
==== Prior to a first compilation: ksh to bash conversion ====&lt;br /&gt;
Some of the IOIPSL install scripts are written in ksh (Korn shell).&lt;br /&gt;
Given that most systems currently use Bash (Bourne Again Shell) as their command-line interpreter and not ksh (Korn Shell), you might need to install ksh on your system (assuming you have super-user privileges), for e.g., on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or, if that is not an option, change the occurrences in the package's scripts ('''ins_m_prec''') from:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Automated IOIPSL install script ====&lt;br /&gt;
Scripts to download and install the IOIPSL library can be found in the &amp;quot;ioipsl&amp;quot; subdirectory of the &amp;quot;LMDZ.COMMON&amp;quot; library. Since here we assume we're working with gfortran, the relevant one is &amp;quot;install_ioipsl_gfortran.bash&amp;quot;. If your PATH environment variable is already such that it includes the path to your NetCDF library distribution's bin directory (see previous section) then all you need to do is execute the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./install_ioipsl_gfortran.bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If all went well the script should end with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OK: ioipsl library is in ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''(for further details about [[The_IOIPSL_Library|the IOIPSL library]] and installing it, follow the link and/or use the Search Box at the top of this page)''&lt;br /&gt;
&lt;br /&gt;
== GCM Input Datafiles and Datasets ==&lt;br /&gt;
In order to run, the GCM needs some inputs, such as initial conditions (values of state variables), external inputs (e.g. optical properties) and simulation setup (e.g. specifications on how long to run, which parametrizations should be activated, etc.)&lt;br /&gt;
&lt;br /&gt;
In the spirit of the illustrative example considered here, a set of necessary input data may be downloaded with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/planets/venus/bench_48x32x50.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this is a quite low resolution case, mostly for simple tests or checking that the model was well installed. For scientific work the model is typically run at higher resolution (e.g. 96x96x50; in fact the same directory can be found a bench_96x96x50.tar.gz file).&lt;br /&gt;
&lt;br /&gt;
Nonetheless this ''bench_48x32x50'' example already provides insights on the required input files one needs:&lt;br /&gt;
* a ''run.def'' file, along with companion ''gcm.def'' and ''physiq.def'' ASCII files&lt;br /&gt;
* a ''z2sig.def'' ASCII file, which is read at runtime and contains information about the vertical levels of the PCM&lt;br /&gt;
* a ''traceur.def'' ASCII file, which contains the list of tracers the PCM will use&lt;br /&gt;
* a ''start.nc'' and a ''startphy.nc'' NetCDF files which respectively contain the initial conditions for the dynamics and the physics&lt;br /&gt;
* Input datasets (read at run-time by the PCM) ''ksi_global.txt'' and ''SolarNetFlux_RH.dat''&lt;br /&gt;
&lt;br /&gt;
== Compiling the GCM ==&lt;br /&gt;
Now that all the prerequisites are fulfilled, it is (almost!) time to compile the GCM&lt;br /&gt;
&lt;br /&gt;
=== Prior to a first compilation: setting up the target architecture files ===&lt;br /&gt;
Compiling the model is done using a dedicated Bash script ''makelmdz_fcm'' located in the '''LMDZ.COMMON''' directory. This script however relies on ''architecture files''. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice, one must thus create these ASCII text files in the '''arch/''' subdirectory of '''LMDZ.COMMON'''. The naming convention is rather straightforward, when the script ''makelmdz_fcm'' is run with the option '''-arch somename''', it will look for files ''arch/arch-somename.env'', ''arch/arch-somename.path'' and ''arch/arch-somename.fcm''. Leaving aside a detailed description for later (see [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this page]]), here we mention that:&lt;br /&gt;
* the ''arch*.env'' is an optional file containing ''environment'' information, such as setting up environment variables or loading modules on some machines, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export NETCDF_HOME=/path/to/the/netcdf/distribution&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* the '''arch*.path''' is a mandatory file containing information relative to external libraries such as NetCDF and IOIPSL, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ROOT=$PWD&lt;br /&gt;
&lt;br /&gt;
NETCDF_LIBDIR=&amp;quot;-L${NETCDF_HOME}/lib&amp;quot;&lt;br /&gt;
NETCDF_LIB=&amp;quot;-lnetcdf -lnetcdff&amp;quot;&lt;br /&gt;
NETCDF_INCDIR=&amp;quot;-I${NETCDF_HOME}/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IOIPSL_INCDIR=&amp;quot;-I$ROOT/../IOIPSL/inc&amp;quot;&lt;br /&gt;
IOIPSL_LIBDIR=&amp;quot;-L$ROOT/../IOIPSL/lib&amp;quot;&lt;br /&gt;
IOIPSL_LIB=&amp;quot;-lioipsl&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each library is referenced by a fixed identifier (NETCDF, IOIPSL, XIOS, ...) and 3 trailing strings: '''_LIBDIR''', for the path to the library, '''_LIB''', for the library name(s), and '''_INCDIR''' for the path to the library's ''include'' directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* the '''arch*.fcm''' is a mandatory file containing information relative to the compiler and compilation options, e.g.&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&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     &lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Again, not going into a detailed description (follow [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this link]] for that), just note here that each line corresponds to a keyword (starting with &amp;quot;%&amp;quot;) followed by the relevant options. Here, we mention a few of the main ones:&lt;br /&gt;
* %COMPILER: The compiler to use (here, gfortran)&lt;br /&gt;
* %BASE_FFLAGS: compiler options (always included)&lt;br /&gt;
* %PROD_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-prod&amp;quot; option&lt;br /&gt;
* %DEBUG_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-debug&amp;quot; option&lt;br /&gt;
* %BASE_LD: flags to add at the linking step of the compilation&lt;br /&gt;
&lt;br /&gt;
=== Compiling the test case  ===&lt;br /&gt;
To compile the GCM at the sought resolution, run (in LMDZ.COMMON):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch local -p venus -d 48x32x50 -j 8 gcm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we assume that you have generated the '''arch-local.*''' files as per what is suggested in the previous section.&lt;br /&gt;
The options for ''makelmdz_fcm'' used here imply:&lt;br /&gt;
* '''-p venus''': the GCM will use the &amp;quot;venus&amp;quot; physics package&lt;br /&gt;
* '''-d 48x32x50''': the GCM grid will be 48x32 in longitude x latitude, with 50 vertical levels.&lt;br /&gt;
For a glimpse at all the possible ''makelmdz_fcm'' options and their meanings, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
and/or check the dedicated [[The_makelmdz_fcm_GCM_Compilation_Script|makelmdz_fcm page]].&lt;br /&gt;
&lt;br /&gt;
Upon successful compilation, the executable '''gcm_48x32x50_phyvenus_seq.e''' should be generated in the '''bin''' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Running the GCM ==&lt;br /&gt;
You need to copy (or move) the executable '''gcm_48x32x50_phyvenus_seq.e''' from '''LMDZ.COMMON/bin''' to the directory containing the initial conditions and parameter files, e.g. '''bench_48x32x50'''.&lt;br /&gt;
&lt;br /&gt;
You can now run the GCM.&lt;br /&gt;
This is usually a two-step process: the (optional) first step is to source the environment architecture file (the very same that was used to compile the model), e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ../LMDZ.COMMON/arch.env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The second step is to execute the model, e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gcm_48x32x50_phyvenus_seq.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command line, the (text) outputs messages are redirected into a text file, '''gcm.out'''. It is convenient to keep this file for later inspection (e.g., to track a bug). If there is no redirection (only '''./gcm_48x32x50_phyvenus_seq.e'''), then the outputs will be directly on the screen.&lt;br /&gt;
&lt;br /&gt;
== Checking the Results of a Simulation ==&lt;br /&gt;
Once the simulation is finished, you'll know that all went well (&amp;quot;everything is cool&amp;quot;) if the last few lines of the standard text output are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 in abort_gcm&lt;br /&gt;
 Stopping in leapfrog&lt;br /&gt;
 Reason = Simulation finished &lt;br /&gt;
 Everything is cool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, start looking for an error message and a way to fix the problem...&lt;br /&gt;
&lt;br /&gt;
Apart from the standard text output messages from the GCM, which are mostly for monitoring and checking the simulation progress, the user will more likely be interested in checking the contents of the ''histmth.nc'' file produced by the GCM, as it contains instantaneous values of the main model variables (atmospheric temperature, winds, etc.).&lt;br /&gt;
&lt;br /&gt;
...TODO...ADD HERE SOME ILLUSTRATIVE PLOTS OF THE EXPECTED BENCH OUTPUTS...&lt;br /&gt;
&lt;br /&gt;
== Taking Things to the Next Level ==&lt;br /&gt;
The short tutorial presented in this page is meant to be useful to get an overview of what is required to install and run the GCM, in addition to checking the results of a simulation. Moving on to a more intensive and problem-specific usage will require diving into additional topics and aspects.&lt;br /&gt;
&lt;br /&gt;
To run our reference simulation in 96x96x50 (no chemistry, limited to 95 km altitude), you can find here:&lt;br /&gt;
* initial states: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/start-96x96x50.nc?ref_type=heads start-96x96x50.nc] and [https://web.lmd.jussieu.fr/~lmdz/planets/venus/startphy-96x96x50.nc?ref_type=heads startphy-96x96x50.nc]&lt;br /&gt;
* needed inputs: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/venus-inputs-Jan2026.tgz?ref_type=heads venus-inputs-Jan2026.tgz]&lt;br /&gt;
* readme for inputs: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/readme-inputs.txt?ref_type=heads readme-inputs.txt]&lt;br /&gt;
&lt;br /&gt;
For such a run, these features will be essential:&lt;br /&gt;
* Compiling and running in parallel (MPI) to run faster: [[Running the Venus PCM in parallel]]&lt;br /&gt;
* Using [[The XIOS Library|the XIOS library]] (instead of IOIPSL) to handle PCM outputs: [[Managing the Venus PCM outputs]]&lt;br /&gt;
&lt;br /&gt;
To dive deeper into more advanced studies, you may consider also:&lt;br /&gt;
* Running with advanced configurations of the physics packages, e.g. adding chemistry, thermospheric processes, etc. &lt;br /&gt;
* Selecting the appropriate inputs and run parameters for a given study.&lt;br /&gt;
* Compiling and running with the other dynamical cores (DYNAMICO and WRF)&lt;br /&gt;
* post-processing and analysis of model outputs&lt;br /&gt;
&lt;br /&gt;
All these points and much more are detailed in the many pages of this site (do check out the menu on the left and dare use intensively the site's search engine)!&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;br /&gt;
[[Category:Venus-LMDZ]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2818</id>
		<title>Farming</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2818"/>
				<updated>2025-09-02T14:33:43Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, we present working examples on how to &amp;quot;farm&amp;quot; simulations on computing clusters.&lt;br /&gt;
&lt;br /&gt;
'''On adastra (CINES)'''&lt;br /&gt;
&lt;br /&gt;
One node on adastra is 192 cores. When you favorite PCM configuration does not scale easily to run on a full node, you can use shared nodes, but there are not a lot of them and you end up queueing a lot... &lt;br /&gt;
&lt;br /&gt;
If you opt for the &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
option, you'll get all the node for you, launch your jobs faster, but all the 192 cores will be billed for hours...&lt;br /&gt;
&lt;br /&gt;
To make your runs more efficient, you can group several simulations on the same node, so that they run at the same time on your exclusive node, under the same launching script. You share only with you,  on an exclusive node ! This means you avoid wasting unused-core hours.&lt;br /&gt;
&lt;br /&gt;
To do this, here is an example :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --account=cin0391&lt;br /&gt;
#SBATCH --job-name=vcd2dot4&lt;br /&gt;
#SBATCH --output=%x_%A.out&lt;br /&gt;
#SBATCH --error=%x_%A.err&lt;br /&gt;
#SBATCH --constraint=GENOA&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
#SBATCH --time=24:00:00&lt;br /&gt;
&lt;br /&gt;
### source your environment here&lt;br /&gt;
&lt;br /&gt;
ulimit -s unlimited&lt;br /&gt;
set -eux&lt;br /&gt;
&lt;br /&gt;
workdir1=&amp;lt;path-to-yor-first-job&amp;gt;&lt;br /&gt;
workdir2=&amp;lt;path-to-yor-second-job&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd $workdir1&lt;br /&gt;
### Activities to prepare your first job&lt;br /&gt;
cd $workdir2&lt;br /&gt;
### Activities to prepare your second job&lt;br /&gt;
&lt;br /&gt;
#### launch first job:&lt;br /&gt;
cd $workdir1&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output1 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
#### launch second job:&lt;br /&gt;
cd $workdir2&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output2 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID2=$!&lt;br /&gt;
&lt;br /&gt;
wait &lt;br /&gt;
status=$?&lt;br /&gt;
echo $PID1.$status&lt;br /&gt;
echo $PID2.$status&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
### activities after the end of both jobs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each job runs in its own directory, and the last part of the script will be executed when both jobs are done.&lt;br /&gt;
Here, 96 cores are used for each job. You can share the cores as you wish, but keep jobs in balance so that they finish roughly at the same time.&lt;br /&gt;
You can also do this with 4 jobs on 48 cores, or 8 on 24 cores, etc...&lt;br /&gt;
&lt;br /&gt;
Be aware of the use of memory ! If your jobs need more memory than the one allocated for its corresponding cores, you will need to waste cores to get all the memory each job needs.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
each node has 768 GB of memory, so 4 GB per core. If your job needs 8 GB/core, you will be able to use only 96 cores.&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2817</id>
		<title>Farming</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2817"/>
				<updated>2025-09-02T14:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, we present working examples on how to &amp;quot;farm&amp;quot; simulations on computing clusters.&lt;br /&gt;
&lt;br /&gt;
'''On adastra (CINES)'''&lt;br /&gt;
&lt;br /&gt;
One node on adastra is 192 cores. When you favorite PCM configuration does not scale easily to run on a full node, you can use shared nodes, but there are not a lot of them and you end up queueing a lot... &lt;br /&gt;
&lt;br /&gt;
If you opt for the &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
option, you'll get all the node for you, launch your jobs faster, but all the 192 cores will be billed for hours...&lt;br /&gt;
&lt;br /&gt;
To make your runs more efficient, you can group several simulations on the same node, so that they run at the same time on your exclusive node, under the same launching script. You share only with you,  on an exclusive node ! This means you avoid wasting unused-core hours.&lt;br /&gt;
&lt;br /&gt;
To do this, here is an example :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --account=cin0391&lt;br /&gt;
#SBATCH --job-name=vcd2dot4&lt;br /&gt;
#SBATCH --output=%x_%A.out&lt;br /&gt;
#SBATCH --error=%x_%A.err&lt;br /&gt;
#SBATCH --constraint=GENOA&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
#SBATCH --time=24:00:00&lt;br /&gt;
&lt;br /&gt;
### source your environment here&lt;br /&gt;
&lt;br /&gt;
ulimit -s unlimited&lt;br /&gt;
set -eux&lt;br /&gt;
&lt;br /&gt;
workdir1=&amp;lt;path-to-yor-first-job&amp;gt;&lt;br /&gt;
workdir2=&amp;lt;path-to-yor-second-job&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd $workdir1&lt;br /&gt;
### Activities to prepare your first job&lt;br /&gt;
cd $workdir2&lt;br /&gt;
### Activities to prepare your second job&lt;br /&gt;
&lt;br /&gt;
#### launch first job:&lt;br /&gt;
cd $workdir1&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output1 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
#### launch second job:&lt;br /&gt;
cd $workdir2&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output2 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID2=$!&lt;br /&gt;
&lt;br /&gt;
wait &lt;br /&gt;
status=$?&lt;br /&gt;
echo $PID1.$status&lt;br /&gt;
echo $PID2.$status&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
### activities after the end of both jobs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each job runs in its own directory, and the last part of the script will be executed when both jobs are done.&lt;br /&gt;
Here, 96 cores are used for each job. You can share the cores as you wish, but keep jobs in balance so that they finish roughly at the same time.&lt;br /&gt;
You can also do this with 4 jobs on 48 cores, or 8 on 24 cores, etc...&lt;br /&gt;
&lt;br /&gt;
Be aware of the use of memory ! If your jobs need more memory than the one allocated for its corresponding cores, you will need to waste cores to get all the memory each job needs.&lt;br /&gt;
''Example:''&lt;br /&gt;
each node has 768 GB of memory, so 4 GB per core. If your job needs 8 GB/core, you will be able to use only 96 cores.&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2816</id>
		<title>Farming</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2816"/>
				<updated>2025-09-02T14:31:59Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, we present working examples on how to &amp;quot;farm&amp;quot; simulations on computing clusters.&lt;br /&gt;
&lt;br /&gt;
'''On adastra (CINES)'''&lt;br /&gt;
&lt;br /&gt;
One node on adastra is 192 cores. When you favorite PCM configuration does not scale easily to run on a full node, you can use shared nodes, but there are not a lot of them and you end up queueing a lot... &lt;br /&gt;
&lt;br /&gt;
If you opt for the &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
option, you'll get all the node for you, launch your jobs faster, but all the 192 cores will be billed for hours...&lt;br /&gt;
&lt;br /&gt;
To make your runs more efficient, you can group several simulations on the same node, so that they run at the same time on your exclusive node, under the same launching script. You share only with you,  on an exclusive node ! This means you avoid wasting unused-core hours.&lt;br /&gt;
&lt;br /&gt;
To do this, here is an example :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --account=cin0391&lt;br /&gt;
#SBATCH --job-name=vcd2dot4&lt;br /&gt;
#SBATCH --output=%x_%A.out&lt;br /&gt;
#SBATCH --error=%x_%A.err&lt;br /&gt;
#SBATCH --constraint=GENOA&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
#SBATCH --time=24:00:00&lt;br /&gt;
&lt;br /&gt;
### source your environment here&lt;br /&gt;
&lt;br /&gt;
ulimit -s unlimited&lt;br /&gt;
set -eux&lt;br /&gt;
&lt;br /&gt;
workdir1=&amp;lt;path-to-yor-first-job&amp;gt;&lt;br /&gt;
workdir2=&amp;lt;path-to-yor-second-job&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd $workdir1&lt;br /&gt;
### Activities to prepare your first job&lt;br /&gt;
cd $workdir2&lt;br /&gt;
### Activities to prepare your second job&lt;br /&gt;
&lt;br /&gt;
#### launch first job:&lt;br /&gt;
cd $workdir1&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output1 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
#### launch second job:&lt;br /&gt;
cd $workdir2&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output2 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
&lt;br /&gt;
wait &lt;br /&gt;
status=$?&lt;br /&gt;
echo $PID1.$status&lt;br /&gt;
echo $PID2.$status&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
### activities after the end of both jobs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each job runs in its own directory, and the last part of the script will be executed when both jobs are done.&lt;br /&gt;
Here, 96 cores are used for each job. You can share the cores as you wish, but keep jobs in balance so that they finish roughly at the same time.&lt;br /&gt;
You can also do this with 4 jobs on 48 cores, or 8 on 24 cores, etc...&lt;br /&gt;
&lt;br /&gt;
Be aware of the use of memory ! If your jobs need more memory than the one allocated for its corresponding cores, you will need to waste cores to get all the memory each job needs.&lt;br /&gt;
''Example:''&lt;br /&gt;
each node has 768 GB of memory, so 4 GB per core. If your job needs 8 GB/core, you will be able to use only 96 cores.&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2815</id>
		<title>Farming</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2815"/>
				<updated>2025-09-02T14:30:41Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, we present working examples on how to &amp;quot;farm&amp;quot; simulations on computing clusters.&lt;br /&gt;
&lt;br /&gt;
'''On adastra (CINES)'''&lt;br /&gt;
&lt;br /&gt;
One node on adastra is 192 cores. When you favorite PCM configuration does not scale easily to run on a full node, you can use shared nodes, but there are not a lot of them and you end up queueing a lot... &lt;br /&gt;
&lt;br /&gt;
If you opt for the &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
option, you'll get all the node for you, launch your jobs faster, but all the 192 cores will be billed for hours...&lt;br /&gt;
&lt;br /&gt;
To make your runs more efficient, you can group several simulations on the same node, so that they run at the same time on your exclusive node, under the same launching script. You share only with you,  on an exclusive node ! This means you avoid wasting unused-core hours.&lt;br /&gt;
&lt;br /&gt;
To do this, here is an example :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --account=cin0391&lt;br /&gt;
#SBATCH --job-name=vcd2dot4&lt;br /&gt;
#SBATCH --output=%x_%A.out&lt;br /&gt;
#SBATCH --error=%x_%A.err&lt;br /&gt;
#SBATCH --constraint=GENOA&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
#SBATCH --time=24:00:00&lt;br /&gt;
&lt;br /&gt;
### source your environment here&lt;br /&gt;
&lt;br /&gt;
ulimit -s unlimited&lt;br /&gt;
set -eux&lt;br /&gt;
&lt;br /&gt;
workdir1=&amp;lt;path-to-yor-first-job&amp;gt;&lt;br /&gt;
workdir2=&amp;lt;path-to-yor-second-job&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd $workdir1&lt;br /&gt;
### Activities to prepare your first job&lt;br /&gt;
cd $workdir2&lt;br /&gt;
### Activities to prepare your second job&lt;br /&gt;
&lt;br /&gt;
#### launch first job:&lt;br /&gt;
cd $workdir1&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output1 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
cd $workdir2&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output2 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
&lt;br /&gt;
wait &lt;br /&gt;
status=$?&lt;br /&gt;
echo $PID1.$status&lt;br /&gt;
echo $PID2.$status&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
### activities after the end of both jobs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each job runs in its own directory, and the last part of the script will be executed when both jobs are done.&lt;br /&gt;
Here, 96 cores are used for each job. You can share the cores as you wish, but keep jobs in balance so that they finish roughly at the same time.&lt;br /&gt;
You can also do this with 4 jobs on 48 cores, or 8 on 24 cores, etc...&lt;br /&gt;
&lt;br /&gt;
Be aware of the use of memory ! If your jobs need more memory than the one allocated for its corresponding cores, you will need to waste cores to get all the memory each job needs.&lt;br /&gt;
''Example:''&lt;br /&gt;
each node has 768 GB of memory, so 4 GB per core. If your job needs 8 GB/core, you will be able to use only 96 cores.&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2814</id>
		<title>Farming</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2814"/>
				<updated>2025-09-02T14:30:25Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, we present working examples on how to &amp;quot;farm&amp;quot; simulations on computing clusters.&lt;br /&gt;
&lt;br /&gt;
'''On adastra (CINES)'''&lt;br /&gt;
&lt;br /&gt;
One node on adastra is 192 cores. When you favorite PCM configuration does not scale easily to run on a full node, you can use shared nodes, but there are not a lot of them and you end up queueing a lot... &lt;br /&gt;
If you opt for the &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
option, you'll get all the node for you, launch your jobs faster, but all the 192 cores will be billed for hours...&lt;br /&gt;
&lt;br /&gt;
To make your runs more efficient, you can group several simulations on the same node, so that they run at the same time on your exclusive node, under the same launching script. You share only with you,  on an exclusive node ! This means you avoid wasting unused-core hours.&lt;br /&gt;
&lt;br /&gt;
To do this, here is an example :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --account=cin0391&lt;br /&gt;
#SBATCH --job-name=vcd2dot4&lt;br /&gt;
#SBATCH --output=%x_%A.out&lt;br /&gt;
#SBATCH --error=%x_%A.err&lt;br /&gt;
#SBATCH --constraint=GENOA&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
#SBATCH --time=24:00:00&lt;br /&gt;
&lt;br /&gt;
### source your environment here&lt;br /&gt;
&lt;br /&gt;
ulimit -s unlimited&lt;br /&gt;
set -eux&lt;br /&gt;
&lt;br /&gt;
workdir1=&amp;lt;path-to-yor-first-job&amp;gt;&lt;br /&gt;
workdir2=&amp;lt;path-to-yor-second-job&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd $workdir1&lt;br /&gt;
### Activities to prepare your first job&lt;br /&gt;
cd $workdir2&lt;br /&gt;
### Activities to prepare your second job&lt;br /&gt;
&lt;br /&gt;
#### launch first job:&lt;br /&gt;
cd $workdir1&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output1 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
cd $workdir2&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output2 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
&lt;br /&gt;
wait &lt;br /&gt;
status=$?&lt;br /&gt;
echo $PID1.$status&lt;br /&gt;
echo $PID2.$status&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
### activities after the end of both jobs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each job runs in its own directory, and the last part of the script will be executed when both jobs are done.&lt;br /&gt;
Here, 96 cores are used for each job. You can share the cores as you wish, but keep jobs in balance so that they finish roughly at the same time.&lt;br /&gt;
You can also do this with 4 jobs on 48 cores, or 8 on 24 cores, etc...&lt;br /&gt;
&lt;br /&gt;
Be aware of the use of memory ! If your jobs need more memory than the one allocated for its corresponding cores, you will need to waste cores to get all the memory each job needs.&lt;br /&gt;
''Example:''&lt;br /&gt;
each node has 768 GB of memory, so 4 GB per core. If your job needs 8 GB/core, you will be able to use only 96 cores.&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2813</id>
		<title>Farming</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Farming&amp;diff=2813"/>
				<updated>2025-09-02T14:29:41Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, we present working examples on how to &amp;quot;farm&amp;quot; simulations on computing clusters.&lt;br /&gt;
&lt;br /&gt;
'''On adastra (CINES)'''&lt;br /&gt;
&lt;br /&gt;
One node on adastra is 192 cores. When you favorite PCM configuration does not scale easily to run on a full node, you can use shared nodes, but there are not a lot of them and you end up queueing a lot... If you opt for the &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
option, you'll get all the node for you, launch your jobs faster, but all the 192 cores will be billed for hours...&lt;br /&gt;
&lt;br /&gt;
To make your runs more efficient, you can group several simulations on the same node, so that they run at the same time on your exclusive node, under the same launching script. You share only with you,  on an exclusive node ! This means you avoid wasting unused-core hours.&lt;br /&gt;
&lt;br /&gt;
To do this, here is an example :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --account=cin0391&lt;br /&gt;
#SBATCH --job-name=vcd2dot4&lt;br /&gt;
#SBATCH --output=%x_%A.out&lt;br /&gt;
#SBATCH --error=%x_%A.err&lt;br /&gt;
#SBATCH --constraint=GENOA&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --exclusive&lt;br /&gt;
#SBATCH --time=24:00:00&lt;br /&gt;
&lt;br /&gt;
### source your environment here&lt;br /&gt;
&lt;br /&gt;
ulimit -s unlimited&lt;br /&gt;
set -eux&lt;br /&gt;
&lt;br /&gt;
workdir1=&amp;lt;path-to-yor-first-job&amp;gt;&lt;br /&gt;
workdir2=&amp;lt;path-to-yor-second-job&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd $workdir1&lt;br /&gt;
### Activities to prepare your first job&lt;br /&gt;
cd $workdir2&lt;br /&gt;
### Activities to prepare your second job&lt;br /&gt;
&lt;br /&gt;
#### launch first job:&lt;br /&gt;
cd $workdir1&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output1 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
cd $workdir2&lt;br /&gt;
srun --ntasks-per-node=96 --cpus-per-task=1 --threads-per-core=1 -- your.exe &amp;gt; output2 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
PID1=$!&lt;br /&gt;
&lt;br /&gt;
wait &lt;br /&gt;
status=$?&lt;br /&gt;
echo $PID1.$status&lt;br /&gt;
echo $PID2.$status&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
### activities after the end of both jobs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each job runs in its own directory, and the last part of the script will be executed when both jobs are done.&lt;br /&gt;
Here, 96 cores are used for each job. You can share the cores as you wish, but keep jobs in balance so that they finish roughly at the same time.&lt;br /&gt;
You can also do this with 4 jobs on 48 cores, or 8 on 24 cores, etc...&lt;br /&gt;
&lt;br /&gt;
Be aware of the use of memory ! If your jobs need more memory than the one allocated for its corresponding cores, you will need to waste cores to get all the memory each job needs.&lt;br /&gt;
''Example:''&lt;br /&gt;
each node has 768 GB of memory, so 4 GB per core. If your job needs 8 GB/core, you will be able to use only 96 cores.&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2803</id>
		<title>Quick Install and Run Venus PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2803"/>
				<updated>2025-08-13T09:02:45Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: /* Taking Things to the Next Level */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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 Venus PCM (with the LMDZ dynamical core), set up on a Linux computer.&lt;br /&gt;
&lt;br /&gt;
Note that there is a dedicated, install script, that attempts to do all these steps (up to and including running the simulation) that you can obtain here: https://web.lmd.jussieu.fr/~lmdz/planets/install_lmdz_venus.bash&lt;br /&gt;
Automating the process is not trivial as there are many subtle variants of Linux flavors and user account setups, so the script may fail in your case, but hopefully the information given in this page should help you solve the encountered problems.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites: Tools and Libraries ==&lt;br /&gt;
In order to use (i.e. compile and run) the GCM, one needs to have some tools and installed libraries at hand. We list below a (minimal) set that you should check that is available and/or that you'll need to first install on your machine. Note that we assume in this tutorial that you are on a Linux native-OS/cluster.&lt;br /&gt;
&lt;br /&gt;
===  Fortran compiler ===&lt;br /&gt;
The GCM source code is in Fortran. One thus needs a Fortran compiler to build (compile) the executable.&lt;br /&gt;
The most easily available one (on Linux) is gfortran and examples discussed here will assume it is the one used.&lt;br /&gt;
You can check that you indeed have a gfortran compiler at hand with the following Bash command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which should return something like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
The source code is managed using subversion (svn), which you'll need to download or update. Leaving aside the subtleties of svn and code organization for now, downloading the code amounts to doing the following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
cd trunk&lt;br /&gt;
svn update LMDZ.COMMON LMDZ.VENUS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a side note: the source code that will be fetched by svn can also be browsed online here: https://trac.lmd.jussieu.fr/Planeto&lt;br /&gt;
&lt;br /&gt;
=== FCM ===&lt;br /&gt;
The FCM (Flexible Configuration Management) tool is a suite of perl scripts to help building and managing codes. We use a slightly modified version which can be obtained using subversion (svn). Ideally you'll want to download it somewhere on your computer once in for all. To do this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://forge.ipsl.fr/fcm/svn/PATCHED/FCM_V1.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You'll then need to add the resulting FCM_V1.2/bin to your PATH environment variable so that the command &amp;quot;fcm&amp;quot; may be used from anywhere on your machine. e.g. by adding the following line in your .bashrc:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/FCM_V1.2/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that the downloaded FCM_V1.2 directory is in your home ($HOME) directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
=== the NetCDF library ===&lt;br /&gt;
The GCM reads and writes input and output files in NetCDF format. Therefore a NetCDF library must be available. As this library is not quite standard you'll probably have to install it yourself on your system (check out [[the netCDF library]] page for more). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/script_install/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
As a side note: The NetCDF library provides a very simple command line tool (ncdump) to inspect the contents of NetCDF files, but you'll need more advanced visualization tools (e.g., Panoply, Python scripts, etc. - see further down this page in the &amp;quot;Checking the Results&amp;quot; section) for more advanced post-processing of the outputs.&lt;br /&gt;
&lt;br /&gt;
=== the IOIPSL library ===&lt;br /&gt;
&lt;br /&gt;
The IOIPSL (Input/Output IPSL) library is a library designed to handle both the reading of some input files used by the GCM (the *.def files which are described further below) and the writing of some NetCDF output files.&lt;br /&gt;
&lt;br /&gt;
==== Prior to a first compilation: ksh to bash conversion ====&lt;br /&gt;
Some of the IOIPSL install scripts are written in ksh (Korn shell).&lt;br /&gt;
Given that most systems currently use Bash (Bourne Again Shell) as their command-line interpreter and not ksh (Korn Shell), you might need to install ksh on your system (assuming you have super-user privileges), for e.g., on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or, if that is not an option, change the occurrences in the package's scripts ('''ins_m_prec''') from:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Automated IOIPSL install script ====&lt;br /&gt;
Scripts to download and install the IOIPSL library can be found in the &amp;quot;ioipsl&amp;quot; subdirectory of the &amp;quot;LMDZ.COMMON&amp;quot; library. Since here we assume we're working with gfortran, the relevant one is &amp;quot;install_ioipsl_gfortran.bash&amp;quot;. If your PATH environment variable is already such that it includes the path to your NetCDF library distribution's bin directory (see previous section) then all you need to do is execute the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./install_ioipsl_gfortran.bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If all went well the script should end with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OK: ioipsl library is in ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''(for further details about [[The_IOIPSL_Library|the IOIPSL library]] and installing it, follow the link and/or use the Search Box at the top of this page)''&lt;br /&gt;
&lt;br /&gt;
== GCM Input Datafiles and Datasets ==&lt;br /&gt;
In order to run, the GCM needs some inputs, such as initial conditions (values of state variables), external inputs (e.g. optical properties) and simulation setup (e.g. specifications on how long to run, which parametrizations should be activated, etc.)&lt;br /&gt;
&lt;br /&gt;
In the spirit of the illustrative example considered here, a set of necessary input data may be downloaded with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/planets/venus/bench_48x32x50.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this is a quite low resolution case, mostly for simple tests or checking that the model was well installed. For scientific work the model is typically run at higher resolution (e.g. 96x96x50; in fact the same directory can be found a bench_96x96x50.tar.gz file).&lt;br /&gt;
&lt;br /&gt;
Nonetheless this ''bench_48x32x50'' example already provides insights on the required input files one needs:&lt;br /&gt;
* a ''run.def'' file, along with companion ''gcm.def'' and ''physiq.def'' ASCII files&lt;br /&gt;
* a ''z2sig.def'' ASCII file, which is read at runtime and contains information about the vertical levels of the PCM&lt;br /&gt;
* a ''traceur.def'' ASCII file, which contains the list of tracers the PCM will use&lt;br /&gt;
* a ''start.nc'' and a ''startphy.nc'' NetCDF files which respectively contain the initial conditions for the dynamics and the physics&lt;br /&gt;
* Input datasets (read at run-time by the PCM) ''ksi_global.txt'' and ''SolarNetFlux_RH.dat''&lt;br /&gt;
&lt;br /&gt;
== Compiling the GCM ==&lt;br /&gt;
Now that all the prerequisites are fulfilled, it is (almost!) time to compile the GCM&lt;br /&gt;
&lt;br /&gt;
=== Prior to a first compilation: setting up the target architecture files ===&lt;br /&gt;
Compiling the model is done using a dedicated Bash script ''makelmdz_fcm'' located in the '''LMDZ.COMMON''' directory. This script however relies on ''architecture files''. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice, one must thus create these ASCII text files in the '''arch/''' subdirectory of '''LMDZ.COMMON'''. The naming convention is rather straightforward, when the script ''makelmdz_fcm'' is run with the option '''-arch somename''', it will look for files ''arch/arch-somename.env'', ''arch/arch-somename.path'' and ''arch/arch-somename.fcm''. Leaving aside a detailed description for later (see [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this page]]), here we mention that:&lt;br /&gt;
* the ''arch*.env'' is an optional file containing ''environment'' information, such as setting up environment variables or loading modules on some machines, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export NETCDF_HOME=/path/to/the/netcdf/distribution&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* the '''arch*.path''' is a mandatory file containing information relative to external libraries such as NetCDF and IOIPSL, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ROOT=$PWD&lt;br /&gt;
&lt;br /&gt;
NETCDF_LIBDIR=&amp;quot;-L${NETCDF_HOME}/lib&amp;quot;&lt;br /&gt;
NETCDF_LIB=&amp;quot;-lnetcdf -lnetcdff&amp;quot;&lt;br /&gt;
NETCDF_INCDIR=&amp;quot;-I${NETCDF_HOME}/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IOIPSL_INCDIR=&amp;quot;-I$ROOT/../IOIPSL/inc&amp;quot;&lt;br /&gt;
IOIPSL_LIBDIR=&amp;quot;-L$ROOT/../IOIPSL/lib&amp;quot;&lt;br /&gt;
IOIPSL_LIB=&amp;quot;-lioipsl&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each library is referenced by a fixed identifier (NETCDF, IOIPSL, XIOS, ...) and 3 trailing strings: '''_LIBDIR''', for the path to the library, '''_LIB''', for the library name(s), and '''_INCDIR''' for the path to the library's ''include'' directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* the '''arch*.fcm''' is a mandatory file containing information relative to the compiler and compilation options, e.g.&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&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     &lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Again, not going into a detailed description (follow [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this link]] for that), just note here that each line corresponds to a keyword (starting with &amp;quot;%&amp;quot;) followed by the relevant options. Here, we mention a few of the main ones:&lt;br /&gt;
* %COMPILER: The compiler to use (here, gfortran)&lt;br /&gt;
* %BASE_FFLAGS: compiler options (always included)&lt;br /&gt;
* %PROD_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-prod&amp;quot; option&lt;br /&gt;
* %DEBUG_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-debug&amp;quot; option&lt;br /&gt;
* %BASE_LD: flags to add at the linking step of the compilation&lt;br /&gt;
&lt;br /&gt;
=== Compiling the test case  ===&lt;br /&gt;
To compile the GCM at the sought resolution, run (in LMDZ.COMMON):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch local -p venus -d 48x32x50 -j 8 gcm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we assume that you have generated the '''arch-local.*''' files as per what is suggested in the previous section.&lt;br /&gt;
The options for ''makelmdz_fcm'' used here imply:&lt;br /&gt;
* '''-p venus''': the GCM will use the &amp;quot;venus&amp;quot; physics package&lt;br /&gt;
* '''-d 48x32x50''': the GCM grid will be 48x32 in longitude x latitude, with 50 vertical levels.&lt;br /&gt;
For a glimpse at all the possible ''makelmdz_fcm'' options and their meanings, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
and/or check the dedicated [[The_makelmdz_fcm_GCM_Compilation_Script|makelmdz_fcm page]].&lt;br /&gt;
&lt;br /&gt;
Upon successful compilation, the executable '''gcm_48x32x50_phyvenus_seq.e''' should be generated in the '''bin''' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Running the GCM ==&lt;br /&gt;
You need to copy (or move) the executable '''gcm_48x32x50_phyvenus_seq.e''' from '''LMDZ.COMMON/bin''' to the directory containing the initial conditions and parameter files, e.g. '''bench_48x32x50'''.&lt;br /&gt;
&lt;br /&gt;
You can now run the GCM.&lt;br /&gt;
This is usually a two-step process: the (optional) first step is to source the environment architecture file (the very same that was used to compile the model), e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ../LMDZ.COMMON/arch.env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The second step is to execute the model, e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gcm_48x32x50_phyvenus_seq.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command line, the (text) outputs messages are redirected into a text file, '''gcm.out'''. It is convenient to keep this file for later inspection (e.g., to track a bug). If there is no redirection (only '''./gcm_48x32x50_phyvenus_seq.e'''), then the outputs will be directly on the screen.&lt;br /&gt;
&lt;br /&gt;
== Checking the Results of a Simulation ==&lt;br /&gt;
Once the simulation is finished, you'll know that all went well (&amp;quot;everything is cool&amp;quot;) if the last few lines of the standard text output are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 in abort_gcm&lt;br /&gt;
 Stopping in leapfrog&lt;br /&gt;
 Reason = Simulation finished &lt;br /&gt;
 Everything is cool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, start looking for an error message and a way to fix the problem...&lt;br /&gt;
&lt;br /&gt;
Apart from the standard text output messages from the GCM, which are mostly for monitoring and checking the simulation progress, the user will more likely be interested in checking the contents of the ''histmth.nc'' file produced by the GCM, as it contains instantaneous values of the main model variables (atmospheric temperature, winds, etc.).&lt;br /&gt;
&lt;br /&gt;
...TODO...ADD HERE SOME ILLUSTRATIVE PLOTS OF THE EXPECTED BENCH OUTPUTS...&lt;br /&gt;
&lt;br /&gt;
== Taking Things to the Next Level ==&lt;br /&gt;
The short tutorial presented in this page is meant to be useful to get an overview of what is required to install and run the GCM, in addition to checking the results of a simulation. Moving on to a more intensive and problem-specific usage will require diving into additional topics and aspects.&lt;br /&gt;
&lt;br /&gt;
To run our reference simulation in 96x96x50 (no chemistry, limited to 95 km altitude), you can find here:&lt;br /&gt;
* initial states: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/start-96x96x50.nc?ref_type=heads start-96x96x50.nc] and [https://web.lmd.jussieu.fr/~lmdz/planets/venus/startphy-96x96x50.nc?ref_type=heads startphy-96x96x50.nc]&lt;br /&gt;
* needed inputs: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/venus-inputs-Mar2025.tgz?ref_type=heads venus-inputs-Mar2025.tgz]&lt;br /&gt;
* readme for inputs: [https://web.lmd.jussieu.fr/~lmdz/planets/venus/readme-inputs.txt?ref_type=heads readme-inputs.txt]&lt;br /&gt;
&lt;br /&gt;
For such a run, these features will be essential:&lt;br /&gt;
* Compiling and running in parallel (MPI) to run faster: [[Running the Venus PCM in parallel]]&lt;br /&gt;
* Using [[The XIOS Library|the XIOS library]] (instead of IOIPSL) to handle PCM outputs: [[Managing the Venus PCM outputs]]&lt;br /&gt;
&lt;br /&gt;
To dive deeper into more advanced studies, you may consider also:&lt;br /&gt;
* Running with advanced configurations of the physics packages, e.g. adding chemistry, thermospheric processes, etc. &lt;br /&gt;
* Selecting the appropriate inputs and run parameters for a given study.&lt;br /&gt;
* Compiling and running with the other dynamical cores (DYNAMICO and WRF)&lt;br /&gt;
* post-processing and analysis of model outputs&lt;br /&gt;
&lt;br /&gt;
All these points and much more are detailed in the many pages of this site (do check out the menu on the left and dare use intensively the site's search engine)!&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;br /&gt;
[[Category:Venus-LMDZ]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2802</id>
		<title>Quick Install and Run Venus PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2802"/>
				<updated>2025-08-13T08:57:30Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: /* Taking Things to the Next Level */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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 Venus PCM (with the LMDZ dynamical core), set up on a Linux computer.&lt;br /&gt;
&lt;br /&gt;
Note that there is a dedicated, install script, that attempts to do all these steps (up to and including running the simulation) that you can obtain here: https://web.lmd.jussieu.fr/~lmdz/planets/install_lmdz_venus.bash&lt;br /&gt;
Automating the process is not trivial as there are many subtle variants of Linux flavors and user account setups, so the script may fail in your case, but hopefully the information given in this page should help you solve the encountered problems.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites: Tools and Libraries ==&lt;br /&gt;
In order to use (i.e. compile and run) the GCM, one needs to have some tools and installed libraries at hand. We list below a (minimal) set that you should check that is available and/or that you'll need to first install on your machine. Note that we assume in this tutorial that you are on a Linux native-OS/cluster.&lt;br /&gt;
&lt;br /&gt;
===  Fortran compiler ===&lt;br /&gt;
The GCM source code is in Fortran. One thus needs a Fortran compiler to build (compile) the executable.&lt;br /&gt;
The most easily available one (on Linux) is gfortran and examples discussed here will assume it is the one used.&lt;br /&gt;
You can check that you indeed have a gfortran compiler at hand with the following Bash command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which should return something like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
The source code is managed using subversion (svn), which you'll need to download or update. Leaving aside the subtleties of svn and code organization for now, downloading the code amounts to doing the following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
cd trunk&lt;br /&gt;
svn update LMDZ.COMMON LMDZ.VENUS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a side note: the source code that will be fetched by svn can also be browsed online here: https://trac.lmd.jussieu.fr/Planeto&lt;br /&gt;
&lt;br /&gt;
=== FCM ===&lt;br /&gt;
The FCM (Flexible Configuration Management) tool is a suite of perl scripts to help building and managing codes. We use a slightly modified version which can be obtained using subversion (svn). Ideally you'll want to download it somewhere on your computer once in for all. To do this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://forge.ipsl.fr/fcm/svn/PATCHED/FCM_V1.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You'll then need to add the resulting FCM_V1.2/bin to your PATH environment variable so that the command &amp;quot;fcm&amp;quot; may be used from anywhere on your machine. e.g. by adding the following line in your .bashrc:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/FCM_V1.2/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that the downloaded FCM_V1.2 directory is in your home ($HOME) directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
=== the NetCDF library ===&lt;br /&gt;
The GCM reads and writes input and output files in NetCDF format. Therefore a NetCDF library must be available. As this library is not quite standard you'll probably have to install it yourself on your system (check out [[the netCDF library]] page for more). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/script_install/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
As a side note: The NetCDF library provides a very simple command line tool (ncdump) to inspect the contents of NetCDF files, but you'll need more advanced visualization tools (e.g., Panoply, Python scripts, etc. - see further down this page in the &amp;quot;Checking the Results&amp;quot; section) for more advanced post-processing of the outputs.&lt;br /&gt;
&lt;br /&gt;
=== the IOIPSL library ===&lt;br /&gt;
&lt;br /&gt;
The IOIPSL (Input/Output IPSL) library is a library designed to handle both the reading of some input files used by the GCM (the *.def files which are described further below) and the writing of some NetCDF output files.&lt;br /&gt;
&lt;br /&gt;
==== Prior to a first compilation: ksh to bash conversion ====&lt;br /&gt;
Some of the IOIPSL install scripts are written in ksh (Korn shell).&lt;br /&gt;
Given that most systems currently use Bash (Bourne Again Shell) as their command-line interpreter and not ksh (Korn Shell), you might need to install ksh on your system (assuming you have super-user privileges), for e.g., on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or, if that is not an option, change the occurrences in the package's scripts ('''ins_m_prec''') from:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Automated IOIPSL install script ====&lt;br /&gt;
Scripts to download and install the IOIPSL library can be found in the &amp;quot;ioipsl&amp;quot; subdirectory of the &amp;quot;LMDZ.COMMON&amp;quot; library. Since here we assume we're working with gfortran, the relevant one is &amp;quot;install_ioipsl_gfortran.bash&amp;quot;. If your PATH environment variable is already such that it includes the path to your NetCDF library distribution's bin directory (see previous section) then all you need to do is execute the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./install_ioipsl_gfortran.bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If all went well the script should end with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OK: ioipsl library is in ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''(for further details about [[The_IOIPSL_Library|the IOIPSL library]] and installing it, follow the link and/or use the Search Box at the top of this page)''&lt;br /&gt;
&lt;br /&gt;
== GCM Input Datafiles and Datasets ==&lt;br /&gt;
In order to run, the GCM needs some inputs, such as initial conditions (values of state variables), external inputs (e.g. optical properties) and simulation setup (e.g. specifications on how long to run, which parametrizations should be activated, etc.)&lt;br /&gt;
&lt;br /&gt;
In the spirit of the illustrative example considered here, a set of necessary input data may be downloaded with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/planets/venus/bench_48x32x50.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this is a quite low resolution case, mostly for simple tests or checking that the model was well installed. For scientific work the model is typically run at higher resolution (e.g. 96x96x50; in fact the same directory can be found a bench_96x96x50.tar.gz file).&lt;br /&gt;
&lt;br /&gt;
Nonetheless this ''bench_48x32x50'' example already provides insights on the required input files one needs:&lt;br /&gt;
* a ''run.def'' file, along with companion ''gcm.def'' and ''physiq.def'' ASCII files&lt;br /&gt;
* a ''z2sig.def'' ASCII file, which is read at runtime and contains information about the vertical levels of the PCM&lt;br /&gt;
* a ''traceur.def'' ASCII file, which contains the list of tracers the PCM will use&lt;br /&gt;
* a ''start.nc'' and a ''startphy.nc'' NetCDF files which respectively contain the initial conditions for the dynamics and the physics&lt;br /&gt;
* Input datasets (read at run-time by the PCM) ''ksi_global.txt'' and ''SolarNetFlux_RH.dat''&lt;br /&gt;
&lt;br /&gt;
== Compiling the GCM ==&lt;br /&gt;
Now that all the prerequisites are fulfilled, it is (almost!) time to compile the GCM&lt;br /&gt;
&lt;br /&gt;
=== Prior to a first compilation: setting up the target architecture files ===&lt;br /&gt;
Compiling the model is done using a dedicated Bash script ''makelmdz_fcm'' located in the '''LMDZ.COMMON''' directory. This script however relies on ''architecture files''. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice, one must thus create these ASCII text files in the '''arch/''' subdirectory of '''LMDZ.COMMON'''. The naming convention is rather straightforward, when the script ''makelmdz_fcm'' is run with the option '''-arch somename''', it will look for files ''arch/arch-somename.env'', ''arch/arch-somename.path'' and ''arch/arch-somename.fcm''. Leaving aside a detailed description for later (see [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this page]]), here we mention that:&lt;br /&gt;
* the ''arch*.env'' is an optional file containing ''environment'' information, such as setting up environment variables or loading modules on some machines, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export NETCDF_HOME=/path/to/the/netcdf/distribution&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* the '''arch*.path''' is a mandatory file containing information relative to external libraries such as NetCDF and IOIPSL, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ROOT=$PWD&lt;br /&gt;
&lt;br /&gt;
NETCDF_LIBDIR=&amp;quot;-L${NETCDF_HOME}/lib&amp;quot;&lt;br /&gt;
NETCDF_LIB=&amp;quot;-lnetcdf -lnetcdff&amp;quot;&lt;br /&gt;
NETCDF_INCDIR=&amp;quot;-I${NETCDF_HOME}/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IOIPSL_INCDIR=&amp;quot;-I$ROOT/../IOIPSL/inc&amp;quot;&lt;br /&gt;
IOIPSL_LIBDIR=&amp;quot;-L$ROOT/../IOIPSL/lib&amp;quot;&lt;br /&gt;
IOIPSL_LIB=&amp;quot;-lioipsl&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each library is referenced by a fixed identifier (NETCDF, IOIPSL, XIOS, ...) and 3 trailing strings: '''_LIBDIR''', for the path to the library, '''_LIB''', for the library name(s), and '''_INCDIR''' for the path to the library's ''include'' directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* the '''arch*.fcm''' is a mandatory file containing information relative to the compiler and compilation options, e.g.&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&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     &lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Again, not going into a detailed description (follow [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this link]] for that), just note here that each line corresponds to a keyword (starting with &amp;quot;%&amp;quot;) followed by the relevant options. Here, we mention a few of the main ones:&lt;br /&gt;
* %COMPILER: The compiler to use (here, gfortran)&lt;br /&gt;
* %BASE_FFLAGS: compiler options (always included)&lt;br /&gt;
* %PROD_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-prod&amp;quot; option&lt;br /&gt;
* %DEBUG_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-debug&amp;quot; option&lt;br /&gt;
* %BASE_LD: flags to add at the linking step of the compilation&lt;br /&gt;
&lt;br /&gt;
=== Compiling the test case  ===&lt;br /&gt;
To compile the GCM at the sought resolution, run (in LMDZ.COMMON):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch local -p venus -d 48x32x50 -j 8 gcm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we assume that you have generated the '''arch-local.*''' files as per what is suggested in the previous section.&lt;br /&gt;
The options for ''makelmdz_fcm'' used here imply:&lt;br /&gt;
* '''-p venus''': the GCM will use the &amp;quot;venus&amp;quot; physics package&lt;br /&gt;
* '''-d 48x32x50''': the GCM grid will be 48x32 in longitude x latitude, with 50 vertical levels.&lt;br /&gt;
For a glimpse at all the possible ''makelmdz_fcm'' options and their meanings, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
and/or check the dedicated [[The_makelmdz_fcm_GCM_Compilation_Script|makelmdz_fcm page]].&lt;br /&gt;
&lt;br /&gt;
Upon successful compilation, the executable '''gcm_48x32x50_phyvenus_seq.e''' should be generated in the '''bin''' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Running the GCM ==&lt;br /&gt;
You need to copy (or move) the executable '''gcm_48x32x50_phyvenus_seq.e''' from '''LMDZ.COMMON/bin''' to the directory containing the initial conditions and parameter files, e.g. '''bench_48x32x50'''.&lt;br /&gt;
&lt;br /&gt;
You can now run the GCM.&lt;br /&gt;
This is usually a two-step process: the (optional) first step is to source the environment architecture file (the very same that was used to compile the model), e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ../LMDZ.COMMON/arch.env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The second step is to execute the model, e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gcm_48x32x50_phyvenus_seq.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command line, the (text) outputs messages are redirected into a text file, '''gcm.out'''. It is convenient to keep this file for later inspection (e.g., to track a bug). If there is no redirection (only '''./gcm_48x32x50_phyvenus_seq.e'''), then the outputs will be directly on the screen.&lt;br /&gt;
&lt;br /&gt;
== Checking the Results of a Simulation ==&lt;br /&gt;
Once the simulation is finished, you'll know that all went well (&amp;quot;everything is cool&amp;quot;) if the last few lines of the standard text output are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 in abort_gcm&lt;br /&gt;
 Stopping in leapfrog&lt;br /&gt;
 Reason = Simulation finished &lt;br /&gt;
 Everything is cool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, start looking for an error message and a way to fix the problem...&lt;br /&gt;
&lt;br /&gt;
Apart from the standard text output messages from the GCM, which are mostly for monitoring and checking the simulation progress, the user will more likely be interested in checking the contents of the ''histmth.nc'' file produced by the GCM, as it contains instantaneous values of the main model variables (atmospheric temperature, winds, etc.).&lt;br /&gt;
&lt;br /&gt;
...TODO...ADD HERE SOME ILLUSTRATIVE PLOTS OF THE EXPECTED BENCH OUTPUTS...&lt;br /&gt;
&lt;br /&gt;
== Taking Things to the Next Level ==&lt;br /&gt;
The short tutorial presented in this page is meant to be useful to get an overview of what is required to install and run the GCM, in addition to checking the results of a simulation. Moving on to a more intensive and problem-specific usage will require diving into additional topics and aspects.&lt;br /&gt;
&lt;br /&gt;
To run our reference simulation in 96x96x50 (no chemistry, limited to 95 km altitude), you can find here:&lt;br /&gt;
* initial states: https://web.lmd.jussieu.fr/~lmdz/planets/venus/start-96x96x50.nc and https://web.lmd.jussieu.fr/~lmdz/planets/venus/startphy-96x96x50.nc&lt;br /&gt;
* needed inputs: https://web.lmd.jussieu.fr/~lmdz/planets/venus/venus-inputs-Mar2025.tgz&lt;br /&gt;
* readme for inputs: https://web.lmd.jussieu.fr/~lmdz/planets/venus/readme-inputs.txt&lt;br /&gt;
&lt;br /&gt;
For such a run, these features will be essential:&lt;br /&gt;
* Compiling and running in parallel (MPI) to run faster: [[Running the Venus PCM in parallel]]&lt;br /&gt;
* Using [[The XIOS Library|the XIOS library]] (instead of IOIPSL) to handle PCM outputs: [[Managing the Venus PCM outputs]]&lt;br /&gt;
&lt;br /&gt;
To dive deeper into more advanced studies, you may consider also:&lt;br /&gt;
* Running with advanced configurations of the physics packages, e.g. adding chemistry, thermospheric processes, etc. &lt;br /&gt;
* Selecting the appropriate inputs and run parameters for a given study.&lt;br /&gt;
* Compiling and running with the other dynamical cores (DYNAMICO and WRF)&lt;br /&gt;
* post-processing and analysis of model outputs&lt;br /&gt;
&lt;br /&gt;
All these points and much more are detailed in the many pages of this site (do check out the menu on the left and dare use intensively the site's search engine)!&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;br /&gt;
[[Category:Venus-LMDZ]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2801</id>
		<title>Quick Install and Run Venus PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2801"/>
				<updated>2025-08-13T08:55:09Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: /* Taking Things to the Next Level */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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 Venus PCM (with the LMDZ dynamical core), set up on a Linux computer.&lt;br /&gt;
&lt;br /&gt;
Note that there is a dedicated, install script, that attempts to do all these steps (up to and including running the simulation) that you can obtain here: https://web.lmd.jussieu.fr/~lmdz/planets/install_lmdz_venus.bash&lt;br /&gt;
Automating the process is not trivial as there are many subtle variants of Linux flavors and user account setups, so the script may fail in your case, but hopefully the information given in this page should help you solve the encountered problems.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites: Tools and Libraries ==&lt;br /&gt;
In order to use (i.e. compile and run) the GCM, one needs to have some tools and installed libraries at hand. We list below a (minimal) set that you should check that is available and/or that you'll need to first install on your machine. Note that we assume in this tutorial that you are on a Linux native-OS/cluster.&lt;br /&gt;
&lt;br /&gt;
===  Fortran compiler ===&lt;br /&gt;
The GCM source code is in Fortran. One thus needs a Fortran compiler to build (compile) the executable.&lt;br /&gt;
The most easily available one (on Linux) is gfortran and examples discussed here will assume it is the one used.&lt;br /&gt;
You can check that you indeed have a gfortran compiler at hand with the following Bash command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which should return something like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
The source code is managed using subversion (svn), which you'll need to download or update. Leaving aside the subtleties of svn and code organization for now, downloading the code amounts to doing the following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
cd trunk&lt;br /&gt;
svn update LMDZ.COMMON LMDZ.VENUS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a side note: the source code that will be fetched by svn can also be browsed online here: https://trac.lmd.jussieu.fr/Planeto&lt;br /&gt;
&lt;br /&gt;
=== FCM ===&lt;br /&gt;
The FCM (Flexible Configuration Management) tool is a suite of perl scripts to help building and managing codes. We use a slightly modified version which can be obtained using subversion (svn). Ideally you'll want to download it somewhere on your computer once in for all. To do this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://forge.ipsl.fr/fcm/svn/PATCHED/FCM_V1.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You'll then need to add the resulting FCM_V1.2/bin to your PATH environment variable so that the command &amp;quot;fcm&amp;quot; may be used from anywhere on your machine. e.g. by adding the following line in your .bashrc:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/FCM_V1.2/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that the downloaded FCM_V1.2 directory is in your home ($HOME) directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
=== the NetCDF library ===&lt;br /&gt;
The GCM reads and writes input and output files in NetCDF format. Therefore a NetCDF library must be available. As this library is not quite standard you'll probably have to install it yourself on your system (check out [[the netCDF library]] page for more). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/script_install/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
As a side note: The NetCDF library provides a very simple command line tool (ncdump) to inspect the contents of NetCDF files, but you'll need more advanced visualization tools (e.g., Panoply, Python scripts, etc. - see further down this page in the &amp;quot;Checking the Results&amp;quot; section) for more advanced post-processing of the outputs.&lt;br /&gt;
&lt;br /&gt;
=== the IOIPSL library ===&lt;br /&gt;
&lt;br /&gt;
The IOIPSL (Input/Output IPSL) library is a library designed to handle both the reading of some input files used by the GCM (the *.def files which are described further below) and the writing of some NetCDF output files.&lt;br /&gt;
&lt;br /&gt;
==== Prior to a first compilation: ksh to bash conversion ====&lt;br /&gt;
Some of the IOIPSL install scripts are written in ksh (Korn shell).&lt;br /&gt;
Given that most systems currently use Bash (Bourne Again Shell) as their command-line interpreter and not ksh (Korn Shell), you might need to install ksh on your system (assuming you have super-user privileges), for e.g., on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or, if that is not an option, change the occurrences in the package's scripts ('''ins_m_prec''') from:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Automated IOIPSL install script ====&lt;br /&gt;
Scripts to download and install the IOIPSL library can be found in the &amp;quot;ioipsl&amp;quot; subdirectory of the &amp;quot;LMDZ.COMMON&amp;quot; library. Since here we assume we're working with gfortran, the relevant one is &amp;quot;install_ioipsl_gfortran.bash&amp;quot;. If your PATH environment variable is already such that it includes the path to your NetCDF library distribution's bin directory (see previous section) then all you need to do is execute the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./install_ioipsl_gfortran.bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If all went well the script should end with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OK: ioipsl library is in ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''(for further details about [[The_IOIPSL_Library|the IOIPSL library]] and installing it, follow the link and/or use the Search Box at the top of this page)''&lt;br /&gt;
&lt;br /&gt;
== GCM Input Datafiles and Datasets ==&lt;br /&gt;
In order to run, the GCM needs some inputs, such as initial conditions (values of state variables), external inputs (e.g. optical properties) and simulation setup (e.g. specifications on how long to run, which parametrizations should be activated, etc.)&lt;br /&gt;
&lt;br /&gt;
In the spirit of the illustrative example considered here, a set of necessary input data may be downloaded with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/planets/venus/bench_48x32x50.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this is a quite low resolution case, mostly for simple tests or checking that the model was well installed. For scientific work the model is typically run at higher resolution (e.g. 96x96x50; in fact the same directory can be found a bench_96x96x50.tar.gz file).&lt;br /&gt;
&lt;br /&gt;
Nonetheless this ''bench_48x32x50'' example already provides insights on the required input files one needs:&lt;br /&gt;
* a ''run.def'' file, along with companion ''gcm.def'' and ''physiq.def'' ASCII files&lt;br /&gt;
* a ''z2sig.def'' ASCII file, which is read at runtime and contains information about the vertical levels of the PCM&lt;br /&gt;
* a ''traceur.def'' ASCII file, which contains the list of tracers the PCM will use&lt;br /&gt;
* a ''start.nc'' and a ''startphy.nc'' NetCDF files which respectively contain the initial conditions for the dynamics and the physics&lt;br /&gt;
* Input datasets (read at run-time by the PCM) ''ksi_global.txt'' and ''SolarNetFlux_RH.dat''&lt;br /&gt;
&lt;br /&gt;
== Compiling the GCM ==&lt;br /&gt;
Now that all the prerequisites are fulfilled, it is (almost!) time to compile the GCM&lt;br /&gt;
&lt;br /&gt;
=== Prior to a first compilation: setting up the target architecture files ===&lt;br /&gt;
Compiling the model is done using a dedicated Bash script ''makelmdz_fcm'' located in the '''LMDZ.COMMON''' directory. This script however relies on ''architecture files''. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice, one must thus create these ASCII text files in the '''arch/''' subdirectory of '''LMDZ.COMMON'''. The naming convention is rather straightforward, when the script ''makelmdz_fcm'' is run with the option '''-arch somename''', it will look for files ''arch/arch-somename.env'', ''arch/arch-somename.path'' and ''arch/arch-somename.fcm''. Leaving aside a detailed description for later (see [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this page]]), here we mention that:&lt;br /&gt;
* the ''arch*.env'' is an optional file containing ''environment'' information, such as setting up environment variables or loading modules on some machines, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export NETCDF_HOME=/path/to/the/netcdf/distribution&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* the '''arch*.path''' is a mandatory file containing information relative to external libraries such as NetCDF and IOIPSL, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ROOT=$PWD&lt;br /&gt;
&lt;br /&gt;
NETCDF_LIBDIR=&amp;quot;-L${NETCDF_HOME}/lib&amp;quot;&lt;br /&gt;
NETCDF_LIB=&amp;quot;-lnetcdf -lnetcdff&amp;quot;&lt;br /&gt;
NETCDF_INCDIR=&amp;quot;-I${NETCDF_HOME}/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IOIPSL_INCDIR=&amp;quot;-I$ROOT/../IOIPSL/inc&amp;quot;&lt;br /&gt;
IOIPSL_LIBDIR=&amp;quot;-L$ROOT/../IOIPSL/lib&amp;quot;&lt;br /&gt;
IOIPSL_LIB=&amp;quot;-lioipsl&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each library is referenced by a fixed identifier (NETCDF, IOIPSL, XIOS, ...) and 3 trailing strings: '''_LIBDIR''', for the path to the library, '''_LIB''', for the library name(s), and '''_INCDIR''' for the path to the library's ''include'' directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* the '''arch*.fcm''' is a mandatory file containing information relative to the compiler and compilation options, e.g.&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&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     &lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Again, not going into a detailed description (follow [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this link]] for that), just note here that each line corresponds to a keyword (starting with &amp;quot;%&amp;quot;) followed by the relevant options. Here, we mention a few of the main ones:&lt;br /&gt;
* %COMPILER: The compiler to use (here, gfortran)&lt;br /&gt;
* %BASE_FFLAGS: compiler options (always included)&lt;br /&gt;
* %PROD_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-prod&amp;quot; option&lt;br /&gt;
* %DEBUG_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-debug&amp;quot; option&lt;br /&gt;
* %BASE_LD: flags to add at the linking step of the compilation&lt;br /&gt;
&lt;br /&gt;
=== Compiling the test case  ===&lt;br /&gt;
To compile the GCM at the sought resolution, run (in LMDZ.COMMON):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch local -p venus -d 48x32x50 -j 8 gcm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we assume that you have generated the '''arch-local.*''' files as per what is suggested in the previous section.&lt;br /&gt;
The options for ''makelmdz_fcm'' used here imply:&lt;br /&gt;
* '''-p venus''': the GCM will use the &amp;quot;venus&amp;quot; physics package&lt;br /&gt;
* '''-d 48x32x50''': the GCM grid will be 48x32 in longitude x latitude, with 50 vertical levels.&lt;br /&gt;
For a glimpse at all the possible ''makelmdz_fcm'' options and their meanings, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
and/or check the dedicated [[The_makelmdz_fcm_GCM_Compilation_Script|makelmdz_fcm page]].&lt;br /&gt;
&lt;br /&gt;
Upon successful compilation, the executable '''gcm_48x32x50_phyvenus_seq.e''' should be generated in the '''bin''' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Running the GCM ==&lt;br /&gt;
You need to copy (or move) the executable '''gcm_48x32x50_phyvenus_seq.e''' from '''LMDZ.COMMON/bin''' to the directory containing the initial conditions and parameter files, e.g. '''bench_48x32x50'''.&lt;br /&gt;
&lt;br /&gt;
You can now run the GCM.&lt;br /&gt;
This is usually a two-step process: the (optional) first step is to source the environment architecture file (the very same that was used to compile the model), e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ../LMDZ.COMMON/arch.env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The second step is to execute the model, e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gcm_48x32x50_phyvenus_seq.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command line, the (text) outputs messages are redirected into a text file, '''gcm.out'''. It is convenient to keep this file for later inspection (e.g., to track a bug). If there is no redirection (only '''./gcm_48x32x50_phyvenus_seq.e'''), then the outputs will be directly on the screen.&lt;br /&gt;
&lt;br /&gt;
== Checking the Results of a Simulation ==&lt;br /&gt;
Once the simulation is finished, you'll know that all went well (&amp;quot;everything is cool&amp;quot;) if the last few lines of the standard text output are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 in abort_gcm&lt;br /&gt;
 Stopping in leapfrog&lt;br /&gt;
 Reason = Simulation finished &lt;br /&gt;
 Everything is cool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, start looking for an error message and a way to fix the problem...&lt;br /&gt;
&lt;br /&gt;
Apart from the standard text output messages from the GCM, which are mostly for monitoring and checking the simulation progress, the user will more likely be interested in checking the contents of the ''histmth.nc'' file produced by the GCM, as it contains instantaneous values of the main model variables (atmospheric temperature, winds, etc.).&lt;br /&gt;
&lt;br /&gt;
...TODO...ADD HERE SOME ILLUSTRATIVE PLOTS OF THE EXPECTED BENCH OUTPUTS...&lt;br /&gt;
&lt;br /&gt;
== Taking Things to the Next Level ==&lt;br /&gt;
The short tutorial presented in this page is meant to be useful to get an overview of what is required to install and run the GCM, in addition to checking the results of a simulation. Moving on to a more intensive and problem-specific usage will require diving into additional topics and aspects.&lt;br /&gt;
&lt;br /&gt;
To run our reference simulation in 96x96x50 (no chemistry, limited to 95 km altitude), you can find here:&lt;br /&gt;
* initial states: https://web.lmd.jussieu.fr/~lmdz/planets/venus/start-96x96x50.nc and https://web.lmd.jussieu.fr/~lmdz/planets/venus/startphy-96x96x50.nc&lt;br /&gt;
* needed inputs: https://web.lmd.jussieu.fr/~lmdz/planets/venus/venus-inputs-Mar2025.tgz&lt;br /&gt;
* readme for inputs: https://web.lmd.jussieu.fr/~lmdz/planets/venus/readme-inputs.txt&lt;br /&gt;
&lt;br /&gt;
For such a run, it will be crucial to:&lt;br /&gt;
* Compiling and running in parallel (MPI) to run faster: [[Running the Venus PCM in parallel]]&lt;br /&gt;
* Using [[The XIOS Library|the XIOS library]] (instead of IOIPSL) to handle PCM outputs: [[Managing the Venus PCM outputs]]&lt;br /&gt;
&lt;br /&gt;
To dive deeper into more advanced studies, you may consider also:&lt;br /&gt;
* Running with advanced configurations of the physics packages, e.g. adding chemistry, thermospheric processes, etc. &lt;br /&gt;
* Selecting the appropriate inputs and run parameters for a given study.&lt;br /&gt;
* Compiling and running with the other dynamical cores (DYNAMICO and WRF)&lt;br /&gt;
* post-processing and analysis of model outputs&lt;br /&gt;
&lt;br /&gt;
All these points and much more are detailed in the many pages of this site (do check out the menu on the left and dare use intensively the site's search engine)!&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;br /&gt;
[[Category:Venus-LMDZ]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2800</id>
		<title>Quick Install and Run Venus PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2800"/>
				<updated>2025-08-13T08:50:11Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: /* Taking Things to the Next Level */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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 Venus PCM (with the LMDZ dynamical core), set up on a Linux computer.&lt;br /&gt;
&lt;br /&gt;
Note that there is a dedicated, install script, that attempts to do all these steps (up to and including running the simulation) that you can obtain here: https://web.lmd.jussieu.fr/~lmdz/planets/install_lmdz_venus.bash&lt;br /&gt;
Automating the process is not trivial as there are many subtle variants of Linux flavors and user account setups, so the script may fail in your case, but hopefully the information given in this page should help you solve the encountered problems.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites: Tools and Libraries ==&lt;br /&gt;
In order to use (i.e. compile and run) the GCM, one needs to have some tools and installed libraries at hand. We list below a (minimal) set that you should check that is available and/or that you'll need to first install on your machine. Note that we assume in this tutorial that you are on a Linux native-OS/cluster.&lt;br /&gt;
&lt;br /&gt;
===  Fortran compiler ===&lt;br /&gt;
The GCM source code is in Fortran. One thus needs a Fortran compiler to build (compile) the executable.&lt;br /&gt;
The most easily available one (on Linux) is gfortran and examples discussed here will assume it is the one used.&lt;br /&gt;
You can check that you indeed have a gfortran compiler at hand with the following Bash command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which should return something like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
The source code is managed using subversion (svn), which you'll need to download or update. Leaving aside the subtleties of svn and code organization for now, downloading the code amounts to doing the following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
cd trunk&lt;br /&gt;
svn update LMDZ.COMMON LMDZ.VENUS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a side note: the source code that will be fetched by svn can also be browsed online here: https://trac.lmd.jussieu.fr/Planeto&lt;br /&gt;
&lt;br /&gt;
=== FCM ===&lt;br /&gt;
The FCM (Flexible Configuration Management) tool is a suite of perl scripts to help building and managing codes. We use a slightly modified version which can be obtained using subversion (svn). Ideally you'll want to download it somewhere on your computer once in for all. To do this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://forge.ipsl.fr/fcm/svn/PATCHED/FCM_V1.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You'll then need to add the resulting FCM_V1.2/bin to your PATH environment variable so that the command &amp;quot;fcm&amp;quot; may be used from anywhere on your machine. e.g. by adding the following line in your .bashrc:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/FCM_V1.2/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that the downloaded FCM_V1.2 directory is in your home ($HOME) directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
=== the NetCDF library ===&lt;br /&gt;
The GCM reads and writes input and output files in NetCDF format. Therefore a NetCDF library must be available. As this library is not quite standard you'll probably have to install it yourself on your system (check out [[the netCDF library]] page for more). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/script_install/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
As a side note: The NetCDF library provides a very simple command line tool (ncdump) to inspect the contents of NetCDF files, but you'll need more advanced visualization tools (e.g., Panoply, Python scripts, etc. - see further down this page in the &amp;quot;Checking the Results&amp;quot; section) for more advanced post-processing of the outputs.&lt;br /&gt;
&lt;br /&gt;
=== the IOIPSL library ===&lt;br /&gt;
&lt;br /&gt;
The IOIPSL (Input/Output IPSL) library is a library designed to handle both the reading of some input files used by the GCM (the *.def files which are described further below) and the writing of some NetCDF output files.&lt;br /&gt;
&lt;br /&gt;
==== Prior to a first compilation: ksh to bash conversion ====&lt;br /&gt;
Some of the IOIPSL install scripts are written in ksh (Korn shell).&lt;br /&gt;
Given that most systems currently use Bash (Bourne Again Shell) as their command-line interpreter and not ksh (Korn Shell), you might need to install ksh on your system (assuming you have super-user privileges), for e.g., on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or, if that is not an option, change the occurrences in the package's scripts ('''ins_m_prec''') from:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Automated IOIPSL install script ====&lt;br /&gt;
Scripts to download and install the IOIPSL library can be found in the &amp;quot;ioipsl&amp;quot; subdirectory of the &amp;quot;LMDZ.COMMON&amp;quot; library. Since here we assume we're working with gfortran, the relevant one is &amp;quot;install_ioipsl_gfortran.bash&amp;quot;. If your PATH environment variable is already such that it includes the path to your NetCDF library distribution's bin directory (see previous section) then all you need to do is execute the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./install_ioipsl_gfortran.bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If all went well the script should end with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OK: ioipsl library is in ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''(for further details about [[The_IOIPSL_Library|the IOIPSL library]] and installing it, follow the link and/or use the Search Box at the top of this page)''&lt;br /&gt;
&lt;br /&gt;
== GCM Input Datafiles and Datasets ==&lt;br /&gt;
In order to run, the GCM needs some inputs, such as initial conditions (values of state variables), external inputs (e.g. optical properties) and simulation setup (e.g. specifications on how long to run, which parametrizations should be activated, etc.)&lt;br /&gt;
&lt;br /&gt;
In the spirit of the illustrative example considered here, a set of necessary input data may be downloaded with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/planets/venus/bench_48x32x50.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this is a quite low resolution case, mostly for simple tests or checking that the model was well installed. For scientific work the model is typically run at higher resolution (e.g. 96x96x50; in fact the same directory can be found a bench_96x96x50.tar.gz file).&lt;br /&gt;
&lt;br /&gt;
Nonetheless this ''bench_48x32x50'' example already provides insights on the required input files one needs:&lt;br /&gt;
* a ''run.def'' file, along with companion ''gcm.def'' and ''physiq.def'' ASCII files&lt;br /&gt;
* a ''z2sig.def'' ASCII file, which is read at runtime and contains information about the vertical levels of the PCM&lt;br /&gt;
* a ''traceur.def'' ASCII file, which contains the list of tracers the PCM will use&lt;br /&gt;
* a ''start.nc'' and a ''startphy.nc'' NetCDF files which respectively contain the initial conditions for the dynamics and the physics&lt;br /&gt;
* Input datasets (read at run-time by the PCM) ''ksi_global.txt'' and ''SolarNetFlux_RH.dat''&lt;br /&gt;
&lt;br /&gt;
== Compiling the GCM ==&lt;br /&gt;
Now that all the prerequisites are fulfilled, it is (almost!) time to compile the GCM&lt;br /&gt;
&lt;br /&gt;
=== Prior to a first compilation: setting up the target architecture files ===&lt;br /&gt;
Compiling the model is done using a dedicated Bash script ''makelmdz_fcm'' located in the '''LMDZ.COMMON''' directory. This script however relies on ''architecture files''. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice, one must thus create these ASCII text files in the '''arch/''' subdirectory of '''LMDZ.COMMON'''. The naming convention is rather straightforward, when the script ''makelmdz_fcm'' is run with the option '''-arch somename''', it will look for files ''arch/arch-somename.env'', ''arch/arch-somename.path'' and ''arch/arch-somename.fcm''. Leaving aside a detailed description for later (see [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this page]]), here we mention that:&lt;br /&gt;
* the ''arch*.env'' is an optional file containing ''environment'' information, such as setting up environment variables or loading modules on some machines, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export NETCDF_HOME=/path/to/the/netcdf/distribution&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* the '''arch*.path''' is a mandatory file containing information relative to external libraries such as NetCDF and IOIPSL, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ROOT=$PWD&lt;br /&gt;
&lt;br /&gt;
NETCDF_LIBDIR=&amp;quot;-L${NETCDF_HOME}/lib&amp;quot;&lt;br /&gt;
NETCDF_LIB=&amp;quot;-lnetcdf -lnetcdff&amp;quot;&lt;br /&gt;
NETCDF_INCDIR=&amp;quot;-I${NETCDF_HOME}/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IOIPSL_INCDIR=&amp;quot;-I$ROOT/../IOIPSL/inc&amp;quot;&lt;br /&gt;
IOIPSL_LIBDIR=&amp;quot;-L$ROOT/../IOIPSL/lib&amp;quot;&lt;br /&gt;
IOIPSL_LIB=&amp;quot;-lioipsl&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each library is referenced by a fixed identifier (NETCDF, IOIPSL, XIOS, ...) and 3 trailing strings: '''_LIBDIR''', for the path to the library, '''_LIB''', for the library name(s), and '''_INCDIR''' for the path to the library's ''include'' directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* the '''arch*.fcm''' is a mandatory file containing information relative to the compiler and compilation options, e.g.&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&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     &lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Again, not going into a detailed description (follow [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this link]] for that), just note here that each line corresponds to a keyword (starting with &amp;quot;%&amp;quot;) followed by the relevant options. Here, we mention a few of the main ones:&lt;br /&gt;
* %COMPILER: The compiler to use (here, gfortran)&lt;br /&gt;
* %BASE_FFLAGS: compiler options (always included)&lt;br /&gt;
* %PROD_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-prod&amp;quot; option&lt;br /&gt;
* %DEBUG_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-debug&amp;quot; option&lt;br /&gt;
* %BASE_LD: flags to add at the linking step of the compilation&lt;br /&gt;
&lt;br /&gt;
=== Compiling the test case  ===&lt;br /&gt;
To compile the GCM at the sought resolution, run (in LMDZ.COMMON):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch local -p venus -d 48x32x50 -j 8 gcm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we assume that you have generated the '''arch-local.*''' files as per what is suggested in the previous section.&lt;br /&gt;
The options for ''makelmdz_fcm'' used here imply:&lt;br /&gt;
* '''-p venus''': the GCM will use the &amp;quot;venus&amp;quot; physics package&lt;br /&gt;
* '''-d 48x32x50''': the GCM grid will be 48x32 in longitude x latitude, with 50 vertical levels.&lt;br /&gt;
For a glimpse at all the possible ''makelmdz_fcm'' options and their meanings, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
and/or check the dedicated [[The_makelmdz_fcm_GCM_Compilation_Script|makelmdz_fcm page]].&lt;br /&gt;
&lt;br /&gt;
Upon successful compilation, the executable '''gcm_48x32x50_phyvenus_seq.e''' should be generated in the '''bin''' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Running the GCM ==&lt;br /&gt;
You need to copy (or move) the executable '''gcm_48x32x50_phyvenus_seq.e''' from '''LMDZ.COMMON/bin''' to the directory containing the initial conditions and parameter files, e.g. '''bench_48x32x50'''.&lt;br /&gt;
&lt;br /&gt;
You can now run the GCM.&lt;br /&gt;
This is usually a two-step process: the (optional) first step is to source the environment architecture file (the very same that was used to compile the model), e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ../LMDZ.COMMON/arch.env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The second step is to execute the model, e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gcm_48x32x50_phyvenus_seq.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command line, the (text) outputs messages are redirected into a text file, '''gcm.out'''. It is convenient to keep this file for later inspection (e.g., to track a bug). If there is no redirection (only '''./gcm_48x32x50_phyvenus_seq.e'''), then the outputs will be directly on the screen.&lt;br /&gt;
&lt;br /&gt;
== Checking the Results of a Simulation ==&lt;br /&gt;
Once the simulation is finished, you'll know that all went well (&amp;quot;everything is cool&amp;quot;) if the last few lines of the standard text output are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 in abort_gcm&lt;br /&gt;
 Stopping in leapfrog&lt;br /&gt;
 Reason = Simulation finished &lt;br /&gt;
 Everything is cool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, start looking for an error message and a way to fix the problem...&lt;br /&gt;
&lt;br /&gt;
Apart from the standard text output messages from the GCM, which are mostly for monitoring and checking the simulation progress, the user will more likely be interested in checking the contents of the ''histmth.nc'' file produced by the GCM, as it contains instantaneous values of the main model variables (atmospheric temperature, winds, etc.).&lt;br /&gt;
&lt;br /&gt;
...TODO...ADD HERE SOME ILLUSTRATIVE PLOTS OF THE EXPECTED BENCH OUTPUTS...&lt;br /&gt;
&lt;br /&gt;
== Taking Things to the Next Level ==&lt;br /&gt;
The short tutorial presented in this page is meant to be useful to get an overview of what is required to install and run the GCM, in addition to checking the results of a simulation. Moving on to a more intensive and problem-specific usage will require diving into additional topics and aspects such as:&lt;br /&gt;
* Selecting the appropriate inputs and run parameters for a given study.&lt;br /&gt;
* Compiling and running in parallel (MPI) to run faster: [[Running the Venus PCM in parallel]]&lt;br /&gt;
* Running with advanced configurations of the physics packages, e.g. adding chemistry, thermospheric processes, etc. &lt;br /&gt;
To run our reference simulation in 96x96x50 (no chemistry, limited to 95 km altitude), you can find here:&lt;br /&gt;
- initial states: https://web.lmd.jussieu.fr/~lmdz/planets/venus/start-96x96x50.nc and https://web.lmd.jussieu.fr/~lmdz/planets/venus/startphy-96x96x50.nc&lt;br /&gt;
- needed inputs: https://web.lmd.jussieu.fr/~lmdz/planets/venus/venus-inputs-Mar2025.tgz&lt;br /&gt;
- readme for inputs: https://web.lmd.jussieu.fr/~lmdz/planets/venus/readme-inputs.txt&lt;br /&gt;
* Highly recommended ! Using [[The XIOS Library|the XIOS library]] (instead of IOIPSL) to handle PCM outputs: [[Managing the Venus PCM outputs]]&lt;br /&gt;
* Compiling and running with the other dynamical cores (DYNAMICO and WRF)&lt;br /&gt;
* post-processing and analysis of model outputs.&lt;br /&gt;
All these points and much more are detailed in the many pages of this site (do check out the menu on the left and dare use intensively the site's search engine)!&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;br /&gt;
[[Category:Venus-LMDZ]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2799</id>
		<title>Quick Install and Run Venus PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Venus_PCM&amp;diff=2799"/>
				<updated>2025-08-13T08:45:36Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: /* Taking Things to the Next Level */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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 Venus PCM (with the LMDZ dynamical core), set up on a Linux computer.&lt;br /&gt;
&lt;br /&gt;
Note that there is a dedicated, install script, that attempts to do all these steps (up to and including running the simulation) that you can obtain here: https://web.lmd.jussieu.fr/~lmdz/planets/install_lmdz_venus.bash&lt;br /&gt;
Automating the process is not trivial as there are many subtle variants of Linux flavors and user account setups, so the script may fail in your case, but hopefully the information given in this page should help you solve the encountered problems.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites: Tools and Libraries ==&lt;br /&gt;
In order to use (i.e. compile and run) the GCM, one needs to have some tools and installed libraries at hand. We list below a (minimal) set that you should check that is available and/or that you'll need to first install on your machine. Note that we assume in this tutorial that you are on a Linux native-OS/cluster.&lt;br /&gt;
&lt;br /&gt;
===  Fortran compiler ===&lt;br /&gt;
The GCM source code is in Fortran. One thus needs a Fortran compiler to build (compile) the executable.&lt;br /&gt;
The most easily available one (on Linux) is gfortran and examples discussed here will assume it is the one used.&lt;br /&gt;
You can check that you indeed have a gfortran compiler at hand with the following Bash command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which should return something like&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/gfortran&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
The source code is managed using subversion (svn), which you'll need to download or update. Leaving aside the subtleties of svn and code organization for now, downloading the code amounts to doing the following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
cd trunk&lt;br /&gt;
svn update LMDZ.COMMON LMDZ.VENUS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a side note: the source code that will be fetched by svn can also be browsed online here: https://trac.lmd.jussieu.fr/Planeto&lt;br /&gt;
&lt;br /&gt;
=== FCM ===&lt;br /&gt;
The FCM (Flexible Configuration Management) tool is a suite of perl scripts to help building and managing codes. We use a slightly modified version which can be obtained using subversion (svn). Ideally you'll want to download it somewhere on your computer once in for all. To do this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://forge.ipsl.fr/fcm/svn/PATCHED/FCM_V1.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You'll then need to add the resulting FCM_V1.2/bin to your PATH environment variable so that the command &amp;quot;fcm&amp;quot; may be used from anywhere on your machine. e.g. by adding the following line in your .bashrc:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/FCM_V1.2/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that the downloaded FCM_V1.2 directory is in your home ($HOME) directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
=== the NetCDF library ===&lt;br /&gt;
The GCM reads and writes input and output files in NetCDF format. Therefore a NetCDF library must be available. As this library is not quite standard you'll probably have to install it yourself on your system (check out [[the netCDF library]] page for more). You can use the following home-made &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script to do so. For this, ensure that you are in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir netcdf&lt;br /&gt;
cd netcdf&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/pub/script_install/install_netcdf4_hdf5_seq.bash&lt;br /&gt;
chmod u=rwx install_netcdf4_hdf5_seq.bash&lt;br /&gt;
./install_netcdf4_hdf5_seq.bash &amp;gt; netcdf.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Compiling the library and dependencies can take a while (&amp;gt;&amp;gt;15 minutes; be patient).&lt;br /&gt;
Once this is done, check file netcdf.log to verify that all went well.&lt;br /&gt;
You may want to also add its &amp;quot;bin&amp;quot; directory to your PATH environment variable by adding in your .bashrc a line of:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/netcdf/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The assumption here is that you have run the &amp;quot;install_netcdf4_hdf5_seq.bash&amp;quot; script in a &amp;quot;netcdf&amp;quot; subdirectory of your home directory. Adapt accordingly if not.&lt;br /&gt;
&lt;br /&gt;
As a side note: The NetCDF library provides a very simple command line tool (ncdump) to inspect the contents of NetCDF files, but you'll need more advanced visualization tools (e.g., Panoply, Python scripts, etc. - see further down this page in the &amp;quot;Checking the Results&amp;quot; section) for more advanced post-processing of the outputs.&lt;br /&gt;
&lt;br /&gt;
=== the IOIPSL library ===&lt;br /&gt;
&lt;br /&gt;
The IOIPSL (Input/Output IPSL) library is a library designed to handle both the reading of some input files used by the GCM (the *.def files which are described further below) and the writing of some NetCDF output files.&lt;br /&gt;
&lt;br /&gt;
==== Prior to a first compilation: ksh to bash conversion ====&lt;br /&gt;
Some of the IOIPSL install scripts are written in ksh (Korn shell).&lt;br /&gt;
Given that most systems currently use Bash (Bourne Again Shell) as their command-line interpreter and not ksh (Korn Shell), you might need to install ksh on your system (assuming you have super-user privileges), for e.g., on Linux-Ubuntu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or, if that is not an option, change the occurrences in the package's scripts ('''ins_m_prec''') from:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/ksh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Automated IOIPSL install script ====&lt;br /&gt;
Scripts to download and install the IOIPSL library can be found in the &amp;quot;ioipsl&amp;quot; subdirectory of the &amp;quot;LMDZ.COMMON&amp;quot; library. Since here we assume we're working with gfortran, the relevant one is &amp;quot;install_ioipsl_gfortran.bash&amp;quot;. If your PATH environment variable is already such that it includes the path to your NetCDF library distribution's bin directory (see previous section) then all you need to do is execute the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./install_ioipsl_gfortran.bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If all went well the script should end with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OK: ioipsl library is in ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''(for further details about [[The_IOIPSL_Library|the IOIPSL library]] and installing it, follow the link and/or use the Search Box at the top of this page)''&lt;br /&gt;
&lt;br /&gt;
== GCM Input Datafiles and Datasets ==&lt;br /&gt;
In order to run, the GCM needs some inputs, such as initial conditions (values of state variables), external inputs (e.g. optical properties) and simulation setup (e.g. specifications on how long to run, which parametrizations should be activated, etc.)&lt;br /&gt;
&lt;br /&gt;
In the spirit of the illustrative example considered here, a set of necessary input data may be downloaded with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget -nv --no-check-certificate http://www.lmd.jussieu.fr/~lmdz/planets/venus/bench_48x32x50.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this is a quite low resolution case, mostly for simple tests or checking that the model was well installed. For scientific work the model is typically run at higher resolution (e.g. 96x96x50; in fact the same directory can be found a bench_96x96x50.tar.gz file).&lt;br /&gt;
&lt;br /&gt;
Nonetheless this ''bench_48x32x50'' example already provides insights on the required input files one needs:&lt;br /&gt;
* a ''run.def'' file, along with companion ''gcm.def'' and ''physiq.def'' ASCII files&lt;br /&gt;
* a ''z2sig.def'' ASCII file, which is read at runtime and contains information about the vertical levels of the PCM&lt;br /&gt;
* a ''traceur.def'' ASCII file, which contains the list of tracers the PCM will use&lt;br /&gt;
* a ''start.nc'' and a ''startphy.nc'' NetCDF files which respectively contain the initial conditions for the dynamics and the physics&lt;br /&gt;
* Input datasets (read at run-time by the PCM) ''ksi_global.txt'' and ''SolarNetFlux_RH.dat''&lt;br /&gt;
&lt;br /&gt;
== Compiling the GCM ==&lt;br /&gt;
Now that all the prerequisites are fulfilled, it is (almost!) time to compile the GCM&lt;br /&gt;
&lt;br /&gt;
=== Prior to a first compilation: setting up the target architecture files ===&lt;br /&gt;
Compiling the model is done using a dedicated Bash script ''makelmdz_fcm'' located in the '''LMDZ.COMMON''' directory. This script however relies on ''architecture files''. These files contain information on which compiler to use, what compilation options to use, where relevant libraries are located etc. In practice, one must thus create these ASCII text files in the '''arch/''' subdirectory of '''LMDZ.COMMON'''. The naming convention is rather straightforward, when the script ''makelmdz_fcm'' is run with the option '''-arch somename''', it will look for files ''arch/arch-somename.env'', ''arch/arch-somename.path'' and ''arch/arch-somename.fcm''. Leaving aside a detailed description for later (see [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this page]]), here we mention that:&lt;br /&gt;
* the ''arch*.env'' is an optional file containing ''environment'' information, such as setting up environment variables or loading modules on some machines, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export NETCDF_HOME=/path/to/the/netcdf/distribution&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* the '''arch*.path''' is a mandatory file containing information relative to external libraries such as NetCDF and IOIPSL, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ROOT=$PWD&lt;br /&gt;
&lt;br /&gt;
NETCDF_LIBDIR=&amp;quot;-L${NETCDF_HOME}/lib&amp;quot;&lt;br /&gt;
NETCDF_LIB=&amp;quot;-lnetcdf -lnetcdff&amp;quot;&lt;br /&gt;
NETCDF_INCDIR=&amp;quot;-I${NETCDF_HOME}/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IOIPSL_INCDIR=&amp;quot;-I$ROOT/../IOIPSL/inc&amp;quot;&lt;br /&gt;
IOIPSL_LIBDIR=&amp;quot;-L$ROOT/../IOIPSL/lib&amp;quot;&lt;br /&gt;
IOIPSL_LIB=&amp;quot;-lioipsl&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each library is referenced by a fixed identifier (NETCDF, IOIPSL, XIOS, ...) and 3 trailing strings: '''_LIBDIR''', for the path to the library, '''_LIB''', for the library name(s), and '''_INCDIR''' for the path to the library's ''include'' directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* the '''arch*.fcm''' is a mandatory file containing information relative to the compiler and compilation options, e.g.&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&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     &lt;br /&gt;
%MPI_LD&lt;br /&gt;
%OMP_LD              &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Again, not going into a detailed description (follow [[The_Target_Architecture_(&amp;quot;arch&amp;quot;)_Files|this link]] for that), just note here that each line corresponds to a keyword (starting with &amp;quot;%&amp;quot;) followed by the relevant options. Here, we mention a few of the main ones:&lt;br /&gt;
* %COMPILER: The compiler to use (here, gfortran)&lt;br /&gt;
* %BASE_FFLAGS: compiler options (always included)&lt;br /&gt;
* %PROD_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-prod&amp;quot; option&lt;br /&gt;
* %DEBUG_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-debug&amp;quot; option&lt;br /&gt;
* %BASE_LD: flags to add at the linking step of the compilation&lt;br /&gt;
&lt;br /&gt;
=== Compiling the test case  ===&lt;br /&gt;
To compile the GCM at the sought resolution, run (in LMDZ.COMMON):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -arch local -p venus -d 48x32x50 -j 8 gcm &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we assume that you have generated the '''arch-local.*''' files as per what is suggested in the previous section.&lt;br /&gt;
The options for ''makelmdz_fcm'' used here imply:&lt;br /&gt;
* '''-p venus''': the GCM will use the &amp;quot;venus&amp;quot; physics package&lt;br /&gt;
* '''-d 48x32x50''': the GCM grid will be 48x32 in longitude x latitude, with 50 vertical levels.&lt;br /&gt;
For a glimpse at all the possible ''makelmdz_fcm'' options and their meanings, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./makelmdz_fcm -h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
and/or check the dedicated [[The_makelmdz_fcm_GCM_Compilation_Script|makelmdz_fcm page]].&lt;br /&gt;
&lt;br /&gt;
Upon successful compilation, the executable '''gcm_48x32x50_phyvenus_seq.e''' should be generated in the '''bin''' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Running the GCM ==&lt;br /&gt;
You need to copy (or move) the executable '''gcm_48x32x50_phyvenus_seq.e''' from '''LMDZ.COMMON/bin''' to the directory containing the initial conditions and parameter files, e.g. '''bench_48x32x50'''.&lt;br /&gt;
&lt;br /&gt;
You can now run the GCM.&lt;br /&gt;
This is usually a two-step process: the (optional) first step is to source the environment architecture file (the very same that was used to compile the model), e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ../LMDZ.COMMON/arch.env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The second step is to execute the model, e.g.,:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gcm_48x32x50_phyvenus_seq.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command line, the (text) outputs messages are redirected into a text file, '''gcm.out'''. It is convenient to keep this file for later inspection (e.g., to track a bug). If there is no redirection (only '''./gcm_48x32x50_phyvenus_seq.e'''), then the outputs will be directly on the screen.&lt;br /&gt;
&lt;br /&gt;
== Checking the Results of a Simulation ==&lt;br /&gt;
Once the simulation is finished, you'll know that all went well (&amp;quot;everything is cool&amp;quot;) if the last few lines of the standard text output are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 in abort_gcm&lt;br /&gt;
 Stopping in leapfrog&lt;br /&gt;
 Reason = Simulation finished &lt;br /&gt;
 Everything is cool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, start looking for an error message and a way to fix the problem...&lt;br /&gt;
&lt;br /&gt;
Apart from the standard text output messages from the GCM, which are mostly for monitoring and checking the simulation progress, the user will more likely be interested in checking the contents of the ''histmth.nc'' file produced by the GCM, as it contains instantaneous values of the main model variables (atmospheric temperature, winds, etc.).&lt;br /&gt;
&lt;br /&gt;
...TODO...ADD HERE SOME ILLUSTRATIVE PLOTS OF THE EXPECTED BENCH OUTPUTS...&lt;br /&gt;
&lt;br /&gt;
== Taking Things to the Next Level ==&lt;br /&gt;
The short tutorial presented in this page is meant to be useful to get an overview of what is required to install and run the GCM, in addition to checking the results of a simulation. Moving on to a more intensive and problem-specific usage will require diving into additional topics and aspects such as:&lt;br /&gt;
* Selecting the appropriate inputs and run parameters for a given study.&lt;br /&gt;
* Compiling and running in parallel (MPI) to run faster: [[Running the Venus PCM in parallel]]&lt;br /&gt;
* Running with advanced configurations of the physics packages, e.g. adding chemistry, thermospheric processes, etc. &lt;br /&gt;
  To run our reference simulation in 96x96x50 (no chemistry, limited to 95 km altitude), you can find here:&lt;br /&gt;
   - initial states:&lt;br /&gt;
   - needed inputs: &lt;br /&gt;
   - readme for inputs:&lt;br /&gt;
* Highly recommended ! Using [[The XIOS Library|the XIOS library]] (instead of IOIPSL) to handle PCM outputs: [[Managing the Venus PCM outputs]]&lt;br /&gt;
* Compiling and running with the other dynamical cores (DYNAMICO and WRF)&lt;br /&gt;
* post-processing and analysis of model outputs.&lt;br /&gt;
All these points and much more are detailed in the many pages of this site (do check out the menu on the left and dare use intensively the site's search engine)!&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;br /&gt;
[[Category:Venus-LMDZ]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_the_1D_version_of_the_Venus_PCM_(rcm1d)&amp;diff=2257</id>
		<title>Using the 1D version of the Venus PCM (rcm1d)</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_the_1D_version_of_the_Venus_PCM_(rcm1d)&amp;diff=2257"/>
				<updated>2024-12-09T09:49:11Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;One can run a single-column version of the Venus PCM. This is the '''rcm1d''' main program which simply uses the same physics as the 3D PCM but without dynamics, and for a single column. Very useful for some studies and when debugging or developing 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 Venus 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;
* Even though the 1d-column version does not need to be run in parallel it should be compiled with option &amp;quot;-parallel mpi&amp;quot; because its outputs are managed by XIOS which requires being compiled with an MPI library (and hence the model should also be compiled with option &amp;quot;-io xios&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
So for instance to compile a case for 78 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 -p venus -d 78 -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which would generate executable &amp;lt;code&amp;gt;rcm1d_78_phyvenus_para.e&amp;lt;/code&amp;gt; in the ''bin'' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Like the ''gcm'' program, the ''rcm1d'' 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;physiq.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; and &amp;lt;code&amp;gt;gcm.def&amp;lt;/code&amp;gt; files for the run configuration, which are similar to the one for the 3D PCM but in fact mostly not used as parameters there essentially concern dynamics.&lt;br /&gt;
* &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; A dedicated ASCII file adapted to the 1D case. An example &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; file, is available in &amp;lt;code&amp;gt;LMDZ.VENUS/deftank&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In 1D, additional vertical mixing is needed to compensated the absence of 3D advection, and the usual computation of turbulence with the Mellor and Yamada parameterization is not adequate. Therefore, possibility to prescribe the profile of the eddy diffusion coefficient has been added: the model reads the file &amp;lt;code&amp;gt;kzz_p.txt&amp;lt;/code&amp;gt; (an example is available in &amp;lt;code&amp;gt;LMDZ.VENUS/deftank&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
When running with chemistry, you will need to initialize the composition. This is done with &amp;lt;code&amp;gt;init_1D.txt&amp;lt;/code&amp;gt; file, that contains a first line with labels, then columns with levels (e.g. 78 to 1) / pressure (hPa) / density (g.cm-3) / then all the tracers mole fractions, in the same number and order as in the &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; file. Pressure and density are not used.&lt;br /&gt;
&lt;br /&gt;
Note that unlike the ''gcm'' program, the ''rcm1d'' program can run without any initial conditions start files (start.nc and startphy.nc); running ''rcm1d'' is as simple as running any serial code, e.g. assuming the executable has been renamed ''rcm1d.e'':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./rcm1d.e &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As for the GCM all external input files (apart from start files) are required to be present and available.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The ''rcm1d'' main program uses the same output system than the 3D PCM. Therefore all outputs are managed by XIOS via xml files in the same way as the GCM.&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_the_1D_version_of_the_Venus_PCM_(rcm1d)&amp;diff=2247</id>
		<title>Using the 1D version of the Venus PCM (rcm1d)</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_the_1D_version_of_the_Venus_PCM_(rcm1d)&amp;diff=2247"/>
				<updated>2024-12-02T11:43:32Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;One can run a single-column version of the Venus PCM. This is the '''rcm1d''' main program which simply uses the same physics as the 3D PCM but without dynamics, and for a single column. Very useful for some studies and when debugging or developing 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 Venus 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;
* Even though the 1d-column version does not need to be run in parallel it should be compiled with option &amp;quot;-parallel mpi&amp;quot; because its outputs are managed by XIOS which requires being compiled with an MPI library (and hence the model should also be compiled with option &amp;quot;-io xios&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
So for instance to compile a case for 78 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 -p venus -d 78 -parallel mpi -io xios rcm1d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which would generate executable &amp;lt;code&amp;gt;rcm1d_78_phyvenus_para.e&amp;lt;/code&amp;gt; in the ''bin'' subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
Like the ''gcm'' program, the ''rcm1d'' 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;physiq.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; and &amp;lt;code&amp;gt;gcm.def&amp;lt;/code&amp;gt; files for the run configuration, which are similar to the one for the 3D PCM but in fact mostly not used as parameters there essentially concern dynamics.&lt;br /&gt;
* &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; A dedicated ASCII file adapted to the 1D case. An example &amp;lt;code&amp;gt;rcm1d.def&amp;lt;/code&amp;gt; file, is available in &amp;lt;code&amp;gt;LMDZ.VENUS/deftank&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that unlike the ''gcm'' program, the ''rcm1d'' program can run without any initial conditions start files (start.nc and startphy.nc); running ''rcm1d'' is as simple as running any serial code, e.g. assuming the executable has been renamed ''rcm1d.e'':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./rcm1d.e &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As for the GCM all external input files (apart from start files) are required to be present and available.&lt;br /&gt;
&lt;br /&gt;
When running with chemistry, you will need to initialize the composition. This is done with &amp;lt;code&amp;gt;init_1D.txt&amp;lt;/code&amp;gt; file, that contains a first line with labels, then columns with levels (e.g. 78 to 1) / pressure (hPa) / density (g.cm-3) / then all the tracers mole fractions, in the same number and order as in the &amp;lt;code&amp;gt;traceur.def&amp;lt;/code&amp;gt; file. Pressure and density are not used.&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
The ''rcm1d'' main program uses the same output system than the 3D PCM. Therefore all outputs are managed by XIOS via xml files in the same way as the GCM.&lt;br /&gt;
&lt;br /&gt;
[[Category:Venus-Model]]&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_Irene_Rome&amp;diff=794</id>
		<title>Using Irene Rome</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_Irene_Rome&amp;diff=794"/>
				<updated>2022-09-21T12:27:43Z</updated>
		
		<summary type="html">&lt;p&gt;Lebonnois: /* Some useful commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a summary of examples and tools designed to help you get used with the Irene Rome environment. (as of July 2022)&lt;br /&gt;
&lt;br /&gt;
== How to access the cluster ==&lt;br /&gt;
&lt;br /&gt;
For people on the &amp;quot;Atmosphères Planétaires&amp;quot; GENCI project who need to open an account on Irene-Rome, here is the procedure:&lt;br /&gt;
&lt;br /&gt;
* Log on to https://www-dcc.extra.cea.fr/CCFR/ and provide various information about yourself &lt;br /&gt;
&lt;br /&gt;
A few tips:&lt;br /&gt;
&lt;br /&gt;
- chose TGCC&lt;br /&gt;
&lt;br /&gt;
- give your PROFESSIONAL phone number (and not your personal cell phone number)&lt;br /&gt;
&lt;br /&gt;
- name of the project: Atmosphères Planétaires  Numéro du Dossier: A0120110391&lt;br /&gt;
&lt;br /&gt;
- Responsable scientifique du projet: M. Ehouarn MILLOUR , ehouarn.millour@lmd.ipsl.fr, 0144275286, Nationalité: Fr&lt;br /&gt;
&lt;br /&gt;
- Responsable sécurité: M. Franck Guyon, franck.guyon@lmd.ipsl.fr, 0144275277, Nationalité: Fr&lt;br /&gt;
&lt;br /&gt;
- IPs &amp;amp; machine names to connect to Irene: 134.157.47.46 (ssh-out.lmd.jussieu.fr) and 134.157.176.129 (ciclad.ipsl.upmc.fr)&lt;br /&gt;
&lt;br /&gt;
- Chose anything you want for the 8 character password&lt;br /&gt;
&lt;br /&gt;
* And then get Ehouarn to sign the form and forward it to Franck for him to sign as well.&lt;br /&gt;
&lt;br /&gt;
* Send the signed form to hotline.tgcc@cea.fr&lt;br /&gt;
&lt;br /&gt;
== Some useful commands ==&lt;br /&gt;
&lt;br /&gt;
* To access the disks of our project on Irene (&amp;quot;Atmosphères Planétaires&amp;quot; GENCI project), add the following line in your .bash_profile file:&lt;br /&gt;
(.bash_profile rather than .bashrc, because otherwise scp may not find your files when fetching them from $CCCWORKDIR on irene to your machine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module switch dfldatadir/gen10391&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To access your work directory (to run your simulations)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /ccc/work/cont003/gen10391/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can also access the work directory with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $CCCWORKDIR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To access your store directory (to store big data files we are limited in inode number not in filesize! It is recommended to store files of at least 50M, preferably more, e.g. big tar files of 10G or more)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /ccc/work/cont003/gen10391/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can also access the store directory with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $CCCSTOREDIR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To access the scratch directory&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $CCCSCRATCHDIR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
IMPORTANT: the scratchdir is fast access, very big, BUT regularly automatically purged! If you use it do remember to backup stuff on the WORKDIR or STOREDIR.&lt;br /&gt;
&lt;br /&gt;
The scratch purge policy (from machine.info):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* Files not accessed for 60 days are automatically purged&lt;br /&gt;
* Symbolic links are not purged&lt;br /&gt;
* Directories that have been empty for more than 30 days are removed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To access Irene Interactive Documentation:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
machine.info&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: you can also access the online documentation here: http://www-hpc.cea.fr/tgcc-public/en/html/toc/fulldoc/Introduction.html&lt;br /&gt;
&lt;br /&gt;
* To display infos about project accounting:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_myproject &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To know about user and group disk quota&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_quota -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To know about how long your passwd will be active:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_password_expiration&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To change passwd:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of a job to run a GCM simulation ==&lt;br /&gt;
&lt;br /&gt;
=== Mixed openMP / MPI ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Partition to run on:&lt;br /&gt;
#MSUB -q rome&lt;br /&gt;
# project to run on &lt;br /&gt;
#MSUB -A  gen10391&lt;br /&gt;
# disks to use&lt;br /&gt;
#MSUB -m  scratch,work,store&lt;br /&gt;
# Job name&lt;br /&gt;
#MSUB -r run_gcm&lt;br /&gt;
# Job standard output:&lt;br /&gt;
#MSUB -o run_gcm.%I&lt;br /&gt;
# Job standard error:&lt;br /&gt;
#MSUB -e run_gcm.%I&lt;br /&gt;
# number of OpenMP threads c&lt;br /&gt;
#MSUB -c 2&lt;br /&gt;
# number of MPI tasks n&lt;br /&gt;
#MSUB -n 16&lt;br /&gt;
# number of nodes to use N&lt;br /&gt;
#MSUB -N 1&lt;br /&gt;
# max job run time T (in seconds)&lt;br /&gt;
#MSUB -T 3600&lt;br /&gt;
# request exculsive use of the node (128 cores)&lt;br /&gt;
##MSUB -x&lt;br /&gt;
&lt;br /&gt;
source ../trunk/LMDZ.COMMON/arch.env&lt;br /&gt;
export OMP_STACKSIZE=400M&lt;br /&gt;
export OMP_NUM_THREADS=2&lt;br /&gt;
&lt;br /&gt;
ccc_mprun -l gcm_32x32x15_phystd_para.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pure MPI + long run ===&lt;br /&gt;
&lt;br /&gt;
The most important parameter for mpi-only runs is ''-n'' &lt;br /&gt;
providing the total number of CPUs &lt;br /&gt;
(ideally a multiple of 128, which is the number of CPUs per core).&lt;br /&gt;
&lt;br /&gt;
Runs longer than 1 day are not possible unless&lt;br /&gt;
selecting a quality-of-service (QoS) &amp;quot;long&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Partition to run on:&lt;br /&gt;
#MSUB -q rome&lt;br /&gt;
# project to run on &lt;br /&gt;
#MSUB -A  gen10391&lt;br /&gt;
# disks to use&lt;br /&gt;
#MSUB -m  scratch,work,store&lt;br /&gt;
# Job name&lt;br /&gt;
#MSUB -r run_wrf&lt;br /&gt;
# Job standard output:&lt;br /&gt;
#MSUB -o run_wrf.%I&lt;br /&gt;
# Job standard error:&lt;br /&gt;
#MSUB -e run_wrf.%I&lt;br /&gt;
# number of MPI tasks n (total)&lt;br /&gt;
#MSUB -n 256&lt;br /&gt;
# max job run time T (in seconds)&lt;br /&gt;
#MSUB -T 345600&lt;br /&gt;
# select quality-of-service&lt;br /&gt;
# - test &amp;lt; 30min&lt;br /&gt;
# - normal &amp;lt; 1d (default)&lt;br /&gt;
# - long &amp;lt; 3d &lt;br /&gt;
#MSUB -Q long&lt;br /&gt;
&lt;br /&gt;
#############################&lt;br /&gt;
&lt;br /&gt;
# load the modules used to compile&lt;br /&gt;
source arch.env&lt;br /&gt;
&lt;br /&gt;
# clean the logs&lt;br /&gt;
rm -rf rsl.*&lt;br /&gt;
&lt;br /&gt;
# create initial state&lt;br /&gt;
# -- this is done on a single proc&lt;br /&gt;
ideal.exe&lt;br /&gt;
mv rsl.error.0000 ideal_rsl.error.0000&lt;br /&gt;
mv rsl.out.0000 ideal_rsl.out.0000&lt;br /&gt;
&lt;br /&gt;
# main launch&lt;br /&gt;
ccc_mprun -l wrf.exe&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Main submission commands ==&lt;br /&gt;
&lt;br /&gt;
* To launch the job script ''run_gcm.job'':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_msub run_gcm.job&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* To display information about your jobs:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_mpp -u $USER &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* To kill job number ''jobid''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_mdel jobid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* To display infos about project accounting:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_myproject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* To display infos about limits:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_mqinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* To display infos about partitions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_mpinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extra Tips ==&lt;br /&gt;
&lt;br /&gt;
*If you encounter a quota issue on Irene, first check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccc_quota&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if you ha &amp;quot;disk quota exceeded error message&amp;quot;, this might be because your files/scripts do not have correct right access. To solve this,&lt;br /&gt;
use the following command on all your dirs (before tranfering them to Irene):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod -R g+s NAME_OF_DIR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== File transfert from Occigen ==&lt;br /&gt;
One should use ccfr:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load ccfr&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A list of available machines is given by&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccfr_ssh -v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To log on to Occigen (from Irene):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccfr_ssh occigenlogin@cines&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy a file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ccfr_cp occigenlogin@cines:remote_dir local_dir &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Worth knowing about ==&lt;br /&gt;
* The command wget is disabled on Irene, scripts using it will fail...&lt;br /&gt;
* Only &amp;quot;https&amp;quot; is allowed (for svn co, git, etc)&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you reach a quota issue, please use the following command on your directory before sending the data:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod -R g+s NAME_OF_DIR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lebonnois</name></author>	</entry>

	</feed>