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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (show annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 2 months ago) by guez
File size: 2101 byte(s)
Initial import
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 IMPLICIT NONE
19 c
20 include "comdissipn.h"
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