- Timestamp:
- 2015-10-31T08:40:45+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r5836 r5845 75 75 76 76 !! * Substitutions 77 # include "domzgr_substitute.h90"78 77 # include "vectopt_loop_substitute.h90" 79 78 !!---------------------------------------------------------------------- … … 284 283 285 284 IF( ln_sco ) THEN 286 zwz(:,:) = zwz(:,:) / fse3f(:,:,jk)287 zwx(:,:) = e2u(:,:) * fse3u(:,:,jk) * un(:,:,jk)288 zwy(:,:) = e1v(:,:) * fse3v(:,:,jk) * vn(:,:,jk)285 zwz(:,:) = zwz(:,:) / e3f_n(:,:,jk) 286 zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 287 zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 289 288 ELSE 290 289 zwx(:,:) = e2u(:,:) * un(:,:,jk) … … 404 403 ! 405 404 IF( ln_sco ) THEN !== horizontal fluxes ==! 406 zwz(:,:) = zwz(:,:) / fse3f(:,:,jk)407 zwx(:,:) = e2u(:,:) * fse3u(:,:,jk) * un(:,:,jk)408 zwy(:,:) = e1v(:,:) * fse3v(:,:,jk) * vn(:,:,jk)405 zwz(:,:) = zwz(:,:) / e3f_n(:,:,jk) 406 zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 407 zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 409 408 ELSE 410 409 zwx(:,:) = e2u(:,:) * un(:,:,jk) … … 415 414 DO ji = fs_2, fs_jpim1 ! vector opt. 416 415 zuav = r1_8 * r1_e1u(ji,jj) * ( zwy(ji ,jj-1) + zwy(ji+1,jj-1) & 417 & + zwy(ji ,jj ) + zwy(ji+1,jj ) )416 & + zwy(ji ,jj ) + zwy(ji+1,jj ) ) 418 417 zvau =-r1_8 * r1_e2v(ji,jj) * ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) & 419 & + zwx(ji ,jj ) + zwx(ji ,jj+1) )418 & + zwx(ji ,jj ) + zwx(ji ,jj+1) ) 420 419 pua(ji,jj,jk) = pua(ji,jj,jk) + zuav * ( zwz(ji ,jj-1) + zwz(ji,jj) ) 421 420 pva(ji,jj,jk) = pva(ji,jj,jk) + zvau * ( zwz(ji-1,jj ) + zwz(ji,jj) ) … … 482 481 DO jj = 1, jpjm1 483 482 DO ji = 1, fs_jpim1 ! vector opt. 484 ze3 = ( fse3t(ji,jj+1,jk)*tmask(ji,jj+1,jk) + fse3t(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk) &485 & + fse3t(ji,jj ,jk)*tmask(ji,jj ,jk) + fse3t(ji+1,jj ,jk)*tmask(ji+1,jj ,jk) )483 ze3 = ( e3t_n(ji,jj+1,jk)*tmask(ji,jj+1,jk) + e3t_n(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk) & 484 & + e3t_n(ji,jj ,jk)*tmask(ji,jj ,jk) + e3t_n(ji+1,jj ,jk)*tmask(ji+1,jj ,jk) ) 486 485 IF( ze3 /= 0._wp ) THEN ; z1_e3f(ji,jj) = 4.0_wp / ze3 487 486 ELSE ; z1_e3f(ji,jj) = 0.0_wp … … 492 491 DO jj = 1, jpjm1 493 492 DO ji = 1, fs_jpim1 ! vector opt. 494 ze3 = ( fse3t(ji,jj+1,jk)*tmask(ji,jj+1,jk) + fse3t(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk) &495 & + fse3t(ji,jj ,jk)*tmask(ji,jj ,jk) + fse3t(ji+1,jj ,jk)*tmask(ji+1,jj ,jk) )493 ze3 = ( e3t_n(ji,jj+1,jk)*tmask(ji,jj+1,jk) + e3t_n(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk) & 494 & + e3t_n(ji,jj ,jk)*tmask(ji,jj ,jk) + e3t_n(ji+1,jj ,jk)*tmask(ji+1,jj ,jk) ) 496 495 zmsk = ( tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk) & 497 496 & + tmask(ji,jj ,jk) + tmask(ji+1,jj ,jk) ) … … 558 557 ! 559 558 ! !== horizontal fluxes ==! 560 zwx(:,:) = e2u(:,:) * fse3u(:,:,jk) * un(:,:,jk)561 zwy(:,:) = e1v(:,:) * fse3v(:,:,jk) * vn(:,:,jk)559 zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 560 zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 562 561 563 562 ! !== compute and add the vorticity term trend =! … … 633 632 WRITE(numout,*) ' enstrophy and energy conserving scheme ln_dynvor_een = ', ln_dynvor_een 634 633 WRITE(numout,*) ' e3f = averaging /4 (=0) or /sum(tmask) (=1) nn_een_e3f = ', nn_een_e3f 635 WRITE(numout,*) ' masked (= 1) or unmasked(=0) vorticity ln_dynvor_msk = ', ln_dynvor_msk634 WRITE(numout,*) ' masked (=T) or unmasked(=F) vorticity ln_dynvor_msk = ', ln_dynvor_msk 636 635 ENDIF 637 636
Note: See TracChangeset
for help on using the changeset viewer.