Changeset 12081 for NEMO/branches/2019/dev_ASINTER-01-05_merged/src/OCE
- Timestamp:
- 2019-12-06T11:52:54+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_ASINTER-01-05_merged/src/OCE/SBC/sbcblk_phy.F90
r12021 r12081 533 533 CALL BULK_FORMULA( pzu, pTs(ji,jj), pqs(ji,jj), pTa(ji,jj), pqa(ji,jj), & 534 534 & zCd, zCh, zCe, & 535 & pwnd(ji,jj), pUb(ji,jj), pslp(ji,jj), &535 & pwnd(ji,jj), pUb(ji,jj), pslp(ji,jj), & 536 536 & pTau(ji,jj), zQsen, zQlat ) 537 537 … … 568 568 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: pQlat ! [W/m^2] 569 569 !! 570 REAL(wp), DIMENSION(jpi,jpj), INTENT(out), OPTIONAL :: pEvap 571 REAL(wp), DIMENSION(jpi,jpj), INTENT(out), OPTIONAL :: prhoa 570 REAL(wp), DIMENSION(jpi,jpj), INTENT(out), OPTIONAL :: pEvap ! Evaporation [kg/m^2/s] 571 REAL(wp), DIMENSION(jpi,jpj), INTENT(out), OPTIONAL :: prhoa ! Air density at z=pzu [kg/m^3] 572 572 !! 573 573 REAL(wp) :: ztaa, zgamma, zrho, zUrho, zevap 574 574 INTEGER :: ji, jj, jq ! dummy loop indices 575 575 !!---------------------------------------------------------------------------------- 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 576 DO jj = 1, jpj 577 DO ji = 1, jpi 578 579 !! Need ztaa, absolute temperature at pzu (formula to estimate rho_air needs absolute temperature, not the potential temperature "pTa") 580 ztaa = pTa(ji,jj) ! first guess... 581 DO jq = 1, 4 582 zgamma = gamma_moist( 0.5*(ztaa+pTs(ji,jj)) , pqa(ji,jj) ) 583 ztaa = pTa(ji,jj) - zgamma*pzu ! Absolute temp. is slightly colder... 584 END DO 585 zrho = rho_air(ztaa, pqa(ji,jj), pslp(ji,jj)) 586 zrho = rho_air(ztaa, pqa(ji,jj), pslp(ji,jj)-zrho*grav*pzu) ! taking into account that we are pzu m above the sea level where SLP is given! 587 588 zUrho = pUb(ji,jj)*MAX(zrho, 1._wp) ! rho*U10 589 590 pTau(ji,jj) = zUrho * pCd(ji,jj) * pwnd(ji,jj) ! Wind stress module 591 592 zevap = zUrho * pCe(ji,jj) * (pqa(ji,jj) - pqs(ji,jj)) 593 pQsen(ji,jj) = zUrho * pCh(ji,jj) * (pTa(ji,jj) - pTs(ji,jj)) * cp_air(pqa(ji,jj)) 594 pQlat(ji,jj) = L_vap(pTs(ji,jj)) * zevap 595 596 596 IF( PRESENT(pEvap) ) pEvap(ji,jj) = - zevap 597 597 IF( PRESENT(prhoa) ) prhoa(ji,jj) = zrho 598 599 600 598 599 END DO 600 END DO 601 601 END SUBROUTINE BULK_FORMULA_VCTR 602 602 … … 630 630 !!---------------------------------------------------------------------------------- 631 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 632 !! Need ztaa, absolute temperature at pzu (formula to estimate rho_air needs absolute temperature, not the potential temperature "pTa") 633 ztaa = pTa ! first guess... 634 DO jq = 1, 4 635 zgamma = gamma_moist( 0.5*(ztaa+pTs) , pqa ) 636 ztaa = pTa - zgamma*pzu ! Absolute temp. is slightly colder... 637 END DO 638 zrho = rho_air(ztaa, pqa, pslp) 639 zrho = rho_air(ztaa, pqa, pslp-zrho*grav*pzu) ! taking into account that we are pzu m above the sea level where SLP is given! 640 641 zUrho = pUb*MAX(zrho, 1._wp) ! rho*U10 642 643 pTau = zUrho * pCd * pwnd ! Wind stress module 644 645 zevap = zUrho * pCe * (pqa - pqs) 646 pQsen = zUrho * pCh * (pTa - pTs) * cp_air(pqa) 647 pQlat = L_vap(pTs) * zevap 648 649 IF( PRESENT(pEvap) ) pEvap = - zevap 650 IF( PRESENT(prhoa) ) prhoa = zrho 651 651 652 652 END SUBROUTINE BULK_FORMULA_SCLR
Note: See TracChangeset
for help on using the changeset viewer.