1 |
SUBROUTINE transp_lay(paprs, tsol, t, q, u, v, geom, vtran_e, vtran_q, & |
module transp_lay_m |
|
utran_e, utran_q) |
|
2 |
|
|
|
USE dimens_m |
|
|
USE dimphy |
|
|
USE suphec_m |
|
3 |
IMPLICIT NONE |
IMPLICIT NONE |
4 |
! ====================================================================== |
|
5 |
! Auteur(s): Z.X.Li (LMD/CNRS) |
contains |
6 |
! Date: le 25 avril 1994 |
|
7 |
! Objet: Calculer le transport de l'energie et de la vapeur d'eau |
SUBROUTINE transp_lay(paprs, t, q, u, v, geom, vtran_e, vtran_q, & |
8 |
! ====================================================================== |
utran_e, utran_q) |
9 |
|
|
10 |
|
USE dimens_m |
11 |
REAL, INTENT (IN):: paprs(klon, klev+1) |
USE dimphy |
12 |
REAL tsol(klon) |
USE suphec_m |
13 |
REAL, INTENT (IN):: t(klon, klev) |
! ====================================================================== |
14 |
REAL, INTENT (IN):: q(klon, klev), u(klon, klev), v(klon, klev) |
! Auteur(s): Z.X.Li (LMD/CNRS) |
15 |
REAL utran_e(klon, klev), utran_q(klon, klev) |
! Date: le 25 avril 1994 |
16 |
REAL vtran_e(klon, klev), vtran_q(klon, klev) |
! Objet: Calculer le transport de l'energie et de la vapeur d'eau |
17 |
|
! ====================================================================== |
18 |
INTEGER i, l |
|
19 |
! ------------------------------------------------------------------ |
|
20 |
REAL geom(klon, klev), esh |
REAL, INTENT (IN):: paprs(klon, klev+1) |
21 |
! ------------------------------------------------------------------ |
REAL, INTENT (IN):: t(klon, klev) |
22 |
DO l = 1, klev |
REAL, INTENT (IN):: q(klon, klev), u(klon, klev), v(klon, klev) |
23 |
DO i = 1, klon |
REAL utran_e(klon, klev), utran_q(klon, klev) |
24 |
utran_e(i, l) = 0.0 |
REAL vtran_e(klon, klev), vtran_q(klon, klev) |
25 |
utran_q(i, l) = 0.0 |
|
26 |
vtran_e(i, l) = 0.0 |
INTEGER i, l |
27 |
vtran_q(i, l) = 0.0 |
! ------------------------------------------------------------------ |
28 |
|
REAL geom(klon, klev), esh |
29 |
|
! ------------------------------------------------------------------ |
30 |
|
DO l = 1, klev |
31 |
|
DO i = 1, klon |
32 |
|
utran_e(i, l) = 0.0 |
33 |
|
utran_q(i, l) = 0.0 |
34 |
|
vtran_e(i, l) = 0.0 |
35 |
|
vtran_q(i, l) = 0.0 |
36 |
|
END DO |
37 |
END DO |
END DO |
|
END DO |
|
38 |
|
|
39 |
DO l = 1, klev |
DO l = 1, klev |
40 |
DO i = 1, klon |
DO i = 1, klon |
41 |
esh = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l) |
esh = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l) |
42 |
utran_e(i, l) = utran_e(i, l) + u(i, l)*esh*(paprs(i,l)-paprs(i,l+1))/ & |
utran_e(i, l) = utran_e(i, l) + u(i, l)*esh*(paprs(i,l)-paprs(i,l+1))/ & |
43 |
rg |
rg |
44 |
utran_q(i, l) = utran_q(i, l) + u(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1 & |
utran_q(i, l) = utran_q(i, l) + u(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1 & |
45 |
))/rg |
))/rg |
46 |
vtran_e(i, l) = vtran_e(i, l) + v(i, l)*esh*(paprs(i,l)-paprs(i,l+1))/ & |
vtran_e(i, l) = vtran_e(i, l) + v(i, l)*esh*(paprs(i,l)-paprs(i,l+1))/ & |
47 |
rg |
rg |
48 |
vtran_q(i, l) = vtran_q(i, l) + v(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1 & |
vtran_q(i, l) = vtran_q(i, l) + v(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1 & |
49 |
))/rg |
))/rg |
50 |
|
END DO |
51 |
END DO |
END DO |
|
END DO |
|
52 |
|
|
53 |
RETURN |
END SUBROUTINE transp_lay |
54 |
END SUBROUTINE transp_lay |
|
55 |
|
end module transp_lay_m |