/[lmdze]/trunk/dyn3d/Dissipation/gradiv2.f
ViewVC logotype

Contents of /trunk/dyn3d/Dissipation/gradiv2.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (show annotations)
Fri Mar 5 16:43:45 2010 UTC (14 years, 2 months ago) by guez
Original Path: trunk/libf/dyn3d/gradiv2.f
File size: 2046 byte(s)
Simplified "etat0_lim.sh" and "gcm.sh" because the full versions
depended on personal arrangements for directories and machines.

Translated included files into modules. Encapsulated procedures into modules.

Moved variables from module "comgeom" to local variables of
"inigeom". Deleted some unused variables in "comgeom".

Moved variable "day_ini" from module "temps" to module "dynetat0_m".

Removed useless test on variable "time" and useless "close" statement
in procedure "leapfrog".

Removed useless call to "inigeom" in procedure "limit".

1 !
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/gradiv2.F,v 1.1.1.1 2004/05/19 12:53:07 lmdzadmin Exp $
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 use dimens_m
19 use paramet_m
20 use comgeom
21 use comdissipn
22 IMPLICIT NONE
23 c
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
58 CALL laplacien_gam ( klevel,cuvscvgam1,cvuscugam1,unsair_gam1,
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

  ViewVC Help
Powered by ViewVC 1.1.21