====================================================================== Note pour l'utilisation des sorties Netcdf: ====================================================================== ---------------------------------------------------------------------- 1- Diffrentiation des variables par classes: ---------------------------------------------------------------------- Nous avons choisi de classifier les varibles manipules dans le modele. Les familles des varaibles sont choisis suivant des criteres telques les dimmensions, types (etats, ), frequence de sortie ... On attribut a chaques classe les idetificateur suivant 0 = coordonnees et geometrie (x,y,lat,long...) 1 = Var 2D A sortir regulierement (variables etats,...) 2 = Var 2D A sortir+ Debug 3 = Var 3D 4 = Var de debug 5 = sortie juste une fois au debut et une fois a la fin ---------------------------------------------------------------------- 2- Differentiation des varibles par type des noeuds sur lesquels sont calcules: ---------------------------------------------------------------------- Les varibles dans Grisli ne sont pas toutes calcules sur les memes point de grille. --o---->----o-- ' ' ^ x ^ ' ' --o---->----o-- On donne les symboles pour les differents types des noeuds sur la grille. 'o' : noeud majeur en x et en y '>' : noeud mineur en x '^' : noeud mineur en y 'x' : noeud mineur en x et en y ---------------------------------------------------------------------- 3- Le fichier "Description_Variables.dat" ---------------------------------------------------------------------- Ce fichier se trouve dans "SOURCES/Netdcf-routines/" Ce fichier contient les variables dont les sorties netcdf nous serons utiles. On donne pour chaque variable different types d'informations que nous ecrivons dans les fichier ".nc". ----> Organisation au sein du fichier Dans ce fichier vous pouvez ajouter vos commentaires sans aucun regles de format (saut de ligne, separateur ...) L'indicateur des fin des commentaires est la ligne '~~~~~~~~~~~~~~~~~~~~~'. Les descriptions des variables dans ce fichier sont comprisent dans un bloc comme le suivant: ------------------------------------------------------ .... ------------------------------------------------------ Les informations qu'on donne pour les variables sont: "Variable name" !~ info non obligatoire "n°" "name in Grisli" "Class" !! info obligatoire "Node type" !! info obligatoire "Long name" !~ info non obligatoire "Standard name" !~ info non obligatoire "Unit" !~ info non obligatoire "Description" !~ info non obligatoire Remarques: --------- - L'ordre de ces informations est important. - Les informations avec en face "!~ info non obligatoire" ne sont pas obligatoires. Donc quand on connait pas l'information correspondant on remplit le champ par "xxx" exemples: ------------------------------------------------------ "Altitude surface" 1 S 1 "o" "surface_topography_or_elevation (Searise)" "surface_altitude (cf,Searise)" "m" "Surface topography or elevation" ------------------------------------------------------ "xxx" 82 "Chaldef_maj" 3 "o" "Cahleur de deformation" "xxx" "xxx" "xxx" ------------------------------------------------------ **Fin exp Remarques: ---------- - Le n° de variable doit correspondre au if (...) tab(:,:)= .... dans sortie_netcdf_GRISLI_mod.0.2-hassine.f90 - L'ordre des varaibles n'a pas d'importance ---------------------------------------------------------------------- 4- Le fichier "TEMPS-NETCDF.dat" ---------------------------------------------------------------------- Ce fichier se trouve dans "SOURCES/Fichiers-parametres" Ce fichier permet de definir le nombre et le numero des classes des variables a sortir pour le run. Ce fichier permet aussi ensuite de definir les temps auxquels ont lieu les sorties netcdf selon deux methodes complementaires: ----> Organisation au sein du fichier Dans ce fichier vous pouvez ajouter vos commentaires sans aucun regles de format (saut de ligne, separateur ...) L'indicateur des fin des commentaires est la ligne '~~~~~~~~~~~~~~~~~~~~~'. Apres on deffinit le nombre des classes a sortir pour ce run et sur la ligne suivnates les numero des classes d'interet. exemple: -------- 3 nbr de classes a sortir dans ce run 3 2 1 5 class (voir les classes et variables dans LISTE_VAR_NCDF.dat) ------------------------------------------------------------------------------------------- **Fin exp Remarque: --------- On peut mettre des commentaires comme vous l'avez vu a la fin de la ligne des informations. Apres on parmetrise le temps des sorties netcdf. Deux methodes complementaires sont utilisees pour cette parametrisation. 1) La premiere methode consiste a definir le tableau "dtncdf "de sortie reguliere. Dans ce tableau on definit des frequences de sortie des varaibles. La dimension est donnee par le nombre ndtsortie. Apres on remplit le tableau par les pas temps qu'on veut observer (Les pas sont separes par des sauts de ligne). exemple: -------- 2 ndtsortie lecture de dtncdf de sortie 10. 20. 330. 1.e10 ------------------------------------------------------------------------------------------- **Fin exp 2) Les sorties netcdf on peut aussi les faires sortir avec des pas de temps predefinis dans le tableau "predef_tsort". Le dimension de ce dernier est donnee par npredeft. exemple: -------- 4 npredeft dimension predef_tsort 1 5 25 35 66 100 ------------------------------------------------------------------------------------------- **Fin exp Remarque: --------- Comme vous avez remarquez pour les deux tableaux on peut definir plus d'elements a utiliser que les dimensions. Que ndtsortie ou npredeft seront utilisé. ---------------------------------------------------------------------- 5- Le fichier "LISTE-VAR-NETCDF.dat" ---------------------------------------------------------------------- Ce fichier se trouve dans "SOURCES/Fichiers-parametres" Liste des variables a sortir sur les fichier netcdf. Toutes les variables pour lesquelle une sortie est prevue sont dans cette liste. Les variables dans ce fichier sont regroupees par classe. Une variable est sortie si : le module correspondant est active (exemple eau basale) et isortie=1 La periodicite avec laquelle ces variables sont sorties ainsi que les temps predefinis eventuels sont donnes dans TEMPS-NETCDF.dat 2 ligne par classe sous la forme : ------------------------------------------ classnumber snapmax ntypenode typenod1 typenod2 typenod3 ... classnumber : presente l'identificateur des classes des variables voir section 1 de ce document snapmax : nombre de snapshot max a sortir dans un fichier netcdf si plus, il reouvre un nouveau fichier. ntypenode : nombre de type de noeud qu'on veut sortir typenodi : presente le type du noeud voir section 2 de ce document exemple: -------- ============================================ classe 1 1 100 4 ! class 1 snapmax=10 4 type de noeud 'o' '>' '^' 'x' ! les types de noeuds ------------------------------------------ ** Fin exp 2 lignes par variable sous la forme : varname1 !attention varname1 5 caract maxi et pas de TAB apres numero isortie dtncdf interv !!! Possibilite de mettre des commentaires ligne vide ------------------------- varname2 numero isortie dtncdf interv ------------------------- varname : 5 caracteres maxi isortie : 1-> oui, 0->non (pas de sortie du tout) dtncdf : donne la periodicite avec laquelle ces variables sont sorties indice pointe dans dtsortie_ncdf definie dans TEMPS-NETCDF.dat si 0 ne sort que sur les pas de temps intermediaires interv : pour cette variable interv=-1 premier+dernier interv= 0 ne sort que le premier pas de temps interv= 1 premier + dernier + predefinis exemples: -------- 1 1 0 sort avec periodicite 1 + premier pas de temps 1 0 -1 sort seulement premier et dernier 0 1 1 ne sort pas du tout 1 0 0 ne sort que le premier ** Fin exp Remarques: ---------- - Entre les classes, le separateur est la ligne ========== - Entre les variables, le separateur est la ligne ---------- - Le programme ne teste que les 10 premiers caracteres de ========== et de ---------- ---------------------------------------------------------------------- 6- Comment ajouter une nouvelle variable pour les sorties netcdf ---------------------------------------------------------------------- Si on veut ajouter une variable pour la faire sortir en netcdf. Il faut ajouter cette variables dans le fichier "SOURCES/Netdcf-routines/Description_Variables.dat" dans un premier temps suivant la facon qu'on a decrit precedement. Remarque: --------- L'emplacement de l'ajout n'a pas d'importance. Dans un deuxieme temps il faut ajouter cette variables dans "SOURCES/Fichiers-parametres/LISTE-VAR-NETCDF.dat" suivant aussi les consignes donnees precedement. Remarque: --------- L'emplacement de l'ajout cette fois est important il faut ajouter la variables dans la bonne classe. L'ordre des variables dans une classes n'a pas d'importance. Finalement il faut ajouter if (...) tab(:,:)= .... dans le code sortie_netcdf_GRISLI_mod.0.2-hassine.f90.