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

Annotation of /trunk/Sources/dyn3d/Dissipation/divgrad2.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/divgrad2.f
File size: 2099 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/divgrad2.F,v 1.1.1.1 2004/05/19 12:53:06 lmdzadmin Exp $
3     !
4     SUBROUTINE divgrad2 ( klevel, h, deltapres, lh, divgra )
5     c
6     c P. Le Van
7     c
8     c ***************************************************************
9     c
10     c ..... calcul de (div( grad )) de ( pext * h ) .....
11     c ****************************************************************
12     c h ,klevel,lh et pext sont des arguments d'entree pour le s-prg
13     c divgra est un argument de sortie pour le s-prg
14     c
15     use dimens_m
16     use paramet_m
17     use comgeom
18 guez 25 use comdissipn
19 guez 3 IMPLICIT NONE
20     c
21    
22     c ....... variables en arguments .......
23     c
24     INTEGER klevel
25     REAL h( ip1jmp1,klevel ), deltapres( ip1jmp1,klevel )
26     REAL divgra( ip1jmp1,klevel)
27     c
28     c ....... variables locales ..........
29     c
30     REAL signe, nudivgrs, sqrtps( ip1jmp1,llm )
31     INTEGER l,ij,iter,lh
32     c ...................................................................
33    
34     c
35     signe = (-1.)**lh
36     nudivgrs = signe * cdivh
37    
38     CALL SCOPY ( ip1jmp1 * klevel, h, 1, divgra, 1 )
39    
40     c
41     CALL laplacien( klevel, divgra, divgra )
42    
43     DO l = 1, klevel
44     DO ij = 1, ip1jmp1
45     sqrtps( ij,l ) = SQRT( deltapres(ij,l) )
46     ENDDO
47     ENDDO
48     c
49     DO l = 1, klevel
50     DO ij = 1, ip1jmp1
51     divgra(ij,l) = divgra(ij,l) * sqrtps(ij,l)
52     ENDDO
53     ENDDO
54    
55     c ........ Iteration de l'operateur laplacien_gam ........
56     c
57     DO iter = 1, lh - 2
58     CALL laplacien_gam ( klevel,cuvscvgam2,cvuscugam2,unsair_gam2,
59     * unsapolnga2, unsapolsga2, divgra, divgra )
60     ENDDO
61     c
62     c ...............................................................
63    
64     DO l = 1, klevel
65     DO ij = 1, ip1jmp1
66     divgra(ij,l) = divgra(ij,l) * sqrtps(ij,l)
67     ENDDO
68     ENDDO
69     c
70     CALL laplacien ( klevel, divgra, divgra )
71     c
72     DO l = 1,klevel
73     DO ij = 1,ip1jmp1
74     divgra(ij,l) = nudivgrs * divgra(ij,l) / deltapres(ij,l)
75     ENDDO
76     ENDDO
77    
78     RETURN
79     END

  ViewVC Help
Powered by ViewVC 1.1.21