1 |
|
|
|
2 |
|
|
! $Id: transp.F90 4229 2022-08-01 15:58:28Z oboucher $ |
3 |
|
|
|
4 |
|
11164896 |
SUBROUTINE transp(paprs, tsol, t, q, ql, qs, u, v, geom, & |
5 |
|
288 |
utran_e, vtran_e, utran_q, vtran_q, utran_w, vtran_w) |
6 |
|
|
|
7 |
|
|
USE dimphy |
8 |
|
|
IMPLICIT NONE |
9 |
|
|
! ====================================================================== |
10 |
|
|
! Auteur(s): Z.X.Li (LMD/CNRS) |
11 |
|
|
! Date: le 25 avril 1994 |
12 |
|
|
! Objet: Calculer le transport de l'energie et de la vapeur d'eau |
13 |
|
|
! ====================================================================== |
14 |
|
|
|
15 |
|
|
include "YOMCST.h" |
16 |
|
|
|
17 |
|
|
!--inputs |
18 |
|
|
REAL, INTENT(IN) :: paprs(klon, klev+1), tsol(klon), geom(klon, klev) |
19 |
|
|
REAL, INTENT(IN) :: t(klon, klev), q(klon, klev), ql(klon, klev), qs(klon, klev) |
20 |
|
|
REAL, INTENT(IN) :: u(klon, klev), v(klon, klev) |
21 |
|
|
!--outputs |
22 |
|
|
REAL, INTENT(OUT) :: utran_e(klon), vtran_e(klon) !--lateral flux of dry static energy (J m-1 s-1) |
23 |
|
|
REAL, INTENT(OUT) :: utran_q(klon), vtran_q(klon) !--lateral flux of water vapour (kg m-1 s-1) |
24 |
|
|
REAL, INTENT(OUT) :: utran_w(klon), vtran_w(klon) !--lateral flux of total water (kg m-1 s-1) |
25 |
|
|
!--local variables |
26 |
|
|
INTEGER i, l |
27 |
|
|
REAL e, dm |
28 |
|
|
! ------------------------------------------------------------------ |
29 |
|
|
|
30 |
|
|
!--initialisations |
31 |
✓✓ |
286560 |
utran_e(:) = 0.0 |
32 |
✓✓ |
286560 |
utran_q(:) = 0.0 |
33 |
✓✓ |
286560 |
vtran_e(:) = 0.0 |
34 |
✓✓ |
286560 |
vtran_q(:) = 0.0 |
35 |
✓✓ |
286560 |
utran_w(:) = 0.0 |
36 |
✓✓ |
286560 |
vtran_w(:) = 0.0 |
37 |
|
|
|
38 |
|
|
!--vertical integration of diagnostics |
39 |
✓✓ |
11520 |
DO l = 1, klev |
40 |
✓✓ |
11176128 |
DO i = 1, klon |
41 |
|
11164608 |
dm= (paprs(i,l)-paprs(i,l+1))/RG !--mass of layer kg m-2 |
42 |
|
|
!--moist static energy |
43 |
|
|
! e = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l) |
44 |
|
|
!--dry static energy |
45 |
|
11164608 |
e = rcpd*t(i, l) + geom(i, l) |
46 |
|
11164608 |
utran_e(i) = utran_e(i) + u(i, l)*e*dm |
47 |
|
11164608 |
vtran_e(i) = vtran_e(i) + v(i, l)*e*dm |
48 |
|
|
!--water vapour |
49 |
|
11164608 |
utran_q(i) = utran_q(i) + u(i, l)*q(i,l)*dm |
50 |
|
11164608 |
vtran_q(i) = vtran_q(i) + v(i, l)*q(i,l)*dm |
51 |
|
|
!--total water |
52 |
|
11164608 |
utran_w(i) = utran_w(i) + u(i, l)*(q(i,l)+ql(i,l)+qs(i,l))*dm |
53 |
|
11175840 |
vtran_w(i) = vtran_w(i) + v(i, l)*(q(i,l)+ql(i,l)+qs(i,l))*dm |
54 |
|
|
ENDDO |
55 |
|
|
ENDDO |
56 |
|
|
|
57 |
|
288 |
RETURN |
58 |
|
|
END SUBROUTINE transp |