source: trunk/MESOSCALE_DEV/NOTES.txt @ 1104

Last change on this file since 1104 was 608, checked in by aslmd, 13 years ago

LMDZ.MARS: minor correction in solarlong. MESOSCALE: output mtot and icetot now same units, notes updated, improved save_this_simu so that all .def are saved. UTIL PYTHON: now in mesoscale mode, sections show lat/lon instead of nx or ny (to be improved), also corrected 1D labels that was not working for several time asked.

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