GCC Code Coverage Report


Directory: ./
File: phys/reevap.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 15 24 62.5%
Branches: 7 10 70.0%

Line Branch Exec Source
1 480 SUBROUTINE reevap (klon,klev,iflag_ice_thermo,t_seri,q_seri,ql_seri,qs_seri, &
2 & d_t_eva,d_q_eva,d_ql_eva,d_qs_eva)
3
4 ! flag to include modifications to ensure energy conservation (if flag >0)
5 USE add_phys_tend_mod, only : fl_cor_ebil
6
7 IMPLICIT none
8 !>======================================================================
9
10 INTEGER klon,klev,iflag_ice_thermo
11 REAL, DIMENSION(klon,klev), INTENT(in) :: t_seri,q_seri,ql_seri,qs_seri
12 REAL, DIMENSION(klon,klev), INTENT(out) :: d_t_eva,d_q_eva,d_ql_eva,d_qs_eva
13
14 REAL za,zb,zdelta,zlvdcp,zlsdcp
15 INTEGER i,k
16
17 !--------Stochastic Boundary Layer Triggering: ALE_BL--------
18 !---Propri\'et\'es du thermiques au LCL
19 include "YOMCST.h"
20 include "YOETHF.h"
21 include "FCTTRE.h"
22 !IM 100106 BEG : pouvoir sortir les ctes de la physique
23 !
24 ! Re-evaporer l'eau liquide nuageuse
25 !
26 !print *,'rrevap ; fl_cor_ebil:',fl_cor_ebil,' iflag_ice_thermo:',iflag_ice_thermo,' RVTMP2',RVTMP2
27
2/2
✓ Branch 0 taken 18720 times.
✓ Branch 1 taken 480 times.
19200 DO k = 1, klev ! re-evaporation de l'eau liquide nuageuse
28
2/2
✓ Branch 0 taken 18607680 times.
✓ Branch 1 taken 18720 times.
18626880 DO i = 1, klon
29
1/2
✓ Branch 0 taken 18607680 times.
✗ Branch 1 not taken.
18607680 if (fl_cor_ebil .GT. 0) then
30 18607680 zlvdcp=RLVTT/RCPD/(1.0+RVTMP2*(q_seri(i,k)+ql_seri(i,k)+qs_seri(i,k)))
31 18607680 zlsdcp=RLSTT/RCPD/(1.0+RVTMP2*(q_seri(i,k)+ql_seri(i,k)+qs_seri(i,k)))
32 else
33 zlvdcp=RLVTT/RCPD/(1.0+RVTMP2*q_seri(i,k))
34 !jyg<
35 ! Attention : Arnaud a propose des formules completement differentes
36 ! A verifier !!!
37 zlsdcp=RLSTT/RCPD/(1.0+RVTMP2*q_seri(i,k))
38 end if
39
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 18607680 times.
18607680 IF (iflag_ice_thermo .EQ. 0) THEN
40 zlsdcp=zlvdcp
41 ENDIF
42 !>jyg
43
44
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 18607680 times.
18626400 IF (iflag_ice_thermo.eq.0) THEN
45 !pas necessaire a priori
46
47 zdelta = MAX(0.,SIGN(1.,RTT-t_seri(i,k)))
48 zdelta = 0.
49 zb = MAX(0.0,ql_seri(i,k))
50 za = - MAX(0.0,ql_seri(i,k)) &
51 * (zlvdcp*(1.-zdelta)+zlsdcp*zdelta)
52 d_t_eva(i,k) = za
53 d_q_eva(i,k) = zb
54 d_ql_eva(i,k) = -ql_seri(i,k)
55 d_qs_eva(i,k) = 0.
56
57 ELSE
58
59 !CR: on r\'e-\'evapore eau liquide et glace
60
61 ! zdelta = MAX(0.,SIGN(1.,RTT-t_seri(i,k)))
62 ! zb = MAX(0.0,ql_seri(i,k))
63 ! za = - MAX(0.0,ql_seri(i,k)) &
64 ! * (zlvdcp*(1.-zdelta)+zlsdcp*zdelta)
65 18607680 zb = MAX(0.0,ql_seri(i,k)+qs_seri(i,k))
66 za = - MAX(0.0,ql_seri(i,k))*zlvdcp &
67 18607680 - MAX(0.0,qs_seri(i,k))*zlsdcp
68 18607680 d_t_eva(i,k) = za
69 18607680 d_q_eva(i,k) = zb
70 18607680 d_ql_eva(i,k) = -ql_seri(i,k)
71 18607680 d_qs_eva(i,k) = -qs_seri(i,k)
72 ENDIF
73
74 ENDDO
75 ENDDO
76
77 480 RETURN
78
79 END SUBROUTINE reevap
80