Introduction au modèle numérique STLE400

Table des matières





Ce document a pour but de familiariser les usagers avec l'utilisation et la visualisation d'une simulation simple faite à l'aide du modèle STLE400. Il est composé de trois parties: une familiarisation avec le langage de programmation Fortran, une section sur le modèle STLE400 et, finalement, une section sur la visualisation des résultats avec le logiciel Matlab.

1. Notions de base en Fortran



Le Fortran est un langage de programmation qui date de plusieurs années. Cependant, il a évolué depuis et répond bien aux besoins des scientifiques. Son langage mathématique clair et le nombre de bibliothèques mathématiques (ensemble de sous-routines compilées) disponibles expliquent sûrement qu'il soit demeuré très présent dans le milieu scientifique.

Structure du code



Le langage de programmation Fortran a une structure relativement simple. Le modèle STLE400 est construit de la façon suivante. Nous avons un programme principal (src/ocean/gf8.F) qui appelle des sous-routines et des fonctions. Le programme, les sous-routines et les fonctions ont des structures similaires. Les program, subroutine et function ont des extensions '.F' avant la pré-compilation. Les fichiers de déclaration de variable ont des extensions '.h'.

Compilation



La compilation du modèle se fait en plusieurs étapes. Le modèle est d'abord pré-compilé, compilé et ensuite des liaisons sont faites entre les différentes parties du modèle et de ses librairies. Dans notre cas, toutes ces étapes sont prises en charge par le fichier nommé Makefile. Pour résumer très brièvement, cette étape fournit un programme exécutable à partir de plusieurs options de compilation incluses dans le fichier Makefile. Le programme obtenu est celui qui doit être lancé pour démarrer la simulation. Nous verrons que ce programme est lancé par un script.

Langage Fortran



Puisque dans votre premier exercice vous n'aurez pas accès au code source, nous verrons plus en détail les mots clefs de Fortran ultérieurement.

2. Description du modèle STLE400



Un modèle numérique est une représentation mathématique des lois de la physique s'appliquant à un domaine discrétisé dans le temps et dans l'espace. Afin de pouvoir trouver des solutions aux équations de la physique incluse dans notre modèle, nous devrons appliquer des approximations (ex: approximation hydrostatique) et la paramétrisation des phénomènes ne pouvant être résolus (ex: la turbulence). Les forces incluses dans le modèle sont : la fiction, la gravité, la force de Coriolis due à la rotation de la terre et les gradients de pression.

Le modèle utilisé dans le cadre de ce cours est le modèle STLE400. C'est un modèle de l'estuaire, allant de Trois-Rivières à Rimouski, incluant le Saguenay. Dans un premier temps, nous utiliserons une version du modèle où il n'y a pas d'échange avec l'atmosphère. Il a une résolution horizontale de 400m (dx ,dy) et une résolution verticale de 5m et plus (dz). Il est composé de 35 couches de fluide. L'épaisseur de la première couche du modèle varie selon la variation du niveau d'eau qui est du au courant et aux marées. L'épaisseur de la dernière couche est déterminée selon la topographie.


Figure 1 : Grille du modèle STLE400.

Toujours afin d'obtenir une solution non-triviale, nous avons besoin d'une condition initiale et de conditions aux frontières du modèle. La condition initiale est composée du champ de salinité (salt(j,i,k)) et de température (temp(j,i,k)) tridimensionnel au pas de temps zéro. Dans le cas présent ces champs proviennent de l'interpolation d'une solution à plus faible résolution du golfe du Saint-Laurent. Nous supposons que notre fluide est au repos, les vitesses horizontales (u(j,i,k),v(j,i,k)) et verticale (w(j,i,k)) ainsi que les variations du niveau (za(i,k)) d'eau sont nulles.

Lors de la sortie de vos résultats, vous devrez tenir compte que pendant les premières 24 heures de la simulation, il y a une rampe sur les courants. Les courants sont multipliés par un nombre passant de 0 à 1 au cours de la première journée.













Grille du modèle







Figure 2: Indice de grille (à partir de Stronach et al. 1993). Les positions centrales des cellules indiquées par S sur le graphique représentent l'endroit où sont calculées les variables suivantes: salinité, température, pression et niveau d'eau (A). Les axes B) et C) représentent des coupes verticales. D) indique la direction du nord par rapport à la grille, l'angle est de 46°.




La structure informatique du modèle



Chacun de vous aura accès à un espace disque sur l'ordinateur SunV880 nommé Phebus. Afin de pouvoir utiliser le modèle, vous aurez besoin de la structure suivante:

/t3/users/etude*/

src/

run/

out/

matlab/



Vous disposez d'un espace de 5 Go non sauvegardé dans ce répertoire. Vous aurez également accès à un espace disque 200 mo sauve gardé sur /usr/local/uspace/users/etude*/. Ce dernier étant un espace où vous faites habituellement une copie de sécurité de vos codes sources.

SRC
Ce répertoire contient normalement le code source du modèle. Dans le cadre du premier exercice, ce répertoire sera vide. Ce répertoire contiendra également le fichier Makefile.

Run

Dans ce répertoire, vous avez initialement quatre fichiers. Il est à noter que les exemples de fichiers présentés ici sont légèrement différents de ceux que vous aurez dans vos répertoires. Après votre première simulation, d'autre fichiers viendront s'ajouter. Nous n'allons pas en parler immédiatement, mais sachez qu'ils ne sont pas essentiels au lancement à froid d'une simulation.

Le fichier parrun est un fichier de paramètre pour la simulation. Vous avez un exemple de ce fichier ci-dessous. La première ligne est la date du lancement de la simulation. La seconde ligne est le pas de temps initial. La troisième est le pas de temps final. Sur les lignes suivantes vous avez dans l'ordre: le pas de temps en seconde, la résolution horizontale du modèle en mètre, le nom des fichiers de sortie sans leur extension, l'emplacement des fichiers d'intrant, les dimensions en i du domaine de la solution de format standard, les dimensions en k du domaine de la solution de format standard. Les lignes suivantes donnent les paramètres des variables à écrire lors de la simulation. Ces quatre paramètres sont: le code de la variable (quatre caractères en majuscule), la période de sortie des variables (en pas de temps), le nombre de couches sur lequel vous désirez les fichiers de sortie en partant de la surface et, finalement, le premier pas de temps où vous désirez un fichier de sortie.




Ensuite, vous avez le fichier job. Ce fichier initialise les variables d'environnement et lance en arrière-plan la simulation. C'est ce script, qui est également un fichier exécutable, que vous devez lancer pour démarrer une simulation. Si le nom de votre exécutable est correct sur la sixième ligne de ce fichier, vous ne devriez pas avoir à modifier ce fichier.