Changeset 15088 for NEMO/trunk/src/OCE/ICB/icbdyn.F90
- Timestamp:
- 2021-07-06T15:03:34+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/ICB/icbdyn.F90
r14400 r15088 192 192 ld_bounced = .FALSE. 193 193 ! 194 ii0 = INT( pi0+0.5 ) ; ij0 = INT( pj0+0.5 )! initial gridpoint position (T-cell)195 ii = INT( pi +0.5 ) ; ij = INT( pj +0.5 )! current - -194 ii0 = INT( pi0+0.5 ) + (nn_hls-1) ; ij0 = INT( pj0+0.5 ) + (nn_hls-1) ! initial gridpoint position (T-cell) 195 ii = INT( pi +0.5 ) + (nn_hls-1) ; ij = INT( pj +0.5 ) + (nn_hls-1) ! current - - 196 196 ! 197 197 IF( ii == ii0 .AND. ij == ij0 ) RETURN ! berg remains in the same cell … … 314 314 zwmod = zuwave*zuwave + zvwave*zvwave ! The wave amplitude and length depend on the current; 315 315 ! ! wind speed relative to the ocean. Actually wmod is wmod**2 here. 316 zampl = 0.5 * 0.02025 * zwmod! This is "a", the wave amplitude317 zLwavelength = 0.32 * zwmod! Surface wave length fitted to data in table at316 zampl = 0.5_wp * 0.02025_wp * zwmod ! This is "a", the wave amplitude 317 zLwavelength = 0.32_wp * zwmod ! Surface wave length fitted to data in table at 318 318 ! ! http://www4.ncsu.edu/eos/users/c/ceknowle/public/chapter10/part2.html 319 zLcutoff = 0.125 * zLwavelength320 zLtop = 0.25 * zLwavelength321 zCr = pp_Cr0 * MIN( MAX( 0. , (zL-zLcutoff) / ((zLtop-zLcutoff)+1.e-30)) , 1.) ! Wave radiation coefficient319 zLcutoff = 0.125_wp * zLwavelength 320 zLtop = 0.25_wp * zLwavelength 321 zCr = pp_Cr0 * MIN( MAX( 0._wp, (zL-zLcutoff) / ((zLtop-zLcutoff)+1.e-30)) , 1._wp) ! Wave radiation coefficient 322 322 ! ! fitted to graph from Carrieres et al., POAC Drift Model. 323 zwave_rad = 0.5 * pp_rho_seawater / zM * zCr * grav * zampl * MIN( zampl,zF ) * (2.*zW*zL) / (zW+zL)323 zwave_rad = 0.5_wp * pp_rho_seawater / zM * zCr * grav * zampl * MIN( zampl,zF ) * (2._wp*zW*zL) / (zW+zL) 324 324 zwmod = SQRT( zua*zua + zva*zva ) ! Wind speed 325 325 IF( zwmod /= 0._wp ) THEN … … 327 327 zvwave = zva/zwmod 328 328 ELSE 329 zuwave = 0. ; zvwave=0. ; zwave_rad=0.! ... and only when wind is present. !!gm wave_rad=0. is useless329 zuwave = 0._wp ; zvwave=0._wp ; zwave_rad=0._wp ! ... and only when wind is present. !!gm wave_rad=0. is useless 330 330 ENDIF 331 331 332 332 ! Weighted drag coefficients 333 z_ocn = pp_rho_seawater / zM * (0.5 *pp_Cd_wv*zW*(zD_hi)+pp_Cd_wh*zW*zL)334 z_atm = pp_rho_air / zM * (0.5 *pp_Cd_av*zW*zF +pp_Cd_ah*zW*zL)335 z_ice = pp_rho_ice / zM * (0.5 *pp_Cd_iv*zW*zhi )333 z_ocn = pp_rho_seawater / zM * (0.5_wp*pp_Cd_wv*zW*(zD_hi)+pp_Cd_wh*zW*zL) 334 z_atm = pp_rho_air / zM * (0.5_wp*pp_Cd_av*zW*zF +pp_Cd_ah*zW*zL) 335 z_ice = pp_rho_ice / zM * (0.5_wp*pp_Cd_iv*zW*zhi ) 336 336 IF( abs(zui) + abs(zvi) == 0._wp ) z_ice = 0._wp 337 337 … … 358 358 DO itloop = 1, 2 ! Iterate on drag coefficients 359 359 ! 360 zus = 0.5 * ( zuveln + puvel )361 zvs = 0.5 * ( zvveln + pvvel )360 zus = 0.5_wp * ( zuveln + puvel ) 361 zvs = 0.5_wp * ( zvveln + pvvel ) 362 362 zdrag_ocn = z_ocn * SQRT( (zus-zuo)*(zus-zuo) + (zvs-zvo)*(zvs-zvo) ) 363 363 zdrag_atm = z_atm * SQRT( (zus-zua)*(zus-zua) + (zvs-zva)*(zvs-zva) )
Note: See TracChangeset
for help on using the changeset viewer.