next up previous contents
suivant: Entrées/Sorties monter: main précédent: Les paramétrisations physiques du   Table des matières

Sous-sections


Organisation informatique et compilation

Le modèle du LMD est organisé sur un répertoire de base. Ce répertoire est associé à la variable d'environnement LMDGCM. L'exemple ci-dessous montre l'affectation de cette variable en csh sous UNIX pour la version de référence du modèle au LMD.

=========================================================================
Environment
===========

csh
setenv LMDGCM ~/LMDZ4
setenv IOIPSLDIR /u/hourdin/IOIPSLmaf/src       # IOIPSL software
setenv NCDFLIB /distrib/local/netcdf/lib        # for Netcdf
setenv NCDFINC -I/distrib/local/netcdf/include  # for Netcdf

bash
export LMDGCM=~/LMDZ4
export IOIPSLDIR=/u/hourdin/IOIPSLmaf/src       # IOIPSL software
export NCDFLIB=/distrib/local/netcdf/lib        # for Netcdf
export NCDFINC=-I/distrib/local/netcdf/include  # for Netcdf


=========================================================================

Voici très sommairement le contenu de ce répertoire.

=========================================================================
Source files
============

cd $LMDGCM
content :
- libf/bibio     -> some IO routines
       dyn3d     -> routines of the dynamical core
       filtrez   -> longitudinal filter for polar regions.
       grid      -> dimensiosn (iim, jjm, llm) in (X, y, z)
       phylmd    -> routines of the physical package
       phylolo   -> alternative routines of the physical package
- create_make_gcm    ->  a script generating a makefile for the make
                         unix command.
- makegcm            ->  a unix script to compile the model.

=========================================================================


Organisation des fichiers sources du modèle

Les fichiers sources du modèle sont stockés dans différents sous-répertoires au sein du répertoire libf. Ces sous-répertoires correspondent à différentes parties du modèle:

grid: constitué essentiellement du fichier "dimensions.h", qui contient les paramètres définissant la grille du modèle, à savoir le nombre de points en longitude (IIM), en latitude (JJM) et sur la verticale (LLM), ainsi que le nombre de traceurs (NQMX) advectés dans la dynamique (par exemple 2 pour l'eau et la vapeur d'eau pour la version de base du modèle terrestre). Le second fichier contient les fonction $\lambda(I)$, $\phi(J)$ reliant la longitude et la latitude aux indices du modèle, ainsi que leurs dérivées.

dyn3d: contient les sous-programmes de la dynamique.

bibio: contient quelques subroutines génériques utiles à toutes les parties.

phylmd: contient les sources des paramétrisations physiques.

filtrez: contient les sources du filtre en longitude apppliqués dans les hautes latitude, là où le critère de stabilité de Courant-Friedrich-Levy est violé.

Ecriture informatique

Le modèle est écrit en FORTRAN-77 et en FORTRAN-90.


Organigramme du modèle

Figure 5.1: Organigramme de la fonction physiq.F
\includegraphics[scale=0.77,angle=-90]{Fig/physique.eps} .


Compilation du modèle

Le modèle est compilé au moyen de l'utilitaire MAKE de UNIX. Le fichier makefile qui décrit comment la compilation doit se faire est créé automatiquement par le script

create_make_gcm
Cet utilitaire recrée le makefile quand nécessaire, par exemple quand un fichier source a été rajouté ou enlevé depuis la précédente compilation.

Tout ceci est transparent à l'utilisateur. Il lui suffit, pour compiler le modèle, de lancer la commande

makegcm
dont l'utilisation est décrite plus loin.

Manuel de la fonction makegcm

model /u/hourdin/LMDZ4.beta

makegcm [Options] prog

Par default, la commande makegcm: -----------------

1. compile une serie de sous programmes se trouvant dans des sous-repertoires de /u/hourdin/LMDZ4.beta/libf. Les sous programmes sont ensuite stokes sur dans des librairies FORTRAN sur /u/hourdin/LMDZ4.beta/libo.

