Changeset 11845 for NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_ncar.F90
- Timestamp:
- 2019-11-04T11:11:58+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_ncar.F90
r11631 r11845 42 42 PRIVATE 43 43 44 PUBLIC :: 45 46 INTEGER , PARAMETER :: nb_itt = 4! number of itterations44 PUBLIC :: TURB_NCAR ! called by sbcblk.F90 45 46 INTEGER , PARAMETER :: nb_itt = 5 ! number of itterations 47 47 48 48 !!---------------------------------------------------------------------- … … 52 52 & Cd, Ch, Ce, t_zu, q_zu, U_blk, & 53 53 & Cdn, Chn, Cen ) 54 !!---------------------------------------------------------------------- ------------54 !!---------------------------------------------------------------------- 55 55 !! *** ROUTINE turb_ncar *** 56 56 !! … … 64 64 !! ------- 65 65 !! * zt : height for temperature and spec. hum. of air [m] 66 !! * zu : height for wind speed (generally 10m) [m] 67 !! * U_zu : scalar wind speed at 10m [m/s] 68 !! * sst : SST [K] 66 !! * zu : height for wind speed (usually 10m) [m] 67 !! * sst : bulk SST [K] 69 68 !! * t_zt : potential air temperature at zt [K] 70 69 !! * ssq : specific humidity at saturation at SST [kg/kg] 71 70 !! * q_zt : specific humidity of air at zt [kg/kg] 71 !! * U_zu : scalar wind speed at zu [m/s] 72 72 !! 73 73 !! … … 79 79 !! * t_zu : pot. air temperature adjusted at wind height zu [K] 80 80 !! * q_zu : specific humidity of air // [kg/kg] 81 !! * U_blk : bulk wind speed at 10m[m/s]81 !! * U_blk : bulk wind speed at zu [m/s] 82 82 !! 83 83 !! … … 89 89 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj) :: t_zt ! potential air temperature [Kelvin] 90 90 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj) :: ssq ! sea surface specific humidity [kg/kg] 91 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj) :: q_zt ! specific air humidity 91 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj) :: q_zt ! specific air humidity at zt [kg/kg] 92 92 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj) :: U_zu ! relative wind module at zu [m/s] 93 93 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: Cd ! transfer coefficient for momentum (tau) … … 96 96 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: t_zu ! pot. air temp. adjusted at zu [K] 97 97 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: q_zu ! spec. humidity adjusted at zu [kg/kg] 98 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: U_blk ! bulk wind at 10m[m/s]98 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: U_blk ! bulk wind speed at zu [m/s] 99 99 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: Cdn, Chn, Cen ! neutral transfer coefficients 100 100 ! … … 111 111 ! 112 112 l_zt_equal_zu = .FALSE. 113 IF( ABS(zu - zt) < 0.01 ) l_zt_equal_zu = .TRUE. ! testing "zu == zt" is risky with double precision113 IF( ABS(zu - zt) < 0.01_wp ) l_zt_equal_zu = .TRUE. ! testing "zu == zt" is risky with double precision 114 114 115 115 U_blk = MAX( 0.5_wp , U_zu ) ! relative wind speed at zu (normally 10m), we don't want to fall under 0.5 m/s … … 143 143 t_zu = t_zt ; q_zu = q_zt 144 144 145 !! * Now starting iteration loop146 DO j_itt =1, nb_itt145 !! ITERATION BLOCK 146 DO j_itt = 1, nb_itt 147 147 ! 148 148 ztmp1 = t_zu - sst ! Updating air/sea differences … … 217 217 Ce = Cx_n10*ztmp2 / ztmp1 ! L&Y 2004 eq. (10c) 218 218 ENDIF 219 ! 220 END DO 221 ! 219 220 END DO !DO j_itt = 1, nb_itt 221 222 222 END SUBROUTINE turb_ncar 223 223 … … 265 265 !! Universal profile stability function for momentum 266 266 !! !! Psis, L&Y 2004 eq. (8c), (8d), (8e) 267 !! 268 !! pzet 0 : stability paramenter, z/L where z is altitude measurement267 !! 268 !! pzeta : stability paramenter, z/L where z is altitude measurement 269 269 !! and L is M-O length 270 270 !! 271 !! ** Author: L. Brodeau, june 2016 / AeroBulk (https://github.com/brodeau/aerobulk/)272 !!---------------------------------------------------------------------------------- 273 REAL(wp), DIMENSION(jpi,jpj) , INTENT(in) :: pzeta274 REAL(wp), DIMENSION(jpi,jpj) :: psi_m275 ! 276 INTEGER :: ji, jj 271 !! ** Author: L. Brodeau, June 2016 / AeroBulk (https://github.com/brodeau/aerobulk/) 272 !!---------------------------------------------------------------------------------- 273 REAL(wp), DIMENSION(jpi,jpj) :: psi_m 274 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: pzeta 275 ! 276 INTEGER :: ji, jj ! dummy loop indices 277 277 REAL(wp) :: zx2, zx, zstab ! local scalars 278 278 !!---------------------------------------------------------------------------------- 279 !280 279 DO jj = 1, jpj 281 280 DO ji = 1, jpi … … 291 290 END DO 292 291 END DO 293 !294 292 END FUNCTION psi_m 295 293 … … 300 298 !! !! Psis, L&Y 2004 eq. (8c), (8d), (8e) 301 299 !! 302 !! pzet 0 : stability paramenter, z/L where z is altitude measurement300 !! pzeta : stability paramenter, z/L where z is altitude measurement 303 301 !! and L is M-O length 304 302 !! 305 !! ** Author: L. Brodeau, june 2016 / AeroBulk (https://github.com/brodeau/aerobulk/) 306 !!---------------------------------------------------------------------------------- 303 !! ** Author: L. Brodeau, June 2016 / AeroBulk (https://github.com/brodeau/aerobulk/) 304 !!---------------------------------------------------------------------------------- 305 REAL(wp), DIMENSION(jpi,jpj) :: psi_h 307 306 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: pzeta 308 REAL(wp), DIMENSION(jpi,jpj) :: psi_h 309 ! 310 INTEGER :: ji, jj ! dummy loop indices 307 ! 308 INTEGER :: ji, jj ! dummy loop indices 311 309 REAL(wp) :: zx2, zstab ! local scalars 312 310 !!---------------------------------------------------------------------------------- … … 323 321 END DO 324 322 END DO 325 !326 323 END FUNCTION psi_h 327 324
Note: See TracChangeset
for help on using the changeset viewer.