History of revisions in Kalypso-NA after last release in January 2016: (contact: SH = Sandra Hellmers, Institute of River and Coastal Engineering, TU-Hamburg, Hamburg) Changes from 2016 to 2021 are mostly related to the revised code and methods published in Hellmers,2020 (Dissertation) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ version 3.2.0.0 June 2016: (SH)\\ update of cistern implementation - timeseries of q (withdrawal) is attribute of drainage type as file path key, - timeseries of q (withdrawal) is given as whole timeseries from the modellerer, meaning it has to cover the whole simulation period - file path key will be written in the soil parameters boden.dat by UI - percolation of water can only take place if IsSealed = .false. (was not implemented yet) - the new implementation is worth of version update to: 3.2.0.0 - preparation of new calculation results for cisterns: output.res with "Speicher Entnahme" - in DEBUG version the old output files to check cistern results are written. - new result file: qst. = Discharge of storage element in [m3/s] is written. output file of element withdrawal is written. The "element" can be a cistern or any element where a water withdrawal link is defined within the soil parameters. Parameters are renamed: cistern withdrawal = element withdrawal - new result file: .qsp = potential withdrawal from storage elements (potential rainwater harvesting) in m3/s - new result file: .vst = volume of storage element, where water withdrawal function is defined. output is in [m3] - The timeseries of the withdrawal from element storages (e.g. cisterns) is given in m3/s and per cistern element with a given area by the modeller. - The timeseries is written in the same format like the "Zufluss" timeseries - the timeseries are read and processes like a "Zufluss"-timeseries (mod_zufluss.f90) - The results / output is given in m3/s for all cisterns in the given Type of overlay. Meaning that the modellerer get the results for each sub-sub-catchment in the network plan. Therefore a corection of the flow per catchment area is done now. Fixed: program crashes if soil type referenced in we.hyd does not exist in boden.dat. We now get an error message and the program stops. version 3.1.2.0: March 2017 -There is a limitation of input values of precipitation time series. 15000 values are required to simulate 10days with 1min Rainfall data: inp_timeseries (allocateSize). -Bug fix of reading a different set of junctions for QtoQ relations. The reading is defined according to the actual given number of junctions and not according to the max. number of junctions. change in mod_networkPlan. version 3.1.2.0: May 2017 -outfall / shortfall of measured value indicated by values above or below +/-777. version 4.0.0 (Größerer Umfang der Implementierungen im Rahmen der Dissertation Hellmers [2020] und Projekt StucK) 23.08.2016: Implementation of Courant-Criteria to calculate the internal timestep according to hydraulic conductivity of soil materials. A second Criteria for internal time step computation for free drainage layers implemented. Water may drain quite fast trough the layers now! - Additional changes: --> soil moisture calculation in bodfn: The actual infiltration depends on the infiltration capacity and the actual inflow of water by precipitation The percolation depends on the actual available water volume in the layer. up to version 3.1. the percolation has been calculated on the "old" bof (timestep dtn-1), the water is stored first and may percolate in the next time step! This step wise calculation is not sufficient any more with the implementation of horizontal drainage and withdrawal functionality, because the (natural) percolation has priority before artifical water drainage or withdrawal is simulated. Since version 3.2.0 the percolation is calculated with the sum of inf and old bof. The transpiration is calculated as well from the actual available water in the soil element. Old-Modell Compatibility: This may result in more percolation and more interflow (if the layer has the attribute of interflow). - getter function (getHydraulicConductivitty) public available - check in CIN factor calculation - potential drainage of soil element is calculated in l/m3per hour. Transformation to internal timestep is done outside of subroutine. - New data file created to write the soil water outflow in l/m3/min = f_qSoilStorage --> output in .bsp - New function to check if any layer in a hydrotop has a drainage functionality: isDrainageElement - New Subroutine to calculate the internal step for soil moisture computation: "checkCourantCriterion" Internal time step depends on the hydraulic conductivity of the soil material. An additional computation for "free storage layers" is checked right now and commented - module Bodenwasserhaushaltsberechnung: - New output file to write the soil water outflow per layer - New subroutine to calculate the internal timestep dtn according to Courant Criteria - Check of summation per layer, timestep, hydrotop and catchment : new parameters within loops - Horizontal drainage is calculated before drainage in coupled layer - potential Drainage is calculated in l/m3 and hour. for water balance calculation it has to be multiplied with internal timestep dtn revision of drainage functions: (1) water withdrawal (2) Coupled Layer drainage (3) drainage. Coupled Layer Flow: - a drainage can take place among layers in a soil profile (e.g. Swale-Drainage-System). - in the upper soil layer a drainage pipe is provided above a defined storage height. - is the waterlevel > elevation height of the pipe, water drains into a lower storage layer. - The soil water in the layers has to be corrected respectively. - The couled layer flow of a layer above another one is starting to drain after reaching a saturated state. This saturated state is calibrated according to physical model tests (empirical). (see Hellmers, 2020)) - New function created to calculate the saturated state in a layer. - New function to calculate the conditions for flow drained in a coupled layer: hasCoupledLayerFlowCondition 11.05.2017: mod_bodenlayer: 1. LSDM/SUDS: for drainage elements the hydraulic conductivity is corrected with a correction factor defined in an external ascii file 2. Remark for initial value processing: it is processed without the water content up to the wilting point. A change would influence any old model setup and is not decided to be done up to know. 3. Function to compute the exceedance saturation state per layer according to the gradient and set parameters. Later on, this function may be moved out of the time loop computation as it is not depending on the time step and water balance conditions. 4. New Function to calculate the amount of saturated soil water per time step in the regarded layer. Mod_bodenwasserhaushalt: 1. New functions and subroutines to compute: a. Coupled layer flow computation b. Exceedance saturation states of layers c. Backwater computation and correction of soil water in the respective source- and receiving layer. d. Exceedance flow computation if the water exceeds the storage capacity 2. New Parameters and calibration factors are defined in an external ascii file for the application of the GUI model the path need to be independent of the ascii-model parth (e.g. on c:/kalypso_input/) 3. The internal time step is for test reasons defined in the external ascii file up to now. This is not finished yet. The dynamical time step computation is reworked and tested later. (FixMeSandra = note) 4. Open work: the recalculation and check of withdrawal per layer. (FixMeSandra = note) 5. Open Work: backwater effect and inverse layer loop over multiple layer setups, when the saturation state is reached by geometrical conditions. (FixMeSandra = note) 6. Drained water is computed per internal time step. 7. The unit hydrograph calculation is defined in a function Mod_drainage: 1. Differentiation to calculate the flow through porous media (approach of darcy in the moment) and the flow through free medium (meander layer). 2. The documentation is not completed yet. The comments are to be revised and summarized. 3. The porous media is defined with a pore volume of less then 80%. 4. The increased flow conditions in the porous media starts with 90% saturation state of the layer (the 90% is fixed in the core) 5. Temporary check of darcy factor by writing the multiplication factor (111111 file) 6. Temporaty writing files: 111111 7. The retention time parameter: a. The retention time parameter is calculated with the darcy weisbach approach for free layer conditions and that fits for the Meander setup for the outflow and the unit hydrograph computation b. For the porous media the an empiral calculation of the retention is developed on the basis of the empirical experiments in the laboratory 8. New Function: The unit hydrograph calculation is done in an additional function: retFlowUnitHydrograph 9. New function: Coupled layer flow conditions: CoupledLayerFlowCondition 10. New function to compute the exceedance flow water in the layer 11. The kf-value is calculated with the Kozeny-Carman approach and corrected with the respected factor. Mod_gebiet: 1. Flow retention computation: a. The interflow is computed with the Time-Area-Function (not the unit-hydrograph!) b. Note: the unit hydrograph comutation is used in the one-storage method. The Parallel-Cascade-Method is not realized (although it is written and prepared) the parallel cascade is not working! Mod_input_timeseries: 1. The number of input values is increased from 10000 to 15000 values. It is not allocatable yet! Mod_isov:_ some comments added. No changes made. Mod_network plan: 1. Bug fix: the number of junction codes of a W-V-Q Relation has to be read and defined! It is not equal to the maximal possible junctions. mod_bodenfeuchte: Differentiation of soil water balance calculation: 1. For the calculation of the actual soil water balance it is required to take into account the actually infiltrated water per internal timestep. It is a redevelopment derived within the SUDS-Developments. 2. For the old core up to 3.2. the soil water calculation takes into account only the soil water of the last time step without the actually infiltrated water. Changing this approach causes changes in old models It is suggested to actualise old models and delete this case later on. 3. Change in modelling the soil water balance module for synthetical events: the inflow hydrographs into the linked areas is longer than short term synthetical event simulation durations (e.g. 16min or 60min). For the overall water balance and slow process simulations the simulation duration of the soil water balance module is prolonged to 2880 timesteps. The consequence are changes in the synthetical event simulations regarding interflow and baseflow simulations. The peak flow may be effected if the interflow or baseflow are relative fast reacting flow components. The overall interflow and baseflow is large when the initial soil moisture is defined up to 75%. This is a very high initial soil water as the Witing Point is not included. It reaches up to complete saturation states. version 4.0.0. with external input text files (plugin folder): 1. Definition of runoff rate from input file using pre-defined parameters: runoffLossRate.dat The evaporation and depression loss was defined by 20\% as a fixed value in the core (> = 3.X.X.). This loss was defined by Bruening (in 2010) and fixed up to the core 3.x.x. New: The release of 4.0.0 enables a definition of the depression and evaporation loss by the modeller The modeller has the possibility do adjust this parameter now! The implementation is simplified in the first stage: only one value is defined as runoffLossRate, but it may be extended to define separate values for each subcatchment 2. Input control functions to select a wvq relationship on the basis of flags: first implementation with the driver of precipitation data series: implementation of a subroutine to select a wvq relation according to functions given in a text file *.wvq. A precipitation time series is an input driver and the flags to select a wvq relationship are defined in the text file *.wvq. 3. overall network: version 4.0.0. with external input text files: Giving individual gml-names to all elements must be ensured. The User Interface checks this and the core gives error messages. A differentiation is done between virtual strand, real strand, storage strand, node, catchment. 17.03.2019: The developments in the dissertation S.Hellmers are merged into the trunk. For details please see S.Hellmers (2020) 19.03.2019 - 20.03.2019: Allocatable number of control functions per reservoir strand. This was limited to 10 and is now defined according to the input parameters (allocatable array). Reading and Processing of parameters to compute several relations per node is implemented. The objective is to enable the computation of control functions per node which are switched on/off (on-the-fly) according to reached thresholds in precipitation, discharge or water levels within the network plan elements. This control function has been implemented already for reservoir strands and is now enabled for nodes (here especially for the Q to Q -relation = Abzweigung) which is used to distrute water into reservoir strands. The development is done within the project StucK. The results are tested. -nodes.f90 and kalypsoNA.f90: The whole node function reading and execution is set into separate subroutines (see node.f90). The processing was done in the main module Kalypso_na.f90 and was not applicable there to use the data in the “node type”. The big arrays of the node functions are written in the node-type now and applied in a separate subroutine. The inflow timeseries for different receiving nodes are read only one time in the beginning of the data processing phase. In this way, the data are stored in the “node-type” as parameter. 27.03.2019: The Puls-method computed a complete emptying when the outflow (in t-1) of the pond was larger in comparison to the inflow (t) and the volume (t-1). This complete emptying was not realistic and is mentioned to be an uncertainty of the approach (see Maniak 2016 page 387). Now a step wise emtying is computed if the outflow in (t-1) was larger than the volume (t-1) and the inflow (t). This is only the case in longterm simulations and only if the pond shows fast reaction times. 20.22.2020 mod.zufgang: Synthetical event simulation: Reading time series of inflow (Q) and water levels (W) for the control functions. The inflow time series was read for synthetical events in a very user-unfriendly way. Now the time series can be given in a different time step than the simulation and the start / end date doesn't matter. Only the length of the time series need to cover the number of simulation time steps (2880) * time step size = length of time series. 03.11.2021 Update of the Plugin Folder directory with a User Defined Path. Since version 4.0.1 the directory of the Plugin folder can be defined by the user. A documentation of the plugin folder application is given in the online Wiki (Hydrology Manual). 09.12.2021 Changes in the moduls mod_strands and mod_gebiet: Since Kalypso-NA version 4.X (After 3.X) the parameters are read one time at the beginning of the simulation run and not "on demand" during the simulation as before. This saves a lot of run-time and at the end gives a better control of parameters per type (strands, catchment, nodes,.....). Here, the parameters of strands need to be defined per "strand_art" (0 = virtual, 1 = real KM, 4 = storage strand). This differentiation is important to search for a specific element using the gml names in old models which are the name for virtual, real and storage strands. For this purpose the search of the respective ascii name for a gml-name plus strand_art gives a specific definition of the element.