From 11b664e20ee4dd3d7b688ed21c4e9a946d30a624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D1=8F=20=D0=A1?= =?UTF-8?q?=D1=83=D1=8F=D0=B7=D0=BE=D0=B2=D0=B0?= <viktoriasuazova@MacBook-Pro-Viktoria.local> Date: Sun, 8 Dec 2024 14:30:25 +0300 Subject: [PATCH] added if surface=snow in most_snow --- srcF/sfx_most_snow.f90 | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/srcF/sfx_most_snow.f90 b/srcF/sfx_most_snow.f90 index b603989..6bae4ba 100644 --- a/srcF/sfx_most_snow.f90 +++ b/srcF/sfx_most_snow.f90 @@ -189,7 +189,7 @@ contains ! --- get the fluxes ! ---------------------------------------------------------------------------- call get_dynamic_scales(Udyn, Tdyn, Qdyn, zeta, & - Lsnow, S_mean, h_salt, & + Lsnow, S_mean, h_salt, surface_type, & U, Tsemi, dT, dQ, h, z0_m, z0_t, (g / Tsemi), 10) ! ---------------------------------------------------------------------------- @@ -228,14 +228,14 @@ contains !< @brief get dynamic scales ! -------------------------------------------------------------------------------- subroutine get_dynamic_scales(Udyn, Tdyn, Qdyn, zeta, & - Lsnow, S_mean, h_salt, & + Lsnow, S_mean, h_salt, surface_type, & U, Tsemi, dT, dQ, z, z0_m, z0_t, beta, maxiters) ! ---------------------------------------------------------------------------- real, intent(out) :: Udyn, Tdyn, Qdyn !< dynamic scales real, intent(out) :: zeta !< = z/L real, intent(out) :: Lsnow, S_mean real, intent(out) :: h_salt - + integer, intent(in) :: surface_type real, intent(in) :: U !< abs(wind speed) at z real, intent(in) :: Tsemi !< semi-sum of temperature at z and at surface real, intent(in) :: dT, dQ !< temperature & humidity difference between z and at surface @@ -285,6 +285,7 @@ contains zeta = z * Linv !S_salt =0.0004 call S_mean_fun(S_salt, Udyn) + if (surface_type==3) then if (Udyn>u_thsnow) then call simpson_integration(d_s, 0.00000886, 0.0001, 1000); @@ -294,13 +295,10 @@ contains Linv=Linv*((1-S_mean)/(1+sigma_m*S_mean))+(g*w_snow*sigma_m*S_mean/(Udyn**3.0))/(1+sigma_m*S_mean) zeta = z * Linv Lsnow=1/Linv - write(*,*) S_mean, sigma_m, w_snow - !pause - !stop - - endif - - + endif + else + Linv = kappa * beta * (Tdyn + gamma * Qdyn * Tsemi) / (Udyn * Udyn) + endif end do -- GitLab