Changeset 2140 for LMDZ5/trunk/libf
- Timestamp:
- Nov 7, 2014, 5:16:04 PM (10 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/cloudth.F90
r1907 r2140 74 74 75 75 !----------------------------------------------------------------------------------------------------------------- 76 ! Initialisation des variables r éelles76 ! Initialisation des variables r?elles 77 77 !----------------------------------------------------------------------------------------------------------------- 78 78 sigma1(:,:)=0. … … 97 97 98 98 !------------------------------------------------------------------------------------------------------------------ 99 ! Calcul de la fraction du thermique et des écart-types des distributions99 ! Calcul de la fraction du thermique et des ?cart-types des distributions 100 100 !------------------------------------------------------------------------------------------------------------------ 101 101 do ind1=1,ngrid … … 140 140 141 141 !----------------------------------------------------------------------------------------------------------------- 142 ! Calcul des écart-types pour s 143 !----------------------------------------------------------------------------------------------------------------- 144 145 sigma1s=(1.1**0.5)*(fraca(ind1,ind2)**0.6)/(1-fraca(ind1,ind2))*((sth-senv)**2)**0.5+ratqs(ind1,ind2)*po(ind1) 146 sigma2s=0.11*((sth-senv)**2)**0.5/(fraca(ind1,ind2)+0.02)**0.4+0.002*zqta(ind1,ind2) 147 148 149 !----------------------------------------------------------------------------------------------------------------- 150 ! Calcul de l'eau condensée et de la couverture nuageuse 142 ! Calcul des ?cart-types pour s 143 !----------------------------------------------------------------------------------------------------------------- 144 145 ! sigma1s=(1.1**0.5)*(fraca(ind1,ind2)**0.6)/(1-fraca(ind1,ind2))*((sth-senv)**2)**0.5+ratqs(ind1,ind2)*po(ind1) 146 ! sigma2s=0.11*((sth-senv)**2)**0.5/(fraca(ind1,ind2)+0.02)**0.4+0.002*zqta(ind1,ind2) 147 ! if (paprs(ind1,ind2).gt.90000) then 148 ! ratqs(ind1,ind2)=0.002 149 ! else 150 ! ratqs(ind1,ind2)=0.002+0.0*(90000-paprs(ind1,ind2))/20000 151 ! endif 152 sigma1s=(1.1**0.5)*(fraca(ind1,ind2)**0.6)/(1-fraca(ind1,ind2))*((sth-senv)**2)**0.5+0.002*po(ind1) 153 sigma2s=0.11*((sth-senv)**2)**0.5/(fraca(ind1,ind2)+0.01)**0.4+0.002*zqta(ind1,ind2) 154 ! sigma1s=ratqs(ind1,ind2)*po(ind1) 155 ! sigma2s=0.11*((sth-senv)**2)**0.5/(fraca(ind1,ind2)+0.02)**0.4+0.00003 156 157 !----------------------------------------------------------------------------------------------------------------- 158 ! Calcul de l'eau condens?e et de la couverture nuageuse 151 159 !----------------------------------------------------------------------------------------------------------------- 152 160 sqrt2pi=sqrt(2.*pi) … … 241 249 242 250 243 -
LMDZ5/trunk/libf/phylmd/thermcell_plume.F90
r2106 r2140 7 7 & ztla,zqla,zqta,zha,zw2,w_est,ztva_est,zqsatth,lmix,lmix_bis,linter & 8 8 & ,lev_out,lunout1,igout) 9 ! & ,lev_out,lunout1,igout,zbuoy,zbuoyjam) 9 10 !-------------------------------------------------------------------------- 10 11 !thermcell_plume: calcule les valeurs de qt, thetal et w dans l ascendance … … 76 77 REAL wmaxa(ngrid) 77 78 78 INTEGER ig,l,k,lt,it 79 INTEGER ig,l,k,lt,it,lm 79 80 80 81 real zdz,zbuoy(ngrid,klev),zalpha,gamma(ngrid,klev),zdqt(ngrid,klev),zw2m … … 97 98 REAL, SAVE :: betalpha, betalpha_omp=0.9 98 99 REAL, SAVE :: afact, afact_omp=2./3. 99 REAL, SAVE :: fact_shell, fact_shell_omp= 0.6100 REAL,SAVE :: detr_min,detr_min_omp=1.e- 4101 REAL,SAVE :: entr_min,entr_min_omp=1.e- 4100 REAL, SAVE :: fact_shell, fact_shell_omp=1. 101 REAL,SAVE :: detr_min,detr_min_omp=1.e-5 102 REAL,SAVE :: entr_min,entr_min_omp=1.e-5 102 103 REAL,SAVE :: detr_q_coef,detr_q_coef_omp=0.012 103 104 REAL,SAVE :: detr_q_power,detr_q_power_omp=0.5 … … 286 287 287 288 288 !------------------------------------------------289 !AJAM:nouveau calcul de w?290 !------------------------------------------------291 zdz=zlev(ig,l+1)-zlev(ig,l)292 zdzbis=zlev(ig,l+1)-zlev(ig,l-1)293 zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l)294 295 zw2fact=fact_epsilon*2.*zdz/(1.+betalpha)296 zw2factbis=fact_epsilon*2.*zdzbis/(1.+betalpha)297 zdw2=afact*zbuoy(ig,l)/fact_epsilon298 zdw2bis=afact*zbuoy(ig,l-1)/fact_epsilon299 ! w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2)+zdw2)300 ! w_est(ig,l+1)=(zdz/zdzbis)*Max(0.0001,exp(-zw2fact)* &301 ! & (w_est(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* &302 ! & Max(0.0001,exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2)303 ! w_est(ig,l+1)=Max(0.0001,(1-exp(-zw2fact))*zdw2+w_est(ig,l)*exp(-zw2fact))304 305 !--------------------------------------------------306 !AJ052014: J'ai remplac? w_est(ig,l) par zw2(ig,l)307 !--------------------------------------------------308 if (iflag_thermals_ed==8) then309 ! Ancienne version310 w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(exp(-zw2fact)* &311 & (w_est(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* &312 & (exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2))313 314 ! Nouvelle version Arnaud315 else316 ! w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(exp(-zw2fact)* &317 ! & (zw2(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* &318 ! & (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2bis))319 320 w_est(ig,l+1)=Max(0.0001,(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact))321 322 ! w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact)+ &323 ! & (zdzbis-zdz)/zdzbis*(zw2(ig,l-1)+zdw2bis*zw2factbis)*exp(-zw2factbis))324 ! w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2bis)+zdw2)325 326 endif327 328 329 if (iflag_thermals_ed<6) then330 zalpha=f0(ig)*f_star(ig,l)/sqrt(w_est(ig,l+1))/rhobarz(ig,l)331 ! fact_epsilon=0.0005/(zalpha+0.025)**0.5332 ! fact_epsilon=Min(0.003,0.0004/(zalpha)**0.5)333 fact_epsilon=0.0002/(zalpha+0.1)334 zw2fact=fact_epsilon*2.*zdz/(1.+betalpha)335 zw2factbis=fact_epsilon*2.*zdzbis/(1.+betalpha)336 zdw2=afact*zbuoy(ig,l)/fact_epsilon337 zdw2bis=afact*zbuoy(ig,l-1)/fact_epsilon338 w_est(ig,l+1)=Max(0.0001,(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact))339 340 ! w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(exp(-zw2fact)* &341 ! & (zw2(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* &342 ! & (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2))343 344 endif345 !--------------------------------------------------346 !AJ052014: J'ai comment? ce if plus n?cessaire puisqu'347 !on fait max(0.0001,.....)348 !--------------------------------------------------349 350 ! if (w_est(ig,l+1).lt.0.) then351 ! w_est(ig,l+1)=zw2(ig,l)352 ! w_est(ig,l+1)=0.0001353 ! endif354 355 endif356 enddo357 358 359 !-------------------------------------------------360 !calcul des taux d'entrainement et de detrainement361 !-------------------------------------------------362 363 do ig=1,ngrid364 if (active(ig)) then365 366 ! zw2m=max(0.5*(w_est(ig,l)+w_est(ig,l+1)),0.1)367 zw2m=w_est(ig,l+1)368 ! zw2m=zw2(ig,l)369 zdz=zlev(ig,l+1)-zlev(ig,l)370 zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l)371 ! zbuoybis=zbuoy(ig,l)+RG*0.1/300.372 zbuoybis=zbuoy(ig,l)373 zalpha=f0(ig)*f_star(ig,l)/sqrt(w_est(ig,l+1))/rhobarz(ig,l)374 zdqt(ig,l)=max(zqta(ig,l-1)-po(ig,l),0.)/po(ig,l)375 376 377 ! entr_star(ig,l)=f_star(ig,l)*zdz*zbetalpha*MAX(0., &378 ! & afact*zbuoybis/zw2m - fact_epsilon )379 380 ! entr_star(ig,l)=MAX(0.,f_star(ig,l)*zdz*zbetalpha* &381 ! & afact*zbuoybis/zw2m - fact_epsilon )382 383 289 !Modif AJAM 384 290 291 zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l) 292 zdz=zlev(ig,l+1)-zlev(ig,l) 385 293 lmel=fact_thermals_ed_dz*zlev(ig,l) 386 294 ! lmel=0.09*zlev(ig,l) … … 451 359 zbuoyjam(ig,l)=fact_shell*RG*(ztva_est(ig,l)-ztv_est(ig,l))/ztv_est(ig,l) & 452 360 & +(1.-fact_shell)*zbuoy(ig,l) 453 !print*,'on est pass?? par l??1',l,lt,ztv1,ztv2,ztv(ig,lt),ztv_est(ig,l),ztva_est(ig,l),ztv(ig,l), &454 !& zinv,zlmelup,zbuoy(ig,l),zbuoyjam(ig,l)361 print*,'on est pass?? par l??1',l,lt,ztv1,ztv2,ztv(ig,lt),ztv_est(ig,l),ztva_est(ig,l),ztv(ig,l), & 362 & zinv,zlmelup,zbuoy(ig,l),zbuoyjam(ig,l) 455 363 elseif (zlmelup.ge.zinv) then 456 364 ztv_est2=atv2*0.5*(zlmelup+zinv)+btv2 … … 462 370 & ztv_est1)/ztv_est1)+(1.-fact_shell)*zbuoy(ig,l) 463 371 464 !print*,'on est pass?? par l??2',l,lt,ztv_est1,ztv_est2,ztv(ig,lt),ztv_est(ig,l),ztva_est(ig,l),ztv(ig,l), &465 !& zinv,zlmelup,zbuoy(ig,l),zbuoyjam(ig,l)372 print*,'on est pass?? par l??2',l,lt,ztv_est1,ztv_est2,ztv(ig,lt),ztv_est(ig,l),ztva_est(ig,l),ztv(ig,l), & 373 & zinv,zlmelup,zbuoy(ig,l),zbuoyjam(ig,l) 466 374 else 467 375 ztv_est(ig,l)=atv1*zlmel+btv1 468 376 zbuoyjam(ig,l)=fact_shell*RG*(ztva_est(ig,l)-ztv_est(ig,l))/ztv_est(ig,l) & 469 377 & +(1.-fact_shell)*zbuoy(ig,l) 470 !print*,'on est pass?? par l??3',l,lt,ztv1,ztv2,ztv(ig,lt),ztv_est(ig,l),ztva_est(ig,l),ztv(ig,l), &471 !& zinv,zlmelup,zbuoy(ig,l),zbuoyjam(ig,l)378 print*,'on est pass?? par l??3',l,lt,ztv1,ztv2,ztv(ig,lt),ztv_est(ig,l),ztva_est(ig,l),ztv(ig,l), & 379 & zinv,zlmelup,zbuoy(ig,l),zbuoyjam(ig,l) 472 380 endif 473 381 … … 483 391 484 392 endif 485 ! print*,'on est pass?? par l??4',l,lt,ztv1,ztv2,ztv(ig,lt),ztv(ig,l),ztva_est(ig,l), & 486 ! & zlmelup,zbuoy(ig,l),zbuoyjam(ig,l) 393 394 print*,'on est pass?? par l??4',l,lt,ztv1,ztv2,ztv(ig,lt),ztv(ig,l),ztva_est(ig,l), & 395 & zlmelup,zbuoy(ig,l),zbuoyjam(ig,l) 487 396 ! zbuoyjam(ig,l)=fact_shell*RG*(((zlmelup-zltdwn)/zdz)*(ztva_est(ig,l)- & 488 397 ! & ztv1)/ztv1+((zltdwn-zlmeldwn)/zdz)*(ztva_est(ig,l)- & … … 508 417 & ztv(ig,lt))/ztv(ig,lt)+((zdz2-lmel)/zdz3)*(ztva_est(ig,l)- & 509 418 & ztv(ig,lt-1))/ztv(ig,lt-1))+0.*zbuoy(ig,l) 510 !print*,'on est pass?? par l??',l,lt,ztv(ig,lt),ztva_est(ig,l),ztv(ig,l), &511 !& zbuoy(ig,l),zbuoyjam(ig,l)419 print*,'on est pass?? par l??',l,lt,ztv(ig,lt),ztva_est(ig,l),ztv(ig,l), & 420 & zbuoy(ig,l),zbuoyjam(ig,l) 512 421 endif ! if (iflag_thermals_ed.lt.8) then 422 423 !------------------------------------------------ 424 !AJAM:nouveau calcul de w? 425 !------------------------------------------------ 426 zdz=zlev(ig,l+1)-zlev(ig,l) 427 zdzbis=zlev(ig,l)-zlev(ig,l-1) 428 zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l) 429 430 zw2fact=fact_epsilon*2.*zdz/(1.+betalpha) 431 zw2factbis=fact_epsilon*2.*zdzbis/(1.+betalpha) 432 zdw2=afact*zbuoy(ig,l)/fact_epsilon 433 zdw2bis=afact*zbuoy(ig,l-1)/fact_epsilon 434 lm=Max(1,l-2) 435 ! zdw2=(afact/fact_epsilon)*((zdz/zdzbis)*zbuoy(ig,l) & 436 ! & +((zdzbis-zdz)/zdzbis)*zbuoy(ig,l-1)) 437 ! zdw2bis=(afact/fact_epsilon)*((zdz/zdzbis)*zbuoy(ig,l-1) & 438 ! & +((zdzbis-zdz)/zdzbis)*zbuoy(ig,l-1)) 439 ! w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2)+zdw2) 440 ! w_est(ig,l+1)=(zdz/zdzbis)*Max(0.0001,exp(-zw2fact)* & 441 ! & (w_est(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* & 442 ! & Max(0.0001,exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2) 443 ! w_est(ig,l+1)=Max(0.0001,(1-exp(-zw2fact))*zdw2+w_est(ig,l)*exp(-zw2fact)) 444 445 !-------------------------------------------------- 446 !AJ052014: J'ai remplac? w_est(ig,l) par zw2(ig,l) 447 !-------------------------------------------------- 448 if (iflag_thermals_ed==8) then 449 ! Ancienne version 450 ! w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(exp(-zw2fact)* & 451 ! & (w_est(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* & 452 ! & (exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2)) 453 454 w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2bis)+zdw2) 455 456 ! Nouvelle version Arnaud 457 else 458 ! w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(exp(-zw2fact)* & 459 ! & (w_est(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* & 460 ! & (exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2)) 461 462 w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2bis)+zdw2) 463 464 ! w_est(ig,l+1)=Max(0.0001,(zdz/(zdzbis+zdz))*(exp(-zw2fact)* & 465 ! & (w_est(ig,l)-zdw2bis)+zdw2)+(zdzbis/(zdzbis+zdz))* & 466 ! & (exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2bis)) 467 468 469 470 ! w_est(ig,l+1)=Max(0.0001,(w_est(ig,l)+zdw2bis*zw2fact)*exp(-zw2fact)) 471 472 ! w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact)+ & 473 ! & (zdzbis-zdz)/zdzbis*(zw2(ig,l-1)+zdw2bis*zw2factbis)*exp(-zw2factbis)) 474 475 ! w_est(ig,l+1)=Max(0.0001,exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2) 476 477 endif 478 479 480 if (iflag_thermals_ed<6) then 481 zalpha=f0(ig)*f_star(ig,l)/sqrt(w_est(ig,l+1))/rhobarz(ig,l) 482 ! fact_epsilon=0.0005/(zalpha+0.025)**0.5 483 ! fact_epsilon=Min(0.003,0.0004/(zalpha)**0.5) 484 fact_epsilon=0.0002/(zalpha+0.1) 485 zw2fact=fact_epsilon*2.*zdz/(1.+betalpha) 486 zw2factbis=fact_epsilon*2.*zdzbis/(1.+betalpha) 487 zdw2=afact*zbuoy(ig,l)/fact_epsilon 488 zdw2bis=afact*zbuoy(ig,l-1)/fact_epsilon 489 ! w_est(ig,l+1)=Max(0.0001,(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact)) 490 491 ! w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(exp(-zw2fact)* & 492 ! & (zw2(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* & 493 ! & (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2)) 494 495 w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2bis)+zdw2) 496 497 498 endif 499 !-------------------------------------------------- 500 !AJ052014: J'ai comment? ce if plus n?cessaire puisqu' 501 !on fait max(0.0001,.....) 502 !-------------------------------------------------- 503 504 ! if (w_est(ig,l+1).lt.0.) then 505 ! w_est(ig,l+1)=zw2(ig,l) 506 ! w_est(ig,l+1)=0.0001 507 ! endif 508 509 endif 510 enddo 511 512 513 !------------------------------------------------- 514 !calcul des taux d'entrainement et de detrainement 515 !------------------------------------------------- 516 517 do ig=1,ngrid 518 if (active(ig)) then 519 520 ! zw2m=max(0.5*(w_est(ig,l)+w_est(ig,l+1)),0.1) 521 zw2m=w_est(ig,l+1) 522 ! zw2m=zw2(ig,l) 523 zdz=zlev(ig,l+1)-zlev(ig,l) 524 zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l) 525 ! zbuoybis=zbuoy(ig,l)+RG*0.1/300. 526 zbuoybis=zbuoy(ig,l) 527 zalpha=f0(ig)*f_star(ig,l)/sqrt(w_est(ig,l+1))/rhobarz(ig,l) 528 zdqt(ig,l)=max(zqta(ig,l-1)-po(ig,l),0.)/po(ig,l) 529 530 531 ! entr_star(ig,l)=f_star(ig,l)*zdz*zbetalpha*MAX(0., & 532 ! & afact*zbuoybis/zw2m - fact_epsilon ) 533 534 ! entr_star(ig,l)=MAX(0.,f_star(ig,l)*zdz*zbetalpha* & 535 ! & afact*zbuoybis/zw2m - fact_epsilon ) 536 537 513 538 514 539 ! zbuoyjam(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l) … … 526 551 endif 527 552 528 ! if (zw2m.lt.1.) then529 ! zbuoyjam(ig,l)=zbuoy(ig,l)530 ! endif531 532 553 533 554 … … 537 558 & + detr_q_coef*(zdqt(ig,l)/zw2m)**detr_q_power)) 538 559 560 ! detr_star(ig,l)=(zdz/zdzbis)*detr_star(ig,l)+ & 561 ! & ((zdzbis-zdz)/zdzbis)*detr_star(ig,l-1) 562 539 563 zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l) 540 564 … … 542 566 & mix0 * 0.1 / (zalpha+0.001) & 543 567 & + zbetalpha*MAX(entr_min, & 544 & afact*zbuoy(ig,l)/zw2m - fact_epsilon)) 568 & afact*zbuoyjam(ig,l)/zw2m - fact_epsilon )) 569 570 571 ! entr_star(ig,l)=f_star(ig,l)*zdz* ( & 572 ! & mix0 * 0.1 / (zalpha+0.001) & 573 ! & + MAX(entr_min, & 574 ! & zbetalpha*afact*zbuoyjam(ig,l)/zw2m - fact_epsilon + & 575 ! & detr_q_coef*(zdqt(ig,l)/zw2m)**detr_q_power)) 576 577 578 ! entr_star(ig,l)=(zdz/zdzbis)*entr_star(ig,l)+ & 579 ! & ((zdzbis-zdz)/zdzbis)*entr_star(ig,l-1) 545 580 546 581 ! entr_star(ig,l)=Max(0.,f_star(ig,l)*zdz*zbetalpha* & … … 601 636 zbuoy(ig,l)=RG*(ztva(ig,l)-ztv(ig,l))/ztv(ig,l) 602 637 zdz=zlev(ig,l+1)-zlev(ig,l) 603 zdzbis=zlev(ig,l +1)-zlev(ig,l-1)638 zdzbis=zlev(ig,l)-zlev(ig,l-1) 604 639 zeps(ig,l)=(entr_star(ig,l)+alim_star(ig,l))/(f_star(ig,l)*zdz) 605 640 !!!!!!! fact_epsilon=0.002 … … 608 643 zdw2= afact*zbuoy(ig,l)/(fact_epsilon) 609 644 zdw2bis= afact*zbuoy(ig,l-1)/(fact_epsilon) 645 ! zdw2=(afact/fact_epsilon)*((zdz/zdzbis)*zbuoy(ig,l) & 646 ! & +((zdzbis-zdz)/zdzbis)*zbuoy(ig,l-1)) 647 ! lm=Max(1,l-2) 648 ! zdw2bis=(afact/fact_epsilon)*((zdz/zdzbis)*zbuoy(ig,l-1) & 649 ! & +((zdzbis-zdz)/zdzbis)*zbuoy(ig,l-1)) 610 650 ! zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2bis)+zdw2) 611 651 ! zw2(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact)+ & 612 652 ! & (zdzbis-zdz)/zdzbis*(zw2(ig,l-1)+zdw2bis*zw2factbis)*exp(-zw2factbis)) 613 zw2(ig,l+1)=Max(0.0001,(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact))653 ! zw2(ig,l+1)=Max(0.0001,(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact)) 614 654 ! zw2(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(exp(-zw2fact)* & 615 655 ! & (zw2(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* & 656 ! & (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2)) 657 zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2bis)+zdw2) 658 ! zw2(ig,l+1)=Max(0.0001,(zdz/(zdz+zdzbis))*(exp(-zw2fact)* & 659 ! & (zw2(ig,l)-zdw2bis)+zdw2)+(zdzbis/(zdz+zdzbis))* & 616 660 ! & (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2bis)) 661 617 662 618 663 if (iflag_thermals_ed.lt.6) then … … 629 674 ! & (zw2(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* & 630 675 ! & (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2)) 631 zw2(ig,l+1)=Max(0.0001,(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact)) 676 ! zw2(ig,l+1)=Max(0.0001,(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact)) 677 zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2bis)+zdw2) 632 678 633 679 endif … … 759 805 & lalim,f0,detr_star,entr_star,f_star,csc,ztva, & 760 806 & ztla,zqla,zqta,zha,zw2,w_est,ztva_est,zqsatth,lmix,lmix_bis,linter & 761 & ,lev_out,lunout1,igout )807 & ,lev_out,lunout1,igout,zbuoy,zbuoyjam) 762 808 763 809 !--------------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.