Différences entre versions de « GOTM - General Ocean Turbulence Model »

De POLR
Sauter à la navigation Sauter à la recherche
Ligne 3 : Ligne 3 :
  
 
== Guide d'utilisation ==
 
== Guide d'utilisation ==
 
 
=== Obtenir le code gotm_ismer ===
 
=== Obtenir le code gotm_ismer ===
 
Le code gotm_ismer est en fait une copie du code gotm-4.0.0 qui a subit quelques modifications somme toute assez superficielles associées aux modèles biogéochimiques. Dans un futur pas très lointain, l'objectif est de migrer vers [[FABM]] (Framework for Aquatic Biogeochemical Models), un code traitant les modèles biogéochimiques de manière modulaire et donc beaucoup plus flexible, couplés à gotm-4.1.
 
Le code gotm_ismer est en fait une copie du code gotm-4.0.0 qui a subit quelques modifications somme toute assez superficielles associées aux modèles biogéochimiques. Dans un futur pas très lointain, l'objectif est de migrer vers [[FABM]] (Framework for Aquatic Biogeochemical Models), un code traitant les modèles biogéochimiques de manière modulaire et donc beaucoup plus flexible, couplés à gotm-4.1.
  
 
Pour obtenir le code gotm_ismer, 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é.
 
Pour obtenir le code gotm_ismer, 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é.
 
 
  mkdir gotm_ismer
 
  mkdir gotm_ismer
 
  cd gotm_ismer
 
  cd gotm_ismer
  
 
Accédez à ce répertoire et exécutez la commande suivante:  
 
Accédez à ce répertoire et exécutez la commande suivante:  
 
 
  svn co <nowiki>http://demeter.uqar.ca/svn/gotm_ismer/trunk</nowiki> .
 
  svn co <nowiki>http://demeter.uqar.ca/svn/gotm_ismer/trunk</nowiki> .
  
 
Si le téléchargement a été effectué avec succès, vous devriez retrouver les répertoires suivants:
 
Si le téléchargement a été effectué avec succès, vous devriez retrouver les répertoires suivants:
 
 
  compilers/  ! Contient les informations permettant de compiler le modèle sur votre ordinateur
 
  compilers/  ! Contient les informations permettant de compiler le modèle sur votre ordinateur
 
  doc/        ! Documentation originale LaTeX
 
  doc/        ! Documentation originale LaTeX
Ligne 28 : Ligne 24 :
  
 
=== Compiler le code ===
 
=== Compiler le code ===
 
 
La compilation du code consiste à lire, interpréter, lier et condenser les routines fortran dans un fichier exécutable ou programme dont on se servira pour exécuter le modèle. Le code source se trouve dans le répertoire '''src/''' qui contient les routines fortran (.F90) qui sont classées dans des sous-répertoires représentant certaines sections du code.
 
La compilation du code consiste à lire, interpréter, lier et condenser les routines fortran dans un fichier exécutable ou programme dont on se servira pour exécuter le modèle. Le code source se trouve dans le répertoire '''src/''' qui contient les routines fortran (.F90) qui sont classées dans des sous-répertoires représentant certaines sections du code.
 
 
  gotm/        ! Contient le programme principal.
 
  gotm/        ! Contient le programme principal.
 
  observations/ ! ...
 
  observations/ ! ...
Ligne 39 : Ligne 33 :
 
  extras/      ! ...
 
  extras/      ! ...
  
Le répertoire '''src/''' contient également un fichier '''Rules.make''' qui contient les règles de compilation et les variables d'environnement propres à l'utilisateur. Il doit donc être adapté à votre plate-forme et votre profil. Par exemple, si vous utilisez [[brandypot]], vous devez indiquer l'emplacement des librairies NetCDF:
+
==== Rules.make ====
 
