source: LMDZ6/branches/cirrus/libf/dyn3dmem/nxgrad_gam_loc.F @ 5086

Last change on this file since 5086 was 4593, checked in by yann meurdesoif, 16 months ago

Replace #include (c preprocessor) by INCLUDE (fortran keyword)

in phylmd (except rrtm and ecrad) filtrez, dy3dmem and dyn3dcommon

Other directories will follow
YM

  • 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
Line 
1      SUBROUTINE nxgrad_gam_loc( klevel, rot, x, y )
2c
3c  P. Le Van
4c
5c   ********************************************************************
6c      calcul du gradient tourne de pi/2 du rotationnel du vect.v
7c   ********************************************************************
8c       rot          est un argument  d'entree pour le s-prog
9c       x  et y    sont des arguments de sortie pour le s-prog
10c
11      USE parallel_lmdz
12     
13      IMPLICIT NONE
14c
15      INCLUDE "dimensions.h"
16      INCLUDE "paramet.h"
17      INCLUDE "comgeom.h"
18      INTEGER klevel
19      REAL rot( ijb_v:ije_v,klevel )
20      REAL x( ijb_u:ije_u,klevel ),y(ijb_v:ije_v,klevel )
21      INTEGER   l,ij
22      integer ismin,ismax
23      external ismin,ismax
24      INTEGER :: ijb,ije
25c
26c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
27      DO 10 l = 1,klevel
28c
29      ijb=ij_begin
30      ije=ij_end
31      if(pole_sud) ije=ij_end-iip1
32     
33      DO 1  ij = ijb+1, ije
34      y( ij,l ) = (rot( ij,l ) - rot( ij-1,l )) * cvscuvgam( ij )
35   1  CONTINUE
36c
37c    ..... correction pour  y ( 1,j,l )  ......
38c
39c    ....    y(1,j,l)= y(iip1,j,l) ....
40CDIR$ IVDEP
41      DO 2  ij = ijb, ije, iip1
42      y( ij,l ) = y( ij +iim,l )
43   2  CONTINUE
44c
45      ijb=ij_begin
46      ije=ij_end+iip1
47      if(pole_nord) ijb=ij_begin+iip1
48      if(pole_sud) ije=ij_end-iip1
49     
50      DO 4  ij = ijb,ije
51      x( ij,l ) = (rot( ij,l ) - rot( ij -iip1,l )) * cuscvugam( ij )
52   4  CONTINUE
53   
54      if (pole_nord) then
55        DO  ij = 1,iip1
56         x(    ij    ,l ) = 0.
57        ENDDO
58      endif
59
60      if (pole_sud) then
61        DO  ij = 1,iip1
62         x( ij +ip1jm,l ) = 0.
63        ENDDO
64      endif
65c
66  10  CONTINUE
67c$OMP END DO NOWAIT
68      RETURN
69      END
Note: See TracBrowser for help on using the repository browser.