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/zdfbfr.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/zdfbfr.F90

    r5332 r6060  
    5656   !! * Substitutions 
    5757#  include "vectopt_loop_substitute.h90" 
    58 #  include "domzgr_substitute.h90" 
    5958   !!---------------------------------------------------------------------- 
    6059   !! NEMO/OPA 4.0 , NEMO Consortium (2011) 
     
    111110         CALL wrk_alloc( jpi, jpj, zbfrt, ztfrt ) 
    112111 
    113          IF ( ln_loglayer.AND.lk_vvl ) THEN ! "log layer" bottom friction coefficient 
     112         IF ( ln_loglayer.AND. .NOT.ln_linssh ) THEN ! "log layer" bottom friction coefficient 
    114113 
    115114            DO jj = 1, jpj 
     
    117116                  ikbt = mbkt(ji,jj) 
    118117!! JC: possible WAD implementation should modify line below if layers vanish 
    119                   ztmp = tmask(ji,jj,ikbt) * ( vkarmn / LOG( 0.5_wp * fse3t_n(ji,jj,ikbt) / rn_bfrz0 ))**2._wp 
     118                  ztmp = tmask(ji,jj,ikbt) * ( vkarmn / LOG( 0.5_wp * e3t_n(ji,jj,ikbt) / rn_bfrz0 ))**2._wp 
    120119                  zbfrt(ji,jj) = MAX(bfrcoef2d(ji,jj), ztmp) 
    121120                  zbfrt(ji,jj) = MIN(zbfrt(ji,jj), rn_bfri2_max) 
     
    128127                     ikbt = mikt(ji,jj) 
    129128! JC: possible WAD implementation should modify line below if layers vanish 
    130                      ztmp = (1-tmask(ji,jj,1)) * ( vkarmn / LOG( 0.5_wp * fse3t_n(ji,jj,ikbt) / rn_bfrz0 ))**2._wp 
     129                     ztmp = (1.-tmask(ji,jj,1)) * ( vkarmn / LOG( 0.5_wp * e3t_n(ji,jj,ikbt) / rn_bfrz0 ))**2._wp 
    131130                     ztfrt(ji,jj) = MAX(tfrcoef2d(ji,jj), ztmp) 
    132131                     ztfrt(ji,jj) = MIN(ztfrt(ji,jj), rn_tfri2_max) 
     
    134133               END DO 
    135134            END IF 
    136          !    
     135            !    
    137136         ELSE 
    138137            zbfrt(:,:) = bfrcoef2d(:,:) 
     
    158157               ! in case of 2 cell water column, we assume each cell feels the top and bottom friction 
    159158               IF ( ln_isfcav ) THEN 
    160                   IF ( miku(ji,jj) + 1 .GE. mbku(ji,jj) ) THEN 
     159                  IF ( miku(ji,jj) + 1  >= mbku(ji,jj) ) THEN 
    161160                     bfrua(ji,jj) = - 0.5_wp * ( ( zbfrt(ji,jj) + zbfrt(ji+1,jj  ) )   & 
    162161                                  &            + ( ztfrt(ji,jj) + ztfrt(ji+1,jj  ) ) ) & 
    163162                                  &          * zecu * (1._wp - umask(ji,jj,1)) 
    164                   END IF 
    165                   IF ( mikv(ji,jj) + 1 .GE. mbkv(ji,jj) ) THEN 
     163                  ENDIF 
     164                  IF( mikv(ji,jj) + 1  >= mbkv(ji,jj) ) THEN 
    166165                     bfrva(ji,jj) = - 0.5_wp * ( ( zbfrt(ji,jj) + zbfrt(ji  ,jj+1) )   & 
    167166                                  &            + ( ztfrt(ji,jj) + ztfrt(ji  ,jj+1) ) ) & 
    168167                                  &          * zecv * (1._wp - vmask(ji,jj,1)) 
    169                   END IF 
    170                END IF 
     168                  ENDIF 
     169               ENDIF 
    171170            END DO 
    172171         END DO 
    173172         CALL lbc_lnk( bfrua, 'U', 1. )   ;   CALL lbc_lnk( bfrva, 'V', 1. )      ! Lateral boundary condition 
    174173 
    175          IF ( ln_isfcav ) THEN 
     174         IF( ln_isfcav ) THEN 
    176175            DO jj = 2, jpjm1 
    177176               DO ji = 2, jpim1 
     
    371370         END IF 
    372371         ! 
    373          IF ( ln_loglayer.AND.(.NOT.lk_vvl) ) THEN ! set "log layer" bottom friction once for all 
     372         IF( ln_loglayer.AND. ln_linssh ) THEN ! set "log layer" bottom friction once for all 
    374373            DO jj = 1, jpj 
    375374               DO ji = 1, jpi 
    376375                  ikbt = mbkt(ji,jj) 
    377                   ztmp = tmask(ji,jj,ikbt) * ( vkarmn / LOG( 0.5_wp * fse3t_n(ji,jj,ikbt) / rn_bfrz0 ))**2._wp 
     376                  ztmp = tmask(ji,jj,ikbt) * ( vkarmn / LOG( 0.5_wp * e3t_n(ji,jj,ikbt) / rn_bfrz0 ))**2._wp 
    378377                  bfrcoef2d(ji,jj) = MAX(bfrcoef2d(ji,jj), ztmp) 
    379378                  bfrcoef2d(ji,jj) = MIN(bfrcoef2d(ji,jj), rn_bfri2_max) 
     
    384383                  DO ji = 1, jpi 
    385384                     ikbt = mikt(ji,jj) 
    386                      ztmp = tmask(ji,jj,ikbt) * ( vkarmn / LOG( 0.5_wp * fse3t_n(ji,jj,ikbt) / rn_tfrz0 ))**2._wp 
     385                     ztmp = tmask(ji,jj,ikbt) * ( vkarmn / LOG( 0.5_wp * e3t_n(ji,jj,ikbt) / rn_tfrz0 ))**2._wp 
    387386                     tfrcoef2d(ji,jj) = MAX(tfrcoef2d(ji,jj), ztmp) 
    388387                     tfrcoef2d(ji,jj) = MIN(tfrcoef2d(ji,jj), rn_tfri2_max) 
     
    424423             ikbu = mbku(ji,jj)       ! deepest ocean level at u- and v-points 
    425424             ikbv = mbkv(ji,jj) 
    426              zfru = 0.5 * fse3u(ji,jj,ikbu) / rdt 
    427              zfrv = 0.5 * fse3v(ji,jj,ikbv) / rdt 
     425             zfru = 0.5 * e3u_n(ji,jj,ikbu) / rdt 
     426             zfrv = 0.5 * e3v_n(ji,jj,ikbv) / rdt 
    428427             IF( ABS( bfrcoef2d(ji,jj) ) > zfru ) THEN 
    429428                IF( ln_ctl ) THEN 
     
    446445                ikbu = miku(ji,jj)       ! 1st wet ocean level at u- and v-points 
    447446                ikbv = mikv(ji,jj) 
    448                 zfru = 0.5 * fse3u(ji,jj,ikbu) / rdt 
    449                 zfrv = 0.5 * fse3v(ji,jj,ikbv) / rdt 
     447                zfru = 0.5 * e3u_n(ji,jj,ikbu) / rdt 
     448                zfrv = 0.5 * e3v_n(ji,jj,ikbv) / rdt 
    450449                IF( ABS( tfrcoef2d(ji,jj) ) > zfru ) THEN 
    451450                   IF( ln_ctl ) THEN 
Note: See TracChangeset for help on using the changeset viewer.