source: LMDZ6/trunk/libf/dyn3dmem/laplacien_gam_loc.f90 @ 5281

Last change on this file since 5281 was 5281, checked in by abarral, 4 days ago

Turn comgeom.h comgeom2.h into modules

  • 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.9 KB
Line 
1SUBROUTINE laplacien_gam_loc ( klevel, cuvsga, cvusga, unsaigam, &
2        unsapolnga, unsapolsga, teta, divgra )
3
4  !  P. Le Van
5  !
6  !   ************************************************************
7  !
8  !  ....   calcul de  (div( grad ))   de   teta  .....
9  !   ************************************************************
10  !    klevel et teta  sont des arguments  d'entree pour le s-prog
11  !  divgra     est  un argument  de sortie pour le s-prog
12  !
13  USE comgeom_mod_h
14  USE parallel_lmdz
15  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
16USE paramet_mod_h, ONLY: iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1, kftd, ip1jm, ip1jmp1, &
17          ip1jmi1, ijp1llm, ijmllm, mvar, jcfil, jcfllm
18IMPLICIT NONE
19  !
20
21
22
23  !
24  !    ............     variables  en arguments    ..........
25  !
26  INTEGER :: klevel
27  REAL :: teta( ijb_u:ije_u,klevel ), divgra( ijb_u:ije_u,klevel )
28  REAL :: cuvsga(ip1jm) , cvusga( ip1jmp1 )
29  REAL :: unsaigam(ip1jmp1)
30  REAL :: unsapolnga, unsapolsga
31  !
32  !    ...........    variables  locales    .................
33  !
34  REAL :: ghy(ijb_v:ije_v,llm), ghx(ijb_u:ije_u,llm)
35  !    ......................................................
36
37  INTEGER :: ijb,ije
38  INTEGER :: l
39  !
40  !
41  !   ...  cvuscugam  = ( cvu/ cu ) ** (- gamdissip )
42  !   ...  cuvscvgam  = ( cuv/ cv ) ** (- gamdissip )  calcules dans inigeom  ..
43  !   ...  unsairegam =  1. /  aire ** (- gamdissip )
44  !
45
46  !  CALL SCOPY ( ip1jmp1 * klevel, teta, 1, divgra, 1 )
47
48  ijb=ij_begin-iip1
49  ije=ij_end+iip1
50  if (pole_nord) ijb=ij_begin
51  if (pole_sud ) ije=ij_end
52
53!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
54  DO l=1,klevel
55    divgra(ijb:ije,l)=teta(ijb:ije,l)
56  ENDDO
57!$OMP END DO NOWAIT
58
59  !
60  CALL   grad_loc ( klevel, divgra, ghx, ghy )
61  !
62  CALL  diverg_gam_loc ( klevel, cuvsga, cvusga,  unsaigam  , &
63        unsapolnga, unsapolsga, ghx , ghy , divgra )
64
65  !
66
67  RETURN
68END SUBROUTINE laplacien_gam_loc
Note: See TracBrowser for help on using the repository browser.