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. =========================================================================
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:
Le modèle est écrit en FORTRAN-77 et en FORTRAN-90.
Un fichier
source correspond généralement à un programme ou sous-programme
FORTRAN ou, rarement, à un petit ensemble cohérent de sous-programmes
name
) passées en argument par le programme
appelant ont un préffixe p
(ex: pname
)
tandis que les variables locales ont un préfixe z
(ex:
zname
). En conséquence, de nombreuses variables change
de préfixe (et donc de nom) en passant du (sous-) programme appelant
au sous-programme appelé.
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_gcmCet 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
makegcmdont l'utilisation est décrite plus loin.
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)