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

Contents of /trunk/Sources/dyn3d/Dissipation/divgrad2.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 55 - (show annotations)
Mon Dec 12 13:25:01 2011 UTC (12 years, 5 months ago) by guez
Original Path: trunk/libf/dyn3d/Dissipation/divgrad2.f
File size: 2112 byte(s)
-- In procedure "bilan_dyn", replaced average of "zvq" by integral of
"zvq", following a comment of Francis Codron :

Le calcul actuel donne des unités peu pratiques : transports de
chaleur en K m / s par exemple. C'est bien pour les sorties à 2
dimensions, latitude et pression, car alors le transport ne dépend pas
de l'espacement des niveaux, mieux pour comparer ou tracer en latitude
et pression. Par contre, quand on somme sur la verticale, on
préfèrerait avoir des transports d'énergie en watts, ou au moins an K
kg / s (à multiplier par "Cp" ou "L"). On doit pouvoir recalculer le
transport intégré à partir des fichiers de sortie, mais c'est embêtant
(calcul de "cv").

-- Gathered files in directory Dissipation.

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, cdivh )
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
21 c ....... variables en arguments .......
22 c
23 INTEGER klevel
24 REAL, intent(in):: h( ip1jmp1,klevel ), deltapres( ip1jmp1,klevel)
25 REAL divgra( ip1jmp1,klevel)
26 real, intent(in):: cdivh
27 c
28 c ....... variables locales ..........
29 c
30 REAL signe, nudivgrs, sqrtps( ip1jmp1,llm )
31 INTEGER l,ij,iter
32 integer, intent(in):: lh
33 c ...................................................................
34
35 c
36 signe = (-1.)**lh
37 nudivgrs = signe * cdivh
38 divgra = h
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