Difference between revisions of "PCM directory layout"
(Created page with "This page loosely describes the directory structure of the model and its components == Top directory structure and related principles == Because the PCM is a combination of v...") |
|||
(One intermediate revision by one other user not shown) | |||
Line 14: | Line 14: | ||
If in addition one were to use the DYNAMICO dynamical core (rather than LMDZ.COMMON), it should also be present, along with the dedicated interface ''ICOSA_LMDZ'': | If in addition one were to use the DYNAMICO dynamical core (rather than LMDZ.COMMON), it should also be present, along with the dedicated interface ''ICOSA_LMDZ'': | ||
<pre> | <pre> | ||
− | + | ICOSAGCM ICOSA_LMDZ IOIPSL LMDZ.COMMON LMDZ.GENERIC XIOS | |
</pre> | </pre> | ||
− | Note that for historical reasons ''DYNAMICO'' is actually | + | Note that for historical reasons ''DYNAMICO'' is actually in our setup renamed ''ICOSAGCM''. |
In addition, because it is handy to be able to ensure that all components are compiled using the same environment (i.e. compiler, compiler version, external libraries etc.) and that all these components rely on FCM ''arch.env'' and ''arch.path'' files, it is advised to also have a common ''ARCH'' directory to store these: | In addition, because it is handy to be able to ensure that all components are compiled using the same environment (i.e. compiler, compiler version, external libraries etc.) and that all these components rely on FCM ''arch.env'' and ''arch.path'' files, it is advised to also have a common ''ARCH'' directory to store these: | ||
<pre> | <pre> | ||
− | ARCH | + | ARCH ICOSAGCM ICOSA_LMDZ IOIPSL LMDZ.COMMON LMDZ.GENERIC XIOS |
</pre> | </pre> | ||
where again the meaning/content of each of these directories may be summarized as: | where again the meaning/content of each of these directories may be summarized as: | ||
* ''ARCH'' : to store arch files common to all models | * ''ARCH'' : to store arch files common to all models | ||
− | * | + | * ''ICOSAGCM'' : The DYNAMICO icosahedral dynamical core |
* ''ICOSA_LMDZ'' : The interface between DYNAMICO and PCM physics packages | * ''ICOSA_LMDZ'' : The interface between DYNAMICO and PCM physics packages | ||
* ''IOIPSL'' : The IOIPSL library | * ''IOIPSL'' : The IOIPSL library | ||
Line 48: | Line 48: | ||
svn update ARCH ICOSA_LMDZ LMDZ.COMMON LMDZ.GENERIC | svn update ARCH ICOSA_LMDZ LMDZ.COMMON LMDZ.GENERIC | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | In addition one can also, in the same "trunk" directory download other components or libraries, e.g. to add the IOIPSL | + | In addition one can also, in the same "trunk" directory download other components or libraries, e.g. to add the IOIPSL and XIOS libraries: |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
svn checkout http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL | svn checkout http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL | ||
+ | svn checkout http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | And to likewise alongside add the DYNAMICO core as ''ICOSAGCM'': | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | git clone https://gitlab.in2p3.fr/ipsl/projets/dynamico/dynamico.git ICOSAGCM | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | [[Category:Generic-Model]] |
Latest revision as of 11:14, 9 March 2023
This page loosely describes the directory structure of the model and its components
Because the PCM is a combination of various libraries and packages (or components), not all included on the same versioning systems and servers, it is important to grasp the philosophy of the underlying ecosystem and its organization. In practice it is advised to have all the source codes of various packages and libraries to be at the same level in a general master directory.
For instance (to relate to the baseline Early Mars example) if one wants to run the Generic PCM using the lon-lat LMDZ dynamical core with the Generic physics package and IOIPSL library, then at the very least the master directory should contain the three relevant directories:
IOIPSL LMDZ.COMMON LMDZ.GENERIC
If in addition one were to use the same setup but using the XIOS library then it should also be found in the master directory:
IOIPSL LMDZ.COMMON LMDZ.GENERIC XIOS
If in addition one were to use the DYNAMICO dynamical core (rather than LMDZ.COMMON), it should also be present, along with the dedicated interface ICOSA_LMDZ:
ICOSAGCM ICOSA_LMDZ IOIPSL LMDZ.COMMON LMDZ.GENERIC XIOS
Note that for historical reasons DYNAMICO is actually in our setup renamed ICOSAGCM.
In addition, because it is handy to be able to ensure that all components are compiled using the same environment (i.e. compiler, compiler version, external libraries etc.) and that all these components rely on FCM arch.env and arch.path files, it is advised to also have a common ARCH directory to store these:
ARCH ICOSAGCM ICOSA_LMDZ IOIPSL LMDZ.COMMON LMDZ.GENERIC XIOS
where again the meaning/content of each of these directories may be summarized as:
- ARCH : to store arch files common to all models
- ICOSAGCM : The DYNAMICO icosahedral dynamical core
- ICOSA_LMDZ : The interface between DYNAMICO and PCM physics packages
- IOIPSL : The IOIPSL library
- LMDZ.COMMON : The LMDZ (legacy) longitude-latitude dynamical core
- LMDZ.GENERIC : The Generic physics package
- XIOS : The XIOS library
Selecting the components to put in the master directory
Because all the LMDZ.* packages : common dynamics, Venus, Mars, Generic, Mesoscale (WRF) dynamics, downloading the full trunk from our svn repository will yield a "master" directory containing:
ARCH LMDZ.EARTH LMDZ.TITAN.old sync_svn_from_gitlab.sh DOC LMDZ.GENERIC LMDZ.VENUS UTIL ICOSA_LMDZ LMDZ.MARS MESOSCALE WRF.COMMON LMDZ.COMMON LMDZ.TITAN sync_gitlab_from_svn.sh
Which is probably much more than you need. It is therefore advised to use the "--depth empty" followed by "update" of subversion to only retrieve the sought components. For example first create the master directory (keeping the default name "trunk"):
svn checkout http://svn.lmd.jussieu.fr/Planeto/trunk --depth empty
And then for instance only update ARCH, ICOSA_LMDZ, LMDZ.COMMON and LMDZ.GENERIC (once in the "trunk" master directory):
cd trunk
svn update ARCH ICOSA_LMDZ LMDZ.COMMON LMDZ.GENERIC
In addition one can also, in the same "trunk" directory download other components or libraries, e.g. to add the IOIPSL and XIOS libraries:
svn checkout http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL
svn checkout http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS
And to likewise alongside add the DYNAMICO core as ICOSAGCM:
git clone https://gitlab.in2p3.fr/ipsl/projets/dynamico/dynamico.git ICOSAGCM