Changeset 14966


Ignore:
Timestamp:
2021-06-10T08:53:14+02:00 (6 months ago)
Author:
cbricaud
Message:

add scaling of mixing under sea-ice in GLS (as for TKE) ; see ticket #2604

Location:
NEMO/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/cfgs/SHARED/namelist_ref

    r14921 r14966  
    12341234   !                       !           = 2 roughness uses rn_hsri and is weighted by 1-fr_i 
    12351235   !                       !           = 3 roughness uses rn_hsri and is weighted by 1-MIN(1,4*fr_i) 
     1236   nn_mxlice     =     1   !  mixing under sea ice 
     1237                           !     = 0 No scaling under sea-ice 
     1238                           !     = 1 scaling with constant Ice-ocean roughness (rn_hsri) 
     1239                           !     = 2 scaling with mean sea-ice thickness 
     1240                           !     = 3 scaling with max sea-ice thickness 
    12361241   nn_bc_surf    =     1   !  surface condition (0/1=Dir/Neum) 
    12371242   nn_bc_bot     =     1   !  bottom condition (0/1=Dir/Neum) 
  • NEMO/trunk/src/OCE/ZDF/zdfgls.F90

    r14922 r14966  
    2626   USE zdfmxl         ! mixed layer 
    2727   USE sbcwave , ONLY : hsw   ! significant wave height 
     28#if defined key_si3 
     29   USE ice, ONLY: hm_i, h_i 
     30#endif 
     31#if defined key_cice 
     32   USE sbc_ice, ONLY: h_i 
     33#endif 
    2834   ! 
    2935   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
     
    5157   LOGICAL  ::   ln_length_lim     ! use limit on the dissipation rate under stable stratification (Galperin et al. 1988) 
    5258   LOGICAL  ::   ln_sigpsi         ! Activate Burchard (2003) modification for k-eps closure & wave breaking mixing 
     59   INTEGER  ::   nn_mxlice         ! type of scaling under sea-ice (=0/1/2/3) 
    5360   INTEGER  ::   nn_bc_surf        ! surface boundary condition (=0/1) 
    5461   INTEGER  ::   nn_bc_bot         ! bottom boundary condition (=0/1) 
     
    224231      ! 
    225232      ! adapt roughness where there is sea ice 
    226       DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    227          zhsro(ji,jj) = ( (1._wp-zice_fra(ji,jj)) * zhsro(ji,jj) + zice_fra(ji,jj) * rn_hsri )*tmask(ji,jj,1)  + & 
    228             &           (1._wp - tmask(ji,jj,1))*rn_hsro 
    229       END_2D 
     233      SELECT CASE( nn_mxlice )       ! Type of scaling under sea-ice 
     234      ! 
     235      CASE( 1 )                      ! scaling with constant sea-ice roughness 
     236         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
     237            zhsro(ji,jj) = ( (1._wp-zice_fra(ji,jj)) * zhsro(ji,jj) + zice_fra(ji,jj) * rn_hsri )*tmask(ji,jj,1)  + (1._wp - tmask(ji,jj,1))*rn_hsro 
     238         END_2D 
     239         ! 
     240      CASE( 2 )                      ! scaling with mean sea-ice thickness 
     241#if defined key_si3 
     242         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
     243            zhsro(ji,jj) = ( (1._wp-zice_fra(ji,jj)) * zhsro(ji,jj) + zice_fra(ji,jj) * hm_i(ji,jj) )*tmask(ji,jj,1)  + (1._wp - tmask(ji,jj,1))*rn_hsro 
     244         END_2D 
     245#endif 
     246         ! 
     247      CASE( 3 )                      ! scaling with max sea-ice thickness 
     248#if defined key_si3 || defined key_cice 
     249         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
     250            zhsro(ji,jj) = ( (1._wp-zice_fra(ji,jj)) * zhsro(ji,jj) + zice_fra(ji,jj) * MAXVAL(h_i(ji,jj,:)) )*tmask(ji,jj,1)  + (1._wp - tmask(ji,jj,1))*rn_hsro 
     251         END_2D 
     252#endif 
     253         ! 
     254      END SELECT 
    230255      ! 
    231256      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )  !==  Compute dissipation rate  ==! 
     
    799824      NAMELIST/namzdf_gls/rn_emin, rn_epsmin, ln_length_lim,       & 
    800825         &            rn_clim_galp, ln_sigpsi, rn_hsro, rn_hsri,   & 
    801          &            rn_crban, rn_charn, rn_frac_hs,              & 
     826         &            nn_mxlice, rn_crban, rn_charn, rn_frac_hs,   & 
    802827         &            nn_bc_surf, nn_bc_bot, nn_z0_met, nn_z0_ice, & 
    803828         &            nn_stab_func, nn_clos 
     
    839864         WRITE(numout,*) '      Type of closure                               nn_clos        = ', nn_clos 
    840865         WRITE(numout,*) '      Surface roughness (m)                         rn_hsro        = ', rn_hsro 
    841          WRITE(numout,*) '      Ice-ocean roughness (used if nn_z0_ice/=0)    rn_hsri        = ', rn_hsri 
     866         WRITE(numout,*) '      type of scaling under sea-ice                 nn_mxlice      = ', nn_mxlice 
     867         IF( nn_mxlice == 1 ) & 
     868            WRITE(numout,*) '      Ice-ocean roughness (used if nn_z0_ice/=0) rn_hsri        = ', rn_hsri 
     869         SELECT CASE( nn_mxlice )             ! Type of scaling under sea-ice 
     870            CASE( 0 )   ;   WRITE(numout,*) '   ==>>>   No scaling under sea-ice' 
     871            CASE( 1 )   ;   WRITE(numout,*) '   ==>>>   scaling with constant sea-ice thickness' 
     872            CASE( 2 )   ;   WRITE(numout,*) '   ==>>>   scaling with mean     sea-ice thickness' 
     873            CASE( 3 )   ;   WRITE(numout,*) '   ==>>>   scaling with max      sea-ice thickness' 
     874            CASE DEFAULT 
     875               CALL ctl_stop( 'zdf_tke_init: wrong value for nn_mxlice, should be 0,1,2,3 ') 
     876         END SELECT 
    842877         WRITE(numout,*) 
    843878      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.