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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 27 - (show annotations)
Thu Mar 25 14:29:07 2010 UTC (14 years, 2 months ago) by guez
Original Path: trunk/libf/dyn3d/gradiv2.f
File size: 2110 byte(s)
"dyn3d" and "filtrez" do not contain any included file so make rules
have been updated.

"comdissip.f90" was useless, removed it.

"dynredem0" wrote undefined value in "controle(31)", that was
overwritten by "dynredem1". Now "dynredem0" just writes 0 to
"controle(31)".

Removed arguments of "inidissip". "inidissip" now accesses the
variables by use association.

In program "etat0_lim", "itaufin" is not defined so "dynredem1" wrote
undefined value to "controle(31)". Added argument "itau" of
"dynredem1" to correct that.

"itaufin" does not need to be a module variable (of "temps"), made it
a local variable of "leapfrog".

Removed calls to "diagedyn" from "leapfrog".

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 inidissip_m
22 use filtreg_m, only: filtreg
23 IMPLICIT NONE
24 c
25 c
26 c ........ variables en arguments ........
27
28 INTEGER klevel
29 REAL xcov( ip1jmp1,klevel ), ycov( ip1jm,klevel )
30 REAL gdx( ip1jmp1,klevel ), gdy( ip1jm,klevel )
31 c
32 c ........ variables locales .........
33 c
34 REAL div(ip1jmp1,llm)
35 REAL signe, nugrads
36 INTEGER l,ij,iter
37 integer, intent(in):: ld
38
39 c ........................................................
40 c
41 c
42 CALL SCOPY( ip1jmp1 * klevel, xcov, 1, gdx, 1 )
43 CALL SCOPY( ip1jm * klevel, ycov, 1, gdy, 1 )
44 c
45 c
46 signe = (-1.)**ld
47 nugrads = signe * cdivu
48 c
49
50
51 CALL divergf( klevel, gdx, gdy , div )
52
53 IF( ld.GT.1 ) THEN
54
55 CALL laplacien ( klevel, div, div )
56
57 c ...... Iteration de l'operateur laplacien_gam .......
58
59 DO iter = 1, ld -2
60 CALL laplacien_gam ( klevel,cuvscvgam1,cvuscugam1,unsair_gam1,
61 * unsapolnga1, unsapolsga1, div, div )
62 ENDDO
63
64 ENDIF
65
66
67 CALL filtreg( div , jjp1, klevel, 2, 1, .TRUE., 1 )
68 CALL grad ( klevel, div, gdx, gdy )
69
70 c
71 DO l = 1, klevel
72 DO ij = 1, ip1jmp1
73 gdx( ij,l ) = gdx( ij,l ) * nugrads
74 ENDDO
75 DO ij = 1, ip1jm
76 gdy( ij,l ) = gdy( ij,l ) * nugrads
77 ENDDO
78 ENDDO
79 c
80 RETURN
81 END

  ViewVC Help
Powered by ViewVC 1.1.21