MOM - Modular Ocean Model
Introduction
Le Modular Ocean Model (MOM) est la version contemporaine du modèle océanique canonique développé par Kirk Bryan et Mike Cox dans les années 1960 à 1980 duquel plusieurs autres modèles trouvent leurs origines. Ce code libre est aujourd'hui développé et maintenu par les chercheurs du Geophysical Fluid Dynamics Laboratory, à Princeton, ainsi que par une communauté internationale de chercheurs.
Guide d'utilisation
Un guide d'utilisation rendu disponible en ligne par le GFDL pour la version MOM4 est le premier document que vous devriez lire pour apprendre à utiliser MOM. Cette page contient une documentation pour les étapes particulières qui ne sont pas décrites par ce guide.
Obtenir le code
Pour obtenir le code mom4p1, vous devez d'abord avoir obtenu un accès à demeter. Ensuite, vous devez créer un répertoire de travail dans lequel le code sera téléchargé. Ce répertoire sera la racine du code. Le nom mom4p1 est fortement suggéré afin de faciliter la portabilité du code.
mkdir mom4p1 cd mom4p1
Accédez à ce répertoire et exécutez la commande suivante:
svn co http://demeter.uqar.ca/svn/mom4p1/trunk .
Si le téléchargement a été effectué avec succès, vous devriez retrouver les répertoires suivants:
bin/ ! Contient les informations permettant de compiler le modèle sur votre ordinateur doc/ ! Documentation exp/ ! Contient les scripts d'exécution des différentes configurations possible matlab/ ! Scripts Matlab pour préparer les entrants du modèle src/ ! Code source
Compiler le code
La compilation du code consiste à lire, interpréter, lier et condenser les routines fortran dans un fichier exécutable qui sera ensuite appelé par le script correspondant se trouvant dans le répertoire exp/. Le code source se trouve dans le répertoire src/ qui contient les routines fortran (.F90) classées selon les grandes composantes.
atmos_*/ ! Ces répertoires contiennent les routines spécifiques au modèle atmosphérique et au ! couplage avec les autres composantes (land, ice, ocean). coupler/ ! ... ice_param/ ! ... ice_sis/ ! ... land_*/ ! ... mom4p1/ ! ... ocean_shared/ ! ... postprocessing/ ! ... preprocessing/ ! ... shared/ ! ... tools/ ! ...
Pour compiler le modèle vous devrez appeler l'un des scripts de compilation qui se trouvent dans exp/. Classés par niveau de complexité, ceux-ci sont:
mom4p1_solo_compile.csh ! Ne compile que le modèle océanique (mom4p1) mom4p1_coupled_compile.csh ! Compile le modèle couplé océan-glace mom4p1_ebm_compile.csh ! Compile le modèle couplé océan-glace-atmosphère avec le Energy Balance Module (EBM) ICCMp1_compile.csh ! Compile le modèle couplé ICCMp1 CM2.1p1_compile.csh ! Compile le modèle couplé CM2.1p1
Dans ces scripts, vous devez spécifier la variable platform réfère à l'extension des fichiers exp/environs.$platform et mkmf.template.$platform. Vous devez donc vous assurer que le contenu de ces fichiers correspondent bien à l'environnement de votre serveur. Si vous utilisez brandypot, utilisez IFORT11_LINUX. Pour exécuter le modèle en parallèle sur plusieurs processeurs en mode mémoire distribuée spécifier MPI=1. Vous pouvez également choisir de compiler en allouant la mémoire de manière statique ou dynamique avec la variable static. En mode statique, vous devez alors spécifiez la taille des tableaux qui dépendra alors des dimensions de votre grille ainsi que du nombre et la taille des sous-domaines. Toutes les autres variables devraient en principe rester inchangées. Une fois le script modifié correctement, vous pouvez le lancer en tapant:
./mom4p1_coupled_compile.csh
Suite à la compilation du code, un nouveau répertoire aura été créé portant le nom exec_$platform/$type, dans lequel se trouve un répertoire $type (e.g. exec_ifort11_LINUX/mom4p1_coupled). C'est dans ce répertoire que se trouve l'exécutable fms_$type.x (e.g. fms_mom4p1_coupled.x) ainsi que les produits de la compilation (*.o et *.mod).
Configurer une expérience
Avant de configurer une expérience, il est commode de se créer un répertoire de travail distinct se trouvant sur une partition contenant suffisamment d'espace disque. Sur brandypot, utilisez la partition /sas/usagers. Par exemple, vous pouvez créer le répertoire /sas/usagers/dumoda01/mom4p1/work dans lequel vous construirez et exécuterai toutes vos expériences numériques MOM4p1. Une fois ce répertoire créé, faites un lien symbolique du répertoire racine de MOM4p1 vers celui-ci:
ln -s /sas/usagers/dumoda01/mom4p1/work /home/dumoda01/mom4p1/
Vous êtes maintenant prêt à construire une expérience. Un bon point de départ pour cela est de suivre le guide démarrage rapide se trouvant dans doc/. D'abord, vous devez créer un nouveau répertoire portant le nom de l'expérience. Une expérience est traditionnellement associée à une grille: lorsque qu'on change la grille, il est fortement suggéré de créer une nouvelle expérience.
Pour démarrer, un façon commode de procéder est de copier le contenu d'une expérience existante qui fonctionne dans votre nouveau répertoire et d'adapter le contenu des fichiers petit à petit.
Générer une grille
MOM4p1 contient des outils de génération de grille qui permettent d'accommoder des simulations océanique seulement (solo) ou couplée (coupled) avec la glace et/ou l'atmosphère. Ces outils se trouvent dans le répertoire (src/preprocessing/generate_grids). Dans les deux cas, on commence par générer une grille océanique dans le répertoire (src/preprocessing/generate_grids/ocean). Cette étape est la plus cruciale et nécessitera certainement plusieurs ajustements. Pour faciliter ce processus itératif, il est important de suivre la convention de nomenclature fichiers qui est présentée ici et qui est adoptée pour la suite. Le script de base qui compile les routines fortran de génération de grille et exécute le programme s'appelle ocean_grid_generator.csh.