diff --git a/srcF/sfx_data.f90 b/srcF/sfx_data.f90 index 7ab691c9f4fa73904f1e96290d4856cf6ff25d22..5e252d7a54ebaca7e7546be71c3dae48d436736a 100644 --- a/srcF/sfx_data.f90 +++ b/srcF/sfx_data.f90 @@ -17,6 +17,7 @@ module sfx_data ! public interface ! -------------------------------------------------------------------------------- + public :: push_sfx_data ! -------------------------------------------------------------------------------- ! -------------------------------------------------------------------------------- @@ -79,4 +80,30 @@ module sfx_data end type ! -------------------------------------------------------------------------------- +contains + + ! -------------------------------------------------------------------------------- + subroutine push_sfx_data(sfx, sfx_cell, idx) + !> @brief helper subroutine for copying data in sfxDataVecType + ! ---------------------------------------------------------------------------- + type (sfxDataVecType), intent(inout) :: sfx + type (sfxDataType), intent(in) :: sfx_cell + integer, intent(in) :: idx + ! ---------------------------------------------------------------------------- + + sfx%zeta(idx) = sfx_cell%zeta + sfx%Rib(idx) = sfx_cell%Rib + sfx%Re(idx) = sfx_cell%Re + sfx%B(idx) = sfx_cell%B + sfx%z0_m(idx) = sfx_cell%z0_m + sfx%z0_t(idx) = sfx_cell%z0_t + sfx%Rib_conv_lim(idx) = sfx_cell%Rib_conv_lim + sfx%Cm(idx) = sfx_cell%Cm + sfx%Ct(idx) = sfx_cell%Ct + sfx%Km(idx) = sfx_cell%Km + sfx%Pr_t_inv(idx) = sfx_cell%Pr_t_inv + + end subroutine push_sfx_data + ! -------------------------------------------------------------------------------- + end module sfx_data \ No newline at end of file diff --git a/srcF/sfx_esm.f90 b/srcF/sfx_esm.f90 index 9dbe10ce7641670ee4ef27757b7e46e0ea856561..dd38ce4ab8ea35d070e519d1470e00754f061479 100644 --- a/srcF/sfx_esm.f90 +++ b/srcF/sfx_esm.f90 @@ -69,30 +69,6 @@ contains end subroutine get_surface_fluxes_vec ! -------------------------------------------------------------------------------- - ! -------------------------------------------------------------------------------- - subroutine push_sfx_data(sfx, sfx_cell, idx) - !> @brief helper subroutine for copying data in sfxDataVecType - ! ---------------------------------------------------------------------------- - type (sfxDataVecType), intent(inout) :: sfx - type (sfxDataType), intent(in) :: sfx_cell - integer, intent(in) :: idx - ! ---------------------------------------------------------------------------- - - sfx%zeta(idx) = sfx_cell%zeta - sfx%Rib(idx) = sfx_cell%Rib - sfx%Re(idx) = sfx_cell%Re - sfx%B(idx) = sfx_cell%B - sfx%z0_m(idx) = sfx_cell%z0_m - sfx%z0_t(idx) = sfx_cell%z0_t - sfx%Rib_conv_lim(idx) = sfx_cell%Rib_conv_lim - sfx%Cm(idx) = sfx_cell%Cm - sfx%Ct(idx) = sfx_cell%Ct - sfx%Km(idx) = sfx_cell%Km - sfx%Pr_t_inv(idx) = sfx_cell%Pr_t_inv - - end subroutine push_sfx_data - ! -------------------------------------------------------------------------------- - ! -------------------------------------------------------------------------------- subroutine get_surface_fluxes(sfx, meteo, numerics) !> @brief surface flux calculation for single cell @@ -263,6 +239,7 @@ contains phi_m = (1.0 - alpha_m * zeta)**(-0.25) phi_h = 1.0 / (Pr_t_0_inv * sqrt(1.0 - alpha_h_fix * zeta)) end if + ! ---------------------------------------------------------------------------- ! --- define transfer coeff. (momentum) & (heat) Cm = kappa / psi_m diff --git a/srcF/sfx_log.f90 b/srcF/sfx_log.f90 index 17815449f8ec59452e57b837b0a7727d4c4a8525..225eb377fe871894b1da2d0256f935386e36156a 100644 --- a/srcF/sfx_log.f90 +++ b/srcF/sfx_log.f90 @@ -65,30 +65,6 @@ contains end subroutine get_surface_fluxes_vec ! -------------------------------------------------------------------------------- - ! -------------------------------------------------------------------------------- - subroutine push_sfx_data(sfx, sfx_cell, idx) - !> @brief helper subroutine for copying data in sfxDataVecType - ! ---------------------------------------------------------------------------- - type (sfxDataVecType), intent(inout) :: sfx - type (sfxDataType), intent(in) :: sfx_cell - integer, intent(in) :: idx - ! ---------------------------------------------------------------------------- - - sfx%zeta(idx) = sfx_cell%zeta - sfx%Rib(idx) = sfx_cell%Rib - sfx%Re(idx) = sfx_cell%Re - sfx%B(idx) = sfx_cell%B - sfx%z0_m(idx) = sfx_cell%z0_m - sfx%z0_t(idx) = sfx_cell%z0_t - sfx%Rib_conv_lim(idx) = sfx_cell%Rib_conv_lim - sfx%Cm(idx) = sfx_cell%Cm - sfx%Ct(idx) = sfx_cell%Ct - sfx%Km(idx) = sfx_cell%Km - sfx%Pr_t_inv(idx) = sfx_cell%Pr_t_inv - - end subroutine push_sfx_data - ! -------------------------------------------------------------------------------- - ! -------------------------------------------------------------------------------- subroutine get_surface_fluxes(sfx, meteo, numerics) !> @brief surface flux calculation for single cell @@ -212,6 +188,7 @@ contains ! --- get the fluxes ! ---------------------------------------------------------------------------- call get_psi_neutral(psi_m, psi_h, zeta, h0_m, h0_t, B) + ! ---------------------------------------------------------------------------- phi_m = 1.0 phi_h = 1.0 / Pr_t_0_inv