Différences entre versions de « MOR - Modèle Océanique Régional »

De POLR
Sauter à la navigation Sauter à la recherche
Ligne 60 : Ligne 60 :
 
Comme mentionné, ce fichier contient les paramètres de la simulation ainsi que les informations sur les fichier de sortie voulue
 
Comme mentionné, ce fichier contient les paramètres de la simulation ainsi que les informations sur les fichier de sortie voulue
 
Par exemple:
 
Par exemple:
<source lang="bash">
+
 
&parrun_nml
+
&parrun_nml
rnc_STARTDATE = "0 0 0 08 12 1996"
+
rnc_STARTDATE = "0 0 0 08 12 1996"
rnc_STARTSTEP= 1
+
rnc_STARTSTEP= 1
rnc_ENDSTEP=  288
+
rnc_ENDSTEP=  288
rnc_DELTAT=    300
+
rnc_DELTAT=    300
rnc_DELTAKI=  5000
+
rnc_DELTAKI=  5000
rnc_INPUTDIR ='/share/sims1/intrants/stlaw5km/netcdf'  ! Input data directory
+
rnc_INPUTDIR ='/share/sims1/intrants/stlaw5km/netcdf'  ! Input data directory
rnc_author = "Simon Senneville"
+
rnc_author = "Simon Senneville"
rnc_file_comment = "Simulation GSL5km avec CICE5"
+
rnc_file_comment = "Simulation GSL5km avec CICE5"
rnc_source = 'rom v5.3'
+
rnc_source = 'rom v5.3'
rnc_title ='Temoin'
+
rnc_title ='Temoin'
rnc_institution ='ISMER-POLR'
+
rnc_institution ='ISMER-POLR'
/
+
/
&nc_out_dir
+
&nc_out_dir
var_name='SALT',
+
var_name='SALT',
long_var_name='Salinity',
+
long_var_name='Salinity',
rom_var_name ='SALT'
+
rom_var_name ='SALT'
var_units='PSU',
+
var_units='PSU',
var_comment='salinity',
+
var_comment='salinity',
i_limit_lo = 1,
+
i_limit_lo = 1,
i_limit_hi = 150,
+
i_limit_hi = 150,
k_limit_lo = 1,
+
k_limit_lo = 1,
k_limit_hi = 236,
+
k_limit_hi = 236,
output_period = 12,
+
output_period = 12,
nlayers = 73,
+
nlayers = 73,
start_step = 1,
+
start_step = 1,
end_step = 288,
+
end_step = 288,
var_archive='/mon_répertoire_de_solution/GSL_test',
+
var_archive='/mon_répertoire_de_solution/GSL_test',
/
+
/
</source>
+
 
 
====Lancer la simulation sur un(des) nœud(s) interactif(s)====  
 
====Lancer la simulation sur un(des) nœud(s) interactif(s)====  
 
qsub -I -l nodes=1:ppn=10
 
qsub -I -l nodes=1:ppn=10

Version du 26 juin 2017 à 12:01

Historique

Le modèle MOR utilise la base d’un modèle nommé GF8. Le modèle GF8 est la 8e version d'un modèle développé pour la région du détroit de Georgia, de Juan de Fuca et le Puget Sound près de Vancouver (Stronach, 1993). Ce système est nommé Georgia-Fuca, d'où le nom du modèle. L’évolution du modèle MOR entraîne plusieurs différences par rapport à GF8, que ce soit au niveau du traitement du mélange, de la présence d’un modèle de glace couplé ou bien du transport des scalaires. Cependant, les équations de base ainsi que la technique de résolution restent quasiment les mêmes. Pour plus de détails sur la section suivante, veuillez consulter Stronach (1993).

Description du modèle

