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

Annotation of /trunk/Sources/dyn3d/Dissipation/gradiv2.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 27 - (hide 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 guez 3 !
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 guez 26 use inidissip_m
22 guez 27 use filtreg_m, only: filtreg
23 guez 3 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 guez 26 INTEGER l,ij,iter
37     integer, intent(in):: ld
38 guez 3
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