2. Ensuite, makegcm compile le programme prog.f se trouvant par default sur /u/hourdin/LMDZ4.beta/libf/dyn3d et effectue le lien avec l'ensemble des librairies.

La variable '/u/hourdin/LMDZ4.beta' doit etre initialisee dans votre .cshrc ou en dur dans la comande makegcm.

La commande makegcm est faite pour permettre de gerer en parallele des versions differentes du modele, compilees avec des options de compilation et des dimensions differentes sans avoir a chaque fois a recompiler tout le modele.

Les librairies FORTRAN sont stoquees sur le directory /u/hourdin/LMDZ4.beta/libo.

OPTIONS: ----

Les options suivantes peuvent etre definies soit par defaut en editant le "script" makegcm, soit en interactif:

-d imxjmxlm ou im, jm, et lm sont resp. le nombre de longitudes, latitudes et couches verticales.

-t ntrac selectionne le nombre de traceur advectes par la dynamique. Dans les versions courantes du modele terrestre on a par exemple ntrac=2 pour l'eau vapeur et liquide

-c ncorps selectionne le nombre d'especes chimiques advectes par la dynamique.

L'effet des options -d, -t et -c est d'ecraser le fichier /u/hourdin/LMDZ4.beta/libf/grid/dimensions.h qui contient sous forme de 5 PARAMETER FORTRAN les 3 dimensions de la grille horizontale im, jm, lm plus le nombre de traceurs advectes passivement par la dynamique ntrac et le nombre d'especes chimiques ncorps, par un nouveau fichier /u/hourdin/LMDZ4.beta/libf/grid/dimension/dimensions.im.jm.lm.tntrac.cncorps Si ce fichier n'existe pas encore, il est cree par le script /u/hourdin/LMDZ4.beta/libf/grid/dimension/makdim

-p PHYS pour selectionner le jeu de parametrisations physiques avec lequel on veut compiler le modele. Le modele sera alors compile en prenant les sources des parametrisations physiques dans le repertoire: /u/hourdin/LMDZ4.beta/libf/phyPHYS

-g grille selectionne le type de grille qu'on veut utiliser. L'effet de cette option est d'ecraser le fichier /u/hourdin/LMDZ4.beta/libf/grid/fxyprim.h avec le fichier /u/hourdin/LMDZ4.beta/libf/grid/fxy_grille.h grille peut prendre les valeurs: 1. reg pour la grille reguliere 2. sin pour avoir des points equidistants en sinus de la latitude 3. new pour pouvoir zoomer sur une partie du globe

-O "optimisation fortran" ou les optimisations fortran sont les options de la commande f77

-include path Dans le cas ou on a dans des sous programmes des fichiers #include (cpp) qui se trouve sur des repertoires non references par defaut

-adjnt Pour compiler la l'adjoint du code dynamique

-filtre filtre Pour choisir le filtre en longitude dans les regions polaires. "filtre" correspond au nom d'un repertoire se trouvant sur /u/hourdin/LMDZ4.beta/libf. Le filtre standard du modele est "filtrez" qui peut etre utilise aussi bien pour une grille reguliere que pour une grille zoomee en longitude.

-link "-Ldir1 -lfile1 -Ldir2 -lfile2 ..." Pour rajouter un lien avec les librairies FORTRAN libfile1.a, libfile2.a ... se trouvant respectivement sur les repertoires dir1, dir2 ... Si dirn est un repertoire dont le chemin est automatique (comme par exemple /usr/lib ...) il n'est pas besoin de specifier -Ldirn.

Auteur: Frederic Hourdin (hourdin@lmd.ens.fr)


next up previous contents
suivant: Entrées/Sorties monter: main précédent: Les paramétrisations physiques du   Table des matières
Compte generique LMDZ 2004-04-05