Le modèle 3D glace de mer - océan calcule simultanément l'évolution spatiale et temporelle de l'énergie cinétique turbulente, des niveaux d'eau, des courants, des champs de température et de salinité des masses d'eau, de l'étendue et de l'épaisseur de la couverture de glace de mer. Le modèle océanique est à niveau-z entièrement pronostique, hydrostatique et basé sur les équations du mouvement en milieu peu profond modifiées de Backhaus (1983; 1985) et Stronach et coll. (1993). Il utilise une solution semi-implicite pour l'élévation de surface, un schéma de transport corrigé pour les flux («flux-corrected», Zalezak, 1979) pour les grandeurs scalaires (température, salinité, énergie cinétique turbulente, variables biologiques), un mélange horizontal de faible valeur, et un modèle d'énergie turbulente d'ordre 2.5 (e.g. BURCHARD et BOLDING, 2001; SMITH et coll., 2006b) employant les fonctions de stabilité de Canuto et coll. (2001). Le modèle d'énergie turbulente est complété par une équation diagnostique pour la balance d’échelle principale turbulente (utilisant le minimum entre la loi parabolique du mur et la longueur d'Ozmidov). Le modèle océanique est couplé à une couverture dynamique (Hunke et Dukowicz, 1997) et thermodynamique (Semtner, 1976) de glace de mer à deux couches, représentées par les distributions d'épaisseur d’après Thorndike et coll. (1975) et une couche de neige. Les flux glace-océan, atmosphère-océan, et glace-atmosphère de la chaleur, du sel, et du momentum sont représentés par les formules aérodynamiques de Parkinson et Washington (1979).

Implémentation du modèle numérique

Modèle de Hambourg

La technique utilisée pour solutionner les équations est celle de Backhaus (1985), le modèle Hambourg. Les modes externes et internes sont traités de façon implicite et n'impose pas de restriction sur le pas de temps autre que la précision de la propagation de l'onde de marée. Voici quelques caractéristiques clés de ce modèle:

  1. La discrétisation dans le temps est partagée entre le mode implicite et explicite, habituellement moitié-moitié, ce qui en fait donc une méthode du second degré dans le temps. Augmenté ce facteur (donc plus implicite) permettrait de plus long pas de temps, mais au prix d'un amortissement de l’amplitude des ondes de courte période.
  2. La solution implicite des ondes gravitationnelles de surface est résolue par la technique SOR (Successive Over-Relaxation) appliquée à l’équation de continuité. Dans cette équation, la divergence du temps présent est combinée à la divergence du temps futur dans une proportion déterminée par le ratio de la contribution explicite et implicite discutée précédemment, pour déterminer la variation du niveau d’eau sur un pas de temps. La divergence du pas de temps futur est basée sur le niveau d’eau future, ce qui en fait une méthode implicite. L’équation de continuité est ultimement résolue comme une équation elliptique pour le champ de niveau d’eau du pas de temps futur.
  3. L'épaisseur des couches, bien que constante sur l'horizontale, peut varier sur la verticale.

Différences finies

Les équations moyennées sur les couches sont résolues sur une grille tridimensionnelle où l'indice k croit avec l'axe des x, l'indice i croit avec l'axe des y et l'indice j décroît avec l'axe des z. La résolution horizontale est constante, mais la résolution verticale est habituellement choisie afin de résoudre les gradients verticaux de densité et de courant. Les variables sont distribuées sur une grille Arakawa C montrée à la Figure 1 (Arakawa & Lamb, 1977). L’unité fondamentale de calcul, la cellule, peut-être considérée comme un cube. Les courants sont calculés au centre des faces du cube et la salinité et la température sont définies au centre du cube. Les densités et les vitesses sont décalées dans l’espace afin que les gradients de densité soient centrés sur les vitesses.


Arakawa-c.png Figure 1: Grille Arakawa-c horizontale

La forme du bassin est contrainte à avoir un nombre entier de cellules. La condition de transport nul à travers les parois du bassin est facilement respectée en imposant les vitesses sur la face de ces cellules formant la paroi à zéro. Le trait de côte détermine donc si la cellule sera dite mouillée, contenant de l’eau, ou bien sèche. Par la suite, c’est la profondeur en ce point mouillé qui détermine de nombre de cellules nécessaires. Nous ajoutons des cellules jusqu’à ce que la colonne d’eau soit égale à la profondeur. La cellule de surface et celle du fond sont d’épaisseur variable. Nous en discuterons plus en détail dans la section de construction d’une grille.

Méthode de solution

La solution d’un système complet d’équation de différence finie comporte 5 étapes.

1.L’équation de conservation est résolue afin de trouver le champ de vitesse verticale.

2.Le champ de densité est résolu en utilisant les vitesses verticales et horizontales au temps (0).

3.Les termes explicites des équations du mouvement sont évalués et ajoutés à une valeur intermédiaire des champs de vitesse u et v.

4.L’intégral vertical de l’équation de conservation est transformé en équation elliptique et résolue en utilisant SOR.

5.Les champs de niveau d’eau et de courant sont mis à jour à l’aide de la partie implicite des équations appropriées.

Comment utiliser MOR sur Mingan

Voici les quelques étapes nécessaires pour lancer une simulation de MOR sur Mingan. Dans un premier temps, il faut générer la structure des répertoires pour le code, l'exécutable et les solutions. Cette structure est donnée à titre d'exemple. Elle peut changer selon les besoins de chaque utilisateur.

Créer un répertoire SRC dans votre environnement de travail

Ce répertoire contient le code pour créer l'exécutable. Ce code est actuellement archivé sur un dépôt SVN. Ce code est disponible auprès de Simon Senneville. Vous modifierez très certainement ce code, il vous est suggéré d'utiliser GIT ou SVN pour gérer les différentes versions de votre code. Il est important de garder en tête qu'une fois votre développement terminé, il serait intéressant que les modifications puissent être traçables afin d'être récupérées et conservées pour les versions subséquentes du simulateur.

Générer l'exécutable

Le code source inclut un script qui génère une Makefile selon les options choisies du répertoire de configuration configure. Ce script se nomme make.comp. Il est appelé avec deux paramètres: le premier en fonction du serveur où il est utilisé et le second, en fonction du domaine voulu. Les configurations disponibles se retrouvent dans le répertoire configure. Pour ajouter de nouvelle configuration, elles doivent être ajoutées dans ce répertoire. Par exemple make.comp Cluster STLAW5KM produira le fichier Makefile afin générer le simulateur du golfe du Saint-Laurent à 5km de résolution pour Mingan. Ensuite, il suffit de taper la commande make pour générer l'exécutable selon les instructions du Makefile.

Créer un répertoire RUN dans votre environnement de travail

Ce répertoire doit contenir l'exécutable et les fichiers nécessaires au lancement de MOR. L'exécutable est le résultat de la compilation de votre code. Si le fichier parrun est présent, cet exécutable pourrait être lancé directement, mais certaines variables d’environnement doivent préalablement être définies. De plus, certains scripts ont été développés pour traiter des aspects: interactif vs arrière-plan et l'utilisation des différents nœuds de la grappe. Par défaut, les modifications du code et la compilation se font sur le nœud de login de Mingan login-0-4. Cependant, le simulateur NE DOIT PAS être lancé sur ce nœud. Le fichier parrun est essentiel au lancement du modèle. Ce fichier contient les paramètres essentiels du modèle ainsi que les informations sur les sorties voulues de la simulations.

Fichier parrun

Comme mentionné, ce fichier contient les paramètres de la simulation ainsi que les informations sur les fichier de sortie voulue Par exemple:

&parrun_nml
rnc_STARTDATE = "0 0 0 08 12 1996"
rnc_STARTSTEP= 1
rnc_ENDSTEP=   288
rnc_DELTAT=    300
rnc_DELTAKI=   5000
rnc_INPUTDIR ='/share/sims1/intrants/stlaw5km/netcdf'   ! Input data directory
rnc_author = "Simon Senneville"
rnc_file_comment = "Simulation GSL5km avec CICE5"
rnc_source = 'rom v5.3'
rnc_title ='Temoin'
rnc_institution ='ISMER-POLR'
/
&nc_out_dir
var_name='SALT',
long_var_name='Salinity',
rom_var_name ='SALT'
var_units='PSU',
var_comment='salinity',
i_limit_lo = 1,
i_limit_hi = 150,
k_limit_lo = 1,
k_limit_hi = 236,
output_period = 12,
nlayers = 73,
start_step = 1,
end_step = 288,
var_archive='/mon_répertoire_de_solution/GSL_test',
/

Lancer la simulation sur un(des) nœud(s) interactif(s)

qsub -I -l nodes=1:ppn=10 avec ou sans gomodel

Lancer la simulation sur un(des) nœud(s) en arrière-plan

Répertoire Lance

Créer un répertoire OUT dans votre environnement d'archivage

Ce répertoire contient les fichiers de sorties de la simulation.

Traitement des fichiers de sortie de MOR sur Mingan

Fichier NetCDF

Les fichiers de sortie, également la plupart des fichiers d'intrant, de MOR sont en format NetCDF. Par souci d'espace disque, ces fichiers ont été compressés sur un axe afin de ne conserver que les points mouillés. Le fichier NetCDF contient toutes les informations pour redistribuer ce vecteur sur la matrice 2D ou 3D du domaine.

Traitement à l'aide des librairies NetCDF

Instructions pour décompresser le vecteur en matrice

Traitement en Matlab

Des m-files ont été développés en Matlab pour lire et écrire dans ce format de fichier NetCDF.