Changeset 5082 for LMDZ6/branches/Amaury_dev/libf/phylmd/calltherm.F90
- Timestamp:
- Jul 19, 2024, 5:41:58 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/calltherm.F90
r4843 r5082 198 198 ale_bl(:)=0. 199 199 alp_bl(:)=0. 200 if (prt_level .ge.10) then200 if (prt_level>=10) then 201 201 print*,'thermV4 nsplit: ',nsplit_thermals,' weak_inversion' 202 202 endif 203 203 204 204 ! tests sur les valeurs negatives de l'eau 205 logexpr0=prt_level .ge.10205 logexpr0=prt_level>=10 206 206 nbptspb=0 207 207 do k=1,klev … … 209 209 ! Attention teste abderr 19-03-09 210 210 ! logexpr2(i,k)=.not.q_seri(i,k).ge.0. 211 logexpr2(i,k)=.not.q_seri(i,k) .ge.1.e-15211 logexpr2(i,k)=.not.q_seri(i,k)>=1.e-15 212 212 if (logexpr2(i,k)) then 213 213 #ifdef ISO … … 228 228 enddo 229 229 enddo 230 if(nbptspb .GT.0) print*,'Number of points with q_seri(i,k)<=0 ',nbptspb230 if(nbptspb>0) print*,'Number of points with q_seri(i,k)<=0 ',nbptspb 231 231 232 232 … … 257 257 & ,r_aspect_thermals,30.,w2di_thermals & 258 258 & ,tau_thermals) 259 else if (iflag_thermals .eq.2) then259 else if (iflag_thermals==2) then 260 260 CALL thermcell_sec(klon,klev,zdt & 261 261 & ,pplay,paprs,pphi,zlev & … … 265 265 & ,r_aspect_thermals,30.,w2di_thermals & 266 266 & ,tau_thermals) 267 else if (iflag_thermals .eq.3) then267 else if (iflag_thermals==3) then 268 268 CALL thermcell(klon,klev,zdt & 269 269 & ,pplay,paprs,pphi & … … 273 273 & ,r_aspect_thermals,l_mix_thermals,w2di_thermals & 274 274 & ,tau_thermals) 275 else if (iflag_thermals .eq.10) then275 else if (iflag_thermals==10) then 276 276 CALL thermcell_eau(klon,klev,zdt & 277 277 & ,pplay,paprs,pphi & … … 281 281 & ,r_aspect_thermals,l_mix_thermals,w2di_thermals & 282 282 & ,tau_thermals) 283 else if (iflag_thermals .eq.11) then283 else if (iflag_thermals==11) then 284 284 abort_message = 'cas non prevu dans calltherm' 285 285 CALL abort_physic (modname,abort_message,1) 286 else if (iflag_thermals .eq.12) then286 else if (iflag_thermals==12) then 287 287 CALL calcul_sec(klon,klev,zdt & 288 288 & ,pplay,paprs,pphi,zlev & … … 323 323 & ) 324 324 325 if (prt_level .gt.10) write(lunout,*)'Apres thermcell_main OK'325 if (prt_level>10) write(lunout,*)'Apres thermcell_main OK' 326 326 else 327 327 abort_message = 'Cas des thermiques non prevu' … … 355 355 fact(:)=0. 356 356 DO i=1,klon 357 logexpr1(i)=flag_bidouille_stratocu.or.weak_inversion(i) .gt.0.5357 logexpr1(i)=flag_bidouille_stratocu.or.weak_inversion(i)>0.5 358 358 IF(logexpr1(i)) fact(i)=1./REAL(nsplit_thermals) 359 359 ENDDO … … 414 414 #endif 415 415 #endif 416 if (prt_level .gt.10) write(lunout,*)'Apres apres thermcell_main OK'416 if (prt_level>10) write(lunout,*)'Apres apres thermcell_main OK' 417 417 418 418 DO i=1,klon … … 422 422 alp_bl(i)=alp_bl(i)+alp(i)/REAL(nsplit_thermals) 423 423 ! write(23,*)'ALP CALLTHERM',alp_bl(i),alp(i) 424 if(prt_level .GE.10) print*,'calltherm i alp_bl alp ale_bl ale',i,alp_bl(i),alp(i),ale_bl(i),ale(i)424 if(prt_level>=10) print*,'calltherm i alp_bl alp ale_bl ale',i,alp_bl(i),alp(i),ale_bl(i),ale(i) 425 425 ENDDO 426 426 … … 431 431 DO k = 1, klev 432 432 DO i = 1, klon 433 logexpr2(i,k)=.not.q_seri(i,k) .ge.0.433 logexpr2(i,k)=.not.q_seri(i,k)>=0. 434 434 if (logexpr2(i,k)) then 435 435 q_seri(i,k)=1.e-15 … … 457 457 #endif 458 458 459 IF(nbptspb .GT.0) print*,'Number of points with q_seri(i,k)<=0 ',nbptspb459 IF(nbptspb>0) print*,'Number of points with q_seri(i,k)<=0 ',nbptspb 460 460 ! tests sur les valeurs de la temperature 461 461 nbptspb=0 462 462 DO k = 1, klev 463 463 DO i = 1, klon 464 logexpr2(i,k)=t_seri(i,k) .lt.50..or.t_seri(i,k).gt.370.464 logexpr2(i,k)=t_seri(i,k)<50..or.t_seri(i,k)>370. 465 465 if (logexpr2(i,k)) nbptspb=nbptspb+1 466 466 ! if ((t_seri(i,k).lt.50.) .or. & … … 472 472 ENDDO 473 473 ENDDO 474 IF(nbptspb .GT.0) print*,'Number of points with q_seri(i,k)<=0 ',nbptspb474 IF(nbptspb>0) print*,'Number of points with q_seri(i,k)<=0 ',nbptspb 475 475 enddo ! isplit 476 476 … … 483 483 do k=1,klev 484 484 do i=1,klon 485 if (entr_therm(i,k) .gt.0.) then485 if (entr_therm(i,k)>0.) then 486 486 fmc_therm(i,k+1)=fmc_therm(i,k)+entr_therm(i,k) 487 487 else … … 498 498 ! print*,'<<<<calcul de lhumidite dans thermique' 499 499 !CR:on ne le calcule que pour le cas sec 500 if (iflag_thermals .le.11) then500 if (iflag_thermals<=11) then 501 501 do i=1,klon 502 502 zqasc(i,1)=q_seri(i,1) 503 503 do k=2,klev 504 if (fmc_therm(i,k+1) .gt.1.e-6) then504 if (fmc_therm(i,k+1)>1.e-6) then 505 505 zqasc(i,k)=(fmc_therm(i,k)*zqasc(i,k-1) & 506 506 & +entr_therm(i,k)*q_seri(i,k))/fmc_therm(i,k+1) … … 519 519 do k=1,klev 520 520 clwcon0(i,k)=zqasc(i,k)-zqsat(i,k) 521 if (clwcon0(i,k) .lt.0. .or. &522 & (fm_therm(i,k+1)+detrc_therm(i,k)) .lt.1.e-6) then521 if (clwcon0(i,k)<0. .or. & 522 & (fm_therm(i,k+1)+detrc_therm(i,k))<1.e-6) then 523 523 clwcon0(i,k)=0. 524 524 endif … … 529 529 do k=1,klev 530 530 clwcon0(i,k)=zqla(i,k) 531 if (clwcon0(i,k) .lt.0. .or. &532 & (fm_therm(i,k+1)+detrc_therm(i,k)) .lt.1.e-6) then531 if (clwcon0(i,k)<0. .or. & 532 & (fm_therm(i,k+1)+detrc_therm(i,k))<1.e-6) then 533 533 clwcon0(i,k)=0. 534 534 endif … … 542 542 do i=1,klon 543 543 do k=1,klev 544 if (ztla(i,k) .lt.1.e-10) fraca(i,k) =0.544 if (ztla(i,k) < 1.e-10) fraca(i,k) =0. 545 545 enddo 546 546 enddo
Note: See TracChangeset
for help on using the changeset viewer.