Changeset 13497 for NEMO/trunk/src/OCE/ZDF/zdfiwm.F90
- Timestamp:
- 2020-09-21T14:37:46+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/ZDF/zdfiwm.F90
r13417 r13497 164 164 ! !* Critical slope mixing: distribute energy over the time-varying ocean depth, 165 165 ! using an exponential decay from the seafloor. 166 DO_2D( 0, 0, 0, 0 ) 166 DO_2D( 0, 0, 0, 0 ) ! part independent of the level 167 167 zhdep(ji,jj) = gdepw_0(ji,jj,mbkt(ji,jj)+1) ! depth of the ocean 168 168 zfact(ji,jj) = rho0 * ( 1._wp - EXP( -zhdep(ji,jj) / hcri_iwm(ji,jj) ) ) … … 170 170 END_2D 171 171 !!gm gde3w ==>>> check for ssh taken into account.... seem OK gde3w_n=gdept(:,:,:,Kmm) - ssh(:,:,Kmm) 172 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 172 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) ! complete with the level-dependent part 173 173 IF ( zfact(ji,jj) == 0._wp .OR. wmask(ji,jj,jk) == 0._wp ) THEN ! optimization 174 174 zemx_iwm(ji,jj,jk) = 0._wp … … 293 293 END_3D 294 294 ! 295 IF( ln_mevar ) THEN ! Variable mixing efficiency case : modify zav_wave in the296 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 295 IF( ln_mevar ) THEN ! Variable mixing efficiency case : modify zav_wave in the 296 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) ! energetic (Reb > 480) and buoyancy-controlled (Reb <10.224 ) regimes 297 297 IF( zReb(ji,jj,jk) > 480.00_wp ) THEN 298 298 zav_wave(ji,jj,jk) = 3.6515_wp * znu_w(ji,jj,jk) * SQRT( zReb(ji,jj,jk) ) … … 303 303 ENDIF 304 304 ! 305 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 305 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) ! Bound diffusivity by molecular value and 100 cm2/s 306 306 zav_wave(ji,jj,jk) = MIN( MAX( 1.4e-7_wp, zav_wave(ji,jj,jk) ), 1.e-2_wp ) * wmask(ji,jj,jk) 307 307 END_3D … … 330 330 ! ! ----------------------- ! 331 331 ! 332 IF( ln_tsdiff ) THEN !* Option for differential mixing of salinity and temperature332 IF( ln_tsdiff ) THEN !* Option for differential mixing of salinity and temperature 333 333 ztmp1 = 0.505_wp + 0.495_wp * TANH( 0.92_wp * ( LOG10( 1.e-20_wp ) - 0.60_wp ) ) 334 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 334 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) ! Calculate S/T diffusivity ratio as a function of Reb 335 335 ztmp2 = zReb(ji,jj,jk) * 5._wp * r1_6 336 336 IF ( ztmp2 > 1.e-20_wp .AND. wmask(ji,jj,jk) == 1._wp ) THEN … … 347 347 END_3D 348 348 ! 349 ELSE !* update momentum & tracer diffusivity with wave-driven mixing349 ELSE !* update momentum & tracer diffusivity with wave-driven mixing 350 350 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 351 351 p_avs(ji,jj,jk) = p_avs(ji,jj,jk) + zav_wave(ji,jj,jk) … … 355 355 ENDIF 356 356 357 ! !* output internal wave-driven mixing coefficient357 ! !* output internal wave-driven mixing coefficient 358 358 CALL iom_put( "av_wave", zav_wave ) 359 !* output useful diagnostics: Kz*N^2 ,359 !* output useful diagnostics: Kz*N^2 , 360 360 !!gm Kz*N2 should take into account the ratio avs/avt if it is used.... (see diaar5) 361 ! vertical integral of rho0 * Kz * N^2 , energy density (zemx_iwm)361 ! vertical integral of rho0 * Kz * N^2 , energy density (zemx_iwm) 362 362 IF( iom_use("bflx_iwm") .OR. iom_use("pcmap_iwm") ) THEN 363 363 ALLOCATE( z2d(jpi,jpj) , z3d(jpi,jpj,jpk) )
Note: See TracChangeset
for help on using the changeset viewer.