@@ -246,7 +246,7 @@ module MOM_energetic_PBL
246246! ! mixed layer model. It assumes that heating, cooling and freshwater fluxes
247247! ! have already been applied. All calculations are done implicitly, and there
248248! ! is no stability limit on the time step.
249- subroutine energetic_PBL (h_3d , u_3d , v_3d , tv , fluxes , t_rp , dt , Kd_int , G , GV , US , CS , &
249+ subroutine energetic_PBL (h_3d , u_3d , v_3d , tv , fluxes , t_rp , stoch_epbl , dt , Kd_int , G , GV , US , CS , &
250250 dSV_dT , dSV_dS , TKE_forced , buoy_flux , dt_diag , last_call , &
251251 dT_expected , dS_expected , Waves )
252252 type (ocean_grid_type), intent (inout ) :: G ! < The ocean's grid structure.
@@ -285,6 +285,7 @@ subroutine energetic_PBL(h_3d, u_3d, v_3d, tv, fluxes, t_rp, dt, Kd_int, G, GV,
285285 ! ! call to mixedlayer_init.
286286 real , dimension (SZI_(G),SZJ_(G),2 ), &
287287 intent (in ) :: t_rp ! < random pattern to perturb wind
288+ logical , intent (in ) :: stoch_epbl ! < flag to pertrub production and dissipation of TKE
288289 real , dimension (SZI_(G),SZJ_(G)), &
289290 intent (in ) :: buoy_flux ! < The surface buoyancy flux [Z2 T-3 ~> m2 s-3].
290291 real , optional , intent (in ) :: dt_diag ! < The diagnostic time step, which may be less
@@ -438,8 +439,7 @@ subroutine energetic_PBL(h_3d, u_3d, v_3d, tv, fluxes, t_rp, dt, Kd_int, G, GV,
438439 do K= 1 ,nz+1 ; Kd(K) = 0.0 ; enddo
439440
440441 ! Make local copies of surface forcing and process them.
441- ! print*,'PJP EPBL',minval(t_rp),maxval(t_rp)
442- u_star = fluxes% ustar(i,j)! *t_rp(i,j)
442+ u_star = fluxes% ustar(i,j)
443443 u_star_Mean = fluxes% ustar_gustless(i,j)
444444 B_flux = buoy_flux(i,j)
445445 if (associated (fluxes% ustar_shelf) .and. associated (fluxes% frac_shelf_h)) then
@@ -463,7 +463,7 @@ subroutine energetic_PBL(h_3d, u_3d, v_3d, tv, fluxes, t_rp, dt, Kd_int, G, GV,
463463
464464 call ePBL_column(h, u, v, T0, S0, dSV_dT_1d, dSV_dS_1d, TKE_forcing, B_flux, absf, &
465465 u_star, u_star_mean, dt, MLD_io, Kd, mixvel, mixlen, GV, &
466- US, CS, eCD, t_rp(i,j,1 ),t_rp(i,j,2 ), dt_diag= dt_diag, Waves= Waves, G= G, i= i, j= j)
466+ US, CS, eCD, t_rp(i,j,1 ),t_rp(i,j,2 ), stoch_epbl, dt_diag= dt_diag, Waves= Waves, G= G, i= i, j= j)
467467
468468 ! applly stochastic perturbation to TKE generation
469469
@@ -548,7 +548,7 @@ end subroutine energetic_PBL
548548! ! mixed layer model for a single column of water.
549549subroutine ePBL_column (h , u , v , T0 , S0 , dSV_dT , dSV_dS , TKE_forcing , B_flux , absf , &
550550 u_star , u_star_mean , dt , MLD_io , Kd , mixvel , mixlen , GV , US , CS , eCD , &
551- t_rp1 ,t_rp2 , dt_diag , Waves , G , i , j )
551+ t_rp1 ,t_rp2 , stoch_epbl , dt_diag , Waves , G , i , j )
552552 type (verticalGrid_type), intent (in ) :: GV ! < The ocean's vertical grid structure.
553553 type (unit_scale_type), intent (in ) :: US ! < A dimensional unit scaling type
554554 real , dimension (SZK_(GV)), intent (in ) :: h ! < Layer thicknesses [H ~> m or kg m-2].
@@ -587,7 +587,8 @@ subroutine ePBL_column(h, u, v, T0, S0, dSV_dT, dSV_dS, TKE_forcing, B_flux, abs
587587 ! ! call to mixedlayer_init.
588588 type (ePBL_column_diags), intent (inout ) :: eCD ! < A container for passing around diagnostics.
589589 real , intent (in ) :: t_rp1 ! < random value to perturb TKE production
590- real , intent (in ) :: t_rp2 ! < random value to perturb TKE production
590+ real , intent (in ) :: t_rp2 ! < random value to perturb TKE dissipation
591+ logical , intent (in ) :: stoch_epbl ! < flag to pertrub production and dissipation of TKE
591592 real , optional , intent (in ) :: dt_diag ! < The diagnostic time step, which may be less
592593 ! ! than dt if there are two calls to mixedlayer [T ~> s].
593594 type (wave_parameters_CS), &
@@ -888,8 +889,8 @@ subroutine ePBL_column(h, u, v, T0, S0, dSV_dT, dSV_dS, TKE_forcing, B_flux, abs
888889 else
889890 mech_TKE = MSTAR_total * (dt* GV% Rho0* u_star** 3 )
890891 endif
891- ! stochastically pertrub mech_TKE
892- mech_TKE= mech_TKE* t_rp1
892+ ! stochastically pertrub mech_TKE in the UFS
893+ if (stoch_epbl) mech_TKE= mech_TKE* t_rp1
893894
894895 if (CS% TKE_diagnostics) then
895896 eCD% dTKE_conv = 0.0 ; eCD% dTKE_mixing = 0.0
@@ -973,7 +974,7 @@ subroutine ePBL_column(h, u, v, T0, S0, dSV_dT, dSV_dS, TKE_forcing, B_flux, abs
973974 if (CS% TKE_diagnostics) &
974975 ! eCD%dTKE_mech_decay = eCD%dTKE_mech_decay + (exp_kh-1.0) * mech_TKE * I_dtdiag
975976 eCD% dTKE_mech_decay = exp_kh
976- mech_TKE = mech_TKE * (1 + (exp_kh-1 ) * t_rp2)
977+ if (stoch_epbl) mech_TKE = mech_TKE * (1 + (exp_kh-1 ) * t_rp2)
977978
978979 ! Accumulate any convectively released potential energy to contribute
979980 ! to wstar and to drive penetrating convection.
0 commit comments