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 6060 for branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90 – NEMO

Ignore:
Timestamp:
2015-12-16T10:25:22+01:00 (8 years ago)
Author:
timgraham
Message:

Merged dev_r5836_noc2_VVL_BY_DEFAULT into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r5836 r6060  
    9999 
    100100   !! * Substitutions 
    101 #  include "domzgr_substitute.h90" 
    102101#  include "vectopt_loop_substitute.h90" 
    103102   !!---------------------------------------------------------------------- 
     
    294293         ! 
    295294         !                        !* total energy produce by LC : cumulative sum over jk 
    296          zpelc(:,:,1) =  MAX( rn2b(:,:,1), 0._wp ) * fsdepw(:,:,1) * fse3w(:,:,1) 
     295         zpelc(:,:,1) =  MAX( rn2b(:,:,1), 0._wp ) * gdepw_n(:,:,1) * e3w_n(:,:,1) 
    297296         DO jk = 2, jpk 
    298             zpelc(:,:,jk)  = zpelc(:,:,jk-1) + MAX( rn2b(:,:,jk), 0._wp ) * fsdepw(:,:,jk) * fse3w(:,:,jk) 
     297            zpelc(:,:,jk)  = zpelc(:,:,jk-1) + MAX( rn2b(:,:,jk), 0._wp ) * gdepw_n(:,:,jk) * e3w_n(:,:,jk) 
    299298         END DO 
    300299         !                        !* finite Langmuir Circulation depth 
     
    312311         DO jj = 1, jpj  
    313312            DO ji = 1, jpi 
    314                zhlc(ji,jj) = fsdepw(ji,jj,imlc(ji,jj)) 
     313               zhlc(ji,jj) = gdepw_n(ji,jj,imlc(ji,jj)) 
    315314            END DO 
    316315         END DO 
     
    321320                  zus  = zcof * SQRT( taum(ji,jj) )           ! Stokes drift 
    322321                  !                                           ! vertical velocity due to LC 
    323                   zind = 0.5 - SIGN( 0.5, fsdepw(ji,jj,jk) - zhlc(ji,jj) ) 
    324                   zwlc = zind * rn_lc * zus * SIN( rpi * fsdepw(ji,jj,jk) / zhlc(ji,jj) ) 
     322                  zind = 0.5 - SIGN( 0.5, gdepw_n(ji,jj,jk) - zhlc(ji,jj) ) 
     323                  zwlc = zind * rn_lc * zus * SIN( rpi * gdepw_n(ji,jj,jk) / zhlc(ji,jj) ) 
    325324                  !                                           ! TKE Langmuir circulation source term 
    326325                  en(ji,jj,jk) = en(ji,jj,jk) + rdt * ( zwlc * zwlc * zwlc ) / zhlc(ji,jj) * wmask(ji,jj,jk) * tmask(ji,jj,1) 
     
    344343                  &                 * (  un(ji,jj,jk-1) -  un(ji  ,jj,jk) )   & 
    345344                  &                 * (  ub(ji,jj,jk-1) -  ub(ji  ,jj,jk) ) * wumask(ji,jj,jk) & 
    346                   &                 / (  fse3uw_n(ji,jj,jk) * fse3uw_b(ji,jj,jk) ) 
     345                  &                 / (  e3uw_n(ji,jj,jk) * e3uw_b(ji,jj,jk) ) 
    347346               z3dv(ji,jj,jk) = 0.5 * ( avm(ji,jj,jk  ) + avm(ji,jj+1,jk) )   & 
    348347                  &                 * (  vn(ji,jj,jk-1) -  vn(ji,jj  ,jk) )   & 
    349348                  &                 * (  vb(ji,jj,jk-1) -  vb(ji,jj  ,jk) ) * wvmask(ji,jj,jk) & 
    350                   &                 / (  fse3vw_n(ji,jj,jk) * fse3vw_b(ji,jj,jk) ) 
     349                  &                 / (  e3vw_n(ji,jj,jk) * e3vw_b(ji,jj,jk) ) 
    351350            END DO 
    352351         END DO 
     
    377376               zcof   = zfact1 * tmask(ji,jj,jk) 
    378377               zzd_up = zcof * ( avm  (ji,jj,jk+1) + avm  (ji,jj,jk  ) )   &  ! upper diagonal 
    379                   &          / ( fse3t(ji,jj,jk  ) * fse3w(ji,jj,jk  ) ) 
     378                  &          / ( e3t_n(ji,jj,jk  ) * e3w_n(ji,jj,jk  ) ) 
    380379               zzd_lw = zcof * ( avm  (ji,jj,jk  ) + avm  (ji,jj,jk-1) )   &  ! lower diagonal 
    381                   &          / ( fse3t(ji,jj,jk-1) * fse3w(ji,jj,jk  ) ) 
     380                  &          / ( e3t_n(ji,jj,jk-1) * e3w_n(ji,jj,jk  ) ) 
    382381               !                                   ! shear prod. at w-point weightened by mask 
    383382               zesh2  =  ( z3du(ji-1,jj,jk) + z3du(ji,jj,jk) ) / MAX( 1._wp , umask(ji-1,jj,jk) + umask(ji,jj,jk) )   & 
     
    438437      !                            !  TKE due to surface and internal wave breaking 
    439438      !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     439!!gm BUG : in the exp  remove the depth of ssh !!! 
     440       
     441       
    440442      IF( nn_etau == 1 ) THEN           !* penetration below the mixed layer (rn_efr fraction) 
    441443         DO jk = 2, jpkm1 
    442444            DO jj = 2, jpjm1 
    443445               DO ji = fs_2, fs_jpim1   ! vector opt. 
    444                   en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -fsdepw(ji,jj,jk) / htau(ji,jj) )   & 
     446                  en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -gdepw_n(ji,jj,jk) / htau(ji,jj) )   & 
    445447                     &                                 * ( 1._wp - fr_i(ji,jj) )  * wmask(ji,jj,jk) * tmask(ji,jj,1) 
    446448               END DO 
     
    451453            DO ji = fs_2, fs_jpim1   ! vector opt. 
    452454               jk = nmln(ji,jj) 
    453                en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -fsdepw(ji,jj,jk) / htau(ji,jj) )   & 
     455               en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -gdepw_n(ji,jj,jk) / htau(ji,jj) )   & 
    454456                  &                                 * ( 1._wp - fr_i(ji,jj) )  * wmask(ji,jj,jk) * tmask(ji,jj,1) 
    455457            END DO 
     
    464466                  zdif = taum(ji,jj) - ztau                            ! mean of modulus - modulus of the mean  
    465467                  zdif = rhftau_scl * MAX( 0._wp, zdif + rhftau_add )  ! apply some modifications... 
    466                   en(ji,jj,jk) = en(ji,jj,jk) + zbbrau * zdif * EXP( -fsdepw(ji,jj,jk) / htau(ji,jj) )   & 
     468                  en(ji,jj,jk) = en(ji,jj,jk) + zbbrau * zdif * EXP( -gdepw_n(ji,jj,jk) / htau(ji,jj) )   & 
    467469                     &                        * ( 1._wp - fr_i(ji,jj) ) * wmask(ji,jj,jk) * tmask(ji,jj,1) 
    468470               END DO 
     
    570572            DO jj = 2, jpjm1 
    571573               DO ji = fs_2, fs_jpim1   ! vector opt. 
    572                   zemxl = MIN( fsdepw(ji,jj,jk) - fsdepw(ji,jj,mikt(ji,jj)), zmxlm(ji,jj,jk),   & 
    573                   &            fsdepw(ji,jj,mbkt(ji,jj)+1) - fsdepw(ji,jj,jk) ) 
     574                  zemxl = MIN( gdepw_n(ji,jj,jk) - gdepw_n(ji,jj,mikt(ji,jj)), zmxlm(ji,jj,jk),   & 
     575                  &            gdepw_n(ji,jj,mbkt(ji,jj)+1) - gdepw_n(ji,jj,jk) ) 
    574576                  ! wmask prevent zmxlm = 0 if jk = mikt(ji,jj) 
    575                   zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN(zmxlm(ji,jj,jk),fse3w(ji,jj,jk)) * (1 - wmask(ji,jj,jk)) 
    576                   zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN(zmxlm(ji,jj,jk),fse3w(ji,jj,jk)) * (1 - wmask(ji,jj,jk)) 
     577                  zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN(zmxlm(ji,jj,jk),e3w_n(ji,jj,jk)) * (1 - wmask(ji,jj,jk)) 
     578                  zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN(zmxlm(ji,jj,jk),e3w_n(ji,jj,jk)) * (1 - wmask(ji,jj,jk)) 
    577579               END DO 
    578580            END DO 
     
    583585            DO jj = 2, jpjm1 
    584586               DO ji = fs_2, fs_jpim1   ! vector opt. 
    585                   zemxl = MIN( fse3w(ji,jj,jk), zmxlm(ji,jj,jk) ) 
     587                  zemxl = MIN( e3w_n(ji,jj,jk), zmxlm(ji,jj,jk) ) 
    586588                  zmxlm(ji,jj,jk) = zemxl 
    587589                  zmxld(ji,jj,jk) = zemxl 
     
    594596            DO jj = 2, jpjm1 
    595597               DO ji = fs_2, fs_jpim1   ! vector opt. 
    596                   zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk-1) + fse3t(ji,jj,jk-1), zmxlm(ji,jj,jk) ) 
     598                  zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk-1) + e3t_n(ji,jj,jk-1), zmxlm(ji,jj,jk) ) 
    597599               END DO 
    598600            END DO 
     
    601603            DO jj = 2, jpjm1 
    602604               DO ji = fs_2, fs_jpim1   ! vector opt. 
    603                   zemxl = MIN( zmxlm(ji,jj,jk+1) + fse3t(ji,jj,jk+1), zmxlm(ji,jj,jk) ) 
     605                  zemxl = MIN( zmxlm(ji,jj,jk+1) + e3t_n(ji,jj,jk+1), zmxlm(ji,jj,jk) ) 
    604606                  zmxlm(ji,jj,jk) = zemxl 
    605607                  zmxld(ji,jj,jk) = zemxl 
     
    612614            DO jj = 2, jpjm1 
    613615               DO ji = fs_2, fs_jpim1   ! vector opt. 
    614                   zmxld(ji,jj,jk) = MIN( zmxld(ji,jj,jk-1) + fse3t(ji,jj,jk-1), zmxlm(ji,jj,jk) ) 
     616                  zmxld(ji,jj,jk) = MIN( zmxld(ji,jj,jk-1) + e3t_n(ji,jj,jk-1), zmxlm(ji,jj,jk) ) 
    615617               END DO 
    616618            END DO 
     
    619621            DO jj = 2, jpjm1 
    620622               DO ji = fs_2, fs_jpim1   ! vector opt. 
    621                   zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk+1) + fse3t(ji,jj,jk+1), zmxlm(ji,jj,jk) ) 
     623                  zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk+1) + e3t_n(ji,jj,jk+1), zmxlm(ji,jj,jk) ) 
    622624               END DO 
    623625            END DO 
Note: See TracChangeset for help on using the changeset viewer.