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 1662 for trunk/NEMO/OPA_SRC/ZDF/zdftke.F90 – NEMO

Ignore:
Timestamp:
2009-10-14T18:51:06+02:00 (15 years ago)
Author:
rblod
Message:

Correction of major bug on bottom friction, see ticket #233

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/ZDF/zdftke.F90

    r1617 r1662  
    4848   USE in_out_manager ! I/O manager 
    4949   USE iom            ! I/O manager library 
     50   USE zdfbfr          ! bottom friction 
    5051 
    5152   IMPLICIT NONE 
     
    182183      REAL(wp) ::   zus   , zwlc  , zind      !    -         - 
    183184      REAL(wp) ::   zzd_up, zzd_lw            !    -         - 
     185      INTEGER  ::   ikbu, ikbv, ikbum1, ikbvm1      ! temporary scalar 
     186      INTEGER  ::   ikbt, ikbumm1, ikbvmm1          ! temporary scalar 
     187      REAL(wp) ::   zebot                           ! temporary scalars 
    184188      INTEGER , DIMENSION(jpi,jpj)     ::   imlc    ! 2D workspace 
    185189      REAL(wp), DIMENSION(jpi,jpj)     ::   zhlc    !  -      - 
     
    209213      !                     !  Bottom boundary condition on tke 
    210214      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    211 !!gm to be added soon 
     215      !                     en(bot)   = 0.5*sqrt(u_botfr^2+v_botfr^2) (min value rn_emin) 
     216!CDIR NOVERRCHK 
     217      DO jj = 2, jpjm1 
     218!CDIR NOVERRCHK 
     219         DO ji = fs_2, fs_jpim1   ! vector opt. 
     220            ikbu = MIN( mbathy(ji+1,jj), mbathy(ji,jj) ) 
     221            ikbv = MIN( mbathy(ji,jj+1), mbathy(ji,jj) ) 
     222            ikbum1 = MAX( ikbu-1, 1 ) 
     223            ikbvm1 = MAX( ikbv-1, 1 ) 
     224            ikbu = MIN( mbathy(ji,jj), mbathy(ji-1,jj) ) 
     225            ikbv = MIN( mbathy(ji,jj), mbathy(ji,jj-1) ) 
     226            ikbumm1 = MAX( ikbu-1, 1 ) 
     227            ikbvmm1 = MAX( ikbv-1, 1 ) 
     228            ikbt = MAX( mbathy(ji,jj), 1 ) 
     229            ztx2 = bfrua(ji-1,jj) * fse3u(ji-1,jj  ,ikbumm1) + & 
     230                   bfrua(ji  ,jj) * fse3u(ji  ,jj  ,ikbum1 ) 
     231            zty2 = bfrva(ji,jj  ) * fse3v(ji  ,jj  ,ikbvm1) + & 
     232                   bfrva(ji,jj-1) * fse3v(ji  ,jj-1,ikbvmm1 ) 
     233            zebot = 0.25_wp * SQRT( ztx2 * ztx2 + zty2 * zty2 ) 
     234            en (ji,jj,ikbt) = MAX( zebot, rn_emin ) * tmask(ji,jj,1) 
     235         END DO 
     236      END DO 
    212237      ! 
    213238      ! 
Note: See TracChangeset for help on using the changeset viewer.