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 3085 for branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90 – NEMO

Ignore:
Timestamp:
2011-11-14T14:13:32+01:00 (12 years ago)
Author:
cbricaud
Message:

commit changes from dev_INGV_2011

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r2777 r3085  
    3434   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    3535   USE prtctl          ! Print control 
     36   USE sbcwave,ONLY :  cdn_wave !wave module  
    3637#if defined key_lim3 
    3738   USE sbc_ice         ! Surface boundary condition: ice fields 
     
    4344   PUBLIC   sbc_blk_core         ! routine called in sbcmod module 
    4445   PUBLIC   blk_ice_core         ! routine called in sbc_ice_lim module 
     46   PUBLIC   turb_core_2z         ! routine calles in sbcblk_ecmwf module 
    4547 
    4648   INTEGER , PARAMETER ::   jpfld   = 9           ! maximum number of files to read  
     
    682684      !! Neutral Drag Coefficient 
    683685      stab    = 0.5 + sign(0.5,dT)    ! stable : stab = 1 ; unstable : stab = 0  
    684       Cd_n10  = 1E-3 * ( 2.7/dU10 + 0.142 + dU10/13.09 )    !   L & Y eq. (6a) 
     686      IF  ( ln_cdgw ) THEN 
     687        cdn_wave = cdn_wave - rsmall*(tmask(:,:,1)-1) 
     688        Cd_n10(:,:) =   cdn_wave 
     689      ELSE 
     690        Cd_n10  = 1E-3 * ( 2.7/dU10 + 0.142 + dU10/13.09 )    !   L & Y eq. (6a) 
     691      ENDIF 
    685692      sqrt_Cd_n10 = sqrt(Cd_n10) 
    686693      Ce_n10  = 1E-3 * ( 34.6 * sqrt_Cd_n10 )               !   L & Y eq. (6b) 
     
    705712         zpsi_m  = psi_m(zeta) 
    706713 
    707          !! Shifting the wind speed to 10m and neutral stability : 
    708          U_n10 = dU10*1./(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)) !  L & Y eq. (9a) 
    709  
    710          !! Updating the neutral 10m transfer coefficients : 
    711          Cd_n10  = 1E-3 * (2.7/U_n10 + 0.142 + U_n10/13.09)              !  L & Y eq. (6a) 
    712          sqrt_Cd_n10 = sqrt(Cd_n10) 
    713          Ce_n10  = 1E-3 * (34.6 * sqrt_Cd_n10)                           !  L & Y eq. (6b) 
    714          stab    = 0.5 + sign(0.5,zeta) 
    715          Ch_n10  = 1E-3*sqrt_Cd_n10*(18.*stab + 32.7*(1-stab))           !  L & Y eq. (6c), (6d) 
    716  
    717          !! Shifting the neutral  10m transfer coefficients to ( zu , zeta ) : 
    718          !! 
    719          xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10) - zpsi_m) 
    720          Cd  = Cd_n10/(xct*xct) ;  sqrt_Cd = sqrt(Cd) 
     714         IF  ( ln_cdgw ) THEN 
     715           sqrt_Cd=kappa/((kappa/sqrt_Cd_n10) - zpsi_m) ; Cd=sqrt_Cd*sqrt_Cd; 
     716         ELSE 
     717           !! Shifting the wind speed to 10m and neutral stability : 
     718           U_n10 = dU10*1./(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)) !  L & Y eq. (9a) 
     719 
     720           !! Updating the neutral 10m transfer coefficients : 
     721           Cd_n10  = 1E-3 * (2.7/U_n10 + 0.142 + U_n10/13.09)              !  L & Y eq. (6a) 
     722           sqrt_Cd_n10 = sqrt(Cd_n10) 
     723           Ce_n10  = 1E-3 * (34.6 * sqrt_Cd_n10)                           !  L & Y eq. (6b) 
     724           stab    = 0.5 + sign(0.5,zeta) 
     725           Ch_n10  = 1E-3*sqrt_Cd_n10*(18.*stab + 32.7*(1-stab))           !  L & Y eq. (6c), (6d) 
     726 
     727           !! Shifting the neutral  10m transfer coefficients to ( zu , zeta ) : 
     728           !! 
     729           xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10) - zpsi_m) 
     730           Cd  = Cd_n10/(xct*xct) ;  sqrt_Cd = sqrt(Cd) 
     731         ENDIF 
    721732         !! 
    722733         xlogt = log(zu/10.) - zpsi_h 
     
    812823      !! Neutral Drag Coefficient : 
    813824      stab = 0.5 + sign(0.5,dT)                 ! stab = 1  if dT > 0  -> STABLE 
    814       Cd_n10  = 1E-3*( 2.7/dU10 + 0.142 + dU10/13.09 )  
     825      IF  ( ln_cdgw ) THEN 
     826        cdn_wave = cdn_wave - rsmall*(tmask(:,:,1)-1) 
     827        Cd_n10(:,:) =   cdn_wave 
     828      ELSE 
     829        Cd_n10  = 1E-3*( 2.7/dU10 + 0.142 + dU10/13.09 )  
     830      ENDIF 
    815831      sqrt_Cd_n10 = sqrt(Cd_n10) 
    816832      Ce_n10  = 1E-3*( 34.6 * sqrt_Cd_n10 ) 
     
    853869         stab = 0.5 + sign(0.5,q_zu) ;  q_zu = stab*q_zu 
    854870         !! 
    855          !! Updating the neutral 10m transfer coefficients : 
    856          Cd_n10  = 1E-3 * (2.7/U_n10 + 0.142 + U_n10/13.09)    ! L & Y eq. (6a) 
    857          sqrt_Cd_n10 = sqrt(Cd_n10) 
    858          Ce_n10  = 1E-3 * (34.6 * sqrt_Cd_n10)                 ! L & Y eq. (6b) 
    859          stab    = 0.5 + sign(0.5,zeta_u) 
    860          Ch_n10  = 1E-3*sqrt_Cd_n10*(18.*stab + 32.7*(1-stab)) ! L & Y eq. (6c-6d) 
    861          !! 
    862          !! 
    863          !! Shifting the neutral 10m transfer coefficients to (zu,zeta_u) : 
    864 !        xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - psi_m(zeta_u)) 
    865          xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m) 
    866          Cd = Cd_n10/(xct*xct) ; sqrt_Cd = sqrt(Cd) 
    867          !! 
    868 !        xlogt = log(zu/10.) - psi_h(zeta_u) 
     871         IF  ( ln_cdgw ) THEN 
     872            sqrt_Cd=kappa/((kappa/sqrt_Cd_n10) - zpsi_m) ; Cd=sqrt_Cd*sqrt_Cd; 
     873         ELSE 
     874           !! Updating the neutral 10m transfer coefficients : 
     875           Cd_n10  = 1E-3 * (2.7/U_n10 + 0.142 + U_n10/13.09)    ! L & Y eq. (6a) 
     876           sqrt_Cd_n10 = sqrt(Cd_n10) 
     877           Ce_n10  = 1E-3 * (34.6 * sqrt_Cd_n10)                 ! L & Y eq. (6b) 
     878           stab    = 0.5 + sign(0.5,zeta_u) 
     879           Ch_n10  = 1E-3*sqrt_Cd_n10*(18.*stab + 32.7*(1-stab)) ! L & Y eq. (6c-6d) 
     880           !! 
     881           !! 
     882           !! Shifting the neutral 10m transfer coefficients to (zu,zeta_u) : 
     883           xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m) 
     884           Cd = Cd_n10/(xct*xct) ; sqrt_Cd = sqrt(Cd) 
     885         ENDIF 
     886         !! 
    869887         xlogt = log(zu/10.) - zpsi_hu 
    870888         !! 
Note: See TracChangeset for help on using the changeset viewer.