GCC Code Coverage Report


Directory: ./
File: phys/cv3p_mixing.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 238 258 92.2%
Branches: 276 316 87.3%

Line Branch Exec Source
1 81010721 SUBROUTINE cv3p_mixing(nloc, ncum, nd, na, ntra, icb, nk, inb, &
2 240 ph, t, rr, rs, u, v, tra, h, lv, lf, frac, qta, &
3 240 unk, vnk, hp, tv, tvp, ep, clw, sig, &
4 240 Ment, Qent, hent, uent, vent, nent, &
5 Sigij, elij, supmax, Ments, Qents, traent)
6 ! **************************************************************
7 ! *
8 ! CV3P_MIXING : compute mixed draught properties and, *
9 ! within a scaling factor, mixed draught *
10 ! mass fluxes. *
11 ! written by : VTJ Philips,JY Grandpeix, 21/05/2003, 09.14.15*
12 ! modified by : *
13 ! **************************************************************
14
15 USE print_control_mod, ONLY: mydebug=>debug , lunout, prt_level
16 USE ioipsl_getin_p_mod, ONLY: getin_p
17 USE add_phys_tend_mod, ONLY: fl_cor_ebil
18
19 IMPLICIT NONE
20
21 include "cvthermo.h"
22 include "cv3param.h"
23 include "YOMCST2.h"
24 include "cvflag.h"
25
26 !inputs:
27 INTEGER, INTENT (IN) :: ncum, nd, na
28 INTEGER, INTENT (IN) :: ntra, nloc
29 INTEGER, DIMENSION (nloc), INTENT (IN) :: icb, inb, nk
30 REAL, DIMENSION (nloc, nd), INTENT (IN) :: sig
31 REAL, DIMENSION (nloc), INTENT (IN) :: unk, vnk
32 REAL, DIMENSION (nloc, nd), INTENT (IN) :: qta
33 REAL, DIMENSION (nloc, nd+1), INTENT (IN) :: ph
34 REAL, DIMENSION (nloc, nd), INTENT (IN) :: t, rr, rs
35 REAL, DIMENSION (nloc, nd), INTENT (IN) :: u, v
36 REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: tra ! input of convect3
37 REAL, DIMENSION (nloc, na), INTENT (IN) :: lv
38 REAL, DIMENSION (nloc, na), INTENT (IN) :: lf
39 REAL, DIMENSION (nloc, na), INTENT (IN) :: frac !ice fraction in condensate
40 REAL, DIMENSION (nloc, na), INTENT (IN) :: h !liquid water static energy of environment
41 REAL, DIMENSION (nloc, na), INTENT (IN) :: hp !liquid water static energy of air shed from adiab. asc.
42 REAL, DIMENSION (nloc, na), INTENT (IN) :: tv, tvp
43 REAL, DIMENSION (nloc, na), INTENT (IN) :: ep, clw
44
45 !outputs:
46 REAL, DIMENSION (nloc, na, na), INTENT (OUT) :: Ment, Qent
47 REAL, DIMENSION (nloc, na, na), INTENT (OUT) :: uent, vent
48 REAL, DIMENSION (nloc, na, na), INTENT (OUT) :: Sigij, elij
49 REAL, DIMENSION (nloc, na), INTENT (OUT) :: supmax ! Highest mixing fraction of mixed
50 ! updraughts with the sign of (h-hp)
51 REAL, DIMENSION (nloc, nd, nd, ntra), INTENT (OUT) :: traent
52 REAL, DIMENSION (nloc, nd, nd), INTENT (OUT) :: Ments, Qents
53 REAL, DIMENSION (nloc, nd, nd), INTENT (OUT) :: hent
54 INTEGER, DIMENSION (nloc, nd), INTENT (OUT) :: nent
55
56 !local variables:
57 INTEGER i, j, k, il, im, jm
58 INTEGER num1, num2
59 REAL :: rti, bf2, anum, denom, dei, altem, cwat, stemp
60 REAL :: alt, delp, delm
61 480 REAL, DIMENSION (nloc) :: Qmixmax, Rmixmax, sqmrmax
62 480 REAL, DIMENSION (nloc) :: Qmixmin, Rmixmin, sqmrmin
63 480 REAL, DIMENSION (nloc) :: signhpmh
64 480 REAL, DIMENSION (nloc) :: Sx
65 REAL :: Scrit2
66 480 REAL, DIMENSION (nloc) :: Smid, Sjmin, Sjmax
67 480 REAL, DIMENSION (nloc) :: Sbef, sup, smin
68 480 REAL, DIMENSION (nloc) :: ASij, ASij_inv, smax, Scrit
69 480 REAL, DIMENSION (nloc, nd, nd) :: Sij
70 480 REAL, DIMENSION (nloc, nd) :: csum
71 REAL :: awat
72 REAL :: cpm !Mixed draught heat capacity
73 REAL :: Tm !Mixed draught temperature
74 480 LOGICAL, DIMENSION (nloc) :: lwork
75
76 REAL amxupcrit, df, ff
77 INTEGER nstep
78
79 INTEGER,SAVE :: igout=1
80 !$OMP THREADPRIVATE(igout)
81
82 ! -- Mixing probability distribution functions
83
84 REAL Qcoef1, Qcoef2, QFF, QFFF, Qmix, Rmix, Qmix1, Rmix1, Qmix2, Rmix2, F
85
86 Qcoef1(F) = tanh(F/gammas)
87 Qcoef2(F) = (tanh(F/gammas)+gammas*log(cosh((1.-F)/gammas)/cosh(F/gammas)))
88 QFF(F) = max(min(F,1.), 0.)
89 QFFf(F) = min(QFF(F), scut)
90 Qmix1(F) = (tanh((QFF(F)-Fmax)/gammas)+Qcoef1max)/Qcoef2max
91 Rmix1(F) = (gammas*log(cosh((QFF(F)-Fmax)/gammas))+QFF(F)*Qcoef1max)/Qcoef2max
92 Qmix2(F) = -log(1.-QFFf(F))/scut
93 Rmix2(F) = (QFFf(F)+(1.-QFF(F))*log(1.-QFFf(F)))/scut
94 Qmix(F) = qqa1*Qmix1(F) + qqa2*Qmix2(F)
95 Rmix(F) = qqa1*Rmix1(F) + qqa2*Rmix2(F)
96
97 INTEGER, SAVE :: ifrst
98 DATA ifrst/0/
99 !$OMP THREADPRIVATE(ifrst)
100
101
102 ! =====================================================================
103 ! --- INITIALIZE VARIOUS ARRAYS USED IN THE COMPUTATIONS
104 ! =====================================================================
105
106 ! -- Initialize mixing PDF coefficients
107
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 239 times.
240 IF (ifrst==0) THEN
108 1 ifrst = 1
109 1 Qcoef1max = Qcoef1(Fmax)
110 1 Qcoef2max = Qcoef2(Fmax)
111 !<jyg
112 1 print*, 'fmax, gammas, qqa1, qqa2, Qcoef1max, Qcoef2max ', &
113 2 fmax, gammas, qqa1, qqa2, Qcoef1max, Qcoef2max
114 !>jyg
115 !
116 END IF
117
118
119 ! ori do 360 i=1,ncum*nlp
120
2/2
✓ Branch 0 taken 6480 times.
✓ Branch 1 taken 240 times.
6720 DO j = 1, nl
121
2/2
✓ Branch 0 taken 3431619 times.
✓ Branch 1 taken 6480 times.
3438339 DO i = 1, ncum
122 3438099 nent(i, j) = 0
123 ! in convect3, m is computed in cv3_closure
124 ! ori m(i,1)=0.0
125 END DO
126 END DO
127
128 ! ori do 400 k=1,nlp
129 ! ori do 390 j=1,nlp
130
2/2
✓ Branch 0 taken 6480 times.
✓ Branch 1 taken 240 times.
6720 DO j = 1, nl
131
2/2
✓ Branch 0 taken 174960 times.
✓ Branch 1 taken 6480 times.
181680 DO k = 1, nl
132
2/2
✓ Branch 0 taken 92653713 times.
✓ Branch 1 taken 174960 times.
92835153 DO i = 1, ncum
133 92653713 Qent(i, k, j) = rr(i, j)
134 92653713 uent(i, k, j) = u(i, j)
135 92653713 vent(i, k, j) = v(i, j)
136 92653713 elij(i, k, j) = 0.0
137 92828673 hent(i, k, j) = 0.0
138 !AC! Ment(i,k,j)=0.0
139 !AC! Sij(i,k,j)=0.0
140 END DO
141 END DO
142 END DO
143
144 !AC!
145
6/6
✓ Branch 0 taken 9360 times.
✓ Branch 1 taken 240 times.
✓ Branch 2 taken 365040 times.
✓ Branch 3 taken 9360 times.
✓ Branch 4 taken 193314537 times.
✓ Branch 5 taken 365040 times.
193689177 Ment(1:ncum, 1:nd, 1:nd) = 0.0
146
6/6
✓ Branch 0 taken 9360 times.
✓ Branch 1 taken 240 times.
✓ Branch 2 taken 365040 times.
✓ Branch 3 taken 9360 times.
✓ Branch 4 taken 193314537 times.
✓ Branch 5 taken 365040 times.
193689177 Sij(1:ncum, 1:nd, 1:nd) = 0.0
147 !AC!
148 !ym
149
6/6
✓ Branch 0 taken 9360 times.
✓ Branch 1 taken 240 times.
✓ Branch 2 taken 365040 times.
✓ Branch 3 taken 9360 times.
✓ Branch 4 taken 193314537 times.
✓ Branch 5 taken 365040 times.
193689177 Sigij(1:ncum, 1:nd, 1:nd) = 0.0
150 !ym
151
152 !jyg! DO k = 1, ntra
153 !jyg! DO j = 1, nd ! instead nlp
154 !jyg! DO i = 1, nd ! instead nlp
155 !jyg! DO il = 1, ncum
156 !jyg! traent(il, i, j, k) = tra(il, j, k)
157 !jyg! END DO
158 !jyg! END DO
159 !jyg! END DO
160 !jyg! END DO
161
162 ! =====================================================================
163 ! --- CALCULATE ENTRAINED AIR MASS FLUX (Ment), TOTAL WATER MIXING
164 ! --- RATIO (QENT), TOTAL CONDENSED WATER (elij), AND MIXING
165 ! --- FRACTION (Sij)
166 ! =====================================================================
167
168
2/2
✓ Branch 0 taken 6240 times.
✓ Branch 1 taken 240 times.
6480 DO i = minorig + 1, nl
169
170
1/2
✓ Branch 0 taken 6240 times.
✗ Branch 1 not taken.
6240 IF (ok_entrain) THEN
171
2/2
✓ Branch 0 taken 168480 times.
✓ Branch 1 taken 6240 times.
174720 DO j = minorig, nl
172
2/2
✓ Branch 0 taken 89222094 times.
✓ Branch 1 taken 168480 times.
89396814 DO il = 1, ncum
173 IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. (j>=(icb(il)-1)) &
174
8/8
✓ Branch 0 taken 78601536 times.
✓ Branch 1 taken 10620558 times.
✓ Branch 2 taken 30907008 times.
✓ Branch 3 taken 47694528 times.
✓ Branch 4 taken 27574473 times.
✓ Branch 5 taken 3332535 times.
✓ Branch 6 taken 14357294 times.
✓ Branch 7 taken 13217179 times.
89390574 .AND. (j<=inb(il))) THEN
175
176 !! rti = qnk(il) - ep(il, i)*clw(il, i)
177 14357294 rti = qta(il,i-1) - ep(il, i)*clw(il, i)
178 14357294 bf2 = 1. + lv(il, j)*lv(il, j)*rs(il, j)/(rrv*t(il,j)*t(il,j)*cpd)
179 !jyg(from aj)<
180
1/2
✓ Branch 0 taken 14357294 times.
✗ Branch 1 not taken.
14357294 IF (cvflag_ice) THEN
181 ! print*,cvflag_ice,'cvflag_ice dans do 700'
182
2/2
✓ Branch 0 taken 5723139 times.
✓ Branch 1 taken 8634155 times.
14357294 IF (t(il,j)<=263.15) THEN
183 bf2 = 1. + (lf(il,j)+lv(il,j))*(lv(il,j)+frac(il,j)* &
184 5723139 lf(il,j))*rs(il, j)/(rrv*t(il,j)*t(il,j)*cpd)
185 END IF
186 END IF
187 !>jyg
188 14357294 anum = h(il, j) - hp(il, i) + (cpv-cpd)*t(il, j)*(rti-rr(il,j))
189 14357294 denom = h(il, i) - hp(il, i) + (cpd-cpv)*(rr(il,i)-rti)*t(il, j)
190 dei = denom
191
2/2
✓ Branch 0 taken 114 times.
✓ Branch 1 taken 14357180 times.
14357294 IF (abs(dei)<0.01) dei = 0.01
192 14357294 Sij(il, i, j) = anum/dei
193 14357294 Sij(il, i, i) = 1.0
194 14357294 altem = Sij(il, i, j)*rr(il, i) + (1.-Sij(il,i,j))*rti - rs(il, j)
195 14357294 altem = altem/bf2
196 14357294 cwat = clw(il, j)*(1.-ep(il,j))
197 stemp = Sij(il, i, j)
198
8/8
✓ Branch 0 taken 9791411 times.
✓ Branch 1 taken 4565883 times.
✓ Branch 2 taken 1793584 times.
✓ Branch 3 taken 7997827 times.
✓ Branch 4 taken 565250 times.
✓ Branch 5 taken 1228334 times.
✓ Branch 6 taken 6031093 times.
✓ Branch 7 taken 7097867 times.
14357294 IF ((stemp<0.0 .OR. stemp>1.0 .OR. altem>cwat) .AND. j>i) THEN
199 !jyg(from aj)<
200
1/2
✓ Branch 0 taken 6031093 times.
✗ Branch 1 not taken.
6031093 IF (cvflag_ice) THEN
201 6031093 anum = anum - (lv(il,j)+frac(il,j)*lf(il,j))*(rti-rs(il,j)-cwat*bf2)
202 6031093 denom = denom + (lv(il,j)+frac(il,j)*lf(il,j))*(rr(il,i)-rti)
203 ELSE
204 anum = anum - lv(il, j)*(rti-rs(il,j)-cwat*bf2)
205 denom = denom + lv(il, j)*(rr(il,i)-rti)
206 END IF
207 !>jyg
208
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6031092 times.
6031093 IF (abs(denom)<0.01) denom = 0.01
209 6031093 Sij(il, i, j) = anum/denom
210 6031093 altem = Sij(il, i, j)*rr(il, i) + (1.-Sij(il,i,j))*rti - rs(il, j)
211 6031093 altem = altem - (bf2-1.)*cwat
212 END IF
213
2/2
✓ Branch 0 taken 12499941 times.
✓ Branch 1 taken 1857353 times.
14357294 IF (Sij(il,i,j)>0.0) THEN
214 !!! Ment(il,i,j)=m(il,i)
215 12499941 Ment(il, i, j) = 1.
216 elij(il, i, j) = altem
217 12499941 elij(il, i, j) = amax1(0.0, elij(il,i,j))
218 12499941 nent(il, i) = nent(il, i) + 1
219 END IF
220
221 14357294 Sij(il, i, j) = amax1(0.0, Sij(il,i,j))
222 14357294 Sij(il, i, j) = amin1(1.0, Sij(il,i,j))
223
2/2
✓ Branch 0 taken 35272582 times.
✓ Branch 1 taken 39592218 times.
74864800 ELSE IF (j > i) THEN
224
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 35272582 times.
35272582 IF (prt_level >= 10) THEN
225 print *,'cv3p_mixing i, j, Sij given by the no-precip eq. ', i, j, Sij(il,i,j)
226 ENDIF
227 END IF ! new
228 END DO
229 END DO
230 ELSE ! (ok_entrain)
231 DO il = 1,ncum
232 nent(il,i) = 0
233 ENDDO
234 ENDIF ! (ok_entrain)
235
236 !jygdebug<
237
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 6240 times.
6240 IF (prt_level >= 10) THEN
238 print *,'cv3p_mixing i, nent(i), icb, inb ',i, nent(igout,i), icb(igout), inb(igout)
239 IF (nent(igout,i) .gt. 0) THEN
240 print *,'i,(j,Sij(i,j),j=icb-1,inb) ',i,(j,Sij(igout,i,j),j=icb(igout)-1,inb(igout))
241 ENDIF
242 ENDIF
243 !>jygdebug
244
245 ! *** if no air can entrain at level i assume that updraft detrains ***
246 ! *** at that level and calculate detrained air flux and properties ***
247
248
249 ! @ do 170 i=icb(il),inb(il)
250
251
2/2
✓ Branch 0 taken 3304522 times.
✓ Branch 1 taken 6240 times.
3311002 DO il = 1, ncum
252
5/6
✓ Branch 0 taken 2911168 times.
✓ Branch 1 taken 393354 times.
✓ Branch 2 taken 1144704 times.
✓ Branch 3 taken 1766464 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1144704 times.
3310762 IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. (nent(il,i)==0)) THEN
253 ! @ if(nent(il,i).eq.0)then
254 !!! Ment(il,i,i)=m(il,i)
255 Ment(il, i, i) = 1.
256 !! Qent(il, i, i) = qnk(il) - ep(il, i)*clw(il, i)
257 Qent(il, i, i) = qta(il,i-1) - ep(il, i)*clw(il, i)
258 uent(il, i, i) = unk(il)
259 vent(il, i, i) = vnk(il)
260 IF (fl_cor_ebil .GE. 2) THEN
261 hent(il, i, i) = hp(il,i)
262 ENDIF
263 elij(il, i, i) = clw(il, i)*(1.-ep(il,i))
264 Sij(il, i, i) = 0.0
265 END IF
266 END DO
267 END DO ! i = minorig + 1, nl
268
269 !jyg! DO j = 1, ntra
270 !jyg! DO i = minorig + 1, nl
271 !jyg! DO il = 1, ncum
272 !jyg! IF (i>=icb(il) .AND. i<=inb(il) .AND. nent(il,i)==0) THEN
273 !jyg! traent(il, i, i, j) = tra(il, nk(il), j)
274 !jyg! END IF
275 !jyg! END DO
276 !jyg! END DO
277 !jyg! END DO
278
279
2/2
✓ Branch 0 taken 6480 times.
✓ Branch 1 taken 240 times.
6720 DO j = minorig, nl
280
2/2
✓ Branch 0 taken 174960 times.
✓ Branch 1 taken 6480 times.
181680 DO i = minorig, nl
281
2/2
✓ Branch 0 taken 92653713 times.
✓ Branch 1 taken 174960 times.
92835153 DO il = 1, ncum
282 IF ((j>=(icb(il)-1)) .AND. (j<=inb(il)) .AND. &
283
8/8
✓ Branch 0 taken 82033155 times.
✓ Branch 1 taken 10620558 times.
✓ Branch 2 taken 34338627 times.
✓ Branch 3 taken 47694528 times.
✓ Branch 4 taken 29340937 times.
✓ Branch 5 taken 4997690 times.
✓ Branch 6 taken 14357294 times.
✓ Branch 7 taken 14983643 times.
92828673 (i>=icb(il)) .AND. (i<=inb(il))) THEN
284 14357294 Sigij(il, i, j) = Sij(il, i, j)
285 END IF
286 END DO
287 END DO
288 END DO
289 ! @ enddo
290
291 ! @170 continue
292
293 ! =====================================================================
294 ! --- NORMALIZE ENTRAINED AIR MASS FLUXES
295 ! --- TO REPRESENT EQUAL PROBABILITIES OF MIXING
296 ! =====================================================================
297
298 240 CALL zilch(csum, nloc*nd)
299
300
2/2
✓ Branch 0 taken 127097 times.
✓ Branch 1 taken 240 times.
127337 DO il = 1, ncum
301 127337 lwork(il) = .FALSE.
302 END DO
303
304 ! ---------------------------------------------------------------
305
2/2
✓ Branch 0 taken 6240 times.
✓ Branch 1 taken 240 times.
6480 DO i = minorig + 1, nl !Loop on origin level "i"
306 ! ---------------------------------------------------------------
307
308 num1 = 0
309
2/2
✓ Branch 0 taken 3304522 times.
✓ Branch 1 taken 6240 times.
3310762 DO il = 1, ncum
310
4/4
✓ Branch 0 taken 2911168 times.
✓ Branch 1 taken 393354 times.
✓ Branch 2 taken 1144704 times.
✓ Branch 3 taken 1766464 times.
3310762 IF (i>=icb(il) .AND. i<=inb(il)) num1 = num1 + 1
311 END DO
312
2/2
✓ Branch 0 taken 4633 times.
✓ Branch 1 taken 1607 times.
6240 IF (num1<=0) GO TO 789
313
314
315 !JYG1 Find maximum of SIJ for J>I, if any.
316
317
2/2
✓ Branch 0 taken 4605202 times.
✓ Branch 1 taken 4633 times.
4609835 Sx(:) = 0.
318
319
2/2
✓ Branch 0 taken 2453448 times.
✓ Branch 1 taken 4633 times.
2458081 DO il = 1, ncum
320
4/4
✓ Branch 0 taken 2187191 times.
✓ Branch 1 taken 266257 times.
✓ Branch 2 taken 1144704 times.
✓ Branch 3 taken 1042487 times.
2458081 IF (i>=icb(il) .AND. i<=inb(il)) THEN
321 1144704 signhpmh(il) = sign(1., hp(il,i)-h(il,i))
322 1144704 Sbef(il) = max(0., signhpmh(il))
323 END IF
324 END DO
325
326
2/2
✓ Branch 0 taken 68765 times.
✓ Branch 1 taken 4633 times.
73398 DO j = i + 1, nl
327
2/2
✓ Branch 0 taken 36415670 times.
✓ Branch 1 taken 68765 times.
36489068 DO il = 1, ncum
328
6/6
✓ Branch 0 taken 30299975 times.
✓ Branch 1 taken 6115695 times.
✓ Branch 2 taken 19251122 times.
✓ Branch 3 taken 11048853 times.
✓ Branch 4 taken 6033943 times.
✓ Branch 5 taken 13217179 times.
36484435 IF (i>=icb(il) .AND. i<=inb(il) .AND. j<=inb(il)) THEN
329
2/2
✓ Branch 0 taken 984135 times.
✓ Branch 1 taken 5049808 times.
6033943 IF (Sbef(il)<Sij(il,i,j)) THEN
330 984135 Sx(il) = max(Sij(il,i,j), Sx(il))
331 END IF
332 6033943 Sbef(il) = Sij(il, i, j)
333 END IF
334 END DO
335 END DO
336
337
338
2/2
✓ Branch 0 taken 2453448 times.
✓ Branch 1 taken 4633 times.
2458081 DO il = 1, ncum
339
4/4
✓ Branch 0 taken 2187191 times.
✓ Branch 1 taken 266257 times.
✓ Branch 2 taken 1144704 times.
✓ Branch 3 taken 1042487 times.
2458081 IF (i>=icb(il) .AND. i<=inb(il)) THEN
340 1144704 lwork(il) = (nent(il,i)/=0)
341 !! rti = qnk(il) - ep(il, i)*clw(il, i)
342 1144704 rti = qta(il,i-1) - ep(il, i)*clw(il, i)
343 !jyg<
344
1/2
✓ Branch 0 taken 1144704 times.
✗ Branch 1 not taken.
1144704 IF (cvflag_ice) THEN
345
346 anum = h(il, i) - hp(il, i) - (lv(il,i)+frac(il,i)*lf(il,i))* &
347 1144704 (rti-rs(il,i)) + (cpv-cpd)*t(il, i)*(rti-rr(il,i))
348 denom = h(il, i) - hp(il, i) + (lv(il,i)+frac(il,i)*lf(il,i))* &
349 1144704 (rr(il,i)-rti) + (cpd-cpv)*t(il, i)*(rr(il,i)-rti)
350 ELSE
351
352 anum = h(il, i) - hp(il, i) - lv(il, i)*(rti-rs(il,i)) + &
353 (cpv-cpd)*t(il, i)*(rti-rr(il,i))
354 denom = h(il, i) - hp(il, i) + lv(il, i)*(rr(il,i)-rti) + &
355 (cpd-cpv)*t(il, i)*(rr(il,i)-rti)
356 END IF
357 !>jyg
358
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1144704 times.
1144704 IF (abs(denom)<0.01) denom = 0.01
359 1144704 Scrit(il) = min(anum/denom, 1.)
360 1144704 alt = rti - rs(il, i) + Scrit(il)*(rr(il,i)-rti)
361
362 !JYG1 Find new critical value Scrit2
363 ! such that : Sij > Scrit2 => mixed draught will detrain at J<I
364 ! Sij < Scrit2 => mixed draught will detrain at J>I
365
366 Scrit2 = min(Scrit(il), Sx(il))*max(0., -signhpmh(il)) + &
367 1144704 Scrit(il)*max(0., signhpmh(il))
368
369 1144704 Scrit(il) = Scrit2
370
371 !JYG Correction pour la nouvelle logique; la correction pour ALT
372 ! est un peu au hazard
373
2/2
✓ Branch 0 taken 193829 times.
✓ Branch 1 taken 950875 times.
1144704 IF (Scrit(il)<=0.0) Scrit(il) = 0.0
374
2/2
✓ Branch 0 taken 750019 times.
✓ Branch 1 taken 394685 times.
1144704 IF (alt<=0.0) Scrit(il) = 1.0
375
376 1144704 smax(il) = 0.0
377 1144704 ASij(il) = 0.0
378 1144704 sup(il) = 0. ! upper S-value reached by descending draughts
379 END IF
380 END DO
381
382 ! ---------------------------------------------------------------
383
2/2
✓ Branch 0 taken 125091 times.
✓ Branch 1 taken 4633 times.
129724 DO j = minorig, nl !Loop on destination level "j"
384 ! ---------------------------------------------------------------
385
386 num2 = 0
387
2/2
✓ Branch 0 taken 66243096 times.
✓ Branch 1 taken 125091 times.
66368187 DO il = 1, ncum
388 IF (i>=icb(il) .AND. i<=inb(il) .AND. &
389
9/10
✓ Branch 0 taken 59054157 times.
✓ Branch 1 taken 7188939 times.
✓ Branch 2 taken 30907008 times.
✓ Branch 3 taken 28147149 times.
✓ Branch 4 taken 27574473 times.
✓ Branch 5 taken 3332535 times.
✓ Branch 6 taken 14357294 times.
✓ Branch 7 taken 13217179 times.
✓ Branch 8 taken 14357294 times.
✗ Branch 9 not taken.
66243096 j>=(icb(il)-1) .AND. j<=inb(il) .AND. &
390 14482385 lwork(il)) num2 = num2 + 1
391 END DO
392
2/2
✓ Branch 0 taken 94002 times.
✓ Branch 1 taken 31089 times.
125091 IF (num2<=0) GO TO 175
393
394 ! -----------------------------------------------
395
2/2
✓ Branch 0 taken 42368 times.
✓ Branch 1 taken 51634 times.
94002 IF (j>i) THEN
396 ! -----------------------------------------------
397
2/2
✓ Branch 0 taken 42368 times.
✓ Branch 1 taken 22436073 times.
22478441 DO il = 1, ncum
398 IF (i>=icb(il) .AND. i<=inb(il) .AND. &
399
8/10
✓ Branch 0 taken 17864651 times.
✓ Branch 1 taken 4571422 times.
✓ Branch 2 taken 12722753 times.
✓ Branch 3 taken 5141898 times.
✓ Branch 4 taken 12722753 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 6033943 times.
✓ Branch 7 taken 6688810 times.
✓ Branch 8 taken 6033943 times.
✗ Branch 9 not taken.
22436073 j>=(icb(il)-1) .AND. j<=inb(il) .AND. &
400 42368 lwork(il)) THEN
401
2/2
✓ Branch 0 taken 5153725 times.
✓ Branch 1 taken 880218 times.
6033943 IF (Sij(il,i,j)>0.0) THEN
402 5153725 Smid(il) = min(Sij(il,i,j), Scrit(il))
403 5153725 Sjmax(il) = Smid(il)
404 5153725 Sjmin(il) = Smid(il)
405
4/4
✓ Branch 0 taken 4633253 times.
✓ Branch 1 taken 520472 times.
✓ Branch 2 taken 2400980 times.
✓ Branch 3 taken 2232273 times.
5153725 IF (Smid(il)<smin(il) .AND. Sij(il,i,j+1)<Smid(il)) THEN
406 2400980 smin(il) = Smid(il)
407 2400980 Sjmax(il) = min((Sij(il,i,j+1)+Sij(il,i,j))/2., Sij(il,i,j), Scrit(il))
408 2400980 Sjmin(il) = max((Sbef(il)+Sij(il,i,j))/2., Sij(il,i,j))
409 2400980 Sjmin(il) = min(Sjmin(il), Scrit(il))
410 2400980 Sbef(il) = Sij(il, i, j)
411 END IF
412 END IF
413 END IF
414 END DO
415 ! -----------------------------------------------
416
2/2
✓ Branch 0 taken 4633 times.
✓ Branch 1 taken 47001 times.
51634 ELSE IF (j==i) THEN
417 ! -----------------------------------------------
418
2/2
✓ Branch 0 taken 4633 times.
✓ Branch 1 taken 2453448 times.
2458081 DO il = 1, ncum
419 IF (i>=icb(il) .AND. i<=inb(il) .AND. &
420
7/10
✓ Branch 0 taken 2187191 times.
✓ Branch 1 taken 266257 times.
✓ Branch 2 taken 1144704 times.
✓ Branch 3 taken 1042487 times.
✓ Branch 4 taken 1144704 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1144704 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1144704 times.
✗ Branch 9 not taken.
2453448 j>=(icb(il)-1) .AND. j<=inb(il) .AND. &
421 4633 lwork(il)) THEN
422
1/2
✓ Branch 0 taken 1144704 times.
✗ Branch 1 not taken.
1144704 IF (Sij(il,i,j)>0.0) THEN
423 1144704 Smid(il) = 1.
424 Sjmin(il) = max((Sij(il,i,j-1)+Smid(il))/2., Scrit(il))*max(0., -signhpmh(il)) + &
425 1144704 min((Sij(il,i,j+1)+Smid(il))/2., Scrit(il))*max(0., signhpmh(il))
426 1144704 Sjmin(il) = max(Sjmin(il), sup(il))
427 1144704 Sjmax(il) = 1.
428
429 ! - preparation des variables Scrit, Smin et Sbef pour la partie j>i
430 1144704 Scrit(il) = min(Sjmin(il), Sjmax(il), Scrit(il))
431
432 1144704 smin(il) = 1.
433 1144704 Sbef(il) = max(0., signhpmh(il))
434 1144704 supmax(il, i) = sign(Scrit(il), -signhpmh(il))
435 END IF
436 END IF
437 END DO
438 ! -----------------------------------------------
439
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 47001 times.
47001 ELSE IF (j<i) THEN
440 ! -----------------------------------------------
441
2/2
✓ Branch 0 taken 47001 times.
✓ Branch 1 taken 24889521 times.
24936522 DO il = 1, ncum
442 IF (i>=icb(il) .AND. i<=inb(il) .AND. &
443
8/10
✓ Branch 0 taken 24348791 times.
✓ Branch 1 taken 540730 times.
✓ Branch 2 taken 9364655 times.
✓ Branch 3 taken 14984136 times.
✓ Branch 4 taken 7178647 times.
✓ Branch 5 taken 2186008 times.
✓ Branch 6 taken 7178647 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 7178647 times.
✗ Branch 9 not taken.
24889521 j>=(icb(il)-1) .AND. j<=inb(il) .AND. &
444 47001 lwork(il)) THEN
445
2/2
✓ Branch 0 taken 6201512 times.
✓ Branch 1 taken 977135 times.
7178647 IF (Sij(il,i,j)>0.0) THEN
446 6201512 Smid(il) = max(Sij(il,i,j), Scrit(il))
447 6201512 Sjmax(il) = Smid(il)
448 6201512 Sjmin(il) = Smid(il)
449
4/4
✓ Branch 0 taken 6201509 times.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 58118 times.
✓ Branch 3 taken 6143391 times.
6201512 IF (Smid(il)>smax(il) .AND. Sij(il,i,j+1)>Smid(il)) THEN
450 58118 smax(il) = Smid(il)
451 58118 Sjmax(il) = max((Sij(il,i,j+1)+Sij(il,i,j))/2., Sij(il,i,j))
452 58118 Sjmax(il) = max(Sjmax(il), Scrit(il))
453 58118 Sjmin(il) = min((Sbef(il)+Sij(il,i,j))/2., Sij(il,i,j))
454 58118 Sjmin(il) = max(Sjmin(il), Scrit(il))
455 58118 Sbef(il) = Sij(il, i, j)
456 END IF
457
2/2
✓ Branch 0 taken 47816 times.
✓ Branch 1 taken 6153696 times.
6201512 IF (abs(Sjmin(il)-Sjmax(il))>1.E-10) &
458 47816 sup(il) = max(Sjmin(il), Sjmax(il), sup(il))
459 END IF
460 END IF
461 END DO
462 ! -----------------------------------------------
463 END IF
464 ! -----------------------------------------------
465
466
467
2/2
✓ Branch 0 taken 49779042 times.
✓ Branch 1 taken 94002 times.
49873044 DO il = 1, ncum
468 IF (i>=icb(il) .AND. i<=inb(il) .AND. &
469
9/10
✓ Branch 0 taken 44400633 times.
✓ Branch 1 taken 5378409 times.
✓ Branch 2 taken 23232112 times.
✓ Branch 3 taken 21168521 times.
✓ Branch 4 taken 21046104 times.
✓ Branch 5 taken 2186008 times.
✓ Branch 6 taken 14357294 times.
✓ Branch 7 taken 6688810 times.
✓ Branch 8 taken 14357294 times.
✗ Branch 9 not taken.
49779042 j>=(icb(il)-1) .AND. j<=inb(il) .AND. &
470 94002 lwork(il)) THEN
471
2/2
✓ Branch 0 taken 12499941 times.
✓ Branch 1 taken 1857353 times.
14357294 IF (Sij(il,i,j)>0.0) THEN
472 !! rti = qnk(il) - ep(il, i)*clw(il, i)
473 12499941 rti = qta(il,i-1) - ep(il, i)*clw(il, i)
474 12499941 Qmixmax(il) = Qmix(Sjmax(il))
475 12499941 Qmixmin(il) = Qmix(Sjmin(il))
476 12499941 Rmixmax(il) = Rmix(Sjmax(il))
477 12499941 Rmixmin(il) = Rmix(Sjmin(il))
478 12499941 sqmrmax(il) = Sjmax(il)*Qmix(Sjmax(il)) - Rmix(Sjmax(il))
479 12499941 sqmrmin(il) = Sjmin(il)*Qmix(Sjmin(il)) - Rmix(Sjmin(il))
480
481 12499941 Ment(il, i, j) = abs(Qmixmax(il)-Qmixmin(il))*Ment(il, i, j)
482
483 ! Sigij(i,j) is the 'true' mixing fraction of mixture Ment(i,j)
484
2/2
✓ Branch 0 taken 3358784 times.
✓ Branch 1 taken 9141157 times.
12499941 IF (abs(Qmixmax(il)-Qmixmin(il))>1.E-10) THEN
485 3358784 Sigij(il, i, j) = (sqmrmax(il)-sqmrmin(il))/(Qmixmax(il)-Qmixmin(il))
486 ELSE
487 9141157 Sigij(il, i, j) = 0.
488 END IF
489
490 ! -- Compute Qent, uent, vent according to the true mixing fraction
491 12499941 Qent(il, i, j) = (1.-Sigij(il,i,j))*rti + Sigij(il, i, j)*rr(il, i)
492 12499941 uent(il, i, j) = (1.-Sigij(il,i,j))*unk(il) + Sigij(il, i, j)*u(il, i)
493 12499941 vent(il, i, j) = (1.-Sigij(il,i,j))*vnk(il) + Sigij(il, i, j)*v(il, i)
494
495 ! -- Compute liquid water static energy of mixed draughts
496 ! IF (j .GT. i) THEN
497 ! awat=elij(il,i,j)-(1.-ep(il,j))*clw(il,j)
498 ! awat=amax1(awat,0.0)
499 ! ELSE
500 ! awat = 0.
501 ! ENDIF
502 ! Hent(il,i,j) = (1.-Sigij(il,i,j))*HP(il,i)
503 ! : + Sigij(il,i,j)*H(il,i)
504 ! : + (LV(il,j)+(cpd-cpv)*t(il,j))*awat
505 !IM 301008 beg
506 12499941 hent(il, i, j) = (1.-Sigij(il,i,j))*hp(il, i) + Sigij(il, i, j)*h(il, i)
507
508 !jyg<
509 ! elij(il, i, j) = Qent(il, i, j) - rs(il, j)
510 ! elij(il, i, j) = elij(il, i, j) + &
511 ! ((h(il,j)-hent(il,i,j))*rs(il,j)*lv(il,j) / &
512 ! ((cpd*(1.-Qent(il,i,j))+Qent(il,i,j)*cpv)*rrv*t(il,j)*t(il,j)))
513 ! elij(il, i, j) = elij(il, i, j) / &
514 ! (1.+lv(il,j)*lv(il,j)*rs(il,j) / &
515 ! ((cpd*(1.-Qent(il,i,j))+Qent(il,i,j)*cpv)*rrv*t(il,j)*t(il,j)))
516 !
517 ! Computation of condensate amount Elij, taking into account the ice fraction frac
518 ! Warning : the same saturation humidity rs is used over both liquid water and ice; this
519 ! should be corrected.
520 !
521 ! Heat capacity of mixed draught
522 12499941 cpm = cpd+Qent(il,i,j)*(cpv-cpd)
523 !
524
3/4
✓ Branch 0 taken 12499941 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5006923 times.
✓ Branch 3 taken 7493018 times.
12499941 IF (cvflag_ice .and. frac(il,j) .gt. 0.) THEN
525 5006923 elij(il, i, j) = Qent(il, i, j) - rs(il, j)
526 elij(il, i, j) = elij(il, i, j) + &
527 (h(il,j)-hent(il,i,j)+(cpv-cpd)*(Qent(il,i,j)-rr(il,j))*t(il,j))* &
528 5006923 rs(il,j)*lv(il,j) / (cpm*rrv*t(il,j)*t(il,j))
529 elij(il, i, j) = elij(il, i, j) / &
530 (1.+(lv(il,j)+frac(il,j)*lf(il,j))*lv(il,j)*rs(il,j) / &
531 5006923 (cpm*rrv*t(il,j)*t(il,j)))
532 ELSE
533 7493018 elij(il, i, j) = Qent(il, i, j) - rs(il, j)
534 elij(il, i, j) = elij(il, i, j) + &
535 (h(il,j)-hent(il,i,j)+(cpv-cpd)*(Qent(il,i,j)-rr(il,j))*t(il,j))* &
536 7493018 rs(il,j)*lv(il,j) / (cpm*rrv*t(il,j)*t(il,j))
537 elij(il, i, j) = elij(il, i, j) / &
538 (1.+lv(il,j)*lv(il,j)*rs(il,j) / &
539 7493018 (cpm*rrv*t(il,j)*t(il,j)))
540 ENDIF
541 !>jyg
542 12499941 elij(il, i, j) = max(elij(il,i,j), 0.)
543
544 12499941 elij(il, i, j) = min(elij(il,i,j), Qent(il,i,j))
545
546
2/2
✓ Branch 0 taken 5153725 times.
✓ Branch 1 taken 7346216 times.
12499941 IF (j>i) THEN
547 5153725 awat = elij(il, i, j) - (1.-ep(il,j))*clw(il, j)
548 5153725 awat = amax1(awat, 0.0)
549 ELSE
550 awat = 0.
551 END IF
552
553 ! print *,h(il,j)-hent(il,i,j),LV(il,j)*rs(il,j)/(cpd*rrv*t(il,j)*
554 ! : t(il,j))
555
556 !jyg<
557 ! hent(il, i, j) = hent(il, i, j) + (lv(il,j)+(cpd-cpv)*t(il,j))*awat
558 ! Mixed draught temperature at level j
559
3/4
✓ Branch 0 taken 12499941 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5006923 times.
✓ Branch 3 taken 7493018 times.
12499941 IF (cvflag_ice .and. frac(il,j) .gt. 0.) THEN
560 5006923 Tm = t(il,j) + (Qent(il,i,j)-elij(il,i,j)-rs(il,j))*rrv*t(il,j)*t(il,j)/(lv(il,j)*rs(il,j))
561 5006923 hent(il, i, j) = hent(il, i, j) + (lv(il,j)+frac(il,j)*lf(il,j)+(cpd-cpv)*Tm)*awat
562 ELSE
563 7493018 Tm = t(il,j) + (Qent(il,i,j)-elij(il,i,j)-rs(il,j))*rrv*t(il,j)*t(il,j)/(lv(il,j)*rs(il,j))
564 7493018 hent(il, i, j) = hent(il, i, j) + (lv(il,j)+(cpd-cpv)*Tm)*awat
565 ENDIF
566 !>jyg
567
568 !IM 301008 end
569
570 ! print *,'mix : i,j,hent(il,i,j),Sigij(il,i,j) ',
571 ! : i,j,hent(il,i,j),Sigij(il,i,j)
572
573 ! -- ASij is the integral of P(F) over the relevant F interval
574 ASij(il) = ASij(il) + abs(Qmixmax(il)*(1.-Sjmax(il))+Rmixmax(il) - &
575 12499941 Qmixmin(il)*(1.-Sjmin(il))-Rmixmin(il))
576
577 END IF
578 END IF
579 END DO
580 !jyg! DO k = 1, ntra
581 !jyg! DO il = 1, ncum
582 !jyg! IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. &
583 !jyg! (j>=(icb(il)-1)) .AND. (j<=inb(il)) .AND. &
584 !jyg! lwork(il)) THEN
585 !jyg! IF (Sij(il,i,j)>0.0) THEN
586 !jyg! traent(il, i, j, k) = Sigij(il, i, j)*tra(il, i, k) + &
587 !jyg! (1.-Sigij(il,i,j))*tra(il, nk(il), k)
588 !jyg! END IF
589 !jyg! END IF
590 !jyg! END DO
591 !jyg! END DO
592
593 ! -- If I=J (detrainement and entrainement at the same level), then only the
594 ! -- adiabatic ascent part of the mixture is considered
595
2/2
✓ Branch 0 taken 4633 times.
✓ Branch 1 taken 89369 times.
94002 IF (i==j) THEN
596
2/2
✓ Branch 0 taken 2453448 times.
✓ Branch 1 taken 4633 times.
2458081 DO il = 1, ncum
597 IF (i>=icb(il) .AND. i<=inb(il) .AND. &
598
7/10
✓ Branch 0 taken 2187191 times.
✓ Branch 1 taken 266257 times.
✓ Branch 2 taken 1144704 times.
✓ Branch 3 taken 1042487 times.
✓ Branch 4 taken 1144704 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1144704 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1144704 times.
✗ Branch 9 not taken.
2453448 j>=(icb(il)-1) .AND. j<=inb(il) .AND. &
599 4633 lwork(il)) THEN
600
1/2
✓ Branch 0 taken 1144704 times.
✗ Branch 1 not taken.
1144704 IF (Sij(il,i,j)>0.0) THEN
601 !! rti = qnk(il) - ep(il, i)*clw(il, i)
602 1144704 rti = qta(il,i-1) - ep(il, i)*clw(il, i)
603 !!! Ment(il,i,i) = m(il,i)*abs(Qmixmax(il)*(1.-Sjmax(il))
604 Ment(il, i, i) = abs(Qmixmax(il)*(1.-Sjmax(il))+Rmixmax(il) - &
605 1144704 Qmixmin(il)*(1.-Sjmin(il))-Rmixmin(il))
606 1144704 Qent(il, i, i) = rti
607 1144704 uent(il, i, i) = unk(il)
608 1144704 vent(il, i, i) = vnk(il)
609 1144704 hent(il, i, i) = hp(il, i)
610 1144704 elij(il, i, i) = clw(il, i)*(1.-ep(il,i))
611 1144704 Sigij(il, i, i) = 0.
612 END IF
613 END IF
614 END DO
615 !jyg! DO k = 1, ntra
616 !jyg! DO il = 1, ncum
617 !jyg! IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. &
618 !jyg! (j>=(icb(il)-1)) .AND. (j<=inb(il)) .AND. &
619 !jyg! lwork(il)) THEN
620 !jyg! IF (Sij(il,i,j)>0.0) THEN
621 !jyg! traent(il, i, i, k) = tra(il, nk(il), k)
622 !jyg! END IF
623 !jyg! END IF
624 !jyg! END DO
625 !jyg! END DO
626
627 END IF
628
629 ! ---------------------------------------------------------------
630 4633 175 END DO ! End loop on destination level "j"
631 ! ---------------------------------------------------------------
632
633
2/2
✓ Branch 0 taken 2453448 times.
✓ Branch 1 taken 4633 times.
2458081 DO il = 1, ncum
634
5/6
✓ Branch 0 taken 2187191 times.
✓ Branch 1 taken 266257 times.
✓ Branch 2 taken 1144704 times.
✓ Branch 3 taken 1042487 times.
✓ Branch 4 taken 1144704 times.
✗ Branch 5 not taken.
2458081 IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il)) THEN
635 1144704 ASij(il) = amax1(1.0E-16, ASij(il))
636 !jyg+lluis<
637 !! ASij(il) = 1.0/ASij(il)
638 1144704 ASij_inv(il) = 1.0/ASij(il)
639 ! IF the F-interval spanned by possible mixtures is less than 0.01, no mixing occurs
640
2/2
✓ Branch 0 taken 70188 times.
✓ Branch 1 taken 1074516 times.
1144704 IF (ASij_inv(il) > 100.) ASij_inv(il) = 0.
641 !>jyg+lluis
642 1144704 csum(il, i) = 0.0
643 END IF
644 END DO
645
646
2/2
✓ Branch 0 taken 125091 times.
✓ Branch 1 taken 4633 times.
129724 DO j = minorig, nl
647
2/2
✓ Branch 0 taken 66243096 times.
✓ Branch 1 taken 125091 times.
66372820 DO il = 1, ncum
648 IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. &
649
9/10
✓ Branch 0 taken 59054157 times.
✓ Branch 1 taken 7188939 times.
✓ Branch 2 taken 30907008 times.
✓ Branch 3 taken 28147149 times.
✓ Branch 4 taken 30907008 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 27574473 times.
✓ Branch 7 taken 3332535 times.
✓ Branch 8 taken 14357294 times.
✓ Branch 9 taken 13217179 times.
66368187 j>=(icb(il)-1) .AND. j<=inb(il)) THEN
650 !jyg Ment(il, i, j) = Ment(il, i, j)*ASij(il)
651 14357294 Ment(il, i, j) = Ment(il, i, j)*ASij_inv(il)
652 END IF
653 END DO
654 END DO
655
656
2/2
✓ Branch 0 taken 125091 times.
✓ Branch 1 taken 4633 times.
129724 DO j = minorig, nl
657
2/2
✓ Branch 0 taken 66243096 times.
✓ Branch 1 taken 125091 times.
66372820 DO il = 1, ncum
658 IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. &
659
9/10
✓ Branch 0 taken 59054157 times.
✓ Branch 1 taken 7188939 times.
✓ Branch 2 taken 30907008 times.
✓ Branch 3 taken 28147149 times.
✓ Branch 4 taken 30907008 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 27574473 times.
✓ Branch 7 taken 3332535 times.
✓ Branch 8 taken 14357294 times.
✓ Branch 9 taken 13217179 times.
66368187 j>=(icb(il)-1) .AND. j<=inb(il)) THEN
660 14357294 csum(il, i) = csum(il, i) + Ment(il, i, j)
661 END IF
662 END DO
663 END DO
664
665
2/2
✓ Branch 0 taken 4633 times.
✓ Branch 1 taken 2453448 times.
2458081 DO il = 1, ncum
666
7/8
✓ Branch 0 taken 2187191 times.
✓ Branch 1 taken 266257 times.
✓ Branch 2 taken 1144704 times.
✓ Branch 3 taken 1042487 times.
✓ Branch 4 taken 1144704 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 73348 times.
✓ Branch 7 taken 1071356 times.
2459688 IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. csum(il,i)<1.) THEN
667 ! cc : .and. csum(il,i).lt.m(il,i) ) then
668 73348 nent(il, i) = 0
669 ! cc Ment(il,i,i)=m(il,i)
670 73348 Ment(il, i, i) = 1.
671 !! Qent(il, i, i) = qnk(il) - ep(il, i)*clw(il, i)
672 73348 Qent(il, i, i) = qta(il,i-1) - ep(il, i)*clw(il, i)
673 73348 uent(il, i, i) = unk(il)
674 73348 vent(il, i, i) = vnk(il)
675 73348 elij(il, i, i) = clw(il, i)*(1.-ep(il,i))
676
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 73348 times.
73348 IF (fl_cor_ebil .GE. 2) THEN
677 hent(il, i, i) = hp(il,i)
678 Sigij(il, i, i) = 0.0
679 ELSE
680 73348 Sij(il, i, i) = 0.0
681 ENDIF
682 END IF
683 END DO ! il
684
685 !jyg! DO j = 1, ntra
686 !jyg! DO il = 1, ncum
687 !jyg! IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. csum(il,i)<1.) THEN
688 !jyg!! cc : .and. csum(il,i).lt.m(il,i) ) then
689 !jyg! traent(il, i, i, j) = tra(il, nk(il), j)
690 !jyg! END IF
691 !jyg! END DO
692 !jyg! END DO
693
694 ! ---------------------------------------------------------------
695 240 789 END DO ! End loop on origin level "i"
696 ! ---------------------------------------------------------------
697
698
699 240 RETURN
700 END SUBROUTINE cv3p_mixing
701
702