MOM - Modular Ocean Model

De POLR
Révision datée du 2 juin 2017 à 13:29 par Sennevil (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

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.


Générer les conditions initiales

Générer les forçages

Problèmes potentiels