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 8568 for branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90 – NEMO

Ignore:
Timestamp:
2017-09-27T16:29:24+02:00 (7 years ago)
Author:
gm
Message:

#1911 (ENHANCE-09): PART I.2 - _NONE option + remove zts + see associated wiki page

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r8215 r8568  
    159159      !!              Bruchard OM 2002 
    160160      !!---------------------------------------------------------------------- 
    161       INTEGER                    , INTENT(in   ) ::   kt             ! ocean time step 
     161      INTEGER                   , INTENT(in   ) ::   kt             ! ocean time step 
    162162      REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   p_sh2          ! shear production term 
    163       REAL(wp), DIMENSION(:,:,:) , INTENT(inout) ::   p_avm, p_avt   !  momentum and tracer Kz (w-points) 
     163      REAL(wp), DIMENSION(:,:,:), INTENT(inout) ::   p_avm, p_avt   !  momentum and tracer Kz (w-points) 
    164164      !!---------------------------------------------------------------------- 
    165165      ! 
     
    194194      !!                a tridiagonal linear system by a "methode de chasse" 
    195195      !!              - increase TKE due to surface and internal wave breaking 
     196      !!             NB: when sea-ice is present, both LC parameterization  
     197      !!                 and TKE penetration are turned off when the ice fraction  
     198      !!                 is smaller than 0.25  
    196199      !! 
    197200      !! ** Action  : - en : now turbulent kinetic energy) 
     
    217220      !!-------------------------------------------------------------------- 
    218221      ! 
    219       IF( nn_timing == 1 )  CALL timing_start('tke_tke') 
     222      IF( ln_timing )   CALL timing_start('tke_tke') 
    220223      ! 
    221224      zbbrau = rn_ebb / rau0       ! Local constant initialisation 
     
    312315                  zwlc = zind * rn_lc * zus * SIN( rpi * pdepw(ji,jj,jk) / zhlc(ji,jj) ) 
    313316                  !                                           ! TKE Langmuir circulation source term 
    314                   en(ji,jj,jk) = en(ji,jj,jk) + rdt * MAX(0.,1._wp - 2.*fr_i(ji,jj) ) * ( zwlc * zwlc * zwlc )   & 
     317                  en(ji,jj,jk) = en(ji,jj,jk) + rdt * MAX(0.,1._wp - 4.*fr_i(ji,jj) ) * ( zwlc * zwlc * zwlc )   & 
    315318                     &                              / zhlc(ji,jj) * wmask(ji,jj,jk) * tmask(ji,jj,1) 
    316319               END DO 
     
    415418               DO ji = fs_2, fs_jpim1   ! vector opt. 
    416419                  en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -pdepw(ji,jj,jk) / htau(ji,jj) )   & 
    417                      &                                 * MAX(0.,1._wp - 2.*fr_i(ji,jj) )  * wmask(ji,jj,jk) * tmask(ji,jj,1) 
     420                     &                                 * MAX(0.,1._wp - 4.*fr_i(ji,jj) )  * wmask(ji,jj,jk) * tmask(ji,jj,1) 
    418421               END DO 
    419422            END DO 
     
    424427               jk = nmln(ji,jj) 
    425428               en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -pdepw(ji,jj,jk) / htau(ji,jj) )   & 
    426                   &                                 * MAX(0.,1._wp - 2.*fr_i(ji,jj) )  * wmask(ji,jj,jk) * tmask(ji,jj,1) 
     429                  &                                 * MAX(0.,1._wp - 4.*fr_i(ji,jj) )  * wmask(ji,jj,jk) * tmask(ji,jj,1) 
    427430            END DO 
    428431         END DO 
     
    437440                  zdif = rhftau_scl * MAX( 0._wp, zdif + rhftau_add )  ! apply some modifications... 
    438441                  en(ji,jj,jk) = en(ji,jj,jk) + zbbrau * zdif * EXP( -pdepw(ji,jj,jk) / htau(ji,jj) )   & 
    439                      &                        * MAX(0.,1._wp - 2.*fr_i(ji,jj) ) * wmask(ji,jj,jk) * tmask(ji,jj,1) 
    440                END DO 
    441             END DO 
    442          END DO 
    443       ENDIF 
    444       ! 
    445       IF( nn_timing == 1 )  CALL timing_stop('tke_tke') 
     442                     &                        * MAX(0.,1._wp - 4.*fr_i(ji,jj) ) * wmask(ji,jj,jk) * tmask(ji,jj,1) 
     443               END DO 
     444            END DO 
     445         END DO 
     446      ENDIF 
     447      ! 
     448      IF( ln_timing )   CALL timing_stop('tke_tke') 
    446449      ! 
    447450   END SUBROUTINE tke_tke 
     
    493496      !!-------------------------------------------------------------------- 
    494497      ! 
    495       IF( nn_timing == 1 )  CALL timing_start('tke_avn') 
     498      IF( ln_timing )   CALL timing_start('tke_avn') 
    496499 
    497500      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    636639      ENDIF 
    637640      ! 
    638       IF( nn_timing == 1 )  CALL timing_stop('tke_avn') 
     641      IF( ln_timing )   CALL timing_stop('tke_avn') 
    639642      ! 
    640643   END SUBROUTINE tke_avn 
Note: See TracChangeset for help on using the changeset viewer.