New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 11804 for NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_phy.F90 – NEMO

Ignore:
Timestamp:
2019-10-25T17:25:19+02:00 (4 years ago)
Author:
laurent
Message:

Use of "TURB_FLUXES@…" inside sbcblk.F90, positive latent HF & positive cool-skin temperature now allowed!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_phy.F90

    r11772 r11804  
    495495      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(out) :: Qlat 
    496496      ! 
    497       REAL(wp) :: zdt, zdq, zCd, zCh, zCe, zUrho, zTs2, zz0, & 
     497      REAL(wp) :: zdt, zdq, zCd, zCh, zCe, zTs2, zz0, & 
    498498         &        zQlat, zQsen, zQlw 
    499499      INTEGER  ::   ji, jj     ! dummy loop indices 
     
    508508            zCh = zz0*ptst(ji,jj)/zdt 
    509509            zCe = zz0*pqst(ji,jj)/zdq 
    510  
    511             !zUrho = pUb(ji,jj)*MAX(rho_air(pTa(ji,jj), pqa(ji,jj), pslp(ji,jj)), 1._wp)     ! rho*U10 
    512             zTs2  = pTs(ji,jj)*pTs(ji,jj) 
    513  
     510             
    514511            CALL TURB_FLUXES( pzu, pTs(ji,jj), pqs(ji,jj), pTa(ji,jj), pqa(ji,jj), zCd, zCh, zCe, & 
    515512               &              pwnd(ji,jj), pUb(ji,jj), pslp(ji,jj), & 
    516513               &              pTau(ji,jj), zQsen, zQlat ) 
    517  
    518  
    519             ! Wind stress module: 
    520             !pTau(ji,jj) = zCd*zUrho*pUb(ji,jj) ! lolo? 
    521  
    522             ! Non-Solar heat flux to the ocean: 
    523             !zQlat = MIN ( zUrho*zCe*L_vap( pTs(ji,jj)) * zdq , 0._wp )  ! we do not want a Qlat > 0 ! 
    524             !zQsen = zUrho*zCh*cp_air(pqa(ji,jj)) * zdt 
     514             
     515            zTs2  = pTs(ji,jj)*pTs(ji,jj)             
    525516            zQlw  = emiss_w*(prlw(ji,jj) - stefan*zTs2*zTs2) ! Net longwave flux 
    526517 
     
    533524 
    534525 
    535  
    536  
    537  
    538526   SUBROUTINE TURB_FLUXES_VCTR( pzu, pTs, pqs, pTa, pqa, pCd, pCh, pCe, pwnd, pUb, pslp, & 
    539       &                                 pTau, pQsen, pQlat,  pEvap ) 
     527      &                                 pTau, pQsen, pQlat,  pEvap, prhoa ) 
    540528      !!---------------------------------------------------------------------------------- 
    541529      REAL(wp),                     INTENT(in)  :: pzu  ! height above the sea-level where all this takes place (normally 10m) 
     
    555543      REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: pQlat !  [W/m^2] 
    556544      !! 
    557       REAL(wp), DIMENSION(jpi,jpj), INTENT(out), OPTIONAL :: pEvap !  [kg/m^2/s] 
     545      REAL(wp), DIMENSION(jpi,jpj), INTENT(out), OPTIONAL :: pEvap ! Evaporation [kg/m^2/s] 
     546      REAL(wp), DIMENSION(jpi,jpj), INTENT(out), OPTIONAL :: prhoa ! Air density at z=pzu [kg/m^3] 
    558547      !! 
    559548      REAL(wp) :: ztaa, zgamma, zrho, zUrho, zevap 
     
    576565            pTau(ji,jj) = zUrho * pCd(ji,jj) * pwnd(ji,jj) ! Wind stress module 
    577566 
    578             zevap        = MIN( zUrho * pCe(ji,jj) * (pqa(ji,jj) - pqs(ji,jj)) , 0._wp )   ! we do not want condensation & Qlat > 0 ! 
    579             pQsen(ji,jj) =      zUrho * pCh(ji,jj) * (pTa(ji,jj) - pTs(ji,jj)) * cp_air(pqa(ji,jj)) 
    580             pQlat(ji,jj) =  L_vap(pTs(ji,jj)) * zevap 
     567            zevap        = zUrho * pCe(ji,jj) * (pqa(ji,jj) - pqs(ji,jj)) 
     568            pQsen(ji,jj) = zUrho * pCh(ji,jj) * (pTa(ji,jj) - pTs(ji,jj)) * cp_air(pqa(ji,jj)) 
     569            pQlat(ji,jj) = L_vap(pTs(ji,jj)) * zevap 
    581570 
    582571            IF ( PRESENT(pEvap) ) pEvap(ji,jj) = - zevap 
     572            IF ( PRESENT(prhoa) ) prhoa(ji,jj) = zrho 
    583573 
    584574         END DO 
     
    588578 
    589579   SUBROUTINE TURB_FLUXES_SCLR( pzu, pTs, pqs, pTa, pqa, pCd, pCh, pCe, pwnd, pUb, pslp, & 
    590       &                                 pTau, pQsen, pQlat,  pEvap ) 
     580      &                                 pTau, pQsen, pQlat,  pEvap, prhoa ) 
    591581      !!---------------------------------------------------------------------------------- 
    592582      REAL(wp),                     INTENT(in)  :: pzu  ! height above the sea-level where all this takes place (normally 10m) 
     
    606596      REAL(wp), INTENT(out) :: pQlat !  [W/m^2] 
    607597      !! 
    608       REAL(wp), INTENT(out), OPTIONAL :: pEvap !  [kg/m^2/s] 
     598      REAL(wp), INTENT(out), OPTIONAL :: pEvap ! Evaporation [kg/m^2/s] 
     599      REAL(wp), INTENT(out), OPTIONAL :: prhoa ! Air density at z=pzu [kg/m^3] 
    609600      !! 
    610601      REAL(wp) :: ztaa, zgamma, zrho, zUrho, zevap 
     
    625616      pTau = zUrho * pCd * pwnd ! Wind stress module 
    626617 
    627       zevap        = MIN( zUrho * pCe * (pqa - pqs) , 0._wp )   ! we do not want condensation & Qlat > 0 ! 
    628       pQsen =      zUrho * pCh * (pTa - pTs) * cp_air(pqa) 
    629       pQlat =  L_vap(pTs) * zevap 
     618      zevap = zUrho * pCe * (pqa - pqs) 
     619      pQsen = zUrho * pCh * (pTa - pTs) * cp_air(pqa) 
     620      pQlat = L_vap(pTs) * zevap 
    630621 
    631622      IF ( PRESENT(pEvap) ) pEvap = - zevap 
     623      IF ( PRESENT(prhoa) ) prhoa = zrho 
    632624 
    633625   END SUBROUTINE TURB_FLUXES_SCLR 
    634  
    635626 
    636627 
Note: See TracChangeset for help on using the changeset viewer.