source: trunk/MESOSCALE_DEV/NOTES.txt @ 603

Last change on this file since 603 was 579, checked in by aslmd, 13 years ago

PYTHON UTIL. improved comments for the first part. corrected a bug: for 3D fields xyt it was necessary to add --vert 0 to have x,y,or t as abscissae, this is no longer the case.

File size: 18.5 KB
Line 
1Mhh c'est un peu plus compliqué, car en toute rigueur il peut y avoir plusieurs traceurs poussières si on considère le cas où l'on tourne avec plusieurs bins radiativement actifs...
2
3Donc il vaut mieux détecter les scatterers poussières au début de la physique avec un code du style (à tester et corriger):
4
5-------------------------------------------------------------
6#include "aerkind.h" ! (qui contient name_iaer)
7
8 (...blabla)
9
10      INTEGER :: iaer
11      CHARACTER(LEN=20) :: txt
12      INTEGER,SAVE :: iaerdust(naerkind)
13      INTEGER,SAVE :: naerdust ! number of dust scatterers
14
15      (...blablablabla)
16
17      IF (firstcall) THEN
18        naerdust=0
19        DO iaer=1,naerkind
20          txt=name_iaer(iaer)
21          IF (txt(1:4).eq."dust") THEN
22            naerdust=naerdust+1
23            iaerdust(naerdust)=iaer
24          ENDIF
25        ENDDO
26      ENDIF
27-------------------------------------------------------------
28
29Et ensuite en toute rigueur encore une fois il faut sommer les taus des différents scatterers poussières dans la partie slope de ton code:
30
31-------------------------------------------------------------
32      DO ig=1,ngrid
33        DO l=1,2
34          (...blabla yeah blabla)
35          sl_tau = 0.
36          DO iaer=1,naerdust
37            sl_tau = sl_tau + tau(ig,iaerdust(iaer))
38          ENDDO
39          (...blabla yeah)
40        ENDDO
41      ENDDO
42-------------------------------------------------------------
43
44
45quand on rajoute une variable dans Registry il faut absolument recompiler avec
46-f total. enlever Registry et faire Regitry.bash ne sufit pas. sinon il met un
47e erreur absurde avec le fait que les dx ne matchent pas.
48
49
50********************************* compilation API
51Il fallait faire trois choses:
521) Spécifier le chemin vers la librairie NetCDF grâce à l'option --include-paths de f2py, autrement dit ajouter:
53--include-paths $NETCDF/include:$NETCDF/lib
542) Ceci entrainait un bug:
55"readfortrancode: could not find include file" car une partie de la routine crackfortran.py du paquet EPD était mal écrite; j'ai installé la nouvelle version de EPD (7.2) et ce premier problème fut écarté car ils ont corrigé les lignes correspondantes dans crackfortran.py;
563) Autre bug:
57"libnetcdf.a: could not read symbols: Bad value > collect2"
58L'ajoût de l'option --with-pic lors de la compilation de NetCDF résout le problème. Autrement dit, il faut faire:
59./configure --with-pic ...
60Cette option permet de créer un "position independent code, needed for shared libraries". Je ne comprends pas exactement ce que ça veut dire, mais maintenant ça marche!
61*******************************
62
63NE PASE UTILISER NOMBRES NEGATIFS DANS LE CAS HILL !!!!
64>>> OK
65
66il faudrait parler du staggering U et V et de sa solution avec api
67
68pour les trucs octave il faut executer dans octave en interactif
69
70https://bi.offis.de/wisent/tiki-index.php?page=WRF-gFortran
71
72
73
74solved with openMPI !!!!
75beware of use of openMPI with NFS
76faster with local disks
77
78NOUVELLE FERME
79- OK avec pgf_64_single
80- OK avec mpi_64 sur 1 proc
81- pas OK avec mpi_64 et 4 proc
82  cas Hellas crashe entre la sortie 9 et 10
83  .... fastsse ou pas ne change rien [mpich fast dans les deux cas]
84  .... changer radt ne fait que retarder
85  .... baisser le pas de temps pose probleme plus tot
86  .... ne marche pas en phasant les options WRF avec les options LMD physics
87  .... avec fastsse partout (mm MPI), crash ds la sortie 2
88  .... option de base SVN avec mpich sans fast, marche pas non plus crashe entre 9 et 10
89  .... iradia=1 ne change rien, toujours le probleme
90  .... la simulation tourne lorsqu'on fait callrad = F
91  .... test avec Mbounds ne renvoie aucuune erreur
92  .... test avec juste -Ktrap=fp et rien d'autre renvoie aucune erreur
93  .... semble OK avec iaervar=1, probleme dans meso_dustopacity ??? ou avec la lecture NETCDF ???
94  .... crashe direct avec WHERE_MPI=/donnees/aslmd/MPI/mpich2-1.3.1_normal/bin
95  .... alors que ca passe nickel avec iaervar=1
96  .... crashe direct avec mes librairies netcdf3.6.1 compilees avec le dernier pgf2011
97  .... ne crashe pas direct avec mes librairies netcdf4.0.1 compilees avec le
98         dernier pgf2011 et les options utilisees dans le modele ajoutees aux options
99         dans la librairie compilee dans /distrib/local
100       mais crashe entre la sortie 9 et 10 comme les autres !!!!
101  .... marche bien aussi avec iaervar=3... probleme de lecture netcdf ???
102  .... experience: on a iaervar=4 mais juste apres readtesassim
103       on regle tauref a 0.3 et ca passe. donc ce n est pas un bug structurel.
104       les valeurs lues ne sont probablement les bonnes soit par probleme
105       dans le fichier soit par probleme structurel dans readtesassim
106  .... pourtant en affichant les valeurs on ne voit pas de pb particulier !
107  .... en changeant le nom hfx en sensheat et en enlevant z0 qui pose un pb
108       avec l'ancienne physique, ca ne marche toujours pas.
109  .... crash: semble stocker les variables qui sortent de la physique OK
110       mais le reste, par exemple tsurf, est NaN c'est bizarre
111  .... avec ndomainsz=ngridmx le modele va plus loin et crashe le second jour
112       a la sortie 2
113  .... mm comportement sur ulrich que sur penn
114  .... avec mcmodel crashe tout de suite
115  .... idem en invalidant les options d optimisation dans WRF et LMD phys [non en fait il faut enlever dans MPI]
116  .... test avec netcdf3: marche pas. mais ne faut-il pas enlever toutes les options?
117  .... avec aucune option d'optimisation et netcdf3: Nan avant la sortie 2
118  .... avec aucune option d'optimisation et netcdf4: va plus loin mais NaN entre 9 et 10
119  .... options d'optimisation en -O3 toujours le mm probleme
120  .... toujours le mm probleme mm avec ulimit -s unlimited
121
122  .... test qui donne des sortie 2 des NaN en recompilant avec -fast partout
123       avec mpirun -np 1, aucun souci tout va bien
124       avec mpirun -np 8, souci egalement des la sortie 2
125       ... visiblement un souci avec readtesassim ???
126       .... MAIS NON CAR SOUCI AUSSI AVEC iaervar=1 avec 8 procs
127       .... ALORS QUE PAS DE SOUCI AVEC iaervar=1 avec 4 procs
128export NETCDF=/donnees/aslmd/MODELES/MESOSCALE_DEV/NETCDF/pgfortran_64_netcdf-4.0.1_fast
129export WHERE_MPI=/donnees/aslmd/MPI/pgfortran_mpich2-1.3.1/bin
130  .... corrections readtesassim ne semblent rien changer...
131  .... sorties frequentes permettent de voir que le probleme est localisee
132       mais rempli tres vite le domaine
133       avec dt=40s probleme apparait au bout de 700s
134       avec dt=10s probleme apparait au bout de 300s
135       avec dt=100s problemen apparait au bout de 1200s
136       ... visiblement le probleme apparait aux jointures des domaines ?
137       ... probleme sur le vitesse verticale calculee ???
138       ... visiblement non puisque mm comportement avec non_hydrostatic ou W est normal
139       ... apparemment il s'agit vraiment d'une instabilite numerique
140       ... mettre les tendances R..BLEN a 0 ne change rien...
141       ... changer dimradmars n'arrange pas en fait lorsquon met des sorties frequentes
142       ... bizarre un des 4 processes wrf.exe passe en D quelques fois ????
143... ne marche pas avec les options de compilation de WRF3 !!!
144     (mais domain met moins de temps a compiler)
145... toujours le mm probleme en acces local disque
146
147... mpich compile sans fast crash entre sortie 1 et 2
148    mpich compile avec fast crash entre sortie 9 et 10
149... mpich2-1.4.1 compile avec fast crash entre sortie 9 et 10
150
151
152TEST AVEC DEBUG
153  .... s'arrete au beau milieu d integrations sans sortir de message d'erreur
154TEST AVEC LES POUR VOIR SI PB CORRIGE AVEC WRF3
155  .... rsl_lite ne compile pas avec l'option -fast
156  .... OK avec nofast_nemesis version compilee de mpich2
157TEST avec le vieux mpich2... CRASH aussi entre la sortie 9 et 10
158
159memes erreurs avec RSL_LITE de WRF3
160alors qu il compile sans souci chez LES
161.... un probleme d'options de compilations ????
162.... pendre direct la librairie compilee chez WRF3 ???
163LES: run OK
164juste des NaN a la toute fin...
165
166peut etre faut il regler dans WRFV2 les warnings relies a la compilation de rsl_lite
167------- il y a probablement des choses a corriger
168------- coupler avec gcc [-CC=gcc] comme dans LES ????
169.... mais lorsqu on utilise le vieux mpi compile avec pgf7 pas de warnings !
170
171
172...le debugger voir une floating exception sur lwtt dans la boucle avec kdlon
173...avec les options debug le modele semble aller loin OK --> a verifier??
174...les warnins a la compilation ont ils de l importance ?
175...le fait que netcdf4 ne soit pas supporte ???
176...longue compil sur module_domain....
177
178...des pistes ici
179http://www.mmm.ucar.edu/wrf/users/wrfv3/known-prob-3.0.1.html
180
181fonctionne avec le vieux mpi dans pgf2011 [et netcdf4]
182mais les jobs ne sont pas a 100% sur les procs
183probleme donc... c est tres lent
184
185test basique avec WRFV2.2.1 et le cas em_quarter_ss et mpipgf
186memes resultats avec un proc ou plusieurs
187pas de crash
188
189
190---------------------------------------------------------------------------------
191
192--- sur nouvelles machines problemes run parallele avec nouvelle physique
193
194--- makegcm_g95 ne marche pas avec -no-second-underscore
195    marche sans et semble compiler correctement
196    ne compile pas les exec avec mais OK pour liblmd.a
197
198--- conflits quelque soit la combinaison (f-no-second-underscore ou pas) lors
199de la compilation du dynamical core WRF avec g95 64 bits
200http://forum.wrfforum.com/viewtopic.php?f=5&t=3467
201
202--- absurde: fonctionne avec les librairies NETCDF gfortran compilees par
203Ehouarn sur auric
204et en remplacant readtesassim par le vieux readtesassim
205dans ce cas meme testphys1d.e compile correctement
206... il y a quelques erreurs netcdf dans la physique visiblement ss conseq [testphys1d compile....]
207... surveiller tout de meme, en rapport avec ncf90
208... faut-il enlever #include netcdf.inc dans readtesassim soit dit en passant?
209
210
211gfortran https://bi.offis.de/wisent/tiki-index.php?page=WRF-gFortran
212---> MAIS GROS PROBLEMES (time mgmt and seg fault)
213
214
215cc-----------------------------------
216cc you can still use meso_WRITEDIAGFI (e.g. for debugging purpose),
217cc though this is not the default strategy now
218cc-----------------------------------
219cc please use cudt in namelist.input to set frequency of outputs
220cc-----------------------------------
221cc BEWARE: if at least one call to meso_WRITEDIAGFI is performed,
222cc cudt cannot be 0 - otherwise you'll get a "Floating exception"
223cc-----------------------------------         
224!      call meso_WRITEDIAGFI(ngrid,"tauref",
225!     .  "tauref","W.m-2",2,
226!     .       tauref)
227!      call meso_WRITEDIAGFI(ngrid,"zt",
228!     .  "zt","W.m-2",3,
229!     .       zt)
230!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
231!!!!! note WRF MESOSCALE AYMERIC -- mot cle "caps"
232!!!!! watercaptag n'est plus utilise que dans vdifc
233!!!!! ... pour que la sublimation ne soit pas stoppee
234!!!!! ... dans la calotte permanente nord si qsurf=0
235!!!!! on desire garder cet effet regle par caps=T
236!!!!! on a donc commente "if (caps.and.(obliquit.lt.27.))" ci-dessus
237!!!!! --- remplacer ces lignes par qqch de plus approprie
238!!!!!      si on s attaque a la calotte polaire sud
239!!!!! pas d'autre occurrence majeure du mot-cle "caps"
240!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
241
242
243kvdif ne sert a rien dans le mesoscale martien, en raison de l'appel a la
244physique et MY
245
246Venus_est_dans_SOURCES_FORTRAN
247
248adapter runmeso pour les runs ideal et les ???
249
250faire comme storm mais avec les pour eviter les recouvrements
251user manual
252
253changer la gestion topo dans LES comme fait dans modele general
254
255        13min_si_Registry_modifie     
256        15min_makemeso_moins_f       
257        1min_phys_plus_dyn_chgtresol 
258
259        PD_SCALAR est T par defaut desormais !!
260
261
262        il faudrait regler le prob du Registry dans le LES
263il y a un souci avec les variables liees a l'eau et d'autres
264
265        ---anciennes notes lES sur gnome pb avec ideal.exe
266        ## jusque 201 OK avec ideal.exe sequentiel
267        ## ensuite il vaut mieux utiliser
268        ## mpirun -n 4 ideal.exe
269        ## le MP_STACK_SIZE est dans le bashrc
270
271
272
273concat.e puis localtime.e puis
274localtime.e (tres long) puis concatnc.e pour avoir en ls
275le resultat doit etre strider a 10... sinon bug affichage
276
277ncwa -O -v mtot,icetot -a longitude -d longitude,-179.0,179.0 diagfi.nc yeye.nc
278ncwa -O -v mtot -a longitude -d longitude,-180.0,180.0 concat_LT.nc mawd.nc
279(si trop gros faire ncrcat -v mtot -d Time,,,2 concat_LT.nc yorgl.nc)
280
281resumee
282--> localtime.e tres long
283--> concatnc.e en ls tres court
284--> renomme le fichier
285--> ncwa -O -v mtot,Time -a longitude -d longitude,-180.0,180.0 gcm_LT14_a035.nc mawd_a035.nc
286
287        A FAIRE:::: mettre des flags precompilo dans les meso_
288        les reporter dans makegcm
289
290changer le renormalisation dans aeropacity ????
291on ne laisse pas aerosol comme le lifting veut qu'il soit !
292tenter des taux de soulevement pour que taudust_tmp soit les obs
293en prescivant une dust bomb fixe d opacite, on aura au moins la structure verticale
294
295        tester traceurs radiativement actifs avec la nouvelle physique ?????
296
297        A FAIRE: PB LES sur iDATAPLEX (les points HFX nuls) (pas de soucis sur ciclad)
298METTRE SUR LE svn LA BASE d'ETATS INITIAUX ????
299
300more than 4 procs w/ nest ??? y reflechir
301        -----------------------------------------------------------------------
302        -- si possible comment determiner taille ?
303        nproc doit diviser e_we-1 (1er nest)
304        grid_ratio doit diviser e_we-1 +4 (1er nest)
305        soit e_we=ye+1
306        grid_ratio divise ye+4 et nproc divise ye
307        soit nproc=8, ye=8*i
308        ainsi il existe j tel que 8i + 4 = 3j ou encore 4*[2i+1] = 3j
309        verifie par exemple si 2i+1 est multiple de 3
310        il suffit donc de trouver un multiple impair de 3 et de deduire i
311        par exemple 2i+1=33 >>>> i=16
312        >>>> e_we = 129 pour le 1er nest (et ajouter 4 pour les suivants)
313        ------------------------------------------------------------------------
314
315        ne pas utiliser le FASTCASE avec traceurs (instabilites en haut)
316            ces instabilites sont cependant reglees si on augmente radt a 10 par exemple
317
318        pour le cycle de l'eau c'est OK de regler caps=F dans le mesoscale
319        sauf si on commence a devoiler la calotte permanente nord
320        ---> corrige, scenario caps specifique au mesoscale
321
322        NE SERAIT-CE PAS MIEUX DE TOUT TRANSMETTRE AUX BORNES ???
323        tous les traceurs, pas seulement vapor
324
325
326        - attention il faut les trois MARS sinon il s arrete sans message clair
327        - attention a ne pas lancer le modele s il est deja lance
328        - important que pd_scalar soit a T ... le mettre par defaut ????
329
330
331ROUTINES a AJOUTER sont dans COMMON_GCM
332- passer aux nouveaux makegcm [en commun avec Ehouarn si on veut le nouveau
333  readtesassim qui est en F90]
334- il faut tester le nest pour verifier les lignes trop longues
335
336        (ok) lier gr_fi_dyn qui est dans dyn3d
337        (ok) regler le pb du nouveau readtesassim (ou alors le lier tout simplement ou
338          l'appeler meso_readtesassim)
339        (ok) regler le pb meso_dustlift (le lier dans makemeso comme point precedent)
340             (car le souci c que dustlift est appele dans vdifc)
341
342        [c fait normalement]
343        RESTE a ADAPTER le LES a la NOUVELLE PHYSIQUE
344        il y a normalement peu a faire
345        reste a faire egalement le -DNEWPHYS pour le LES
346
347        attention pb d'affichage des valeurs dans le fichier texte avec LES ???
348        bien que les valeurs du fichier soient tout a fait raisonnables
349        ... n'est-ce pas un effet de bord cache ????
350
351
352        apres fusion, le LES est reconnu par module_lmd_driver lorsque diff_opt=2 km_opt=2
353
354
355        -attention PB si on ne sort pas HFX et USTM (note dans le Registry)
356        -il faut run.def nouvelle physique [c est meme ce qui est utilise par runmeso]
357        - IL FAUT SE PENCHER SUR LE FAIT QU'ON INDIQUE q2val=0 dans lmd_driver ....
358
359-----------------------
360ATTENTION NOUVELLE PHYSIQUE
361Oui, c'est quelque chose qu'il faut probablement changer partout
362maintenant que la version de pgf90 à changé (sur les machines du LMD).
363Avec cette nouvelle version (7.1-6), le '-fast' est plus agressif
364qu'avant (et inclue entre autre les horribles '-Mvect=sse -Mscalarsse'
365qui dégradent la précision de certains calculs pour accélérer le code);
366je préconise de ne plus s'en servir. Bon d'accord, je n'ai pas fait une
367étude approfondie de l'impact de '-fast', mais j'ai vu qu'avec,
368j'obtenais des résultats différents lorsque je changeais simplement
369l'ordre des traceurs...
370
371Aymeric Spiga wrote:
372> je détecte ces changements d'option de compilation ; ont-ils de
373> l'importance ?
374>
375> Aymeric
376>
377> < #   set optim90=" -fast"
378> < #   set optimtru90=" -fast -c -Mfree "
379> < #   set optim90=" -O2 -Munroll=c:1 -Mnoframe -Mcache_align"
380> < #   set optimtru90=" -O2 -Munroll=c:1 -Mnoframe -Mcache_align"
381> <    set optim90=" -O2 -Munroll -Mcache_align"
382> <    set optimtru90=" -O2 -Munroll -Mcache_align"
383> ---
384>   
385>>    set optim90=" -fast"
386>>    set optimtru90=" -fast -c -Mfree "
387------------------------------
388
389
390        - attention a cp et R, normaliser une bonne fois pour toutes
391        - il manque sur le SVN les cas idealises
392- il manque sur le SVN les scripts MPI
393        - il faut recompiler les librairies NETCDF
394        - mettre la nouvelle physique
395        - mettre les DEF du meso-echelle
396
397        - modele ok sur auric
398- modele pas ok sur ciclad avec pgf2010, erreur inedite un seul module manquant
399        - modele LES OK sur ciclad
400        - modele LES ok sur auric
401
402        24/01/2011
403        tests g95 en 64bits natif sur systeme Linux
404        -- modifications de makemeso, tests
405        -- tout est OK sauf les libraires NETCDF, probleme d'underscore
406        -- OK avec libraires maison compilees avec g95 standard sur flores [et tourne OK]
407
408
409
410        mpi_64_pgf7_ncdf4_mpi1.2.txt
411        - probleme lors de la compilation de solve_em : LINUX runs out of memory [huchard]
412        - IL FAUT COMPILER SUR auric
413        nougaro est lent a la compilation, utiliser surtout auric
414
415
416
417
418______________________________________________________
419
420
421PB MPI
422/donnees/aslmd/MODELES/MPI/mpich2-1.2.1p1_PGF7/lib/libmpich.a(simple_pmi.o):
423In function `PMI_Init':
424simple_pmi.c:(.text+0x15c0): warning: Using 'gethostbyname' in statically
425linked applications requires at runtime the shared libraries from the glibc
426version used for linking
427/donnees/aslmd/MODELES/MPI/mpich2-1.2.1p1_PGF7/lib/libmpich.a(simple_pmi.o):
428In function `PMI_Init':
429simple_pmi.c:(.text+0x15c0): warning: Using 'gethostbyname' in statically
430linked applications requires at runtime the shared libraries from the glibc
431version used for linking
432/donnees/aslmd/MODELES/MPI/mpich2-1.2.1p1_PGF7/lib/libmpich.a(simple_pmi.o):
433In function `PMI_Init':
434simple_pmi.c:(.text+0x15c0): warning: Using 'gethostbyname' in statically
435linked applications requires at runtime the shared libraries from the glibc
436version used for linking
437/donnees/aslmd/MODELES/MPI/mpich2-1.2.1p1_PGF7/lib/libmpich.a(simple_pmi.o):
438In function `PMI_Init':
439simple_pmi.c:(.text+0x15c0): warning: Using 'gethostbyname' in statically
440linked applications requires at runtime the shared libraries from the glibc
441version used for linking
442
443
444POSSIBLE mars.sed
445
446s+ *../frame/module_internal_header_util.o ../frame/pack_utils.o
447-L../external/esmf_time_f90 -lesmf_time+& -L../mars_lmd/libo -llmd
448-Mmpi=mpich2+g
449
Note: See TracBrowser for help on using the repository browser.