- Timestamp:
- 2018-04-23T10:44:07+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90
r9250 r9490 19 19 USE zdfdrg ! vertical physics: top/bottom drag coef. 20 20 USE dynadv ,ONLY: ln_dynadv_vec ! dynamics: advection form 21 USE dynldf ,ONLY: nldf, np_lap_i ! dynamics: type of lateral mixing22 21 USE dynldf_iso,ONLY: akzu, akzv ! dynamics: vertical component of rotated lateral mixing 23 USE ldfdyn ! lateral diffusion: eddy viscosity coef. 22 USE ldfdyn ! lateral diffusion: eddy viscosity coef. and type of operator 24 23 USE trd_oce ! trends: ocean variables 25 24 USE trddyn ! trend manager: dynamics … … 156 155 ! !* Matrix construction 157 156 zdt = r2dt * 0.5 158 IF( nldf == np_lap_i ) THEN ! rotated lateral mixing: add its vertical mixing (akzu) 157 SELECT CASE( nldf_dyn ) 158 CASE( np_lap_i ) ! rotated lateral mixing: add its vertical mixing (akzu) 159 159 DO jk = 1, jpkm1 160 160 DO jj = 2, jpjm1 … … 171 171 END DO 172 172 END DO 173 ELSE ! standard case173 CASE DEFAULT ! iso-level lateral mixing 174 174 DO jk = 1, jpkm1 175 175 DO jj = 2, jpjm1 … … 184 184 END DO 185 185 END DO 186 END IF186 END SELECT 187 187 ! 188 188 DO jj = 2, jpjm1 !* Surface boundary conditions … … 274 274 ! !* Matrix construction 275 275 zdt = r2dt * 0.5 276 IF( nldf == np_lap_i ) THEN ! rotated lateral mixing: add its vertical mixing (akzu) 276 SELECT CASE( nldf_dyn ) 277 CASE( np_lap_i ) ! rotated lateral mixing: add its vertical mixing (akzu) 277 278 DO jk = 1, jpkm1 278 279 DO jj = 2, jpjm1 279 280 DO ji = fs_2, fs_jpim1 ! vector opt. 280 281 ze3va = ( 1._wp - r_vvl ) * e3v_n(ji,jj,jk) + r_vvl * e3v_a(ji,jj,jk) ! after scale factor at T-point 281 zzwi = - zdt * ( avm(ji,jj+1,jk ) + avm(ji,jj,jk ) + akzv(ji,jj,jk ) ) &282 zzwi = - zdt * ( avm(ji,jj+1,jk ) + avm(ji,jj,jk ) + akzv(ji,jj,jk ) ) & 282 283 & / ( ze3va * e3vw_n(ji,jj,jk ) ) * wvmask(ji,jj,jk ) 283 zzws = - zdt * ( avm(ji,jj+1,jk+1) + avm(ji,jj,jk+1) + akzv(ji,jj,jk+1) ) &284 zzws = - zdt * ( avm(ji,jj+1,jk+1) + avm(ji,jj,jk+1) + akzv(ji,jj,jk+1) ) & 284 285 & / ( ze3va * e3vw_n(ji,jj,jk+1) ) * wvmask(ji,jj,jk+1) 285 286 zwi(ji,jj,jk) = zzwi * wvmask(ji,jj,jk ) … … 289 290 END DO 290 291 END DO 291 ELSE ! standard case292 CASE DEFAULT ! iso-level lateral mixing 292 293 DO jk = 1, jpkm1 293 294 DO jj = 2, jpjm1 294 295 DO ji = fs_2, fs_jpim1 ! vector opt. 295 296 ze3va = ( 1._wp - r_vvl ) * e3v_n(ji,jj,jk) + r_vvl * e3v_a(ji,jj,jk) ! after scale factor at T-point 296 zzwi = - zdt * ( avm(ji,jj+1,jk ) + avm(ji,jj,jk ) ) / ( ze3va * e3vw_n(ji,jj,jk ) ) * wvmask(ji,jj,jk )297 zzws = - zdt * ( avm(ji,jj+1,jk+1) + avm(ji,jj,jk+1) ) / ( ze3va * e3vw_n(ji,jj,jk+1) ) * wvmask(ji,jj,jk+1)297 zzwi = - zdt * ( avm(ji,jj+1,jk ) + avm(ji,jj,jk ) ) / ( ze3va * e3vw_n(ji,jj,jk ) ) * wvmask(ji,jj,jk ) 298 zzws = - zdt * ( avm(ji,jj+1,jk+1) + avm(ji,jj,jk+1) ) / ( ze3va * e3vw_n(ji,jj,jk+1) ) * wvmask(ji,jj,jk+1) 298 299 zwi(ji,jj,jk) = zzwi * wvmask(ji,jj,jk ) 299 300 zws(ji,jj,jk) = zzws * wvmask(ji,jj,jk+1) … … 302 303 END DO 303 304 END DO 304 END IF305 END SELECT 305 306 ! 306 307 DO jj = 2, jpjm1 !* Surface boundary conditions
Note: See TracChangeset
for help on using the changeset viewer.