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 12966 for NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdftke.F90 – NEMO

Ignore:
Timestamp:
2020-05-25T12:04:00+02:00 (4 years ago)
Author:
jchanut
Message:

Switch to log-law bcs below ice in tke and gls - hard coded 3cm ice-ocean roughness: #2468

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdftke.F90

    r12703 r12966  
    195195      REAL(wp) ::   zrhoa  = 1.22              ! Air density kg/m3 
    196196      REAL(wp) ::   zcdrag = 1.5e-3            ! drag coefficient 
    197       REAL(wp) ::   zbbrau, zri                ! local scalars 
     197      REAL(wp) ::   zbbrau, zbbrau0, zri       ! local scalars 
    198198      REAL(wp) ::   zfact1, zfact2, zfact3     !   -         - 
    199199      REAL(wp) ::   ztx2  , zty2  , zcof       !   -         - 
     
    202202      REAL(wp) ::   zzd_up, zzd_lw             !   -         - 
    203203      INTEGER , DIMENSION(jpi,jpj)     ::   imlc 
     204      REAL(wp), DIMENSION(jpi,jpj)     ::   ziconc 
    204205      REAL(wp), DIMENSION(jpi,jpj)     ::   zhlc, zfr_i 
    205206      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zpelc, zdiag, zd_up, zd_lw 
     
    207208      ! 
    208209      zbbrau = rn_ebb / rau0       ! Local constant initialisation 
     210      zbbrau0 = 3.75_wp / rau0 
    209211      zfact1 = -.5_wp * rdt  
    210212      zfact2 = 1.5_wp * rdt * rn_ediss 
     
    214216      !                     !  Surface/top/bottom boundary condition on tke 
    215217      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    216        
     218      ziconc(:,:) = 1._wp - TANH(fr_i(:,:) * 10._wp)       
     219      ! 
    217220      DO jj = 2, jpjm1            ! en(1)   = rn_ebb taum / rau0  (min value rn_emin0) 
    218221         DO ji = fs_2, fs_jpim1   ! vector opt. 
    219             en(ji,jj,1) = MAX( rn_emin0, zbbrau * taum(ji,jj) ) * tmask(ji,jj,1) 
     222            en(ji,jj,1) = MAX( rn_emin0, (ziconc(ji,jj)*zbbrau + (1._wp-ziconc(ji,jj))*zbbrau0) & 
     223                             & * taum(ji,jj) ) * tmask(ji,jj,1) 
    220224         END DO 
    221225      END DO 
     
    249253                  zetop = - 0.001875_wp * rCdU_top(ji,jj) * SQRT(  ( zmsku*( ub(ji,jj,mikt(ji,jj))+ub(ji-1,jj,mikt(ji,jj)) ) )**2  & 
    250254                     &                                           + ( zmskv*( vb(ji,jj,mikt(ji,jj))+vb(ji,jj-1,mikt(ji,jj)) ) )**2  ) 
    251                   en(ji,jj,mikt(ji,jj)) = en(ji,jj,1)           * tmask(ji,jj,1) & 
     255                  en(ji,jj,mikt(ji,jj)) = en(ji,jj,1)           * tmask(ji,jj,1) &      
    252256                     &                  + MAX( zetop, rn_emin ) * (1._wp - tmask(ji,jj,1)) * ssmask(ji,jj) 
    253257               END DO 
     
    479483      REAL(wp) ::   zdku,   zdkv, zsqen       !   -      - 
    480484      REAL(wp) ::   zemxl, zemlm, zemlp       !   -      - 
     485      REAL(wp) ::   rn_hsri 
     486      REAL(wp), DIMENSION(jpi,jpj) :: ziconc 
    481487      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmxlm, zmxld   ! 3D workspace 
    482488      !!-------------------------------------------------------------------- 
     
    502508         zmxlm(:,:,1) = rn_mxl0 
    503509      ENDIF 
     510      ziconc(:,:) = 1._wp - TANH(fr_i(:,:) * 10._wp) 
     511      rn_hsri = vkarmn * 0.03_wp ! Sea ice roughness 
     512      zmxlm(:,:,1) =  (ziconc(:,:) * zmxlm(:,:,1) + (1._wp - ziconc(:,:)) * rn_hsri)*tmask(:,:,1)  & 
     513                 & + (1._wp - tmask(:,:,1)) * rn_mxl0 
    504514      ! 
    505515      DO jk = 2, jpkm1              ! interior value : l=sqrt(2*e/n^2) 
Note: See TracChangeset for help on using the changeset viewer.