LMDZ
rotatf_p.F
Go to the documentation of this file.
1  SUBROUTINE rotatf_p (klevel, x, y, rot )
2 c
3 c Auteur : P.Le Van
4 c**************************************************************
5 c. calcule le rotationnel
6 c a tous les niveaux d'1 vecteur de comp. x et y ..
7 c x et y etant des composantes covariantes ...
8 c********************************************************************
9 c klevel, x et y sont des arguments d'entree pour le s-prog
10 c rot est un argument de sortie pour le s-prog
11 c
12  USE parallel_lmdz
13  IMPLICIT NONE
14 c
15 #include "dimensions.h"
16 #include "paramet.h"
17 #include "comgeom.h"
18 c
19 c ..... variables en arguments ......
20 c
21  INTEGER klevel
22  REAL rot( ip1jm,klevel )
23  REAL x( ip1jmp1,klevel ), y( ip1jm,klevel )
24 c
25 c ... variables locales ...
26 c
27  INTEGER l, ij
28  INTEGER :: ijb,ije,jjb,jje
29 c
30 c
31  ijb=ij_begin
32  ije=ij_end
33  if(pole_sud) ije=ij_end-iip1
34 
35 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
36  DO 10 l = 1,klevel
37 c
38  DO ij = ijb, ije - 1
39  rot( ij,l ) = y( ij+1 , l ) - y( ij,l ) +
40  * x(ij +iip1, l ) - x( ij,l )
41  ENDDO
42 c
43 c .... correction pour rot( iip1,j,l) ....
44 c .... rot(iip1,j,l)= rot(1,j,l) ...
45 CDIR$ IVDEP
46  DO ij = ijb+iip1-1, ije, iip1
47  rot( ij,l ) = rot( ij -iim,l )
48  ENDDO
49 c
50  10 CONTINUE
51 c$OMP END DO NOWAIT
52  jjb=jj_begin
53  jje=jj_end
54  if (pole_sud) jje=jj_end-1
55  CALL filtreg_p( rot, jjb,jje,jjm, klevel, 2, 2, .false., 1 )
56 
57 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
58  DO l = 1, klevel
59  DO ij = ijb, ije
60  rot(ij,l) = rot(ij,l) * unsairez(ij)
61  ENDDO
62  ENDDO
63 c$OMP END DO NOWAIT
64 c
65 c
66  RETURN
67  END
!$Header!CDK comgeom COMMON comgeom unsairez
Definition: comgeom.h:25
!$Header llmm1 INTEGER ip1jmp1
Definition: paramet.h:14
subroutine filtreg_p(champ, ibeg, iend, nlat, nbniv, ifiltre, iaire, griscal, iter)
Definition: filtreg_p.F:5
integer, save jj_end
integer, save jj_begin
integer, save ij_end
logical, save pole_sud
!$Header llmm1 INTEGER ip1jm
Definition: paramet.h:14
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
Definition: calcul_STDlev.h:26
subroutine rotatf_p(klevel, x, y, rot)
Definition: rotatf_p.F:2
integer, save ij_begin
c c zjulian c cym CALL iim cym klev iim
Definition: ini_bilKP_ave.h:24