LMDZ
vlspltgen_loc.F
Go to the documentation of this file.
1 !
2 ! $Header$
3 !
4  SUBROUTINE vlspltgen_loc( q,iadv,pente_max,masse,w,pbaru,pbarv,
5  & pdt, p,pk,teta )
6 
7 c
8 c auteurs: p.le van, f.hourdin, f.forget, f.codron
9 c
10 c ********************************************************************
11 c shema d'advection " pseudo amont " .
12 c + test sur humidite specifique: Q advecte< Qsat aval
13 c (F. Codron, 10/99)
14 c ********************************************************************
15 c q,pbaru,pbarv,w sont des arguments d'entree pour le s-pg ....
16 c
17 c pente_max facteur de limitation des pentes: 2 en general
18 c 0 pour un schema amont
19 c pbaru,pbarv,w flux de masse en u ,v ,w
20 c pdt pas de temps
21 c
22 c teta temperature potentielle, p pression aux interfaces,
23 c pk exner au milieu des couches necessaire pour calculer qsat
24 c --------------------------------------------------------------------
25  USE parallel_lmdz
26  USE mod_hallo
27  USE write_field_loc
28  USE vampir
29  ! CRisi: on rajoute variables utiles d'infotrac
31  & ok_iso_verif
32  USE vlspltgen_mod
33  IMPLICIT NONE
34 
35 c
36 #include "dimensions.h"
37 #include "paramet.h"
38 #include "logic.h"
39 #include "comvert.h"
40 #include "comconst.h"
41 
42 c
43 c arguments:
44 c ----------
45  INTEGER iadv(nqtot)
46  REAL masse(ijb_u:ije_u,llm),pente_max
47  REAL pbaru( ijb_u:ije_u,llm ),pbarv( ijb_v:ije_v,llm)
48  REAL q(ijb_u:ije_u,llm,nqtot)
49  REAL w(ijb_u:ije_u,llm),pdt
50  REAL p(ijb_u:ije_u,llmp1),teta(ijb_u:ije_u,llm)
51  REAL pk(ijb_u:ije_u,llm)
52 c
53 c local
54 c ---------
55 c
56  INTEGER ij,l
57 c
58  REAL zzpbar, zzw
59 
60  REAL qmin,qmax
61  DATA qmin,qmax/0.,1.e33/
62 
63 c--pour rapport de melange saturant--
64 
65  REAL rtt,retv,r2es,r3les,r3ies,r4les,r4ies,play
66  REAL ptarg,pdelarg,foeew,zdelta
67  REAL tempe(ijb_u:ije_u)
68  INTEGER ijb,ije,iq,iq2,ifils
69  LOGICAL, SAVE :: firstcall=.true.
70 !$OMP THREADPRIVATE(firstcall)
71  type(request),SAVE :: MyRequest1
72 !$OMP THREADPRIVATE(MyRequest1)
73  type(request),SAVE :: MyRequest2
74 !$OMP THREADPRIVATE(MyRequest2)
75 c fonction psat(t)
76 
77  foeew( ptarg,pdelarg ) = exp(
78  * (r3les*(1.-pdelarg)+r3ies*pdelarg) * (ptarg-rtt)
79  * / (ptarg-(r4les*(1.-pdelarg)+r4ies*pdelarg)) )
80 
81  r2es = 380.11733
82  r3les = 17.269
83  r3ies = 21.875
84  r4les = 35.86
85  r4ies = 7.66
86  retv = 0.6077667
87  rtt = 273.16
88 
89 c Allocate variables depending on dynamic variable nqtot
90 
91  IF (firstcall) THEN
92  firstcall=.false.
93  END IF
94 c-- calcul de qsat en chaque point
95 c-- approximation: au milieu des couches play(l)=(p(l)+p(l+1))/2
96 c pour eviter une exponentielle.
97 
98  call settag(myrequest1,100)
99  call settag(myrequest2,101)
100 
101 
102  ijb=ij_begin-iip1
103  ije=ij_end+iip1
104  if (pole_nord) ijb=ij_begin
105  if (pole_sud) ije=ij_end
106 
107 c$omp DO schedule(static,omp_chunk)
108  DO l = 1, llm
109  DO ij = ijb, ije
110  tempe(ij) = teta(ij,l) * pk(ij,l) /cpp
111  ENDDO
112  DO ij = ijb, ije
113  zdelta = max( 0., sign(1., rtt - tempe(ij)) )
114  play = 0.5*(p(ij,l)+p(ij,l+1))
115  qsat(ij,l) = min(0.5, r2es* foeew(tempe(ij),zdelta) / play )
116  qsat(ij,l) = qsat(ij,l) / ( 1. - retv * qsat(ij,l) )
117  ENDDO
118  ENDDO
119 c$omp END DO nowait
120 c print*,'Debut vlsplt version debug sans vlyqs'
121 
122  zzpbar = 0.5 * pdt
123  zzw = pdt
124 
125  ijb=ij_begin
126  ije=ij_end
127  if (pole_nord) ijb=ijb+iip1
128  if (pole_sud) ije=ije-iip1
129 
130 c$omp DO schedule(static,omp_chunk)
131  DO l=1,llm
132  DO ij = ijb,ije
133  mu(ij,l)=pbaru(ij,l) * zzpbar
134  ENDDO
135  ENDDO
136 c$omp END DO nowait
137 
138  ijb=ij_begin-iip1
139  ije=ij_end
140  if (pole_nord) ijb=ij_begin
141  if (pole_sud) ije=ij_end-iip1
142 
143 c$omp DO schedule(static,omp_chunk)
144  DO l=1,llm
145  DO ij=ijb,ije
146  mv(ij,l)=pbarv(ij,l) * zzpbar
147  ENDDO
148  ENDDO
149 c$omp END DO nowait
150 
151  ijb=ij_begin
152  ije=ij_end
153 
154  DO iq=1,nqtot
155 c$omp DO schedule(static,omp_chunk)
156  DO l=1,llm
157  DO ij=ijb,ije
158  mw(ij,l,iq)=w(ij,l) * zzw
159  ENDDO
160  ENDDO
161 c$omp END DO nowait
162  ENDDO
163 
164  DO iq=1,nqtot
165 c$omp master
166  DO ij=ijb,ije
167  mw(ij,llm+1,iq)=0.
168  ENDDO
169 c$omp end master
170  ENDDO
171 
172 c CALL scopy(ijp1llm,q,1,zq,1)
173 c CALL scopy(ijp1llm,masse,1,zm,1)
174 
175  ijb=ij_begin
176  ije=ij_end
177 
178  DO iq=1,nqtot
179 c$omp DO schedule(static,omp_chunk)
180  DO l=1,llm
181  zq(ijb:ije,l,iq)=q(ijb:ije,l,iq)
182  zm(ijb:ije,l,iq)=masse(ijb:ije,l)
183  ENDDO
184 c$omp END DO nowait
185  ENDDO
186 
187 #ifdef DEBUG_IO
188  CALL writefield_u('mu',mu)
189  CALL writefield_v('mv',mv)
190  CALL writefield_u('mw',mw)
191  CALL writefield_u('qsat',qsat)
192 #endif
193 
194  ! verif temporaire
195  ijb=ij_begin
196  ije=ij_end
197  if (ok_iso_verif) then
198  call check_isotopes(zq,ijb,ije,'vlspltgen_loc 191')
199  endif !if (ok_iso_verif) then
200 
201 c$omp barrier
202 ! DO iq=1,nqtot
203  DO iq=1,nqperes ! CRisi: on ne boucle que sur les pères= ceux qui sont transportés directement par l'air
204  !write(*,*) 'vlspltgen 192: iq,iadv=',iq,iadv(iq)
205 #ifdef DEBUG_IO
206  CALL writefield_u('zq',zq(:,:,iq))
207  CALL writefield_u('zm',zm(:,:,iq))
208 #endif
209  if(iadv(iq) == 0) then
210 
211  cycle
212 
213  else if (iadv(iq)==10) then
214 
215 #ifdef _ADV_HALO
216 ! CRisi: on ajoute les nombres de fils et tableaux des fils
217 ! On suppose qu'on ne peut advecter les fils que par le schéma 10.
218  call vlx_loc(zq,pente_max,zm,mu,
219  & ij_begin,ij_begin+2*iip1-1,iq)
220  call vlx_loc(zq,pente_max,zm,mu,
221  & ij_end-2*iip1+1,ij_end,iq)
222 #else
223  call vlx_loc(zq,pente_max,zm,mu,
224  & ij_begin,ij_end,iq)
225 #endif
226 
227 c$omp master
228  call vtb(vthallo)
229 c$omp end master
230  call register_hallo_u(zq(:,:,iq),llm,2,2,2,2,myrequest1)
231  call register_hallo_u(zm(:,:,iq),llm,1,1,1,1,myrequest1)
232 ! CRisi
233  do ifils=1,nqdesc(iq)
234  iq2=iqfils(ifils,iq)
235  call register_hallo_u(zq(:,:,iq2),llm,2,2,2,2,myrequest1)
236  call register_hallo_u(zm(:,:,iq2),llm,1,1,1,1,myrequest1)
237  enddo
238 
239 c$omp master
240  call vte(vthallo)
241 c$omp end master
242  else if (iadv(iq)==14) then
243 
244 #ifdef _ADV_HALO
245  call vlxqs_loc(zq,pente_max,zm,mu,
246  & qsat,ij_begin,ij_begin+2*iip1-1,iq)
247  call vlxqs_loc(zq,pente_max,zm,mu,
248  & qsat,ij_end-2*iip1+1,ij_end,iq)
249 #else
250  call vlxqs_loc(zq,pente_max,zm,mu,
251  & qsat,ij_begin,ij_end,iq)
252 #endif
253 
254 c$omp master
255  call vtb(vthallo)
256 c$omp end master
257 
258  call register_hallo_u(zq(:,:,iq),llm,2,2,2,2,myrequest1)
259  call register_hallo_u(zm(:,:,iq),llm,1,1,1,1,myrequest1)
260  do ifils=1,nqdesc(iq)
261  iq2=iqfils(ifils,iq)
262  call register_hallo_u(zq(:,:,iq2),llm,2,2,2,2,myrequest1)
263  call register_hallo_u(zm(:,:,iq2),llm,1,1,1,1,myrequest1)
264  enddo
265 
266 c$omp master
267  call vte(vthallo)
268 c$omp end master
269  else
270 
271  stop 'vlspltgen_p : schema non parallelise'
272 
273  endif
274 
275  enddo !DO iq=1,nqperes
276 
277 
278 c$omp barrier
279 c$omp master
280  call vtb(vthallo)
281 c$omp end master
282 
283  call sendrequest(myrequest1)
284 
285 c$omp master
286  call vte(vthallo)
287 c$omp end master
288 c$omp barrier
289 
290  ! verif temporaire
291  ijb=ij_begin-2*iip1
292  ije=ij_end+2*iip1
293  if (pole_nord) ijb=ij_begin
294  if (pole_sud) ije=ij_end
295  if (ok_iso_verif) then
296  call check_isotopes(zq,ij_begin,ij_end,'vlspltgen_loc 280')
297  endif !if (ok_iso_verif) then
298 
299  do iq=1,nqperes
300  !write(*,*) 'vlspltgen 279: iq=',iq
301 
302  if(iadv(iq) == 0) then
303 
304  cycle
305 
306  else if (iadv(iq)==10) then
307 
308 #ifdef _ADV_HALLO
309  call vlx_loc(zq,pente_max,zm,mu,
310  & ij_begin+2*iip1,ij_end-2*iip1,iq)
311 #endif
312  else if (iadv(iq)==14) then
313 #ifdef _ADV_HALLO
314  call vlxqs_loc(zq,pente_max,zm,mu,
315  & qsat,ij_begin+2*iip1,ij_end-2*iip1,iq)
316 #endif
317  else
318 
319  stop 'vlspltgen_p : schema non parallelise'
320 
321  endif
322 
323  enddo
324 c$omp barrier
325 c$omp master
326  call vtb(vthallo)
327 c$omp end master
328 
329 ! call WaitRecvRequest(MyRequest1)
330 ! call WaitSendRequest(MyRequest1)
331 c$omp barrier
332  call waitrequest(myrequest1)
333 
334 
335 c$omp master
336  call vte(vthallo)
337 c$omp end master
338 c$omp barrier
339 
340 
341  if (ok_iso_verif) then
342  call check_isotopes(zq,ij_begin,ij_end,'vlspltgen_loc 326')
343  endif !if (ok_iso_verif) then
344  if (ok_iso_verif) then
345  ijb=ij_begin-2*iip1
346  ije=ij_end+2*iip1
347  if (pole_nord) ijb=ij_begin
348  if (pole_sud) ije=ij_end
349  call check_isotopes(zq,ijb,ije,'vlspltgen_loc 336')
350  endif !if (ok_iso_verif) then
351 
352  do iq=1,nqperes
353  !write(*,*) 'vlspltgen 321: iq=',iq
354 #ifdef DEBUG_IO
355  CALL writefield_u('zq',zq(:,:,iq))
356  CALL writefield_u('zm',zm(:,:,iq))
357 #endif
358 
359  if(iadv(iq) == 0) then
360 
361  cycle
362 
363  else if (iadv(iq)==10) then
364 
365  call vly_loc(zq,pente_max,zm,mv,iq)
366 
367  else if (iadv(iq)==14) then
368 
369  call vlyqs_loc(zq,pente_max,zm,mv,
370  & qsat,iq)
371 
372  else
373 
374  stop 'vlspltgen_p : schema non parallelise'
375 
376  endif
377 
378  enddo
379 
380  if (ok_iso_verif) then
381  call check_isotopes(zq,ij_begin,ij_end,'vlspltgen_loc 357')
382  endif !if (ok_iso_verif) then
383 
384  do iq=1,nqperes
385  !write(*,*) 'vlspltgen 349: iq=',iq
386 #ifdef DEBUG_IO
387  CALL writefield_u('zq',zq(:,:,iq))
388  CALL writefield_u('zm',zm(:,:,iq))
389 #endif
390  if(iadv(iq) == 0) then
391 
392  cycle
393 
394  else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
395 
396 c$omp barrier
397 #ifdef _ADV_HALLO
398  call vlz_loc(zq,pente_max,zm,mw,
399  & ij_begin,ij_begin+2*iip1-1,iq)
400  call vlz_loc(zq,pente_max,zm,mw,
401  & ij_end-2*iip1+1,ij_end,iq)
402 #else
403  call vlz_loc(zq,pente_max,zm,mw,
404  & ij_begin,ij_end,iq)
405 #endif
406 c$omp barrier
407 
408 c$omp master
409  call vtb(vthallo)
410 c$omp end master
411 
412  call register_hallo_u(zq(:,:,iq),llm,2,2,2,2,myrequest2)
413  call register_hallo_u(zm(:,:,iq),llm,1,1,1,1,myrequest2)
414  ! CRisi
415  do ifils=1,nqdesc(iq)
416  iq2=iqfils(ifils,iq)
417  call register_hallo_u(zq(:,:,iq2),llm,2,2,2,2,myrequest2)
418  call register_hallo_u(zm(:,:,iq2),llm,1,1,1,1,myrequest2)
419  enddo
420 c$omp master
421  call vte(vthallo)
422 c$omp end master
423 c$omp barrier
424  else
425 
426  stop 'vlspltgen_p : schema non parallelise'
427 
428  endif
429 
430  enddo
431 c$omp barrier
432 
433 c$omp master
434  call vtb(vthallo)
435 c$omp end master
436 
437  call sendrequest(myrequest2)
438 
439 c$omp master
440  call vte(vthallo)
441 c$omp end master
442 
443 
444  if (ok_iso_verif) then
445  call check_isotopes(zq,ij_begin,ij_end,'vlspltgen_loc 429')
446  endif !if (ok_iso_verif) then
447 
448 c$omp barrier
449  do iq=1,nqperes
450  !write(*,*) 'vlspltgen 409: iq=',iq
451 
452  if(iadv(iq) == 0) then
453 
454  cycle
455 
456  else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
457 c$omp barrier
458 
459 #ifdef _ADV_HALLO
460  call vlz_loc(zq,pente_max,zm,mw,
461  & ij_begin+2*iip1,ij_end-2*iip1,iq)
462 #endif
463 
464 c$omp barrier
465  else
466 
467  stop 'vlspltgen_p : schema non parallelise'
468 
469  endif
470 
471  enddo
472  !write(*,*) 'vlspltgen_loc 476'
473 
474 c$omp barrier
475  !write(*,*) 'vlspltgen_loc 477'
476 c$omp master
477  call vtb(vthallo)
478 c$omp end master
479 
480 ! call WaitRecvRequest(MyRequest2)
481 ! call WaitSendRequest(MyRequest2)
482 c$omp barrier
483  CALL waitrequest(myrequest2)
484 
485 c$omp master
486  call vte(vthallo)
487 c$omp end master
488 c$omp barrier
489 
490 
491  !write(*,*) 'vlspltgen_loc 494'
492  if (ok_iso_verif) then
493  call check_isotopes(zq,ij_begin,ij_end,'vlspltgen_loc 461')
494  endif !if (ok_iso_verif) then
495 
496  do iq=1,nqperes
497  !write(*,*) 'vlspltgen 449: iq=',iq
498 #ifdef DEBUG_IO
499  CALL writefield_u('zq',zq(:,:,iq))
500  CALL writefield_u('zm',zm(:,:,iq))
501 #endif
502  if(iadv(iq) == 0) then
503 
504  cycle
505 
506  else if (iadv(iq)==10) then
507 
508  call vly_loc(zq,pente_max,zm,mv,iq)
509 
510  else if (iadv(iq)==14) then
511 
512  call vlyqs_loc(zq,pente_max,zm,mv,
513  & qsat,iq)
514 
515  else
516 
517  stop 'vlspltgen_p : schema non parallelise'
518 
519  endif
520 
521  enddo !do iq=1,nqperes
522 
523  if (ok_iso_verif) then
524  call check_isotopes(zq,ij_begin,ij_end,'vlspltgen_loc 493')
525  endif !if (ok_iso_verif) then
526 
527  do iq=1,nqperes
528  !write(*,*) 'vlspltgen 477: iq=',iq
529 #ifdef DEBUG_IO
530  CALL writefield_u('zq',zq(:,:,iq))
531  CALL writefield_u('zm',zm(:,:,iq))
532 #endif
533  if(iadv(iq) == 0) then
534 
535  cycle
536 
537  else if (iadv(iq)==10) then
538 
539  call vlx_loc(zq,pente_max,zm,mu,
540  & ij_begin,ij_end,iq)
541 
542  else if (iadv(iq)==14) then
543 
544  call vlxqs_loc(zq,pente_max,zm,mu,
545  & qsat, ij_begin,ij_end,iq)
546 
547  else
548 
549  stop 'vlspltgen_p : schema non parallelise'
550 
551  endif
552 
553  enddo !do iq=1,nqperes
554 
555  !write(*,*) 'vlspltgen 550: apres derniere serie de call vlx'
556  if (ok_iso_verif) then
557  call check_isotopes(zq,ij_begin,ij_end,'vlspltgen_loc 521')
558  endif !if (ok_iso_verif) then
559 
560  ijb=ij_begin
561  ije=ij_end
562  !write(*,*) 'vlspltgen_loc 557'
563 c$omp barrier
564 
565  !write(*,*) 'vlspltgen_loc 559'
566  DO iq=1,nqtot
567  !write(*,*) 'vlspltgen_loc 561, iq=',iq
568 #ifdef DEBUG_IO
569  CALL writefield_u('zq',zq(:,:,iq))
570  CALL writefield_u('zm',zm(:,:,iq))
571 #endif
572 c$omp DO schedule(static,omp_chunk)
573  DO l=1,llm
574  DO ij=ijb,ije
575 c print *,'zq-->',ij,l,iq,zq(ij,l,iq)
576 c print *,'q-->',ij,l,iq,q(ij,l,iq)
577  q(ij,l,iq)=zq(ij,l,iq)
578  ENDDO
579  ENDDO
580 c$omp END DO nowait
581  !write(*,*) 'vlspltgen_loc 575'
582 
583 c$omp DO schedule(static,omp_chunk)
584  DO l=1,llm
585  DO ij=ijb,ije-iip1+1,iip1
586  q(ij+iim,l,iq)=q(ij,l,iq)
587  ENDDO
588  ENDDO
589 c$omp END DO nowait
590  !write(*,*) 'vlspltgen_loc 583'
591  ENDDO !DO iq=1,nqtot
592 
593  if (ok_iso_verif) then
594  call check_isotopes(q,ij_begin,ij_end,'vlspltgen_loc 557')
595  endif !if (ok_iso_verif) then
596 
597 c$omp barrier
598 
599 cc$omp master
600 c call waitsendrequest(myrequest1)
601 c call waitsendrequest(myrequest2)
602 cc$omp end master
603 cc$omp barrier
604 
605  !write(*,*) 'vlspltgen 597: sortie'
606  RETURN
607  END
subroutine barrier
subroutine check_isotopes(q, ijb, ije, err_msg)
subroutine vlxqs_loc(q, pente_max, masse, u_m, qsat, ijb_x, ije_x, iq)
Definition: vlspltqs_loc.F:2
integer, dimension(:), allocatable, save nqdesc
Definition: infotrac.F90:30
recursive subroutine vlx_loc(q, pente_max, masse, u_m, ijb_x, ije_x, iq)
Definition: vlsplt_loc.F:5
!$Header llmp1
Definition: paramet.h:14
subroutine vlyqs_loc(q, pente_max, masse, masse_adv_v, qsat, iq)
Definition: vlspltqs_loc.F:409
Definition: vampir.F90:1
integer, save ij_end
logical, save pole_sud
subroutine vtb(number)
Definition: vampir.F90:52
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
real, dimension(:,:,:), pointer, save zm
integer, save nqtot
Definition: infotrac.F90:6
subroutine scopy(n, sx, incx, sy, incy)
Definition: cray.F:9
integer, dimension(:,:), allocatable, save iqfils
Definition: infotrac.F90:32
integer, save ijb_v
subroutine pression(ngrid, ap, bp, ps, p)
Definition: pression.F90:2
real, dimension(:,:), pointer, save qsat
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
Definition: calcul_STDlev.h:26
!$Id mode_top_bound COMMON comconstr omeg dissip_zref ihf INTEGER lcl REAL dtvr!dynamical time mu
Definition: comconst.h:31
logical, save pole_nord
!$Id mode_top_bound COMMON comconstr cpp
Definition: comconst.h:7
integer, parameter vthallo
Definition: vampir.F90:7
subroutine register_hallo_u(Field, ll, RUp, Rdown, SUp, SDown, a_request)
Definition: mod_hallo.F90:942
subroutine qsat(dq, q, e, p, t, r)
Definition: qsat.F90:2
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm u(l)
subroutine sendrequest(a_Request)
Definition: mod_hallo.F90:1072
recursive subroutine vly_loc(q, pente_max, masse, masse_adv_v, iq)
Definition: vlsplt_loc.F:406
subroutine vlspltgen_loc(q, iadv, pente_max, masse, w, pbaru, pbarv,
Definition: vlspltgen_loc.F:5
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
integer, save ij_begin
integer, save ije_v
integer, save omp_chunk
subroutine vte(number)
Definition: vampir.F90:69
integer, dimension(:), allocatable, save nqfils
Definition: infotrac.F90:29
subroutine waitsendrequest(a_Request)
Definition: mod_hallo.F90:1290
c c zjulian c cym CALL iim cym klev iim
Definition: ini_bilKP_ave.h:24
integer, save nqperes
Definition: infotrac.F90:15
subroutine settag(a_request, tag)
Definition: mod_hallo.F90:180
real, dimension(:,:,:), pointer, save zq
integer, save ije_u
do llm!au dessus de
real, dimension(:,:,:), pointer, save mw
real, dimension(:,:), pointer, save mv
subroutine waitrequest(a_Request)
Definition: mod_hallo.F90:1196
recursive subroutine vlz_loc(q, pente_max, masse, w, ijb_x, ije_x, iq)
Definition: vlsplt_loc.F:861
integer, save ijb_u