Changeset 11291
- Timestamp:
- 2019-07-18T12:41:59+02:00 (4 years ago)
- 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 654 654 655 655 !! 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 Wave656 zqlw(:,:) = emiss_w * ( sf(jp_qlw)%fnow(:,:,1) - stefan*zst(:,:)*zst(:,:)*zst(:,:)*zst(:,:) ) * tmask(:,:,1) ! Net radiative longwave flux 657 657 658 658 -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_coare3p0.F90
r11284 r11291 144 144 REAL(wp), DIMENSION(jpi,jpj) :: zsst ! to back up the initial bulk SST 145 145 !!---------------------------------------------------------------------------------- 146 ! 146 147 147 ! Cool skin ? 148 148 IF( PRESENT(Qsw) .AND. PRESENT(rad_lw) .AND. PRESENT(slp) ) THEN … … 285 285 ztmp2 = T_s*T_s 286 286 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 flux287 & + emiss_w*(rad_lw - stefan*ztmp2*ztmp2) ! Net longwave flux 288 288 !! => "ztmp1" is the net non-solar surface heat flux ! 289 289 !! 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 144 144 REAL(wp), DIMENSION(jpi,jpj) :: zsst ! to back up the initial bulk SST 145 145 !!---------------------------------------------------------------------------------- 146 ! 146 147 147 ! Cool skin ? 148 148 IF( PRESENT(Qsw) .AND. PRESENT(rad_lw) .AND. PRESENT(slp) ) THEN … … 285 285 ztmp2 = T_s*T_s 286 286 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 flux287 & + emiss_w*(rad_lw - stefan*ztmp2*ztmp2) ! Net longwave flux 288 288 !! => "ztmp1" is the net non-solar surface heat flux ! 289 289 !! 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 80 80 !! ------- 81 81 !! * 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] 84 84 !! * t_zt : potential air temperature at zt [K] 85 85 !! * q_zt : specific humidity of air at zt [kg/kg] … … 109 109 !! * t_zu : pot. air temperature adjusted at wind height zu [K] 110 110 !! * 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] 112 112 !! 113 113 !! … … 126 126 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: t_zu ! pot. air temp. adjusted at zu [K] 127 127 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] 129 129 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: Cdn, Chn, Cen ! neutral transfer coefficients 130 130 ! … … 185 185 znu_a = visc_air(t_zu) ! Air viscosity (m^2/s) at zt given from temperature in (K) 186 186 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) ! " " " 193 191 u_star = 0.035_wp*U_blk*ztmp1/ztmp0 ! (u* = 0.035*Un10) 194 192 … … 315 313 ztmp2 = T_s*T_s 316 314 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 flux315 & + emiss_w*(rad_lw - stefan*ztmp2*ztmp2) ! Net longwave flux 318 316 !! => "ztmp1" is the net non-solar surface heat flux ! 319 317 !! Updating the values of the skin temperature T_s and q_s :
Note: See TracChangeset
for help on using the changeset viewer.