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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (hide 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 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 25 use comdissipn
22 guez 3 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