| 16 | |
| 17 | === Problèmes rapportés par FH === |
| 18 | |
| 19 | 1/ on avait des variables non initialisées dans ce0l. |
| 20 | Pas très grave. C'est le même bug qu'en 1D. |
| 21 | > FH a commis. r3584 |
| 22 | |
| 23 | |
| 24 | 2/ on passe flxw comme flux de masse verticale à physique dans dyn2dmem/leaprfog_loc. Or ce flux de masse n'est pas forcément calculé encore. Il l'est par caladvtrac_loc mais celui ci ne calcule flxw que tous les iapp_tracvl pas de temps. Peut être que ce n'est un problème que quand iapp_tracvl n'est pas égal à iphysiq ... Je n'ai plus la main sur jean-zay ce matin pour faire des tests la dessus. En fait , on peut passer w à la place de flxw. C'est pas exactement le même mais c'est plus cohérent. Malheureusement ca change un peu les résultats numériques avec la nouvelle physique. Mais du coup, je ne comprends plus comment on avait 1+1=2. Ceci dit, je vois que les résultats ne sont pas changé au premier jour. (ce w n'est utilisé que dans les fermetures convectives). Est-ce qu'on peut être passé à côté ? |
| 25 | |
| 26 | PS : un détail à propos de 2/ |
| 27 | |
| 28 | Dans le code, w s'appellerait alors flxw dans call_calfis_mod. |
| 29 | En fait, plusieurs champs comme ucov, du ... sont définis deux foix |
| 30 | comme POINTER,SAVE dans leaprfog_mod et call_calfis_mod |
| 31 | Pour enlever un peu de confusion, dans leapfrog_loc, j'ai ajouté des |
| 32 | ONLY dans les USE de leapfrog_loc (qui inclue aussi un USE call_calfis_mod, ONLY : call_calfis) |
| 33 | {{{ |
| 34 | - USE leapfrog_mod |
| 35 | + USE leapfrog_mod, ONLY : ucov,vcov,teta,ps,masse,phis,q,dq |
| 36 | + & ,ucovm1,vcovm1,tetam1,massem1,psm1,p,pks,pk,pkf,flxw |
| 37 | + & ,pbaru,pbarv,du,dv,dteta,phi,dp,w |
| 38 | + & ,leapfrog_allocate,leapfrog_switch_caldyn,leapfrog_switch_dissip |
| 39 | }}} |
| 40 | commis par FH dans la r3582 |
| 41 | |
| 42 | 3/ Enfin, et là je n'ai pas de solution, dans orografi_strato.F90 sur phylmd, à l'initialisation, on crée des NaN dans |
| 43 | |
| 44 | {{{ |
| 45 | !ym Take the point at equator close to (0,0) coordinates. |
| 46 | dist_min=360 |
| 47 | dist_min_glo=360. |
| 48 | cell=-1 |
| 49 | DO ij=1,klon |
| 50 | current_dist=sqrt(longitude_deg(ij)**2+latitude_deg(ij)**2) |
| 51 | current_dist=current_dist*(1+(1e-10*ind_cell_glo(ij))/klon_glo) ! For point unicity |
| 52 | IF (dist_min>current_dist) THEN |
| 53 | dist_min=current_dist |
| 54 | cell=ij |
| 55 | ENDIF |
| 56 | ENDDO |
| 57 | |
| 58 | CALL reduce_min(dist_min,dist_min_glo) |
| 59 | IF (dist_min/=dist_min_glo) cell=-1 |
| 60 | !ym in future find the point at equator close to (0,0) coordinates. |
| 61 | }}} |