LMDZ
dudv2_loc.F
Go to the documentation of this file.
1  SUBROUTINE dudv2_loc ( teta, pkf, bern, du, dv )
3  IMPLICIT NONE
4 c
5 c=======================================================================
6 c
7 c Auteur: P. Le Van
8 c -------
9 c
10 c Objet:
11 c ------
12 c
13 c *****************************************************************
14 c ..... calcul du terme de pression (gradient de p/densite ) et
15 c du terme de ( -gradient de la fonction de Bernouilli ) ...
16 c *****************************************************************
17 c Ces termes sont ajoutes a d(ucov)/dt et a d(vcov)/dt ..
18 c
19 c
20 c teta , pkf, bern sont des arguments d'entree pour le s-pg ....
21 c du et dv sont des arguments de sortie pour le s-pg ....
22 c
23 c=======================================================================
24 c
25 #include "dimensions.h"
26 #include "paramet.h"
27 #include "comvert.h"
28 
29  REAL teta( ijb_u:ije_u,llm ),pkf( ijb_u:ije_u,llm )
30  REAL bern( ijb_u:ije_u,llm )
31  REAL du( ijb_u:ije_u,llm ), dv( ijb_v:ije_v,llm )
32  INTEGER l,ij,ijb,ije
33 c
34 c
35 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
36  DO 5 l = 1,llm
37 c
38  ijb=ij_begin
39  ije=ij_end
40  if (pole_nord) ijb=ijb+iip1
41  if (pole_sud) ije=ije-iip1
42 
43  DO 2 ij = ijb, ije - 1
44  du(ij,l) = du(ij,l) + 0.5* ( teta( ij,l ) + teta( ij+1,l ) ) *
45  * ( pkf( ij,l ) - pkf(ij+1,l) ) + bern(ij,l) - bern(ij+1,l)
46  2 CONTINUE
47 c
48 c
49 c ..... correction pour du(iip1,j,l), j=2,jjm ......
50 c ... du(iip1,j,l) = du(1,j,l) ...
51 c
52 CDIR$ IVDEP
53  DO 3 ij = ijb+iip1-1, ije, iip1
54  du( ij,l ) = du( ij - iim,l )
55  3 CONTINUE
56 c
57 c
58  if (pole_nord) ijb=ijb-iip1
59 
60  DO 4 ij = ijb,ije
61  dv( ij,l) = dv(ij,l) + 0.5 * ( teta(ij,l) + teta( ij+iip1,l ) ) *
62  * ( pkf(ij+iip1,l) - pkf( ij,l ) )
63  * + bern( ij+iip1,l ) - bern( ij ,l )
64  4 CONTINUE
65 c
66  5 CONTINUE
67 c$OMP END DO NOWAIT
68 c
69  RETURN
70  END
subroutine dudv2_loc(teta, pkf, bern, du, dv)
Definition: dudv2_loc.F:2
integer, save ij_end
logical, save pole_sud
!$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
integer, save ijb_v
logical, save pole_nord
integer, save ij_begin
integer, save ije_v
c c zjulian c cym CALL iim cym klev iim
Definition: ini_bilKP_ave.h:24
integer, save ije_u
integer, save ijb_u