- Timestamp:
- 2018-08-03T10:18:16+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/ZDF/zdfosm.F90
r9939 r10030 247 247 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zviscos ! viscosity 248 248 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdiffut ! t-diffusivity 249 250 REAL(wp) :: ze3uw_BN, ze3vw_BN ! use for e3uw, e3vw computation 251 REAL(wp), DIMENSION(jpi,jpj) :: zsshu_hB, zsshv_hB ! at Before and Now time-step 252 REAL(wp), DIMENSION(jpi,jpj) :: zsshu_hN, zsshv_hN 249 253 250 254 ! For debugging … … 1235 1239 1236 1240 ! KPP-style Ri# mixing 1237 IF( ln_kpprimix) THEN 1238 DO jk = 2, jpkm1 !* Shear production at uw- and vw-points (energy conserving form) 1239 DO jj = 1, jpjm1 1240 DO ji = 1, jpim1 ! vector opt. 1241 z3du(ji,jj,jk) = 0.5 * ( un(ji,jj,jk-1) - un(ji ,jj,jk) ) & 1242 & * ( ub(ji,jj,jk-1) - ub(ji ,jj,jk) ) * wumask(ji,jj,jk) & 1243 & / ( e3uw_n(ji,jj,jk) * e3uw_b(ji,jj,jk) ) 1244 z3dv(ji,jj,jk) = 0.5 * ( vn(ji,jj,jk-1) - vn(ji,jj ,jk) ) & 1245 & * ( vb(ji,jj,jk-1) - vb(ji,jj ,jk) ) * wvmask(ji,jj,jk) & 1246 & / ( e3vw_n(ji,jj,jk) * e3vw_b(ji,jj,jk) ) 1241 IF( ln_kpprimix) THEN 1242 ! 1243 IF( ln_linssh ) THEN !== linear ssh case ==! 1244 DO jk = 2, jpkm1 !* Shear production at uw- and vw-points (energy conserving form) 1245 DO jj = 1, jpjm1 1246 DO ji = 1, jpim1 ! vector opt. 1247 ze3uw_BN = e3uw_0(ji,jj,jk) * e3uw_0(ji,jj,jk) 1248 ze3vw_BN = e3vw_0(ji,jj,jk) * e3vw_0(ji,jj,jk) 1249 z3du(ji,jj,jk) = 0.5 * ( un(ji,jj,jk-1) - un(ji,jj,jk) ) & 1250 & * ( ub(ji,jj,jk-1) - ub(ji,jj,jk) ) / ze3uw_BN * wumask(ji,jj,jk) 1251 z3dv(ji,jj,jk) = 0.5 * ( vn(ji,jj,jk-1) - vn(ji,jj,jk) ) & 1252 & * ( vb(ji,jj,jk-1) - vb(ji,jj,jk) ) / ze3vw_BN * wvmask(ji,jj,jk) 1253 END DO 1247 1254 END DO 1248 END DO 1249 END DO 1250 ! 1255 END DO 1256 ELSE !== Non linear ssh case ==! 1257 DO jj = 1, jpjm1 1258 DO ji = 1, jpim1 1259 zsshu_hB(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nbb) + ssh(ji+1,jj ,Nbb) ) * r1_hu_0(ji,jj) * ssumask(ji,jj) 1260 zsshv_hB(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nbb) + ssh(ji ,jj+1,Nbb) ) * r1_hv_0(ji,jj) * ssvmask(ji,jj) 1261 zsshu_hN(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nnn) + ssh(ji+1,jj ,Nnn) ) * r1_hu_0(ji,jj) * ssumask(ji,jj) 1262 zsshv_hN(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nnn) + ssh(ji ,jj+1,Nnn) ) * r1_hv_0(ji,jj) * ssvmask(ji,jj) 1263 END DO 1264 END DO 1265 ! 1266 DO jk = 2, jpkm1 !* Shear production at uw- and vw-points (energy conserving form) 1267 DO jj = 1, jpjm1 1268 DO ji = 1, jpim1 ! vector opt. 1269 ze3uw_BN = e3uw_0(ji,jj,jk) * e3uw_0(ji,jj,jk) * ( 1._wp + zsshu_hB(ji,jj) * wumask(ji,jj,jk) ) & 1270 & * ( 1._wp + zsshu_hN(ji,jj) * wumask(ji,jj,jk) ) 1271 ze3vw_BN = e3vw_0(ji,jj,jk) * e3vw_0(ji,jj,jk) * ( 1._wp + zsshu_hB(ji,jj) * wvmask(ji,jj,jk) ) & 1272 & * ( 1._wp + zsshu_hN(ji,jj) * wvmask(ji,jj,jk) ) 1273 z3du(ji,jj,jk) = 0.5 * ( un(ji,jj,jk-1) - un(ji,jj,jk) ) & 1274 & * ( ub(ji,jj,jk-1) - ub(ji,jj,jk) ) / ze3uw_BN * wumask(ji,jj,jk) 1275 z3dv(ji,jj,jk) = 0.5 * ( vn(ji,jj,jk-1) - vn(ji,jj,jk) ) & 1276 & * ( vb(ji,jj,jk-1) - vb(ji,jj,jk) ) / ze3vw_BN * wvmask(ji,jj,jk) 1277 END DO 1278 END DO 1279 END DO 1280 ENDIF 1281 ! 1251 1282 DO jk = 2, jpkm1 1252 1283 DO jj = 2, jpjm1 … … 1262 1293 END DO 1263 1294 END DO 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1295 END DO 1296 ! 1297 DO jj = 2, jpjm1 1298 DO ji = 2, jpim1 1299 DO jk = ibld(ji,jj) + 1, jpkm1 1300 zdiffut(ji,jj,jk) = zrimix(ji,jj,jk)*rn_difri 1301 zviscos(ji,jj,jk) = zrimix(ji,jj,jk)*rn_difri 1302 END DO 1303 END DO 1304 END DO 1305 ! 1275 1306 END IF ! ln_kpprimix = .true. 1276 1307 … … 1708 1739 DO jj = 2, jpjm1 1709 1740 DO ji = 2, jpim1 1710 ua(ji,jj,jk) = ua(ji,jj,jk) & 1711 & - ( ghamu(ji,jj,jk ) & 1712 & - ghamu(ji,jj,jk+1) ) / e3u_n(ji,jj,jk) 1713 va(ji,jj,jk) = va(ji,jj,jk) & 1714 & - ( ghamv(ji,jj,jk ) & 1715 & - ghamv(ji,jj,jk+1) ) / e3v_n(ji,jj,jk) 1741 ua(ji,jj,jk) = ua(ji,jj,jk) - ( ghamu(ji,jj,jk) - ghamu(ji,jj,jk+1) ) / e3u_n(ji,jj,jk) 1742 va(ji,jj,jk) = va(ji,jj,jk) - ( ghamv(ji,jj,jk) - ghamv(ji,jj,jk+1) ) / e3v_n(ji,jj,jk) 1716 1743 END DO 1717 1744 END DO
Note: See TracChangeset
for help on using the changeset viewer.