LMDZ
grad_loc.F
Go to the documentation of this file.
1  SUBROUTINE grad_loc(klevel, pg,pgx,pgy )
2 c
3 c P. Le Van
4 c
5 c ******************************************************************
6 c .. calcul des composantes covariantes en x et y du gradient de g
7 c
8 c ******************************************************************
9 c pg est un argument d'entree pour le s-prog
10 c pgx et pgy sont des arguments de sortie pour le s-prog
11 c
12  USE parallel_lmdz
13  IMPLICIT NONE
14 c
15 #include "dimensions.h"
16 #include "paramet.h"
17  INTEGER klevel
18  REAL pg( ijb_u:ije_u,klevel )
19  REAL pgx( ijb_u:ije_u,klevel ) , pgy( ijb_v:ije_v,klevel )
20  INTEGER l,ij
21  INTEGER :: ijb,ije,jjb,jje
22 c
23 c
24 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
25  DO 6 l = 1,klevel
26 c
27  ijb=ij_begin
28  ije=ij_end
29  DO 2 ij = ijb, ije - 1
30  pgx( ij,l ) = pg( ij +1,l ) - pg( ij,l )
31  2 CONTINUE
32 c
33 c .... correction pour pgx(ip1,j,l) ....
34 c ... pgx(iip1,j,l)= pgx(1,j,l) ....
35 CDIR$ IVDEP
36  DO 3 ij = ijb+iip1-1, ije, iip1
37  pgx( ij,l ) = pgx( ij -iim,l )
38  3 CONTINUE
39 c
40  ijb=ij_begin-iip1
41  ije=ij_end
42  if (pole_nord) ijb=ij_begin
43  if (pole_sud) ije=ij_end-iip1
44 
45  DO 4 ij = ijb,ije
46  pgy( ij,l ) = pg( ij,l ) - pg( ij +iip1,l )
47  4 CONTINUE
48 c
49  6 CONTINUE
50 c$OMP END DO NOWAIT
51 
52  RETURN
53  END
subroutine grad_loc(klevel, pg, pgx, pgy)
Definition: grad_loc.F:2
integer, save ij_end
logical, save pole_sud
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