GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/transp.F90 Lines: 19 19 100.0 %
Date: 2023-06-30 12:56:34 Branches: 16 16 100.0 %

Line Branch Exec Source
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