1 | ====================================================================== |
---|
2 | Note pour l'utilisation des sorties Netcdf: |
---|
3 | ====================================================================== |
---|
4 | |
---|
5 | ---------------------------------------------------------------------- |
---|
6 | 1- Diffrentiation des variables par classes: |
---|
7 | ---------------------------------------------------------------------- |
---|
8 | |
---|
9 | Nous avons choisi de classifier les varibles manipules dans le |
---|
10 | modele. Les familles des varaibles sont choisis suivant des criteres |
---|
11 | telques les dimmensions, types (etats, ), frequence de sortie ... |
---|
12 | |
---|
13 | On attribut a chaques classe les idetificateur suivant |
---|
14 | |
---|
15 | 0 = coordonnees et geometrie (x,y,lat,long...) |
---|
16 | 1 = Var 2D A sortir regulierement (variables etats,...) |
---|
17 | 2 = Var 2D A sortir+ Debug |
---|
18 | 3 = Var 3D |
---|
19 | 4 = Var de debug |
---|
20 | 5 = sortie juste une fois au debut et une fois a la fin |
---|
21 | |
---|
22 | ---------------------------------------------------------------------- |
---|
23 | 2- Differentiation des varibles par type des noeuds |
---|
24 | sur lesquels sont calcules: |
---|
25 | ---------------------------------------------------------------------- |
---|
26 | |
---|
27 | Les varibles dans Grisli ne sont pas toutes calcules sur les memes |
---|
28 | point de grille. |
---|
29 | |
---|
30 | --o---->----o-- |
---|
31 | ' ' |
---|
32 | ^ x ^ |
---|
33 | ' ' |
---|
34 | --o---->----o-- |
---|
35 | |
---|
36 | On donne les symboles pour les differents types des noeuds sur la |
---|
37 | grille. |
---|
38 | |
---|
39 | 'o' : noeud majeur en x et en y |
---|
40 | '>' : noeud mineur en x |
---|
41 | '^' : noeud mineur en y |
---|
42 | 'x' : noeud mineur en x et en y |
---|
43 | |
---|
44 | ---------------------------------------------------------------------- |
---|
45 | 3- Le fichier "Description_Variables.dat" |
---|
46 | ---------------------------------------------------------------------- |
---|
47 | |
---|
48 | Ce fichier se trouve dans "SOURCES/Netdcf-routines/" |
---|
49 | |
---|
50 | Ce fichier contient les variables dont les sorties netcdf nous serons utiles. |
---|
51 | On donne pour chaque variable different types d'informations que nous |
---|
52 | ecrivons dans les fichier ".nc". |
---|
53 | |
---|
54 | |
---|
55 | ----> Organisation au sein du fichier |
---|
56 | |
---|
57 | Dans ce fichier vous pouvez ajouter vos commentaires sans aucun regles |
---|
58 | de format (saut de ligne, separateur ...) |
---|
59 | |
---|
60 | L'indicateur des fin des commentaires est la ligne '~~~~~~~~~~~~~~~~~~~~~'. |
---|
61 | |
---|
62 | Les descriptions des variables dans ce fichier sont comprisent dans un |
---|
63 | bloc comme le suivant: |
---|
64 | ------------------------------------------------------ |
---|
65 | .... |
---|
66 | ------------------------------------------------------ |
---|
67 | |
---|
68 | Les informations qu'on donne pour les variables sont: |
---|
69 | |
---|
70 | "Variable name" !~ info non obligatoire |
---|
71 | "n°" "name in Grisli" "Class" !! info obligatoire |
---|
72 | "Node type" !! info obligatoire |
---|
73 | "Long name" !~ info non obligatoire |
---|
74 | "Standard name" !~ info non obligatoire |
---|
75 | "Unit" !~ info non obligatoire |
---|
76 | "Description" !~ info non obligatoire |
---|
77 | |
---|
78 | Remarques: |
---|
79 | --------- |
---|
80 | - L'ordre de ces informations est important. |
---|
81 | - Les informations avec en face "!~ info non obligatoire" ne sont |
---|
82 | pas obligatoires. Donc quand on connait pas l'information |
---|
83 | correspondant on remplit le champ par "xxx" |
---|
84 | |
---|
85 | exemples: |
---|
86 | ------------------------------------------------------ |
---|
87 | "Altitude surface" |
---|
88 | 1 S 1 |
---|
89 | "o" |
---|
90 | "surface_topography_or_elevation (Searise)" |
---|
91 | "surface_altitude (cf,Searise)" |
---|
92 | "m" |
---|
93 | "Surface topography or elevation" |
---|
94 | ------------------------------------------------------ |
---|
95 | "xxx" |
---|
96 | 82 "Chaldef_maj" 3 |
---|
97 | "o" |
---|
98 | "Cahleur de deformation" |
---|
99 | "xxx" |
---|
100 | "xxx" |
---|
101 | "xxx" |
---|
102 | ------------------------------------------------------ |
---|
103 | |
---|
104 | **Fin exp |
---|
105 | |
---|
106 | Remarques: |
---|
107 | ---------- |
---|
108 | |
---|
109 | - Le n° de variable doit correspondre au if (...) tab(:,:)= .... |
---|
110 | dans sortie_netcdf_GRISLI_mod.0.2-hassine.f90 |
---|
111 | - L'ordre des varaibles n'a pas d'importance |
---|
112 | |
---|
113 | |
---|
114 | ---------------------------------------------------------------------- |
---|
115 | 4- Le fichier "TEMPS-NETCDF.dat" |
---|
116 | ---------------------------------------------------------------------- |
---|
117 | |
---|
118 | Ce fichier se trouve dans "SOURCES/Fichiers-parametres" |
---|
119 | |
---|
120 | Ce fichier permet de definir le nombre et le numero des classes des |
---|
121 | variables a sortir pour le run. |
---|
122 | Ce fichier permet aussi ensuite de definir les temps auxquels ont lieu |
---|
123 | les sorties netcdf selon deux methodes complementaires: |
---|
124 | |
---|
125 | |
---|
126 | ----> Organisation au sein du fichier |
---|
127 | |
---|
128 | Dans ce fichier vous pouvez ajouter vos commentaires sans aucun regles |
---|
129 | de format (saut de ligne, separateur ...) |
---|
130 | |
---|
131 | L'indicateur des fin des commentaires est la ligne '~~~~~~~~~~~~~~~~~~~~~'. |
---|
132 | |
---|
133 | Apres on deffinit le nombre des classes a sortir pour ce run et sur la |
---|
134 | ligne suivnates les numero des classes d'interet. |
---|
135 | |
---|
136 | exemple: |
---|
137 | -------- |
---|
138 | 3 nbr de classes a sortir dans ce run |
---|
139 | 3 2 1 5 class (voir les classes et variables dans LISTE_VAR_NCDF.dat) |
---|
140 | ------------------------------------------------------------------------------------------- |
---|
141 | |
---|
142 | **Fin exp |
---|
143 | |
---|
144 | Remarque: |
---|
145 | --------- |
---|
146 | On peut mettre des commentaires comme vous l'avez vu a la fin de la |
---|
147 | ligne des informations. |
---|
148 | |
---|
149 | Apres on parmetrise le temps des sorties netcdf. |
---|
150 | Deux methodes complementaires sont utilisees pour cette parametrisation. |
---|
151 | |
---|
152 | 1) La premiere methode consiste a definir le tableau "dtncdf "de sortie |
---|
153 | reguliere. Dans ce tableau on definit des frequences de sortie |
---|
154 | des varaibles. |
---|
155 | La dimension est donnee par le nombre ndtsortie. Apres on remplit |
---|
156 | le tableau par les pas temps qu'on veut observer (Les pas sont |
---|
157 | separes par des sauts de ligne). |
---|
158 | |
---|
159 | exemple: |
---|
160 | -------- |
---|
161 | 2 ndtsortie lecture de dtncdf de sortie |
---|
162 | 10. |
---|
163 | 20. |
---|
164 | 330. |
---|
165 | 1.e10 |
---|
166 | ------------------------------------------------------------------------------------------- |
---|
167 | |
---|
168 | **Fin exp |
---|
169 | |
---|
170 | |
---|
171 | 2) Les sorties netcdf on peut aussi les faires sortir avec des |
---|
172 | pas de temps predefinis dans le tableau "predef_tsort". Le |
---|
173 | dimension de ce dernier est donnee par npredeft. |
---|
174 | |
---|
175 | |
---|
176 | exemple: |
---|
177 | -------- |
---|
178 | 4 npredeft dimension predef_tsort |
---|
179 | 1 |
---|
180 | 5 |
---|
181 | 25 |
---|
182 | 35 |
---|
183 | 66 |
---|
184 | 100 |
---|
185 | ------------------------------------------------------------------------------------------- |
---|
186 | |
---|
187 | **Fin exp |
---|
188 | |
---|
189 | Remarque: |
---|
190 | --------- |
---|
191 | Comme vous avez remarquez pour les deux tableaux on peut definir |
---|
192 | plus d'elements a utiliser que les dimensions. Que ndtsortie ou |
---|
193 | npredeft seront utilisé. |
---|
194 | |
---|
195 | |
---|
196 | ---------------------------------------------------------------------- |
---|
197 | 5- Le fichier "LISTE-VAR-NETCDF.dat" |
---|
198 | ---------------------------------------------------------------------- |
---|
199 | |
---|
200 | Ce fichier se trouve dans "SOURCES/Fichiers-parametres" |
---|
201 | |
---|
202 | Liste des variables a sortir sur les fichier netcdf. |
---|
203 | Toutes les variables pour lesquelle une sortie est prevue sont dans cette liste. |
---|
204 | Les variables dans ce fichier sont regroupees par classe. |
---|
205 | |
---|
206 | Une variable est sortie si : |
---|
207 | le module correspondant est active (exemple eau basale) |
---|
208 | et isortie=1 |
---|
209 | |
---|
210 | La periodicite avec laquelle ces variables sont sorties |
---|
211 | ainsi que les temps predefinis eventuels sont donnes dans |
---|
212 | TEMPS-NETCDF.dat |
---|
213 | |
---|
214 | 2 ligne par classe sous la forme : |
---|
215 | ------------------------------------------ |
---|
216 | classnumber snapmax ntypenode |
---|
217 | typenod1 typenod2 typenod3 ... |
---|
218 | |
---|
219 | classnumber : presente l'identificateur des classes des variables voir section 1 de ce document |
---|
220 | |
---|
221 | snapmax : nombre de snapshot max a sortir dans un fichier |
---|
222 | netcdf si plus, il reouvre un nouveau fichier. |
---|
223 | |
---|
224 | ntypenode : nombre de type de noeud qu'on veut sortir |
---|
225 | |
---|
226 | typenodi : presente le type du noeud voir section 2 de ce document |
---|
227 | |
---|
228 | exemple: |
---|
229 | -------- |
---|
230 | ============================================ classe 1 |
---|
231 | 1 100 4 ! class 1 snapmax=10 4 type de noeud |
---|
232 | 'o' '>' '^' 'x' ! les types de noeuds |
---|
233 | ------------------------------------------ |
---|
234 | ** Fin exp |
---|
235 | |
---|
236 | 2 lignes par variable sous la forme : |
---|
237 | |
---|
238 | varname1 !attention varname1 5 caract maxi et pas de TAB apres |
---|
239 | numero |
---|
240 | isortie dtncdf interv |
---|
241 | !!! Possibilite de mettre des commentaires |
---|
242 | ligne vide |
---|
243 | ------------------------- |
---|
244 | varname2 |
---|
245 | numero |
---|
246 | isortie dtncdf interv |
---|
247 | ------------------------- |
---|
248 | |
---|
249 | |
---|
250 | varname : 5 caracteres maxi |
---|
251 | |
---|
252 | isortie : 1-> oui, 0->non (pas de sortie du tout) |
---|
253 | |
---|
254 | dtncdf : donne la periodicite avec laquelle ces variables sont sorties |
---|
255 | indice pointe dans dtsortie_ncdf definie dans TEMPS-NETCDF.dat |
---|
256 | si 0 ne sort que sur les pas de temps intermediaires |
---|
257 | |
---|
258 | interv : pour cette variable |
---|
259 | interv=-1 premier+dernier |
---|
260 | interv= 0 ne sort que le premier pas de temps |
---|
261 | interv= 1 premier + dernier + predefinis |
---|
262 | |
---|
263 | exemples: |
---|
264 | -------- |
---|
265 | 1 1 0 sort avec periodicite 1 + premier pas de temps |
---|
266 | 1 0 -1 sort seulement premier et dernier |
---|
267 | 0 1 1 ne sort pas du tout |
---|
268 | 1 0 0 ne sort que le premier |
---|
269 | |
---|
270 | ** Fin exp |
---|
271 | |
---|
272 | |
---|
273 | |
---|
274 | Remarques: |
---|
275 | ---------- |
---|
276 | |
---|
277 | - Entre les classes, le separateur est la ligne ========== |
---|
278 | - Entre les variables, le separateur est la ligne ---------- |
---|
279 | - Le programme ne teste que les 10 premiers caracteres de ========== et |
---|
280 | de ---------- |
---|
281 | |
---|
282 | |
---|
283 | ---------------------------------------------------------------------- |
---|
284 | 6- Comment ajouter une nouvelle variable pour |
---|
285 | les sorties netcdf |
---|
286 | ---------------------------------------------------------------------- |
---|
287 | |
---|
288 | Si on veut ajouter une variable pour la faire sortir en netcdf. Il |
---|
289 | faut ajouter cette variables dans le fichier |
---|
290 | "SOURCES/Netdcf-routines/Description_Variables.dat" dans un premier |
---|
291 | temps suivant la facon qu'on a decrit precedement. |
---|
292 | |
---|
293 | Remarque: |
---|
294 | --------- |
---|
295 | L'emplacement de l'ajout n'a pas d'importance. |
---|
296 | |
---|
297 | Dans un deuxieme temps il faut ajouter cette variables dans |
---|
298 | "SOURCES/Fichiers-parametres/LISTE-VAR-NETCDF.dat" suivant aussi les |
---|
299 | consignes donnees precedement. |
---|
300 | |
---|
301 | Remarque: |
---|
302 | --------- |
---|
303 | L'emplacement de l'ajout cette fois est important il faut ajouter la |
---|
304 | variables dans la bonne classe. L'ordre des variables dans une classes |
---|
305 | n'a pas d'importance. |
---|
306 | |
---|
307 | Finalement il faut ajouter if (...) tab(:,:)= .... |
---|
308 | dans le code sortie_netcdf_GRISLI_mod.0.2-hassine.f90. |
---|