Changeset 5087 for LMDZ6/branches/Amaury_dev/libf/phylmd/stdlevvar_mod.F90
- Timestamp:
- Jul 20, 2024, 12:00:23 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/stdlevvar_mod.F90
r5082 r5087 123 123 124 124 CALL cdrag(knon, nsrf, & 125 &speed, t1, q1, z1, &126 &psol, s_pblh, ts1, qsurf, z0m, z0h, &127 &zri_zero, 0, &128 &cdram, cdrah, zri1, pref, prain, tsol, pat1)125 speed, t1, q1, z1, & 126 psol, s_pblh, ts1, qsurf, z0m, z0h, & 127 zri_zero, 0, & 128 cdram, cdrah, zri1, pref, prain, tsol, pat1) 129 129 130 130 ! --- special Dice: on force cdragm ( a defaut de forcer ustar) MPL 05082013 … … 153 153 qstar(i) = (cdrah(i) * zdq(i) * speed(i))/ustar(i) 154 154 lmon(i) = (ustar(i) * ustar(i) * tpot(i))/ & 155 &(RKAR * RG * testar(i))155 (RKAR * RG * testar(i)) 156 156 ENDDO 157 157 ! … … 159 159 zref = 2.0 160 160 CALL screenp(klon, knon, nsrf, speed, tpot, q1, & 161 &ts1, qsurf, z0m, lmon, &162 &ustar, testar, qstar, zref, &163 &delu, delte, delq)161 ts1, qsurf, z0m, lmon, & 162 ustar, testar, qstar, zref, & 163 delu, delte, delq) 164 164 ! 165 165 DO i = 1, knon … … 179 179 okri=.TRUE. 180 180 CALL screenc(klon, knon, nsrf, zxli, & 181 &u_zref, temp, q_zref, zref, &182 & ts1, qsurf, z0m, z0h, psol, &183 &ustar, testar, qstar, okri, ri1, &184 & pref, delu, delte, delq, s_pblh ,prain, tsol, pat1)181 u_zref, temp, q_zref, zref, & 182 ts1, qsurf, z0m, z0h, psol, & 183 ustar, testar, qstar, okri, ri1, & 184 pref, delu, delte, delq, s_pblh ,prain, tsol, pat1) 185 185 ! 186 186 DO i = 1, knon … … 261 261 zref = 10.0 262 262 CALL screenp(klon, knon, nsrf, speed, tpot, q1, & 263 &ts1, qsurf, z0m, lmon, &264 &ustar, testar, qstar, zref, &265 &delu, delte, delq)263 ts1, qsurf, z0m, lmon, & 264 ustar, testar, qstar, zref, & 265 delu, delte, delq) 266 266 ! 267 267 DO i = 1, knon … … 281 281 okri=.TRUE. 282 282 CALL screenc(klon, knon, nsrf, zxli, & 283 &u_zref, temp, q_zref, zref, &284 &ts1, qsurf, z0m, z0h, psol, &285 &ustar, testar, qstar, okri, ri1, &286 &pref, delu, delte, delq, s_pblh ,prain, tsol, pat1)283 u_zref, temp, q_zref, zref, & 284 ts1, qsurf, z0m, z0h, psol, & 285 ustar, testar, qstar, okri, ri1, & 286 pref, delu, delte, delq, s_pblh ,prain, tsol, pat1) 287 287 ! 288 288 DO i = 1, knon … … 451 451 okri=.FALSE. 452 452 CALL cdrag(knon, nsrf, & 453 &speed, t1, q1, z1, &454 &psol, s_pblh, ts1, qsurf, z0m, z0h, &455 &zri_zero, 0, &456 &cdram, cdrah, zri1, pref, prain, tsol, pat1)453 speed, t1, q1, z1, & 454 psol, s_pblh, ts1, qsurf, z0m, z0h, & 455 zri_zero, 0, & 456 cdram, cdrah, zri1, pref, prain, tsol, pat1) 457 457 458 458 ! … … 472 472 ! 473 473 CALL screencn(klon, knon, nsrf, zxli, & 474 &speed, tpot, q1, zref, &475 & ts1, qsurf, z0m, z0h, psol, &476 &cdram, cdrah, okri, &477 &ri1, 1, &478 &pref_new, delm_new, delh_new, ri2m, &479 &s_pblh, prain, tsol, pat1 )474 speed, tpot, q1, zref, & 475 ts1, qsurf, z0m, z0h, psol, & 476 cdram, cdrah, okri, & 477 ri1, 1, & 478 pref_new, delm_new, delh_new, ri2m, & 479 s_pblh, prain, tsol, pat1 ) 480 480 ! 481 481 DO i = 1, knon … … 483 483 u_zref_p(i) = u_zref(i) 484 484 q_zref(i) = delh_new(i)*max(q1(i),0.0) + & 485 &max(qsurf(i),0.0)*(1-delh_new(i))485 max(qsurf(i),0.0)*(1-delh_new(i)) 486 486 q_zref_p(i) = q_zref(i) 487 487 te_zref(i) = delh_new(i)*tpot(i) + ts1(i)*(1-delh_new(i)) … … 495 495 ! 496 496 ok_t2m_toosmall(i)=te_zref(i)<tpot(i).AND. & 497 &te_zref(i)<ts1(i)497 te_zref(i)<ts1(i) 498 498 ok_t2m_toobig(i)=te_zref(i)>tpot(i).AND. & 499 &te_zref(i)>ts1(i)499 te_zref(i)>ts1(i) 500 500 ok_q2m_toosmall(i)=q_zref(i)<q1(i).AND. & 501 &q_zref(i)<qsurf(i)501 q_zref(i)<qsurf(i) 502 502 ok_q2m_toobig(i)=q_zref(i)>q1(i).AND. & 503 &q_zref(i)>qsurf(i)503 q_zref(i)>qsurf(i) 504 504 ok_u2m_toobig(i)=u_zref(i)>speed(i) 505 505 ! … … 515 515 ! 516 516 IF(ok_t2m_toosmall(i).OR.ok_t2m_toobig(i).OR. & 517 &ok_q2m_toosmall(i).OR.ok_q2m_toobig(i).OR. &518 & ok_u2m_toobig(i)) THEN517 ok_q2m_toosmall(i).OR.ok_q2m_toobig(i).OR. & 518 ok_u2m_toobig(i)) THEN 519 519 delm_new(i)=min(max(delm_new(i),0.),1.) 520 520 delh_new(i)=min(max(delh_new(i),0.),1.) … … 522 522 u_zref_p(i) = u_zref(i) 523 523 q_zref(i) = delh_new(i)*max(q1(i),0.0) + & 524 &max(qsurf(i),0.0)*(1-delh_new(i))524 max(qsurf(i),0.0)*(1-delh_new(i)) 525 525 q_zref_p(i) = q_zref(i) 526 526 te_zref(i) = delh_new(i)*tpot(i) + ts1(i)*(1-delh_new(i)) … … 540 540 okri=.TRUE. 541 541 CALL screencn(klon, knon, nsrf, zxli, & 542 &u_zref, temp, q_zref, zref, &543 &ts1, qsurf, z0m, z0h, psol, &544 &cdram, cdrah, okri, &545 &ri1, 0, &546 &pref, delm, delh, ri2m, &547 &s_pblh, prain, tsol, pat1 )542 u_zref, temp, q_zref, zref, & 543 ts1, qsurf, z0m, z0h, psol, & 544 cdram, cdrah, okri, & 545 ri1, 0, & 546 pref, delm, delh, ri2m, & 547 s_pblh, prain, tsol, pat1 ) 548 548 ! 549 549 DO i = 1, knon 550 550 u_zref(i) = delm(i)*speed(i) 551 551 q_zref(i) = delh(i)*max(q1(i),0.0) + & 552 &max(qsurf(i),0.0)*(1-delh(i))552 max(qsurf(i),0.0)*(1-delh(i)) 553 553 te_zref(i) = delh(i)*tpot(i) + ts1(i)*(1-delh(i)) 554 554 ! … … 559 559 ! 560 560 ok_t2m_toosmall(i)=te_zref(i)<tpot(i).AND. & 561 &te_zref(i)<ts1(i)561 te_zref(i)<ts1(i) 562 562 ok_t2m_toobig(i)=te_zref(i)>tpot(i).AND. & 563 &te_zref(i)>ts1(i)563 te_zref(i)>ts1(i) 564 564 ok_q2m_toosmall(i)=q_zref(i)<q1(i).AND. & 565 &q_zref(i)<qsurf(i)565 q_zref(i)<qsurf(i) 566 566 ok_q2m_toobig(i)=q_zref(i)>q1(i).AND. & 567 &q_zref(i)>qsurf(i)567 q_zref(i)>qsurf(i) 568 568 ok_u2m_toobig(i)=u_zref(i)>speed(i) 569 569 ! … … 579 579 ! 580 580 IF(ok_t2m_toosmall(i).OR.ok_t2m_toobig(i).OR. & 581 &ok_q2m_toosmall(i).OR.ok_q2m_toobig(i).OR. &582 & ok_u2m_toobig(i)) THEN581 ok_q2m_toosmall(i).OR.ok_q2m_toobig(i).OR. & 582 ok_u2m_toobig(i)) THEN 583 583 delm(i)=min(max(delm(i),0.),1.) 584 584 delh(i)=min(max(delh(i),0.),1.) 585 585 u_zref(i) = delm(i)*speed(i) 586 586 q_zref(i) = delh(i)*max(q1(i),0.0) + & 587 &max(qsurf(i),0.0)*(1-delh(i))587 max(qsurf(i),0.0)*(1-delh(i)) 588 588 te_zref(i) = delh(i)*tpot(i) + ts1(i)*(1-delh(i)) 589 589 temp(i) = te_zref(i) * (psol(i)/pref(i))**(-RKAPPA) … … 620 620 ! 621 621 CALL screencn(klon, knon, nsrf, zxli, & 622 &speed, tpot, q1, zref, &623 & ts1, qsurf, z0m, z0h, psol, &624 &cdram, cdrah, okri, &625 &ri1, 1, &626 &pref_new, delm_new, delh_new, ri10m, &627 &s_pblh, prain, tsol, pat1 )622 speed, tpot, q1, zref, & 623 ts1, qsurf, z0m, z0h, psol, & 624 cdram, cdrah, okri, & 625 ri1, 1, & 626 pref_new, delm_new, delh_new, ri10m, & 627 s_pblh, prain, tsol, pat1 ) 628 628 ! 629 629 DO i = 1, knon 630 630 u_zref(i) = delm_new(i)*speed(i) 631 631 q_zref(i) = delh_new(i)*max(q1(i),0.0) + & 632 &max(qsurf(i),0.0)*(1-delh_new(i))632 max(qsurf(i),0.0)*(1-delh_new(i)) 633 633 te_zref(i) = delh_new(i)*tpot(i) + ts1(i)*(1-delh_new(i)) 634 634 temp(i) = te_zref(i) * (psol(i)/pref_new(i))**(-RKAPPA) … … 638 638 ! 639 639 ok_t10m_toosmall(i)=te_zref(i)<tpot(i).AND. & 640 &te_zref(i)<ts1(i)640 te_zref(i)<ts1(i) 641 641 ok_t10m_toobig(i)=te_zref(i)>tpot(i).AND. & 642 &te_zref(i)>ts1(i)642 te_zref(i)>ts1(i) 643 643 ok_q10m_toosmall(i)=q_zref(i)<q1(i).AND. & 644 &q_zref(i)<qsurf(i)644 q_zref(i)<qsurf(i) 645 645 ok_q10m_toobig(i)=q_zref(i)>q1(i).AND. & 646 &q_zref(i)>qsurf(i)646 q_zref(i)>qsurf(i) 647 647 ok_u10m_toobig(i)=u_zref(i)>speed(i) 648 648 ! … … 658 658 ! 659 659 IF(ok_t10m_toosmall(i).OR.ok_t10m_toobig(i).OR. & 660 &ok_q10m_toosmall(i).OR.ok_q10m_toobig(i).OR. &661 & ok_u10m_toobig(i)) THEN660 ok_q10m_toosmall(i).OR.ok_q10m_toobig(i).OR. & 661 ok_u10m_toobig(i)) THEN 662 662 delm_new(i)=min(max(delm_new(i),0.),1.) 663 663 delh_new(i)=min(max(delh_new(i),0.),1.) … … 665 665 u_zref_p(i) = u_zref(i) 666 666 q_zref(i) = delh_new(i)*max(q1(i),0.0) + & 667 &max(qsurf(i),0.0)*(1-delh_new(i))667 max(qsurf(i),0.0)*(1-delh_new(i)) 668 668 te_zref(i) = delh_new(i)*tpot(i) + ts1(i)*(1-delh_new(i)) 669 669 temp(i) = te_zref(i) * (psol(i)/pref_new(i))**(-RKAPPA) … … 678 678 okri=.TRUE. 679 679 CALL screencn(klon, knon, nsrf, zxli, & 680 &u_zref, temp, q_zref, zref, &681 &ts1, qsurf, z0m, z0h, psol, &682 &cdram, cdrah, okri, &683 &ri1, 0, &684 &pref, delm, delh, ri10m, &685 &s_pblh, prain, tsol, pat1 )680 u_zref, temp, q_zref, zref, & 681 ts1, qsurf, z0m, z0h, psol, & 682 cdram, cdrah, okri, & 683 ri1, 0, & 684 pref, delm, delh, ri10m, & 685 s_pblh, prain, tsol, pat1 ) 686 686 ! 687 687 DO i = 1, knon 688 688 u_zref(i) = delm(i)*speed(i) 689 689 q_zref(i) = delh(i)*max(q1(i),0.0) + & 690 &max(qsurf(i),0.0)*(1-delh(i))690 max(qsurf(i),0.0)*(1-delh(i)) 691 691 te_zref(i) = delh(i)*tpot(i) + ts1(i)*(1-delh(i)) 692 692 ! … … 697 697 ! 698 698 ok_t10m_toosmall(i)=te_zref(i)<tpot(i).AND. & 699 &te_zref(i)<ts1(i)699 te_zref(i)<ts1(i) 700 700 ok_t10m_toobig(i)=te_zref(i)>tpot(i).AND. & 701 &te_zref(i)>ts1(i)701 te_zref(i)>ts1(i) 702 702 ok_q10m_toosmall(i)=q_zref(i)<q1(i).AND. & 703 &q_zref(i)<qsurf(i)703 q_zref(i)<qsurf(i) 704 704 ok_q10m_toobig(i)=q_zref(i)>q1(i).AND. & 705 &q_zref(i)>qsurf(i)705 q_zref(i)>qsurf(i) 706 706 ok_u10m_toobig(i)=u_zref(i)>speed(i) 707 707 ! … … 717 717 ! 718 718 IF(ok_t10m_toosmall(i).OR.ok_t10m_toobig(i).OR. & 719 &ok_q10m_toosmall(i).OR.ok_q10m_toobig(i).OR. &720 & ok_u10m_toobig(i)) THEN719 ok_q10m_toosmall(i).OR.ok_q10m_toobig(i).OR. & 720 ok_u10m_toobig(i)) THEN 721 721 delm(i)=min(max(delm(i),0.),1.) 722 722 delh(i)=min(max(delh(i),0.),1.) 723 723 u_zref(i) = delm(i)*speed(i) 724 724 q_zref(i) = delh(i)*max(q1(i),0.0) + & 725 &max(qsurf(i),0.0)*(1-delh(i))725 max(qsurf(i),0.0)*(1-delh(i)) 726 726 te_zref(i) = delh(i)*tpot(i) + ts1(i)*(1-delh(i)) 727 727 temp(i) = te_zref(i) * (psol(i)/pref(i))**(-RKAPPA)
Note: See TracChangeset
for help on using the changeset viewer.