Changeset 6225 for branches/2014/dev_r4704_NOC5_MPP_BDY_UPDATE/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_iso.F90
- Timestamp:
- 2016-01-08T10:35:19+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4704_NOC5_MPP_BDY_UPDATE/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_iso.F90
r4488 r6225 2 2 !!====================================================================== 3 3 !! *** MODULE dynldf_iso *** 4 !! Ocean dynamics: lateral viscosity trend4 !! Ocean dynamics: lateral viscosity trend (rotated laplacian operator) 5 5 !!====================================================================== 6 6 !! History : OPA ! 97-07 (G. Madec) Original code … … 8 8 !! - ! 2004-08 (C. Talandier) New trends organization 9 9 !! 2.0 ! 2005-11 (G. Madec) s-coordinate: horizontal diffusion 10 !! 3.7 ! 2014-01 (F. Lemarie, G. Madec) restructuration/simplification of ahm specification, 11 !! ! add velocity dependent coefficient and optional read in file 10 12 !!---------------------------------------------------------------------- 11 #if defined key_ldfslp || defined key_esopa 12 !!---------------------------------------------------------------------- 13 !! 'key_ldfslp' slopes of the direction of mixing 13 14 14 !!---------------------------------------------------------------------- 15 15 !! dyn_ldf_iso : update the momentum trend with the horizontal part … … 19 19 USE oce ! ocean dynamics and tracers 20 20 USE dom_oce ! ocean space and time domain 21 USE ldfdyn _oce ! ocean dynamics lateral physics22 USE ldftra _oce ! ocean tracer lateral physics21 USE ldfdyn ! lateral diffusion: eddy viscosity coef. 22 USE ldftra ! lateral physics: eddy diffusivity 23 23 USE zdf_oce ! ocean vertical physics 24 USE trdmod ! ocean dynamics trends25 USE trdmod_oce ! ocean variables trends26 24 USE ldfslp ! iso-neutral slopes 27 USE lbclnk ! ocean lateral boundary conditions (or mpp link)25 ! 28 26 USE in_out_manager ! I/O manager 29 27 USE lib_mpp ! MPP library 28 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 30 29 USE prtctl ! Print control 31 30 USE wrk_nemo ! Memory Allocation … … 42 41 43 42 !! * Substitutions 44 # include "domzgr_substitute.h90"45 # include "ldfdyn_substitute.h90"46 43 # include "vectopt_loop_substitute.h90" 47 44 !!---------------------------------------------------------------------- … … 84 81 !! horizontal fluxes associated with the rotated lateral mixing: 85 82 !! u-component: 86 !! ziut = ( ahmt + ahmb0) e2t * e3t / e1t di[ ub ]87 !! - ahmte2t * mi-1(uslp) dk[ mi(mk(ub)) ]88 !! zjuf = ( ahmf + ahmb0) e1f * e3f / e2f dj[ ub ]89 !! - ahmfe1f * mi(vslp) dk[ mj(mk(ub)) ]83 !! ziut = ( ahmt + rn_ahm_b ) e2t * e3t / e1t di[ ub ] 84 !! - ahmt e2t * mi-1(uslp) dk[ mi(mk(ub)) ] 85 !! zjuf = ( ahmf + rn_ahm_b ) e1f * e3f / e2f dj[ ub ] 86 !! - ahmf e1f * mi(vslp) dk[ mj(mk(ub)) ] 90 87 !! v-component: 91 !! zivf = ( ahmf + ahmb0) e2t * e3t / e1t di[ vb ]92 !! - ahmfe2t * mj(uslp) dk[ mi(mk(vb)) ]93 !! zjvt = ( ahmt + ahmb0) e1f * e3f / e2f dj[ ub ]94 !! - ahmte1f * mj-1(vslp) dk[ mj(mk(vb)) ]88 !! zivf = ( ahmf + rn_ahm_b ) e2t * e3t / e1t di[ vb ] 89 !! - ahmf e2t * mj(uslp) dk[ mi(mk(vb)) ] 90 !! zjvt = ( ahmt + rn_ahm_b ) e1f * e3f / e2f dj[ ub ] 91 !! - ahmt e1f * mj-1(vslp) dk[ mj(mk(vb)) ] 95 92 !! take the horizontal divergence of the fluxes: 96 93 !! diffu = 1/(e1u*e2u*e3u) { di [ ziut ] + dj-1[ zjuf ] } … … 107 104 !! of the rotated operator in dynzdf module 108 105 !!---------------------------------------------------------------------- 109 !110 106 INTEGER, INTENT( in ) :: kt ! ocean time-step index 111 107 ! 112 108 INTEGER :: ji, jj, jk ! dummy loop indices 113 109 REAL(wp) :: zabe1, zabe2, zcof1, zcof2 ! local scalars 114 REAL(wp) :: zmskt, zmskf , zbu, zbv, zuah, zvah! - -110 REAL(wp) :: zmskt, zmskf ! - - 115 111 REAL(wp) :: zcoef0, zcoef3, zcoef4, zmkt, zmkf ! - - 116 112 REAL(wp) :: zuav, zvav, zuwslpi, zuwslpj, zvwslpi, zvwslpj ! - - … … 131 127 ENDIF 132 128 133 ! s-coordinate: Iso-level diffusion on tracer, but geopotential level diffusion on momentum 129 !!gm bug is dyn_ldf_iso called before tra_ldf_iso .... <<<<<===== TO BE CHECKED 130 ! s-coordinate: Iso-level diffusion on momentum but not on tracer 134 131 IF( ln_dynldf_hor .AND. ln_traldf_iso ) THEN 135 132 ! … … 137 134 DO jj = 2, jpjm1 138 135 DO ji = 2, jpim1 139 uslp (ji,jj,jk) = - 1./e1u(ji,jj) * ( fsdept_b(ji+1,jj,jk) - fsdept_b(ji ,jj ,jk)) * umask(ji,jj,jk)140 vslp (ji,jj,jk) = - 1./e2v(ji,jj) * ( fsdept_b(ji,jj+1,jk) - fsdept_b(ji ,jj ,jk)) * vmask(ji,jj,jk)141 wslpi(ji,jj,jk) = - 1./e1t(ji,jj) * ( fsdepw_b(ji+1,jj,jk) - fsdepw_b(ji-1,jj,jk)) * tmask(ji,jj,jk) * 0.5142 wslpj(ji,jj,jk) = - 1./e2t(ji,jj) * ( fsdepw_b(ji,jj+1,jk) - fsdepw_b(ji,jj-1,jk)) * tmask(ji,jj,jk) * 0.5136 uslp (ji,jj,jk) = - ( gdept_b(ji+1,jj,jk) - gdept_b(ji ,jj ,jk) ) * r1_e1u(ji,jj) * umask(ji,jj,jk) 137 vslp (ji,jj,jk) = - ( gdept_b(ji,jj+1,jk) - gdept_b(ji ,jj ,jk) ) * r1_e2v(ji,jj) * vmask(ji,jj,jk) 138 wslpi(ji,jj,jk) = - ( gdepw_b(ji+1,jj,jk) - gdepw_b(ji-1,jj,jk) ) * r1_e1t(ji,jj) * tmask(ji,jj,jk) * 0.5 139 wslpj(ji,jj,jk) = - ( gdepw_b(ji,jj+1,jk) - gdepw_b(ji,jj-1,jk) ) * r1_e2t(ji,jj) * tmask(ji,jj,jk) * 0.5 143 140 END DO 144 141 END DO … … 185 182 DO jj = 2, jpjm1 186 183 DO ji = fs_2, jpi ! vector opt. 187 zabe1 = ( fsahmt(ji,jj,jk)+ahmb0) * e2t(ji,jj) * MIN( fse3u(ji,jj,jk), fse3u(ji-1,jj,jk) ) /e1t(ji,jj)188 189 zmskt = 1. /MAX( umask(ji-1,jj,jk )+umask(ji,jj,jk+1)&190 & + umask(ji-1,jj,jk+1)+umask(ji,jj,jk ), 1.)191 192 zcof1 = - aht0 * e2t(ji,jj) * zmskt * 0.5 * ( uslp(ji-1,jj,jk) + uslp(ji,jj,jk) )184 zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e2t(ji,jj) * MIN( e3u_n(ji,jj,jk), e3u_n(ji-1,jj,jk) ) * r1_e1t(ji,jj) 185 186 zmskt = 1._wp / MAX( umask(ji-1,jj,jk )+umask(ji,jj,jk+1) & 187 & + umask(ji-1,jj,jk+1)+umask(ji,jj,jk ) , 1._wp ) 188 189 zcof1 = - rn_aht_0 * e2t(ji,jj) * zmskt * 0.5 * ( uslp(ji-1,jj,jk) + uslp(ji,jj,jk) ) 193 190 191 ziut(ji,jj) = ( zabe1 * ( ub(ji,jj,jk) - ub(ji-1,jj,jk) ) & 192 & + zcof1 * ( zdku (ji,jj) + zdk1u(ji-1,jj) & 193 & +zdk1u(ji,jj) + zdku (ji-1,jj) ) ) * tmask(ji,jj,jk) 194 END DO 195 END DO 196 ELSE ! other coordinate system (zco or sco) : e3t 197 DO jj = 2, jpjm1 198 DO ji = fs_2, jpi ! vector opt. 199 zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e2t(ji,jj) * e3t_n(ji,jj,jk) * r1_e1t(ji,jj) 200 201 zmskt = 1._wp / MAX( umask(ji-1,jj,jk ) + umask(ji,jj,jk+1) & 202 & + umask(ji-1,jj,jk+1) + umask(ji,jj,jk ) , 1._wp ) 203 204 zcof1 = - rn_aht_0 * e2t(ji,jj) * zmskt * 0.5 * ( uslp(ji-1,jj,jk) + uslp(ji,jj,jk) ) 205 194 206 ziut(ji,jj) = ( zabe1 * ( ub(ji,jj,jk) - ub(ji-1,jj,jk) ) & 195 207 & + zcof1 * ( zdku (ji,jj) + zdk1u(ji-1,jj) & … … 197 209 END DO 198 210 END DO 199 ELSE ! other coordinate system (zco or sco) : e3t200 DO jj = 2, jpjm1201 DO ji = fs_2, jpi ! vector opt.202 zabe1 = (fsahmt(ji,jj,jk)+ahmb0) * e2t(ji,jj) * fse3t(ji,jj,jk) / e1t(ji,jj)203 204 zmskt = 1./MAX( umask(ji-1,jj,jk )+umask(ji,jj,jk+1) &205 & + umask(ji-1,jj,jk+1)+umask(ji,jj,jk ), 1. )206 207 zcof1 = - aht0 * e2t(ji,jj) * zmskt * 0.5 * ( uslp(ji-1,jj,jk) + uslp(ji,jj,jk) )208 209 ziut(ji,jj) = ( zabe1 * ( ub(ji,jj,jk) - ub(ji-1,jj,jk) ) &210 & + zcof1 * ( zdku (ji,jj) + zdk1u(ji-1,jj) &211 & +zdk1u(ji,jj) + zdku (ji-1,jj) ) ) * tmask(ji,jj,jk)212 END DO213 END DO214 211 ENDIF 215 212 … … 217 214 DO jj = 1, jpjm1 218 215 DO ji = 1, fs_jpim1 ! vector opt. 219 zabe2 = ( fsahmf(ji,jj,jk) + ahmb0 ) * e1f(ji,jj) * fse3f(ji,jj,jk) /e2f(ji,jj)220 221 zmskf = 1. /MAX( umask(ji,jj+1,jk )+umask(ji,jj,jk+1)&222 & + umask(ji,jj+1,jk+1)+umask(ji,jj,jk ), 1.)223 224 zcof2 = - aht0 * e1f(ji,jj) * zmskf * 0.5 * ( vslp(ji+1,jj,jk) + vslp(ji,jj,jk) )216 zabe2 = ( ahmf(ji,jj,jk) + rn_ahm_b ) * e1f(ji,jj) * e3f_n(ji,jj,jk) * r1_e2f(ji,jj) 217 218 zmskf = 1._wp / MAX( umask(ji,jj+1,jk )+umask(ji,jj,jk+1) & 219 & + umask(ji,jj+1,jk+1)+umask(ji,jj,jk ) , 1._wp ) 220 221 zcof2 = - rn_aht_0 * e1f(ji,jj) * zmskf * 0.5 * ( vslp(ji+1,jj,jk) + vslp(ji,jj,jk) ) 225 222 226 223 zjuf(ji,jj) = ( zabe2 * ( ub(ji,jj+1,jk) - ub(ji,jj,jk) ) & … … 238 235 DO jj = 2, jpjm1 239 236 DO ji = 1, fs_jpim1 ! vector opt. 240 zabe1 = ( fsahmf(ji,jj,jk) + ahmb0 ) * e2f(ji,jj) * fse3f(ji,jj,jk) /e1f(ji,jj)241 242 zmskf = 1. /MAX( vmask(ji+1,jj,jk )+vmask(ji,jj,jk+1)&243 & + vmask(ji+1,jj,jk+1)+vmask(ji,jj,jk ), 1.)244 245 zcof1 = - aht0 * e2f(ji,jj) * zmskf * 0.5 * ( uslp(ji,jj+1,jk) + uslp(ji,jj,jk) )246 247 zivf(ji,jj) = ( zabe1 * ( vb(ji+1,jj,jk) - vb(ji,jj,jk) ) &248 & + zcof1 * ( zdkv (ji,jj) + zdk1v(ji+1,jj)&249 & + zdk1v(ji,jj) + zdkv (ji+1,jj) ) ) * fmask(ji,jj,jk)237 zabe1 = ( ahmf(ji,jj,jk) + rn_ahm_b ) * e2f(ji,jj) * e3f_n(ji,jj,jk) * r1_e1f(ji,jj) 238 239 zmskf = 1._wp / MAX( vmask(ji+1,jj,jk )+vmask(ji,jj,jk+1) & 240 & + vmask(ji+1,jj,jk+1)+vmask(ji,jj,jk ) , 1._wp ) 241 242 zcof1 = - rn_aht_0 * e2f(ji,jj) * zmskf * 0.5 * ( uslp(ji,jj+1,jk) + uslp(ji,jj,jk) ) 243 244 zivf(ji,jj) = ( zabe1 * ( vb(ji+1,jj,jk) - vb(ji,jj,jk) ) & 245 & + zcof1 * ( zdkv (ji,jj) + zdk1v(ji+1,jj) & 246 & + zdk1v(ji,jj) + zdkv (ji+1,jj) ) ) * fmask(ji,jj,jk) 250 247 END DO 251 248 END DO … … 255 252 DO jj = 2, jpj 256 253 DO ji = 1, fs_jpim1 ! vector opt. 257 zabe2 = (fsahmt(ji,jj,jk)+ahmb0) * e1t(ji,jj) * MIN( fse3v(ji,jj,jk), fse3v(ji,jj-1,jk) ) / e2t(ji,jj) 254 zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e1t(ji,jj) * MIN( e3v_n(ji,jj,jk), e3v_n(ji,jj-1,jk) ) * r1_e2t(ji,jj) 255 256 zmskt = 1._wp / MAX( vmask(ji,jj-1,jk )+vmask(ji,jj,jk+1) & 257 & + vmask(ji,jj-1,jk+1)+vmask(ji,jj,jk ) , 1._wp ) 258 259 zcof2 = - rn_aht_0 * e1t(ji,jj) * zmskt * 0.5 * ( vslp(ji,jj-1,jk) + vslp(ji,jj,jk) ) 260 261 zjvt(ji,jj) = ( zabe2 * ( vb(ji,jj,jk) - vb(ji,jj-1,jk) ) & 262 & + zcof2 * ( zdkv (ji,jj-1) + zdk1v(ji,jj) & 263 & +zdk1v(ji,jj-1) + zdkv (ji,jj) ) ) * tmask(ji,jj,jk) 264 END DO 265 END DO 266 ELSE ! other coordinate system (zco or sco) : e3t 267 DO jj = 2, jpj 268 DO ji = 1, fs_jpim1 ! vector opt. 269 zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e1t(ji,jj) * e3t_n(ji,jj,jk) * r1_e2t(ji,jj) 258 270 259 271 zmskt = 1./MAX( vmask(ji,jj-1,jk )+vmask(ji,jj,jk+1) & 260 272 & + vmask(ji,jj-1,jk+1)+vmask(ji,jj,jk ), 1. ) 261 273 262 zcof2 = - aht0 * e1t(ji,jj) * zmskt * 0.5 * ( vslp(ji,jj-1,jk) + vslp(ji,jj,jk) )274 zcof2 = - rn_aht_0 * e1t(ji,jj) * zmskt * 0.5 * ( vslp(ji,jj-1,jk) + vslp(ji,jj,jk) ) 263 275 264 276 zjvt(ji,jj) = ( zabe2 * ( vb(ji,jj,jk) - vb(ji,jj-1,jk) ) & … … 267 279 END DO 268 280 END DO 269 ELSE ! other coordinate system (zco or sco) : e3t270 DO jj = 2, jpj271 DO ji = 1, fs_jpim1 ! vector opt.272 zabe2 = (fsahmt(ji,jj,jk)+ahmb0) * e1t(ji,jj) * fse3t(ji,jj,jk) / e2t(ji,jj)273 274 zmskt = 1./MAX( vmask(ji,jj-1,jk )+vmask(ji,jj,jk+1) &275 & + vmask(ji,jj-1,jk+1)+vmask(ji,jj,jk ), 1. )276 277 zcof2 = - aht0 * e1t(ji,jj) * zmskt * 0.5 * ( vslp(ji,jj-1,jk) + vslp(ji,jj,jk) )278 279 zjvt(ji,jj) = ( zabe2 * ( vb(ji,jj,jk) - vb(ji,jj-1,jk) ) &280 & + zcof2 * ( zdkv (ji,jj-1) + zdk1v(ji,jj) &281 & +zdk1v(ji,jj-1) + zdkv (ji,jj) ) ) * tmask(ji,jj,jk)282 END DO283 END DO284 281 ENDIF 285 282 … … 287 284 ! Second derivative (divergence) and add to the general trend 288 285 ! ----------------------------------------------------------- 289 290 286 DO jj = 2, jpjm1 291 DO ji = 2, jpim1 !! Question vectop possible??? !!bug 292 ! volume elements 293 zbu = e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) 294 zbv = e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) 295 ! horizontal component of isopycnal momentum diffusive trends 296 zuah =( ziut (ji+1,jj) - ziut (ji,jj ) + & 297 & zjuf (ji ,jj) - zjuf (ji,jj-1) ) / zbu 298 zvah =( zivf (ji,jj ) - zivf (ji-1,jj) + & 299 & zjvt (ji,jj+1) - zjvt (ji,jj ) ) / zbv 300 ! add the trends to the general trends 301 ua (ji,jj,jk) = ua (ji,jj,jk) + zuah 302 va (ji,jj,jk) = va (ji,jj,jk) + zvah 287 DO ji = 2, jpim1 !!gm Question vectop possible??? !!bug 288 ua(ji,jj,jk) = ua(ji,jj,jk) + ( ziut(ji+1,jj) - ziut(ji,jj ) & 289 & + zjuf(ji ,jj) - zjuf(ji,jj-1) ) * r1_e1e2u(ji,jj) / e3u_n(ji,jj,jk) 290 va(ji,jj,jk) = va(ji,jj,jk) + ( zivf(ji,jj ) - zivf(ji-1,jj) & 291 & + zjvt(ji,jj+1) - zjvt(ji,jj ) ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 303 292 END DO 304 293 END DO … … 359 348 DO jk = 2, jpkm1 360 349 DO ji = 2, jpim1 361 zcoef0= 0.5 * aht0 * umask(ji,jj,jk)362 350 zcoef0= 0.5 * rn_aht_0 * umask(ji,jj,jk) 351 ! 363 352 zuwslpi = zcoef0 * ( wslpi(ji+1,jj,jk) + wslpi(ji,jj,jk) ) 364 353 zuwslpj = zcoef0 * ( wslpj(ji+1,jj,jk) + wslpj(ji,jj,jk) ) 365 354 ! 366 355 zmkt = 1./MAX( tmask(ji,jj,jk-1)+tmask(ji+1,jj,jk-1) & 367 356 + tmask(ji,jj,jk )+tmask(ji+1,jj,jk ), 1. ) 368 zmkf = 1./MAX( fmask(ji,jj-1,jk-1) +fmask(ji,jj,jk-1) &369 + fmask(ji,jj-1,jk ) +fmask(ji,jj,jk ), 1. )357 zmkf = 1./MAX( fmask(ji,jj-1,jk-1) + fmask(ji,jj,jk-1) & 358 + fmask(ji,jj-1,jk ) + fmask(ji,jj,jk ), 1. ) 370 359 371 360 zcoef3 = - e2u(ji,jj) * zmkt * zuwslpi … … 377 366 +zdj1u(ji,jk ) + zdju (ji ,jk ) ) 378 367 ! update avmu (add isopycnal vertical coefficient to avmu) 379 ! Caution: zcoef0 include aht0, so divided by aht0 to obtain slp^2 * aht0380 avmu(ji,jj,jk) = avmu(ji,jj,jk) + ( zuwslpi * zuwslpi + zuwslpj * zuwslpj ) / aht0368 ! Caution: zcoef0 include rn_aht_0, so divided by rn_aht_0 to obtain slp^2 * rn_aht_0 369 avmu(ji,jj,jk) = avmu(ji,jj,jk) + ( zuwslpi * zuwslpi + zuwslpj * zuwslpj ) / rn_aht_0 381 370 END DO 382 371 END DO … … 385 374 DO jk = 2, jpkm1 386 375 DO ji = 2, jpim1 387 zcoef0 = 0.5 * aht0 * vmask(ji,jj,jk)376 zcoef0 = 0.5 * rn_aht_0 * vmask(ji,jj,jk) 388 377 389 378 zvwslpi = zcoef0 * ( wslpi(ji,jj+1,jk) + wslpi(ji,jj,jk) ) … … 399 388 ! vertical flux on v field 400 389 zfvw(ji,jk) = zcoef3 * ( zdiv (ji,jk-1) + zdiv (ji-1,jk-1) & 401 402 403 390 & +zdiv (ji,jk ) + zdiv (ji-1,jk ) ) & 391 & + zcoef4 * ( zdjv (ji,jk-1) + zdj1v(ji ,jk-1) & 392 & +zdjv (ji,jk ) + zdj1v(ji ,jk ) ) 404 393 ! update avmv (add isopycnal vertical coefficient to avmv) 405 ! Caution: zcoef0 include aht0, so divided by aht0 to obtain slp^2 * aht0406 avmv(ji,jj,jk) = avmv(ji,jj,jk) + ( zvwslpi * zvwslpi + zvwslpj * zvwslpj ) / aht0394 ! Caution: zcoef0 include rn_aht_0, so divided by rn_aht_0 to obtain slp^2 * rn_aht_0 395 avmv(ji,jj,jk) = avmv(ji,jj,jk) + ( zvwslpi * zvwslpi + zvwslpj * zvwslpj ) / rn_aht_0 407 396 END DO 408 397 END DO … … 413 402 DO jk = 1, jpkm1 414 403 DO ji = 2, jpim1 415 ! volume elements 416 zbu = e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) 417 zbv = e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) 418 ! part of the k-component of isopycnal momentum diffusive trends 419 zuav = ( zfuw(ji,jk) - zfuw(ji,jk+1) ) / zbu 420 zvav = ( zfvw(ji,jk) - zfvw(ji,jk+1) ) / zbv 421 ! add the trends to the general trends 422 ua(ji,jj,jk) = ua(ji,jj,jk) + zuav 423 va(ji,jj,jk) = va(ji,jj,jk) + zvav 404 ua(ji,jj,jk) = ua(ji,jj,jk) + ( zfuw(ji,jk) - zfuw(ji,jk+1) ) * r1_e1e2u(ji,jj) / e3u_n(ji,jj,jk) 405 va(ji,jj,jk) = va(ji,jj,jk) + ( zfvw(ji,jk) - zfvw(ji,jk+1) ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 424 406 END DO 425 407 END DO … … 433 415 END SUBROUTINE dyn_ldf_iso 434 416 435 # else436 !!----------------------------------------------------------------------437 !! Dummy module NO rotation of mixing tensor438 !!----------------------------------------------------------------------439 CONTAINS440 SUBROUTINE dyn_ldf_iso( kt ) ! Empty routine441 INTEGER, INTENT(in) :: kt442 WRITE(*,*) 'dyn_ldf_iso: You should not have seen this print! error?', kt443 END SUBROUTINE dyn_ldf_iso444 #endif445 446 417 !!====================================================================== 447 418 END MODULE dynldf_iso
Note: See TracChangeset
for help on using the changeset viewer.