source: trunk/MESOSCALE_DEV/NOTES.txt @ 559

Last change on this file since 559 was 547, checked in by aslmd, 13 years ago

UTIL PYTHON: make f2py stuff work with gfortran. thanks to JBM :)

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