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