4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE drag_noro(dtime, paprs, pplay, pmea, pstd, psig, pgam, pthe, & |
SUBROUTINE drag_noro(paprs, pplay, pmea, pstd, psig, pgam, pthe, ppic, pval, & |
8 |
ppic, pval, ktest, t, u, v, pulow, pvlow, pustr, pvstr, d_t, d_u, d_v) |
ktest, t, u, v, pulow, pvlow, pustr, pvstr, d_t, d_u, d_v) |
9 |
|
|
10 |
! From LMDZ4/libf/phylmd/orografi.F, version 1.4 2005/12/01 11:27:29 |
! From LMDZ4/libf/phylmd/orografi.F, version 1.4 2005/12/01 11:27:29 |
11 |
|
|
12 |
! Author: F. Lott (LMD/CNRS). Date: 1995/02/01. |
! Author: F. Lott (LMD/CNRS). Date: 1995/02/01. |
13 |
! Objet : frottement de la montagne, interface. |
! Objet : frottement de la montagne, interface. |
14 |
|
|
15 |
|
use comconst, only: dtphys |
16 |
USE dimphy, ONLY: klev, klon |
USE dimphy, ONLY: klev, klon |
17 |
use orodrag_m, only: orodrag |
use orodrag_m, only: orodrag |
18 |
USE suphec_m, ONLY: rd, rg |
USE suphec_m, ONLY: rd, rg |
19 |
|
|
|
REAL, INTENT (IN):: dtime ! pas d'int\'egration (s) |
|
20 |
REAL, INTENT (IN):: paprs(klon, klev+1) ! pression pour chaque |
REAL, INTENT (IN):: paprs(klon, klev+1) ! pression pour chaque |
21 |
! inter-couche (en Pa) |
! inter-couche (en Pa) |
22 |
REAL, INTENT (IN):: pplay(klon, klev) ! pression pour le mileu de |
REAL, INTENT (IN):: pplay(klon, klev) ! pression pour le mileu de |
90 |
|
|
91 |
! Appeler la routine principale |
! Appeler la routine principale |
92 |
|
|
93 |
CALL orodrag(klon, klev, ktest, dtime, papmh, papmf, zgeom, pt, pu, pv, & |
CALL orodrag(klon, klev, ktest, dtphys, papmh, papmf, zgeom, pt, pu, pv, & |
94 |
pmea, pstd, psig, pgam, pthe, ppic, pval, pulow, pvlow, pdudt, & |
pmea, pstd, psig, pgam, pthe, ppic, pval, pulow, pvlow, pdudt, & |
95 |
pdvdt, pdtdt) |
pdvdt, pdtdt) |
96 |
|
|
97 |
DO k = 1, klev |
DO k = 1, klev |
98 |
DO i = 1, klon |
DO i = 1, klon |
99 |
d_u(i, klev+1-k) = dtime*pdudt(i, k) |
d_u(i, klev+1-k) = dtphys*pdudt(i, k) |
100 |
d_v(i, klev+1-k) = dtime*pdvdt(i, k) |
d_v(i, klev+1-k) = dtphys*pdvdt(i, k) |
101 |
d_t(i, klev+1-k) = dtime*pdtdt(i, k) |
d_t(i, klev+1-k) = dtphys*pdtdt(i, k) |
102 |
pustr(i) = pustr(i) & |
pustr(i) = pustr(i) & |
103 |
+ pdudt(i, k)*(papmh(i, k+1)-papmh(i, k))/rg |
+ pdudt(i, k)*(papmh(i, k+1)-papmh(i, k))/rg |
104 |
pvstr(i) = pvstr(i) & |
pvstr(i) = pvstr(i) & |