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

Annotation of /trunk/Sources/dyn3d/Dissipation/gradiv2.f

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/gradiv2.f90
File size: 1586 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 54 module gradiv2_m
2 guez 3
3 guez 54 IMPLICIT NONE
4 guez 3
5 guez 54 contains
6 guez 3
7 guez 54 SUBROUTINE gradiv2(klevel, xcov, ycov, ld, gdx, gdy, cdivu)
8 guez 3
9 guez 54 ! From LMDZ4/libf/dyn3d/gradiv2.F, version 1.1.1.1 2004/05/19 12:53:07
10     ! P. Le Van
11 guez 55 ! Calcul de grad div du vecteur v.
12 guez 3
13 guez 55 USE dimens_m, ONLY : llm
14     USE paramet_m, ONLY : ip1jm, ip1jmp1, jjp1
15     USE comgeom, ONLY : cuvscvgam1, cvuscugam1, unsair_gam1, unsapolnga1, &
16     unsapolsga1
17     USE filtreg_m, ONLY : filtreg
18 guez 3
19 guez 55 INTEGER, intent(in):: klevel
20 guez 3
21 guez 55 ! composantes covariantes de v:
22     REAL, intent(in):: xcov(ip1jmp1,klevel), ycov(ip1jm,klevel)
23    
24 guez 54 integer, intent(in):: ld
25 guez 55 REAL, intent(out):: gdx(ip1jmp1,klevel), gdy(ip1jm,klevel)
26 guez 54 real, intent(in):: cdivu
27 guez 3
28 guez 55 ! Variables locales :
29 guez 54 REAL div(ip1jmp1,llm)
30     REAL nugrads
31     INTEGER l,ij,iter
32 guez 3
33 guez 54 !--------------------------------------------------------------
34    
35 guez 55 gdx = xcov
36     gdy = ycov
37 guez 54
38 guez 55 CALL divergf(klevel, gdx, gdy, div)
39 guez 54
40 guez 55 IF(ld.GT.1) THEN
41     CALL laplacien (klevel, div, div)
42 guez 54
43     ! Iteration de l'operateur laplacien_gam
44     DO iter = 1, ld -2
45 guez 55 CALL laplacien_gam (klevel,cuvscvgam1,cvuscugam1,unsair_gam1, &
46 guez 54 unsapolnga1, unsapolsga1, div, div)
47 guez 3 ENDDO
48 guez 54 ENDIF
49    
50 guez 55 CALL filtreg(div, jjp1, klevel, 2, 1, .TRUE., 1)
51     CALL grad (klevel, div, gdx, gdy)
52 guez 54 nugrads = (-1.)**ld * cdivu
53    
54     DO l = 1, klevel
55     DO ij = 1, ip1jmp1
56 guez 55 gdx(ij,l) = gdx(ij,l) * nugrads
57 guez 54 ENDDO
58     DO ij = 1, ip1jm
59 guez 55 gdy(ij,l) = gdy(ij,l) * nugrads
60 guez 54 ENDDO
61     ENDDO
62    
63     END SUBROUTINE gradiv2
64    
65     end module gradiv2_m

  ViewVC Help
Powered by ViewVC 1.1.21