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 13151 for NEMO/branches/2020/dev_r12527_Gurvan_ShallowWater/src/OCE/ZDF/zdftke.F90 – NEMO

Ignore:
Timestamp:
2020-06-24T14:38:26+02:00 (4 years ago)
Author:
gm
Message:

result from merge with qco r12983

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12527_Gurvan_ShallowWater/src/OCE/ZDF/zdftke.F90

    r12489 r13151  
    9090   !! * Substitutions 
    9191#  include "do_loop_substitute.h90" 
     92#  include "domzgr_substitute.h90" 
    9293   !!---------------------------------------------------------------------- 
    9394   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    214215      !                     !  Surface/top/bottom boundary condition on tke 
    215216      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    216        
     217      !  
    217218      DO_2D_00_00 
    218219         en(ji,jj,1) = MAX( rn_emin0, zbbrau * taum(ji,jj) ) * tmask(ji,jj,1) 
    219220      END_2D 
    220       IF ( ln_isfcav ) THEN 
    221          DO_2D_00_00 
    222             en(ji,jj,mikt(ji,jj)) = rn_emin * tmask(ji,jj,1) 
    223          END_2D 
    224       ENDIF 
    225221      ! 
    226222      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    249245               zetop = - 0.001875_wp * rCdU_top(ji,jj) * SQRT(  ( zmsku*( uu(ji,jj,mikt(ji,jj),Kbb)+uu(ji-1,jj,mikt(ji,jj),Kbb) ) )**2  & 
    250246                  &                                           + ( zmskv*( vv(ji,jj,mikt(ji,jj),Kbb)+vv(ji,jj-1,mikt(ji,jj),Kbb) ) )**2  ) 
    251                en(ji,jj,mikt(ji,jj)) = MAX( zetop, rn_emin ) * (1._wp - tmask(ji,jj,1))   ! masked at ocean surface 
     247               en(ji,jj,mikt(ji,jj)) = en(ji,jj,1) * tmask(ji,jj,1) + MAX( zetop, rn_emin ) * (1._wp - tmask(ji,jj,1)) * ssmask(ji,jj)   ! masked at ocean surface 
    252248            END_2D 
    253249         ENDIF 
     
    260256         ! 
    261257         !                        !* total energy produce by LC : cumulative sum over jk 
    262          zpelc(:,:,1) =  MAX( rn2b(:,:,1), 0._wp ) * gdepw(:,:,1,Kmm) * e3w(:,:,1,Kmm) 
     258         zpelc(:,:,1) = MAX( rn2b(:,:,1), 0._wp ) * gdepw(:,:,1,Kmm) * e3w(:,:,1,Kmm) 
    263259         DO jk = 2, jpk 
    264             zpelc(:,:,jk)  = zpelc(:,:,jk-1) + MAX( rn2b(:,:,jk), 0._wp ) * gdepw(:,:,jk,Kmm) * e3w(:,:,jk,Kmm) 
     260            zpelc(:,:,jk)  = zpelc(:,:,jk-1) +   & 
     261               &        MAX( rn2b(:,:,jk), 0._wp ) * gdepw(:,:,jk,Kmm) * e3w(:,:,jk,Kmm) 
    265262         END DO 
    266263         !                        !* finite Langmuir Circulation depth 
     
    316313         !                                   ! eddy coefficient (ensure numerical stability) 
    317314         zzd_up = zcof * MAX(  p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk  ) , 2.e-5_wp  )   &  ! upper diagonal 
    318             &          /    (  e3t(ji,jj,jk  ,Kmm) * e3w(ji,jj,jk  ,Kmm)  ) 
     315            &          /    (  e3t(ji,jj,jk  ,Kmm)   & 
     316            &                * e3w(ji,jj,jk  ,Kmm)  ) 
    319317         zzd_lw = zcof * MAX(  p_avm(ji,jj,jk  ) + p_avm(ji,jj,jk-1) , 2.e-5_wp  )   &  ! lower diagonal 
    320             &          /    (  e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk  ,Kmm)  ) 
     318            &          /    (  e3t(ji,jj,jk-1,Kmm)   & 
     319            &                * e3w(ji,jj,jk  ,Kmm)  ) 
    321320         ! 
    322321         zd_up(ji,jj,jk) = zzd_up            ! Matrix (zdiag, zd_up, zd_lw) 
     
    467466            &            gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) - gdepw(ji,jj,jk,Kmm) ) 
    468467            ! wmask prevent zmxlm = 0 if jk = mikt(ji,jj) 
    469             zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 
    470             zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 
     468            zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk)   & 
     469               &            + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 
     470            zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk)   & 
     471               &            + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 
    471472         END_3D 
    472473         ! 
     
    480481      CASE ( 2 )           ! |dk[xml]| bounded by e3t : 
    481482         DO_3D_00_00( 2, jpkm1 ) 
    482             zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
     483            zmxlm(ji,jj,jk) =   & 
     484               &    MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    483485         END_3D 
    484486         DO_3DS_00_00( jpkm1, 2, -1 ) 
     
    490492      CASE ( 3 )           ! lup and ldown, |dk[xml]| bounded by e3t : 
    491493         DO_3D_00_00( 2, jpkm1 ) 
    492             zmxld(ji,jj,jk) = MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
     494            zmxld(ji,jj,jk) =    & 
     495               &    MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    493496         END_3D 
    494497         DO_3DS_00_00( jpkm1, 2, -1 ) 
    495             zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
     498            zmxlm(ji,jj,jk) =   & 
     499               &    MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
    496500         END_3D 
    497501         DO_3D_00_00( 2, jpkm1 ) 
     
    518522      IF( nn_pdl == 1 ) THEN      !* Prandtl number case: update avt 
    519523         DO_3D_00_00( 2, jpkm1 ) 
    520             p_avt(ji,jj,jk)   = MAX( apdlr(ji,jj,jk) * p_avt(ji,jj,jk), avtb_2d(ji,jj) * avtb(jk) ) * tmask(ji,jj,jk) 
     524            p_avt(ji,jj,jk)   = MAX( apdlr(ji,jj,jk) * p_avt(ji,jj,jk), avtb_2d(ji,jj) * avtb(jk) ) * wmask(ji,jj,jk) 
    521525         END_3D 
    522526      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.