- Timestamp:
- 2017-07-04T17:46:48+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/wrk_OMP_test_for_Silvia/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfiwm.F90
r8055 r8279 150 150 ! !* Critical slope mixing: distribute energy over the time-varying ocean depth, 151 151 ! using an exponential decay from the seafloor. 152 DO jj = k_Jstr, k_Jend153 DO ji = k_Istr, k_Iend! part independent of the level152 DO jj = tnldj, tnlej 153 DO ji = tnldi, tnlei ! part independent of the level 154 154 zhdep(ji,jj) = gdepw_0(ji,jj,mbkt(ji,jj)+1) ! depth of the ocean 155 155 zfact(ji,jj) = rau0 * ( 1._wp - EXP( -zhdep(ji,jj) / hcri_iwm(ji,jj) ) ) … … 158 158 END DO 159 159 DO jk = 2, jpkm1 ! complete with the level-dependent part 160 DO jj = k_Jstr, k_Jend161 DO ji = k_Istr, k_Iend160 DO jj = tnldj, tnlej 161 DO ji = tnldi, tnlei 162 162 emix_iwm(ji,jj,jk) = zfact(ji,jj) * wmask(ji,jj,jk) & 163 163 & * ( EXP( ( gde3w_n(ji,jj,jk ) - zhdep(ji,jj) ) / hcri_iwm(ji,jj) ) & … … 185 185 ! 186 186 WHERE( zfact(WRK_2D) /= 0 ) zfact(WRK_2D) = epyc_iwm(WRK_2D) / ( rau0 * zfact(WRK_2D) ) 187 ! DO jj = k_Jstr, k_Jend188 ! DO ji = k_Istr, k_Iend187 ! DO jj = tnldj, tnlej 188 ! DO ji = tnldi, tnlei 189 189 ! IF( zfact(ji,jj) /= 0 ) zfact(ji,jj) = epyc_iwm(ji,jj) / ( rau0 * zfact(ji,jj) ) 190 190 ! END DO … … 203 203 ! 204 204 WHERE( zfact(WRK_2D) /= 0 ) zfact(WRK_2D) = epyc_iwm(WRK_2D) / ( rau0 * zfact(WRK_2D) ) 205 ! DO jj = k_Jstr, k_Jend206 ! DO ji = k_Istr, k_Iend205 ! DO jj = tnldj, tnlej 206 ! DO ji = tnldi, tnlei 207 207 ! IF( zfact(ji,jj) /= 0 ) zfact(ji,jj) = epyc_iwm(ji,jj) / ( rau0 * zfact(ji,jj) ) 208 208 ! END DO … … 224 224 ! zfact(WRK_2D) = zfact(WRK_2D) + e3w_n(WRK_2D,jk) * SQRT( MAX( 0._wp, rn2(WRK_2D,jk) ) ) 225 225 ! zwkb (WRK_2D,jk) = zfact(WRK_2D) 226 DO jj = k_Jstr, k_Jend227 DO ji = k_Istr, k_Iend226 DO jj = tnldj, tnlej 227 DO ji = tnldi, tnlei 228 228 zztemp = zfact(ji,jj) + e3w_n(ji,jj,jk) * SQRT( MAX( 0._wp, rn2(ji,jj,jk) ) ) 229 229 zfact(ji,jj) = zztemp … … 234 234 ! 235 235 DO jk = 2, jpkm1 236 DO jj = k_Jstr, k_Jend237 DO ji = k_Istr, k_Iend236 DO jj = tnldj, tnlej 237 DO ji = tnldi, tnlei 238 238 IF( zfact(ji,jj) /= 0 ) zwkb(ji,jj,jk) = zhdep(ji,jj) * ( zfact(ji,jj) - zwkb(ji,jj,jk) ) & 239 239 & * wmask(ji,jj,jk) / zfact(ji,jj) … … 245 245 zweight(WRK_3D) = 0._wp 246 246 DO jk = 2, jpkm1 247 zweight(WRK_2D,jk) = MAX( 0._wp, rn2(WRK_2D,jk) ) * hbot_iwm( :,:)&247 zweight(WRK_2D,jk) = MAX( 0._wp, rn2(WRK_2D,jk) ) * hbot_iwm(WRK_2D) & 248 248 & * ( EXP( -zwkb(WRK_2D,jk ) / hbot_iwm(WRK_2D) ) & 249 249 & - EXP( -zwkb(WRK_2D,jk-1) / hbot_iwm(WRK_2D) ) ) … … 256 256 ! 257 257 WHERE( zfact(WRK_2D) /= 0 ) zfact(WRK_2D) = ebot_iwm(WRK_2D) / ( rau0 * zfact(WRK_2D) ) 258 ! DO jj = k_Jstr, k_Jend259 ! DO ji = k_Istr, k_Iend258 ! DO jj = tnldj, tnlej 259 ! DO ji = tnldi, tnlei 260 260 ! IF( zfact(ji,jj) /= 0 ) zfact(ji,jj) = ebot_iwm(ji,jj) / ( rau0 * zfact(ji,jj) ) 261 261 ! END DO … … 290 290 IF( ln_mevar ) THEN ! Variable mixing efficiency case : modify zav_wave in the 291 291 DO jk = 2, jpkm1 ! energetic (Reb > 480) and buoyancy-controlled (Reb <10.224 ) regimes 292 DO jj = k_Jstr, k_Jend293 DO ji = k_Istr, k_Iend292 DO jj = tnldj, tnlej 293 DO ji = tnldi, tnlei 294 294 IF( zReb(ji,jj,jk) > 480.00_wp ) THEN 295 295 zav_wave(ji,jj,jk) = 3.6515_wp * znu_w(ji,jj,jk) * SQRT( zReb(ji,jj,jk) ) … … 310 310 !!gm used of glosum 3D.... 311 311 DO jk = 2, jpkm1 312 DO jj = k_Jstr, k_Jend313 DO ji = k_Istr, k_Iend312 DO jj = tnldj, tnlej 313 DO ji = tnldi, tnlei 314 314 zztemp = zztemp + e3w_n(ji,jj,jk) * e1e2t(ji,jj) & 315 315 & * MAX( 0._wp, rn2(ji,jj,jk) ) * zav_wave(ji,jj,jk) * wmask(ji,jj,jk) * tmask_i(ji,jj) … … 317 317 END DO 318 318 END DO 319 IF( lk_mpp ) CALL mpp_sum( zztemp )319 ! IF( lk_mpp ) CALL mpp_sum( zztemp ) 320 320 zztemp = rau0 * zztemp ! Global integral of rauo * Kz * N^2 = power contributing to mixing 321 321 ! … … 335 335 IF( ln_tsdiff ) THEN !* Option for differential mixing of salinity and temperature 336 336 DO jk = 2, jpkm1 ! Calculate S/T diffusivity ratio as a function of Reb 337 DO jj = k_Jstr, k_Jend338 DO ji = k_Istr, k_Iend337 DO jj = tnldj, tnlej 338 DO ji = tnldi, tnlei 339 339 zav_ratio(ji,jj,jk) = ( 0.505_wp + 0.495_wp * & 340 340 & TANH( 0.92_wp * ( LOG10( MAX( 1.e-20_wp, zReb(ji,jj,jk) * 5._wp * r1_6 ) ) - 0.60_wp ) ) &
Note: See TracChangeset
for help on using the changeset viewer.