/[lmdze]/trunk/phylmd/Orography/lift_noro.f
ViewVC logotype

Annotation of /trunk/phylmd/Orography/lift_noro.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 254 - (hide annotations)
Mon Feb 5 10:39:38 2018 UTC (6 years, 4 months ago) by guez
File size: 3423 byte(s)
Move Sources/* to root directory.
1 guez 227 module lift_noro_m
2 guez 23
3 guez 227 IMPLICIT NONE
4 guez 23
5 guez 227 contains
6 guez 23
7 guez 227 SUBROUTINE lift_noro(dtime, paprs, pplay, pmea, pstd, ppic, ktest, t, u, v, &
8     pulow, pvlow, pustr, pvstr, d_t, d_u, d_v)
9 guez 23
10 guez 227 ! Author: F.Lott (LMD/CNRS) date: 1995/02/01
11     ! Objet: Frottement de la montagne, interface
12 guez 23
13 guez 227 USE dimphy, only: klon, klev
14     use phyetat0_m, only: rlat
15     USE suphec_m, only: rd, rg
16    
17     REAL, INTENT (IN) :: dtime
18     ! dtime---input-R- pas d'integration (s)
19     REAL, INTENT (IN) :: paprs(klon, klev + 1)
20     ! paprs---input-R-pression pour chaque inter-couche (en Pa)
21     REAL, INTENT (IN) :: pplay(klon, klev)
22     ! pplay---input-R-pression pour le mileu de chaque couche (en Pa)
23     REAL pmea(klon)
24     REAL, INTENT (IN):: pstd(klon)
25     REAL ppic(klon)
26     integer ktest(klon)
27     REAL, INTENT (IN):: t(klon, klev)
28     ! t-------input-R-temperature (K)
29     real, INTENT (IN):: u(klon, klev), v(klon, klev)
30     ! u-------input-R-vitesse horizontale (m / s)
31     ! v-------input-R-vitesse horizontale (m / s)
32     REAL pulow(klon), pvlow(klon), pustr(klon), pvstr(klon)
33     REAL d_t(klon, klev), d_u(klon, klev), d_v(klon, klev)
34     ! d_t-----output-R-increment de la temperature
35     ! d_u-----output-R-increment de la vitesse u
36     ! d_v-----output-R-increment de la vitesse v
37 guez 23
38 guez 227 ! Local:
39     INTEGER i, k
40     REAL zgeom(klon, klev)
41     REAL pdtdt(klon, klev), pdudt(klon, klev), pdvdt(klon, klev)
42     REAL pt(klon, klev), pu(klon, klev), pv(klon, klev)
43     REAL papmf(klon, klev), papmh(klon, klev + 1)
44 guez 23
45 guez 227 !----------------------------------------------------------------------
46 guez 23
47 guez 227 ! initialiser les variables de sortie (pour securite)
48 guez 23
49 guez 227 DO i = 1, klon
50     pulow(i) = 0.0
51     pvlow(i) = 0.0
52     pustr(i) = 0.0
53     pvstr(i) = 0.0
54     END DO
55     DO k = 1, klev
56     DO i = 1, klon
57     d_t(i, k) = 0.0
58     d_u(i, k) = 0.0
59     d_v(i, k) = 0.0
60     pdudt(i, k) = 0.0
61     pdvdt(i, k) = 0.0
62     pdtdt(i, k) = 0.0
63     END DO
64     END DO
65 guez 23
66 guez 227 ! preparer les variables d'entree (attention: l'ordre des niveaux
67     ! verticaux augmente du haut vers le bas)
68 guez 23
69 guez 227 DO k = 1, klev
70     DO i = 1, klon
71     pt(i, k) = t(i, klev-k + 1)
72     pu(i, k) = u(i, klev-k + 1)
73     pv(i, k) = v(i, klev-k + 1)
74     papmf(i, k) = pplay(i, klev-k + 1)
75     END DO
76     END DO
77     DO k = 1, klev + 1
78     DO i = 1, klon
79     papmh(i, k) = paprs(i, klev-k + 2)
80     END DO
81     END DO
82     DO i = 1, klon
83     zgeom(i, klev) = rd * pt(i, klev) &
84     * log(papmh(i, klev + 1) / papmf(i, klev))
85     END DO
86     DO k = klev - 1, 1, -1
87     DO i = 1, klon
88     zgeom(i, k) = zgeom(i, k + 1) + rd * (pt(i, k) + pt(i, k + 1)) &
89     / 2. * log(papmf(i, k + 1) / papmf(i, k))
90     END DO
91     END DO
92 guez 23
93 guez 227 ! appeler la routine principale
94 guez 23
95 guez 227 CALL orolift(klon, klev, ktest, dtime, papmh, zgeom, pt, pu, pv, rlat, &
96     pmea, pstd, ppic, pulow, pvlow, pdudt, pdvdt, pdtdt)
97 guez 23
98 guez 227 DO k = 1, klev
99     DO i = 1, klon
100     d_u(i, klev + 1-k) = dtime * pdudt(i, k)
101     d_v(i, klev + 1-k) = dtime * pdvdt(i, k)
102     d_t(i, klev + 1-k) = dtime * pdtdt(i, k)
103     pustr(i) = pustr(i) &
104     + pdudt(i, k) * (papmh(i, k + 1)-papmh(i, k)) / rg
105     pvstr(i) = pvstr(i) &
106     + pdvdt(i, k) * (papmh(i, k + 1)-papmh(i, k)) / rg
107     END DO
108     END DO
109 guez 23
110 guez 227 END SUBROUTINE lift_noro
111    
112     end module lift_noro_m

  ViewVC Help
Powered by ViewVC 1.1.21