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 12143 for NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DYN/dynkeg.F90 – NEMO

Ignore:
Timestamp:
2019-12-10T12:57:49+01:00 (4 years ago)
Author:
mathiot
Message:

update ENHANCE-02_ISF_nemo to 12072 (sette in progress)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DYN/dynkeg.F90

    r10996 r12143  
    7474      INTEGER, INTENT( in ) ::   kscheme   ! =0/1   type of KEG scheme  
    7575      ! 
    76       INTEGER  ::   ji, jj, jk, jb           ! dummy loop indices 
    77       INTEGER  ::   ifu, ifv, igrd, ib_bdy   ! local integers 
     76      INTEGER  ::   ji, jj, jk             ! dummy loop indices 
    7877      REAL(wp) ::   zu, zv                   ! local scalars 
    7978      REAL(wp), DIMENSION(jpi,jpj,jpk)        ::   zhke 
    8079      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrdu, ztrdv  
    81       REAL(wp)  :: zweightu, zweightv 
    8280      !!---------------------------------------------------------------------- 
    8381      ! 
     
    112110            END DO 
    113111         END DO 
    114          ! 
    115          IF (ln_bdy) THEN 
    116             ! Maria Luneva & Fred Wobus: July-2016 
    117             ! compensate for lack of turbulent kinetic energy on liquid bdy points 
    118             DO ib_bdy = 1, nb_bdy 
    119                IF( cn_dyn3d(ib_bdy) /= 'none' ) THEN 
    120                   igrd = 1           ! compensating null velocity on the bdy 
    121                   DO jb = 1, idx_bdy(ib_bdy)%nblenrim(igrd) 
    122                      ji   = idx_bdy(ib_bdy)%nbi(jb,igrd)   ! maximum extent : from 2 to jpi-1 
    123                      jj   = idx_bdy(ib_bdy)%nbj(jb,igrd)   ! maximum extent : from 2 to jpj-1 
    124                      DO jk = 1, jpkm1 
    125                         zhke(ji,jj,jk) = 0._wp 
    126                         zweightu = umask(ji-1,jj  ,jk) + umask(ji,jj,jk) 
    127                         zweightv = vmask(ji  ,jj-1,jk) + vmask(ji,jj,jk) 
    128                         zu = un(ji-1,jj  ,jk) * un(ji-1,jj  ,jk)  +  un(ji  ,jj  ,jk) * un(ji  ,jj  ,jk) 
    129                         zv = vn(ji  ,jj-1,jk) * vn(ji  ,jj-1,jk)  +  vn(ji  ,jj  ,jk) * vn(ji  ,jj  ,jk) 
    130                         IF( zweightu > 0._wp )   zhke(ji,jj,jk) =  zhke(ji,jj,jk) + zu / (2._wp * zweightu)  
    131                         IF( zweightv > 0._wp )   zhke(ji,jj,jk) =  zhke(ji,jj,jk) + zv / (2._wp * zweightv)  
    132                      END DO 
    133                   END DO 
    134                END IF 
    135                CALL lbc_bdy_lnk( 'dynkeg', zhke, 'T', 1., ib_bdy )   ! send 2 and recv jpi, jpj used in the computation of the speed tendencies 
    136             END DO 
    137          END IF 
    138          ! 
    139112      CASE ( nkeg_HW )                          !--  Hollingsworth scheme  --! 
    140113         DO jk = 1, jpkm1 
     
    154127            END DO 
    155128         END DO 
    156          IF (ln_bdy) THEN 
    157             ! Maria Luneva & Fred Wobus: July-2016 
    158             ! compensate for lack of turbulent kinetic energy on liquid bdy points 
    159             DO ib_bdy = 1, nb_bdy 
    160                IF( cn_dyn3d(ib_bdy) /= 'none' ) THEN 
    161                   igrd = 1           ! compensation null velocity on land at the bdy 
    162                   DO jb = 1, idx_bdy(ib_bdy)%nblenrim(igrd) 
    163                      ji   = idx_bdy(ib_bdy)%nbi(jb,igrd)   ! maximum extent : from 2 to jpi-1 
    164                      jj   = idx_bdy(ib_bdy)%nbj(jb,igrd)   ! maximum extent : from 2 to jpj-1 
    165                      DO jk = 1, jpkm1 
    166                         zhke(ji,jj,jk) = 0._wp 
    167                         zweightu = 8._wp * ( umask(ji-1,jj  ,jk) + umask(ji  ,jj  ,jk) ) & 
    168                              &   + 2._wp * ( umask(ji-1,jj-1,jk) + umask(ji-1,jj+1,jk) + umask(ji  ,jj-1,jk) + umask(ji  ,jj+1,jk) )  
    169                         zweightv = 8._wp * ( vmask(ji  ,jj-1,jk) + vmask(ji  ,jj-1,jk) ) & 
    170                              &   + 2._wp * ( vmask(ji-1,jj-1,jk) + vmask(ji+1,jj-1,jk) + vmask(ji-1,jj  ,jk) + vmask(ji+1,jj  ,jk) ) 
    171                         zu = 8._wp * ( un(ji-1,jj  ,jk) * un(ji-1,jj  ,jk)    & 
    172                            &         + un(ji  ,jj  ,jk) * un(ji  ,jj  ,jk) )  & 
    173                            &   +     ( un(ji-1,jj-1,jk) + un(ji-1,jj+1,jk) ) * ( un(ji-1,jj-1,jk) + un(ji-1,jj+1,jk) )   & 
    174                            &   +     ( un(ji  ,jj-1,jk) + un(ji  ,jj+1,jk) ) * ( un(ji  ,jj-1,jk) + un(ji  ,jj+1,jk) ) 
    175                         zv = 8._wp * ( vn(ji  ,jj-1,jk) * vn(ji  ,jj-1,jk)    & 
    176                            &         + vn(ji  ,jj  ,jk) * vn(ji  ,jj  ,jk) )  & 
    177                            &  +      ( vn(ji-1,jj-1,jk) + vn(ji+1,jj-1,jk) ) * ( vn(ji-1,jj-1,jk) + vn(ji+1,jj-1,jk) )   & 
    178                            &  +      ( vn(ji-1,jj  ,jk) + vn(ji+1,jj  ,jk) ) * ( vn(ji-1,jj  ,jk) + vn(ji+1,jj  ,jk) ) 
    179                         IF( zweightu > 0._wp )   zhke(ji,jj,jk) =  zhke(ji,jj,jk) +  zu / ( 2._wp * zweightu ) 
    180                         IF( zweightv > 0._wp )   zhke(ji,jj,jk) =  zhke(ji,jj,jk) +  zv / ( 2._wp * zweightv ) 
    181                      END DO 
    182                   END DO 
    183                END IF 
    184             END DO 
    185          END IF 
    186129         CALL lbc_lnk( 'dynkeg', zhke, 'T', 1. ) 
    187130         ! 
Note: See TracChangeset for help on using the changeset viewer.