! $Id: transp.F90 5144 2024-07-29 21:01:04Z fairhead $ SUBROUTINE transp(paprs, tsol, t, q, ql, qs, u, v, geom, & utran_e, vtran_e, utran_q, vtran_q, utran_w, vtran_w) USE dimphy USE lmdz_yomcst 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 ! ====================================================================== !--inputs REAL, INTENT(IN) :: paprs(klon, klev + 1), tsol(klon), geom(klon, klev) REAL, INTENT(IN) :: t(klon, klev), q(klon, klev), ql(klon, klev), qs(klon, klev) REAL, INTENT(IN) :: u(klon, klev), v(klon, klev) !--outputs REAL, INTENT(OUT) :: utran_e(klon), vtran_e(klon) !--lateral flux of dry static energy (J m-1 s-1) REAL, INTENT(OUT) :: utran_q(klon), vtran_q(klon) !--lateral flux of water vapour (kg m-1 s-1) REAL, INTENT(OUT) :: utran_w(klon), vtran_w(klon) !--lateral flux of total water (kg m-1 s-1) !--local variables INTEGER i, l REAL e, dm ! ------------------------------------------------------------------ !--initialisations utran_e(:) = 0.0 utran_q(:) = 0.0 vtran_e(:) = 0.0 vtran_q(:) = 0.0 utran_w(:) = 0.0 vtran_w(:) = 0.0 !--vertical integration of diagnostics DO l = 1, klev DO i = 1, klon dm = (paprs(i, l) - paprs(i, l + 1)) / RG !--mass of layer kg m-2 !--moist static energy ! e = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l) !--dry static energy e = rcpd * t(i, l) + geom(i, l) utran_e(i) = utran_e(i) + u(i, l) * e * dm vtran_e(i) = vtran_e(i) + v(i, l) * e * dm !--water vapour utran_q(i) = utran_q(i) + u(i, l) * q(i, l) * dm vtran_q(i) = vtran_q(i) + v(i, l) * q(i, l) * dm !--total water utran_w(i) = utran_w(i) + u(i, l) * (q(i, l) + ql(i, l) + qs(i, l)) * dm vtran_w(i) = vtran_w(i) + v(i, l) * (q(i, l) + ql(i, l) + qs(i, l)) * dm ENDDO ENDDO END SUBROUTINE transp