- Timestamp:
- 2020-05-25T12:04:00+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdfgls.F90
r11536 r12966 146 146 REAL(wp) :: gh, gm, shr, dif, zsqen, zavt, zavm ! - - 147 147 REAL(wp) :: zmsku, zmskv ! - - 148 REAL(wp) :: rn_hsri ! ice ocean roughness 148 149 REAL(wp), DIMENSION(jpi,jpj) :: zdep 149 150 REAL(wp), DIMENSION(jpi,jpj) :: zkar 150 151 REAL(wp), DIMENSION(jpi,jpj) :: zflxs ! Turbulence fluxed induced by internal waves 151 152 REAL(wp), DIMENSION(jpi,jpj) :: zhsro ! Surface roughness (surface waves) 153 REAL(wp), DIMENSION(jpi,jpj) :: ziconc ! Tapering of wave breaking under sea ice 152 154 REAL(wp), DIMENSION(jpi,jpj,jpk) :: eb ! tke at time before 153 155 REAL(wp), DIMENSION(jpi,jpj,jpk) :: hmxl_b ! mixing length at time before … … 165 167 ustar2_bot (:,:) = 0._wp 166 168 169 ziconc(:,:) = 1._wp - TANH(fr_i(:,:) * 10._wp) 167 170 ! Compute surface, top and bottom friction at T-points 168 171 DO jj = 2, jpjm1 … … 206 209 END SELECT 207 210 ! 211 rn_hsri = 0.03_wp 212 zhsro(:,:) = (ziconc(:,:) * zhsro(:,:) + (1._wp - ziconc(:,:)) * rn_hsri)*tmask(:,:,1) + (1._wp - tmask(:,:,1)) * rn_hsro 208 213 DO jk = 2, jpkm1 !== Compute dissipation rate ==! 209 214 DO jj = 1, jpjm1 … … 300 305 CASE ( 0 ) ! Dirichlet boundary condition (set e at k=1 & 2) 301 306 ! First level 302 en (:,:,1) = MAX( rn_emin , rc02r * ustar2_surf(:,:) * (1._wp + rsbc_tke1)**r2_3 )307 en (:,:,1) = MAX( rn_emin , rc02r * ustar2_surf(:,:) * (1._wp + ziconc(:,:)*rsbc_tke1)**r2_3 ) 303 308 zd_lw(:,:,1) = en(:,:,1) 304 309 zd_up(:,:,1) = 0._wp … … 306 311 ! 307 312 ! One level below 308 en (:,:,2) = MAX( rc02r * ustar2_surf(:,:) * ( 1._wp + rsbc_tke1 * ((zhsro(:,:)+gdepw_n(:,:,2)) &313 en (:,:,2) = MAX( rc02r * ustar2_surf(:,:) * ( 1._wp + ziconc(:,:)*rsbc_tke1 * ((zhsro(:,:)+gdepw_n(:,:,2)) & 309 314 & / zhsro(:,:) )**(1.5_wp*ra_sf) )**(2._wp/3._wp) , rn_emin ) 310 315 zd_lw(:,:,2) = 0._wp … … 316 321 ! 317 322 ! Dirichlet conditions at k=1 318 en (:,:,1) = MAX( rc02r * ustar2_surf(:,:) * (1._wp + rsbc_tke1)**r2_3 , rn_emin )323 en (:,:,1) = MAX( rc02r * ustar2_surf(:,:) * (1._wp + ziconc(:,:)*rsbc_tke1)**r2_3 , rn_emin ) 319 324 zd_lw(:,:,1) = en(:,:,1) 320 325 zd_up(:,:,1) = 0._wp … … 326 331 zd_lw(:,:,2) = 0._wp 327 332 zkar (:,:) = (rl_sf + (vkarmn-rl_sf)*(1.-EXP(-rtrans*gdept_n(:,:,1)/zhsro(:,:)) )) 328 zflxs(:,:) = rsbc_tke2 * ustar2_surf(:,:)**1.5_wp * zkar(:,:) &333 zflxs(:,:) = rsbc_tke2 * ziconc(:,:) * ustar2_surf(:,:)**1.5_wp * zkar(:,:) & 329 334 & * ( ( zhsro(:,:)+gdept_n(:,:,1) ) / zhsro(:,:) )**(1.5_wp*ra_sf) 330 335 !!gm why not : * ( 1._wp + gdept_n(:,:,1) / zhsro(:,:) )**(1.5_wp*ra_sf) … … 577 582 zkar (:,:) = rl_sf + (vkarmn-rl_sf)*(1._wp-EXP(-rtrans*gdept_n(:,:,1)/zhsro(:,:) )) ! Lengh scale slope 578 583 zdep (:,:) = ((zhsro(:,:) + gdept_n(:,:,1)) / zhsro(:,:))**(rmm*ra_sf) 579 zflxs(:,:) = (rnn + rsbc_tke1 * (rnn + rmm*ra_sf) * zdep(:,:))*(1._wp +rsbc_tke1*zdep(:,:))**(2._wp*rmm/3._wp-1_wp)584 zflxs(:,:) = (rnn + ziconc(:,:)*rsbc_tke1 * (rnn + rmm*ra_sf) * zdep(:,:))*(1._wp + ziconc(:,:)*rsbc_tke1*zdep(:,:))**(2._wp*rmm/3._wp-1_wp) 580 585 zdep (:,:) = rsbc_psi1 * (zwall_psi(:,:,1)*p_avm(:,:,1)+zwall_psi(:,:,2)*p_avm(:,:,2)) * & 581 586 & ustar2_surf(:,:)**rmm * zkar(:,:)**rnn * (zhsro(:,:) + gdept_n(:,:,1))**(rnn-1.)
Note: See TracChangeset
for help on using the changeset viewer.