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 11291 for NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src – NEMO

Ignore:
Timestamp:
2019-07-18T12:41:59+02:00 (5 years ago)
Author:
laurent
Message:

LB: more appropriated use of constant "emiss_w": emissivity of sea water.

Location:
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC
Files:
4 edited

Legend:

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

    r11284 r11291  
    654654 
    655655      !! LB: now after Turbulent fluxes because must use the skin temperature rather that the SST ! (zst is skin temperature if ln_skin==.TRUE.) 
    656       zqlw(:,:) = (  sf(jp_qlw)%fnow(:,:,1) - emiss_w * stefan * zst(:,:)*zst(:,:)*zst(:,:)*zst(:,:)  ) * tmask(:,:,1)   ! Long  Wave 
     656      zqlw(:,:) = emiss_w * ( sf(jp_qlw)%fnow(:,:,1) - stefan*zst(:,:)*zst(:,:)*zst(:,:)*zst(:,:) ) * tmask(:,:,1)   ! Net radiative longwave flux 
    657657 
    658658 
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_coare3p0.F90

    r11284 r11291  
    144144      REAL(wp), DIMENSION(jpi,jpj) :: zsst    ! to back up the initial bulk SST 
    145145      !!---------------------------------------------------------------------------------- 
    146       ! 
     146 
    147147      ! Cool skin ? 
    148148      IF( PRESENT(Qsw) .AND. PRESENT(rad_lw) .AND. PRESENT(slp) ) THEN 
     
    285285            ztmp2 = T_s*T_s 
    286286            ztmp1 = ztmp1 * ( Ce*L_vap(T_s)*(q_zu - q_s) + Ch*cp_air(q_zu)*(t_zu - T_s) ) & ! Total turb. heat flux 
    287                &       +      rad_lw - emiss_w*stefan*ztmp2*ztmp2                           ! Net longwave flux 
     287               &       +      emiss_w*(rad_lw - stefan*ztmp2*ztmp2)                         ! Net longwave flux 
    288288            !!         => "ztmp1" is the net non-solar surface heat flux ! 
    289289            !! Updating the values of the skin temperature T_s and q_s : 
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_coare3p6.F90

    r11284 r11291  
    144144      REAL(wp), DIMENSION(jpi,jpj) :: zsst    ! to back up the initial bulk SST 
    145145      !!---------------------------------------------------------------------------------- 
    146       ! 
     146 
    147147      ! Cool skin ? 
    148148      IF( PRESENT(Qsw) .AND. PRESENT(rad_lw) .AND. PRESENT(slp) ) THEN 
     
    285285            ztmp2 = T_s*T_s 
    286286            ztmp1 = ztmp1 * ( Ce*L_vap(T_s)*(q_zu - q_s) + Ch*cp_air(q_zu)*(t_zu - T_s) ) & ! Total turb. heat flux 
    287                &       +      rad_lw - emiss_w*stefan*ztmp2*ztmp2                           ! Net longwave flux 
     287               &       +      emiss_w*(rad_lw - stefan*ztmp2*ztmp2)                         ! Net longwave flux 
    288288            !!         => "ztmp1" is the net non-solar surface heat flux ! 
    289289            !! Updating the values of the skin temperature T_s and q_s : 
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_ecmwf.F90

    r11266 r11291  
    8080      !! ------- 
    8181      !!    *  zt   : height for temperature and spec. hum. of air            [m] 
    82       !!    *  zu   : height for wind speed (generally 10m)                   [m] 
    83       !!    *  U_zu : scalar wind speed at 10m                                [m/s] 
     82      !!    *  zu   : height for wind speed (usually 10m)                     [m] 
     83      !!    *  U_zu : scalar wind speed at zu                                 [m/s] 
    8484      !!    *  t_zt : potential air temperature at zt                         [K] 
    8585      !!    *  q_zt : specific humidity of air at zt                          [kg/kg] 
     
    109109      !!    *  t_zu   : pot. air temperature adjusted at wind height zu       [K] 
    110110      !!    *  q_zu   : specific humidity of air        //                    [kg/kg] 
    111       !!    *  U_blk  : bulk wind speed at 10m                                [m/s] 
     111      !!    *  U_blk  : bulk wind speed at zu                                 [m/s] 
    112112      !! 
    113113      !! 
     
    126126      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   t_zu     ! pot. air temp. adjusted at zu               [K] 
    127127      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   q_zu     ! spec. humidity adjusted at zu           [kg/kg] 
    128       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   U_blk    ! bulk wind at 10m                          [m/s] 
     128      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   U_blk    ! bulk wind speed at zu                     [m/s] 
    129129      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   Cdn, Chn, Cen ! neutral transfer coefficients 
    130130      ! 
     
    185185      znu_a = visc_air(t_zu) ! Air viscosity (m^2/s) at zt given from temperature in (K) 
    186186 
    187       ztmp2 = 0.5_wp*0.5_wp  ! initial guess for wind gustiness contribution 
    188       U_blk = SQRT(U_zu*U_zu + ztmp2) 
    189  
    190       ztmp2   = 10000._wp     ! optimization: ztmp2 == 1/z0 (with z0 first guess == 0.0001) 
    191       ztmp0   = LOG(zu*ztmp2) 
    192       ztmp1   = LOG(10.*ztmp2) 
     187      U_blk = SQRT(U_zu*U_zu + 0.5_wp*0.5_wp) ! initial guess for wind gustiness contribution 
     188 
     189      ztmp0   = LOG(    zu*10000._wp) ! optimization: 10000. == 1/z0 (with z0 first guess == 0.0001) 
     190      ztmp1   = LOG(10._wp*10000._wp) !       "                    "               " 
    193191      u_star = 0.035_wp*U_blk*ztmp1/ztmp0       ! (u* = 0.035*Un10) 
    194192 
     
    315313            ztmp2 = T_s*T_s 
    316314            ztmp1 = ztmp1 * ( Ce*L_vap(T_s)*(q_zu - q_s) + Ch*cp_air(q_zu)*(t_zu - T_s) ) & ! Total turb. heat flux 
    317                &       +      rad_lw - emiss_w*stefan*ztmp2*ztmp2                           ! Net longwave flux 
     315               &       +      emiss_w*(rad_lw - stefan*ztmp2*ztmp2)                         ! Net longwave flux 
    318316            !!         => "ztmp1" is the net non-solar surface heat flux ! 
    319317            !! Updating the values of the skin temperature T_s and q_s : 
Note: See TracChangeset for help on using the changeset viewer.