/[lmdze]/trunk/libf/dyn3d/divgrad2.f
ViewVC logotype

Contents of /trunk/libf/dyn3d/divgrad2.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (show annotations)
Fri Mar 5 16:43:45 2010 UTC (14 years, 3 months ago) by guez
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 !
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 use comdissipn
19 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