source: LMDZ6/trunk/libf/dyn3dmem/laplacien_loc.f90 @ 5272

Last change on this file since 5272 was 5272, checked in by abarral, 3 months ago

Turn paramet.h into a module

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 1.6 KB
Line 
1SUBROUTINE laplacien_loc ( klevel, teta, divgra )
2  !
3  ! P. Le Van
4  !
5  !   ************************************************************
6  !    ....     calcul de  (div( grad ))   de   teta  .....
7  !   ************************************************************
8  ! klevel et teta  sont des arguments  d'entree pour le s-prog
9  !  divgra     est  un argument  de sortie pour le s-prog
10  !
11  USE parallel_lmdz
12  USE mod_filtreg_p
13  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
14USE paramet_mod_h, ONLY: iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1, kftd, ip1jm, ip1jmp1, &
15          ip1jmi1, ijp1llm, ijmllm, mvar, jcfil, jcfllm
16IMPLICIT NONE
17  !
18
19
20  INCLUDE "comgeom.h"
21
22  !
23  !    .........      variables  en arguments   ..............
24  !
25  INTEGER :: klevel
26  REAL :: teta( ijb_u:ije_u,klevel ), divgra( ijb_u:ije_u,klevel )
27  INTEGER :: l
28  !
29  !    ............     variables  locales      ..............
30  !
31  REAL :: ghy(ijb_v:ije_v,llm), ghx(ijb_u:ije_u,llm)
32  !    .......................................................
33
34
35  INTEGER :: ijb,ije,jjb,jje
36  !
37  !  CALL SCOPY ( ip1jmp1 * klevel, teta, 1, divgra, 1 )
38
39  ijb=ij_begin-iip1
40  ije=ij_end+iip1
41  if (pole_nord) ijb=ij_begin
42  if (pole_sud ) ije=ij_end
43
44!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
45  DO l=1,klevel
46    divgra(ijb:ije,l)=teta(ijb:ije,l)
47  ENDDO
48!$OMP END DO NOWAIT
49
50  jjb=jj_begin-1
51  jje=jj_end+1
52  if (pole_nord) jjb=jj_begin
53  if (pole_sud ) jje=jj_end
54
55  CALL filtreg_p( divgra,jjb_u,jje_u,jjb,jje,jjp1, &
56        klevel,  2, 1, .TRUE., 1 )
57  CALL   grad_loc ( klevel,divgra,   ghx , ghy              )
58  CALL  divergf_loc ( klevel, ghx , ghy  , divgra           )
59
60  RETURN
61END SUBROUTINE laplacien_loc
Note: See TracBrowser for help on using the repository browser.