source: trunk/MESOSCALE/LMD_MM_MARS/SRC/DEV/NOTES.txt @ 1228

Last change on this file since 1228 was 1181, checked in by aslmd, 11 years ago

MESOSCALE. moving manual and notes into main repository.

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