New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12928 for NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/ZDF/zdfsh2.F90 – NEMO

Ignore:
Timestamp:
2020-05-14T21:46:00+02:00 (4 years ago)
Author:
smueller
Message:

Synchronizing with /NEMO/trunk@12925 (ticket #2170)

Location:
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser

    • Property svn:externals
      •  

        old new  
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/ZDF/zdfsh2.F90

    r10069 r12928  
    1111   !!   zdf_sh2       : compute mixing the shear production term of TKE 
    1212   !!---------------------------------------------------------------------- 
     13   USE oce 
    1314   USE dom_oce        ! domain: ocean 
    1415   ! 
     
    2122   PUBLIC   zdf_sh2        ! called by zdftke, zdfglf, and zdfric 
    2223    
     24   !! * Substitutions 
     25#  include "do_loop_substitute.h90" 
    2326   !!---------------------------------------------------------------------- 
    2427   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    2831CONTAINS 
    2932 
    30    SUBROUTINE zdf_sh2( pub, pvb, pun, pvn, p_avm, p_sh2  )  
     33   SUBROUTINE zdf_sh2( Kbb, Kmm, p_avm, p_sh2  )  
    3134      !!---------------------------------------------------------------------- 
    3235      !!                   ***  ROUTINE zdf_sh2  *** 
     
    4750      !! References :   Bruchard, OM 2002 
    4851      !! --------------------------------------------------------------------- 
    49       REAL(wp), DIMENSION(:,:,:) , INTENT(in   ) ::   pub, pvb, pun, pvn   ! before, now horizontal velocities 
     52      INTEGER                    , INTENT(in   ) ::   Kbb, Kmm             ! ocean time level indices 
    5053      REAL(wp), DIMENSION(:,:,:) , INTENT(in   ) ::   p_avm                ! vertical eddy viscosity (w-points) 
    5154      REAL(wp), DIMENSION(:,:,:) , INTENT(  out) ::   p_sh2                ! shear production of TKE (w-points) 
     
    5659      ! 
    5760      DO jk = 2, jpkm1 
    58          DO jj = 1, jpjm1        !* 2 x shear production at uw- and vw-points (energy conserving form) 
    59             DO ji = 1, jpim1 
    60                zsh2u(ji,jj) = ( p_avm(ji+1,jj,jk) + p_avm(ji,jj,jk) ) & 
    61                   &         * (   pun(ji,jj,jk-1) -   pun(ji,jj,jk) ) & 
    62                   &         * (   pub(ji,jj,jk-1) -   pub(ji,jj,jk) ) / ( e3uw_n(ji,jj,jk) * e3uw_b(ji,jj,jk) ) * wumask(ji,jj,jk) 
    63                zsh2v(ji,jj) = ( p_avm(ji,jj+1,jk) + p_avm(ji,jj,jk) ) & 
    64                   &         * (   pvn(ji,jj,jk-1) -   pvn(ji,jj,jk) ) & 
    65                   &         * (   pvb(ji,jj,jk-1) -   pvb(ji,jj,jk) ) / ( e3vw_n(ji,jj,jk) * e3vw_b(ji,jj,jk) ) * wvmask(ji,jj,jk) 
    66             END DO 
    67          END DO 
    68          DO jj = 2, jpjm1        !* shear production at w-point 
    69             DO ji = 2, jpim1           ! coast mask: =2 at the coast ; =1 otherwise (NB: wmask useless as zsh2 are masked) 
    70                p_sh2(ji,jj,jk) = 0.25 * (   ( zsh2u(ji-1,jj) + zsh2u(ji,jj) ) * ( 2. - umask(ji-1,jj,jk) * umask(ji,jj,jk) )   & 
    71                   &                       + ( zsh2v(ji,jj-1) + zsh2v(ji,jj) ) * ( 2. - vmask(ji,jj-1,jk) * vmask(ji,jj,jk) )   ) 
    72             END DO 
    73          END DO 
     61         DO_2D_10_10 
     62            zsh2u(ji,jj) = ( p_avm(ji+1,jj,jk) + p_avm(ji,jj,jk) ) & 
     63               &         * (   uu(ji,jj,jk-1,Kmm) -   uu(ji,jj,jk,Kmm) ) & 
     64               &         * (   uu(ji,jj,jk-1,Kbb) -   uu(ji,jj,jk,Kbb) ) / ( e3uw(ji,jj,jk,Kmm) * e3uw(ji,jj,jk,Kbb) ) * wumask(ji,jj,jk) 
     65            zsh2v(ji,jj) = ( p_avm(ji,jj+1,jk) + p_avm(ji,jj,jk) ) & 
     66               &         * (   vv(ji,jj,jk-1,Kmm) -   vv(ji,jj,jk,Kmm) ) & 
     67               &         * (   vv(ji,jj,jk-1,Kbb) -   vv(ji,jj,jk,Kbb) ) / ( e3vw(ji,jj,jk,Kmm) * e3vw(ji,jj,jk,Kbb) ) * wvmask(ji,jj,jk) 
     68         END_2D 
     69         DO_2D_00_00 
     70            p_sh2(ji,jj,jk) = 0.25 * (   ( zsh2u(ji-1,jj) + zsh2u(ji,jj) ) * ( 2. - umask(ji-1,jj,jk) * umask(ji,jj,jk) )   & 
     71               &                       + ( zsh2v(ji,jj-1) + zsh2v(ji,jj) ) * ( 2. - vmask(ji,jj-1,jk) * vmask(ji,jj,jk) )   ) 
     72         END_2D 
    7473      END DO  
    7574      ! 
Note: See TracChangeset for help on using the changeset viewer.