My Project
 All Classes Files Functions Variables Macros
laplacien_loc.F
Go to the documentation of this file.
1  SUBROUTINE laplacien_loc ( klevel, teta, divgra )
2 c
3 c P. Le Van
4 c
5 c ************************************************************
6 c .... calcul de (div( grad )) de teta .....
7 c ************************************************************
8 c klevel et teta sont des arguments d'entree pour le s-prog
9 c divgra est un argument de sortie pour le s-prog
10 c
11  USE parallel
12  USE mod_filtreg_p
13  IMPLICIT NONE
14 c
15 #include "dimensions.h"
16 #include "paramet.h"
17 #include "comgeom.h"
18 
19 c
20 c ......... variables en arguments ..............
21 c
22  INTEGER klevel
23  REAL teta( ijb_u:ije_u,klevel ), divgra( ijb_u:ije_u,klevel )
24  INTEGER :: l
25 c
26 c ............ variables locales ..............
27 c
28  REAL ghy(ijb_v:ije_v,llm), ghx(ijb_u:ije_u,llm)
29 c .......................................................
30 
31 
32  INTEGER :: ijb,ije,jjb,jje
33 c
34 c CALL SCOPY ( ip1jmp1 * klevel, teta, 1, divgra, 1 )
35 
36  ijb=ij_begin-iip1
37  ije=ij_end+iip1
38  if (pole_nord) ijb=ij_begin
39  if (pole_sud ) ije=ij_end
40 
41 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
42  DO l=1,klevel
43  divgra(ijb:ije,l)=teta(ijb:ije,l)
44  ENDDO
45 c$OMP END DO NOWAIT
46 
47  jjb=jj_begin-1
48  jje=jj_end+1
49  if (pole_nord) jjb=jj_begin
50  if (pole_sud ) jje=jj_end
51 
52  CALL filtreg_p( divgra,jjb_u,jje_u,jjb,jje,jjp1,
53  & klevel, 2, 1, .true., 1 )
54  CALL grad_loc( klevel,divgra, ghx , ghy )
55  CALL divergf_loc( klevel, ghx , ghy , divgra )
56 
57  RETURN
58  END