LMDZ
gradiv2.F
Go to the documentation of this file.
1 !
2 ! $Header$
3 !
4  SUBROUTINE gradiv2(klevel, xcov, ycov, ld, gdx, gdy )
5 c
6 c P. Le Van
7 c
8 c **********************************************************
9 c ld
10 c calcul de (grad (div) ) du vect. v ....
11 c
12 c xcov et ycov etant les composant.covariantes de v
13 c **********************************************************
14 c xcont , ycont et ld sont des arguments d'entree pour le s-prog
15 c gdx et gdy sont des arguments de sortie pour le s-prog
16 c
17 c
18  IMPLICIT NONE
19 c
20 #include "dimensions.h"
21 #include "paramet.h"
22 #include "comgeom.h"
23 #include "comdissipn.h"
24 c
25 c ........ variables en arguments ........
26 
27  INTEGER klevel
28  REAL xcov( ip1jmp1,klevel ), ycov( ip1jm,klevel )
29  REAL gdx( ip1jmp1,klevel ), gdy( ip1jm,klevel )
30 c
31 c ........ variables locales .........
32 c
33  REAL div(ip1jmp1,llm)
34  REAL signe, nugrads
35  INTEGER l,ij,iter,ld
36 
37 c ........................................................
38 c
39 c
40  CALL scopy( ip1jmp1 * klevel, xcov, 1, gdx, 1 )
41  CALL scopy( ip1jm * klevel, ycov, 1, gdy, 1 )
42 c
43 c
44  signe = (-1.)**ld
45  nugrads = signe * cdivu
46 c
47 
48 
49  CALL divergf( klevel, gdx, gdy , div )
50 
51  IF( ld.GT.1 ) THEN
52 
53  CALL laplacien ( klevel, div, div )
54 
55 c ...... Iteration de l'operateur laplacien_gam .......
56 
57  DO iter = 1, ld -2
59  * unsapolnga1, unsapolsga1, div, div )
60  ENDDO
61 
62  ENDIF
63 
64 
65  CALL filtreg( div , jjp1, klevel, 2, 1, .true., 1 )
66  CALL grad ( klevel, div, gdx, gdy )
67 
68 c
69  DO l = 1, klevel
70  DO ij = 1, ip1jmp1
71  gdx( ij,l ) = gdx( ij,l ) * nugrads
72  ENDDO
73  DO ij = 1, ip1jm
74  gdy( ij,l ) = gdy( ij,l ) * nugrads
75  ENDDO
76  ENDDO
77 c
78  RETURN
79  END
subroutine grad(klevel, pg, pgx, pgy)
Definition: grad.F:5
!$Header llmm1 INTEGER ip1jmp1
Definition: paramet.h:14
!$Header cdivu
Definition: comdissipn.h:11
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
subroutine divergf(klevel, x, y, div)
Definition: divergf.F:5
subroutine scopy(n, sx, incx, sy, incy)
Definition: cray.F:9
!$Header!CDK comgeom COMMON comgeom && cvuscugam1
Definition: comgeom.h:25
!$Header llmm1 INTEGER ip1jm
Definition: paramet.h:14
!$Header!CDK comgeom COMMON comgeom && unsapolnga1
Definition: comgeom.h:19
!$Header!CDK comgeom COMMON comgeom unsapolnga2 unsair_gam1
Definition: comgeom.h:25
!$Header jjp1
Definition: paramet.h:14
!$Header!CDK comgeom COMMON comgeom cuvscvgam1
Definition: comgeom.h:25
!$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 ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
!$Header!CDK comgeom COMMON comgeom unsapolsga1
Definition: comgeom.h:19
subroutine filtreg(champ, nlat, nbniv, ifiltre, iaire, griscal, iter)
Definition: filtreg.F:6
subroutine laplacien(klevel, teta, divgra)
Definition: laplacien.F:5
subroutine laplacien_gam(klevel, cuvsga, cvusga, unsaigam, unsapolnga, unsapolsga, teta, divgra)
Definition: laplacien_gam.F:6
subroutine gradiv2(klevel, xcov, ycov, ld, gdx, gdy)
Definition: gradiv2.F:5