/[lmdze]/trunk/Sources/dyn3d/interpre.f
ViewVC logotype

Annotation of /trunk/Sources/dyn3d/interpre.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (hide annotations)
Wed Apr 29 15:47:56 2015 UTC (9 years, 1 month ago) by guez
File size: 3358 byte(s)
Sources inside, compilation outside.
1 guez 108 module interpre_m
2 guez 3
3 guez 108 IMPLICIT NONE
4 guez 3
5 guez 108 contains
6 guez 3
7 guez 108 SUBROUTINE interpre(q, qppm, w, fluxwppm, masse, apppm, bpppm, massebx, &
8     masseby, pbaru, pbarv, unatppm, vnatppm, psppm)
9 guez 3
10 guez 108 ! From LMDZ4/libf/dyn3d/interpre.F,v 1.1.1.1 2004/05/19 12:53:07
11 guez 3
12 guez 108 USE dimens_m
13     USE paramet_m
14     USE comconst
15     USE disvert_m
16     USE conf_gcm_m
17     USE conf_gcm_m
18     USE comgeom
19     USE temps
20 guez 3
21 guez 108 ! ---------------------------------------------------
22     ! Arguments
23     REAL apppm(llm+1), bpppm(llm+1)
24     REAL q(iip1, jjp1, llm), qppm(iim, jjp1, llm)
25     ! ---------------------------------------------------
26     REAL masse(iip1, jjp1, llm)
27     REAL massebx(iip1, jjp1, llm), masseby(iip1, jjm, llm)
28     REAL w(iip1, jjp1, llm)
29     REAL fluxwppm(iim, jjp1, llm)
30     REAL, INTENT (IN) :: pbaru(iip1, jjp1, llm)
31     REAL, INTENT (IN) :: pbarv(iip1, jjm, llm)
32     REAL unatppm(iim, jjp1, llm)
33     REAL vnatppm(iim, jjp1, llm)
34     REAL psppm(iim, jjp1)
35     ! ---------------------------------------------------
36     ! Local
37     REAL vnat(iip1, jjp1, llm)
38     REAL unat(iip1, jjp1, llm)
39     REAL fluxw(iip1, jjp1, llm)
40     REAL smass(iip1, jjp1)
41     ! ----------------------------------------------------
42     INTEGER l, i, j
43 guez 3
44 guez 108 ! CALCUL DE LA PRESSION DE SURFACE
45     ! Les coefficients ap et bp sont passés en common
46     ! Calcul de la pression au sol en mb optimisée pour
47     ! la vectorialisation
48    
49 guez 81 DO j = 1, jjp1
50 guez 108 DO i = 1, iip1
51     smass(i, j) = 0.
52     END DO
53 guez 81 END DO
54 guez 3
55 guez 108 DO l = 1, llm
56     DO j = 1, jjp1
57     DO i = 1, iip1
58     smass(i, j) = smass(i, j) + masse(i, j, l)
59     END DO
60     END DO
61 guez 81 END DO
62 guez 3
63 guez 81 DO j = 1, jjp1
64 guez 108 DO i = 1, iim
65     psppm(i, j) = smass(i, j)/aire_2d(i, j)*g*0.01
66     END DO
67 guez 81 END DO
68 guez 3
69 guez 108 ! RECONSTRUCTION DES CHAMPS CONTRAVARIANTS
70     ! Le programme ppm3d travaille avec les composantes
71     ! de vitesse et pas les flux, on doit donc passer de l'un à l'autre
72     ! Dans le même temps, on fait le changement d'orientation du vent en v
73     DO l = 1, llm
74     DO j = 1, jjm
75     DO i = 1, iip1
76     vnat(i, j, l) = -pbarv(i, j, l)/masseby(i, j, l)*cv_2d(i, j)
77     END DO
78     END DO
79     DO i = 1, iim
80     vnat(i, jjp1, l) = 0.
81     END DO
82     DO j = 1, jjp1
83     DO i = 1, iip1
84     unat(i, j, l) = pbaru(i, j, l)/massebx(i, j, l)*cu_2d(i, j)
85     END DO
86     END DO
87 guez 81 END DO
88    
89 guez 108 ! CALCUL DU FLUX MASSIQUE VERTICAL
90     ! Flux en l=1 (sol) nul
91     fluxw = 0.
92     DO l = 1, llm
93     DO j = 1, jjp1
94     DO i = 1, iip1
95     fluxw(i, j, l) = w(i, j, l)*g*0.01/aire_2d(i, j)
96     END DO
97     END DO
98     END DO
99 guez 81
100 guez 108 ! INVERSION DES NIVEAUX
101     ! le programme ppm3d travaille avec une 3ème coordonnée inversée par
102     ! rapport
103     ! de celle du LMDZ: z=1<=>niveau max, z=llm+1<=>surface
104     ! On passe donc des niveaux du LMDZ à ceux de Lin
105 guez 81
106 guez 108 DO l = 1, llm + 1
107     apppm(l) = ap(llm+2-l)
108     bpppm(l) = bp(llm+2-l)
109 guez 81 END DO
110    
111 guez 108 DO l = 1, llm
112     DO j = 1, jjp1
113     DO i = 1, iim
114     unatppm(i, j, l) = unat(i, j, llm-l+1)
115     vnatppm(i, j, l) = vnat(i, j, llm-l+1)
116     fluxwppm(i, j, l) = fluxw(i, j, llm-l+1)
117     qppm(i, j, l) = q(i, j, llm-l+1)
118     END DO
119     END DO
120     END DO
121 guez 81
122 guez 108 END SUBROUTINE interpre
123 guez 81
124 guez 108 end module interpre_m

  ViewVC Help
Powered by ViewVC 1.1.21