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

Annotation of /trunk/libf/dyn3d/Dissipation/divgrad2.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 61 - (hide annotations)
Fri Apr 20 14:58:43 2012 UTC (12 years, 1 month ago) by guez
File size: 2150 byte(s)
No more included file in LMDZE, not even "netcdf.inc".

Created a variable containing the list of common source files in
GNUmakefile. So we now also see clearly files that are specific to
each program.

Split module "histcom". Assembled resulting files in directory
"Histcom".

Removed aliasing in calls to "laplacien".

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 guez 54 SUBROUTINE divgrad2 ( klevel, h, deltapres, lh, divgra, cdivh )
5 guez 3 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 guez 61 use laplacien_m, only: laplacien
17 guez 3 use paramet_m
18     use comgeom
19     IMPLICIT NONE
20     c
21    
22     c ....... variables en arguments .......
23     c
24     INTEGER klevel
25 guez 55 REAL, intent(in):: h( ip1jmp1,klevel ), deltapres( ip1jmp1,klevel)
26 guez 56 REAL, intent(out):: divgra( ip1jmp1,klevel)
27 guez 54 real, intent(in):: cdivh
28 guez 3 c
29     c ....... variables locales ..........
30     c
31     REAL signe, nudivgrs, sqrtps( ip1jmp1,llm )
32 guez 26 INTEGER l,ij,iter
33     integer, intent(in):: lh
34 guez 3 c ...................................................................
35    
36     c
37     signe = (-1.)**lh
38     nudivgrs = signe * cdivh
39 guez 55 divgra = h
40 guez 3
41     c
42 guez 61 CALL laplacien( klevel, divgra )
43 guez 3
44     DO l = 1, klevel
45     DO ij = 1, ip1jmp1
46     sqrtps( ij,l ) = SQRT( deltapres(ij,l) )
47     ENDDO
48     ENDDO
49     c
50     DO l = 1, klevel
51     DO ij = 1, ip1jmp1
52     divgra(ij,l) = divgra(ij,l) * sqrtps(ij,l)
53     ENDDO
54     ENDDO
55    
56     c ........ Iteration de l'operateur laplacien_gam ........
57     c
58     DO iter = 1, lh - 2
59     CALL laplacien_gam ( klevel,cuvscvgam2,cvuscugam2,unsair_gam2,
60     * unsapolnga2, unsapolsga2, divgra, divgra )
61     ENDDO
62     c
63     c ...............................................................
64    
65     DO l = 1, klevel
66     DO ij = 1, ip1jmp1
67     divgra(ij,l) = divgra(ij,l) * sqrtps(ij,l)
68     ENDDO
69     ENDDO
70     c
71 guez 61 CALL laplacien ( klevel, divgra )
72 guez 3 c
73     DO l = 1,klevel
74     DO ij = 1,ip1jmp1
75     divgra(ij,l) = nudivgrs * divgra(ij,l) / deltapres(ij,l)
76     ENDDO
77     ENDDO
78    
79     RETURN
80     END

  ViewVC Help
Powered by ViewVC 1.1.21