Skip to content
Snippets Groups Projects
Commit 7e5dcea5 authored by Виктория Суязова's avatar Виктория Суязова Committed by Anna Shestakova
Browse files

bug fixed, build/run ok

parent 9f276a85
Branches
No related tags found
No related merge requests found
......@@ -83,10 +83,10 @@ set(SOURCES_F
srcF/sfx_log_param.f90
srcF/sfx_run.f90
srcF/sfx_phys_const.f90
srcF/sfx_z0m_all_surface
srcF/sfx_z0t_all_surface
srcF/sfx_z0m_all
srcF/sfx_z0t_all
srcF/sfx_z0m_all_surface.f90
srcF/sfx_z0t_all_surface.f90
srcF/sfx_z0m_all.f90
srcF/sfx_z0t_all.f90
srcF/sfx_surface.f90
srcF/sfx_most.f90
srcF/sfx_most_param.f90
......
......@@ -10,7 +10,7 @@ ifeq ($(COMPILER),gnu)
FC = gfortran
endif
OBJ_F90 = sfx_phys_const.o sfx_common.o sfx_io.o sfx_data.o sfx_surface.o sfx_log_param.o sfx_log.o sfx_most_param.o sfx_most.o sfx_sheba_param.o sfx_sheba.o sfx_esm_param.o sfx_esm.o sfx_main.o
OBJ_F90 = sfx_phys_const.o sfx_common.o sfx_config.o sfx_io.o sfx_data.o sfx_surface.o sfx_log_param.o sfx_log.o sfx_most_param.o sfx_most.o sfx_most_snow_param.o sfx_most_snow.o sfx_sheba_param.o sfx_sheba.o sfx_esm_param.o sfx_esm.o sfx_run.o sfx_main.o
OBJ_F =
OBJ = $(OBJ_F90) $(OBJ_F)
......
......@@ -23,6 +23,7 @@ module sfx_most_snow
! --------------------------------------------------------------------------------
public :: get_surface_fluxes
public :: get_surface_fluxes_vec
public :: get_psi
! --------------------------------------------------------------------------------
! --------------------------------------------------------------------------------
......@@ -35,12 +36,11 @@ module sfx_most_snow
contains
! --------------------------------------------------------------------------------
subroutine get_surface_fluxes_vec(sfx, sfx2, meteo, numerics, n)
subroutine get_surface_fluxes_vec(sfx, meteo, numerics, n)
!< @brief surface flux calculation for array data
!< @details contains C/C++ & CUDA interface
! ----------------------------------------------------------------------------
type (sfxDataVecType), intent(inout) :: sfx
type (sfxDataAddVecType), intent(inout) :: sfx2
type (meteoDataVecType), intent(in) :: meteo
type (numericsType), intent(in) :: numerics
......@@ -50,7 +50,7 @@ contains
! --- local variables
type (meteoDataType) meteo_cell
type (sfxDataType) sfx_cell
type (sfxDataAddType) sfx2_cell
integer i
! ----------------------------------------------------------------------------
......@@ -60,17 +60,17 @@ contains
U = meteo%U(i), dT = meteo%dT(i), Tsemi = meteo%Tsemi(i), dQ = meteo%dQ(i), &
z0_m = meteo%z0_m(i))
call get_surface_fluxes(sfx_cell, sfx2_cell, meteo_cell, numerics)
call get_surface_fluxes(sfx_cell, meteo_cell, numerics)
call push_sfx_data(sfx, sfx_cell, i)
call push_sfx_data_add(sfx2, sfx2_cell, i)
end do
end subroutine get_surface_fluxes_vec
! --------------------------------------------------------------------------------
! --------------------------------------------------------------------------------
subroutine get_surface_fluxes(sfx, sfx2, meteo, numerics)
subroutine get_surface_fluxes(sfx, meteo, numerics)
!< @brief surface flux calculation for single cell
!< @details contains C/C++ interface
! ----------------------------------------------------------------------------
......@@ -79,7 +79,6 @@ contains
#endif
type (sfxDataType), intent(out) :: sfx
type (sfxDataAddType), intent(out) :: sfx2
type (meteoDataType), intent(in) :: meteo
type (numericsType), intent(in) :: numerics
! ----------------------------------------------------------------------------
......@@ -142,10 +141,6 @@ contains
Rib_conv_lim = NaN, &
Cm = NaN, Ct = NaN, Km = NaN, Pr_t_inv = NaN)
sfx2 = sfxDataAddType(phi_m = NaN, phi_h = NaN, &
hfx = NaN, mfx = NaN, Udyn = NaN, S_mean = NaN, &
Lsnow = NaN, &
z0_s = NaN, h_salt = NaN)
return
......@@ -174,12 +169,6 @@ contains
call get_charnock_roughness(z0_m, u_dyn0, U, h, numerics%maxiters_charnock)
! --- define relative height
h0_m = h / z0_m
endif
if (surface_type == surface_snow) then
! --- define surface roughness [momentum] & dynamic velocity in neutral conditions
call get_snow_roughness(z0_m, u_dyn0, U, h, numerics%maxiters_snow)
! --- define relative height
h0_m = h / z0_m
endif
if (surface_type == surface_land) then
! --- define relative height
......@@ -190,7 +179,7 @@ contains
! --- define thermal roughness & B = log(z0_m / z0_h)
Re = u_dyn0 * z0_m / nu_air
call get_thermal_roughness(z0_t, B, z0_m, Re, surface_type, u_dyn0)
call get_thermal_roughness(z0_t, B, z0_m, Re, surface_type)
! --- define relative height [thermal]
h0_t = h / z0_t
......@@ -233,10 +222,7 @@ contains
Rib_conv_lim = 0.0, &
Cm = Cm, Ct = Ct, Km = Km, Pr_t_inv = Pr_t_inv)
! --- setting additional output
sfx2 = sfxDataAddType(phi_m = phi_m, phi_h = phi_h, &
hfx = hfx, mfx = mfx, Udyn = Udyn, S_mean = S_mean, &
Lsnow = Lsnow, &
z0_s = z0_m, h_salt = h_s)
end subroutine get_surface_fluxes
! --------------------------------------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment