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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 55 - (hide 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 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     use paramet_m
17     use comgeom
18     IMPLICIT NONE
19     c
20    
21     c ....... variables en arguments .......
22     c
23     INTEGER klevel
24 guez 55 REAL, intent(in):: h( ip1jmp1,klevel ), deltapres( ip1jmp1,klevel)
25 guez 3 REAL divgra( ip1jmp1,klevel)
26 guez 54 real, intent(in):: cdivh
27 guez 3 c
28     c ....... variables locales ..........
29     c
30     REAL signe, nudivgrs, sqrtps( ip1jmp1,llm )
31 guez 26 INTEGER l,ij,iter
32     integer, intent(in):: lh
33 guez 3 c ...................................................................
34    
35     c
36     signe = (-1.)**lh
37     nudivgrs = signe * cdivh
38 guez 55 divgra = h
39 guez 3
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