source: LMDZ6/branches/cirrus/libf/phylmd/transp.F90 @ 5409

Last change on this file since 5409 was 4229, checked in by oboucher, 2 years ago

Cleaning up the energy and humidity diag transport routine

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.9 KB
Line 
1
2! $Id: transp.F90 4229 2022-08-01 15:58:28Z evignon $
3
4SUBROUTINE transp(paprs, tsol, t, q, ql, qs, u, v, geom, &
5                  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  utran_e(:) = 0.0
32  utran_q(:) = 0.0
33  vtran_e(:) = 0.0
34  vtran_q(:) = 0.0
35  utran_w(:) = 0.0
36  vtran_w(:) = 0.0
37
38  !--vertical integration of diagnostics
39  DO l = 1, klev
40    DO i = 1, klon
41      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      e = rcpd*t(i, l) + geom(i, l)
46      utran_e(i) = utran_e(i) + u(i, l)*e*dm
47      vtran_e(i) = vtran_e(i) + v(i, l)*e*dm
48      !--water vapour
49      utran_q(i) = utran_q(i) + u(i, l)*q(i,l)*dm
50      vtran_q(i) = vtran_q(i) + v(i, l)*q(i,l)*dm
51      !--total water
52      utran_w(i) = utran_w(i) + u(i, l)*(q(i,l)+ql(i,l)+qs(i,l))*dm
53      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  RETURN
58END SUBROUTINE transp
Note: See TracBrowser for help on using the repository browser.