Changeset 7997
- Timestamp:
- 2017-05-08T11:24:47+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfsh2.F90
r7991 r7997 58 58 ! 59 59 DO jk = 2, jpkm1 60 DO jj = 1, jpjm1 !* Shear production at uw- and vw-points (energy conserving form)60 DO jj = 1, jpjm1 !* 2 x shear production at uw- and vw-points (energy conserving form) 61 61 DO ji = 1, jpim1 62 zsh2u(ji,jj) = 0.5 * ( avm(ji+1,jj,jk) + avm(ji,jj,jk) ) * wumask(ji,jj,jk)&63 & * ( un(ji,jj,jk-1) - un(ji,jj,jk) )&64 & * ( ub(ji,jj,jk-1) - ub(ji,jj,jk) ) / ( e3uw_n(ji,jj,jk) * e3uw_b(ji,jj,jk) )65 zsh2v(ji,jj) = 0.5 * ( avm(ji,jj+1,jk) + avm(ji,jj,jk) ) * wvmask(ji,jj,jk)&66 & * ( vn(ji,jj,jk-1) - vn(ji,jj,jk) )&67 & * ( vb(ji,jj,jk-1) - vb(ji,jj,jk) ) / ( e3vw_n(ji,jj,jk) * e3vw_b(ji,jj,jk))62 zsh2u(ji,jj) = ( avm(ji+1,jj,jk) + avm(ji,jj,jk) ) & 63 & * ( un(ji,jj,jk-1) - un(ji,jj,jk) ) & 64 & * ( ub(ji,jj,jk-1) - ub(ji,jj,jk) ) / ( e3uw_n(ji,jj,jk) * e3uw_b(ji,jj,jk) ) * wumask(ji,jj,jk) 65 zsh2v(ji,jj) = ( avm(ji,jj+1,jk) + avm(ji,jj,jk) ) & 66 & * ( vn(ji,jj,jk-1) - vn(ji,jj,jk) ) & 67 & * ( vb(ji,jj,jk-1) - vb(ji,jj,jk) ) / ( e3vw_n(ji,jj,jk) * e3vw_b(ji,jj,jk) ) * wvmask(ji,jj,jk) 68 68 END DO 69 69 END DO 70 70 DO jj = 2, jpjm1 !* shear production at w-point 71 DO ji = 2, jpim1 72 ! 73 !!gm original type of coding 74 ! psh2(ji,jj,jk) = ( zsh2u(ji-1,jj) + zsh2u(ji,jj) ) / MAX( 1._wp , umask(ji-1,jj,jk)+umask(ji,jj,jk) ) & 75 ! & + ( zsh2v(ji,jj-1) + zsh2v(ji,jj) ) / MAX( 1._wp , vmask(ji,jj-1,jk)+vmask(ji,jj,jk) ) 76 ! 77 !!gm optimized but it changes the last digits after 1 year of GYRE 78 ! ! coast mask: =1 at the coast ; =2 otherwise 79 ! ! no need of wmask as zsh2 are already masked 80 psh2(ji,jj,jk) = ( zsh2u(ji-1,jj) + zsh2u(ji,jj) ) * ( 2._wp - umask(ji-1,jj,jk) * umask(ji,jj,jk) ) & 81 & + ( zsh2v(ji,jj-1) + zsh2v(ji,jj) ) * ( 2._wp - vmask(ji,jj-1,jk) * vmask(ji,jj,jk) ) 71 DO ji = 2, jpim1 ! coast mask: =2 at the coast ; =1 otherwise (NB: wmask useless as zsh2 are masked) 72 psh2(ji,jj,jk) = 0.25 * ( ( zsh2u(ji-1,jj) + zsh2u(ji,jj) ) * ( 2. - umask(ji-1,jj,jk) * umask(ji,jj,jk) ) & 73 & + ( zsh2v(ji,jj-1) + zsh2v(ji,jj) ) * ( 2. - vmask(ji,jj-1,jk) * vmask(ji,jj,jk) ) ) 82 74 END DO 83 75 END DO
Note: See TracChangeset
for help on using the changeset viewer.