PCM directory layout
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:
DYNAMICO ICOSA_LMDZ IOIPSL LMDZ.COMMON LMDZ.GENERIC XIOS
Note that for historical reasons DYNAMICO is actually often 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 DYNAMICO 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
- DYNAMICO (or 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 library:
svn checkout http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL