From 27208b0bfa7b0e37a8cb630f480bb57e186c7ce3 Mon Sep 17 00:00:00 2001 From: Daoud Date: Wed, 12 Jun 2024 14:55:35 +0200 Subject: [PATCH 01/90] add groundwater table --- src/+conductivity/calculateVaporVariables.m | 5 + src/+dryair/assembleCoefficientMatrices.m | 36 +++-- src/+dryair/calculateBoundaryConditions.m | 22 ++- src/+dryair/calculateDryAirParameters.m | 13 +- src/+dryair/calculateMatricCoefficients.m | 10 +- src/+dryair/solveDryAirEquations.m | 12 +- src/+dryair/solveTridiagonalMatrixEquations.m | 17 ++- src/+energy/assembleCoefficientMatrices.m | 42 +++--- src/+energy/calculateBoundaryConditions.m | 24 ++-- src/+energy/calculateEnergyFluxes.m | 10 +- src/+energy/calculateEnergyParameters.m | 37 ++++- src/+energy/calculateMatricCoefficients.m | 10 +- src/+energy/solveEnergyBalanceEquations.m | 38 +++-- src/+energy/solveTridiagonalMatrixEquations.m | 24 +++- .../calculateGroundwaterRecharge.m | 131 ++++++++++++++++++ src/+groundwater/findPhreaticSurface.m | 81 +++++++++++ src/+groundwater/readGroundwaterSettings.m | 126 +++++++++++++++++ src/+io/bin_to_csv.m | 57 ++++++-- src/+io/create_output_files_binary.m | 18 ++- src/+io/loadForcingData.m | 44 +++++- src/+io/output_data_binary.m | 57 +++++++- .../assembleCoefficientMatrices.m | 10 +- .../calculateBoundaryConditions.m | 33 ++--- .../calculateEvapotranspiration.m | 20 ++- .../calculateMatricCoefficients.m | 10 +- src/+soilmoisture/calculateTimeDerivatives.m | 42 +++--- src/+soilmoisture/calculatesSoilWaterFluxes.m | 10 +- src/+soilmoisture/solveSoilMoistureBalance.m | 25 ++-- .../solveTridiagonalMatrixEquations.m | 23 ++- src/STEMMUS_SCOPE.m | 100 ++++++++++--- src/STEMMUS_SCOPE_exe.m | 11 +- src/calc_rsoil.m | 30 +++- src/ebal.m | 6 +- 33 files changed, 943 insertions(+), 191 deletions(-) create mode 100644 src/+groundwater/calculateGroundwaterRecharge.m create mode 100644 src/+groundwater/findPhreaticSurface.m create mode 100644 src/+groundwater/readGroundwaterSettings.m diff --git a/src/+conductivity/calculateVaporVariables.m b/src/+conductivity/calculateVaporVariables.m index 6240e709..5d5e5a53 100644 --- a/src/+conductivity/calculateVaporVariables.m +++ b/src/+conductivity/calculateVaporVariables.m @@ -41,6 +41,11 @@ if SoilVariables.DVT_Switch == 1 Eta(i, j) = ThermalConductivityCapacity.ZETA(i, j) * EnhnLiqIsland / (f0 * Theta_g(i, j)); + % When Theta_g(i, j) = 0, both EnhnLiqIsland and f0 have too low values -> leading to extreme large value of Eta and QVT, ... + % The follwoing line (if condtion) tries to solve this issue mentioned also in (https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/230) + if Theta_g(i, j) <= 1e-2 % added by Mostafa + Eta(i, j) = 0; + end else Eta(i, j) = 0; end diff --git a/src/+dryair/assembleCoefficientMatrices.m b/src/+dryair/assembleCoefficientMatrices.m index d2f31352..86846e36 100644 --- a/src/+dryair/assembleCoefficientMatrices.m +++ b/src/+dryair/assembleCoefficientMatrices.m @@ -1,4 +1,4 @@ -function [RHS, AirMatrices, SAVE] = assembleCoefficientMatrices(AirMatrices, SoilVariables, Delt_t, P_g) +function [RHS, AirMatrices, SAVE] = assembleCoefficientMatrices(AirMatrices, SoilVariables, Delt_t, P_g, GroundwaterSettings) %{ Assemble the coefficient matrices of Equation 4.32 STEMMUS Technical Notes, page 44, for dry air equation. @@ -20,14 +20,20 @@ % Alias of SoilVariables SV = SoilVariables; + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + if ModelSettings.Thmrlefc - RHS(1) = -C7(1) + (C3(1, 1) * P_g(1) + C3(1, 2) * P_g(2)) / Delt_t ... - - (C2(1, 1) / Delt_t + C5(1, 1)) * SV.TT(1) - (C2(1, 2) / Delt_t + C5(1, 2)) * SV.TT(2) ... - - (C1(1, 1) / Delt_t + C4(1, 1)) * SV.hh(1) - (C1(1, 2) / Delt_t + C4(1, 2)) * SV.hh(2) ... - + (C2(1, 1) / Delt_t) * SV.T(1) + (C2(1, 2) / Delt_t) * SV.T(2) ... - + (C1(1, 1) / Delt_t) * SV.h(1) + (C1(1, 2) / Delt_t) * SV.h(2); + RHS(indxBotm) = -C7(indxBotm) + (C3(indxBotm, 1) * P_g(indxBotm) + C3(indxBotm, 2) * P_g(indxBotm + 1)) / Delt_t ... + - (C2(indxBotm, 1) / Delt_t + C5(indxBotm, 1)) * SV.TT(indxBotm) - (C2(indxBotm, 2) / Delt_t + C5(indxBotm, 2)) * SV.TT(indxBotm + 1) ... + - (C1(indxBotm, 1) / Delt_t + C4(indxBotm, 1)) * SV.hh(indxBotm) - (C1(indxBotm, 2) / Delt_t + C4(indxBotm, 2)) * SV.hh(indxBotm + 1) ... + + (C2(indxBotm, 1) / Delt_t) * SV.T(indxBotm) + (C2(indxBotm, 2) / Delt_t) * SV.T(indxBotm + 1) ... + + (C1(indxBotm, 1) / Delt_t) * SV.h(indxBotm) + (C1(indxBotm, 2) / Delt_t) * SV.h(indxBotm + 1); - for i = 2:ModelSettings.NL + for i = indxBotm + 1:ModelSettings.NL ARG1 = C2(i - 1, 2) / Delt_t; ARG2 = C2(i, 1) / Delt_t; ARG3 = C2(i, 2) / Delt_t; @@ -49,10 +55,10 @@ + (C2(n - 1, 2) / Delt_t) * SV.T(n - 1) + (C2(n, 1) / Delt_t) * SV.T(n) ... + (C1(n - 1, 2) / Delt_t) * SV.h(n - 1) + (C1(n, 1) / Delt_t) * SV.h(n); else - RHS(1) = -C7(1) + (C3(1, 1) * P_g(1) + C3(1, 2) * P_g(2)) / Delt_t ... - - (C1(1, 1) / Delt_t + C4(1, 1)) * SV.hh(1) - (C1(1, 2) / Delt_t + C4(1, 2)) * SV.hh(2) ... - + (C1(1, 1) / Delt_t) * SV.h(1) + (C1(1, 2) / Delt_t) * SV.h(2); - for i = 2:ModelSettings.NL + RHS(indxBotm) = -C7(indxBotm) + (C3(indxBotm, 1) * P_g(indxBotm) + C3(indxBotm, 2) * P_g(indxBotm + 1)) / Delt_t ... + - (C1(indxBotm, 1) / Delt_t + C4(indxBotm, 1)) * SV.hh(indxBotm) - (C1(indxBotm, 2) / Delt_t + C4(indxBotm, 2)) * SV.hh(indxBotm + 1) ... + + (C1(indxBotm, 1) / Delt_t) * SV.h(indxBotm) + (C1(indxBotm, 2) / Delt_t) * SV.h(indxBotm + 1); + for i = indxBotm + 1:ModelSettings.NL ARG4 = C1(i - 1, 2) / Delt_t; ARG5 = C1(i, 1) / Delt_t; ARG6 = C1(i, 2) / Delt_t; @@ -65,7 +71,7 @@ + (C1(n - 1, 2) / Delt_t) * SV.h(n - 1) + (C1(n, 1) / Delt_t) * SV.h(n); end - for i = 1:ModelSettings.NN + for i = indxBotm:ModelSettings.NN for j = 1:ModelSettings.nD C6(i, j) = C3(i, j) / Delt_t + C6(i, j); end @@ -73,9 +79,9 @@ AirMatrices.C6 = C6; - SAVE(1, 1, 3) = RHS(1); - SAVE(1, 2, 3) = C6(1, 1); - SAVE(1, 3, 3) = C6(1, 2); + SAVE(1, 1, 3) = RHS(indxBotm); + SAVE(1, 2, 3) = C6(indxBotm, 1); + SAVE(1, 3, 3) = C6(indxBotm, 2); SAVE(2, 1, 3) = RHS(n); SAVE(2, 2, 3) = C6(n - 1, 2); SAVE(2, 3, 3) = C6(n, 1); diff --git a/src/+dryair/calculateBoundaryConditions.m b/src/+dryair/calculateBoundaryConditions.m index 3816e0a5..6e43e150 100644 --- a/src/+dryair/calculateBoundaryConditions.m +++ b/src/+dryair/calculateBoundaryConditions.m @@ -1,4 +1,4 @@ -function [RHS, AirMatrices] = calculateBoundaryConditions(BoundaryCondition, AirMatrices, ForcingData, RHS, KT) +function [RHS, AirMatrices] = calculateBoundaryConditions(BoundaryCondition, AirMatrices, ForcingData, RHS, KT, P_gg, GroundwaterSettings) %{ Determine the boundary condition for solving the dry air equation. %} @@ -7,15 +7,23 @@ ModelSettings = io.getModelSettings(); n = ModelSettings.NN; + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + BtmPg = BoundaryCondition.BtmPg; + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + BtmPg = P_gg(indxBotm); + end + % Apply the bottom boundary condition called for by NBCPB if BoundaryCondition.NBCPB == 1 % Bounded bottom with the water table - RHS(1) = BtmPg; - AirMatrices.C6(1, 1) = 1; - RHS(2) = RHS(2) - AirMatrices.C6(1, 2) * RHS(1); - AirMatrices.C6(1, 2) = 0; - AirMatrices.C6_a(1) = 0; + RHS(indxBotm) = BtmPg; + AirMatrices.C6(indxBotm, 1) = 1; + RHS(indxBotm + 1) = RHS(indxBotm + 1) - AirMatrices.C6(indxBotm, 2) * RHS(indxBotm); + AirMatrices.C6(indxBotm, 2) = 0; + AirMatrices.C6_a(indxBotm) = 0; elseif BoundaryCondition.NBCPB == 2 % The soil air is allowed to escape from the bottom - RHS(1) = RHS(1) + BoundaryCondition.BCPB; + RHS(indxBotm) = RHS(indxBotm) + BoundaryCondition.BCPB; end % Apply the surface boundary condition called by NBCP diff --git a/src/+dryair/calculateDryAirParameters.m b/src/+dryair/calculateDryAirParameters.m index cb586cd8..cbc838bb 100644 --- a/src/+dryair/calculateDryAirParameters.m +++ b/src/+dryair/calculateDryAirParameters.m @@ -1,5 +1,5 @@ function AirVariabes = calculateDryAirParameters(SoilVariables, GasDispersivity, TransportCoefficient, InitialValues, VaporVariables, ... - P_gg, Xah, XaT, Xaa, RHODA) + P_gg, Xah, XaT, Xaa, RHODA, GroundwaterSettings) %{ Calculate all the parameters related to dry air equation e.g., Equation 3.59-3.64, STEMMUS Technical Notes, page 27-28. @@ -24,7 +24,13 @@ AirVariabes.DTDZ = InitialValues.DTDZ; GasDispersivity.DPgDZ = InitialValues.DPgDZ; - for i = 1:ModelSettings.NL + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + for i = indxBotm:ModelSettings.NL KLhBAR = (SoilVariables.KfL_h(i, 1) + SoilVariables.KfL_h(i, 2)) / 2; KLTBAR = (InitialValues.KL_T(i, 1) + InitialValues.KL_T(i, 2)) / 2; DDhDZ = (SoilVariables.hh(i + 1) - SoilVariables.hh(i)) / ModelSettings.DeltZ(i); @@ -51,6 +57,9 @@ AirVariabes.DhDZ(i) = DhDZ; AirVariabes.DTDZ(i) = DTDZ; AirVariabes.QL(i) = QL; + AirVariabes.QL_h(i) = QL_h(i); % added by Mostafa + AirVariabes.QL_T(i) = QL_T(i); % added by Mostafa + AirVariabes.QL_a(i) = QL_a(i); % added by Mostafa for j = 1:ModelSettings.nD MN = i + j - 1; diff --git a/src/+dryair/calculateMatricCoefficients.m b/src/+dryair/calculateMatricCoefficients.m index 8a7cd03e..c7f8e1ee 100644 --- a/src/+dryair/calculateMatricCoefficients.m +++ b/src/+dryair/calculateMatricCoefficients.m @@ -1,4 +1,4 @@ -function AirMatrices = calculateMatricCoefficients(AirVariabes, InitialValues) +function AirMatrices = calculateMatricCoefficients(AirVariabes, InitialValues, GroundwaterSettings) %{ Calculate all the parameters related to matric coefficients e.g., c1-c7 as in Equation 4.32 STEMMUS Technical Notes, page 44, which is @@ -15,7 +15,13 @@ AirMatrices.C6 = InitialValues.C6; AirMatrices.C7 = zeros(ModelSettings.NN); - for i = 1:ModelSettings.NL + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + for i = indxBotm:ModelSettings.NL AirMatrices.C1(i, 1) = AirMatrices.C1(i, 1) + AirVariabes.Cah(i, 1) * ModelSettings.DeltZ(i) / 2; AirMatrices.C1(i + 1, 1) = AirMatrices.C1(i + 1, 1) + AirVariabes.Cah(i, 2) * ModelSettings.DeltZ(i) / 2; diff --git a/src/+dryair/solveDryAirEquations.m b/src/+dryair/solveDryAirEquations.m index f1c4785d..7693017f 100644 --- a/src/+dryair/solveDryAirEquations.m +++ b/src/+dryair/solveDryAirEquations.m @@ -1,5 +1,5 @@ function [AirVariabes, RHS, SAVE, P_gg] = solveDryAirEquations(SoilVariables, GasDispersivity, TransportCoefficient, InitialValues, VaporVariables, ... - BoundaryCondition, ForcingData, P_gg, P_g, Xah, XaT, Xaa, RHODA, KT, Delt_t) + BoundaryCondition, ForcingData, P_gg, P_g, Xah, XaT, Xaa, RHODA, KT, Delt_t, GroundwaterSettings) %{ Solve the dry air equation with the Thomas algorithm to update the soil air pressure 'P_gg', the finite difference time-stepping scheme is @@ -7,14 +7,14 @@ Technical Notes' section 4, Equation 4.32. %} AirVariabes = dryair.calculateDryAirParameters(SoilVariables, GasDispersivity, TransportCoefficient, InitialValues, VaporVariables, ... - P_gg, Xah, XaT, Xaa, RHODA); + P_gg, Xah, XaT, Xaa, RHODA, GroundwaterSettings); - AirMatrices = dryair.calculateMatricCoefficients(AirVariabes, InitialValues); + AirMatrices = dryair.calculateMatricCoefficients(AirVariabes, InitialValues, GroundwaterSettings); - [RHS, AirMatrices, SAVE] = dryair.assembleCoefficientMatrices(AirMatrices, SoilVariables, Delt_t, P_g); + [RHS, AirMatrices, SAVE] = dryair.assembleCoefficientMatrices(AirMatrices, SoilVariables, Delt_t, P_g, GroundwaterSettings); - [RHS, AirMatrices] = dryair.calculateBoundaryConditions(BoundaryCondition, AirMatrices, ForcingData, RHS, KT); + [RHS, AirMatrices] = dryair.calculateBoundaryConditions(BoundaryCondition, AirMatrices, ForcingData, RHS, KT, P_gg, GroundwaterSettings); - [AirMatrices, P_gg, RHS] = dryair.solveTridiagonalMatrixEquations(RHS, AirMatrices); + [AirMatrices, P_gg, RHS] = dryair.solveTridiagonalMatrixEquations(RHS, AirMatrices, GroundwaterSettings); end diff --git a/src/+dryair/solveTridiagonalMatrixEquations.m b/src/+dryair/solveTridiagonalMatrixEquations.m index c1f314ba..ddf5a02c 100644 --- a/src/+dryair/solveTridiagonalMatrixEquations.m +++ b/src/+dryair/solveTridiagonalMatrixEquations.m @@ -1,22 +1,29 @@ -function [AirMatrices, P_gg, RHS] = solveTridiagonalMatrixEquations(RHS, AirMatrices) +function [AirMatrices, P_gg, RHS] = solveTridiagonalMatrixEquations(RHS, AirMatrices, GroundwaterSettings) %{ Use Thomas algorithm to solve the tridiagonal matrix equations, which is in the form of Equation 4.25 STEMMUS Technical Notes, page 41. %} ModelSettings = io.getModelSettings(); - RHS(1) = RHS(1) / AirMatrices.C6(1, 1); - for i = 2:ModelSettings.NN + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + RHS(indxBotm) = RHS(indxBotm) / AirMatrices.C6(indxBotm, 1); + + for i = indxBotm + 1:ModelSettings.NN AirMatrices.C6(i, 1) = AirMatrices.C6(i, 1) - AirMatrices.C6_a(i - 1) * AirMatrices.C6(i - 1, 2) / AirMatrices.C6(i - 1, 1); RHS(i) = (RHS(i) - AirMatrices.C6_a(i - 1) * RHS(i - 1)) / AirMatrices.C6(i, 1); end - for i = ModelSettings.NL:-1:1 + for i = ModelSettings.NL:-1:indxBotm RHS(i) = RHS(i) - AirMatrices.C6(i, 2) * RHS(i + 1) / AirMatrices.C6(i, 1); end - for i = 1:ModelSettings.NN + for i = indxBotm:ModelSettings.NN P_gg(i) = RHS(i); end end diff --git a/src/+energy/assembleCoefficientMatrices.m b/src/+energy/assembleCoefficientMatrices.m index 192dcffd..a73becdf 100644 --- a/src/+energy/assembleCoefficientMatrices.m +++ b/src/+energy/assembleCoefficientMatrices.m @@ -1,4 +1,4 @@ -function [RHS, EnergyMatrices, SAVE] = assembleCoefficientMatrices(EnergyMatrices, SoilVariables, Delt_t, P_g, P_gg) +function [RHS, EnergyMatrices, SAVE] = assembleCoefficientMatrices(EnergyMatrices, SoilVariables, Delt_t, P_g, P_gg, GroundwaterSettings) %{ assembles the coefficient matrices of Equation 4.32, STEMMUS Technical Notes, page 44, the example was only shown for the soil moisture @@ -17,17 +17,27 @@ ModelSettings = io.getModelSettings(); n = ModelSettings.NN; + if ModelSettings.Soilairefc == 1 % added by Mostafa + C6_a = EnergyMatrices.C6_a; + end + + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated, added by Mostafa + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + % Alias of SoilVariables SV = SoilVariables; if ModelSettings.Soilairefc && ModelSettings.Thmrlefc - RHS(1) = -C7(1) + (C2(1, 1) * SV.T(1) + C2(1, 2) * SV.T(2)) / Delt_t ... - - (C1(1, 1) / Delt_t + C4(1, 1)) * SV.hh(1) - (C1(1, 2) / Delt_t + C4(1, 2)) * SV.hh(2) ... - - (C3(1, 1) / Delt_t + C6(1, 1)) * P_gg(1) - (C3(1, 2) / Delt_t + C6(1, 2)) * P_gg(2) ... - + (C3(1, 1) / Delt_t) * P_g(1) + (C3(1, 2) / Delt_t) * P_g(2) ... - + (C1(1, 1) / Delt_t) * SV.h(1) + (C1(1, 2) / Delt_t) * SV.h(2); + RHS(indxBotm) = -C7(indxBotm) + (C2(indxBotm, 1) * SV.T(indxBotm) + C2(indxBotm, 2) * SV.T(2)) / Delt_t ... + - (C1(indxBotm, 1) / Delt_t + C4(indxBotm, 1)) * SV.hh(indxBotm) - (C1(indxBotm, 2) / Delt_t + C4(indxBotm, 2)) * SV.hh(indxBotm + 1) ... + - (C3(indxBotm, 1) / Delt_t + C6(indxBotm, 1)) * P_gg(indxBotm) - (C3(indxBotm, 2) / Delt_t + C6(indxBotm, 2)) * P_gg(indxBotm + 1) ... + + (C3(indxBotm, 1) / Delt_t) * P_g(indxBotm) + (C3(indxBotm, 2) / Delt_t) * P_g(indxBotm + 1) ... + + (C1(indxBotm, 1) / Delt_t) * SV.h(indxBotm) + (C1(indxBotm, 2) / Delt_t) * SV.h(indxBotm + 1); - for i = 2:ModelSettings.NL + for i = indxBotm + 1:ModelSettings.NL ARG1 = C3(i - 1, 2) / Delt_t; ARG2 = C3(i, 1) / Delt_t; ARG3 = C3(i, 2) / Delt_t; @@ -49,9 +59,9 @@ + (C3(n - 1, 2) / Delt_t) * P_g(n - 1) + (C3(n, 1) / Delt_t) * P_g(n) ... + (C1(n - 1, 2) / Delt_t) * SV.h(n - 1) + (C1(n, 1) / Delt_t) * SV.h(n); elseif ~ModelSettings.Soilairefc && ModelSettings.Thmrlefc - RHS(1) = -C7(1) + (C2(1, 1) * SV.T(1) + C2(1, 2) * SV.T(2)) / Delt_t ... - - (C1(1, 1) / Delt_t + C4(1, 1)) * SV.hh(1) - (C1(1, 2) / Delt_t + C4(1, 2)) * SV.hh(2) ... - + (C1(1, 1) / Delt_t) * SV.h(1) + (C1(1, 2) / Delt_t) * SV.h(2); + RHS(indxBotm) = -C7(indxBotm) + (C2(indxBotm, 1) * SV.T(indxBotm) + C2(indxBotm, 2) * SV.T(indxBotm + 1)) / Delt_t ... + - (C1(indxBotm, 1) / Delt_t + C4(indxBotm, 1)) * SV.hh(indxBotm) - (C1(indxBotm, 2) / Delt_t + C4(indxBotm, 2)) * SV.hh(indxBotm + 1) ... + + (C1(indxBotm, 1) / Delt_t) * SV.h(indxBotm) + (C1(indxBotm, 2) / Delt_t) * SV.h(indxBotm + 1); for i = 2:ModelSettings.NL ARG4 = C1(i - 1, 2) / Delt_t; ARG5 = C1(i, 1) / Delt_t; @@ -66,14 +76,14 @@ - (C1(n - 1, 2) / Delt_t + C4(n - 1, 2)) * SV.hh(n - 1) - (C1(n, 1) / Delt_t + C4(n, 1)) * SV.hh(n) ... + (C1(n - 1, 2) / Delt_t) * SV.h(n - 1) + (C1(n, 1) / Delt_t) * SV.h(n); else - RHS(1) = -C7(1) + (C2(1, 1) * SV.T(1) + C2(1, 2) * SV.T(2)) / Delt_t; - for i = 2:ModelSettings.NL + RHS(indxBotm) = -C7(indxBotm) + (C2(indxBotm, 1) * SV.T(indxBotm) + C2(1, 2) * SV.T(indxBotm + 1)) / Delt_t; + for i = indxBotm + 1:ModelSettings.NL RHS(i) = -C7(i) + (C2(i - 1, 2) * SV.T(i - 1) + C2(i, 1) * SV.T(i) + C2(i, 2) * SV.T(i + 1)) / Delt_t; end RHS(n) = -C7(n) + (C2(n - 1, 2) * SV.T(n - 1) + C2(n, 1) * SV.T(n)) / Delt_t; end - for i = 1:ModelSettings.NN + for i = indxBotm:ModelSettings.NN for j = 1:ModelSettings.nD C5(i, j) = C2(i, j) / Delt_t + C5(i, j); end @@ -81,9 +91,9 @@ EnergyMatrices.C5 = C5; - SAVE(1, 1, 2) = RHS(1); - SAVE(1, 2, 2) = C5(1, 1); - SAVE(1, 3, 2) = C5(1, 2); + SAVE(1, 1, 2) = RHS(indxBotm); + SAVE(1, 2, 2) = C5(indxBotm, 1); + SAVE(1, 3, 2) = C5(indxBotm, 2); SAVE(2, 1, 2) = RHS(n); SAVE(2, 2, 2) = C5(n - 1, 2); SAVE(2, 3, 2) = C5(n, 1); diff --git a/src/+energy/calculateBoundaryConditions.m b/src/+energy/calculateBoundaryConditions.m index 1f1f2e8d..a96647d7 100644 --- a/src/+energy/calculateBoundaryConditions.m +++ b/src/+energy/calculateBoundaryConditions.m @@ -1,5 +1,5 @@ function [RHS, EnergyMatrices] = calculateBoundaryConditions(BoundaryCondition, EnergyMatrices, HBoundaryFlux, ForcingData, ... - SoilVariables, Precip, EVAP, Delt_t, r_a_SOIL, Rn_SOIL, RHS, L, KT) + SoilVariables, Precip, EVAP, Delt_t, r_a_SOIL, Rn_SOIL, RHS, L, KT, GroundwaterSettings) %{ Determine the boundary condition for solving the energy equation, see STEMMUS Technical Notes. @@ -10,17 +10,25 @@ Constants = io.define_constants(); + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + tempBotm = BoundaryCondition.BCTB; + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + tempBotm = GroundwaterSettings.tempBotm; % groundwater temperature + end + % Apply the bottom boundary condition called for by BoundaryCondition.NBCTB if BoundaryCondition.NBCTB == 1 - RHS(1) = BoundaryCondition.BCTB; - EnergyMatrices.C5(1, 1) = 1; - RHS(2) = RHS(2) - EnergyMatrices.C5(1, 2) * RHS(1); - EnergyMatrices.C5(1, 2) = 0; - EnergyMatrices.C5_a(1) = 0; + RHS(indxBotm) = tempBotm; + EnergyMatrices.C5(indxBotm, 1) = 1; + RHS(indxBotm + 1) = RHS(indxBotm + 1) - EnergyMatrices.C5(indxBotm, 2) * RHS(indxBotm); + EnergyMatrices.C5(indxBotm, 2) = 0; + EnergyMatrices.C5_a(indxBotm) = 0; elseif BoundaryCondition.NBCTB == 2 - RHS(1) = RHS(1) + BoundaryCondition.BCTB; + RHS(indxBotm) = RHS(indxBotm) + BoundaryCondition.BCTB; else - EnergyMatrices.C5(1, 1) = EnergyMatrices.C5(1, 1) - Constants.c_L * Constants.RHOL * HBoundaryFlux.QMB; + EnergyMatrices.C5(indxBotm, 1) = EnergyMatrices.C5(indxBotm, 1) - Constants.c_L * Constants.RHOL * HBoundaryFlux.QMB; end % Apply the surface boundary condition called by BoundaryCondition.NBCT diff --git a/src/+energy/calculateEnergyFluxes.m b/src/+energy/calculateEnergyFluxes.m index d57ade21..f3cd3d7f 100644 --- a/src/+energy/calculateEnergyFluxes.m +++ b/src/+energy/calculateEnergyFluxes.m @@ -6,6 +6,14 @@ ModelSettings = io.getModelSettings(); n = ModelSettings.NN; + + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + % So far these are unused vars QET = SAVE(2, 1, 2) - SAVE(2, 2, 2) * TT(n - 1) - SAVE(2, 3, 2) * TT(n); - QEB = -SAVE(1, 1, 2) + SAVE(1, 2, 2) * TT(1) + SAVE(1, 3, 2) * TT(2); + QEB = -SAVE(1, 1, 2) + SAVE(1, 2, 2) * TT(indxBotm) + SAVE(1, 3, 2) * TT(indxBotm + 1); end diff --git a/src/+energy/calculateEnergyParameters.m b/src/+energy/calculateEnergyParameters.m index 2e7d5999..355ed5f0 100644 --- a/src/+energy/calculateEnergyParameters.m +++ b/src/+energy/calculateEnergyParameters.m @@ -1,6 +1,6 @@ function EnergyVariables = calculateEnergyParameters(InitialValues, SoilVariables, HeatVariables, TransportCoefficient, AirVariabes, ... VaporVariables, GasDispersivity, ThermalConductivityCapacity, ... - DRHOVh, DRHOVT, KL_T, Xah, XaT, Xaa, Srt, L_f, RHOV, RHODA, DRHODAz, L) + DRHOVh, DRHOVT, KL_T, Xah, XaT, Xaa, Srt, L_f, RHOV, RHODA, DRHODAz, L, GroundwaterSettings) %{ Calculate all the parameters related to energy balance equation e.Constants.g., Equation 3.65-3.73, STEMMUS Technical Notes, page 29-32. @@ -9,6 +9,12 @@ ModelSettings = io.getModelSettings(); Constants = io.define_constants(); + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated, added by Mostafa + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + % input Kcva = InitialValues.Kcva; Kcah = InitialValues.Kcah; @@ -30,6 +36,12 @@ Vaa = AirVariabes.Vaa; QL = AirVariabes.QL; + if ModelSettings.Soilairefc % added by Mostafa + QL_h = AirVariabes.QL_h; + QL_T = AirVariabes.QL_T; + QL_a = AirVariabes.QL_a; + end + % output EnergyVariables.CTh = InitialValues.CTh; EnergyVariables.CTa = InitialValues.CTa; @@ -42,7 +54,7 @@ EnergyVariables.CTg = InitialValues.CTg; EnergyVariables.CTT = InitialValues.CTT; - for i = 1:ModelSettings.NL + for i = indxBotm:ModelSettings.NL if ~ModelSettings.Soilairefc KLhBAR(i) = (SoilVariables.KfL_h(i, 1) + SoilVariables.KfL_h(i, 2)) / 2; KLTBAR(i) = (KL_T(i, 1) + KL_T(i, 2)) / 2; @@ -61,6 +73,9 @@ % terms.(0.0003,volumetric heat capacity) if ~ModelSettings.Soilairefc QL(i) = -(KLhBAR(i) * DhDZ(i) + (KLTBAR(i) + DTDBAR(i)) * DTDZ(i) + KLhBAR(i)); + QL_h(i) = -(KLhBAR(i) * DhDZ(i) + KLhBAR(i)); % added by Mostafa + QL_T(i) = -((KLTBAR(i) + DTDBAR(i)) * DTDZ(i)); % added by Mostafa + QL_a(i) = 0; % added by Mostafa Qa = 0; else Qa = -((DEhBAR + GasDispersivity.D_Vg(i)) * DRHODAz(i) - RHODA(i) * (GasDispersivity.V_A(i) + Constants.Hc * QL(i) / Constants.RHOL)); @@ -68,16 +83,20 @@ if SoilVariables.DVa_Switch == 1 QV = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i) - (DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i) + RHOVBAR * GasDispersivity.V_A(i); + QVH(i) = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i); % activated by Mostafa + QVT(i) = -(DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); % activated by Mostafa + QVa(i) = RHOVBAR * GasDispersivity.V_A(i); % added by Mostafa else QV = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i) - (DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); + QVH(i) = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i); % activated by Mostafa + QVT(i) = -(DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); % activated by Mostafa + QVa(i) = 0; % added by Mostafa end % These are unused vars, but I comment them for future reference, % See issue 100, item 1 % DVH(i) = (DEhBAR) * DRHOVhDz(i); % DVT(i) = (DEhBAR * EtaBAR) * DRHOVTDz(i); - % QVH(i) = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i); - % QVT(i) = -(DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); for j = 1:ModelSettings.nD MN = i + j - 1; if ModelSettings.Soilairefc == 1 @@ -151,4 +170,14 @@ EnergyVariables.CTg(i, j) = (Constants.c_L * Constants.RHOL + Constants.c_a * Constants.Hc * RHODA(MN)) * SoilVariables.KfL_h(i, j) * SoilVariables.TT(MN) - Constants.c_L * Srt(i, j) * SoilVariables.TT(MN); end end + + % outputs to be used for groundwater recharge calculations in the calculateGroundwaterRecharge function, added by Mostafa + Qtot = QL_h + QL_T + QL_a + QVH + QVT + QVa; + EnergyVariables.Qtot = Qtot; % total flux (liquid + vapor) + EnergyVariables.QL_h = QL_h; % liquid flux due to matric potential gradient + EnergyVariables.QL_T = QL_T; % liquid flux due to temperature gradient + EnergyVariables.QL_a = QL_a; % liquid flux due to air pressure gradient + EnergyVariables.QVH = QVH; % vapor water flux due to matric potential gradient + EnergyVariables.QVT = QVT; % vapor water flux due to temperature gradient + EnergyVariables.QVa = QVa; % vapor water flux due to air pressure gradient end diff --git a/src/+energy/calculateMatricCoefficients.m b/src/+energy/calculateMatricCoefficients.m index 07ac7130..411f0931 100644 --- a/src/+energy/calculateMatricCoefficients.m +++ b/src/+energy/calculateMatricCoefficients.m @@ -1,4 +1,4 @@ -function EnergyMatrices = calculateMatricCoefficients(EnergyVariables, InitialValues) +function EnergyMatrices = calculateMatricCoefficients(EnergyVariables, InitialValues, GroundwaterSettings) %{ Calculate all the parameters related to matric coefficients e.g., c1-c7 as in Equation 4.32 STEMMUS Technical Notes, page 44, which is an @@ -14,7 +14,13 @@ EnergyMatrices.C6 = InitialValues.C6; EnergyMatrices.C7 = zeros(ModelSettings.NN); - for i = 1:ModelSettings.NL + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated, added by Mostafa + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + for i = indxBotm:ModelSettings.NL EnergyMatrices.C1(i, 1) = EnergyMatrices.C1(i, 1) + EnergyVariables.CTh(i, 1) * ModelSettings.DeltZ(i) / 2; EnergyMatrices.C1(i + 1, 1) = EnergyMatrices.C1(i + 1, 1) + EnergyVariables.CTh(i, 2) * ModelSettings.DeltZ(i) / 2; diff --git a/src/+energy/solveEnergyBalanceEquations.m b/src/+energy/solveEnergyBalanceEquations.m index 632754d3..643df2a4 100644 --- a/src/+energy/solveEnergyBalanceEquations.m +++ b/src/+energy/solveEnergyBalanceEquations.m @@ -1,8 +1,8 @@ -function [RHS, SAVE, CHK, SoilVariables] = solveEnergyBalanceEquations(InitialValues, SoilVariables, HeatVariables, TransportCoefficient, ... - AirVariabes, VaporVariables, GasDispersivity, ThermalConductivityCapacity, ... - HBoundaryFlux, BoundaryCondition, ForcingData, DRHOVh, DRHOVT, KL_T, ... - Xah, XaT, Xaa, Srt, L_f, RHOV, RHODA, DRHODAz, L, Delt_t, P_g, P_gg, ... - TOLD, Precip, EVAP, r_a_SOIL, Rn_SOIL, KT, CHK) +function [RHS, SAVE, CHK, SoilVariables, EnergyVariables] = solveEnergyBalanceEquations(InitialValues, SoilVariables, HeatVariables, TransportCoefficient, ... + AirVariabes, VaporVariables, GasDispersivity, ThermalConductivityCapacity, ... + HBoundaryFlux, BoundaryCondition, ForcingData, DRHOVh, DRHOVT, KL_T, ... + Xah, XaT, Xaa, Srt, L_f, RHOV, RHODA, DRHODAz, L, Delt_t, P_g, P_gg, ... + TOLD, Precip, EVAP, r_a_SOIL, Rn_SOIL, KT, CHK, GroundwaterSettings) %{ Solve the Energy balance equation with the Thomas algorithm to update the soil temperature 'SoilVariables.TT', the finite difference @@ -12,28 +12,44 @@ EnergyVariables = energy.calculateEnergyParameters(InitialValues, SoilVariables, HeatVariables, TransportCoefficient, AirVariabes, ... VaporVariables, GasDispersivity, ThermalConductivityCapacity, ... - DRHOVh, DRHOVT, KL_T, Xah, XaT, Xaa, Srt, L_f, RHOV, RHODA, DRHODAz, L); + DRHOVh, DRHOVT, KL_T, Xah, XaT, Xaa, Srt, L_f, RHOV, RHODA, DRHODAz, L, GroundwaterSettings); - EnergyMatrices = energy.calculateMatricCoefficients(EnergyVariables, InitialValues); + EnergyMatrices = energy.calculateMatricCoefficients(EnergyVariables, InitialValues, GroundwaterSettings); - [RHS, EnergyMatrices, SAVE] = energy.assembleCoefficientMatrices(EnergyMatrices, SoilVariables, Delt_t, P_g, P_gg); + [RHS, EnergyMatrices, SAVE] = energy.assembleCoefficientMatrices(EnergyMatrices, SoilVariables, Delt_t, P_g, P_gg, GroundwaterSettings); [RHS, EnergyMatrices] = energy.calculateBoundaryConditions(BoundaryCondition, EnergyMatrices, HBoundaryFlux, ForcingData, ... - SoilVariables, Precip, EVAP, Delt_t, r_a_SOIL, Rn_SOIL, RHS, L, KT); + SoilVariables, Precip, EVAP, Delt_t, r_a_SOIL, Rn_SOIL, RHS, L, KT, GroundwaterSettings); - [SoilVariables, CHK, RHS, EnergyMatrices] = energy.solveTridiagonalMatrixEquations(EnergyMatrices, SoilVariables, RHS, CHK); + [SoilVariables, CHK, RHS, EnergyMatrices] = energy.solveTridiagonalMatrixEquations(EnergyMatrices, SoilVariables, RHS, CHK, GroundwaterSettings); + + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated, added by Mostafa + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + tempBotm = GroundwaterSettings.tempBotm; % groundwater temperature + end ModelSettings = io.getModelSettings(); if any(isnan(SoilVariables.TT)) || any(SoilVariables.TT(1:ModelSettings.NN) < ForcingData.Tmin) - for i = 1:ModelSettings.NN + for i = indxBotm:ModelSettings.NN SoilVariables.TT(i) = TOLD(i); end end + + if GroundwaterSettings.GroundwaterCoupling + % Assign the groundwater temperature to the saturated layers, added by Mostafa + for i = indxBotm - 1:-1:1 + SoilVariables.TT(i) = tempBotm; + end + end + for i = 1:ModelSettings.NN if SoilVariables.TT(i) <= -272 SoilVariables.TT(i) = -272; end end + % These are unused vars, but I comment them for future reference, % See issue 100, item 2 % [QET, QEB] = energy.calculateEnergyFluxes(SAVE, TT)(SAVE, SoilVariables.TT); diff --git a/src/+energy/solveTridiagonalMatrixEquations.m b/src/+energy/solveTridiagonalMatrixEquations.m index 3a8fc80d..d2940e97 100644 --- a/src/+energy/solveTridiagonalMatrixEquations.m +++ b/src/+energy/solveTridiagonalMatrixEquations.m @@ -1,22 +1,36 @@ -function [SoilVariables, CHK, RHS, EnergyMatrices] = solveTridiagonalMatrixEquations(EnergyMatrices, SoilVariables, RHS, CHK) +function [SoilVariables, CHK, RHS, EnergyMatrices] = solveTridiagonalMatrixEquations(EnergyMatrices, SoilVariables, RHS, CHK, GroundwaterSettings) %{ Use Thomas algorithm to solve the tridiagonal matrix equations, which is in the form of Equation 4.25, STEMMUS Technical Notes, page 41. %} ModelSettings = io.getModelSettings(); - RHS(1) = RHS(1) / EnergyMatrices.C5(1, 1); - for i = 2:ModelSettings.NN + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; + else % Groundwater Coupling is activated, added by Mostafa + soilThick = GroundwaterSettings.soilThick; % cumulative soil layers thickness + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + RHS(indxBotm) = RHS(indxBotm) / EnergyMatrices.C5(indxBotm, 1); + + for i = indxBotm + 1:ModelSettings.NN EnergyMatrices.C5(i, 1) = EnergyMatrices.C5(i, 1) - EnergyMatrices.C5_a(i - 1) * EnergyMatrices.C5(i - 1, 2) / EnergyMatrices.C5(i - 1, 1); RHS(i) = (RHS(i) - EnergyMatrices.C5_a(i - 1) * RHS(i - 1)) / EnergyMatrices.C5(i, 1); end - for i = ModelSettings.NL:-1:1 + for i = ModelSettings.NL:-1:indxBotm RHS(i) = RHS(i) - EnergyMatrices.C5(i, 2) * RHS(i + 1) / EnergyMatrices.C5(i, 1); end - for i = 1:ModelSettings.NN + if GroundwaterSettings.GroundwaterCoupling + for i = indxBotm:-1:2 + RHS(i - 1) = RHS(i); % all saturated layers get the same temp which was assigned as temp bottom boundary + end + end + + for i = 1:ModelSettings.NN % note: this for loop causes wrong values if i = indxBotm:ModelSettings.NN instead of i = 1:ModelSettings.NN CHK(i) = abs(RHS(i) - SoilVariables.TT(i)); SoilVariables.TT(i) = RHS(i); end diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m new file mode 100644 index 00000000..073e7676 --- /dev/null +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -0,0 +1,131 @@ +function [depToGWT_end, indxGWLay_end, gwfluxes] = calculateGroundwaterRecharge(EnergyVariables, SoilVariables, depToGWT_strt, indxGWLay_strt, KT, GroundwaterSettings) + %{ + Added by Mostafa, modified after Lianyu + The concept followed to calculate groundwater recharge can be found in: + (a) HYDRUS-MODFLOW paper https://doi.org/10.5194/hess-23-637-2019 + (b) and also in STEMMUS-MODFLOW preprint https://doi.org/10.5194/gmd-2022-221 + To calculate groundwater recharge, a water balance analysis is prepared at the moving balancing domain + The water balance analysis is described in section 2.5 and Figure 2.b (balancing domain) of HYDRUS-MODFLOW paper + + %%%%%%%%%% Important note %%%%%%%%%% + The index order for the soil layers in STEMMUS is from bottom to top (NN:1), where NN is the number of STEMMUS soil layers, + which is the opposite of MODFLOW (top to bottom). So, when converting information between STEMMUS and MODFLOW, indices need to be flipped + + %%%%%%%%%% Variables definitions %%%%%%%%%% + Equations of the water balance are implemented in this function (Equations 8-13 of HYDRUS-MODFLOW paper) as follows: + recharge = recharge_init + (SY - sy) * DeltZ, where: + + gwfluxes structure that includes the outputs (groundwater recharge and its individual components) + recharge groundwater recharge, which is the upper boundary flux of the top layer of the phreatic aquifer (after the correction of the specific yield) + recharge_init upper boundary flux into the moving balancing domain (before the correction of the specific yield) + SS specific storage of MODFLOW aquifers + SY large-scale specific yield of the phreatic aquifer + sy small-scale specific yield (dynamically changing water yield) caused by fluctuation of the water table + depToGWT_strt soil layer thickness from the top of the soil up to the phreatic surface at the start of the current time step + indxGWLay_strt index of the soil layer that includes the phreatic surface at the start of the current time step + depToGWT_end soil layer thickness from the top of the soil up to the phreatic surface at the end of the current time step + indxGWLay_end index of the soil layer that includes the phreatic surface at the end of the current time step + Theta_L soil moisture at the start of the current time step (bottom to top) + Theta_LL soil moisture at the end of the current time step (bottom to top) + STheta_L soil moisture at the start of the current time step (top to bottom) + STheta_LL soil moisture at the end of the current time step (top to bottom) + soilThick cumulative soil layers thickness (from top to bottom) + indxAqLay index of the MODFLOW aquifer that corresponds to each STEMMUS soil layer + aqLayers elevation of top surface level and all bottom levels of aquifer layers, received from MODFLOW through BMI + %} + + % Load model settings + ModelSettings = io.getModelSettings(); + NN = ModelSettings.NN; % Number of nodes + NL = ModelSettings.NL; % Number of layers + + % Start Recharge calculations + if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled + % Load needed variables + soilThick = GroundwaterSettings.soilThick; % cumulative soil layer thickness (from top to bottom) + indxAqLay = GroundwaterSettings.indxAqLay; % index of MODFLOW aquifer layers for each STEMMUS soil layer + aqLayers = GroundwaterSettings.aqLayers; % elevation of top surface level and all bottom levels of aquifer layers + + % (a) Define the upper and lower boundaries of the moving balancing domain + % the moving balancing domain is located between depToGWT_strt and depToGWT_end + [depToGWT, indxGWLay] = groundwater.findPhreaticSurface(SoilVariables, KT, GroundwaterSettings); + depToGWT_end = depToGWT; + indxGWLay_end = indxGWLay; + % indxRchrg and indxRchrgMax are the indecies of the upper and lower levels of the moving boundary + % Following the HYDRUS-MODFLOW paper and also STEMMUS-MODFLOW, indxRchrg and indxRchrgMax are defined as in the next two lines + indxRchrgMax = max(indxGWLay_strt, indxGWLay_end) + 2; % the positive 2 is a user-specified value to define lower boundary of the moving boundary + % indxRchrg = min(indxGWLay_strt, indxGWLay_end) - 3; % the negative 2 or 3 is a user-specified value to define upper boundary of the moving boundary + % However, I comment the line above and use a slightly different way (ignore the moving layer boundaries and extract recharge from the two layers above groundwater table) + indxRchrg = min(indxGWLay_strt, indxGWLay_end) - 1; + indxRchrg_above = min(indxGWLay_strt, indxGWLay_end) - 2; + + % (b) Call the fluxes to get the initial recharge + QL_h = EnergyVariables.QL_h; % liquid flux due to matric potential gradient + QL_T = EnergyVariables.QL_T; % liquid flux due to temperature gradient + QL_a = EnergyVariables.QL_a; % liquid flux due to air pressure gradient + QVH = EnergyVariables.QVH; % vapor water flux due to matric potential gradient + QVT = EnergyVariables.QVT; % vapor water flux due to temperature gradient + QVa = EnergyVariables.QVa; % vapor water flux due to air pressure gradient + Qtot = EnergyVariables.Qtot; % total flux (liquid + vapor) + + % flip the fluxes (because STEMMUS calculations are from bottom to top, and MODFLOW needs the recharge from top to bottom) + QLh_flip = flip(QL_h(1, :)); + QLT_flip = flip(QL_T(1, :)); + QLa_flip = flip(QL_a(1, :)); + QVH_flip = flip(QVH(1, :)); + QVT_flip = flip(QVT(1, :)); + QVa_flip = flip(QVa(1, :)); + Q_flip = flip(Qtot(1, :)); + + % (c) Get the recharge_init (before the correction of the specific yeild)) + % to avoid a zero flux value at the layer which recharge will be exporated + if Q_flip(indxRchrg) == 0 + recharge_init = Q_flip(indxRchrg_above); + else + recharge_init = Q_flip(indxRchrg); % mean([Q_flip(indxRchrg), Q_flip(indxRchrg_above)]) + end + + % (d) Calculations of SY + % Note: In the HYDRUS-MODFLOW paper, Sy (from MODFLOW) was used. In Lianyu STEMMUS_MODFLOW code, a combination of Sy and Ss was used + K = indxAqLay(indxGWLay_end); + Thk = aqLayers(1) - aqLayers(K) - depToGWT_end; + SY = GroundwaterSettings.SY; + SS = GroundwaterSettings.SS; + S = (SY(K) - SS(K) * Thk) * (depToGWT_strt - depToGWT_end); + + % (e) Calculations of sy + Theta_L = SoilVariables.Theta_L; + Theta_LL = SoilVariables.Theta_LL; + % flip the soil moisture to be from top layer to bottom (opposite of Theta_L) + STheta_L(1) = Theta_L(NL, 2); + STheta_L(2:1:NN) = Theta_L(NN - 1:-1:1, 1); + STheta_LL(1) = Theta_LL(NL, 2); + STheta_LL(2:1:NN) = Theta_LL(NN - 1:-1:1, 1); + + sy = 0; + for i = indxRchrg:indxRchrgMax - 1 + sy = sy + 0.5 * (soilThick(i + 1) - soilThick(i)) * (STheta_LL(i) + STheta_LL(i + 1) - STheta_L(i) - STheta_L(i + 1)); + end + + % (f) Aggregate c, d, and e to get recharge + % after couple of testing, it appears that the effect of S and sy is very minor, so they are removed but kept in the code for further investigation + % recharge = recharge_init + S - sy; + recharge = recharge_init; % Note: in STEMMUS +ve means up-flow direction and -ve means down (opposite of MODFLOW), so recharge sign needs to be converted in BMI + + if any(isnan(recharge)) || any(isinf(recharge)) + recharge = 0; + end + + % Outputs to be exported in csv + gwfluxes.QLh = QLh_flip(indxRchrg); + gwfluxes.QLT = QLT_flip(indxRchrg); + gwfluxes.QLa = QLa_flip(indxRchrg); + gwfluxes.QVH = QVH_flip(indxRchrg); + gwfluxes.QVT = QVT_flip(indxRchrg); + gwfluxes.QVa = QVa_flip(indxRchrg); + % gwfluxes.recharge_init = recharge_init; + % gwfluxes.S = S; + % gwfluxes.sy = sy; + gwfluxes.recharge = recharge; + end +end diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m new file mode 100644 index 00000000..d77ba394 --- /dev/null +++ b/src/+groundwater/findPhreaticSurface.m @@ -0,0 +1,81 @@ +function [depToGWT, indxGWLay] = findPhreaticSurface(SoilVariables, KT, GroundwaterSettings) + %{ + added by Mostafa, modified after Lianyu + This function finds the soil layer that includes the phreatic surface (saturated zone) and is used in the groundwater recharge calculations + + %%%%%%%%%% Important notes %%%%%%%%%% + The index order for the soil layers in STEMMUS is from bottom to top (NN:1), where NN is the number of STEMMUS soil layers, + which is the opposite of MODFLOW (top to bottom). So, when converting information between STEMMUS and MODFLOW, indices need to be flipped + + Although the groundwater depth (variable -> "gw_Dep") is calculated already from the MODFLOW inputs, it is re-calculated again in this function for two reasons: + 1) In this function, the groundwater depth is re-calculated, but this time is from the STEMMUS matric potential, so to make sure that ... + STEMMUS understood the location of the groundwater depth correctly. The re-calculated groundwater depth is stored in the "depToGWT" variable. + 2) The depToGWT needs to be assigned to a certain soil layer. Because of that assignment, there will be a slight difference between gw_Dep ... + and depToGWT (e.g. difference = 1-10 cm based on the thickness of the soil layer that contains the depToGWT). + + %%%%%%%%%% Variables definitions %%%%%%%%%% + gw_Dep depth from top soil layer to groundwater level, calculated from MODFLOW inputs + depToGWT depth from top soil layer to groundwater level, calculated from STEMMUS variables + indxBotmLayer_R index of the bottom layer that contains the current headBotmLayer (top to bottom) + indxBotmLayer index of the bottom layer that contains the current headBotmLayer (bottom to top) + indxGWLay index of the soil layer that includes the phreatic surface, so the recharge is .... + extracted from that layer (index order is from top layer to bottom) + Note: indxGWLay must equal to indxBotmLayer_R + Shh soil matric potential (from top layer to bottom; opposite of hh) + soilThick cumulative soil layers thickness (from top to bottom) + %} + + % Load model settings + ModelSettings = io.getModelSettings(); + NN = ModelSettings.NN; % number of nodes + NL = ModelSettings.NL; % number of layers + gw_Dep = GroundwaterSettings.gw_Dep; % + Tot_Depth = ModelSettings.Tot_Depth; % total soil depth + + % Load Groundwater settings + if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled + soilThick = GroundwaterSettings.soilThick; + indxBotmLayer = GroundwaterSettings.indxBotmLayer; + indxBotmLayer_R = GroundwaterSettings.indxBotmLayer_R; + + % Call the matric potential + Shh(1:1:NN) = SoilVariables.hh(NN:-1:1); + depToGWT = 0; % starting value for initalization. for update, its calcualted below + indxGWLay = NN - 2; % starting value for initalization. for update, its calcualted below + + % Find the phreatic surface (saturated zone) + for i = NN:-1:2 + hh_lay = Shh(i); + soilThick_lay = soilThick(i); + hh_nextlay = Shh(i - 1); + soilThick_nextlay = soilThick(i - 1); + % apply a condition to find the groundwater table from the matric potnetial by .... + % differentiating between the first layer with positive or zero head value and the last layer with negative head value + if hh_lay > -1e-5 && hh_nextlay <= -1e-5 + depToGWT = (hh_lay * soilThick_nextlay - hh_nextlay * soilThick_lay) / (hh_lay - hh_nextlay); + midThick = (soilThick(i) + soilThick(i - 1)) / 2; + if depToGWT >= midThick + indxGWLay = i; + elseif depToGWT < midThick + indxGWLay = i - 1; + end + break + end + end + + if KT > 1 % start the checks from the first time step (after the initalization) + % check 1 + if depToGWT <= 0 + warning('The pheratic surface level is equal or higher than the land surface level!'); + % check 2 + elseif depToGWT > Tot_Depth + warning('The pheratic surface level is lower than the end of the soil column!'); + end + % check 3 + diff = abs(indxGWLay - indxBotmLayer_R); + if diff > 1 + warning('Index of the bottom layer boundary that includes groundwater head ~= index of the layer that has zero matric potential!'); + end + end + end +end diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m new file mode 100644 index 00000000..9f126e69 --- /dev/null +++ b/src/+groundwater/readGroundwaterSettings.m @@ -0,0 +1,126 @@ +function GroundwaterSettings = readGroundwaterSettings() + %{ + added by Mostafa, + The concept followed to couple STEMMUS to MODFLOW can be found at https://doi.org/10.5194/hess-23-637-2019 + and also in (preprint) https://doi.org/10.5194/gmd-2022-221 + + %%%%%%%%%% Important note %%%%%%%%%% + The index order for the soil layers in STEMMUS is from bottom to top (NN:1), where NN is the number of STEMMUS soil layers, + which is the opposite of MODFLOW (top to bottom). So, when converting information between STEMMUS and MODFLOW, indices need to be flipped + + %%%%%%%%%% Variables definitions %%%%%%%%%% + + headBotmLayer groundwater head (cm) at the bottom layer, received from MODFLOW through BMI + indxBotmLayer_R index of the bottom layer that contains the current headBotmLayer (top to bottom) + indxBotmLayer index of the bottom layer that contains the current headBotmLayer (bottom to top) + tempBotm groundwater temperature (C), received from MODFLOW through BMI + airPg atmospheric pressure at the bottom (Pa) + BtmPg groundwater pressure (Pa) + numAqL number of MODFLOW aquifer layers, received from MODFLOW through BMI + numAqN number of MODFLOW aquifer nodes (numAqL + 1) + aqLayers elevation of top surface level and all bottom levels of aquifer layers, received from MODFLOW through BMI + topLevel elevation of the top surface aquifer layer + aqBotms elevation of the bottom layer of all MODFLOW aquifers + botmSoilLevel elevation of the bottom layer of the last STEMMUS soil layer + SS specific storage of MODFLOW aquifers, default value = 0.05 (unitless) + SY specific yield of MODFLOW aquifers, default value = 1e-5 (1/m) + soilThick cumulative soil layers thickness (from top to bottom) + gw_Dep water table depth: depth from top soil layer to groundwater level, calculated from MODFLOW inputs + indxAqLay index of the MODFLOW aquifer that corresponds to each STEMMUS soil layer + %} + + % Load model settings + ModelSettings = io.getModelSettings(); + NN = ModelSettings.NN; % Number of nodes + NL = ModelSettings.NL; % Number of layers + Tot_Depth = ModelSettings.Tot_Depth; % total soil depth + + % Activate/deactivate Groundwater coupling + GroundwaterSettings.GroundwaterCoupling = 1; % (value = 0 -> deactivate coupling, or = 1 -> activate coupling); default = 0, if update value to = 1 -> through BMI + + % Initialize the variables (head, temperature, air pressure) at the bottom boundary (start of saturated zone) + GroundwaterSettings.headBotmLayer = 1850.0; % groundwater head (cm) at bottom layer, received from MODFLOW through BMI + GroundwaterSettings.tempBotm = 17.0; % groundwater temperature (C), received from MODFLOW through BMI + + % Call MODFLOW layers information (number of aquifer layers and their elevations, etc) + GroundwaterSettings.numAqL = 5; % number of MODFLOW aquifer layers, received from MODFLOW through BMI + numAqN = GroundwaterSettings.numAqL + 1; % number of MODFLOW aquifer nodes + GroundwaterSettings.aqLayers = [2000.0 1900.0 1800.0 1700.0 1600.0 1500.0]; % elevation of top surface level and all bottom levels of aquifer layers, received from MODFLOW through BMI + GroundwaterSettings.topLevel = GroundwaterSettings.aqLayers(1); % elevation of the top surface aquifer layer + GroundwaterSettings.aqBotms = GroundwaterSettings.aqLayers(2:end); % elevation of the bottom layer of all MODFLOW aquifers, received from MODFLOW through BMI + gw_Dep = GroundwaterSettings.topLevel - GroundwaterSettings.headBotmLayer; % depth from top layer to groundwater level + + % Check that the position of the water table is within the soil column + if gw_Dep <= 0 + warning('The soil is fully saturated up to the land surface level!'); + elseif gw_Dep > Tot_Depth + warning('Groundwater table is below the end of the soil column!'); + end + + for i = GroundwaterSettings.aqBotms + if i <= GroundwaterSettings.headBotmLayer + GroundwaterSettings.botmSoilLevel = i; % bottom layer level of the last STEMMUS soil layer + break + end + end + + % Define Specific yield (SY) and Specific storage (SS) with default values (otherwise received from MODFLOW through BMI) + GroundwaterSettings.SY = [0.05 0.05 0.05 0.05 0.05]; % default SY = 0.05 (unitless) + GroundwaterSettings.SS = [1e-7 1e-7 1e-7 1e-7 1e-7]; % default SS = 1e-5 1/m = 1e-7 1/cm + + % Calculate soil layers thickness (cumulative layers thickness; e.g. 1, 2, 3, 5, 10, ......., 480, total soil depth) + soilThick = zeros(NN, 1); % cumulative soil layers thickness + soilThick(1) = 0; + DeltZ = ModelSettings.DeltZ; + DeltZ_R = ModelSettings.DeltZ_R; + + for i = 2:NL + soilThick(i) = soilThick(i - 1) + DeltZ_R(i - 1); + end + soilThick(NN) = Tot_Depth; + + % Calculate the index of the bottom layer level using MODFLOW data + indxBotmLayer_R = []; + + for i = 1:NL + midThick = (soilThick(i) + soilThick(i + 1)) / 2; + if gw_Dep >= soilThick(i) && gw_Dep < soilThick(i + 1) + if gw_Dep < midThick + indxBotmLayer_R = i; + elseif gw_Dep >= midThick + indxBotmLayer_R = i + 1; + end + break + elseif gw_Dep >= soilThick(i + 1) + continue + end + end + + indxBotmLayer_R = indxBotmLayer_R; % index of bottom layer that contains current headBotmLayer (layer index start from top to bottom), opposite of STEMMUS (bottom to top) + indxBotmLayer = NN - indxBotmLayer_R + 1; % index of bottom boundary layer (layer index start from bottom to top) + + % Assign the index of the MODFLOW aquifer that correspond to each STEMMUS soil layer + indxAqLay = zeros(NN, 1); + indxAqLay(1) = 1; + for i = 2:NN + for K = 2:numAqN + Z1 = GroundwaterSettings.aqLayers(K - 1); + Z0 = GroundwaterSettings.aqLayers(K); + ZZ = GroundwaterSettings.aqLayers(1) - soilThick(i); + if ZZ <= Z1 && ZZ > Z0 + indxAqLay(i) = K - 1; + break + elseif ZZ == Z0 && K == numAqN + indxAqLay(i) = K - 1; + break + end + end + end + + % outputs (will be called by other functions) + GroundwaterSettings.indxBotmLayer_R = indxBotmLayer_R; + GroundwaterSettings.indxBotmLayer = indxBotmLayer; + GroundwaterSettings.gw_Dep = gw_Dep; + GroundwaterSettings.soilThick = soilThick; + GroundwaterSettings.indxAqLay = indxAqLay; +end diff --git a/src/+io/bin_to_csv.m b/src/+io/bin_to_csv.m index b02de102..2ad064f6 100644 --- a/src/+io/bin_to_csv.m +++ b/src/+io/bin_to_csv.m @@ -1,4 +1,4 @@ -function bin_to_csv(fnames, n_col, ns, options, SoilLayer) +function bin_to_csv(fnames, n_col, ns, options, SoilLayer, GroundwaterSettings) %% flu flu_names = {'simulation_number', 'nu_iterations', 'year', 'DoY', ... 'Rntot', 'lEtot', 'Htot', ... @@ -12,6 +12,12 @@ function bin_to_csv(fnames, n_col, ns, options, SoilLayer) 'umol m-2 s-1', ' umol m-2 s-1', 'umol m-2 s-1', 'W m-2', 'umol m-2 s-1', 'W m-2', 'W m-2', 'mm s-1', 'mm s-1', 'mm s-1', 'Kg m-2 s-1', 'Kg m-2 s-1'}; write_output(flu_names, flu_units, fnames.flu_file, n_col.flu, ns); + if GroundwaterSettings.GroundwaterCoupling % added by Mostafa + gwflu_names = {'simulation_number', 'year', 'DoY', 'QLh', 'QLT', 'QLa', 'QVH', 'QVT', 'QVa', 'recharge'}; + gwflu_units = {'', '', '', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1'}; + write_output(gwflu_names, gwflu_units, fnames.gwflu_file, n_col.gwflu, ns); + end + %% surftemp surftemp_names = {'simulation_number', 'year', 'DoY', ... 'Ta', 'Ts(1)', 'Ts(2)', 'Tcave', 'Tsave'}; @@ -37,30 +43,61 @@ function bin_to_csv(fnames, n_col, ns, options, SoilLayer) depth = arrayfun(@(x) num2str(x), SoilLayer.depth, "UniformOutput", false); thickness = arrayfun(@(x) num2str(x), SoilLayer.thickness, "UniformOutput", false); - %% Prepare soil moisture data + %% Soil moisture data Sim_Theta_names = [depth; thickness]; Sim_Theta_units = repelem({'m-3 m-3'}, length(depth)); - write_output(Sim_Theta_names, Sim_Theta_units, ... - fnames.Sim_Theta_file, n_col.Sim_Theta, ns, true); + write_output(Sim_Theta_names, Sim_Theta_units, fnames.Sim_Theta_file, n_col.Sim_Theta, ns, true); - %% Prepare soil temperature data + %% Soil temperature data Sim_Temp_names = [depth; thickness]; Sim_Temp_units = repelem({'oC'}, length(depth)); - write_output(Sim_Temp_names, Sim_Temp_units, ... - fnames.Sim_Temp_file, n_col.Sim_Temp, ns, true); + write_output(Sim_Temp_names, Sim_Temp_units, fnames.Sim_Temp_file, n_col.Sim_Temp, ns, true); - %% water stress factor + %% Water stress factor waterStressFactor_names = {'simulation_number', 'year', 'DoY', 'soilWaterStressFactor'}; waterStressFactor_units = {'', '', '', '-'}; write_output(waterStressFactor_names, waterStressFactor_units, fnames.waterStressFactor_file, n_col.waterStressFactor, ns); - %% water potential + %% Leaf water potential waterPotential_names = {'simulation_number', 'year', 'DoY', 'leafWaterPotential'}; waterPotential_units = {'', '', '', 'm'}; write_output(waterPotential_names, waterPotential_units, fnames.waterPotential_file, n_col.waterPotential, ns); - %% spectrum (added on 19 September 2008) + %% Soil matirc potential + Sim_hh_names = [depth; thickness]; + Sim_hh_units = repelem({'cm'}, length(depth)); + write_output(Sim_hh_names, Sim_hh_units, fnames.Sim_hh_file, n_col.Sim_hh, ns, true); + + %% Soil fluxes (liquid and vapour) + Sim_qlh_names = [depth; thickness]; + Sim_qlh_units = repelem({'cm s-1'}, length(depth)); + write_output(Sim_qlh_names, Sim_qlh_units, fnames.Sim_qlh_file, n_col.Sim_qlh, ns, true); + + Sim_qlt_names = [depth; thickness]; + Sim_qlt_units = repelem({'cm s-1'}, length(depth)); + write_output(Sim_qlt_names, Sim_qlt_units, fnames.Sim_qlt_file, n_col.Sim_qlt, ns, true); + + Sim_qla_names = [depth; thickness]; + Sim_qla_units = repelem({'cm s-1'}, length(depth)); + write_output(Sim_qla_names, Sim_qla_units, fnames.Sim_qla_file, n_col.Sim_qla, ns, true); + + Sim_qvh_names = [depth; thickness]; + Sim_qvh_units = repelem({'cm s-1'}, length(depth)); + write_output(Sim_qvh_names, Sim_qvh_units, fnames.Sim_qvh_file, n_col.Sim_qvh, ns, true); + + Sim_qvt_names = [depth; thickness]; + Sim_qvt_units = repelem({'cm s-1'}, length(depth)); + write_output(Sim_qvt_names, Sim_qvt_units, fnames.Sim_qvt_file, n_col.Sim_qvt, ns, true); + + Sim_qva_names = [depth; thickness]; + Sim_qva_units = repelem({'cm s-1'}, length(depth)); + write_output(Sim_qva_names, Sim_qva_units, fnames.Sim_qva_file, n_col.Sim_qva, ns, true); + + Sim_qtot_names = [depth; thickness]; + Sim_qtot_units = repelem({'cm s-1'}, length(depth)); + write_output(Sim_qtot_names, Sim_qtot_units, fnames.Sim_qtot_file, n_col.Sim_qtot, ns, true); + %% Spectrum (added on 19 September 2008) spectrum_hemis_optical_names = {'hemispherically integrated radiation spectrum'}; spectrum_hemis_optical_units = {'W m-2 um-1'}; write_output(spectrum_hemis_optical_names, spectrum_hemis_optical_units, fnames.spectrum_hemis_optical_file, n_col.spectrum_hemis_optical, ns, true); diff --git a/src/+io/create_output_files_binary.m b/src/+io/create_output_files_binary.m index 6d6c8651..c545d279 100644 --- a/src/+io/create_output_files_binary.m +++ b/src/+io/create_output_files_binary.m @@ -1,4 +1,6 @@ -function [Output_dir, fnames] = create_output_files_binary(parameter_file, sitename, path_of_code, input_path, output_path, spectral, options) +function [Output_dir, fnames] = create_output_files_binary(parameter_file, sitename, path_of_code, input_path, ... + output_path, spectral, options, GroundwaterSettings, gwfluxes) + %% Set Output dir Output_dir = output_path; @@ -26,12 +28,24 @@ fnames.Sim_Theta_file = fullfile(Output_dir, 'Sim_Theta.bin'); % soil moisture fnames.Sim_Temp_file = fullfile(Output_dir, 'Sim_Temp.bin'); % soil temperature fnames.waterStressFactor_file = fullfile(Output_dir, 'waterStressFactor.bin'); - fnames.waterPotential_file = fullfile(Output_dir, 'waterPotential.bin'); + fnames.waterPotential_file = fullfile(Output_dir, 'waterPotential.bin'); % leaf water potential + fnames.Sim_hh_file = fullfile(Output_dir, 'Sim_hh.bin'); % soil matric potential + fnames.Sim_qlh_file = fullfile(Output_dir, 'qlh.bin'); % liquid flux due to matric potential gradient + fnames.Sim_qlt_file = fullfile(Output_dir, 'qlt.bin'); % liquid flux due to temprature gradient + fnames.Sim_qla_file = fullfile(Output_dir, 'qla.bin'); % liquid flux due to dry air pressure gradient + fnames.Sim_qvh_file = fullfile(Output_dir, 'qvh.bin'); % vapour flux due to matric potential gradient + fnames.Sim_qvt_file = fullfile(Output_dir, 'qvt.bin'); % vapour flux due to temprature gradient + fnames.Sim_qva_file = fullfile(Output_dir, 'qva.bin'); % vapour flux due to dry air pressure gradient + fnames.Sim_qtot_file = fullfile(Output_dir, 'qtot.bin'); % total flux (liquid + vapour) if options.calc_ebal fnames.spectrum_obsdir_BlackBody_file = fullfile(Output_dir, 'spectrum_obsdir_BlackBody.bin'); % spectrum observation direction end + if GroundwaterSettings.GroundwaterCoupling + fnames.gwflu_file = fullfile(Output_dir, 'gwfluxes.bin'); + end + % if ~(options.simulation==1) fnames.pars_and_input_file = fullfile(Output_dir, 'pars_and_input.bin'); % wavelength diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 1a490e1d..4c62cd5f 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -1,4 +1,4 @@ -function [ForcingData] = loadForcingData(InputPath, TimeProperties, fmax, Tot_Depth) +function [ForcingData] = loadForcingData(InputPath, TimeProperties, SoilProperties, Tot_Depth, GroundwaterSettings) %{ %} DELT = TimeProperties.DELT; @@ -17,13 +17,51 @@ ForcingData.VPD_msr = Mdata{:, 9}; ForcingData.LAI_msr = Mdata{:, 10}; ForcingData.G_msr = Mdata{:, 7} * 0.15; - ForcingData.Precip_msr = Mdata{:, 6} * 10 * DELT; - ForcingData.Precip_msr = ForcingData.Precip_msr .* (1 - fmax .* exp(-0.5 * 0.5 * Tot_Depth / 100)); + Precip_msr = Mdata{:, 6}; % (cm/sec) + + %%%%%%%%%% Adjust precipitation to get applied infiltration after removing: (a) saturation excess runoff, (b) infiltration excess runoff %%%%%%%%%% + % Note: Adjusting the precipitation after the canopy interception is not implemented yet. + % (a) Saturation excess runoff (Dunnian runoff) + % Concept is adopted from the CLM model (see issue 232 in GitHub for more explanation) + % Check also the CLM documents (https://doi.org/10.1029/2005JD006111, https://doi.org/10.5065/D6N877R0) + + if GroundwaterSettings.GroundwaterCoupling == 1 + gw_Dep = GroundwaterSettings.gw_Dep; % water table depth, calculated from MODFLOW inputs + wat_Dep = gw_Dep / 100; % (m) + else + wat_Dep = Tot_Depth / 100; % (m) + end + + fover = 0.5; % decay factor (fixed to 0.5 m-1) + fmax = SoilProperties.fmax; % potential maximum value of fsat + fsat = (fmax .* exp(-0.5 * fover * wat_Dep)); % fraction of saturated area (unitless), note: the division by 100 is a unit conversion from 'cm' to 'm' + + Precip_msr = Precip_msr .* (1 - fsat); % applied infiltration after removing Dunnian runoff + R_Dunn = Precip_msr .* fsat; % Dunnian runoff (saturation excess runoff, in c/sec) + + % (b) Infiltration excess runoff (Hortonian runoff) + Ks0 = SoilProperties.Ks0 / (3600 * 24); % saturated vertical hydraulic conductivity. unit conversion from cm/day to cm/sec + % Note: Ks0 is not adjusted by the fsat as in the CLM model (see issue 232 in GitHub for more explanation) + Precip_msr = min(Precip_msr, Ks0); % applied infiltration after removing Hortonian runoff + + R_Hort = zeros(size(Precip_msr)); + for i = 1:length(R_Hort) + if Precip_msr(i) > Ks0 + R_Hort(i) = Precip_msr(i) - Ks0; + else + R_Hort(i) = 0; + end + end + % replace negative values for jj = 1:Dur_tot if ForcingData.Ta_msr(jj) < -100 ForcingData.Ta_msr(jj) = NaN; end end + ForcingData.Tmin = min(ForcingData.Ta_msr); + ForcingData.Precip_msr = Precip_msr * 10 * DELT; % unit conversion from cm/sec to mm/30mins + ForcingData.R_Dunn = R_Dunn; + ForcingData.R_Hort = R_Hort; end diff --git a/src/+io/output_data_binary.m b/src/+io/output_data_binary.m index d722a5b5..e43d38c8 100644 --- a/src/+io/output_data_binary.m +++ b/src/+io/output_data_binary.m @@ -1,4 +1,7 @@ -function n_col = output_data_binary(f, k, xyt, rad, canopy, ScopeParameters, vi, vmax, options, fluxes, meteo, iter, thermal, spectral, gap, profiles, Sim_Theta_U, Sim_Temp, Trap, Evap, WaterStress, WaterPotential) +function n_col = output_data_binary(f, k, xyt, rad, canopy, ScopeParameters, vi, vmax, options, fluxes, meteo, iter, thermal, ... + spectral, gap, profiles, Sim_Theta_U, Sim_Temp, Trap, Evap, WaterStress, WaterPotential, ... + Sim_hh, Sim_qlh, Sim_qlt, Sim_qvh, Sim_qvt, Sim_qla, Sim_qva, Sim_qtot, GroundwaterSettings, gwfluxes) + %% OUTPUT DATA % author C. Van der Tol % date: 30 Nov 2019 @@ -25,25 +28,69 @@ n_col.radiation = length(radiation_out); fwrite(f.radiation_file, radiation_out, 'double'); - %% Soil temperature + %% Soil moisture Sim_Theta_out = [Sim_Theta_U(k, :)]; n_col.Sim_Theta = length(Sim_Theta_out); fwrite(f.Sim_Theta_file, Sim_Theta_out, 'double'); + + %% Soil temperature Sim_Temp_out = [Sim_Temp(k, :)]; n_col.Sim_Temp = length(Sim_Temp_out); fwrite(f.Sim_Temp_file, Sim_Temp_out, 'double'); - %% water stress factor + %% Water stress factor waterStressFactor_out = [k xyt.year(k) xyt.t(k) WaterStress.soil]; n_col.waterStressFactor = length(waterStressFactor_out); fwrite(f.waterStressFactor_file, waterStressFactor_out, 'double'); - %% water potential + %% Leaf Water potential waterPotential_out = [k xyt.year(k) xyt.t(k) WaterPotential.leaf]; n_col.waterPotential = length(waterPotential_out); fwrite(f.waterPotential_file, waterPotential_out, 'double'); - %% spectrum (added on 19 September 2008) + %% Soil matric head, added by Mostafa + Sim_hh_out = [Sim_hh(k, :)]; + n_col.Sim_hh = length(Sim_hh_out); + fwrite(f.Sim_hh_file, Sim_hh_out, 'double'); + + %% Liquid and Vapor fluxes (QLh, QLT, QLa, QVh, QVT, QLa, Qtot) + Sim_qlh_out = [Sim_qlh(k, :)]; + n_col.Sim_qlh = length(Sim_qlh_out); + fwrite(f.Sim_qlh_file, Sim_qlh_out, 'double'); + + Sim_qlt_out = [Sim_qlt(k, :)]; + n_col.Sim_qlt = length(Sim_qlt_out); + fwrite(f.Sim_qlt_file, Sim_qlt_out, 'double'); + + Sim_qvh_out = [Sim_qvh(k, :)]; + n_col.Sim_qvh = length(Sim_qvh_out); + fwrite(f.Sim_qvh_file, Sim_qvh_out, 'double'); + + Sim_qvt_out = [Sim_qvt(k, :)]; + n_col.Sim_qvt = length(Sim_qvt_out); + fwrite(f.Sim_qvt_file, Sim_qvt_out, 'double'); + + Sim_qla_out = [Sim_qla(k, :)]; + n_col.Sim_qla = length(Sim_qla_out); + fwrite(f.Sim_qla_file, Sim_qla_out, 'double'); + + Sim_qva_out = [Sim_qva(k, :)]; + n_col.Sim_qva = length(Sim_qva_out); + fwrite(f.Sim_qva_file, Sim_qva_out, 'double'); + + Sim_qtot_out = [Sim_qtot(k, :)]; + n_col.Sim_qtot = length(Sim_qtot_out); + fwrite(f.Sim_qtot_file, Sim_qtot_out, 'double'); + + %% Groundwater fluxes (Recharge fluxes components) + if GroundwaterSettings.GroundwaterCoupling + gwflu_out = [k xyt.year(k) xyt.t(k) gwfluxes.QLh gwfluxes.QLT gwfluxes.QLa gwfluxes.QVH, ... + gwfluxes.QVT gwfluxes.QVa gwfluxes.recharge]; + n_col.gwflu = length(gwflu_out); + fwrite(f.gwflu_file, gwflu_out, 'double'); + end + + %% Spectrum (added on 19 September 2008) spectrum_hemis_optical_out = rad.Eout_; n_col.spectrum_hemis_optical = length(spectrum_hemis_optical_out); fwrite(f.spectrum_hemis_optical_file, spectrum_hemis_optical_out, 'double'); diff --git a/src/+soilmoisture/assembleCoefficientMatrices.m b/src/+soilmoisture/assembleCoefficientMatrices.m index cda17095..feed3047 100644 --- a/src/+soilmoisture/assembleCoefficientMatrices.m +++ b/src/+soilmoisture/assembleCoefficientMatrices.m @@ -1,4 +1,4 @@ -function HeatMatrices = assembleCoefficientMatrices(HeatVariables, InitialValues, Srt) +function HeatMatrices = assembleCoefficientMatrices(HeatVariables, InitialValues, Srt, GroundwaterSettings) %{ Assemble the coefficient matrices of Equation 4.32 (STEMMUS Technical Notes, page 44). @@ -18,7 +18,13 @@ HeatMatrices.C4_a = []; HeatMatrices.C5_a = []; - for i = 1:ModelSettings.NL + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + for i = indxBotm:ModelSettings.NL HeatMatrices.C1(i, 1) = HeatMatrices.C1(i, 1) + HeatVariables.Chh(i, 1) * ModelSettings.DeltZ(i) / 2; HeatMatrices.C1(i + 1, 1) = HeatMatrices.C1(i + 1, 1) + HeatVariables.Chh(i, 2) * ModelSettings.DeltZ(i) / 2; diff --git a/src/+soilmoisture/calculateBoundaryConditions.m b/src/+soilmoisture/calculateBoundaryConditions.m index 1e59cdfd..bb6c8b57 100644 --- a/src/+soilmoisture/calculateBoundaryConditions.m +++ b/src/+soilmoisture/calculateBoundaryConditions.m @@ -28,21 +28,22 @@ RHS(1) = RHS(1) - SoilVariables.KL_h(1, 1); end else % Groundwater Coupling is activated, added by Mostafa - headBotmLayer = GroundwaterSettings.headBotmLayer; % head at bottom layer, received from MODFLOW through BMI - indexBotmLayer = GroundwaterSettings.indexBotmLayer; % index of bottom layer that contains current headBotmLayer, received from MODFLOW through BMI - soilLayerThickness = GroundwaterSettings.soilLayerThickness; - INBT = n - indexBotmLayer + 1; % soil layer thickness from bottom to top (opposite of soilLayerThickness) - BOTm = soilLayerThickness(n); % bottom level of all layers, still need to confirm with Lianyu + indxBotmLayer_R = GroundwaterSettings.indxBotmLayer_R; + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + soilThick = GroundwaterSettings.soilThick; % cumulative soil layers thickness + topLevel = GroundwaterSettings.topLevel; + headBotmLayer = GroundwaterSettings.headBotmLayer; % groundwater head at bottom layer, received from MODFLOW through BMI + RHS(indxBotm) = headBotmLayer - topLevel + soilThick(indxBotmLayer_R); % (RHS = zero at the end, need to check with Yijian and Lianyu) if BoundaryCondition.NBChB == 1 % Specify matric head at bottom to be ---BoundaryCondition.BChB; - RHS(INBT) = (headBotmLayer - BOTm + soilLayerThickness(indexBotmLayer)); - C4(INBT, 1) = 1; - RHS(INBT + 1) = RHS(INBT + 1) - C4(INBT, 2) * RHS(INBT); - C4(INBT, 2) = 0; - C4_a(INBT) = 0; + RHS(indxBotm) = headBotmLayer - topLevel + soilThick(indxBotmLayer_R); + C4(indxBotm, 1) = 1; + RHS(indxBotm + 1) = RHS(indxBotm + 1) - C4(indxBotm, 2) * RHS(indxBotm); + C4(indxBotm, 2) = 0; + C4_a(indxBotm) = 0; elseif BoundaryCondition.NBChB == 2 % Specify flux at bottom to be ---BoundaryCondition.BChB (Positive upwards); - RHS(INBT) = RHS(INBT) + BoundaryCondition.BChB; + RHS(indxBotm) = RHS(indxBotm) + BoundaryCondition.BChB; elseif BoundaryCondition.NBChB == 3 % BoundaryCondition.NBChB=3, Gravity drainage at bottom--specify flux= hydraulic conductivity; - RHS(INBT) = RHS(INBT) - SoilVariables.KL_h(INBT, 1); + RHS(indxBotm) = RHS(indxBotm) - SoilVariables.KL_h(indxBotm, 1); end end % Apply the surface boundary condition called for by BoundaryCondition.NBCh @@ -64,11 +65,11 @@ RHS(n) = RHS(n) - BoundaryCondition.BCh; % a specified matric head (saturation or dryness)was applied; end else - Precip_msr(KT) = min(Precip_msr(KT), SoilProperties.Ks0 / (3600 * 24) * TimeProperties.DELT * 10); - Precip_msr(KT) = min(Precip_msr(KT), SoilProperties.theta_s0 * 50 - ModelSettings.DeltZ(51:54) * SoilVariables.Theta_UU(51:54, 1) * 10); + % Check applied infiltration doesn't exceed infiltration capcity + Precip_msr(KT) = min(Precip_msr(KT), SoilProperties.theta_s0 * 50 - ModelSettings.DeltZ(51:54) * SoilVariables.Theta_UU(51:54, 1) * 10); if SoilVariables.Tss(KT) > 0 - Precip(KT) = Precip_msr(KT) * 0.1 / TimeProperties.DELT; + Precip(KT) = Precip_msr(KT) * 0.1 / TimeProperties.DELT; % unit conversion from mm/30mins to cm/sec, comment added by Mostafa else Precip(KT) = Precip_msr(KT) * 0.1 / TimeProperties.DELT; Precipp = Precipp + Precip(KT); @@ -76,7 +77,7 @@ end if SoilVariables.Tss(KT) > 0 - AVAIL0 = Precip(KT) + Precipp + BoundaryCondition.DSTOR0 / Delt_t; + AVAIL0 = Precip(KT) + Precipp + BoundaryCondition.DSTOR0 / Delt_t; % (cm/sec) Precipp = 0; else AVAIL0 = Precip(KT) + BoundaryCondition.DSTOR0 / Delt_t; diff --git a/src/+soilmoisture/calculateEvapotranspiration.m b/src/+soilmoisture/calculateEvapotranspiration.m index 7855d745..b9d447db 100644 --- a/src/+soilmoisture/calculateEvapotranspiration.m +++ b/src/+soilmoisture/calculateEvapotranspiration.m @@ -1,7 +1,13 @@ -function [Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt] = calculateEvapotranspiration(InitialValues, ForcingData, SoilVariables, KT, RWU, fluxes, Srt) +function [Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, RWUs, RWUg] = calculateEvapotranspiration(InitialValues, ForcingData, SoilVariables, KT, RWU, fluxes, Srt, GroundwaterSettings) ModelSettings = io.getModelSettings(); + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + Rn = (ForcingData.Rn_msr(KT)) * 8.64 / 24 / 100 * 1; Rn_SOIL = Rn * 0.68; @@ -20,7 +26,8 @@ Evap(KT) = fluxes.lEstot / lambda2 * 0.1; % transfer to second value unit: cm s-1 EVAP(KT, 1) = Evap(KT); Tp_t = fluxes.lEctot / lambda1 * 0.1; % transfer to second value - Srt1 = RWU * 100 ./ ModelSettings.DeltZ'; + % Srt1 = RWU * 100 ./ ModelSettings.DeltZ'; % why we divide by DeltZ, if this division is removed -> Srt1 = Tp_t (check with Yunfei) + Srt1 = RWU * 100; else Evap(KT) = 0; % transfer to second value unit: cm s-1 EVAP(KT, 1) = Evap(KT); @@ -34,4 +41,13 @@ end end Trap(KT) = Tp_t; % root water uptake integration by ModelSettings.DeltZ; + + % Calculate root water uptake from soil water (RWUs) and from groundwater (RWUg) + if GroundwaterSettings.GroundwaterCoupling == 1 + RWUs = sum(Srt1(indxBotm:ModelSettings.NL)); + RWUg = sum(Srt1(1:indxBotm - 1)); + else + RWUs = sum(Srt1(1:ModelSettings.NL)); + RWUg = 0; + end end diff --git a/src/+soilmoisture/calculateMatricCoefficients.m b/src/+soilmoisture/calculateMatricCoefficients.m index eb8afc62..367d5ad2 100644 --- a/src/+soilmoisture/calculateMatricCoefficients.m +++ b/src/+soilmoisture/calculateMatricCoefficients.m @@ -1,5 +1,5 @@ function [HeatVariables, SoilVariables] = calculateMatricCoefficients(SoilVariables, VaporVariables, GasDispersivity, InitialValues, ... - RHOV, DRHOVh, DRHOVT, D_Ta) + RHOV, DRHOVh, DRHOVT, D_Ta, GroundwaterSettings) %{ Calculate all the parameters related to matric coefficients (e.g., c1-c8) as in Equation 4.32 (STEMMUS Technical Notes, page 44). @@ -26,7 +26,13 @@ Calculate all the parameters related to matric coefficients (e.g., % Make SV as an alias of SoilVariables to make codes shorter SV = SoilVariables; - for i = 1:ModelSettings.NL + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated, added by Mostafa + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + for i = indxBotm:ModelSettings.NL for j = 1:ModelSettings.nD MN = i + j - 1; if ModelSettings.hThmrl diff --git a/src/+soilmoisture/calculateTimeDerivatives.m b/src/+soilmoisture/calculateTimeDerivatives.m index ed81e0c8..ef4e9e2d 100644 --- a/src/+soilmoisture/calculateTimeDerivatives.m +++ b/src/+soilmoisture/calculateTimeDerivatives.m @@ -1,4 +1,4 @@ -function [RHS, HeatMatrices, boundaryFluxArray] = calculateTimeDerivatives(InitialValues, SoilVariables, HeatMatrices, Delt_t, P_gg) +function [RHS, HeatMatrices, boundaryFluxArray] = calculateTimeDerivatives(InitialValues, SoilVariables, HeatMatrices, Delt_t, P_gg, GroundwaterSettings) %{ Perform the finite difference of the time derivatives of the matrix equation as Equation 4.32 shows in 'STEMMUS Technical Notes', section 4. @@ -21,14 +21,20 @@ RHS = InitialValues.RHS; ModelSettings = io.getModelSettings(); - % n is the index of n_th item n = ModelSettings.NN; + + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated, added by Mostafa + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + if ModelSettings.Thmrlefc && ~ModelSettings.Soilairefc - RHS(1) = -C9(1) - C7(1) + (C1(1, 1) * h(1) + C1(1, 2) * h(2)) / Delt_t ... - - (C2(1, 1) / Delt_t + C5(1, 1)) * TT(1) - (C2(1, 2) / Delt_t + C5(1, 2)) * TT(2) ... - + (C2(1, 1) / Delt_t) * T(1) + (C2(1, 2) / Delt_t) * T(2); - for i = 2:ModelSettings.NL + RHS(indxBotm) = -C9(indxBotm) - C7(indxBotm) + (C1(indxBotm, 1) * h(indxBotm) + C1(indxBotm, 2) * h(indxBotm + 1)) / Delt_t ... + - (C2(indxBotm, 1) / Delt_t + C5(indxBotm, 1)) * TT(indxBotm) - (C2(indxBotm, 2) / Delt_t + C5(indxBotm, 2)) * TT(indxBotm + 1) ... + + (C2(indxBotm, 1) / Delt_t) * T(indxBotm) + (C2(indxBotm, 2) / Delt_t) * T(indxBotm + 1); + for i = indxBotm + 1:ModelSettings.NL ARG1 = C2(i - 1, 2) / Delt_t; ARG2 = C2(i, 1) / Delt_t; ARG3 = C2(i, 2) / Delt_t; @@ -41,8 +47,8 @@ - (C2(n - 1, 2) / Delt_t + C5(n - 1, 2)) * TT(n - 1) - (C2(n, 1) / Delt_t + C5(n, 1)) * TT(n) ... + (C2(n - 1, 2) / Delt_t) * T(n - 1) + (C2(n, 1) / Delt_t) * T(n); elseif ~ModelSettings.Thmrlefc && ModelSettings.Soilairefc - RHS(1) = -C9(1) - C7(1) + (C1(1, 1) * h(1) + C1(1, 2) * h(2)) / Delt_t ... - - C6(1, 1) * P_gg(1) - C6(1, 2) * P_gg(2); + RHS(indxBotm) = -C9(indxBotm) - C7(indxBotm) + (C1(indxBotm, 1) * h(indxBotm) + C1(indxBotm, 2) * h(indxBotm + 1)) / Delt_t ... + - C6(indxBotm, 1) * P_gg(indxBotm) - C6(indxBotm, 2) * P_gg(indxBotm + 1); for i = 2:ModelSettings.NL RHS(i) = -C9(i) - C7(i) + (C1(i - 1, 2) * h(i - 1) + C1(i, 1) * h(i) + C1(i, 2) * h(i + 1)) / Delt_t ... - C6(i - 1, 2) * P_gg(i - 1) - C6(i, 1) * P_gg(i) - C6(i, 2) * P_gg(i + 1); @@ -50,10 +56,10 @@ RHS(n) = -C9(n) - C7(n) + (C1(n - 1, 2) * h(n - 1) + C1(n, 1) * h(n)) / Delt_t ... - C6(n - 1, 2) * P_gg(n - 1) - C6(n, 1) * P_gg(n); elseif ModelSettings.Thmrlefc && ModelSettings.Soilairefc - RHS(1) = -C9(1) - C7(1) + (C1(1, 1) * h(1) + C1(1, 2) * h(2)) / Delt_t ... - - (C2(1, 1) / Delt_t + C5(1, 1)) * TT(1) - (C2(1, 2) / Delt_t + C5(1, 2)) * TT(2) ... - - C6(1, 1) * P_gg(1) - C6(1, 2) * P_gg(2) ... - + (C2(1, 1) / Delt_t) * T(1) + (C2(1, 2) / Delt_t) * T(2); + RHS(indxBotm) = -C9(indxBotm) - C7(indxBotm) + (C1(indxBotm, 1) * h(indxBotm) + C1(indxBotm, 2) * h(indxBotm + 1)) / Delt_t ... + - (C2(indxBotm, 1) / Delt_t + C5(indxBotm, 1)) * TT(indxBotm) - (C2(indxBotm, 2) / Delt_t + C5(indxBotm, 2)) * TT(indxBotm + 1) ... + - C6(indxBotm, 1) * P_gg(indxBotm) - C6(indxBotm, 2) * P_gg(2) ... + + (C2(indxBotm, 1) / Delt_t) * T(indxBotm) + (C2(indxBotm, 2) / Delt_t) * T(indxBotm + 1); for i = 2:ModelSettings.NL ARG1 = C2(i - 1, 2) / Delt_t; ARG2 = C2(i, 1) / Delt_t; @@ -69,22 +75,22 @@ - C6(n - 1, 2) * P_gg(n - 1) - C6(n, 1) * P_gg(n) ... + (C2(n - 1, 2) / Delt_t) * T(n - 1) + (C2(n, 1) / Delt_t) * T(n); else - RHS(1) = -C9(1) - C7(1) + (C1(1, 1) * h(1) + C1(1, 2) * h(2)) / Delt_t; - for i = 2:ModelSettings.NL + RHS(indxBotm) = -C9(indxBotm) - C7(indxBotm) + (C1(indxBotm, 1) * h(indxBotm) + C1(indxBotm, 2) * h(indxBotm + 1)) / Delt_t; + for i = indxBotm:ModelSettings.NL RHS(i) = -C9(i) - C7(i) + (C1(i - 1, 2) * h(i - 1) + C1(i, 1) * h(i) + C1(i, 2) * h(i + 1)) / Delt_t; end RHS(n) = -C9(n) - C7(n) + (C1(n - 1, 2) * h(n - 1) + C1(n, 1) * h(n)) / Delt_t; end - for i = 1:ModelSettings.NN + for i = indxBotm:ModelSettings.NN for j = 1:ModelSettings.nD C4(i, j) = C1(i, j) / Delt_t + C4(i, j); end end - boundaryFluxArray(1, 1, 1) = RHS(1); - boundaryFluxArray(1, 2, 1) = C4(1, 1); - boundaryFluxArray(1, 3, 1) = C4(1, 2); + boundaryFluxArray(1, 1, 1) = RHS(indxBotm); + boundaryFluxArray(1, 2, 1) = C4(indxBotm, 1); + boundaryFluxArray(1, 3, 1) = C4(indxBotm, 2); boundaryFluxArray(2, 1, 1) = RHS(n); boundaryFluxArray(2, 2, 1) = C4(n - 1, 2); boundaryFluxArray(2, 3, 1) = C4(n, 1); diff --git a/src/+soilmoisture/calculatesSoilWaterFluxes.m b/src/+soilmoisture/calculatesSoilWaterFluxes.m index d6ca4310..63a6d584 100644 --- a/src/+soilmoisture/calculatesSoilWaterFluxes.m +++ b/src/+soilmoisture/calculatesSoilWaterFluxes.m @@ -1,9 +1,15 @@ -function HBoundaryFlux = calculatesSoilWaterFluxes(SAVE, hh) +function HBoundaryFlux = calculatesSoilWaterFluxes(SAVE, hh, GroundwaterSettings) %{ Calculate the soil water fluxes on the boundary node. %} ModelSettings = io.getModelSettings(); + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + HBoundaryFlux.QMT = SAVE(2, 1, 1) - SAVE(2, 2, 1) * hh(ModelSettings.NN - 1) - SAVE(2, 3, 1) * hh(ModelSettings.NN); - HBoundaryFlux.QMB = -SAVE(1, 1, 1) + SAVE(1, 2, 1) * hh(1) + SAVE(1, 3, 1) * hh(2); + HBoundaryFlux.QMB = -SAVE(1, 1, 1) + SAVE(1, 2, 1) * hh(indxBotm) + SAVE(1, 3, 1) * hh(indxBotm + 1); end diff --git a/src/+soilmoisture/solveSoilMoistureBalance.m b/src/+soilmoisture/solveSoilMoistureBalance.m index 75c9fbb0..f5e3d2f0 100644 --- a/src/+soilmoisture/solveSoilMoistureBalance.m +++ b/src/+soilmoisture/solveSoilMoistureBalance.m @@ -1,5 +1,5 @@ -function [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip] = solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, TimeProperties, SoilProperties, ... - BoundaryCondition, Delt_t, RHOV, DRHOVh, DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings) +function [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, RWUs, RWUg] = solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, TimeProperties, SoilProperties, ... + BoundaryCondition, Delt_t, RHOV, DRHOVh, DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings) %{ Solve the soil moisture balance equation with the Thomas algorithm to update the soil matric potential 'hh', the finite difference @@ -7,16 +7,16 @@ 'STEMMUS Technical Notes' section 4, Equation 4.32. %} [HeatVariables, SoilVariables] = soilmoisture.calculateMatricCoefficients(SoilVariables, VaporVariables, GasDispersivity, InitialValues, ... - RHOV, DRHOVh, DRHOVT, D_Ta); + RHOV, DRHOVh, DRHOVT, D_Ta, GroundwaterSettings); - HeatMatrices = soilmoisture.assembleCoefficientMatrices(HeatVariables, InitialValues, Srt); + HeatMatrices = soilmoisture.assembleCoefficientMatrices(HeatVariables, InitialValues, Srt, GroundwaterSettings); - [RHS, HeatMatrices, boundaryFluxArray] = soilmoisture.calculateTimeDerivatives(InitialValues, SoilVariables, HeatMatrices, Delt_t, P_gg); + [RHS, HeatMatrices, boundaryFluxArray] = soilmoisture.calculateTimeDerivatives(InitialValues, SoilVariables, HeatMatrices, Delt_t, P_gg, GroundwaterSettings); % When BoundaryCondition.NBCh == 3, otherwise Rn_SOIL, Evap, EVAP, Trap, % r_a_SOIL, Srt will be empty arrays! see issue 98, item 2 if BoundaryCondition.NBCh == 3 - [Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt] = soilmoisture.calculateEvapotranspiration(InitialValues, ForcingData, SoilVariables, KT, RWU, fluxes, Srt); + [Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, RWUs, RWUg] = soilmoisture.calculateEvapotranspiration(InitialValues, ForcingData, SoilVariables, KT, RWU, fluxes, Srt, GroundwaterSettings); else Rn_SOIL = InitialValues.Rn_SOIL; Evap = InitialValues.Evap; @@ -28,14 +28,21 @@ [AVAIL0, RHS, HeatMatrices, Precip] = soilmoisture.calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... TimeProperties, SoilProperties, RHS, hN, KT, Delt_t, Evap, GroundwaterSettings); - [CHK, hh, C4] = soilmoisture.solveTridiagonalMatrixEquations(HeatMatrices.C4, SoilVariables.hh, HeatMatrices.C4_a, RHS); + [CHK, hh, C4] = soilmoisture.solveTridiagonalMatrixEquations(HeatMatrices.C4, SoilVariables.hh, HeatMatrices.C4_a, RHS, GroundwaterSettings); % update structures SoilVariables.hh = hh; HeatMatrices.C4 = C4; % fix hh values ModelSettings = io.getModelSettings(); - for i = 1:ModelSettings.NN + + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + else % Groundwater Coupling is activated, added by Mostafa + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + for i = indxBotm:ModelSettings.NN if isnan(SoilVariables.hh(i)) || SoilVariables.hh(i) <= -1E12 SoilVariables.hh(i) = hOLD(i); end @@ -45,6 +52,6 @@ end % calculate boundary flux - HBoundaryFlux = soilmoisture.calculatesSoilWaterFluxes(boundaryFluxArray, SoilVariables.hh); + HBoundaryFlux = soilmoisture.calculatesSoilWaterFluxes(boundaryFluxArray, SoilVariables.hh, GroundwaterSettings); end diff --git a/src/+soilmoisture/solveTridiagonalMatrixEquations.m b/src/+soilmoisture/solveTridiagonalMatrixEquations.m index f1f01a11..d934b4a3 100644 --- a/src/+soilmoisture/solveTridiagonalMatrixEquations.m +++ b/src/+soilmoisture/solveTridiagonalMatrixEquations.m @@ -1,20 +1,35 @@ -function [CHK, hh, C4] = solveTridiagonalMatrixEquations(C4, hh, C4_a, RHS) +function [CHK, hh, C4] = solveTridiagonalMatrixEquations(C4, hh, C4_a, RHS, GroundwaterSettings) %{ Solve the tridiagonal matrix equations using Thomas algorithm, which is in the form of Equation 4.25 (STEMMUS Technical Notes, page 41). %} ModelSettings = io.getModelSettings(); - RHS(1) = RHS(1) / C4(1, 1); + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top - for i = 2:ModelSettings.NN + else % Groundwater Coupling is activated, added by Mostafa + soilThick = GroundwaterSettings.soilThick; % cumulative soil layers thickness + indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + end + + RHS(indxBotm) = RHS(indxBotm) / C4(indxBotm, 1); + + for i = indxBotm + 1:ModelSettings.NN C4(i, 1) = C4(i, 1) - C4_a(i - 1) * C4(i - 1, 2) / C4(i - 1, 1); RHS(i) = (RHS(i) - C4_a(i - 1) * RHS(i - 1)) / C4(i, 1); end - for i = ModelSettings.NL:-1:1 + for i = ModelSettings.NL:-1:indxBotm RHS(i) = RHS(i) - C4(i, 2) * RHS(i + 1) / C4(i, 1); end + + if GroundwaterSettings.GroundwaterCoupling + for i = indxBotm:-1:2 + RHS(i - 1) = RHS(i) + ModelSettings.DeltZ(i - 1); + end + end + for i = 1:ModelSettings.NN CHK(i) = abs(RHS(i) - hh(i)); hh(i) = RHS(i); diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index 9264fe1d..258b0161 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -25,7 +25,8 @@ % set CFG to a path if it is not defined if exist('CFG', 'var') == 0 - CFG = '../config_file_crib.txt'; + CFG = '/home/daoudmgm/Work/STEMMUS_SCOPE/example/input/ZA-Kru_2023-11-08-0958/ZA-Kru_2023-11-08-0958_config.txt'; % CFG = '../config_file_crib.txt'; + % CFG = '/home/daoudmgm/Work/STEMMUS_SCOPE/example2/input/NL-Hor_2024-01-29-1207/NL-Hor_2024-01-29-1207_config.txt'; end % set runMode to "full" if it is not defined @@ -35,6 +36,7 @@ end % Initialization routine +start_time = clock; if strcmp(bmiMode, "initialize") || strcmp(runMode, "full") % Read the configPath file. Due to using MATLAB compiler, we cannot use run(CFG) disp (['Reading config from ', CFG]); @@ -47,8 +49,11 @@ ModelSettings = io.getModelSettings(); NN = ModelSettings.NN; + % Load groundwater settings + GroundwaterSettings = groundwater.readGroundwaterSettings(); + % load forcing data - ForcingData = io.loadForcingData(InputPath, TimeProperties, SoilProperties.fmax, ModelSettings.Tot_Depth); + ForcingData = io.loadForcingData(InputPath, TimeProperties, SoilProperties, ModelSettings.Tot_Depth, GroundwaterSettings); % Get initial values InitialValues = init.defineInitialValues(TimeProperties.Dur_tot); @@ -217,7 +222,7 @@ atmo.M = helpers.aggreg(atmfile, spectral.SCOPEspec); %% 13. create output files and - [Output_dir, fnames] = io.create_output_files_binary(parameter_file, SiteProperties.sitename, path_of_code, path_input, path_output, spectral, options); + [Output_dir, fnames] = io.create_output_files_binary(parameter_file, SiteProperties.sitename, path_of_code, path_input, path_output, spectral, options, GroundwaterSettings); %% Initialize Temperature, Matric potential and soil air pressure. % Define soil variables for StartInit @@ -245,9 +250,6 @@ % get soil constants SoilConstants = io.getSoilConstants(); - %% Groundwater coupling settings (added by Mostafa) - GroundwaterSettings = io.readGroundwaterSettings(); - %% The boundary condition information settings BoundaryCondition = init.setBoundaryCondition(SoilVariables, ForcingData, SiteProperties.landcoverClass(1)); DSTOR = BoundaryCondition.DSTOR; @@ -276,12 +278,28 @@ Delt_t0 = Delt_t; % Duration of last time step TOLD_CRIT = []; + % 15. Initialize Groundwater coupling (groundwater depth) + if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled + [depToGWT_inital, indxGWLay_inital] = groundwater.findPhreaticSurface(SoilVariables, KT, GroundwaterSettings); + depToGWT_strt = depToGWT_inital; % (for updating after the end of the loop) + indxGWLay_strt = indxGWLay_inital; + end + % for soil moisture and temperature outputs monitorDepthTemperature = ModelSettings.NL:-1:1; monitorDepthSoilMoisture = ModelSettings.NL:-1:1; Sim_Theta_U = []; Sim_Temp = []; + % for matric potential and fluxes outputs, added by Mostafa + Sim_hh = []; + Sim_qlh = []; + Sim_qlt = []; + Sim_qvh = []; + Sim_qvt = []; + Sim_qla = []; + Sim_qva = []; + % Srt, root water uptake; Srt = InitialValues.Srt; % will be updated! P_gg = InitialValues.P_gg; % will be updated! @@ -446,7 +464,7 @@ [iter, fluxes, rad, thermal, profiles, soil, RWU, frac, WaterStressFactor, WaterPotential] ... = ebal(iter, options, spectral, rad, gap, ... leafopt, angles, meteo, soil, canopy, leafbio, xyt, k, profiles, Delt_t, ... - Rl, SoilVariables, VanGenuchten, InitialValues); + Rl, SoilVariables, VanGenuchten, InitialValues, GroundwaterSettings); if options.calc_fluor if options.calc_vert_profiles [rad, profiles] = RTMf(spectral, rad, soil, leafopt, canopy, gap, angles, profiles); @@ -601,7 +619,10 @@ GasDispersivity = conductivity.calculateGasDispersivity(InitialValues, SoilVariables, P_gg, k_g); % Srt is both input and output - [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip] = soilmoisture.solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, TimeProperties, SoilProperties, BoundaryCondition, Delt_t, RHOV, DRHOVh, DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings); + [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, RWUs, RWUg] = ... + soilmoisture.solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, ... + TimeProperties, SoilProperties, BoundaryCondition, Delt_t, RHOV, DRHOVh, ... + DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings); if BoundaryCondition.NBCh == 1 DSTOR = 0; @@ -616,17 +637,21 @@ RS = (EXCESS - DSTOR) / Delt_t; else AVAIL = AVAIL0 - Evap(KT); - EXCESS = (AVAIL + HBoundaryFlux.QMT) * Delt_t; + EXCESS = (AVAIL + HBoundaryFlux.QMT) * Delt_t; % (unit converstion from cm/sec to cm/30mins) if abs(EXCESS / Delt_t) <= 1e-10 EXCESS = 0; end - DSTOR = min(EXCESS, DSTMAX); - RS(KT) = (EXCESS - DSTOR) / Delt_t; + DSTOR = min(EXCESS, DSTMAX); % Depth of depression storage at end of current time step + % Next line is commented and Surface runoff is re-calcualted using different approach (the following 3 lines) + % RS(KT) = (EXCESS - DSTOR) / Delt_t; % surface runoff, (unit converstion from cm/30mins to cm/sec) + R_Dunn = ForcingData.R_Dunn; % (cm/sec) + R_Hort = ForcingData.R_Hort; % (cm/sec) + RS = R_Hort + R_Dunn; % total surface runoff end if ModelSettings.Soilairefc == 1 [AirVariabes, RHS, SAVE, P_gg] = dryair.solveDryAirEquations(SoilVariables, GasDispersivity, TransportCoefficient, InitialValues, VaporVariables, ... - BoundaryCondition, ForcingData, P_gg, P_g, Xah, XaT, Xaa, RHODA, KT, Delt_t); + BoundaryCondition, ForcingData, P_gg, P_g, Xah, XaT, Xaa, RHODA, KT, Delt_t, GroundwaterSettings); else AirVariabes.KLhBAR = InitialValues.KLhBAR; AirVariabes.KLTBAR = InitialValues.KLTBAR; @@ -640,11 +665,11 @@ if ModelSettings.Thmrlefc == 1 % CHK will be updated - [RHS, SAVE, CHK, SoilVariables] = energy.solveEnergyBalanceEquations(InitialValues, SoilVariables, HeatVariables, TransportCoefficient, ... - AirVariabes, VaporVariables, GasDispersivity, ThermalConductivityCapacity, ... - HBoundaryFlux, BoundaryCondition, ForcingData, DRHOVh, DRHOVT, KL_T, ... - Xah, XaT, Xaa, Srt, L_f, RHOV, RHODA, DRHODAz, L, Delt_t, P_g, P_gg, ... - TOLD, Precip, EVAP, r_a_SOIL, Rn_SOIL, KT, CHK); + [RHS, SAVE, CHK, SoilVariables, EnergyVariables] = energy.solveEnergyBalanceEquations(InitialValues, SoilVariables, HeatVariables, TransportCoefficient, ... + AirVariabes, VaporVariables, GasDispersivity, ThermalConductivityCapacity, ... + HBoundaryFlux, BoundaryCondition, ForcingData, DRHOVh, DRHOVT, KL_T, ... + Xah, XaT, Xaa, Srt, L_f, RHOV, RHODA, DRHODAz, L, Delt_t, P_g, P_gg, ... + TOLD, Precip, EVAP, r_a_SOIL, Rn_SOIL, KT, CHK, GroundwaterSettings); end if max(CHK) < 0.1 @@ -662,12 +687,19 @@ % updates inputs for UpdateSoilWaterContent SoilVariables.TT_CRIT = TT_CRIT; SoilVariables.hh_frez = hh_frez; - SoilVariables = UpdateSoilWaterContent(KIT, L_f, SoilVariables, VanGenuchten); if IRPT1 == 0 && IRPT2 == 0 if KT % In case last time step is not convergent and needs to be repeated. for i = 1:ModelSettings.NL + hhh(i, KT) = SoilVariables.hh(i); + qlh(i, KT) = transpose(EnergyVariables.QL_h(i)); + qlt(i, KT) = transpose(EnergyVariables.QL_T(i)); + qla(i, KT) = transpose(EnergyVariables.QL_a(i)); + qvh(i, KT) = transpose(EnergyVariables.QVH(i)); + qvt(i, KT) = transpose(EnergyVariables.QVT(i)); + qva(i, KT) = transpose(EnergyVariables.QVa(i)); + qtot(i, KT) = transpose(EnergyVariables.Qtot(i)); for j = 1:ModelSettings.nD Theta_LLL(i, j, KT) = SoilVariables.Theta_LL(i, j); SoilVariables.Theta_L(i, j) = SoilVariables.Theta_LL(i, j); @@ -681,6 +713,14 @@ % replace run ObservationPoints, see issue 101 Sim_Theta_U(KT, 1:length(monitorDepthSoilMoisture)) = Theta_UUU(monitorDepthSoilMoisture, 1, KT); Sim_Temp(KT, 1:length(monitorDepthTemperature)) = TTT(monitorDepthTemperature, KT); + Sim_hh(KT, 1:length(monitorDepthSoilMoisture)) = hhh(monitorDepthSoilMoisture, KT); + Sim_qlh(KT, 1:length(monitorDepthSoilMoisture)) = qlh(monitorDepthSoilMoisture, KT); + Sim_qlt(KT, 1:length(monitorDepthSoilMoisture)) = qlt(monitorDepthSoilMoisture, KT); + Sim_qla(KT, 1:length(monitorDepthSoilMoisture)) = qla(monitorDepthSoilMoisture, KT); + Sim_qvh(KT, 1:length(monitorDepthSoilMoisture)) = qvh(monitorDepthSoilMoisture, KT); + Sim_qvt(KT, 1:length(monitorDepthSoilMoisture)) = qvt(monitorDepthSoilMoisture, KT); + Sim_qva(KT, 1:length(monitorDepthSoilMoisture)) = qva(monitorDepthSoilMoisture, KT); + Sim_qtot(KT, 1:length(monitorDepthSoilMoisture)) = qtot(monitorDepthSoilMoisture, KT); end if (TEND - TIME) < 1E-3 for i = 1:NN @@ -703,6 +743,16 @@ end end + % Recharge calculations, added by Mostafa + if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled + [depToGWT_end, indxGWLay_end, gwfluxes] = groundwater.calculateGroundwaterRecharge(EnergyVariables, SoilVariables, depToGWT_strt, indxGWLay_strt, KT, GroundwaterSettings); + gwfluxes = gwfluxes; % to be exported in the 'output_data_binary' function + depToGWT_strt = depToGWT_end; % for next time step + indxGWLay_strt = indxGWLay_end; % for next time step + else + gwfluxes = 0; + end + % set SoilVariables for the rest of the loop h = SoilVariables.h; hh = SoilVariables.hh; @@ -710,12 +760,13 @@ TT = SoilVariables.TT; hh_frez = SoilVariables.hh_frez; h_frez = SoilVariables.h_frez; - kk = k; - % Open files for writing file_ids = structfun(@(x) fopen(x, 'a'), fnames, 'UniformOutput', false); - n_col = io.output_data_binary(file_ids, k, xyt, rad, canopy, ScopeParameters, vi, vmax, options, fluxes, meteo, iter, thermal, spectral, gap, profiles, Sim_Theta_U, Sim_Temp, Trap, Evap, WaterStressFactor, WaterPotential); + n_col = io.output_data_binary(file_ids, k, xyt, rad, canopy, ScopeParameters, vi, vmax, options, fluxes, ... + meteo, iter, thermal, spectral, gap, profiles, Sim_Theta_U, Sim_Temp, Trap, ... + Evap, WaterStressFactor, WaterPotential, Sim_hh, Sim_qlh, Sim_qlt, Sim_qvh, ... + Sim_qvt, Sim_qla, Sim_qva, Sim_qtot, GroundwaterSettings, gwfluxes); fclose("all"); end end @@ -738,6 +789,11 @@ io.output_verification(Output_dir); end - io.bin_to_csv(fnames, n_col, k, options, SoilLayer); + io.bin_to_csv(fnames, n_col, k, options, SoilLayer, GroundwaterSettings); save([Output_dir, 'output.mat']); end + +% Calculate the total simulatiom time, added by mostafa +end_time = clock; +simtime = etime(end_time, start_time) / 60; +disp(['Simulation time in minutes is : ' num2str(simtime)]); diff --git a/src/STEMMUS_SCOPE_exe.m b/src/STEMMUS_SCOPE_exe.m index 2150de1b..578a175b 100644 --- a/src/STEMMUS_SCOPE_exe.m +++ b/src/STEMMUS_SCOPE_exe.m @@ -25,8 +25,15 @@ function STEMMUS_SCOPE_exe(config_file, runMode) 'SiteProperties', ... % Site properties (e.g. lat, lon) 'fluxes', ... % Atmospheric fluxes 'TT', ... % Soil temperature over depth - 'SoilVariables', ... % Structure that includes different variables of soil moisture, added by Mostafa - 'GroundwaterSettings' ... % added by Mostafa + 'SoilVariables', ... % Structure that includes different variables of soil moisture + 'GroundwaterSettings' ... % groundwater settings including input data from MODFLOW + 'gwfluxes' ... % structure that includes groundwater recharge and its individual components + 'EVAP' ... % evaporation + 'RWUs' ... % soil water root uptake + 'RWUg' ... % groundwater root uptake + 'R_Dunn' ... % Dunnian runoff + 'R_Hort' ... % Hortonian runoff + 'RS' ... % total surface runoff }; %#ok % Variables for tracking the state of the model initialization: diff --git a/src/calc_rsoil.m b/src/calc_rsoil.m index 552f1386..3e32840d 100644 --- a/src/calc_rsoil.m +++ b/src/calc_rsoil.m @@ -1,12 +1,32 @@ -function [PSIs, rsss, rrr, rxx] = calc_rsoil(Rl, DeltZ, Ks, Theta_s, Theta_r, Theta_LL, bbx, m, n, Alpha) +function [PSIs, rsss, rrr, rxx] = calc_rsoil(Rl, ModelSettings, SoilVariables, VanGenuchten, bbx, GroundwaterSettings) % load Constants Constants = io.define_constants(); + DeltZ = ModelSettings.DeltZ; + Ks = SoilVariables.Ks; + Theta_s = VanGenuchten.Theta_s; + Theta_r = VanGenuchten.Theta_r; + Theta_LL = SoilVariables.Theta_LL; + m = VanGenuchten.m; + n = VanGenuchten.n; + Alpha = VanGenuchten.Alpha; + DeltZ0 = DeltZ'; SMC = Theta_LL(1:54, 2); Se = (SMC - Theta_r') ./ (Theta_s' - Theta_r'); Ksoil = Ks' .* Se.^Constants.l .* (1 - (1 - Se.^(1 ./ m')).^(m')).^2; - PSIs = -((Se.^(-1 ./ m') - 1).^(1 ./ n')) ./ (Alpha * 100)' .* bbx; - rsss = 1 ./ Ksoil ./ Rl ./ DeltZ0 / 2 / pi .* log((pi * Rl).^(-0.5) / (0.5 * 1e-3)) * 100 .* bbx; % KL_h is the hydraulic conductivity, m s-1;VR is the root length density, m m-3;Ks is saturation conductivty; - rxx = 1 * 1e10 * DeltZ0 / 0.5 / 0.22 ./ Rl / 100 .* bbx; % Delta_z*j is the depth of the layer - rrr = 4 * 1e11 * (Theta_s' ./ SMC) ./ Rl ./ (DeltZ0 / 100) .* bbx; + + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater Coupling + PSIs = -((Se.^(-1 ./ m') - 1).^(1 ./ n')) ./ (Alpha * 100)' .* bbx; + else % Groundwater Coupling is activated + % Change PSIs with SoilVariables.hh to correct hydraulic pressure (matric potential + gravity) of the saturated layers + for i = 1:ModelSettings.NL + hh_lay(i) = mean([SoilVariables.hh(i), SoilVariables.hh(i + 1)]); + end + hh_lay = transpose(hh_lay); + PSIs = hh_lay / 100 .* bbx; % unit conversion from cm to m + end + + rsss = 1 ./ Ksoil ./ Rl ./ DeltZ0 / 2 / pi .* log((pi * Rl).^(-0.5) / (0.5 * 1e-3)) * 100 .* bbx; % KL_h is the hydraulic conductivity, m s-1;VR is the root length density, m m-3;Ks is saturation conductivty; + rxx = 1 * 1e10 * DeltZ0 / 0.5 / 0.22 ./ Rl / 100 .* bbx; % Delta_z*j is the depth of the layer + rrr = 4 * 1e11 * (Theta_s' ./ SMC) ./ Rl ./ (DeltZ0 / 100) .* bbx; diff --git a/src/ebal.m b/src/ebal.m index c3dce424..d7af30c8 100644 --- a/src/ebal.m +++ b/src/ebal.m @@ -1,7 +1,7 @@ function [iter, fluxes, rad, thermal, profiles, soil, RWU, frac, WaterStressFactor, WaterPotential] ... = ebal(iter, options, spectral, rad, gap, leafopt, ... angles, meteo, soil, canopy, leafbio, xyt, k, profiles, Delt_t, ... - Rl, SoilVariables, VanGenuchten, InitialValues) + Rl, SoilVariables, VanGenuchten, InitialValues, GroundwaterSettings) %{ function ebal.m calculates the energy balance of a vegetated surface @@ -174,7 +174,7 @@ resistance of leaves (or biochemical_MD12: alternative) PSI = 0; [bbx] = Max_Rootdepth(InitialValues.bbx); - [PSIs, rsss, rrr, rxx] = calc_rsoil(Rl, ModelSettings.DeltZ, SoilVariables.Ks, VanGenuchten.Theta_s, VanGenuchten.Theta_r, SoilVariables.Theta_LL, bbx, VanGenuchten.m, VanGenuchten.n, VanGenuchten.Alpha); + [PSIs, rsss, rrr, rxx] = calc_rsoil(Rl, ModelSettings, SoilVariables, VanGenuchten, bbx, GroundwaterSettings); [sfactor] = calc_sfactor(Rl, VanGenuchten.Theta_s, VanGenuchten.Theta_r, SoilVariables.Theta_LL, bbx, Ta, VanGenuchten.Theta_f); PSIss = PSIs(ModelSettings.NL, 1); %% 2. Energy balance iteration loop @@ -539,9 +539,9 @@ resistance of leaves (or biochemical_MD12: alternative) thermal.ustar = ustar; % [m s-1] friction velocity thermal.Tcu = Tcu; thermal.Tch = Tch; - fluxes.Au = Au; fluxes.Ah = Ah; + RWU = (PSIs - PSI) ./ (rsss + rrr + rxx) .* bbx; nn = numel(RWU); for i = 1:nn From 2a27ca79dacc97007ce5e3440b717fdbb791e29b Mon Sep 17 00:00:00 2001 From: Daoud Date: Wed, 12 Jun 2024 15:03:32 +0200 Subject: [PATCH 02/90] modify to count for groundwater --- src/+io/readGroundwaterSettings.m | 33 ------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 src/+io/readGroundwaterSettings.m diff --git a/src/+io/readGroundwaterSettings.m b/src/+io/readGroundwaterSettings.m deleted file mode 100644 index e61cad60..00000000 --- a/src/+io/readGroundwaterSettings.m +++ /dev/null @@ -1,33 +0,0 @@ -function GroundwaterSettings = readGroundwaterSettings() - %{ - added by Mostafa, headBotmLayer: head at bottom layer, received from - MODFLOW through BMI indexBotmLayer: index of bottom layer that contains - current headBotmLayer, received from MODFLOW through BMI. The concept of - modflow coupling can be found at: (preprint): - https://doi.org/10.5194/gmd-2022-221 - %} - - % Activate/deactivate Groundwater coupling - GroundwaterSettings.GroundwaterCoupling = 0; % (value = 0 -> deactivate coupling, or = 1 -> activate coupling); default = 0, if update value to = 1 -> through BMI - - % Initialize the head at the bottom layer (start of saturated zone) and the index of the layer that contains that head - GroundwaterSettings.headBotmLayer = 100.0; % head at bottom layer, received from MODFLOW through BMI - GroundwaterSettings.indexBotmLayer = 40; % index of bottom layer that contains current headBotmLayer, received from MODFLOW through BMI - - % Load model settings - ModelSettings = io.getModelSettings(); - NN = ModelSettings.NN; % Number of nodes; - NL = ModelSettings.NL; % Number of layers - - % Calculate soil layer thickness (cumulative layer thickness; e.g. 1, 2, 3, - % 4, 5, 10, 20 ......., last = total_soil_depth) - GroundwaterSettings.soilLayerThickness = zeros(NN, 1); % cumulative soil layer thickness - GroundwaterSettings.soilLayerThickness(1) = 0; - TDeltZ = flip(ModelSettings.DeltZ); - - for ML = 2:NL - GroundwaterSettings.soilLayerThickness(ML) = GroundwaterSettings.soilLayerThickness(ML - 1) + TDeltZ(ML - 1); - end - - GroundwaterSettings.soilLayerThickness(NN) = ModelSettings.Tot_Depth; -end From 5bb5deef67da5a7894bced784035fa39662286d8 Mon Sep 17 00:00:00 2001 From: Daoud Date: Fri, 14 Jun 2024 00:56:32 +0200 Subject: [PATCH 03/90] modify to count for groundwater --- src/+io/loadForcingData.m | 59 +++++++++---------- .../calculateBoundaryConditions.m | 21 +++++-- src/+soilmoisture/solveSoilMoistureBalance.m | 4 +- src/STEMMUS_SCOPE.m | 10 ++-- 4 files changed, 51 insertions(+), 43 deletions(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 4c62cd5f..54b5a0c5 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -19,40 +19,36 @@ ForcingData.G_msr = Mdata{:, 7} * 0.15; Precip_msr = Mdata{:, 6}; % (cm/sec) - %%%%%%%%%% Adjust precipitation to get applied infiltration after removing: (a) saturation excess runoff, (b) infiltration excess runoff %%%%%%%%%% - % Note: Adjusting the precipitation after the canopy interception is not implemented yet. - % (a) Saturation excess runoff (Dunnian runoff) - % Concept is adopted from the CLM model (see issue 232 in GitHub for more explanation) - % Check also the CLM documents (https://doi.org/10.1029/2005JD006111, https://doi.org/10.5065/D6N877R0) - - if GroundwaterSettings.GroundwaterCoupling == 1 - gw_Dep = GroundwaterSettings.gw_Dep; % water table depth, calculated from MODFLOW inputs - wat_Dep = gw_Dep / 100; % (m) - else + %%%%%%%%%% Adjust precipitation to get applied infiltration after removing: (1) saturation excess runoff %%%%%%%%%% + %%%%%%%%%% (2) infiltration excess runoff %%%%%%%%%% + % Note: Adjusting the precipitation after the canopy interception is not implemented yet. + + % (1) Saturation excess runoff (Dunnian runoff) + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated + % Concept is adopted from the CLM model (see issue 232 in GitHub for more explanation) + % Check also the CLM documents (https://doi.org/10.5065/D6N877R0, https://doi.org/10.1029/2005JD006111) wat_Dep = Tot_Depth / 100; % (m) - end - - fover = 0.5; % decay factor (fixed to 0.5 m-1) - fmax = SoilProperties.fmax; % potential maximum value of fsat - fsat = (fmax .* exp(-0.5 * fover * wat_Dep)); % fraction of saturated area (unitless), note: the division by 100 is a unit conversion from 'cm' to 'm' - - Precip_msr = Precip_msr .* (1 - fsat); % applied infiltration after removing Dunnian runoff - R_Dunn = Precip_msr .* fsat; % Dunnian runoff (saturation excess runoff, in c/sec) - - % (b) Infiltration excess runoff (Hortonian runoff) - Ks0 = SoilProperties.Ks0 / (3600 * 24); % saturated vertical hydraulic conductivity. unit conversion from cm/day to cm/sec - % Note: Ks0 is not adjusted by the fsat as in the CLM model (see issue 232 in GitHub for more explanation) - Precip_msr = min(Precip_msr, Ks0); % applied infiltration after removing Hortonian runoff - - R_Hort = zeros(size(Precip_msr)); - for i = 1:length(R_Hort) - if Precip_msr(i) > Ks0 - R_Hort(i) = Precip_msr(i) - Ks0; + fover = 0.5; % decay factor (fixed to 0.5 m-1) + fmax = SoilProperties.fmax; % potential maximum value of fsat + fsat = (fmax .* exp(-0.5 * fover * wat_Dep)); % fraction of saturated area (unitless), note: the division by 100 is a unit conversion from 'cm' to 'm' + R_Dunn = Precip_msr .* fsat; % Dunnian runoff (saturation excess runoff, in c/sec) + Precip_msr = Precip_msr .* (1 - fsat); % applied infiltration after removing Dunnian runoff + + else % Groundwater Coupling is activated + % Different approach (not CLM). Dunnian runoff = Direct water input from precipitation + return flow + % (a) direct water input from precipitation when soil is fully saturated (depth to water table = 0) + wat_Dep = GroundwaterSettings.gw_Dep / 100; % (m); + if wat_Dep <= 0.01 + R_Dunn = Precip_msr; + Precip_msr = Precip_msr .* 0; else - R_Hort(i) = 0; + R_Dunn = zeros(size(Precip_msr)); end + % (b) Return flow (from groundwater exfiltration) is added to the Dunnian runoff (through BMI) end + % (2) Infiltration excess runoff (Hortonian runoff) calculated in soilmoisture/calculateBoundaryCondition + % replace negative values for jj = 1:Dur_tot if ForcingData.Ta_msr(jj) < -100 @@ -61,7 +57,6 @@ end ForcingData.Tmin = min(ForcingData.Ta_msr); - ForcingData.Precip_msr = Precip_msr * 10 * DELT; % unit conversion from cm/sec to mm/30mins - ForcingData.R_Dunn = R_Dunn; - ForcingData.R_Hort = R_Hort; + ForcingData.Precip_msr = Precip_msr .* 10 * DELT; % unit conversion from cm/sec to mm/30mins + ForcingData.R_Dunn = R_Dunn; end diff --git a/src/+soilmoisture/calculateBoundaryConditions.m b/src/+soilmoisture/calculateBoundaryConditions.m index bb6c8b57..35b14988 100644 --- a/src/+soilmoisture/calculateBoundaryConditions.m +++ b/src/+soilmoisture/calculateBoundaryConditions.m @@ -1,4 +1,4 @@ -function [AVAIL0, RHS, HeatMatrices, Precip] = calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... +function [AVAIL0, RHS, HeatMatrices, Precip, R_Hort] = calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... TimeProperties, SoilProperties, RHS, hN, KT, Delt_t, Evap, GroundwaterSettings) %{ Determine the boundary condition for solving the soil moisture equation. @@ -64,10 +64,23 @@ else RHS(n) = RHS(n) - BoundaryCondition.BCh; % a specified matric head (saturation or dryness)was applied; end - else + else % (BoundaryCondition.NBCh == 3, Specified atmospheric forcing) - % Check applied infiltration doesn't exceed infiltration capcity - Precip_msr(KT) = min(Precip_msr(KT), SoilProperties.theta_s0 * 50 - ModelSettings.DeltZ(51:54) * SoilVariables.Theta_UU(51:54, 1) * 10); + % Calculate applied infiltration and infiltration excess runoff (Hortonian runoff) + Ks0 = SoilProperties.Ks0 / (3600 * 24) * TimeProperties.DELT * 10; % saturated vertical hydraulic conductivity. unit conversion from cm/day to mm/30mins + % Note: Ks0 is not adjusted by the fsat as in the CLM model (Check CLM document https://doi.org/10.5065/D6N877R) + % Check applied infiltration doesn't exceed infiltration capcity + infCap = SoilProperties.theta_s0 * 50 - ModelSettings.DeltZ(51:54) * SoilVariables.Theta_UU(51:54, 1) * 10; + infCap_min = min(Ks0, infCap); + + % Infiltration excess runoff (Hortonian runoff) + if Precip_msr(KT) > infCap_min + R_Hort(KT) = Precip_msr(KT) - infCap_min; + else + R_Hort(KT) = 0; + end + Precip_msr(KT) = min(Precip_msr(KT), infCap_min); % applied infiltration after removing Hortonian runoff + if SoilVariables.Tss(KT) > 0 Precip(KT) = Precip_msr(KT) * 0.1 / TimeProperties.DELT; % unit conversion from mm/30mins to cm/sec, comment added by Mostafa else diff --git a/src/+soilmoisture/solveSoilMoistureBalance.m b/src/+soilmoisture/solveSoilMoistureBalance.m index f5e3d2f0..d00c540d 100644 --- a/src/+soilmoisture/solveSoilMoistureBalance.m +++ b/src/+soilmoisture/solveSoilMoistureBalance.m @@ -1,4 +1,4 @@ -function [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, RWUs, RWUg] = solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, TimeProperties, SoilProperties, ... +function [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, R_Hort, RWUs, RWUg] = solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, TimeProperties, SoilProperties, ... BoundaryCondition, Delt_t, RHOV, DRHOVh, DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings) %{ Solve the soil moisture balance equation with the Thomas algorithm to @@ -25,7 +25,7 @@ r_a_SOIL = InitialValues.r_a_SOIL; end - [AVAIL0, RHS, HeatMatrices, Precip] = soilmoisture.calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... + [AVAIL0, RHS, HeatMatrices, Precip, R_Hort] = soilmoisture.calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... TimeProperties, SoilProperties, RHS, hN, KT, Delt_t, Evap, GroundwaterSettings); [CHK, hh, C4] = soilmoisture.solveTridiagonalMatrixEquations(HeatMatrices.C4, SoilVariables.hh, HeatMatrices.C4_a, RHS, GroundwaterSettings); diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index 258b0161..adfeb635 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -619,7 +619,7 @@ GasDispersivity = conductivity.calculateGasDispersivity(InitialValues, SoilVariables, P_gg, k_g); % Srt is both input and output - [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, RWUs, RWUg] = ... + [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, R_Hort, RWUs, RWUg] = ... soilmoisture.solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, ... TimeProperties, SoilProperties, BoundaryCondition, Delt_t, RHOV, DRHOVh, ... DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings); @@ -636,7 +636,7 @@ DSTOR = min(EXCESS, DSTMAX); RS = (EXCESS - DSTOR) / Delt_t; else - AVAIL = AVAIL0 - Evap(KT); + AVAIL = AVAIL0 - Evap(KT); EXCESS = (AVAIL + HBoundaryFlux.QMT) * Delt_t; % (unit converstion from cm/sec to cm/30mins) if abs(EXCESS / Delt_t) <= 1e-10 EXCESS = 0; @@ -644,9 +644,9 @@ DSTOR = min(EXCESS, DSTMAX); % Depth of depression storage at end of current time step % Next line is commented and Surface runoff is re-calcualted using different approach (the following 3 lines) % RS(KT) = (EXCESS - DSTOR) / Delt_t; % surface runoff, (unit converstion from cm/30mins to cm/sec) - R_Dunn = ForcingData.R_Dunn; % (cm/sec) - R_Hort = ForcingData.R_Hort; % (cm/sec) - RS = R_Hort + R_Dunn; % total surface runoff + R_Dunn(KT) = ForcingData.R_Dunn(KT); % (cm/sec) + R_Hort(KT) = R_Hort(KT) / Delt_t / 10; % (unit converstion from mm/30mins to cm/sec) + RS(KT) = R_Hort(KT) + R_Dunn(KT); % total surface runoff end if ModelSettings.Soilairefc == 1 From 1df36f260a3e90f64eb926abddde8f8370fbff19 Mon Sep 17 00:00:00 2001 From: Daoud Date: Fri, 14 Jun 2024 22:19:23 +0200 Subject: [PATCH 04/90] modify to count for groundwater --- src/+groundwater/readGroundwaterSettings.m | 2 +- src/+io/bin_to_csv.m | 13 +++++- src/+io/create_output_files_binary.m | 1 + src/+io/loadForcingData.m | 43 +++++++++++-------- src/+io/output_data_binary.m | 12 +++++- .../calculateBoundaryConditions.m | 33 ++++++++------ .../calculateEvapotranspiration.m | 14 +++--- src/+soilmoisture/solveSoilMoistureBalance.m | 10 ++--- .../solveTridiagonalMatrixEquations.m | 2 +- src/STEMMUS_SCOPE.m | 21 ++++----- src/calc_rsoil.m | 2 +- 11 files changed, 94 insertions(+), 59 deletions(-) diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m index 9f126e69..327ccf8f 100644 --- a/src/+groundwater/readGroundwaterSettings.m +++ b/src/+groundwater/readGroundwaterSettings.m @@ -39,7 +39,7 @@ soilThick cumulative soil layers thickness (from top to bottom) GroundwaterSettings.GroundwaterCoupling = 1; % (value = 0 -> deactivate coupling, or = 1 -> activate coupling); default = 0, if update value to = 1 -> through BMI % Initialize the variables (head, temperature, air pressure) at the bottom boundary (start of saturated zone) - GroundwaterSettings.headBotmLayer = 1850.0; % groundwater head (cm) at bottom layer, received from MODFLOW through BMI + GroundwaterSettings.headBotmLayer = 1980.0; % groundwater head (cm) at bottom layer, received from MODFLOW through BMI GroundwaterSettings.tempBotm = 17.0; % groundwater temperature (C), received from MODFLOW through BMI % Call MODFLOW layers information (number of aquifer layers and their elevations, etc) diff --git a/src/+io/bin_to_csv.m b/src/+io/bin_to_csv.m index 2ad064f6..5ebf9b6e 100644 --- a/src/+io/bin_to_csv.m +++ b/src/+io/bin_to_csv.m @@ -13,7 +13,16 @@ function bin_to_csv(fnames, n_col, ns, options, SoilLayer, GroundwaterSettings) write_output(flu_names, flu_units, fnames.flu_file, n_col.flu, ns); if GroundwaterSettings.GroundwaterCoupling % added by Mostafa - gwflu_names = {'simulation_number', 'year', 'DoY', 'QLh', 'QLT', 'QLa', 'QVH', 'QVT', 'QVa', 'recharge'}; + %% water balance fluxes + flu2_names = {'simulation_number', 'nu_iterations', 'year', 'DoY', 'Precip', 'Applied_inf', 'R_Hort', ... + 'R_Dunn', 'RS_tot', 'RWUs', 'RWUg', 'Trap', 'Evap', 'ET', 'Recharge'}; + + flu2_units = {'', '', '', '', 'cm s-1', 'cm s-1', 'cm s-1', ... + 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1'}; + write_output(flu2_names, flu2_units, fnames.flu2_file, n_col.flu2, ns); + + %% groundwater fluxes + gwflu_names = {'simulation_number', 'year', 'DoY', 'QLh', 'QLT', 'QLa', 'QVH', 'QVT', 'QVa', 'Recharge'}; gwflu_units = {'', '', '', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1', 'cm s-1'}; write_output(gwflu_names, gwflu_units, fnames.gwflu_file, n_col.gwflu, ns); end @@ -63,7 +72,7 @@ function bin_to_csv(fnames, n_col, ns, options, SoilLayer, GroundwaterSettings) waterPotential_units = {'', '', '', 'm'}; write_output(waterPotential_names, waterPotential_units, fnames.waterPotential_file, n_col.waterPotential, ns); - %% Soil matirc potential + %% Soil matric potential Sim_hh_names = [depth; thickness]; Sim_hh_units = repelem({'cm'}, length(depth)); write_output(Sim_hh_names, Sim_hh_units, fnames.Sim_hh_file, n_col.Sim_hh, ns, true); diff --git a/src/+io/create_output_files_binary.m b/src/+io/create_output_files_binary.m index c545d279..855b6b5a 100644 --- a/src/+io/create_output_files_binary.m +++ b/src/+io/create_output_files_binary.m @@ -43,6 +43,7 @@ end if GroundwaterSettings.GroundwaterCoupling + fnames.flu2_file = fullfile(Output_dir, 'fluxes2.bin'); fnames.gwflu_file = fullfile(Output_dir, 'gwfluxes.bin'); end diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 54b5a0c5..f841a799 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -20,34 +20,38 @@ Precip_msr = Mdata{:, 6}; % (cm/sec) %%%%%%%%%% Adjust precipitation to get applied infiltration after removing: (1) saturation excess runoff %%%%%%%%%% - %%%%%%%%%% (2) infiltration excess runoff %%%%%%%%%% + %%%%%%%%%% (2) infiltration excess runoff %%%%%%%%%% % Note: Adjusting the precipitation after the canopy interception is not implemented yet. - - % (1) Saturation excess runoff (Dunnian runoff) - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated - % Concept is adopted from the CLM model (see issue 232 in GitHub for more explanation) - % Check also the CLM documents (https://doi.org/10.5065/D6N877R0, https://doi.org/10.1029/2005JD006111) + + % (1) Saturation excess runoff (Dunnian runoff) + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated + % Concept is adopted from the CLM model (see issue 232 in GitHub for more explanation) + % Check also the CLM documents (https://doi.org/10.5065/D6N877R0, https://doi.org/10.1029/2005JD006111) wat_Dep = Tot_Depth / 100; % (m) fover = 0.5; % decay factor (fixed to 0.5 m-1) fmax = SoilProperties.fmax; % potential maximum value of fsat - fsat = (fmax .* exp(-0.5 * fover * wat_Dep)); % fraction of saturated area (unitless), note: the division by 100 is a unit conversion from 'cm' to 'm' - R_Dunn = Precip_msr .* fsat; % Dunnian runoff (saturation excess runoff, in c/sec) - Precip_msr = Precip_msr .* (1 - fsat); % applied infiltration after removing Dunnian runoff + fsat = (fmax .* exp(-0.5 * fover * wat_Dep)); % fraction of saturated area (unitless), note: the division by 100 is a unit conversion from 'cm' to 'm' + R_Dunn = Precip_msr .* fsat; % Dunnian runoff (saturation excess runoff, in c/sec) + Precip_msr = Precip_msr .* (1 - fsat); % applied infiltration after removing Dunnian runoff - else % Groundwater Coupling is activated - % Different approach (not CLM). Dunnian runoff = Direct water input from precipitation + return flow - % (a) direct water input from precipitation when soil is fully saturated (depth to water table = 0) + else % Groundwater Coupling is activated + % Different approach (not CLM). Dunnian runoff = Direct water input from precipitation + return flow + % (a) direct water input from precipitation when soil is fully saturated (depth to water table = 0) wat_Dep = GroundwaterSettings.gw_Dep / 100; % (m); - if wat_Dep <= 0.01 + if wat_Dep <= 0.01 R_Dunn = Precip_msr; Precip_msr = Precip_msr .* 0; else - R_Dunn = zeros(size(Precip_msr)); + R_Dunn = zeros(size(Precip_msr)); end - % (b) Return flow (from groundwater exfiltration) is added to the Dunnian runoff (through BMI) + % (b) Return flow (from groundwater exfiltration) is added to the Dunnian runoff (through BMI) end + % Applied infiltration (= precipitation after removal of Dunnian runoff) + applied_inf = Precip_msr; % later will be updated in the +soilmoisture/calculateBoundaryConditions file - % (2) Infiltration excess runoff (Hortonian runoff) calculated in soilmoisture/calculateBoundaryCondition + % (2) Infiltration excess runoff (Hortonian runoff) + R_Hort = zeros(size(Precip_msr)); % will be updated in the +soilmoisture/calculateBoundaryConditions file + % Applied infiltration will be updated again in the +soilmoisture/calculateBoundaryConditions file after removal of Hortonian runoff % replace negative values for jj = 1:Dur_tot @@ -56,7 +60,10 @@ end end + % Outputs to be used by other functions ForcingData.Tmin = min(ForcingData.Ta_msr); - ForcingData.Precip_msr = Precip_msr .* 10 * DELT; % unit conversion from cm/sec to mm/30mins - ForcingData.R_Dunn = R_Dunn; + ForcingData.Precip_msr = Precip_msr; + ForcingData.applied_inf = applied_inf; + ForcingData.R_Dunn = R_Dunn; + ForcingData.R_Hort = R_Hort; end diff --git a/src/+io/output_data_binary.m b/src/+io/output_data_binary.m index e43d38c8..360acdf6 100644 --- a/src/+io/output_data_binary.m +++ b/src/+io/output_data_binary.m @@ -1,6 +1,7 @@ function n_col = output_data_binary(f, k, xyt, rad, canopy, ScopeParameters, vi, vmax, options, fluxes, meteo, iter, thermal, ... spectral, gap, profiles, Sim_Theta_U, Sim_Temp, Trap, Evap, WaterStress, WaterPotential, ... - Sim_hh, Sim_qlh, Sim_qlt, Sim_qvh, Sim_qvt, Sim_qla, Sim_qva, Sim_qtot, GroundwaterSettings, gwfluxes) + Sim_hh, Sim_qlh, Sim_qlt, Sim_qvh, Sim_qvt, Sim_qla, Sim_qva, Sim_qtot, ... + ForcingData, RS, RWUs, RWUg, GroundwaterSettings, gwfluxes) %% OUTPUT DATA % author C. Van der Tol @@ -82,8 +83,15 @@ n_col.Sim_qtot = length(Sim_qtot_out); fwrite(f.Sim_qtot_file, Sim_qtot_out, 'double'); - %% Groundwater fluxes (Recharge fluxes components) if GroundwaterSettings.GroundwaterCoupling + %% Water balance fluxes + flu2_out = [k iter.counter xyt.year(k) xyt.t(k) ForcingData.Precip_msr(k) ForcingData.applied_inf(k), ... + ForcingData.R_Hort(k) ForcingData.R_Dunn(k) RS(k) RWUs RWUg, ... + Trap(k) Evap(k) Trap(k) + Evap(k) gwfluxes.recharge]; + n_col.flu2 = length(flu2_out); + fwrite(f.flu2_file, flu2_out, 'double'); + + %% Groundwater fluxes (Recharge fluxes components) gwflu_out = [k xyt.year(k) xyt.t(k) gwfluxes.QLh gwfluxes.QLT gwfluxes.QLa gwfluxes.QVH, ... gwfluxes.QVT gwfluxes.QVa gwfluxes.recharge]; n_col.gwflu = length(gwflu_out); diff --git a/src/+soilmoisture/calculateBoundaryConditions.m b/src/+soilmoisture/calculateBoundaryConditions.m index 35b14988..fcb81267 100644 --- a/src/+soilmoisture/calculateBoundaryConditions.m +++ b/src/+soilmoisture/calculateBoundaryConditions.m @@ -1,5 +1,5 @@ -function [AVAIL0, RHS, HeatMatrices, Precip, R_Hort] = calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... - TimeProperties, SoilProperties, RHS, hN, KT, Delt_t, Evap, GroundwaterSettings) +function [AVAIL0, RHS, HeatMatrices, Precip, ForcingData] = calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... + TimeProperties, SoilProperties, RHS, hN, KT, Delt_t, Evap, GroundwaterSettings) %{ Determine the boundary condition for solving the soil moisture equation. %} @@ -13,6 +13,8 @@ Precip = InitialValues.Precip; Precip_msr = ForcingData.Precip_msr; Precipp = 0; + R_Hort = ForcingData.R_Hort; + applied_inf = ForcingData.applied_inf; % Apply the bottom boundary condition called for by BoundaryCondition.NBChB if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa @@ -62,29 +64,34 @@ RHS(n - 1) = RHS(n - 1) - C4(n - 1, 2) * RHS(n); C4(n - 1, 2) = 0; else - RHS(n) = RHS(n) - BoundaryCondition.BCh; % a specified matric head (saturation or dryness)was applied; + RHS(n) = RHS(n) - BoundaryCondition.BCh; % a specified matric head (saturation or dryness) was applied; end else % (BoundaryCondition.NBCh == 3, Specified atmospheric forcing) % Calculate applied infiltration and infiltration excess runoff (Hortonian runoff) - Ks0 = SoilProperties.Ks0 / (3600 * 24) * TimeProperties.DELT * 10; % saturated vertical hydraulic conductivity. unit conversion from cm/day to mm/30mins - % Note: Ks0 is not adjusted by the fsat as in the CLM model (Check CLM document https://doi.org/10.5065/D6N877R) - % Check applied infiltration doesn't exceed infiltration capcity - infCap = SoilProperties.theta_s0 * 50 - ModelSettings.DeltZ(51:54) * SoilVariables.Theta_UU(51:54, 1) * 10; + Ks0 = SoilProperties.Ks0 / (3600 * 24); % saturated vertical hydraulic conductivity. unit conversion from cm/day to cm/sec + % Note: Ks0 is not adjusted by the fsat as in the CLM model (Check CLM document: https://doi.org/10.5065/D6N877R) + % Check applied infiltration doesn't exceed infiltration capcity + topThick = 5; % first 5 cm of the soil + satCap = SoilProperties.theta_s0 * topThick; % saturation capacity represented by saturated water content of the top 5 cm of the soil + actTheta = ModelSettings.DeltZ(51:54) * SoilVariables.Theta_UU(51:54, 1); % actual moisture of the top 5 cm of the soil + infCap = (satCap - actTheta) / TimeProperties.DELT; % (cm/sec) infCap_min = min(Ks0, infCap); - % Infiltration excess runoff (Hortonian runoff) + % Infiltration excess runoff (Hortonian runoff). Note: Dunnian runoff is calculated in the +io/loadForcingData file if Precip_msr(KT) > infCap_min R_Hort(KT) = Precip_msr(KT) - infCap_min; else R_Hort(KT) = 0; end - Precip_msr(KT) = min(Precip_msr(KT), infCap_min); % applied infiltration after removing Hortonian runoff - + + Precip(KT) = min(Precip_msr(KT), infCap_min); + applied_inf(KT) = Precip(KT); % applied infiltration after removing Hortonian runoff + if SoilVariables.Tss(KT) > 0 - Precip(KT) = Precip_msr(KT) * 0.1 / TimeProperties.DELT; % unit conversion from mm/30mins to cm/sec, comment added by Mostafa + Precip(KT) = Precip(KT); else - Precip(KT) = Precip_msr(KT) * 0.1 / TimeProperties.DELT; + Precip(KT) = Precip(KT); Precipp = Precipp + Precip(KT); Precip(KT) = 0; end @@ -108,4 +115,6 @@ end HeatMatrices.C4 = C4; HeatMatrices.C4_a = C4_a; + ForcingData.R_Hort = R_Hort; + ForcingData.applied_inf = applied_inf; end diff --git a/src/+soilmoisture/calculateEvapotranspiration.m b/src/+soilmoisture/calculateEvapotranspiration.m index b9d447db..5d0488ff 100644 --- a/src/+soilmoisture/calculateEvapotranspiration.m +++ b/src/+soilmoisture/calculateEvapotranspiration.m @@ -3,7 +3,7 @@ ModelSettings = io.getModelSettings(); if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + indxBotm = 1; % index of bottom layer, by default (no groundwater coupling) its layer with index 1, since STEMMUS calculations start from bottom to top else % Groundwater Coupling is activated indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) end @@ -26,8 +26,7 @@ Evap(KT) = fluxes.lEstot / lambda2 * 0.1; % transfer to second value unit: cm s-1 EVAP(KT, 1) = Evap(KT); Tp_t = fluxes.lEctot / lambda1 * 0.1; % transfer to second value - % Srt1 = RWU * 100 ./ ModelSettings.DeltZ'; % why we divide by DeltZ, if this division is removed -> Srt1 = Tp_t (check with Yunfei) - Srt1 = RWU * 100; + Srt1 = RWU * 100 ./ ModelSettings.DeltZ'; else Evap(KT) = 0; % transfer to second value unit: cm s-1 EVAP(KT, 1) = Evap(KT); @@ -42,12 +41,13 @@ end Trap(KT) = Tp_t; % root water uptake integration by ModelSettings.DeltZ; - % Calculate root water uptake from soil water (RWUs) and from groundwater (RWUg) + % Calculate root water uptake from soil water (RWUs) and groundwater (RWUg) + RWU = RWU * 100; % unit conversion from m/sec to cm/sec if GroundwaterSettings.GroundwaterCoupling == 1 - RWUs = sum(Srt1(indxBotm:ModelSettings.NL)); - RWUg = sum(Srt1(1:indxBotm - 1)); + RWUs = sum(RWU(indxBotm:ModelSettings.NL)); + RWUg = sum(RWU(1:indxBotm - 1)); else - RWUs = sum(Srt1(1:ModelSettings.NL)); + RWUs = sum(RWU(1:ModelSettings.NL)); RWUg = 0; end end diff --git a/src/+soilmoisture/solveSoilMoistureBalance.m b/src/+soilmoisture/solveSoilMoistureBalance.m index d00c540d..81e8957c 100644 --- a/src/+soilmoisture/solveSoilMoistureBalance.m +++ b/src/+soilmoisture/solveSoilMoistureBalance.m @@ -1,5 +1,5 @@ -function [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, R_Hort, RWUs, RWUg] = solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, TimeProperties, SoilProperties, ... - BoundaryCondition, Delt_t, RHOV, DRHOVh, DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings) +function [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, RWUs, RWUg, ForcingData] = solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, TimeProperties, SoilProperties, ... + BoundaryCondition, Delt_t, RHOV, DRHOVh, DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings) %{ Solve the soil moisture balance equation with the Thomas algorithm to update the soil matric potential 'hh', the finite difference @@ -25,8 +25,8 @@ r_a_SOIL = InitialValues.r_a_SOIL; end - [AVAIL0, RHS, HeatMatrices, Precip, R_Hort] = soilmoisture.calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... - TimeProperties, SoilProperties, RHS, hN, KT, Delt_t, Evap, GroundwaterSettings); + [AVAIL0, RHS, HeatMatrices, Precip, ForcingData] = soilmoisture.calculateBoundaryConditions(BoundaryCondition, HeatMatrices, ForcingData, SoilVariables, InitialValues, ... + TimeProperties, SoilProperties, RHS, hN, KT, Delt_t, Evap, GroundwaterSettings); [CHK, hh, C4] = soilmoisture.solveTridiagonalMatrixEquations(HeatMatrices.C4, SoilVariables.hh, HeatMatrices.C4_a, RHS, GroundwaterSettings); % update structures @@ -37,7 +37,7 @@ ModelSettings = io.getModelSettings(); if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + indxBotm = 1; % index of bottom layer, by default (no groundwater coupling) its layer with index 1, since STEMMUS calculations starts from bottom to top else % Groundwater Coupling is activated, added by Mostafa indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) end diff --git a/src/+soilmoisture/solveTridiagonalMatrixEquations.m b/src/+soilmoisture/solveTridiagonalMatrixEquations.m index d934b4a3..ab843400 100644 --- a/src/+soilmoisture/solveTridiagonalMatrixEquations.m +++ b/src/+soilmoisture/solveTridiagonalMatrixEquations.m @@ -6,7 +6,7 @@ ModelSettings = io.getModelSettings(); if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + indxBotm = 1; % index of bottom layer, by default (no groundwater coupling) its layer with index 1, since STEMMUS calculations starts from bottom to top else % Groundwater Coupling is activated, added by Mostafa soilThick = GroundwaterSettings.soilThick; % cumulative soil layers thickness diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index adfeb635..d34b9e04 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -619,7 +619,7 @@ GasDispersivity = conductivity.calculateGasDispersivity(InitialValues, SoilVariables, P_gg, k_g); % Srt is both input and output - [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, R_Hort, RWUs, RWUg] = ... + [SoilVariables, HeatMatrices, HeatVariables, HBoundaryFlux, Rn_SOIL, Evap, EVAP, Trap, r_a_SOIL, Srt, CHK, AVAIL0, Precip, RWUs, RWUg, ForcingData] = ... soilmoisture.solveSoilMoistureBalance(SoilVariables, InitialValues, ForcingData, VaporVariables, GasDispersivity, ... TimeProperties, SoilProperties, BoundaryCondition, Delt_t, RHOV, DRHOVh, ... DRHOVT, D_Ta, hN, RWU, fluxes, KT, hOLD, Srt, P_gg, GroundwaterSettings); @@ -636,17 +636,17 @@ DSTOR = min(EXCESS, DSTMAX); RS = (EXCESS - DSTOR) / Delt_t; else - AVAIL = AVAIL0 - Evap(KT); + AVAIL = AVAIL0 - Evap(KT); EXCESS = (AVAIL + HBoundaryFlux.QMT) * Delt_t; % (unit converstion from cm/sec to cm/30mins) if abs(EXCESS / Delt_t) <= 1e-10 EXCESS = 0; end DSTOR = min(EXCESS, DSTMAX); % Depth of depression storage at end of current time step - % Next line is commented and Surface runoff is re-calcualted using different approach (the following 3 lines) - % RS(KT) = (EXCESS - DSTOR) / Delt_t; % surface runoff, (unit converstion from cm/30mins to cm/sec) + % Next line is commented and Surface runoff is re-calculated using different approach (the following 3 lines) + % RS(KT) = (EXCESS - DSTOR) / Delt_t; % surface runoff, (unit conversion from cm/30mins to cm/sec) R_Dunn(KT) = ForcingData.R_Dunn(KT); % (cm/sec) - R_Hort(KT) = R_Hort(KT) / Delt_t / 10; % (unit converstion from mm/30mins to cm/sec) - RS(KT) = R_Hort(KT) + R_Dunn(KT); % total surface runoff + R_Hort(KT) = ForcingData.R_Hort(KT); % (cm/sec) + RS(KT) = R_Hort(KT) + R_Dunn(KT); % total surface runoff (cm/sec) end if ModelSettings.Soilairefc == 1 @@ -750,7 +750,7 @@ depToGWT_strt = depToGWT_end; % for next time step indxGWLay_strt = indxGWLay_end; % for next time step else - gwfluxes = 0; + gwfluxes.recharge = 0; end % set SoilVariables for the rest of the loop @@ -766,7 +766,7 @@ n_col = io.output_data_binary(file_ids, k, xyt, rad, canopy, ScopeParameters, vi, vmax, options, fluxes, ... meteo, iter, thermal, spectral, gap, profiles, Sim_Theta_U, Sim_Temp, Trap, ... Evap, WaterStressFactor, WaterPotential, Sim_hh, Sim_qlh, Sim_qlt, Sim_qvh, ... - Sim_qvt, Sim_qla, Sim_qva, Sim_qtot, GroundwaterSettings, gwfluxes); + Sim_qvt, Sim_qla, Sim_qva, Sim_qtot, ForcingData, RS, RWUs, RWUg, GroundwaterSettings, gwfluxes); fclose("all"); end end @@ -795,5 +795,6 @@ % Calculate the total simulatiom time, added by mostafa end_time = clock; -simtime = etime(end_time, start_time) / 60; -disp(['Simulation time in minutes is : ' num2str(simtime)]); +simtime_min = etime(end_time, start_time) / 60; +simtime_hr = simtime_min / 24; +disp(['Simulation time is : ' num2str(simtime_hr) ' hrs (' num2str(simtime_min) ' minutes)']); diff --git a/src/calc_rsoil.m b/src/calc_rsoil.m index 3e32840d..7f34b05c 100644 --- a/src/calc_rsoil.m +++ b/src/calc_rsoil.m @@ -24,7 +24,7 @@ hh_lay(i) = mean([SoilVariables.hh(i), SoilVariables.hh(i + 1)]); end hh_lay = transpose(hh_lay); - PSIs = hh_lay / 100 .* bbx; % unit conversion from cm to m + PSIs = hh_lay / 100 .* bbx; % unit conversion from cm to m (needed in the ebal calculations) end rsss = 1 ./ Ksoil ./ Rl ./ DeltZ0 / 2 / pi .* log((pi * Rl).^(-0.5) / (0.5 * 1e-3)) * 100 .* bbx; % KL_h is the hydraulic conductivity, m s-1;VR is the root length density, m m-3;Ks is saturation conductivty; From d838eb5048a129d5a0a4b87301f49ba8728b15c4 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:20:17 +0200 Subject: [PATCH 05/90] Update STEMMUS_SCOPE.m Just removed the local path that i add during testing --- src/STEMMUS_SCOPE.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index d34b9e04..3ba567a0 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -25,8 +25,7 @@ % set CFG to a path if it is not defined if exist('CFG', 'var') == 0 - CFG = '/home/daoudmgm/Work/STEMMUS_SCOPE/example/input/ZA-Kru_2023-11-08-0958/ZA-Kru_2023-11-08-0958_config.txt'; % CFG = '../config_file_crib.txt'; - % CFG = '/home/daoudmgm/Work/STEMMUS_SCOPE/example2/input/NL-Hor_2024-01-29-1207/NL-Hor_2024-01-29-1207_config.txt'; + CFG = '../config_file_crib.txt'; end % set runMode to "full" if it is not defined From f3383e66fa4e639425798945ee9a6273aea08166 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:18:51 +0200 Subject: [PATCH 06/90] Update src/+conductivity/calculateVaporVariables.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+conductivity/calculateVaporVariables.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+conductivity/calculateVaporVariables.m b/src/+conductivity/calculateVaporVariables.m index 5d5e5a53..90254610 100644 --- a/src/+conductivity/calculateVaporVariables.m +++ b/src/+conductivity/calculateVaporVariables.m @@ -42,7 +42,7 @@ if SoilVariables.DVT_Switch == 1 Eta(i, j) = ThermalConductivityCapacity.ZETA(i, j) * EnhnLiqIsland / (f0 * Theta_g(i, j)); % When Theta_g(i, j) = 0, both EnhnLiqIsland and f0 have too low values -> leading to extreme large value of Eta and QVT, ... - % The follwoing line (if condtion) tries to solve this issue mentioned also in (https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/230) + % The following line (if statement) tries to solve the issue mentioned in https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/230 if Theta_g(i, j) <= 1e-2 % added by Mostafa Eta(i, j) = 0; end From 936f7bac4f1219f6c6eba98d95421fe180835d77 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:21:23 +0200 Subject: [PATCH 07/90] Update src/+dryair/assembleCoefficientMatrices.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+dryair/assembleCoefficientMatrices.m | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/+dryair/assembleCoefficientMatrices.m b/src/+dryair/assembleCoefficientMatrices.m index 86846e36..e35dc014 100644 --- a/src/+dryair/assembleCoefficientMatrices.m +++ b/src/+dryair/assembleCoefficientMatrices.m @@ -21,9 +21,13 @@ SV = SoilVariables; if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + % index of bottom layer, by default (no groundwater coupling) its layer + % with index 1, since STEMMUS calculations start from bottom to top + indxBotm = 1; else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom boundary layer after neglecting the saturated layers + % (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end if ModelSettings.Thmrlefc From 793e7315130864e27f1112f46bec9ebf36506c31 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:26:34 +0200 Subject: [PATCH 08/90] Update assembleCoefficientMatrices.m --- src/+dryair/assembleCoefficientMatrices.m | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/+dryair/assembleCoefficientMatrices.m b/src/+dryair/assembleCoefficientMatrices.m index e35dc014..a819a2da 100644 --- a/src/+dryair/assembleCoefficientMatrices.m +++ b/src/+dryair/assembleCoefficientMatrices.m @@ -20,13 +20,11 @@ % Alias of SoilVariables SV = SoilVariables; - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - % index of bottom layer, by default (no groundwater coupling) its layer - % with index 1, since STEMMUS calculations start from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % Groundwater coupling is not activated + % index of bottom layer = 1, since STEMMUS calculations start from bottom to top indxBotm = 1; else % Groundwater Coupling is activated - % index of bottom boundary layer after neglecting the saturated layers - % (from bottom to top) + % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end From 0e95e18dd40bbccd5c79783cd2674421e8d1f27a Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:27:20 +0200 Subject: [PATCH 09/90] Update assembleCoefficientMatrices.m --- src/+dryair/assembleCoefficientMatrices.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+dryair/assembleCoefficientMatrices.m b/src/+dryair/assembleCoefficientMatrices.m index a819a2da..fa0ba3ed 100644 --- a/src/+dryair/assembleCoefficientMatrices.m +++ b/src/+dryair/assembleCoefficientMatrices.m @@ -24,7 +24,7 @@ % index of bottom layer = 1, since STEMMUS calculations start from bottom to top indxBotm = 1; else % Groundwater Coupling is activated - % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end From 55016fd90113264141fc64622e7d663b3c7e940c Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:30:36 +0200 Subject: [PATCH 10/90] Update src/+dryair/calculateDryAirParameters.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+dryair/calculateDryAirParameters.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+dryair/calculateDryAirParameters.m b/src/+dryair/calculateDryAirParameters.m index cbc838bb..9998ae05 100644 --- a/src/+dryair/calculateDryAirParameters.m +++ b/src/+dryair/calculateDryAirParameters.m @@ -57,9 +57,10 @@ AirVariabes.DhDZ(i) = DhDZ; AirVariabes.DTDZ(i) = DTDZ; AirVariabes.QL(i) = QL; - AirVariabes.QL_h(i) = QL_h(i); % added by Mostafa - AirVariabes.QL_T(i) = QL_T(i); % added by Mostafa - AirVariabes.QL_a(i) = QL_a(i); % added by Mostafa + % added by Mostafa + AirVariabes.QL_h(i) = QL_h(i); + AirVariabes.QL_T(i) = QL_T(i); + AirVariabes.QL_a(i) = QL_a(i); for j = 1:ModelSettings.nD MN = i + j - 1; From 6d092aca28a1be1b6b4a8ddca85d18dfa1fcd30d Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:40:45 +0200 Subject: [PATCH 11/90] Update calculateDryAirParameters.m --- src/+dryair/calculateDryAirParameters.m | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/+dryair/calculateDryAirParameters.m b/src/+dryair/calculateDryAirParameters.m index 9998ae05..f623d5d6 100644 --- a/src/+dryair/calculateDryAirParameters.m +++ b/src/+dryair/calculateDryAirParameters.m @@ -24,10 +24,11 @@ AirVariabes.DTDZ = InitialValues.DTDZ; GasDispersivity.DPgDZ = InitialValues.DPgDZ; - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end for i = indxBotm:ModelSettings.NL @@ -56,11 +57,11 @@ AirVariabes.DDhDZ(i) = DDhDZ; AirVariabes.DhDZ(i) = DhDZ; AirVariabes.DTDZ(i) = DTDZ; - AirVariabes.QL(i) = QL; + AirVariabes.QL(i) = QL; % total liquid flux % added by Mostafa - AirVariabes.QL_h(i) = QL_h(i); - AirVariabes.QL_T(i) = QL_T(i); - AirVariabes.QL_a(i) = QL_a(i); + AirVariabes.QL_h(i) = QL_h(i); % liquid flux due to matric potential + AirVariabes.QL_T(i) = QL_T(i); % liquid flux due to temperature gradient + AirVariabes.QL_a(i) = QL_a(I); % liquid flux due to air pressure gradient for j = 1:ModelSettings.nD MN = i + j - 1; From 39509506fcb0ffb2b153c0a6da2d3dabaf4dc7a7 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:40:50 +0200 Subject: [PATCH 12/90] Update assembleCoefficientMatrices.m --- src/+dryair/assembleCoefficientMatrices.m | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/+dryair/assembleCoefficientMatrices.m b/src/+dryair/assembleCoefficientMatrices.m index fa0ba3ed..fea11a5d 100644 --- a/src/+dryair/assembleCoefficientMatrices.m +++ b/src/+dryair/assembleCoefficientMatrices.m @@ -20,9 +20,8 @@ % Alias of SoilVariables SV = SoilVariables; - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater coupling is not activated - % index of bottom layer = 1, since STEMMUS calculations start from bottom to top - indxBotm = 1; + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; From 3edd6d7aa29199367c05cdeb42d5bdb4a3652d31 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:43:25 +0200 Subject: [PATCH 13/90] Update calculateBoundaryConditions.m --- src/+dryair/calculateBoundaryConditions.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/+dryair/calculateBoundaryConditions.m b/src/+dryair/calculateBoundaryConditions.m index 6e43e150..1fbf975c 100644 --- a/src/+dryair/calculateBoundaryConditions.m +++ b/src/+dryair/calculateBoundaryConditions.m @@ -7,11 +7,11 @@ ModelSettings = io.getModelSettings(); n = ModelSettings.NN; - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top - BtmPg = BoundaryCondition.BtmPg; + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; BtmPg = P_gg(indxBotm); end From 770a709ec819ef6011145e7e6cf0834788a3f425 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:46:13 +0200 Subject: [PATCH 14/90] Update calculateBoundaryConditions.m --- src/+dryair/calculateBoundaryConditions.m | 1 + 1 file changed, 1 insertion(+) diff --git a/src/+dryair/calculateBoundaryConditions.m b/src/+dryair/calculateBoundaryConditions.m index 1fbf975c..dcee8c37 100644 --- a/src/+dryair/calculateBoundaryConditions.m +++ b/src/+dryair/calculateBoundaryConditions.m @@ -9,6 +9,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + BtmPg = BoundaryCondition.BtmPg; else % Groundwater Coupling is activated % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; From 2465f90d7cca36c58eb2cb8651ec68c1d22a567d Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:47:06 +0200 Subject: [PATCH 15/90] Update calculateMatricCoefficients.m --- src/+dryair/calculateMatricCoefficients.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+dryair/calculateMatricCoefficients.m b/src/+dryair/calculateMatricCoefficients.m index c7f8e1ee..6f09d3ce 100644 --- a/src/+dryair/calculateMatricCoefficients.m +++ b/src/+dryair/calculateMatricCoefficients.m @@ -15,10 +15,11 @@ AirMatrices.C6 = InitialValues.C6; AirMatrices.C7 = zeros(ModelSettings.NN); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end for i = indxBotm:ModelSettings.NL From f695bb2ed689d91eee2f6889aca32c18ac2cbdd1 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:47:50 +0200 Subject: [PATCH 16/90] Update solveTridiagonalMatrixEquations.m --- src/+dryair/solveTridiagonalMatrixEquations.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+dryair/solveTridiagonalMatrixEquations.m b/src/+dryair/solveTridiagonalMatrixEquations.m index ddf5a02c..b966a4e6 100644 --- a/src/+dryair/solveTridiagonalMatrixEquations.m +++ b/src/+dryair/solveTridiagonalMatrixEquations.m @@ -6,10 +6,11 @@ ModelSettings = io.getModelSettings(); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end RHS(indxBotm) = RHS(indxBotm) / AirMatrices.C6(indxBotm, 1); From 97cdca726b0860dec3af466c7aad0c0b06e913fe Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:48:55 +0200 Subject: [PATCH 17/90] Update src/+energy/assembleCoefficientMatrices.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+energy/assembleCoefficientMatrices.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+energy/assembleCoefficientMatrices.m b/src/+energy/assembleCoefficientMatrices.m index a73becdf..91a1ba3a 100644 --- a/src/+energy/assembleCoefficientMatrices.m +++ b/src/+energy/assembleCoefficientMatrices.m @@ -17,7 +17,7 @@ ModelSettings = io.getModelSettings(); n = ModelSettings.NN; - if ModelSettings.Soilairefc == 1 % added by Mostafa + if ModelSettings.Soilairefc == 1 % see https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/227 C6_a = EnergyMatrices.C6_a; end From 856bab6858343c2dd0ee346e2cd7fb2fbde5bbce Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:49:58 +0200 Subject: [PATCH 18/90] Update assembleCoefficientMatrices.m --- src/+energy/assembleCoefficientMatrices.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/+energy/assembleCoefficientMatrices.m b/src/+energy/assembleCoefficientMatrices.m index 91a1ba3a..ad32eca7 100644 --- a/src/+energy/assembleCoefficientMatrices.m +++ b/src/+energy/assembleCoefficientMatrices.m @@ -21,10 +21,11 @@ C6_a = EnergyMatrices.C6_a; end - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top - else % Groundwater Coupling is activated, added by Mostafa - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end % Alias of SoilVariables From 9937d58e447c6156c77ed069f7bedb0b0bdc1504 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:51:10 +0200 Subject: [PATCH 19/90] Update calculateBoundaryConditions.m --- src/+energy/calculateBoundaryConditions.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+energy/calculateBoundaryConditions.m b/src/+energy/calculateBoundaryConditions.m index a96647d7..46e86213 100644 --- a/src/+energy/calculateBoundaryConditions.m +++ b/src/+energy/calculateBoundaryConditions.m @@ -10,11 +10,12 @@ Constants = io.define_constants(); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top tempBotm = BoundaryCondition.BCTB; else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; tempBotm = GroundwaterSettings.tempBotm; % groundwater temperature end From 30e82dac81dcf1b84b01fbe3c019a7777bc08d4b Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:06:07 +0200 Subject: [PATCH 20/90] Update calculateEnergyParameters.m --- src/+energy/calculateEnergyParameters.m | 37 ++++++++++++------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/+energy/calculateEnergyParameters.m b/src/+energy/calculateEnergyParameters.m index 355ed5f0..f66226f9 100644 --- a/src/+energy/calculateEnergyParameters.m +++ b/src/+energy/calculateEnergyParameters.m @@ -9,10 +9,11 @@ ModelSettings = io.getModelSettings(); Constants = io.define_constants(); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top - else % Groundwater Coupling is activated, added by Mostafa - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end % input @@ -37,9 +38,9 @@ QL = AirVariabes.QL; if ModelSettings.Soilairefc % added by Mostafa - QL_h = AirVariabes.QL_h; - QL_T = AirVariabes.QL_T; - QL_a = AirVariabes.QL_a; + QL_h = AirVariabes.QL_h; % liquid flux due to matric potential gradient + QL_T = AirVariabes.QL_T; % liquid flux due to temperature gradient + QL_a = AirVariabes.QL_a; % liquid flux due to air pressure gradient end % output @@ -73,26 +74,24 @@ % terms.(0.0003,volumetric heat capacity) if ~ModelSettings.Soilairefc QL(i) = -(KLhBAR(i) * DhDZ(i) + (KLTBAR(i) + DTDBAR(i)) * DTDZ(i) + KLhBAR(i)); - QL_h(i) = -(KLhBAR(i) * DhDZ(i) + KLhBAR(i)); % added by Mostafa - QL_T(i) = -((KLTBAR(i) + DTDBAR(i)) * DTDZ(i)); % added by Mostafa - QL_a(i) = 0; % added by Mostafa + QL_h(i) = -(KLhBAR(i) * DhDZ(i) + KLhBAR(i)); + QL_T(i) = -((KLTBAR(i) + DTDBAR(i)) * DTDZ(i)); + QL_a(i) = 0; Qa = 0; else Qa = -((DEhBAR + GasDispersivity.D_Vg(i)) * DRHODAz(i) - RHODA(i) * (GasDispersivity.V_A(i) + Constants.Hc * QL(i) / Constants.RHOL)); end - + + QVH(i) = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i); + QVT(i) = -(DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); if SoilVariables.DVa_Switch == 1 + QVa(i) = RHOVBAR * GasDispersivity.V_A(i); QV = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i) - (DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i) + RHOVBAR * GasDispersivity.V_A(i); - QVH(i) = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i); % activated by Mostafa - QVT(i) = -(DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); % activated by Mostafa - QVa(i) = RHOVBAR * GasDispersivity.V_A(i); % added by Mostafa else + QVa(i) = 0; QV = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i) - (DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); - QVH(i) = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i); % activated by Mostafa - QVT(i) = -(DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); % activated by Mostafa - QVa(i) = 0; % added by Mostafa end - + % These are unused vars, but I comment them for future reference, % See issue 100, item 1 % DVH(i) = (DEhBAR) * DRHOVhDz(i); @@ -171,7 +170,7 @@ end end - % outputs to be used for groundwater recharge calculations in the calculateGroundwaterRecharge function, added by Mostafa + % Outputs to be used for groundwater recharge calculations in the calculateGroundwaterRecharge function Qtot = QL_h + QL_T + QL_a + QVH + QVT + QVa; EnergyVariables.Qtot = Qtot; % total flux (liquid + vapor) EnergyVariables.QL_h = QL_h; % liquid flux due to matric potential gradient From d69d4b5abb5aacfd09bed77930db01667c027861 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:11:43 +0200 Subject: [PATCH 21/90] Update src/+energy/calculateEnergyParameters.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+energy/calculateEnergyParameters.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/+energy/calculateEnergyParameters.m b/src/+energy/calculateEnergyParameters.m index f66226f9..79c56507 100644 --- a/src/+energy/calculateEnergyParameters.m +++ b/src/+energy/calculateEnergyParameters.m @@ -171,8 +171,7 @@ end % Outputs to be used for groundwater recharge calculations in the calculateGroundwaterRecharge function - Qtot = QL_h + QL_T + QL_a + QVH + QVT + QVa; - EnergyVariables.Qtot = Qtot; % total flux (liquid + vapor) + EnergyVariables.Qtot = QL_h + QL_T + QL_a + QVH + QVT + QVa; % total flux (liquid + vapor) EnergyVariables.QL_h = QL_h; % liquid flux due to matric potential gradient EnergyVariables.QL_T = QL_T; % liquid flux due to temperature gradient EnergyVariables.QL_a = QL_a; % liquid flux due to air pressure gradient From b6f95cc7a6273785d05643fa88233b44bec6a763 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:13:32 +0200 Subject: [PATCH 22/90] Update src/+energy/solveEnergyBalanceEquations.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+energy/solveEnergyBalanceEquations.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/+energy/solveEnergyBalanceEquations.m b/src/+energy/solveEnergyBalanceEquations.m index 643df2a4..f7fe483e 100644 --- a/src/+energy/solveEnergyBalanceEquations.m +++ b/src/+energy/solveEnergyBalanceEquations.m @@ -27,7 +27,6 @@ indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top else % Groundwater Coupling is activated, added by Mostafa indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) - tempBotm = GroundwaterSettings.tempBotm; % groundwater temperature end ModelSettings = io.getModelSettings(); From c80f711af8544f70626b555899aca94a0bfa5692 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:14:22 +0200 Subject: [PATCH 23/90] Update src/+energy/solveEnergyBalanceEquations.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+energy/solveEnergyBalanceEquations.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+energy/solveEnergyBalanceEquations.m b/src/+energy/solveEnergyBalanceEquations.m index f7fe483e..6f078514 100644 --- a/src/+energy/solveEnergyBalanceEquations.m +++ b/src/+energy/solveEnergyBalanceEquations.m @@ -39,7 +39,7 @@ if GroundwaterSettings.GroundwaterCoupling % Assign the groundwater temperature to the saturated layers, added by Mostafa for i = indxBotm - 1:-1:1 - SoilVariables.TT(i) = tempBotm; + SoilVariables.TT(i) = GroundwaterSettings.tempBotm; % groundwater temperature; end end From 8d6ee5114f8c88c689cd47a0e10c3c5e6652e591 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:15:52 +0200 Subject: [PATCH 24/90] Update solveEnergyBalanceEquations.m --- src/+energy/solveEnergyBalanceEquations.m | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/+energy/solveEnergyBalanceEquations.m b/src/+energy/solveEnergyBalanceEquations.m index 6f078514..ed99cb08 100644 --- a/src/+energy/solveEnergyBalanceEquations.m +++ b/src/+energy/solveEnergyBalanceEquations.m @@ -23,10 +23,11 @@ [SoilVariables, CHK, RHS, EnergyMatrices] = energy.solveTridiagonalMatrixEquations(EnergyMatrices, SoilVariables, RHS, CHK, GroundwaterSettings); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top - else % Groundwater Coupling is activated, added by Mostafa - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end ModelSettings = io.getModelSettings(); @@ -37,7 +38,7 @@ end if GroundwaterSettings.GroundwaterCoupling - % Assign the groundwater temperature to the saturated layers, added by Mostafa + % Assign the groundwater temperature to the saturated layers for i = indxBotm - 1:-1:1 SoilVariables.TT(i) = GroundwaterSettings.tempBotm; % groundwater temperature; end From e9c407697a5498f79d0a4c58320229973192e2ea Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:16:45 +0200 Subject: [PATCH 25/90] Update calculateMatricCoefficients.m --- src/+energy/calculateMatricCoefficients.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/+energy/calculateMatricCoefficients.m b/src/+energy/calculateMatricCoefficients.m index 411f0931..30590775 100644 --- a/src/+energy/calculateMatricCoefficients.m +++ b/src/+energy/calculateMatricCoefficients.m @@ -14,10 +14,11 @@ EnergyMatrices.C6 = InitialValues.C6; EnergyMatrices.C7 = zeros(ModelSettings.NN); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top - else % Groundwater Coupling is activated, added by Mostafa - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end for i = indxBotm:ModelSettings.NL From 66077b4f3806f6dbc12891c55258075c510fa30d Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:17:24 +0200 Subject: [PATCH 26/90] Update calculateEnergyFluxes.m --- src/+energy/calculateEnergyFluxes.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+energy/calculateEnergyFluxes.m b/src/+energy/calculateEnergyFluxes.m index f3cd3d7f..58f3a80e 100644 --- a/src/+energy/calculateEnergyFluxes.m +++ b/src/+energy/calculateEnergyFluxes.m @@ -7,10 +7,11 @@ ModelSettings = io.getModelSettings(); n = ModelSettings.NN; - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end % So far these are unused vars From 4524e0151ad3425ad0d67116f0ef3e799eb847fa Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:22:22 +0200 Subject: [PATCH 27/90] Update src/+energy/solveTridiagonalMatrixEquations.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+energy/solveTridiagonalMatrixEquations.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/+energy/solveTridiagonalMatrixEquations.m b/src/+energy/solveTridiagonalMatrixEquations.m index d2940e97..ac29f62a 100644 --- a/src/+energy/solveTridiagonalMatrixEquations.m +++ b/src/+energy/solveTridiagonalMatrixEquations.m @@ -9,7 +9,6 @@ if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa indxBotm = 1; else % Groundwater Coupling is activated, added by Mostafa - soilThick = GroundwaterSettings.soilThick; % cumulative soil layers thickness indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) end From f0c25803c43df78b51d0b5bcb98ff6727d35272f Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:24:24 +0200 Subject: [PATCH 28/90] Update solveTridiagonalMatrixEquations.m --- src/+energy/solveTridiagonalMatrixEquations.m | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/+energy/solveTridiagonalMatrixEquations.m b/src/+energy/solveTridiagonalMatrixEquations.m index ac29f62a..1fe44339 100644 --- a/src/+energy/solveTridiagonalMatrixEquations.m +++ b/src/+energy/solveTridiagonalMatrixEquations.m @@ -6,10 +6,11 @@ ModelSettings = io.getModelSettings(); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; - else % Groundwater Coupling is activated, added by Mostafa - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end RHS(indxBotm) = RHS(indxBotm) / EnergyMatrices.C5(indxBotm, 1); @@ -25,11 +26,12 @@ if GroundwaterSettings.GroundwaterCoupling for i = indxBotm:-1:2 - RHS(i - 1) = RHS(i); % all saturated layers get the same temp which was assigned as temp bottom boundary + RHS(i - 1) = RHS(i); % assign temp bottom boundary for all saturated layers end end - for i = 1:ModelSettings.NN % note: this for loop causes wrong values if i = indxBotm:ModelSettings.NN instead of i = 1:ModelSettings.NN + for i = 1:ModelSettings.NN + % note: this for loop causes wrong values if i = indxBotm:ModelSettings.NN instead of i = 1:ModelSettings.NN CHK(i) = abs(RHS(i) - SoilVariables.TT(i)); SoilVariables.TT(i) = RHS(i); end From a8d027f61b6f8f1db740c8d088159801adc888d0 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:27:48 +0200 Subject: [PATCH 29/90] Update src/+groundwater/calculateGroundwaterRecharge.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/calculateGroundwaterRecharge.m | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index 073e7676..ce65797c 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -34,10 +34,6 @@ soilThick cumulative soil layers thickness (from top to bottom) aqLayers elevation of top surface level and all bottom levels of aquifer layers, received from MODFLOW through BMI %} - % Load model settings - ModelSettings = io.getModelSettings(); - NN = ModelSettings.NN; % Number of nodes - NL = ModelSettings.NL; % Number of layers % Start Recharge calculations if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled From 4a439c5eff246997ed55a9ebe68f59d8d9bd40eb Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:28:07 +0200 Subject: [PATCH 30/90] Update src/+groundwater/calculateGroundwaterRecharge.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/calculateGroundwaterRecharge.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index ce65797c..0985d7f9 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -93,6 +93,10 @@ soilThick cumulative soil layers thickness (from top to bottom) Theta_L = SoilVariables.Theta_L; Theta_LL = SoilVariables.Theta_LL; % flip the soil moisture to be from top layer to bottom (opposite of Theta_L) + % Load model settings + ModelSettings = io.getModelSettings(); + NN = ModelSettings.NN; % Number of nodes + NL = ModelSettings.NL; % Number of layers STheta_L(1) = Theta_L(NL, 2); STheta_L(2:1:NN) = Theta_L(NN - 1:-1:1, 1); STheta_LL(1) = Theta_LL(NL, 2); From 5a58765238c85166613e45acb1a8d3d33f20431a Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:34:00 +0200 Subject: [PATCH 31/90] Update src/+groundwater/calculateGroundwaterRecharge.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/calculateGroundwaterRecharge.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index 0985d7f9..1e978ac1 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -126,6 +126,5 @@ soilThick cumulative soil layers thickness (from top to bottom) % gwfluxes.recharge_init = recharge_init; % gwfluxes.S = S; % gwfluxes.sy = sy; - gwfluxes.recharge = recharge; end end From 48c244f6a986652edfeca074db914c50e6791ccd Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:34:11 +0200 Subject: [PATCH 32/90] Update src/+groundwater/calculateGroundwaterRecharge.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/calculateGroundwaterRecharge.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index 1e978ac1..622a3118 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -110,7 +110,7 @@ soilThick cumulative soil layers thickness (from top to bottom) % (f) Aggregate c, d, and e to get recharge % after couple of testing, it appears that the effect of S and sy is very minor, so they are removed but kept in the code for further investigation % recharge = recharge_init + S - sy; - recharge = recharge_init; % Note: in STEMMUS +ve means up-flow direction and -ve means down (opposite of MODFLOW), so recharge sign needs to be converted in BMI + gwfluxes.recharge = recharge_init; % Note: in STEMMUS +ve means up-flow direction and -ve means down (opposite of MODFLOW), so recharge sign needs to be converted in BMI if any(isnan(recharge)) || any(isinf(recharge)) recharge = 0; From 562902afa1017fc498fa94ba04ee70e72977cc6f Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:34:30 +0200 Subject: [PATCH 33/90] Update src/+groundwater/calculateGroundwaterRecharge.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/calculateGroundwaterRecharge.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index 622a3118..c956e2a0 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -112,8 +112,8 @@ soilThick cumulative soil layers thickness (from top to bottom) % recharge = recharge_init + S - sy; gwfluxes.recharge = recharge_init; % Note: in STEMMUS +ve means up-flow direction and -ve means down (opposite of MODFLOW), so recharge sign needs to be converted in BMI - if any(isnan(recharge)) || any(isinf(recharge)) - recharge = 0; + if isnan(recharge) || isinf(recharge) + gwfluxes.recharge = 0; end % Outputs to be exported in csv From 9d4b252504809efa494df22e8099f3ea3367336e Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:36:55 +0200 Subject: [PATCH 34/90] Update src/+groundwater/calculateGroundwaterRecharge.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/calculateGroundwaterRecharge.m | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index c956e2a0..e58e3e9d 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -44,9 +44,7 @@ soilThick cumulative soil layers thickness (from top to bottom) % (a) Define the upper and lower boundaries of the moving balancing domain % the moving balancing domain is located between depToGWT_strt and depToGWT_end - [depToGWT, indxGWLay] = groundwater.findPhreaticSurface(SoilVariables, KT, GroundwaterSettings); - depToGWT_end = depToGWT; - indxGWLay_end = indxGWLay; + [depToGWT_end, indxGWLay_end] = groundwater.findPhreaticSurface(SoilVariables, KT, GroundwaterSettings); % indxRchrg and indxRchrgMax are the indecies of the upper and lower levels of the moving boundary % Following the HYDRUS-MODFLOW paper and also STEMMUS-MODFLOW, indxRchrg and indxRchrgMax are defined as in the next two lines indxRchrgMax = max(indxGWLay_strt, indxGWLay_end) + 2; % the positive 2 is a user-specified value to define lower boundary of the moving boundary From 5f27b274a1cd9c63917f441d16cd76a7f8b5f8b9 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:40:06 +0200 Subject: [PATCH 35/90] Update src/+groundwater/calculateGroundwaterRecharge.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- .../calculateGroundwaterRecharge.m | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index e58e3e9d..244ddbd4 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -54,22 +54,14 @@ soilThick cumulative soil layers thickness (from top to bottom) indxRchrg_above = min(indxGWLay_strt, indxGWLay_end) - 2; % (b) Call the fluxes to get the initial recharge - QL_h = EnergyVariables.QL_h; % liquid flux due to matric potential gradient - QL_T = EnergyVariables.QL_T; % liquid flux due to temperature gradient - QL_a = EnergyVariables.QL_a; % liquid flux due to air pressure gradient - QVH = EnergyVariables.QVH; % vapor water flux due to matric potential gradient - QVT = EnergyVariables.QVT; % vapor water flux due to temperature gradient - QVa = EnergyVariables.QVa; % vapor water flux due to air pressure gradient - Qtot = EnergyVariables.Qtot; % total flux (liquid + vapor) - % flip the fluxes (because STEMMUS calculations are from bottom to top, and MODFLOW needs the recharge from top to bottom) - QLh_flip = flip(QL_h(1, :)); - QLT_flip = flip(QL_T(1, :)); - QLa_flip = flip(QL_a(1, :)); - QVH_flip = flip(QVH(1, :)); - QVT_flip = flip(QVT(1, :)); - QVa_flip = flip(QVa(1, :)); - Q_flip = flip(Qtot(1, :)); + QLh_flip = flip(EnergyVariables.QL_h(1, :)); % liquid flux due to matric potential gradient + QLT_flip = flip(EnergyVariables.QL_T(1, :)); % liquid flux due to temperature gradient + QLa_flip = flip(EnergyVariables.QL_a(1, :)); % liquid flux due to air pressure gradient + QVH_flip = flip(EnergyVariables.QVH(1, :)); % vapor water flux due to matric potential gradient + QVT_flip = flip(EnergyVariables.QVT(1, :)); % vapor water flux due to temperature gradient + QVa_flip = flip(EnergyVariables.QVa(1, :)); % vapor water flux due to air pressure gradient + Q_flip = flip(EnergyVariables.Qtot(1, :)); % total flux (liquid + vapor) % (c) Get the recharge_init (before the correction of the specific yeild)) % to avoid a zero flux value at the layer which recharge will be exporated From 2cb791560f3674b0e9945e93c2a5a6af82a402bb Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:47:38 +0200 Subject: [PATCH 36/90] Update calculateGroundwaterRecharge.m --- src/+groundwater/calculateGroundwaterRecharge.m | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index 244ddbd4..bea385f7 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -34,14 +34,8 @@ soilThick cumulative soil layers thickness (from top to bottom) aqLayers elevation of top surface level and all bottom levels of aquifer layers, received from MODFLOW through BMI %} - % Start Recharge calculations if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled - % Load needed variables - soilThick = GroundwaterSettings.soilThick; % cumulative soil layer thickness (from top to bottom) - indxAqLay = GroundwaterSettings.indxAqLay; % index of MODFLOW aquifer layers for each STEMMUS soil layer - aqLayers = GroundwaterSettings.aqLayers; % elevation of top surface level and all bottom levels of aquifer layers - % (a) Define the upper and lower boundaries of the moving balancing domain % the moving balancing domain is located between depToGWT_strt and depToGWT_end [depToGWT_end, indxGWLay_end] = groundwater.findPhreaticSurface(SoilVariables, KT, GroundwaterSettings); @@ -73,6 +67,8 @@ soilThick cumulative soil layers thickness (from top to bottom) % (d) Calculations of SY % Note: In the HYDRUS-MODFLOW paper, Sy (from MODFLOW) was used. In Lianyu STEMMUS_MODFLOW code, a combination of Sy and Ss was used + indxAqLay = GroundwaterSettings.indxAqLay; % index of MODFLOW aquifer layers for each STEMMUS soil layer + aqLayers = GroundwaterSettings.aqLayers; % elevation of top surface level and all bottom levels of aquifer layers K = indxAqLay(indxGWLay_end); Thk = aqLayers(1) - aqLayers(K) - depToGWT_end; SY = GroundwaterSettings.SY; @@ -80,13 +76,13 @@ soilThick cumulative soil layers thickness (from top to bottom) S = (SY(K) - SS(K) * Thk) * (depToGWT_strt - depToGWT_end); % (e) Calculations of sy - Theta_L = SoilVariables.Theta_L; - Theta_LL = SoilVariables.Theta_LL; - % flip the soil moisture to be from top layer to bottom (opposite of Theta_L) - % Load model settings + soilThick = GroundwaterSettings.soilThick; % cumulative soil layer thickness (from top to bottom) ModelSettings = io.getModelSettings(); NN = ModelSettings.NN; % Number of nodes NL = ModelSettings.NL; % Number of layers + Theta_L = SoilVariables.Theta_L; + Theta_LL = SoilVariables.Theta_LL; + % Flip the soil moisture from top layer to bottom (opposite of Theta_L) STheta_L(1) = Theta_L(NL, 2); STheta_L(2:1:NN) = Theta_L(NN - 1:-1:1, 1); STheta_LL(1) = Theta_LL(NL, 2); From 02a9c14bcad30253d3a4c6bc1926e52c93a9d1c9 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:56:23 +0200 Subject: [PATCH 37/90] Update assembleCoefficientMatrices.m --- src/+soilmoisture/assembleCoefficientMatrices.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+soilmoisture/assembleCoefficientMatrices.m b/src/+soilmoisture/assembleCoefficientMatrices.m index feed3047..35406610 100644 --- a/src/+soilmoisture/assembleCoefficientMatrices.m +++ b/src/+soilmoisture/assembleCoefficientMatrices.m @@ -18,10 +18,11 @@ HeatMatrices.C4_a = []; HeatMatrices.C5_a = []; - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end for i = indxBotm:ModelSettings.NL From 5a6054792006465e4686566726053885de53f43c Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:56:59 +0200 Subject: [PATCH 38/90] Update calculateMatricCoefficients.m --- src/+soilmoisture/calculateMatricCoefficients.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/+soilmoisture/calculateMatricCoefficients.m b/src/+soilmoisture/calculateMatricCoefficients.m index 367d5ad2..fec53996 100644 --- a/src/+soilmoisture/calculateMatricCoefficients.m +++ b/src/+soilmoisture/calculateMatricCoefficients.m @@ -26,10 +26,11 @@ Calculate all the parameters related to matric coefficients (e.g., % Make SV as an alias of SoilVariables to make codes shorter SV = SoilVariables; - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top - else % Groundwater Coupling is activated, added by Mostafa - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end for i = indxBotm:ModelSettings.NL From 813941634ed04ac1bdf5820baa71a38c1371932c Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:57:29 +0200 Subject: [PATCH 39/90] Update calculateTimeDerivatives.m --- src/+soilmoisture/calculateTimeDerivatives.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/+soilmoisture/calculateTimeDerivatives.m b/src/+soilmoisture/calculateTimeDerivatives.m index ef4e9e2d..783e7b37 100644 --- a/src/+soilmoisture/calculateTimeDerivatives.m +++ b/src/+soilmoisture/calculateTimeDerivatives.m @@ -24,10 +24,11 @@ % n is the index of n_th item n = ModelSettings.NN; - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top - else % Groundwater Coupling is activated, added by Mostafa - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end if ModelSettings.Thmrlefc && ~ModelSettings.Soilairefc From 12a5bc84421d5bdd533d9cb5250ef31ed2f53697 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:57:49 +0200 Subject: [PATCH 40/90] Update calculatesSoilWaterFluxes.m --- src/+soilmoisture/calculatesSoilWaterFluxes.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+soilmoisture/calculatesSoilWaterFluxes.m b/src/+soilmoisture/calculatesSoilWaterFluxes.m index 63a6d584..6dd6e72b 100644 --- a/src/+soilmoisture/calculatesSoilWaterFluxes.m +++ b/src/+soilmoisture/calculatesSoilWaterFluxes.m @@ -4,10 +4,11 @@ %} ModelSettings = io.getModelSettings(); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by defualt (no groundwater coupling) its layer with index 1, since STEMMUS calcuations starts from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end HBoundaryFlux.QMT = SAVE(2, 1, 1) - SAVE(2, 2, 1) * hh(ModelSettings.NN - 1) - SAVE(2, 3, 1) * hh(ModelSettings.NN); From f7919de5b3e5d01a5405bc0e4ebd2cf7f79afddf Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:58:35 +0200 Subject: [PATCH 41/90] Update solveSoilMoistureBalance.m --- src/+soilmoisture/solveSoilMoistureBalance.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/+soilmoisture/solveSoilMoistureBalance.m b/src/+soilmoisture/solveSoilMoistureBalance.m index 81e8957c..9c705905 100644 --- a/src/+soilmoisture/solveSoilMoistureBalance.m +++ b/src/+soilmoisture/solveSoilMoistureBalance.m @@ -36,10 +36,11 @@ % fix hh values ModelSettings = io.getModelSettings(); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by default (no groundwater coupling) its layer with index 1, since STEMMUS calculations starts from bottom to top - else % Groundwater Coupling is activated, added by Mostafa - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end for i = indxBotm:ModelSettings.NN From deec78a52dcb1b6580db56344c154883b715ef10 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:00:14 +0200 Subject: [PATCH 42/90] Update solveTridiagonalMatrixEquations.m --- src/+soilmoisture/solveTridiagonalMatrixEquations.m | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/+soilmoisture/solveTridiagonalMatrixEquations.m b/src/+soilmoisture/solveTridiagonalMatrixEquations.m index ab843400..6c542743 100644 --- a/src/+soilmoisture/solveTridiagonalMatrixEquations.m +++ b/src/+soilmoisture/solveTridiagonalMatrixEquations.m @@ -5,12 +5,11 @@ %} ModelSettings = io.getModelSettings(); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by default (no groundwater coupling) its layer with index 1, since STEMMUS calculations starts from bottom to top - - else % Groundwater Coupling is activated, added by Mostafa - soilThick = GroundwaterSettings.soilThick; % cumulative soil layers thickness - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top + else % Groundwater Coupling is activated + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end RHS(indxBotm) = RHS(indxBotm) / C4(indxBotm, 1); From 51d91a25eb8effb4129e3c426cd7449629c07433 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:02:09 +0200 Subject: [PATCH 43/90] Update calculateEvapotranspiration.m --- src/+soilmoisture/calculateEvapotranspiration.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+soilmoisture/calculateEvapotranspiration.m b/src/+soilmoisture/calculateEvapotranspiration.m index 5d0488ff..a8ef6539 100644 --- a/src/+soilmoisture/calculateEvapotranspiration.m +++ b/src/+soilmoisture/calculateEvapotranspiration.m @@ -2,10 +2,11 @@ ModelSettings = io.getModelSettings(); - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa - indxBotm = 1; % index of bottom layer, by default (no groundwater coupling) its layer with index 1, since STEMMUS calculations start from bottom to top + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa + indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) + indxBotm = GroundwaterSettings.indxBotmLayer; end Rn = (ForcingData.Rn_msr(KT)) * 8.64 / 24 / 100 * 1; From e2cef1ebb065fffe36e813d5130fd41b10db79ac Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:09:38 +0200 Subject: [PATCH 44/90] Update src/+groundwater/findPhreaticSurface.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/findPhreaticSurface.m | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index d77ba394..57662a8a 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -28,8 +28,6 @@ soilThick cumulative soil layers thickness (from top to bottom) % Load model settings ModelSettings = io.getModelSettings(); NN = ModelSettings.NN; % number of nodes - NL = ModelSettings.NL; % number of layers - gw_Dep = GroundwaterSettings.gw_Dep; % Tot_Depth = ModelSettings.Tot_Depth; % total soil depth % Load Groundwater settings From e02417b70cbf7dc433b6c60e5f18006575e8c134 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:10:54 +0200 Subject: [PATCH 45/90] Update src/+groundwater/findPhreaticSurface.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/findPhreaticSurface.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index 57662a8a..d6d7090c 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -66,7 +66,7 @@ soilThick cumulative soil layers thickness (from top to bottom) if depToGWT <= 0 warning('The pheratic surface level is equal or higher than the land surface level!'); % check 2 - elseif depToGWT > Tot_Depth + elseif depToGWT > ModelSettings.Tot_Depth; % total soil depth warning('The pheratic surface level is lower than the end of the soil column!'); end % check 3 From 9c13f837df52466978ba72cd22e68fc486dca875 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:11:06 +0200 Subject: [PATCH 46/90] Update src/+groundwater/findPhreaticSurface.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/findPhreaticSurface.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index d6d7090c..331b0128 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -28,7 +28,6 @@ soilThick cumulative soil layers thickness (from top to bottom) % Load model settings ModelSettings = io.getModelSettings(); NN = ModelSettings.NN; % number of nodes - Tot_Depth = ModelSettings.Tot_Depth; % total soil depth % Load Groundwater settings if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled From 795ba07e044a8374baabe1b565b64ea1d0d0114a Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:13:09 +0200 Subject: [PATCH 47/90] Update src/+groundwater/findPhreaticSurface.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/findPhreaticSurface.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index 331b0128..5398fb14 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -32,7 +32,6 @@ soilThick cumulative soil layers thickness (from top to bottom) % Load Groundwater settings if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled soilThick = GroundwaterSettings.soilThick; - indxBotmLayer = GroundwaterSettings.indxBotmLayer; indxBotmLayer_R = GroundwaterSettings.indxBotmLayer_R; % Call the matric potential From b311b605db5fe32094198f23c89db0cba3c9b074 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:13:47 +0200 Subject: [PATCH 48/90] Update src/+groundwater/findPhreaticSurface.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/findPhreaticSurface.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index 5398fb14..e69e5841 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -68,7 +68,7 @@ soilThick cumulative soil layers thickness (from top to bottom) warning('The pheratic surface level is lower than the end of the soil column!'); end % check 3 - diff = abs(indxGWLay - indxBotmLayer_R); + diff = abs(indxGWLay - GroundwaterSettings.indxBotmLayer_R); if diff > 1 warning('Index of the bottom layer boundary that includes groundwater head ~= index of the layer that has zero matric potential!'); end From ef6645de026cdded073f35cd146b47f27dbce9ee Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:14:00 +0200 Subject: [PATCH 49/90] Update src/+groundwater/findPhreaticSurface.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+groundwater/findPhreaticSurface.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index e69e5841..0009fffe 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -32,7 +32,6 @@ soilThick cumulative soil layers thickness (from top to bottom) % Load Groundwater settings if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled soilThick = GroundwaterSettings.soilThick; - indxBotmLayer_R = GroundwaterSettings.indxBotmLayer_R; % Call the matric potential Shh(1:1:NN) = SoilVariables.hh(NN:-1:1); From 7dc5590f33b57c2b1104099c13b01e679a149d5f Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:18:30 +0200 Subject: [PATCH 50/90] Update findPhreaticSurface.m --- src/+groundwater/findPhreaticSurface.m | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index 0009fffe..6a76dc95 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -14,7 +14,6 @@ Although the groundwater depth (variable -> "gw_Dep") is calculated already from and depToGWT (e.g. difference = 1-10 cm based on the thickness of the soil layer that contains the depToGWT). %%%%%%%%%% Variables definitions %%%%%%%%%% - gw_Dep depth from top soil layer to groundwater level, calculated from MODFLOW inputs depToGWT depth from top soil layer to groundwater level, calculated from STEMMUS variables indxBotmLayer_R index of the bottom layer that contains the current headBotmLayer (top to bottom) indxBotmLayer index of the bottom layer that contains the current headBotmLayer (bottom to top) @@ -35,8 +34,8 @@ soilThick cumulative soil layers thickness (from top to bottom) % Call the matric potential Shh(1:1:NN) = SoilVariables.hh(NN:-1:1); - depToGWT = 0; % starting value for initalization. for update, its calcualted below - indxGWLay = NN - 2; % starting value for initalization. for update, its calcualted below + depToGWT = 0; % starting value for initialization, updated below + indxGWLay = NN - 2; % starting value for initialization, updated below % Find the phreatic surface (saturated zone) for i = NN:-1:2 @@ -44,8 +43,8 @@ soilThick cumulative soil layers thickness (from top to bottom) soilThick_lay = soilThick(i); hh_nextlay = Shh(i - 1); soilThick_nextlay = soilThick(i - 1); - % apply a condition to find the groundwater table from the matric potnetial by .... - % differentiating between the first layer with positive or zero head value and the last layer with negative head value + % apply a condition to find the groundwater table from the matric potential by differentiating .... + % between a) first layer with positive or zero head value and b) last layer with negative head value if hh_lay > -1e-5 && hh_nextlay <= -1e-5 depToGWT = (hh_lay * soilThick_nextlay - hh_nextlay * soilThick_lay) / (hh_lay - hh_nextlay); midThick = (soilThick(i) + soilThick(i - 1)) / 2; @@ -58,13 +57,13 @@ soilThick cumulative soil layers thickness (from top to bottom) end end - if KT > 1 % start the checks from the first time step (after the initalization) + if KT > 1 % start the checks from the first time step (after initialization) % check 1 if depToGWT <= 0 - warning('The pheratic surface level is equal or higher than the land surface level!'); + warning('The phreatic surface level is equal or higher than the land surface level!'); % check 2 elseif depToGWT > ModelSettings.Tot_Depth; % total soil depth - warning('The pheratic surface level is lower than the end of the soil column!'); + warning('The phreatic surface level is lower than the end of the soil column!'); end % check 3 diff = abs(indxGWLay - GroundwaterSettings.indxBotmLayer_R); From b54c23bdd9329a3cab1bbbc785dd0e9f8e28b6f2 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:26:50 +0200 Subject: [PATCH 51/90] Update findPhreaticSurface.m --- src/+groundwater/findPhreaticSurface.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index 6a76dc95..389da40d 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -8,13 +8,13 @@ The index order for the soil layers in STEMMUS is from bottom to top (NN:1), whe which is the opposite of MODFLOW (top to bottom). So, when converting information between STEMMUS and MODFLOW, indices need to be flipped Although the groundwater depth (variable -> "gw_Dep") is calculated already from the MODFLOW inputs, it is re-calculated again in this function for two reasons: - 1) In this function, the groundwater depth is re-calculated, but this time is from the STEMMUS matric potential, so to make sure that ... + 1) In this function, the groundwater depth is re-calculated, but this time is from the STEMMUS matric potential, so to ensure that ... STEMMUS understood the location of the groundwater depth correctly. The re-calculated groundwater depth is stored in the "depToGWT" variable. 2) The depToGWT needs to be assigned to a certain soil layer. Because of that assignment, there will be a slight difference between gw_Dep ... and depToGWT (e.g. difference = 1-10 cm based on the thickness of the soil layer that contains the depToGWT). %%%%%%%%%% Variables definitions %%%%%%%%%% - depToGWT depth from top soil layer to groundwater level, calculated from STEMMUS variables + depToGWT water table depth: depth from top soil layer to groundwater level, calculated from STEMMUS variables indxBotmLayer_R index of the bottom layer that contains the current headBotmLayer (top to bottom) indxBotmLayer index of the bottom layer that contains the current headBotmLayer (bottom to top) indxGWLay index of the soil layer that includes the phreatic surface, so the recharge is .... From 0722e698a4b0b0de878f6d8caeed826dc52e7352 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:26:54 +0200 Subject: [PATCH 52/90] Update readGroundwaterSettings.m --- src/+groundwater/readGroundwaterSettings.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m index 327ccf8f..a53bc9a0 100644 --- a/src/+groundwater/readGroundwaterSettings.m +++ b/src/+groundwater/readGroundwaterSettings.m @@ -96,10 +96,11 @@ soilThick cumulative soil layers thickness (from top to bottom) end end - indxBotmLayer_R = indxBotmLayer_R; % index of bottom layer that contains current headBotmLayer (layer index start from top to bottom), opposite of STEMMUS (bottom to top) - indxBotmLayer = NN - indxBotmLayer_R + 1; % index of bottom boundary layer (layer index start from bottom to top) + indxBotmLayer_R = indxBotmLayer_R; % index of bottom layer that contains current headBotmLayer + % Note: indxBotmLayer_R starts from top to bottom, opposite of STEMMUS (bottom to top) + indxBotmLayer = NN - indxBotmLayer_R + 1; % index of bottom layer (from bottom to top) - % Assign the index of the MODFLOW aquifer that correspond to each STEMMUS soil layer + % Assign the index of the MODFLOW aquifer that corresponds to each STEMMUS soil layer indxAqLay = zeros(NN, 1); indxAqLay(1) = 1; for i = 2:NN From bcbb9c9e65a84688efd0735d7b46ad1d69e64505 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:27:02 +0200 Subject: [PATCH 53/90] Update calculateGroundwaterRecharge.m --- src/+groundwater/calculateGroundwaterRecharge.m | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index bea385f7..6050b5ac 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -15,15 +15,15 @@ which is the opposite of MODFLOW (top to bottom). So, when converting informatio Equations of the water balance are implemented in this function (Equations 8-13 of HYDRUS-MODFLOW paper) as follows: recharge = recharge_init + (SY - sy) * DeltZ, where: - gwfluxes structure that includes the outputs (groundwater recharge and its individual components) + gwfluxes structure that includes the outputs (groundwater recharge and it's individual components) recharge groundwater recharge, which is the upper boundary flux of the top layer of the phreatic aquifer (after the correction of the specific yield) recharge_init upper boundary flux into the moving balancing domain (before the correction of the specific yield) SS specific storage of MODFLOW aquifers SY large-scale specific yield of the phreatic aquifer sy small-scale specific yield (dynamically changing water yield) caused by fluctuation of the water table - depToGWT_strt soil layer thickness from the top of the soil up to the phreatic surface at the start of the current time step + depToGWT_strt water table depth: depth from top of the soil up to the phreatic surface at the start of the current time step indxGWLay_strt index of the soil layer that includes the phreatic surface at the start of the current time step - depToGWT_end soil layer thickness from the top of the soil up to the phreatic surface at the end of the current time step + depToGWT_end water table depth: depth from top of the soil up to the phreatic surface at the end of the current time step indxGWLay_end index of the soil layer that includes the phreatic surface at the end of the current time step Theta_L soil moisture at the start of the current time step (bottom to top) Theta_LL soil moisture at the end of the current time step (bottom to top) @@ -37,9 +37,9 @@ soilThick cumulative soil layers thickness (from top to bottom) % Start Recharge calculations if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled % (a) Define the upper and lower boundaries of the moving balancing domain - % the moving balancing domain is located between depToGWT_strt and depToGWT_end + % The moving balancing domain is located between depToGWT_strt and depToGWT_end [depToGWT_end, indxGWLay_end] = groundwater.findPhreaticSurface(SoilVariables, KT, GroundwaterSettings); - % indxRchrg and indxRchrgMax are the indecies of the upper and lower levels of the moving boundary + % indxRchrg and indxRchrgMax are the indices of the upper and lower levels of the moving boundary % Following the HYDRUS-MODFLOW paper and also STEMMUS-MODFLOW, indxRchrg and indxRchrgMax are defined as in the next two lines indxRchrgMax = max(indxGWLay_strt, indxGWLay_end) + 2; % the positive 2 is a user-specified value to define lower boundary of the moving boundary % indxRchrg = min(indxGWLay_strt, indxGWLay_end) - 3; % the negative 2 or 3 is a user-specified value to define upper boundary of the moving boundary @@ -57,8 +57,8 @@ soilThick cumulative soil layers thickness (from top to bottom) QVa_flip = flip(EnergyVariables.QVa(1, :)); % vapor water flux due to air pressure gradient Q_flip = flip(EnergyVariables.Qtot(1, :)); % total flux (liquid + vapor) - % (c) Get the recharge_init (before the correction of the specific yeild)) - % to avoid a zero flux value at the layer which recharge will be exporated + % (c) Get the recharge_init (before the correction of the specific yield)) + % to avoid a zero flux value at the layer which recharge will be exported if Q_flip(indxRchrg) == 0 recharge_init = Q_flip(indxRchrg_above); else @@ -94,7 +94,7 @@ soilThick cumulative soil layers thickness (from top to bottom) end % (f) Aggregate c, d, and e to get recharge - % after couple of testing, it appears that the effect of S and sy is very minor, so they are removed but kept in the code for further investigation + % after couple of tests, it appears that the effect of S and sy is very minor, so they are removed but kept in the code for further investigation % recharge = recharge_init + S - sy; gwfluxes.recharge = recharge_init; % Note: in STEMMUS +ve means up-flow direction and -ve means down (opposite of MODFLOW), so recharge sign needs to be converted in BMI From a88f4097e1dd83f5d5fd71dbbab00257a7541b13 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:28:05 +0200 Subject: [PATCH 54/90] Update readGroundwaterSettings.m --- src/+groundwater/readGroundwaterSettings.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m index a53bc9a0..8fcb6e11 100644 --- a/src/+groundwater/readGroundwaterSettings.m +++ b/src/+groundwater/readGroundwaterSettings.m @@ -36,7 +36,7 @@ soilThick cumulative soil layers thickness (from top to bottom) Tot_Depth = ModelSettings.Tot_Depth; % total soil depth % Activate/deactivate Groundwater coupling - GroundwaterSettings.GroundwaterCoupling = 1; % (value = 0 -> deactivate coupling, or = 1 -> activate coupling); default = 0, if update value to = 1 -> through BMI + GroundwaterSettings.GroundwaterCoupling = 0; % (value = 0 -> deactivate coupling, or = 1 -> activate coupling); default = 0, update value to = 1 -> through BMI % Initialize the variables (head, temperature, air pressure) at the bottom boundary (start of saturated zone) GroundwaterSettings.headBotmLayer = 1980.0; % groundwater head (cm) at bottom layer, received from MODFLOW through BMI From ed9ef63ff14bca4473d33fce24dfbbdc9244dc25 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:33:16 +0200 Subject: [PATCH 55/90] Update src/+io/loadForcingData.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+io/loadForcingData.m | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index f841a799..813b7a6e 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -50,8 +50,6 @@ applied_inf = Precip_msr; % later will be updated in the +soilmoisture/calculateBoundaryConditions file % (2) Infiltration excess runoff (Hortonian runoff) - R_Hort = zeros(size(Precip_msr)); % will be updated in the +soilmoisture/calculateBoundaryConditions file - % Applied infiltration will be updated again in the +soilmoisture/calculateBoundaryConditions file after removal of Hortonian runoff % replace negative values for jj = 1:Dur_tot From b52de78391e5f835210216e24a4618e31c54b0d6 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:33:41 +0200 Subject: [PATCH 56/90] Update src/+io/loadForcingData.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+io/loadForcingData.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 813b7a6e..0612715f 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -63,5 +63,6 @@ ForcingData.Precip_msr = Precip_msr; ForcingData.applied_inf = applied_inf; ForcingData.R_Dunn = R_Dunn; - ForcingData.R_Hort = R_Hort; + ForcingData.R_Hort = zeros(size(Precip_msr)); % will be updated in the +soilmoisture/calculateBoundaryConditions file + % Applied infiltration will be updated again in the +soilmoisture/calculateBoundaryConditions file after removal of Hortonian runoff end From 1e0ce7068363c5db319339b7ce2ec88f9ae5d882 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:34:01 +0200 Subject: [PATCH 57/90] Update src/+io/loadForcingData.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+io/loadForcingData.m | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 0612715f..73999a74 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -46,8 +46,6 @@ end % (b) Return flow (from groundwater exfiltration) is added to the Dunnian runoff (through BMI) end - % Applied infiltration (= precipitation after removal of Dunnian runoff) - applied_inf = Precip_msr; % later will be updated in the +soilmoisture/calculateBoundaryConditions file % (2) Infiltration excess runoff (Hortonian runoff) From 64a7034a4855b9b408fa9d4a01344aeb7e059eb1 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:34:20 +0200 Subject: [PATCH 58/90] Update src/+io/loadForcingData.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+io/loadForcingData.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 73999a74..cee3539e 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -59,7 +59,8 @@ % Outputs to be used by other functions ForcingData.Tmin = min(ForcingData.Ta_msr); ForcingData.Precip_msr = Precip_msr; - ForcingData.applied_inf = applied_inf; + % Applied infiltration (= precipitation after removal of Dunnian runoff) + ForcingData.applied_inf = Precip_msr; % later will be updated in the +soilmoisture/calculateBoundaryConditions file ForcingData.R_Dunn = R_Dunn; ForcingData.R_Hort = zeros(size(Precip_msr)); % will be updated in the +soilmoisture/calculateBoundaryConditions file % Applied infiltration will be updated again in the +soilmoisture/calculateBoundaryConditions file after removal of Hortonian runoff From 54550a64baa42b8a2e667c2ad86f645a03954021 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:34:43 +0200 Subject: [PATCH 59/90] Update src/+io/loadForcingData.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+io/loadForcingData.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index cee3539e..b4f5258a 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -39,7 +39,7 @@ % (a) direct water input from precipitation when soil is fully saturated (depth to water table = 0) wat_Dep = GroundwaterSettings.gw_Dep / 100; % (m); if wat_Dep <= 0.01 - R_Dunn = Precip_msr; + ForcingData.R_Dunn = Precip_msr; Precip_msr = Precip_msr .* 0; else R_Dunn = zeros(size(Precip_msr)); From 8aadaf7ccbe9a2b28571b65ee4dea458a09aa2c4 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:35:03 +0200 Subject: [PATCH 60/90] Update src/+io/loadForcingData.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+io/loadForcingData.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index b4f5258a..857506c5 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -42,7 +42,7 @@ ForcingData.R_Dunn = Precip_msr; Precip_msr = Precip_msr .* 0; else - R_Dunn = zeros(size(Precip_msr)); + ForcingData.R_Dunn = zeros(size(Precip_msr)); end % (b) Return flow (from groundwater exfiltration) is added to the Dunnian runoff (through BMI) end From 1093800b39b3ca45ad5a89061ef9d402d45a9c4e Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:35:16 +0200 Subject: [PATCH 61/90] Update src/+io/loadForcingData.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+io/loadForcingData.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 857506c5..d83928a3 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -61,7 +61,6 @@ ForcingData.Precip_msr = Precip_msr; % Applied infiltration (= precipitation after removal of Dunnian runoff) ForcingData.applied_inf = Precip_msr; % later will be updated in the +soilmoisture/calculateBoundaryConditions file - ForcingData.R_Dunn = R_Dunn; ForcingData.R_Hort = zeros(size(Precip_msr)); % will be updated in the +soilmoisture/calculateBoundaryConditions file % Applied infiltration will be updated again in the +soilmoisture/calculateBoundaryConditions file after removal of Hortonian runoff end From 2e03ece75d0c0be1965ce28097c80a7109ee102b Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:35:40 +0200 Subject: [PATCH 62/90] Update src/+io/loadForcingData.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+io/loadForcingData.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index d83928a3..57ffbcf1 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -31,7 +31,7 @@ fover = 0.5; % decay factor (fixed to 0.5 m-1) fmax = SoilProperties.fmax; % potential maximum value of fsat fsat = (fmax .* exp(-0.5 * fover * wat_Dep)); % fraction of saturated area (unitless), note: the division by 100 is a unit conversion from 'cm' to 'm' - R_Dunn = Precip_msr .* fsat; % Dunnian runoff (saturation excess runoff, in c/sec) + ForcingData.R_Dunn = Precip_msr .* fsat; % Dunnian runoff (saturation excess runoff, in c/sec) Precip_msr = Precip_msr .* (1 - fsat); % applied infiltration after removing Dunnian runoff else % Groundwater Coupling is activated From 81364300fe1f8f31ec1aab260b06c6ff22ec4604 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:45:43 +0200 Subject: [PATCH 63/90] Update loadForcingData.m --- src/+io/loadForcingData.m | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 57ffbcf1..ded72c78 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -30,11 +30,11 @@ wat_Dep = Tot_Depth / 100; % (m) fover = 0.5; % decay factor (fixed to 0.5 m-1) fmax = SoilProperties.fmax; % potential maximum value of fsat - fsat = (fmax .* exp(-0.5 * fover * wat_Dep)); % fraction of saturated area (unitless), note: the division by 100 is a unit conversion from 'cm' to 'm' + fsat = (fmax .* exp(-0.5 * fover * wat_Dep)); % fraction of saturated area (unitless) ForcingData.R_Dunn = Precip_msr .* fsat; % Dunnian runoff (saturation excess runoff, in c/sec) Precip_msr = Precip_msr .* (1 - fsat); % applied infiltration after removing Dunnian runoff - else % Groundwater Coupling is activated + else % Groundwater coupling is activated % Different approach (not CLM). Dunnian runoff = Direct water input from precipitation + return flow % (a) direct water input from precipitation when soil is fully saturated (depth to water table = 0) wat_Dep = GroundwaterSettings.gw_Dep / 100; % (m); @@ -44,11 +44,12 @@ else ForcingData.R_Dunn = zeros(size(Precip_msr)); end - % (b) Return flow (from groundwater exfiltration) is added to the Dunnian runoff (through BMI) + % (b) Return flow (from groundwater exfiltration) calculated in MODFLOW and added to the Dunnian runoff (through BMI) end % (2) Infiltration excess runoff (Hortonian runoff) - + ForcingData.R_Hort = zeros(size(Precip_msr)); % will be updated in the +soilmoisture/calculateBoundaryConditions file + % replace negative values for jj = 1:Dur_tot if ForcingData.Ta_msr(jj) < -100 @@ -60,7 +61,6 @@ ForcingData.Tmin = min(ForcingData.Ta_msr); ForcingData.Precip_msr = Precip_msr; % Applied infiltration (= precipitation after removal of Dunnian runoff) - ForcingData.applied_inf = Precip_msr; % later will be updated in the +soilmoisture/calculateBoundaryConditions file - ForcingData.R_Hort = zeros(size(Precip_msr)); % will be updated in the +soilmoisture/calculateBoundaryConditions file - % Applied infiltration will be updated again in the +soilmoisture/calculateBoundaryConditions file after removal of Hortonian runoff + ForcingData.applied_inf = Precip_msr; % later will be updated in the .... + % +soilmoisture/calculateBoundaryConditions after removal of Hortonian runoff end From b25b72a6dbf6a3be1f3c7abe1c97d16163a41bca Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:47:37 +0200 Subject: [PATCH 64/90] Update loadForcingData.m --- src/+io/loadForcingData.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index ded72c78..0f200d94 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -44,11 +44,11 @@ else ForcingData.R_Dunn = zeros(size(Precip_msr)); end - % (b) Return flow (from groundwater exfiltration) calculated in MODFLOW and added to the Dunnian runoff (through BMI) + % (b) Return flow (from groundwater exfiltration) calculated in MODFLOW and added to Dunnian runoff (through BMI) end % (2) Infiltration excess runoff (Hortonian runoff) - ForcingData.R_Hort = zeros(size(Precip_msr)); % will be updated in the +soilmoisture/calculateBoundaryConditions file + ForcingData.R_Hort = zeros(size(Precip_msr)); % will be updated in +soilmoisture/calculateBoundaryConditions % replace negative values for jj = 1:Dur_tot From b6cafb807efa1f39912c960790242647320b9ac2 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:52:56 +0200 Subject: [PATCH 65/90] Update loadForcingData.m --- src/+io/loadForcingData.m | 1 + 1 file changed, 1 insertion(+) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index 0f200d94..ad377579 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -21,6 +21,7 @@ %%%%%%%%%% Adjust precipitation to get applied infiltration after removing: (1) saturation excess runoff %%%%%%%%%% %%%%%%%%%% (2) infiltration excess runoff %%%%%%%%%% + % Note: Code changes are related to the issue: https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/232 % Note: Adjusting the precipitation after the canopy interception is not implemented yet. % (1) Saturation excess runoff (Dunnian runoff) From dc4c66e6a999831521aec3bcde95357cc1ed04fa Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:08:41 +0200 Subject: [PATCH 66/90] Update calc_rsoil.m --- src/calc_rsoil.m | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/src/calc_rsoil.m b/src/calc_rsoil.m index 7f34b05c..1479a0c2 100644 --- a/src/calc_rsoil.m +++ b/src/calc_rsoil.m @@ -2,24 +2,15 @@ % load Constants Constants = io.define_constants(); - DeltZ = ModelSettings.DeltZ; - Ks = SoilVariables.Ks; - Theta_s = VanGenuchten.Theta_s; - Theta_r = VanGenuchten.Theta_r; - Theta_LL = SoilVariables.Theta_LL; - m = VanGenuchten.m; - n = VanGenuchten.n; - Alpha = VanGenuchten.Alpha; - - DeltZ0 = DeltZ'; - SMC = Theta_LL(1:54, 2); - Se = (SMC - Theta_r') ./ (Theta_s' - Theta_r'); - Ksoil = Ks' .* Se.^Constants.l .* (1 - (1 - Se.^(1 ./ m')).^(m')).^2; + DeltZ0 = ModelSettings.DeltZ'; + SMC = SoilVariables.Theta_LL(1:54, 2); + Se = (SMC - VanGenuchten.Theta_r') ./ (VanGenuchten.Theta_s' - VanGenuchten.Theta_r'); + Ksoil = SoilVariables.Ks' .* Se.^Constants.l .* (1 - (1 - Se.^(1 ./ m')).^(m')).^2; if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater Coupling - PSIs = -((Se.^(-1 ./ m') - 1).^(1 ./ n')) ./ (Alpha * 100)' .* bbx; + PSIs = -((Se.^(-1 ./ VanGenuchten.m') - 1).^(1 ./ VanGenuchten.n')) ./ (VanGenuchten.Alpha * 100)' .* bbx; else % Groundwater Coupling is activated - % Change PSIs with SoilVariables.hh to correct hydraulic pressure (matric potential + gravity) of the saturated layers + % Change PSIs with SoilVariables.hh to correct hydraulic head (matric potential + gravity) of the saturated layers for i = 1:ModelSettings.NL hh_lay(i) = mean([SoilVariables.hh(i), SoilVariables.hh(i + 1)]); end @@ -27,6 +18,6 @@ PSIs = hh_lay / 100 .* bbx; % unit conversion from cm to m (needed in the ebal calculations) end - rsss = 1 ./ Ksoil ./ Rl ./ DeltZ0 / 2 / pi .* log((pi * Rl).^(-0.5) / (0.5 * 1e-3)) * 100 .* bbx; % KL_h is the hydraulic conductivity, m s-1;VR is the root length density, m m-3;Ks is saturation conductivty; + rsss = 1 ./ Ksoil ./ Rl ./ DeltZ0 / 2 / pi .* log((pi * Rl).^(-0.5) / (0.5 * 1e-3)) * 100 .* bbx; rxx = 1 * 1e10 * DeltZ0 / 0.5 / 0.22 ./ Rl / 100 .* bbx; % Delta_z*j is the depth of the layer - rrr = 4 * 1e11 * (Theta_s' ./ SMC) ./ Rl ./ (DeltZ0 / 100) .* bbx; + rrr = 4 * 1e11 * (VanGenuchten.Theta_s' ./ SMC) ./ Rl ./ (DeltZ0 / 100) .* bbx; From a269115fa2783bb3f102f64b79ab248862a16c33 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:09:06 +0200 Subject: [PATCH 67/90] Update calc_rsoil.m --- src/calc_rsoil.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calc_rsoil.m b/src/calc_rsoil.m index 1479a0c2..b42da55f 100644 --- a/src/calc_rsoil.m +++ b/src/calc_rsoil.m @@ -7,9 +7,9 @@ Se = (SMC - VanGenuchten.Theta_r') ./ (VanGenuchten.Theta_s' - VanGenuchten.Theta_r'); Ksoil = SoilVariables.Ks' .* Se.^Constants.l .* (1 - (1 - Se.^(1 ./ m')).^(m')).^2; - if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater Coupling + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling PSIs = -((Se.^(-1 ./ VanGenuchten.m') - 1).^(1 ./ VanGenuchten.n')) ./ (VanGenuchten.Alpha * 100)' .* bbx; - else % Groundwater Coupling is activated + else % Groundwater coupling is activated % Change PSIs with SoilVariables.hh to correct hydraulic head (matric potential + gravity) of the saturated layers for i = 1:ModelSettings.NL hh_lay(i) = mean([SoilVariables.hh(i), SoilVariables.hh(i + 1)]); From 971df7ef4dac17a69ba1c436d77eed4fcd8340a6 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:10:30 +0200 Subject: [PATCH 68/90] Update calc_rsoil.m --- src/calc_rsoil.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calc_rsoil.m b/src/calc_rsoil.m index b42da55f..b4a4d813 100644 --- a/src/calc_rsoil.m +++ b/src/calc_rsoil.m @@ -9,7 +9,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling PSIs = -((Se.^(-1 ./ VanGenuchten.m') - 1).^(1 ./ VanGenuchten.n')) ./ (VanGenuchten.Alpha * 100)' .* bbx; - else % Groundwater coupling is activated + else % Groundwater coupling is activated (see https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/231) % Change PSIs with SoilVariables.hh to correct hydraulic head (matric potential + gravity) of the saturated layers for i = 1:ModelSettings.NL hh_lay(i) = mean([SoilVariables.hh(i), SoilVariables.hh(i + 1)]); From ce4128adf6ccb1798d013cebb6fa360a4fe6b8f3 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:11:06 +0200 Subject: [PATCH 69/90] Update calc_rsoil.m --- src/calc_rsoil.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calc_rsoil.m b/src/calc_rsoil.m index b4a4d813..f696b384 100644 --- a/src/calc_rsoil.m +++ b/src/calc_rsoil.m @@ -9,7 +9,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling PSIs = -((Se.^(-1 ./ VanGenuchten.m') - 1).^(1 ./ VanGenuchten.n')) ./ (VanGenuchten.Alpha * 100)' .* bbx; - else % Groundwater coupling is activated (see https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/231) + else % Groundwater coupling is activated, added by Mostafa (see https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/231) % Change PSIs with SoilVariables.hh to correct hydraulic head (matric potential + gravity) of the saturated layers for i = 1:ModelSettings.NL hh_lay(i) = mean([SoilVariables.hh(i), SoilVariables.hh(i + 1)]); From bc2d2224a0cd5d203c089f1afd0b8adb122cbb8a Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:15:10 +0200 Subject: [PATCH 70/90] Update calc_rsoil.m --- src/calc_rsoil.m | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/calc_rsoil.m b/src/calc_rsoil.m index f696b384..4f10d7c5 100644 --- a/src/calc_rsoil.m +++ b/src/calc_rsoil.m @@ -2,7 +2,6 @@ % load Constants Constants = io.define_constants(); - DeltZ0 = ModelSettings.DeltZ'; SMC = SoilVariables.Theta_LL(1:54, 2); Se = (SMC - VanGenuchten.Theta_r') ./ (VanGenuchten.Theta_s' - VanGenuchten.Theta_r'); Ksoil = SoilVariables.Ks' .* Se.^Constants.l .* (1 - (1 - Se.^(1 ./ m')).^(m')).^2; @@ -18,6 +17,6 @@ PSIs = hh_lay / 100 .* bbx; % unit conversion from cm to m (needed in the ebal calculations) end - rsss = 1 ./ Ksoil ./ Rl ./ DeltZ0 / 2 / pi .* log((pi * Rl).^(-0.5) / (0.5 * 1e-3)) * 100 .* bbx; - rxx = 1 * 1e10 * DeltZ0 / 0.5 / 0.22 ./ Rl / 100 .* bbx; % Delta_z*j is the depth of the layer - rrr = 4 * 1e11 * (VanGenuchten.Theta_s' ./ SMC) ./ Rl ./ (DeltZ0 / 100) .* bbx; + rsss = 1 ./ Ksoil ./ Rl ./ ModelSettings.DeltZ' / 2 / pi .* log((pi * Rl).^(-0.5) / (0.5 * 1e-3)) * 100 .* bbx; + rxx = 1 * 1e10 * ModelSettings.DeltZ' / 0.5 / 0.22 ./ Rl / 100 .* bbx; % Delta_z*j is the depth of the layer + rrr = 4 * 1e11 * (VanGenuchten.Theta_s' ./ SMC) ./ Rl ./ (ModelSettings.DeltZ' / 100) .* bbx; From 309c3b415a4814bbb1e4d648637dbf01955cf3ad Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:24:00 +0200 Subject: [PATCH 71/90] Update src/+soilmoisture/calculateBoundaryConditions.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+soilmoisture/calculateBoundaryConditions.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/+soilmoisture/calculateBoundaryConditions.m b/src/+soilmoisture/calculateBoundaryConditions.m index fcb81267..5f5ca7a3 100644 --- a/src/+soilmoisture/calculateBoundaryConditions.m +++ b/src/+soilmoisture/calculateBoundaryConditions.m @@ -80,9 +80,9 @@ % Infiltration excess runoff (Hortonian runoff). Note: Dunnian runoff is calculated in the +io/loadForcingData file if Precip_msr(KT) > infCap_min - R_Hort(KT) = Precip_msr(KT) - infCap_min; + ForcingData.R_Hort(KT) = Precip_msr(KT) - infCap_min; else - R_Hort(KT) = 0; + ForcingData.R_Hort(KT) = 0; end Precip(KT) = min(Precip_msr(KT), infCap_min); From c4d49152b4a91ed8bc3f447daf5639ac0641ea0f Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:24:49 +0200 Subject: [PATCH 72/90] Update src/+soilmoisture/calculateBoundaryConditions.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+soilmoisture/calculateBoundaryConditions.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+soilmoisture/calculateBoundaryConditions.m b/src/+soilmoisture/calculateBoundaryConditions.m index 5f5ca7a3..19cd6932 100644 --- a/src/+soilmoisture/calculateBoundaryConditions.m +++ b/src/+soilmoisture/calculateBoundaryConditions.m @@ -86,7 +86,7 @@ end Precip(KT) = min(Precip_msr(KT), infCap_min); - applied_inf(KT) = Precip(KT); % applied infiltration after removing Hortonian runoff + ForcingData.applied_inf(KT) = Precip(KT); % applied infiltration after removing Hortonian runoff if SoilVariables.Tss(KT) > 0 Precip(KT) = Precip(KT); From 07a54d14d9ab3458fd5dfc7297f88a2fc1ab05e6 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:25:43 +0200 Subject: [PATCH 73/90] Update src/+soilmoisture/calculateBoundaryConditions.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+soilmoisture/calculateBoundaryConditions.m | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/+soilmoisture/calculateBoundaryConditions.m b/src/+soilmoisture/calculateBoundaryConditions.m index 19cd6932..70f3b6d7 100644 --- a/src/+soilmoisture/calculateBoundaryConditions.m +++ b/src/+soilmoisture/calculateBoundaryConditions.m @@ -115,6 +115,4 @@ end HeatMatrices.C4 = C4; HeatMatrices.C4_a = C4_a; - ForcingData.R_Hort = R_Hort; - ForcingData.applied_inf = applied_inf; end From 7bd1260a705ba746e4c6a77cd27f9218b943de52 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:26:10 +0200 Subject: [PATCH 74/90] Update src/+soilmoisture/calculateBoundaryConditions.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/+soilmoisture/calculateBoundaryConditions.m | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/+soilmoisture/calculateBoundaryConditions.m b/src/+soilmoisture/calculateBoundaryConditions.m index 70f3b6d7..65ab0b62 100644 --- a/src/+soilmoisture/calculateBoundaryConditions.m +++ b/src/+soilmoisture/calculateBoundaryConditions.m @@ -13,8 +13,6 @@ Precip = InitialValues.Precip; Precip_msr = ForcingData.Precip_msr; Precipp = 0; - R_Hort = ForcingData.R_Hort; - applied_inf = ForcingData.applied_inf; % Apply the bottom boundary condition called for by BoundaryCondition.NBChB if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa From 9ba26bfafa2a4bb0ea12ec5dfa9d9a752ac93776 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:30:08 +0200 Subject: [PATCH 75/90] Update calculateBoundaryConditions.m --- src/+soilmoisture/calculateBoundaryConditions.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/+soilmoisture/calculateBoundaryConditions.m b/src/+soilmoisture/calculateBoundaryConditions.m index 65ab0b62..4c841eb2 100644 --- a/src/+soilmoisture/calculateBoundaryConditions.m +++ b/src/+soilmoisture/calculateBoundaryConditions.m @@ -15,7 +15,7 @@ Precipp = 0; % Apply the bottom boundary condition called for by BoundaryCondition.NBChB - if ~GroundwaterSettings.GroundwaterCoupling % Groundwater Coupling is not activated, added by Mostafa + if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling if BoundaryCondition.NBChB == 1 % Specify matric head at bottom to be ---BoundaryCondition.BChB; RHS(1) = BoundaryCondition.BChB; C4(1, 1) = 1; @@ -27,7 +27,7 @@ elseif BoundaryCondition.NBChB == 3 % BoundaryCondition.NBChB=3, Gravity drainage at bottom--specify flux= hydraulic conductivity; RHS(1) = RHS(1) - SoilVariables.KL_h(1, 1); end - else % Groundwater Coupling is activated, added by Mostafa + else % Groundwater coupling is activated, added by Mostafa indxBotmLayer_R = GroundwaterSettings.indxBotmLayer_R; indxBotm = GroundwaterSettings.indxBotmLayer; % index of bottom boundary layer after neglecting the saturated layers (from bottom to top) soilThick = GroundwaterSettings.soilThick; % cumulative soil layers thickness @@ -66,10 +66,10 @@ end else % (BoundaryCondition.NBCh == 3, Specified atmospheric forcing) - % Calculate applied infiltration and infiltration excess runoff (Hortonian runoff) + % Calculate applied infiltration and infiltration excess runoff (Hortonian runoff), modified by Mostafa Ks0 = SoilProperties.Ks0 / (3600 * 24); % saturated vertical hydraulic conductivity. unit conversion from cm/day to cm/sec % Note: Ks0 is not adjusted by the fsat as in the CLM model (Check CLM document: https://doi.org/10.5065/D6N877R) - % Check applied infiltration doesn't exceed infiltration capcity + % Check applied infiltration doesn't exceed infiltration capacity topThick = 5; % first 5 cm of the soil satCap = SoilProperties.theta_s0 * topThick; % saturation capacity represented by saturated water content of the top 5 cm of the soil actTheta = ModelSettings.DeltZ(51:54) * SoilVariables.Theta_UU(51:54, 1); % actual moisture of the top 5 cm of the soil From a5824733f962cdc6c1524ba7b2dd9a9a49063d38 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:31:07 +0200 Subject: [PATCH 76/90] Update src/STEMMUS_SCOPE.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/STEMMUS_SCOPE.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index 3ba567a0..4c3bdd3e 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -745,7 +745,6 @@ % Recharge calculations, added by Mostafa if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled [depToGWT_end, indxGWLay_end, gwfluxes] = groundwater.calculateGroundwaterRecharge(EnergyVariables, SoilVariables, depToGWT_strt, indxGWLay_strt, KT, GroundwaterSettings); - gwfluxes = gwfluxes; % to be exported in the 'output_data_binary' function depToGWT_strt = depToGWT_end; % for next time step indxGWLay_strt = indxGWLay_end; % for next time step else From 1b3e3370dbe84fb2c7477bb8a9d7338e82b06334 Mon Sep 17 00:00:00 2001 From: Daoud Date: Wed, 19 Jun 2024 15:52:07 +0200 Subject: [PATCH 77/90] modify to count for groundwater --- src/+dryair/calculateBoundaryConditions.m | 2 +- src/+dryair/calculateDryAirParameters.m | 4 +- src/+energy/calculateEnergyFluxes.m | 2 +- src/+energy/calculateEnergyParameters.m | 4 +- src/+energy/calculateMatricCoefficients.m | 2 +- src/+energy/solveEnergyBalanceEquations.m | 2 +- src/+energy/solveTridiagonalMatrixEquations.m | 2 +- .../calculateGroundwaterRecharge.m | 138 +++++++++--------- src/+groundwater/findPhreaticSurface.m | 72 +++++---- src/+groundwater/readGroundwaterSettings.m | 7 +- src/+io/loadForcingData.m | 2 +- .../assembleCoefficientMatrices.m | 2 +- .../calculateEvapotranspiration.m | 2 +- .../calculateMatricCoefficients.m | 2 +- src/+soilmoisture/calculateTimeDerivatives.m | 2 +- src/+soilmoisture/calculatesSoilWaterFluxes.m | 2 +- src/+soilmoisture/solveSoilMoistureBalance.m | 2 +- .../solveTridiagonalMatrixEquations.m | 2 +- src/calc_rsoil.m | 2 +- 19 files changed, 123 insertions(+), 130 deletions(-) diff --git a/src/+dryair/calculateBoundaryConditions.m b/src/+dryair/calculateBoundaryConditions.m index dcee8c37..917a49d8 100644 --- a/src/+dryair/calculateBoundaryConditions.m +++ b/src/+dryair/calculateBoundaryConditions.m @@ -9,7 +9,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top - BtmPg = BoundaryCondition.BtmPg; + BtmPg = BoundaryCondition.BtmPg; else % Groundwater Coupling is activated % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; diff --git a/src/+dryair/calculateDryAirParameters.m b/src/+dryair/calculateDryAirParameters.m index f623d5d6..6dd68425 100644 --- a/src/+dryair/calculateDryAirParameters.m +++ b/src/+dryair/calculateDryAirParameters.m @@ -27,7 +27,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end @@ -57,7 +57,7 @@ AirVariabes.DDhDZ(i) = DDhDZ; AirVariabes.DhDZ(i) = DhDZ; AirVariabes.DTDZ(i) = DTDZ; - AirVariabes.QL(i) = QL; % total liquid flux + AirVariabes.QL(i) = QL; % total liquid flux % added by Mostafa AirVariabes.QL_h(i) = QL_h(i); % liquid flux due to matric potential AirVariabes.QL_T(i) = QL_T(i); % liquid flux due to temperature gradient diff --git a/src/+energy/calculateEnergyFluxes.m b/src/+energy/calculateEnergyFluxes.m index 58f3a80e..d8c6de3e 100644 --- a/src/+energy/calculateEnergyFluxes.m +++ b/src/+energy/calculateEnergyFluxes.m @@ -10,7 +10,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+energy/calculateEnergyParameters.m b/src/+energy/calculateEnergyParameters.m index 79c56507..e9c2cf51 100644 --- a/src/+energy/calculateEnergyParameters.m +++ b/src/+energy/calculateEnergyParameters.m @@ -81,7 +81,7 @@ else Qa = -((DEhBAR + GasDispersivity.D_Vg(i)) * DRHODAz(i) - RHODA(i) * (GasDispersivity.V_A(i) + Constants.Hc * QL(i) / Constants.RHOL)); end - + QVH(i) = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i); QVT(i) = -(DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); if SoilVariables.DVa_Switch == 1 @@ -91,7 +91,7 @@ QVa(i) = 0; QV = -(DEhBAR + GasDispersivity.D_Vg(i)) * DRHOVhDz(i) * DDhDZ(i) - (DEhBAR * EtaBAR + GasDispersivity.D_Vg(i)) * DRHOVTDz(i) * DTDZ(i); end - + % These are unused vars, but I comment them for future reference, % See issue 100, item 1 % DVH(i) = (DEhBAR) * DRHOVhDz(i); diff --git a/src/+energy/calculateMatricCoefficients.m b/src/+energy/calculateMatricCoefficients.m index 30590775..ce21243d 100644 --- a/src/+energy/calculateMatricCoefficients.m +++ b/src/+energy/calculateMatricCoefficients.m @@ -17,7 +17,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+energy/solveEnergyBalanceEquations.m b/src/+energy/solveEnergyBalanceEquations.m index ed99cb08..59dd74f7 100644 --- a/src/+energy/solveEnergyBalanceEquations.m +++ b/src/+energy/solveEnergyBalanceEquations.m @@ -26,7 +26,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+energy/solveTridiagonalMatrixEquations.m b/src/+energy/solveTridiagonalMatrixEquations.m index 1fe44339..3b29ebc6 100644 --- a/src/+energy/solveTridiagonalMatrixEquations.m +++ b/src/+energy/solveTridiagonalMatrixEquations.m @@ -9,7 +9,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index 6050b5ac..29dfb224 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -35,82 +35,80 @@ soilThick cumulative soil layers thickness (from top to bottom) %} % Start Recharge calculations - if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled - % (a) Define the upper and lower boundaries of the moving balancing domain - % The moving balancing domain is located between depToGWT_strt and depToGWT_end - [depToGWT_end, indxGWLay_end] = groundwater.findPhreaticSurface(SoilVariables, KT, GroundwaterSettings); - % indxRchrg and indxRchrgMax are the indices of the upper and lower levels of the moving boundary - % Following the HYDRUS-MODFLOW paper and also STEMMUS-MODFLOW, indxRchrg and indxRchrgMax are defined as in the next two lines - indxRchrgMax = max(indxGWLay_strt, indxGWLay_end) + 2; % the positive 2 is a user-specified value to define lower boundary of the moving boundary - % indxRchrg = min(indxGWLay_strt, indxGWLay_end) - 3; % the negative 2 or 3 is a user-specified value to define upper boundary of the moving boundary - % However, I comment the line above and use a slightly different way (ignore the moving layer boundaries and extract recharge from the two layers above groundwater table) - indxRchrg = min(indxGWLay_strt, indxGWLay_end) - 1; - indxRchrg_above = min(indxGWLay_strt, indxGWLay_end) - 2; + % (a) Define the upper and lower boundaries of the moving balancing domain + % The moving balancing domain is located between depToGWT_strt and depToGWT_end + [depToGWT_end, indxGWLay_end] = groundwater.findPhreaticSurface(SoilVariables, KT, GroundwaterSettings); + % indxRchrg and indxRchrgMax are the indices of the upper and lower levels of the moving boundary + % Following the HYDRUS-MODFLOW paper and also STEMMUS-MODFLOW, indxRchrg and indxRchrgMax are defined as in the next two lines + indxRchrgMax = max(indxGWLay_strt, indxGWLay_end) + 2; % the positive 2 is a user-specified value to define lower boundary of the moving boundary + % indxRchrg = min(indxGWLay_strt, indxGWLay_end) - 3; % the negative 2 or 3 is a user-specified value to define upper boundary of the moving boundary + % However, I comment the line above and use a slightly different way (ignore the moving layer boundaries and extract recharge from the two layers above groundwater table) + indxRchrg = min(indxGWLay_strt, indxGWLay_end) - 1; + indxRchrg_above = min(indxGWLay_strt, indxGWLay_end) - 2; - % (b) Call the fluxes to get the initial recharge - % flip the fluxes (because STEMMUS calculations are from bottom to top, and MODFLOW needs the recharge from top to bottom) - QLh_flip = flip(EnergyVariables.QL_h(1, :)); % liquid flux due to matric potential gradient - QLT_flip = flip(EnergyVariables.QL_T(1, :)); % liquid flux due to temperature gradient - QLa_flip = flip(EnergyVariables.QL_a(1, :)); % liquid flux due to air pressure gradient - QVH_flip = flip(EnergyVariables.QVH(1, :)); % vapor water flux due to matric potential gradient - QVT_flip = flip(EnergyVariables.QVT(1, :)); % vapor water flux due to temperature gradient - QVa_flip = flip(EnergyVariables.QVa(1, :)); % vapor water flux due to air pressure gradient - Q_flip = flip(EnergyVariables.Qtot(1, :)); % total flux (liquid + vapor) + % (b) Call the fluxes to get the initial recharge + % flip the fluxes (because STEMMUS calculations are from bottom to top, and MODFLOW needs the recharge from top to bottom) + QLh_flip = flip(EnergyVariables.QL_h(1, :)); % liquid flux due to matric potential gradient + QLT_flip = flip(EnergyVariables.QL_T(1, :)); % liquid flux due to temperature gradient + QLa_flip = flip(EnergyVariables.QL_a(1, :)); % liquid flux due to air pressure gradient + QVH_flip = flip(EnergyVariables.QVH(1, :)); % vapor water flux due to matric potential gradient + QVT_flip = flip(EnergyVariables.QVT(1, :)); % vapor water flux due to temperature gradient + QVa_flip = flip(EnergyVariables.QVa(1, :)); % vapor water flux due to air pressure gradient + Q_flip = flip(EnergyVariables.Qtot(1, :)); % total flux (liquid + vapor) - % (c) Get the recharge_init (before the correction of the specific yield)) - % to avoid a zero flux value at the layer which recharge will be exported - if Q_flip(indxRchrg) == 0 - recharge_init = Q_flip(indxRchrg_above); - else - recharge_init = Q_flip(indxRchrg); % mean([Q_flip(indxRchrg), Q_flip(indxRchrg_above)]) - end - - % (d) Calculations of SY - % Note: In the HYDRUS-MODFLOW paper, Sy (from MODFLOW) was used. In Lianyu STEMMUS_MODFLOW code, a combination of Sy and Ss was used - indxAqLay = GroundwaterSettings.indxAqLay; % index of MODFLOW aquifer layers for each STEMMUS soil layer - aqLayers = GroundwaterSettings.aqLayers; % elevation of top surface level and all bottom levels of aquifer layers - K = indxAqLay(indxGWLay_end); - Thk = aqLayers(1) - aqLayers(K) - depToGWT_end; - SY = GroundwaterSettings.SY; - SS = GroundwaterSettings.SS; - S = (SY(K) - SS(K) * Thk) * (depToGWT_strt - depToGWT_end); + % (c) Get the recharge_init (before the correction of the specific yield)) + % to avoid a zero flux value at the layer which recharge will be exported + if Q_flip(indxRchrg) == 0 + recharge_init = Q_flip(indxRchrg_above); + else + recharge_init = Q_flip(indxRchrg); % mean([Q_flip(indxRchrg), Q_flip(indxRchrg_above)]) + end - % (e) Calculations of sy - soilThick = GroundwaterSettings.soilThick; % cumulative soil layer thickness (from top to bottom) - ModelSettings = io.getModelSettings(); - NN = ModelSettings.NN; % Number of nodes - NL = ModelSettings.NL; % Number of layers - Theta_L = SoilVariables.Theta_L; - Theta_LL = SoilVariables.Theta_LL; - % Flip the soil moisture from top layer to bottom (opposite of Theta_L) - STheta_L(1) = Theta_L(NL, 2); - STheta_L(2:1:NN) = Theta_L(NN - 1:-1:1, 1); - STheta_LL(1) = Theta_LL(NL, 2); - STheta_LL(2:1:NN) = Theta_LL(NN - 1:-1:1, 1); + % (d) Calculations of SY + % Note: In the HYDRUS-MODFLOW paper, Sy (from MODFLOW) was used. In Lianyu STEMMUS_MODFLOW code, a combination of Sy and Ss was used + indxAqLay = GroundwaterSettings.indxAqLay; % index of MODFLOW aquifer layers for each STEMMUS soil layer + aqLayers = GroundwaterSettings.aqLayers; % elevation of top surface level and all bottom levels of aquifer layers + K = indxAqLay(indxGWLay_end); + Thk = aqLayers(1) - aqLayers(K) - depToGWT_end; + SY = GroundwaterSettings.SY; + SS = GroundwaterSettings.SS; + S = (SY(K) - SS(K) * Thk) * (depToGWT_strt - depToGWT_end); - sy = 0; - for i = indxRchrg:indxRchrgMax - 1 - sy = sy + 0.5 * (soilThick(i + 1) - soilThick(i)) * (STheta_LL(i) + STheta_LL(i + 1) - STheta_L(i) - STheta_L(i + 1)); - end + % (e) Calculations of sy + soilThick = GroundwaterSettings.soilThick; % cumulative soil layer thickness (from top to bottom) + ModelSettings = io.getModelSettings(); + NN = ModelSettings.NN; % Number of nodes + NL = ModelSettings.NL; % Number of layers + Theta_L = SoilVariables.Theta_L; + Theta_LL = SoilVariables.Theta_LL; + % Flip the soil moisture from top layer to bottom (opposite of Theta_L) + STheta_L(1) = Theta_L(NL, 2); + STheta_L(2:1:NN) = Theta_L(NN - 1:-1:1, 1); + STheta_LL(1) = Theta_LL(NL, 2); + STheta_LL(2:1:NN) = Theta_LL(NN - 1:-1:1, 1); - % (f) Aggregate c, d, and e to get recharge - % after couple of tests, it appears that the effect of S and sy is very minor, so they are removed but kept in the code for further investigation - % recharge = recharge_init + S - sy; - gwfluxes.recharge = recharge_init; % Note: in STEMMUS +ve means up-flow direction and -ve means down (opposite of MODFLOW), so recharge sign needs to be converted in BMI + sy = 0; + for i = indxRchrg:indxRchrgMax - 1 + sy = sy + 0.5 * (soilThick(i + 1) - soilThick(i)) * (STheta_LL(i) + STheta_LL(i + 1) - STheta_L(i) - STheta_L(i + 1)); + end - if isnan(recharge) || isinf(recharge) - gwfluxes.recharge = 0; - end + % (f) Aggregate c, d, and e to get recharge + % after couple of tests, it appears that the effect of S and sy is very minor, so they are removed but kept in the code for further investigation + % recharge = recharge_init + S - sy; + gwfluxes.recharge = recharge_init; % Note: in STEMMUS +ve means up-flow direction and -ve means down (opposite of MODFLOW), so recharge sign needs to be converted in BMI - % Outputs to be exported in csv - gwfluxes.QLh = QLh_flip(indxRchrg); - gwfluxes.QLT = QLT_flip(indxRchrg); - gwfluxes.QLa = QLa_flip(indxRchrg); - gwfluxes.QVH = QVH_flip(indxRchrg); - gwfluxes.QVT = QVT_flip(indxRchrg); - gwfluxes.QVa = QVa_flip(indxRchrg); - % gwfluxes.recharge_init = recharge_init; - % gwfluxes.S = S; - % gwfluxes.sy = sy; + if isnan(recharge) || isinf(recharge) + gwfluxes.recharge = 0; end + + % Outputs to be exported in csv + gwfluxes.QLh = QLh_flip(indxRchrg); + gwfluxes.QLT = QLT_flip(indxRchrg); + gwfluxes.QLa = QLa_flip(indxRchrg); + gwfluxes.QVH = QVH_flip(indxRchrg); + gwfluxes.QVT = QVT_flip(indxRchrg); + gwfluxes.QVa = QVa_flip(indxRchrg); + % gwfluxes.recharge_init = recharge_init; + % gwfluxes.S = S; + % gwfluxes.sy = sy; end diff --git a/src/+groundwater/findPhreaticSurface.m b/src/+groundwater/findPhreaticSurface.m index 389da40d..693f116d 100644 --- a/src/+groundwater/findPhreaticSurface.m +++ b/src/+groundwater/findPhreaticSurface.m @@ -27,49 +27,45 @@ soilThick cumulative soil layers thickness (from top to bottom) % Load model settings ModelSettings = io.getModelSettings(); NN = ModelSettings.NN; % number of nodes + soilThick = GroundwaterSettings.soilThick; - % Load Groundwater settings - if GroundwaterSettings.GroundwaterCoupling == 1 % Groundwater coupling is enabled - soilThick = GroundwaterSettings.soilThick; + % Call the matric potential + Shh(1:1:NN) = SoilVariables.hh(NN:-1:1); + depToGWT = 0; % starting value for initialization, updated below + indxGWLay = NN - 2; % starting value for initialization, updated below - % Call the matric potential - Shh(1:1:NN) = SoilVariables.hh(NN:-1:1); - depToGWT = 0; % starting value for initialization, updated below - indxGWLay = NN - 2; % starting value for initialization, updated below - - % Find the phreatic surface (saturated zone) - for i = NN:-1:2 - hh_lay = Shh(i); - soilThick_lay = soilThick(i); - hh_nextlay = Shh(i - 1); - soilThick_nextlay = soilThick(i - 1); - % apply a condition to find the groundwater table from the matric potential by differentiating .... - % between a) first layer with positive or zero head value and b) last layer with negative head value - if hh_lay > -1e-5 && hh_nextlay <= -1e-5 - depToGWT = (hh_lay * soilThick_nextlay - hh_nextlay * soilThick_lay) / (hh_lay - hh_nextlay); - midThick = (soilThick(i) + soilThick(i - 1)) / 2; - if depToGWT >= midThick - indxGWLay = i; - elseif depToGWT < midThick - indxGWLay = i - 1; - end - break + % Find the phreatic surface (saturated zone) + for i = NN:-1:2 + hh_lay = Shh(i); + soilThick_lay = soilThick(i); + hh_nextlay = Shh(i - 1); + soilThick_nextlay = soilThick(i - 1); + % apply a condition to find the groundwater table from the matric potential by differentiating .... + % between a) first layer with positive or zero head value and b) last layer with negative head value + if hh_lay > -1e-5 && hh_nextlay <= -1e-5 + depToGWT = (hh_lay * soilThick_nextlay - hh_nextlay * soilThick_lay) / (hh_lay - hh_nextlay); + midThick = (soilThick(i) + soilThick(i - 1)) / 2; + if depToGWT >= midThick + indxGWLay = i; + elseif depToGWT < midThick + indxGWLay = i - 1; end + break end + end - if KT > 1 % start the checks from the first time step (after initialization) - % check 1 - if depToGWT <= 0 - warning('The phreatic surface level is equal or higher than the land surface level!'); - % check 2 - elseif depToGWT > ModelSettings.Tot_Depth; % total soil depth - warning('The phreatic surface level is lower than the end of the soil column!'); - end - % check 3 - diff = abs(indxGWLay - GroundwaterSettings.indxBotmLayer_R); - if diff > 1 - warning('Index of the bottom layer boundary that includes groundwater head ~= index of the layer that has zero matric potential!'); - end + if KT > 1 % start the checks from the first time step (after initialization) + % check 1 + if depToGWT <= 0 + warning('The phreatic surface level is equal or higher than the land surface level!'); + % check 2 + elseif depToGWT > ModelSettings.Tot_Depth % total soil depth + warning('The phreatic surface level is lower than the end of the soil column!'); + end + % check 3 + diff = abs(indxGWLay - GroundwaterSettings.indxBotmLayer_R); + if diff > 1 + warning('Index of the bottom layer boundary that includes groundwater head ~= index of the layer that has zero matric potential!'); end end end diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m index 8fcb6e11..8e579b16 100644 --- a/src/+groundwater/readGroundwaterSettings.m +++ b/src/+groundwater/readGroundwaterSettings.m @@ -33,7 +33,6 @@ soilThick cumulative soil layers thickness (from top to bottom) ModelSettings = io.getModelSettings(); NN = ModelSettings.NN; % Number of nodes NL = ModelSettings.NL; % Number of layers - Tot_Depth = ModelSettings.Tot_Depth; % total soil depth % Activate/deactivate Groundwater coupling GroundwaterSettings.GroundwaterCoupling = 0; % (value = 0 -> deactivate coupling, or = 1 -> activate coupling); default = 0, update value to = 1 -> through BMI @@ -53,7 +52,7 @@ soilThick cumulative soil layers thickness (from top to bottom) % Check that the position of the water table is within the soil column if gw_Dep <= 0 warning('The soil is fully saturated up to the land surface level!'); - elseif gw_Dep > Tot_Depth + elseif gw_Dep > ModelSettings.Tot_Depth warning('Groundwater table is below the end of the soil column!'); end @@ -77,7 +76,7 @@ soilThick cumulative soil layers thickness (from top to bottom) for i = 2:NL soilThick(i) = soilThick(i - 1) + DeltZ_R(i - 1); end - soilThick(NN) = Tot_Depth; + soilThick(NN) = ModelSettings.Tot_Depth; % total soil depth % Calculate the index of the bottom layer level using MODFLOW data indxBotmLayer_R = []; @@ -96,7 +95,7 @@ soilThick cumulative soil layers thickness (from top to bottom) end end - indxBotmLayer_R = indxBotmLayer_R; % index of bottom layer that contains current headBotmLayer + indxBotmLayer_R = indxBotmLayer_R; % index of bottom layer that contains current headBotmLayer % Note: indxBotmLayer_R starts from top to bottom, opposite of STEMMUS (bottom to top) indxBotmLayer = NN - indxBotmLayer_R + 1; % index of bottom layer (from bottom to top) diff --git a/src/+io/loadForcingData.m b/src/+io/loadForcingData.m index ad377579..843f8e61 100644 --- a/src/+io/loadForcingData.m +++ b/src/+io/loadForcingData.m @@ -50,7 +50,7 @@ % (2) Infiltration excess runoff (Hortonian runoff) ForcingData.R_Hort = zeros(size(Precip_msr)); % will be updated in +soilmoisture/calculateBoundaryConditions - + % replace negative values for jj = 1:Dur_tot if ForcingData.Ta_msr(jj) < -100 diff --git a/src/+soilmoisture/assembleCoefficientMatrices.m b/src/+soilmoisture/assembleCoefficientMatrices.m index 35406610..11955776 100644 --- a/src/+soilmoisture/assembleCoefficientMatrices.m +++ b/src/+soilmoisture/assembleCoefficientMatrices.m @@ -21,7 +21,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+soilmoisture/calculateEvapotranspiration.m b/src/+soilmoisture/calculateEvapotranspiration.m index a8ef6539..d240af1e 100644 --- a/src/+soilmoisture/calculateEvapotranspiration.m +++ b/src/+soilmoisture/calculateEvapotranspiration.m @@ -5,7 +5,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+soilmoisture/calculateMatricCoefficients.m b/src/+soilmoisture/calculateMatricCoefficients.m index fec53996..0aef14bf 100644 --- a/src/+soilmoisture/calculateMatricCoefficients.m +++ b/src/+soilmoisture/calculateMatricCoefficients.m @@ -29,7 +29,7 @@ Calculate all the parameters related to matric coefficients (e.g., if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+soilmoisture/calculateTimeDerivatives.m b/src/+soilmoisture/calculateTimeDerivatives.m index 783e7b37..ef4544ca 100644 --- a/src/+soilmoisture/calculateTimeDerivatives.m +++ b/src/+soilmoisture/calculateTimeDerivatives.m @@ -27,7 +27,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+soilmoisture/calculatesSoilWaterFluxes.m b/src/+soilmoisture/calculatesSoilWaterFluxes.m index 6dd6e72b..f5f97b91 100644 --- a/src/+soilmoisture/calculatesSoilWaterFluxes.m +++ b/src/+soilmoisture/calculatesSoilWaterFluxes.m @@ -7,7 +7,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+soilmoisture/solveSoilMoistureBalance.m b/src/+soilmoisture/solveSoilMoistureBalance.m index 9c705905..0d061b86 100644 --- a/src/+soilmoisture/solveSoilMoistureBalance.m +++ b/src/+soilmoisture/solveSoilMoistureBalance.m @@ -39,7 +39,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/+soilmoisture/solveTridiagonalMatrixEquations.m b/src/+soilmoisture/solveTridiagonalMatrixEquations.m index 6c542743..52cb54ea 100644 --- a/src/+soilmoisture/solveTridiagonalMatrixEquations.m +++ b/src/+soilmoisture/solveTridiagonalMatrixEquations.m @@ -8,7 +8,7 @@ if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling, added by Mostafa indxBotm = 1; % index of bottom layer is 1, STEMMUS calculates from bottom to top else % Groundwater Coupling is activated - % index of bottom layer after neglecting saturated layers (from bottom to top) + % index of bottom layer after neglecting saturated layers (from bottom to top) indxBotm = GroundwaterSettings.indxBotmLayer; end diff --git a/src/calc_rsoil.m b/src/calc_rsoil.m index 4f10d7c5..446c0a65 100644 --- a/src/calc_rsoil.m +++ b/src/calc_rsoil.m @@ -4,7 +4,7 @@ SMC = SoilVariables.Theta_LL(1:54, 2); Se = (SMC - VanGenuchten.Theta_r') ./ (VanGenuchten.Theta_s' - VanGenuchten.Theta_r'); - Ksoil = SoilVariables.Ks' .* Se.^Constants.l .* (1 - (1 - Se.^(1 ./ m')).^(m')).^2; + Ksoil = SoilVariables.Ks' .* Se.^Constants.l .* (1 - (1 - Se.^(1 ./ VanGenuchten.m')).^(VanGenuchten.m')).^2; if ~GroundwaterSettings.GroundwaterCoupling % no Groundwater coupling PSIs = -((Se.^(-1 ./ VanGenuchten.m') - 1).^(1 ./ VanGenuchten.n')) ./ (VanGenuchten.Alpha * 100)' .* bbx; From ac9180eb4ec83594c1e70f22fec3166a788235f9 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:51:45 +0200 Subject: [PATCH 78/90] Update calculateGroundwaterRecharge.m --- src/+groundwater/calculateGroundwaterRecharge.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+groundwater/calculateGroundwaterRecharge.m b/src/+groundwater/calculateGroundwaterRecharge.m index 29dfb224..5f1bfce6 100644 --- a/src/+groundwater/calculateGroundwaterRecharge.m +++ b/src/+groundwater/calculateGroundwaterRecharge.m @@ -97,7 +97,7 @@ soilThick cumulative soil layers thickness (from top to bottom) % recharge = recharge_init + S - sy; gwfluxes.recharge = recharge_init; % Note: in STEMMUS +ve means up-flow direction and -ve means down (opposite of MODFLOW), so recharge sign needs to be converted in BMI - if isnan(recharge) || isinf(recharge) + if isnan(gwfluxes.recharge) || isinf(gwfluxes.recharge) gwfluxes.recharge = 0; end From fe1891463c1f98b697aa8082fc2c5136883a8ed6 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:09:02 +0200 Subject: [PATCH 79/90] Update readGroundwaterSettings.m --- src/+groundwater/readGroundwaterSettings.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m index 8e579b16..43244f4b 100644 --- a/src/+groundwater/readGroundwaterSettings.m +++ b/src/+groundwater/readGroundwaterSettings.m @@ -38,7 +38,7 @@ soilThick cumulative soil layers thickness (from top to bottom) GroundwaterSettings.GroundwaterCoupling = 0; % (value = 0 -> deactivate coupling, or = 1 -> activate coupling); default = 0, update value to = 1 -> through BMI % Initialize the variables (head, temperature, air pressure) at the bottom boundary (start of saturated zone) - GroundwaterSettings.headBotmLayer = 1980.0; % groundwater head (cm) at bottom layer, received from MODFLOW through BMI + GroundwaterSettings.headBotmLayer = 1950.0; % groundwater head (cm) at bottom layer, received from MODFLOW through BMI GroundwaterSettings.tempBotm = 17.0; % groundwater temperature (C), received from MODFLOW through BMI % Call MODFLOW layers information (number of aquifer layers and their elevations, etc) From 7614318f77e251c414768b0fe4078c24875121b1 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Thu, 20 Jun 2024 13:13:27 +0200 Subject: [PATCH 80/90] Update readGroundwaterSettings.m --- src/+groundwater/readGroundwaterSettings.m | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m index 43244f4b..6f34d1e9 100644 --- a/src/+groundwater/readGroundwaterSettings.m +++ b/src/+groundwater/readGroundwaterSettings.m @@ -14,8 +14,6 @@ headBotmLayer groundwater head (cm) at the bottom layer, received from MOD indxBotmLayer_R index of the bottom layer that contains the current headBotmLayer (top to bottom) indxBotmLayer index of the bottom layer that contains the current headBotmLayer (bottom to top) tempBotm groundwater temperature (C), received from MODFLOW through BMI - airPg atmospheric pressure at the bottom (Pa) - BtmPg groundwater pressure (Pa) numAqL number of MODFLOW aquifer layers, received from MODFLOW through BMI numAqN number of MODFLOW aquifer nodes (numAqL + 1) aqLayers elevation of top surface level and all bottom levels of aquifer layers, received from MODFLOW through BMI From 2ce2a5eb4b9beb0af3687bb4768d368fc81c66b3 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:04:34 +0200 Subject: [PATCH 81/90] Update src/STEMMUS_SCOPE_exe.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/STEMMUS_SCOPE_exe.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/STEMMUS_SCOPE_exe.m b/src/STEMMUS_SCOPE_exe.m index 578a175b..1f966975 100644 --- a/src/STEMMUS_SCOPE_exe.m +++ b/src/STEMMUS_SCOPE_exe.m @@ -31,8 +31,7 @@ function STEMMUS_SCOPE_exe(config_file, runMode) 'EVAP' ... % evaporation 'RWUs' ... % soil water root uptake 'RWUg' ... % groundwater root uptake - 'R_Dunn' ... % Dunnian runoff - 'R_Hort' ... % Hortonian runoff + 'ForcingData' ... % forcing data that includes Dunnian runoff and Hortonian runoff 'RS' ... % total surface runoff }; %#ok From b2971c1b6a9f301ad93102dafda20c240ba28519 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:10:55 +0200 Subject: [PATCH 82/90] Update src/STEMMUS_SCOPE.m Co-authored-by: SarahAlidoost <55081872+SarahAlidoost@users.noreply.github.com> --- src/STEMMUS_SCOPE.m | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index 4c3bdd3e..42aab752 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -643,9 +643,7 @@ DSTOR = min(EXCESS, DSTMAX); % Depth of depression storage at end of current time step % Next line is commented and Surface runoff is re-calculated using different approach (the following 3 lines) % RS(KT) = (EXCESS - DSTOR) / Delt_t; % surface runoff, (unit conversion from cm/30mins to cm/sec) - R_Dunn(KT) = ForcingData.R_Dunn(KT); % (cm/sec) - R_Hort(KT) = ForcingData.R_Hort(KT); % (cm/sec) - RS(KT) = R_Hort(KT) + R_Dunn(KT); % total surface runoff (cm/sec) + RS(KT) = ForcingData.R_Hort(KT) + ForcingData.R_Dunn(KT); % total surface runoff (cm/sec) end if ModelSettings.Soilairefc == 1 From fbaec06116c0c37d7fb9e2b68b05342b493deb04 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:15:19 +0200 Subject: [PATCH 83/90] Update STEMMUS_SCOPE.m --- src/STEMMUS_SCOPE.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index 42aab752..1fdfe4e8 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -62,7 +62,8 @@ TOLD = InitialValues.TOLD; SAVE = InitialValues.SAVE; P_gOLD = InitialValues.P_gOLD; - + gwfluxes = struct(); + %% 1. define Constants Constants = io.define_constants(); From dcdb1bbcf2847b1e03620c3152c5796182f6d59e Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:45:56 +0200 Subject: [PATCH 84/90] Update readGroundwaterSettings.m in case the groundwater level <= 0 cm (groundwater level >= top level of soil), there is no soil profile and the model will crash. To avoid that, assign a minimum groundwater level = of 1 cm --- src/+groundwater/readGroundwaterSettings.m | 1 + 1 file changed, 1 insertion(+) diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m index 6f34d1e9..5a5f72ff 100644 --- a/src/+groundwater/readGroundwaterSettings.m +++ b/src/+groundwater/readGroundwaterSettings.m @@ -50,6 +50,7 @@ soilThick cumulative soil layers thickness (from top to bottom) % Check that the position of the water table is within the soil column if gw_Dep <= 0 warning('The soil is fully saturated up to the land surface level!'); + gw_Dep = 1.0; % to avoid model crashing, assign minimum gw_Dep value of 1 cm elseif gw_Dep > ModelSettings.Tot_Depth warning('Groundwater table is below the end of the soil column!'); end From fc9b954787e28a3fd2980cd562efa481fcc09431 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:48:26 +0200 Subject: [PATCH 85/90] Update STEMMUS_SCOPE.m If groundwater depth < 1 cm, soil is fully saturated and no groundwater recharge --- src/STEMMUS_SCOPE.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index 1fdfe4e8..d4df5540 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -746,6 +746,9 @@ [depToGWT_end, indxGWLay_end, gwfluxes] = groundwater.calculateGroundwaterRecharge(EnergyVariables, SoilVariables, depToGWT_strt, indxGWLay_strt, KT, GroundwaterSettings); depToGWT_strt = depToGWT_end; % for next time step indxGWLay_strt = indxGWLay_end; % for next time step + if GroundwaterSettings.gw_Dep <= 1 % soil is fully saturated + gwfluxes.recharge = 0; + end else gwfluxes.recharge = 0; end From 9d2d964cee71798b193eafb2a0fa6dd1f67f53d8 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:50:54 +0200 Subject: [PATCH 86/90] Update readGroundwaterSettings.m --- src/+groundwater/readGroundwaterSettings.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/+groundwater/readGroundwaterSettings.m b/src/+groundwater/readGroundwaterSettings.m index 5a5f72ff..628dd6d0 100644 --- a/src/+groundwater/readGroundwaterSettings.m +++ b/src/+groundwater/readGroundwaterSettings.m @@ -50,7 +50,7 @@ soilThick cumulative soil layers thickness (from top to bottom) % Check that the position of the water table is within the soil column if gw_Dep <= 0 warning('The soil is fully saturated up to the land surface level!'); - gw_Dep = 1.0; % to avoid model crashing, assign minimum gw_Dep value of 1 cm + gw_Dep = 1.0; % to avoid model crashing, assign minimum gw_Dep value of 1 cm elseif gw_Dep > ModelSettings.Tot_Depth warning('Groundwater table is below the end of the soil column!'); end From 0bee5c403cf864b7fc57388e1445038c16c48428 Mon Sep 17 00:00:00 2001 From: Mostafa Gomaa Daoud <54531356+MostafaGomaa93@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:52:34 +0200 Subject: [PATCH 87/90] Update STEMMUS_SCOPE.m --- src/STEMMUS_SCOPE.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index d4df5540..81f831dd 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -63,7 +63,7 @@ SAVE = InitialValues.SAVE; P_gOLD = InitialValues.P_gOLD; gwfluxes = struct(); - + %% 1. define Constants Constants = io.define_constants(); From cd83ce697a9430ba04fd9abfea6d298a1b0f3a05 Mon Sep 17 00:00:00 2001 From: SarahAlidoost Date: Fri, 21 Jun 2024 17:09:56 +0200 Subject: [PATCH 88/90] add changes to changelog file --- CHANGELOG.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 464923e9..4430830f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,23 @@ **Changed:** - Added changes to support groundwater coupling via BMI in - [#221](https://github.com/EcoExtreML/STEMMUS_SCOPE/pull/221) + [#221](https://github.com/EcoExtreML/STEMMUS_SCOPE/pull/221) and + [#234](https://github.com/EcoExtreML/STEMMUS_SCOPE/pull/234) - Save water stress factor and water potential into csv files. [#229](https://github.com/EcoExtreML/STEMMUS_SCOPE/pull/229) +**Fixed:** + +- Calculations of surface runoff discussed in + [#232](https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/232) and fixed in + [#234](https://github.com/EcoExtreML/STEMMUS_SCOPE/pull/234) +- The bug in the QVT calculations discussed in + [#230](https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/230) and fixed in + [#234](https://github.com/EcoExtreML/STEMMUS_SCOPE/pull/234) +- The bug in activating the dry air calculations discussed in + [#227](https://github.com/EcoExtreML/STEMMUS_SCOPE/issues/230) and fixed in + [#234](https://github.com/EcoExtreML/STEMMUS_SCOPE/pull/227) + # [1.5.0](https://github.com/EcoExtreML/STEMMUS_SCOPE/releases/tag/1.5.0) - 3 Jan 2024 From accde11b6c901df583a0dd10cfe0e1f2fe1ddb88 Mon Sep 17 00:00:00 2001 From: SarahAlidoost Date: Fri, 21 Jun 2024 17:37:06 +0200 Subject: [PATCH 89/90] add initial values for bmi variables --- src/STEMMUS_SCOPE.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/STEMMUS_SCOPE.m b/src/STEMMUS_SCOPE.m index 81f831dd..68fc3833 100644 --- a/src/STEMMUS_SCOPE.m +++ b/src/STEMMUS_SCOPE.m @@ -63,6 +63,10 @@ SAVE = InitialValues.SAVE; P_gOLD = InitialValues.P_gOLD; gwfluxes = struct(); + Evap = InitialValues.Evap; + EVAP = InitialValues.EVAP; + RWUs = []; + RWUg = []; %% 1. define Constants Constants = io.define_constants(); From 698f5e4d0a84a7dd5a2d78a14287d3f5ad638d89 Mon Sep 17 00:00:00 2001 From: SarahAlidoost Date: Fri, 21 Jun 2024 17:43:55 +0200 Subject: [PATCH 90/90] regenerate exe file --- run_model_on_snellius/exe/STEMMUS_SCOPE | Bin 354495 -> 339534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/run_model_on_snellius/exe/STEMMUS_SCOPE b/run_model_on_snellius/exe/STEMMUS_SCOPE index d38c1599a1138caa6b3af65e5c55ff86c32a5509..b702486b8b9d5d50f2b716ebc4046c20a72ee01f 100755 GIT binary patch delta 257885 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
AGr%Mw$f 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%0A9sz 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%0D};#v6j(8 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 z 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

YX)g4#-x1-xjo%vSxGI8ko7aj-EQ2 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

QX@v{m_e}AQn7LIZVW)nvo?2bo?DpD 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 JaqWCT_dj+4