Changeset 11785 for NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_ecmwf.F90
- Timestamp:
- 2019-10-24T12:38:43+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_ecmwf.F90
r11772 r11785 46 46 PUBLIC :: ECMWF_INIT, TURB_ECMWF 47 47 48 ! !! ECMWF own values for given constants, taken form IFS documentation...48 !! ECMWF own values for given constants, taken form IFS documentation... 49 49 REAL(wp), PARAMETER :: charn0 = 0.018 ! Charnock constant (pretty high value here !!! 50 50 ! ! => Usually 0.011 for moderate winds) … … 213 213 214 214 IF ( l_use_wl ) THEN 215 IF( .NOT.(PRESENT(Qsw) .AND. PRESENT(rad_lw) .AND. PRESENT(slp)) ) THEN215 IF( .NOT.(PRESENT(Qsw) .AND. PRESENT(rad_lw) .AND. PRESENT(slp)) ) THEN 216 216 PRINT *, ' * PROBLEM ('//TRIM(crtnm)//'): you need to provide Qsw, rad_lw & slp to use warm-layer param!'; STOP 217 217 END IF … … 222 222 zsst = T_s ! backing up the bulk SST 223 223 IF( l_use_cs ) T_s = T_s - 0.25_wp ! First guess of correction 224 q_s = rdct_qsat_salt*q_sat(MAX(T_s, 200._wp), slp) ! First guess of q_s !LOLO WL too!!!224 q_s = rdct_qsat_salt*q_sat(MAX(T_s, 200._wp), slp) ! First guess of q_s 225 225 END IF 226 226 … … 245 245 246 246 z0 = charn0*u_star*u_star/grav + 0.11_wp*znu_a/u_star 247 z0 = MIN(ABS(z0), 0.001_wp) ! (prevent FPE from stupid values from masked region later on...) !#LOLO 247 z0 = MIN( MAX(ABS(z0), 1.E-9) , 1._wp ) ! (prevents FPE from stupid values from masked region later on) 248 248 249 z0t = 1._wp / ( 0.1_wp*EXP(vkarmn/(0.00115/(vkarmn/ztmp1))) ) 249 z0t = MIN( ABS(z0t), 0.001_wp) ! (prevent FPE from stupid values from masked region later on...) !#LOLO250 z0t = MIN( MAX(ABS(z0t), 1.E-9) , 1._wp ) ! (prevents FPE from stupid values from masked region later on) 250 251 251 252 Cd = (vkarmn/ztmp0)**2 ! first guess of Cd … … 265 266 ztmp0 = vkarmn/(LOG(zu/z0t) - psi_h_ecmwf(func_h)) 266 267 267 u_star = U_blk*vkarmn/(LOG(zu) - LOG(z0) - psi_m_ecmwf(func_h))268 u_star = MAX ( U_blk*vkarmn/(LOG(zu) - LOG(z0) - psi_m_ecmwf(func_h)) , 1.E-9 ) ! (MAX => prevents FPE from stupid values from masked region later on) 268 269 t_star = dt_zu*ztmp0 269 270 q_star = dq_zu*ztmp0
Note: See TracChangeset
for help on using the changeset viewer.