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

Last change on this file since 5248 was 5246, checked in by abarral, 23 hours ago

Convert fixed-form to free-form sources .F -> .{f,F}90
(WIP: some .F remain, will be handled in subsequent commits)

  • 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.7 KB
RevLine 
[5246]1SUBROUTINE laplacien_gam_loc ( klevel, cuvsga, cvusga, unsaigam, &
2        unsapolnga, unsapolsga, teta, divgra )
[1632]3
[5246]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 parallel_lmdz
14  IMPLICIT NONE
15  !
16  INCLUDE "dimensions.h"
17  INCLUDE "paramet.h"
18  INCLUDE "comgeom.h"
[1632]19
[5246]20  !
21  !    ............     variables  en arguments    ..........
22  !
23  INTEGER :: klevel
24  REAL :: teta( ijb_u:ije_u,klevel ), divgra( ijb_u:ije_u,klevel )
25  REAL :: cuvsga(ip1jm) , cvusga( ip1jmp1 )
26  REAL :: unsaigam(ip1jmp1)
27  REAL :: unsapolnga, unsapolsga
28  !
29  !    ...........    variables  locales    .................
30  !
31  REAL :: ghy(ijb_v:ije_v,llm), ghx(ijb_u:ije_u,llm)
32  !    ......................................................
[1632]33
[5246]34  INTEGER :: ijb,ije
35  INTEGER :: l
36  !
37  !
38  !   ...  cvuscugam  = ( cvu/ cu ) ** (- gamdissip )
39  !   ...  cuvscvgam  = ( cuv/ cv ) ** (- gamdissip )  calcules dans inigeom  ..
40  !   ...  unsairegam =  1. /  aire ** (- gamdissip )
41  !
[1632]42
[5246]43  !  CALL SCOPY ( ip1jmp1 * klevel, teta, 1, divgra, 1 )
[1632]44
[5246]45  ijb=ij_begin-iip1
46  ije=ij_end+iip1
47  if (pole_nord) ijb=ij_begin
48  if (pole_sud ) ije=ij_end
[1632]49
[5246]50!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
51  DO l=1,klevel
52    divgra(ijb:ije,l)=teta(ijb:ije,l)
53  ENDDO
54!$OMP END DO NOWAIT
[1632]55
[5246]56  !
57  CALL   grad_loc ( klevel, divgra, ghx, ghy )
58  !
59  CALL  diverg_gam_loc ( klevel, cuvsga, cvusga,  unsaigam  , &
60        unsapolnga, unsapolsga, ghx , ghy , divgra )
61
62  !
63
64  RETURN
65END SUBROUTINE laplacien_gam_loc
Note: See TracBrowser for help on using the repository browser.