+
Le répertoire '''src/''' contient également le fichier '''Makefile''', qui fixe les règles de compilation qui ne doivent pas être modifiées (à moins que vous ne décidiez de faire certaines modifications avancées au code), et le fichier '''Rules.make.template''' qui contient les règles de compilation et les variables d'environnement propres à l'utilisateur et qui elles doivent être modifiées par l'utilisateur. Pour effectuer cette étape, faite une copie du fichier modèle '''Rules.make.template''' en le nommant '''Rules.make'''.
 +
cp Rules.make.template Rules.make
 +
Modifiez ensuite les variables d'environnement en fonction de votre profil et de votre plate-forme. L'exemple suivant s'applique au serveur [[brandypot]]:
 +
* Spécifier le compilateur à utiliser. Cette variable servira à pointer vers un fichier '''compiler.$FORTRAN_COMPILER''' qui doit exister et se trouver dans le répertoire '''compilers/''':
 +
FORTRAN_COMPILER=IFORT
 +
* Indiquer l'emplacement des librairies NetCDF:
 
  NETCDFINC    = /opt/local/netcdf-3.6.1/include
 
  NETCDFINC    = /opt/local/netcdf-3.6.1/include
 
  NETCDFLIBDIR = /opt/local/lib
 
  NETCDFLIBDIR = /opt/local/lib
 
+
* Déterminer quelles portions du code vous voulez compiler. Dans l'exemple suivant, le code correspondant aux modules '''sediment''' et '''seagrass''' (qu'on retrouve dans le répertoire '''src/extras/''') ne sera pas compilé alors que le module '''bio''' et le module '''netcdf''', qui permet de sauvegarder les sorties du modèle en format NetCDF, le sera:
C'est également dans ce fichier que vous déterminez quelles portions du code vous voulez compiler. Dans l'exemple suivant, le code correspondant aux modules '''sediment''' et '''seagrass''' (qu'on retrouve dans le répertoire '''src/extras/''') ne sera pas compilé alors que le module biologique et le module netcdf, qui permet de sauvegarder les sorties du modèle en format NetCDF, le sera.
 
 
 
 
  # What do we include in this compilation
 
  # What do we include in this compilation
 
  NetCDF=true
 
  NetCDF=true
Ligne 52 : Ligne 49 :
 
  BIO=true
 
  BIO=true
  
 +
Une fois le fichier '''Rules.make''' correctement modifié, vous pouvez compiler le code en faisant:
 +
make realclean
 +
make
 
=== Cas test ===
 
=== Cas test ===
  
 
=== Configurer une expérience ===
 
=== Configurer une expérience ===

Version du 16 janvier 2013 à 10:45

Introduction

GOTM (General Ocean Turbulence Model) est un modèle libre qui simule les processus physique d'une colonne d'eau lacustre ou océanique en solutionnant les équations du transport moyen et turbulent sur la verticale. Il a été développé à l'origine par Hans Burchard, Karsten Bolding, Manuel Ruiz-Villareal et Pierre-Philippe Mathieu et hébergé à l'Institute of Oceanography in Hambourg d'où l'on peut obtenir le code source (www.gotm.net). Depuis 2008, Dany Dumont et plusieurs étudiants et collaborateurs ont utilisé ce code riche et versatile dans plusieurs projets. Pour faciliter la collaboration interne et pour tirer parti des modifications apportées, une branche du code gotm-4.0.0 a été déposée dans un dépôt [svn] sur les serveurs du LASSO (ISMER) sous le nom de gotm_ismer. Ce dépôt a été créé afin de partager et de documenter à l'interne les avancées faites par chacun. Lorsque le code évolue significativement, les modifications sont proposées à l'équipe de développeurs qui les incorporent dans la version officielle, profitant ainsi à toute la communauté GOTM.

Guide d'utilisation

Obtenir le code gotm_ismer

Le code gotm_ismer est en fait une copie du code gotm-4.0.0 qui a subit quelques modifications somme toute assez superficielles associées aux modèles biogéochimiques. Dans un futur pas très lointain, l'objectif est de migrer vers FABM (Framework for Aquatic Biogeochemical Models), un code traitant les modèles biogéochimiques de manière modulaire et donc beaucoup plus flexible, couplés à gotm-4.1.

Pour obtenir le code gotm_ismer, 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é.

mkdir gotm_ismer
cd gotm_ismer

Accédez à ce répertoire et exécutez la commande suivante:

svn co http://demeter.uqar.ca/svn/gotm_ismer/trunk .

Si le téléchargement a été effectué avec succès, vous devriez retrouver les répertoires suivants:

compilers/  ! Contient les informations permettant de compiler le modèle sur votre ordinateur
doc/        ! Documentation originale LaTeX
include/    ! Définitions de pré-compilation
nml/        ! Modèles de namelists (fichiers de contrôle ou de paramétrage des simulations)
scripts/    ! Fonctions et scripts pertinents
src/        ! Code source
templates/  ! Modèles de routines
test_cases/ ! Cas test

Compiler le code

La compilation du code consiste à lire, interpréter, lier et condenser les routines fortran dans un fichier exécutable ou programme dont on se servira pour exécuter le modèle. Le code source se trouve dans le répertoire src/ qui contient les routines fortran (.F90) qui sont classées dans des sous-répertoires représentant certaines sections du code.

gotm/         ! Contient le programme principal.
observations/ ! ...
meanflow/     ! ...
airsea/       ! ...
turbulence/   ! ...
util/         ! ...
extras/       ! ...

Rules.make

Le répertoire src/ contient également le fichier Makefile, qui fixe les règles de compilation qui ne doivent pas être modifiées (à moins que vous ne décidiez de faire certaines modifications avancées au code), et le fichier Rules.make.template qui contient les règles de compilation et les variables d'environnement propres à l'utilisateur et qui elles doivent être modifiées par l'utilisateur. Pour effectuer cette étape, faite une copie du fichier modèle Rules.make.template en le nommant Rules.make.

cp Rules.make.template Rules.make

Modifiez ensuite les variables d'environnement en fonction de votre profil et de votre plate-forme. L'exemple suivant s'applique au serveur brandypot:

  • Spécifier le compilateur à utiliser. Cette variable servira à pointer vers un fichier compiler.$FORTRAN_COMPILER qui doit exister et se trouver dans le répertoire compilers/:
FORTRAN_COMPILER=IFORT
  • Indiquer l'emplacement des librairies NetCDF:
NETCDFINC    = /opt/local/netcdf-3.6.1/include
NETCDFLIBDIR = /opt/local/lib
  • Déterminer quelles portions du code vous voulez compiler. Dans l'exemple suivant, le code correspondant aux modules sediment et seagrass (qu'on retrouve dans le répertoire src/extras/) ne sera pas compilé alors que le module bio et le module netcdf, qui permet de sauvegarder les sorties du modèle en format NetCDF, le sera:
# What do we include in this compilation
NetCDF=true
SEDIMENT=false
SEAGRASS=false
BIO=true

Une fois le fichier Rules.make correctement modifié, vous pouvez compiler le code en faisant:

make realclean
make

Cas test

Configurer une expérience