diff --git a/srcF/sfx_surface.f90 b/srcF/sfx_surface.f90 index a07ed3752f2403a59cc7facc254761c29d3d6983..36051e503242c7c0a6ac5eb642b5dcf615ec92c7 100644 --- a/srcF/sfx_surface.f90 +++ b/srcF/sfx_surface.f90 @@ -98,20 +98,20 @@ module sfx_surface integer, public, parameter :: ocean_z0m_id = z0m_ch !< ocean surface integer, public, parameter :: land_z0m_id = z0m_map_id !< land surface - integer, public, parameter :: lake_z0m_id = z0m_map_id !< lake surface - integer, public, parameter :: snow_z0m_id = z0m_map_id !< snow covered surface + integer, public, parameter :: lake_z0m_id = z0m_fe !< lake surface + integer, public, parameter :: snow_z0m_id = z0m_ow !< snow covered surface integer, public, parameter :: forest_z0m_id = z0m_map_id !< forest csurface integer, public, parameter :: usersf_z0m_id = z0m_ch !< user surface - integer, public, parameter :: ice_z0m_id = z0m_ch !< ice surface + integer, public, parameter :: ice_z0m_id = z0m_map_id !< ice surface integer, public, parameter :: ocean_z0t_id = z0t_kl_water !< ocean surface - integer, public, parameter :: land_z0t_id = z0t_kl_land !< land surface - integer, public, parameter :: lake_z0t_id = z0t_kl_land !< lake surface - integer, public, parameter :: snow_z0t_id = z0t_kl_land !< snow covered surface - integer, public, parameter :: forest_z0t_id = z0t_kl_land !< forest csurface + integer, public, parameter :: land_z0t_id = z0t_zi !< land surface + integer, public, parameter :: lake_z0t_id = z0t_cz !< lake surface + integer, public, parameter :: snow_z0t_id = z0t_cz !< snow covered surface + integer, public, parameter :: forest_z0t_id = z0t_zi !< forest csurface integer, public, parameter :: usersf_z0t_id = z0t_kl_water !< user surface - integer, public, parameter :: ice_z0t_id = z0t_kl_water !< user surface + integer, public, parameter :: ice_z0t_id = z0t_ca !< user surface ! -------------------------------------------------------------------------------- real, parameter, private :: kappa = 0.40 !< von Karman constant [n/d] diff --git a/srcF/sfx_z0m_all_surface.f90 b/srcF/sfx_z0m_all_surface.f90 index 1f8b69c635eb91278ba7b1ad4e76733722d2cd67..e39a9133ee4ce44702f5813208cfe92269b8d87d 100644 --- a/srcF/sfx_z0m_all_surface.f90 +++ b/srcF/sfx_z0m_all_surface.f90 @@ -52,7 +52,7 @@ module sfx_z0m_all_surface real, intent(in) :: U !< abs(wind speed) [m/s] integer, intent(in) :: maxiters !< maximum number of iterations ! ---------------------------------------------------------------------------- - + ! --- local variables real :: Uc ! wind speed at h_charnock [m/s] @@ -66,7 +66,7 @@ module sfx_z0m_all_surface a = 0.0 b = 25.0 c_min = log(h_charnock) / kappa - + write(*,*) 'sfx_ch' do i = 1, maxiters f = c1_charnock - 2.0 * log(Uc) do j = 1, maxiters @@ -98,7 +98,7 @@ module sfx_z0m_all_surface real, intent(in) :: U !< abs(wind speed) [m/s] integer, intent(in) :: maxiters !< maximum number of iterations ! ---------------------------------------------------------------------------- - + ! --- local variables real :: Uc ! wind speed at h_charnock [m/s] @@ -107,6 +107,7 @@ module sfx_z0m_all_surface integer :: i, j ! ---------------------------------------------------------------------------- + write(*,*) 'sfx_ow' Uc=U C_z0=0.007 betta_u=0.111 @@ -138,7 +139,7 @@ module sfx_z0m_all_surface real, intent(in) :: h !< constant flux layer height [m] integer, intent(in) :: maxiters !< maximum number of iterations ! ---------------------------------------------------------------------------- - + ! --- local variables real :: Uc ! wind speed at h_charnock [m/s] @@ -149,7 +150,7 @@ module sfx_z0m_all_surface integer :: i, j ! ---------------------------------------------------------------------------- - + write(*,*) 'sfx_fe' Uc = U a = 0.0 b = 25.0 @@ -199,7 +200,7 @@ subroutine get_dynamic_roughness_map(z0_m, u_dyn0, U, h, z0m_map) real, intent(in) :: U !< abs(wind speed) [m/s] ! ---------------------------------------------------------------------------- real :: h0_m - + write(*,*) 'sfx_map' z0_m=z0m_map h0_m = h / z0_m u_dyn0 = U * kappa / log(h0_m) diff --git a/srcF/sfx_z0t_all_surface.f90 b/srcF/sfx_z0t_all_surface.f90 index 7db8d57478042679ef55ed26373ebb841329c2ad..751a0c7b668c9405a393e92b73cc55918e661e12 100644 --- a/srcF/sfx_z0t_all_surface.f90 +++ b/srcF/sfx_z0t_all_surface.f90 @@ -63,7 +63,7 @@ module sfx_z0t_all_surface real, intent(in) :: z0_m !< aerodynamic roughness [m] real, intent(in) :: Re !< roughness Reynolds number [n/d] ! ---------------------------------------------------------------------------- - + write(*,*) 'sfx_kl_water' !--- define B = log(z0_m / z0_t) if (Re <= Re_rough_min) then B = B1_rough * alog(B3_rough * Re) + B2_rough @@ -91,7 +91,7 @@ module sfx_z0t_all_surface real, intent(in) :: Re !< roughness Reynolds number [n/d] - + write(*,*) 'sfx_cz' B=(kappa*10.0**(-0.4*z0_m/0.07))*(Re**0.45) !Chen and Zhang ! --- define roughness [thermal] @@ -111,7 +111,7 @@ module sfx_z0t_all_surface real, intent(in) :: Re !< roughness Reynolds number [n/d] - + write(*,*) 'sfx_zi' B=0.1*kappa*(Re**0.5) !6-Zilitinkevich