Changeset 2092 for trunk/LMDZ.GENERIC/libf/phystd/thermcell_flux.F90
- Timestamp:
- Feb 7, 2019, 11:33:33 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/libf/phystd/thermcell_flux.F90
r2060 r2092 159 159 160 160 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 ! AB : I commentthe correction and replace it by an uncompromising test.161 ! AB : I remove the correction and replace it by an uncompromising test. 162 162 ! According to the previous derivations, we MUST have positive mass flux 163 163 ! everywhere! Indeed, as soon as fm becomes negative, the plume stops. … … 186 186 ! Test sur fraca constante ou croissante au-dessus de lalim 187 187 !------------------------------------------------------------------------------ 188 ! AB : do we have to decree that?189 ! IF (iflag_thermals_optflux.eq.0) THEN190 !DO ig=1,ngrid191 !IF (l.ge.lalim(ig).and.l.le.lmax(ig).and.(zw2(ig,l+1).gt.1.e-10).and.(zw2(ig,l).gt.1.e-10) ) THEN192 !zzz = fm(ig,l) * rhobarz(ig,l+1) * zw2(ig,l+1) &193 !& / (rhobarz(ig,l) * zw2(ig,l))194 !195 !IF (fm(ig,l+1).gt.zzz) THEN196 !detr(ig,l) = detr(ig,l) + fm(ig,l+1) - zzz197 !fm(ig,l+1) = zzz198 !ncorecfm4 = ncorecfm4 + 1199 !ENDIF200 !ENDIF201 !ENDDO202 !ENDIF188 ! AB : Do we have to decree that? If so, set iflag_thermals_optflux to 0 189 IF (iflag_thermals_optflux==0) THEN 190 DO ig=1,ngrid 191 IF (l.ge.lalim(ig).and.l.le.lmax(ig).and.(zw2(ig,l+1).gt.1.e-10).and.(zw2(ig,l).gt.1.e-10) ) THEN 192 zzz = fm(ig,l) * rhobarz(ig,l+1) * zw2(ig,l+1) & 193 & / (rhobarz(ig,l) * zw2(ig,l)) 194 195 IF (fm(ig,l+1).gt.zzz) THEN 196 detr(ig,l) = detr(ig,l) + fm(ig,l+1) - zzz 197 fm(ig,l+1) = zzz 198 ncorecfm4 = ncorecfm4 + 1 199 ENDIF 200 ENDIF 201 ENDDO 202 ENDIF 203 203 204 204 !------------------------------------------------------------------------------ 205 205 ! Test sur flux de masse constant ou decroissant au-dessus de lalim 206 206 !------------------------------------------------------------------------------ 207 ! AB : do we have to decree that?208 !IF (iflag_thermals_optflux==0) THEN209 !DO ig=1,ngrid210 !IF ((fm(ig,l+1).gt.fm(ig,l)).and.(l.gt.lalim(ig))) then211 !f_old = fm(ig,l+1)212 !fm(ig,l+1) = fm(ig,l)213 !detr(ig,l) = detr(ig,l) + f_old - fm(ig,l+1)214 !ncorecfm5 = ncorecfm5 + 1215 !ENDIF216 !ENDDO217 !ENDIF207 ! AB : Do we have to decree that? If so, set iflag_thermals_optflux to 0 208 IF (iflag_thermals_optflux==0) THEN 209 DO ig=1,ngrid 210 IF ((fm(ig,l+1).gt.fm(ig,l)).and.(l.gt.lalim(ig))) then 211 f_old = fm(ig,l+1) 212 fm(ig,l+1) = fm(ig,l) 213 detr(ig,l) = detr(ig,l) + f_old - fm(ig,l+1) 214 ncorecfm5 = ncorecfm5 + 1 215 ENDIF 216 ENDDO 217 ENDIF 218 218 219 219 !------------------------------------------------------------------------------ … … 488 488 489 489 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490 ! AB : test added to avoid problem when lmax = 0, which is not a 491 ! fortran array index. 490 ! AB : test added to avoid problem when lmax = 0, which is not a fortran index. 492 491 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 493 492 IF (lmax(ig).gt.0) THEN … … 505 504 IF (prt_level.ge.1) THEN 506 505 507 ! AB : those tests were removed for their uselessness.506 ! AB : those outputs are commented for their uselessness. 508 507 ! IF (ncorecfm2.ge.1) THEN 509 508 ! print *, 'WARNING: Outgoing mass flux has negative value(s)!' … … 511 510 ! ENDIF 512 511 513 ! AB : those tests were removed because I don't know if we should decree them. 514 ! IF (ncorecfm4.ge.1) THEN 515 ! print *, 'WARNING: Deacreasing updraft fraction above lalim!'516 ! print *, 'in', ncorecfm4, 'point(s)' 517 ! ENDIF 518 !IF (ncorecfm5.ge.1) THEN519 !print *, 'WARNING: Increasing mass flux above lalim!'520 !print *, 'in', ncorecfm5, 'point(s)'521 !ENDIF512 IF (ncorecfm4.ge.1) THEN 513 print *, 'WARNING: Deacreasing updraft fraction above lalim!' 514 print *, 'in', ncorecfm4, 'point(s)' 515 ENDIF 516 517 IF (ncorecfm5.ge.1) THEN 518 print *, 'WARNING: Increasing mass flux above lalim!' 519 print *, 'in', ncorecfm5, 'point(s)' 520 ENDIF 522 521 523 522 IF (ncorecfm6.ge.1) THEN … … 526 525 ENDIF 527 526 528 ! AB : th at test was removed because I don't know if we should decree it.527 ! AB : those outputs are commented because corresponding test is also commented. 529 528 ! IF (ncorecfm7.ge.1) THEN 530 529 ! print *, 'WARNING: Detrainment is greater than mass flux!'
Note: See TracChangeset
for help on using the changeset viewer.