|
HYPE
|
Functions/Subroutines | |
| subroutine, public | initiate_river_substance_state (config, riverstate) |
| subroutine, public | initiate_lake_substance_state (config, lakestate) |
| subroutine, public | initiate_lake_layer_state (config, lakestate) |
| subroutine, public | add_deposition_to_lake_as_load (i, pooltype, iluse, veg, areaij, sourcedry, lakestate, ktop) |
| subroutine, public | add_deposition_to_river_as_load (i, iluse, pooltype, veg, areaij, sourcedry, riverstate) |
| subroutine, public | substance_processes_in_river (i, itype, area, depth, transq, Qbank, maxSSconc, sedresSS, riverstate) |
| subroutine, public | substance_processes_in_lake (i, itype, area, lakestate, resuspdown, pooladd_ts, pooladd_tn, pooladd_tp, pooladd_oc, pooladd_si, poolnet_ts) |
| subroutine | denitrification_water (i, watertype, ktop, systemtype, area, denpar, halfsatINwater, riverstate, lakestate) |
| subroutine | production_mineralisation (i, watertype, ktop, systemtype, area, prodNpar, prodPpar, prodCpar, prodSipar, tmpexpSipar, halfsatTPwater, limpppar, plimsipar, riverstate, lakestate, depth) |
| subroutine | macrophyte_uptake (i, watertype, ktop, systemtype, area, muptNpar, muptPpar, halfsatTPwater, proddeppar, limpppar, lakestate, riverstate) |
| subroutine | lake_sedimentation (i, substance, watertype, ktop, sedrate, limsedpar, area, lakestate, pooladd) |
| subroutine, public | sediment_pool_density (watertype, res_mode, siltation_option, age, frac_clay, frac_silt, frac_sand, density) |
| subroutine | lake_siltation_and_flushing (i, watertype, ss_frac, lakestate, resuspup, resuspdown, removedsed) |
| subroutine | set_flushing_status (mode, frequency, start, sstop, depth, maxdepth, SSsedpool, AEsedpool, sedflush, sedage) |
| subroutine | sediment_fraction (i, watertype, lakestate, ss_frac) |
| subroutine | river_sedimentation_resuspension (i, watertype, area, sedexppar, riverq, qbank, depth, maxSSconc, sedresSS, riverstate) |
| subroutine | calculate_lake_longterm_tpmean (i, watertype, ktop, lakestate) |
| subroutine | calculate_river_tpmean (i, watertype, riverstate) |
| subroutine | internal_lake_load (i, watertype, systemtype, area, lakestate) |
| subroutine, public | add_diffuse_source_to_local_river (i, qin, cin, source, addedflow) |
| subroutine, public | add_point_sources_to_main_river (isb, qin, cin, source, addedflow) |
| subroutine, public | calculate_river_wetland (i, itype, n, temp5, temp30, qin, cin, cwetland) |
| subroutine | calculate_river_wetland_np (n, qin, cin, area, vol, cvol, temp5, temp30) |
| subroutine, public | wetland_substance_processes (n, area, vol, cvol, temp5, temp30, fastN, fastP, humusN, humusP, partP) |
Nitrogen, phosphorus and organic carbon processes in surface water in HYPE.
| subroutine, public npc_surfacewater_processes::add_deposition_to_lake_as_load | ( | integer, intent(in) | i, |
| integer, intent(in) | pooltype, | ||
| integer, intent(in) | iluse, | ||
| integer, intent(in) | veg, | ||
| real, intent(in) | areaij, | ||
| real, dimension(numsubstances), intent(out) | sourcedry, | ||
| type(lakestatetype), intent(inout) | lakestate, | ||
| integer, intent(in), optional | ktop | ||
| ) |
Calculate atmospheric deposition of substances and add it to lakewater as load.
Reference ModelDescription Chapter Processes above ground (Atmospheric deposition of nitrogen and phosphorus)
| [in] | i | index of subbasin |
| [in] | pooltype | laketype: 1=ilake, 2=olake |
| [in] | iluse | index of land use |
| [in] | veg | vegetation index |
| [in] | areaij | classarea (km2) |
| [out] | sourcedry | dry deposition (kg/timestep) |
| [in,out] | lakestate | Lake state |
| [in] | ktop | Top lake layer of layered lake |
Algorithm
Prepare deposition
Add no dry deposition if no water in lake
Add deposition to lake
Calculate atmospheric deposition loads (kg/timestep)
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::add_deposition_to_river_as_load | ( | integer, intent(in) | i, |
| integer, intent(in) | iluse, | ||
| integer, intent(in) | pooltype, | ||
| integer, intent(in) | veg, | ||
| real, intent(in) | areaij, | ||
| real, dimension(numsubstances), intent(out) | sourcedry, | ||
| type(riverstatetype), intent(inout) | riverstate | ||
| ) |
Calculate atmospheric deposition of substances and add it to river water components as load.
deposition of nitrogen and phosphorus)
| [in] | i | index of subbasin |
| [in] | iluse | index of land use |
| [in] | pooltype | rivertype: 1=lriver, 2=mriver |
| [in] | veg | vegetation index |
| [in] | areaij | classarea (km2) |
| [out] | sourcedry | dry deposition (kg/timestep) |
| [in,out] | riverstate | River state |
Algorithm
Prepare deposition
Calculate fractions to be added to river water compartments
Add deposition of substances to river watercourse compartments
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::add_diffuse_source_to_local_river | ( | integer, intent(in) | i, |
| real, intent(inout) | qin, | ||
| real, dimension(numsubstances), intent(inout) | cin, | ||
| real, dimension(numsubstances), intent(out) | source, | ||
| real, intent(out) | addedflow | ||
| ) |
Add load from local diffuse sources to local river inflow.
Reference ModelDescription Chapter Nitrogen and phosphorus in land routines (Nutrient sources - Rural household diffuse source)
| [in] | i | index of subbasin |
| [in,out] | qin | flow in local river (m3/s) |
| [in,out] | cin | concentration of flow into local river (mg/L) |
| [out] | source | local source added to local river (kg/timestep) |
| [out] | addedflow | added flow (m3/timestep) |
Algorithm
Find if rural load is added to local stream
Calculate diffuse source from rural households to local river
Add diffuse source to inflow to local river flow
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::add_point_sources_to_main_river | ( | integer, intent(in) | isb, |
| real, intent(inout) | qin, | ||
| real, dimension(numsubstances), intent(inout) | cin, | ||
| real, dimension(numsubstances,max_pstype), intent(out) | source, | ||
| real, intent(out) | addedflow | ||
| ) |
Add load from point sources to main river inflow. For water temperature input value may be missing and in this case the temperature of the river is then kept.
Reference ModelDescription Chapter Water management (Point sources)
| [in] | isb | index of subbasin |
| [in,out] | qin | flow into main river (m3/s) |
| [in,out] | cin | concentration of flow into main river (mg/L) |
| [out] | source | point sources added to main river (kg/timestep) |
| [out] | addedflow | added flow (m3/timestep) |
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::calculate_lake_longterm_tpmean | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| integer, intent(in) | ktop, | ||
| type(lakestatetype), intent(inout) | lakestate | ||
| ) |
Calculates straight 365-day running average mean of TP concentration in lake.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Primary production and mineralization) and Organic carbon (River and Lakes - Primary production and mineralization)
| [in] | i | index of current subbasin |
| [in] | watertype | Lake type (1=local, 2=outlet) |
| [in] | ktop | index of uppermost lake layer (if present) |
| [in,out] | lakestate | Lake state |
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::calculate_river_tpmean | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| type(riverstatetype), intent(inout) | riverstate | ||
| ) |
Calculates straight 365-day running average mean of TP concentration in river.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Primary production and mineralization) and Organic carbon (River and Lakes - Primary production and mineralization)
| [in] | i | index of current subbasin |
| [in] | watertype | River type (1=local, 2=main) |
| [in,out] | riverstate | River states |
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::calculate_river_wetland | ( | integer, intent(in) | i, |
| integer, intent(in) | itype, | ||
| integer, intent(in) | n, | ||
| real, intent(in) | temp5, | ||
| real, intent(in) | temp30, | ||
| real, intent(in) | qin, | ||
| real, dimension(n), intent(inout) | cin, | ||
| real, dimension(n), intent(inout) | cwetland | ||
| ) |
Calculate effect of a river wetland constructed for nutrient removal These wetlands mix inflow with a wetland pool of water, affect the nitrogen and phosphorus content of the wetland, and then release the (same) flow with the new (reduced) concentration.
Reference ModelDescription Chapter Water management (Constructed wetlands)
| [in] | i | index of subbasin |
| [in] | itype | index of river type (local or main) |
| [in] | n | number of substances |
| [in] | temp5 | temperature (5-day-mean) (degree Celsius) |
| [in] | temp30 | temperature (30-day-mean) (degree Celsius) |
| [in] | qin | flow into/out of river wetland (m3/s) |
| [in,out] | cin | concentration of flow into/out of river wetland (mg/L) |
| [in,out] | cwetland | concentration of river wetland (mg/L) |
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::calculate_river_wetland_np | ( | integer, intent(in) | n, |
| real, intent(in) | qin, | ||
| real, dimension(n), intent(in) | cin, | ||
| real, intent(in) | area, | ||
| real, intent(in) | vol, | ||
| real, dimension(n), intent(inout) | cvol, | ||
| real, intent(in) | temp5, | ||
| real, intent(in) | temp30 | ||
| ) |
Calculate nutrient processes in river wetland. Processes simulated are denitrification for IN, sedimentation and uptake of P. Retention is limited to 99.9% of the pool.
Reference ModelDescription Chapter Water management (Constructed wetlands)
| [in] | n | number of substances |
| [in] | qin | flow into wetland (m3/d) |
| [in] | cin | concentration of river flow (mg/l) (before and after wetland processes |
| [in] | area | area of wetland (m2) |
| [in] | vol | volume of wetland (m3) |
| [in,out] | cvol | concentration of wetland volume (mg/l) (before and after wetland processes |
| [in] | temp5 | temperature (5-day-mean) (degree Celsius) |
| [in] | temp30 | temperature (30-day-mean) (degree Celsius) |
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::denitrification_water | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| integer, intent(in) | ktop, | ||
| integer, intent(in) | systemtype, | ||
| real, intent(in) | area, | ||
| real, intent(in) | denpar, | ||
| real, intent(in) | halfsatINwater, | ||
| type(riverstatetype), intent(inout), optional | riverstate, | ||
| type(lakestatetype), intent(inout), optional | lakestate | ||
| ) |
Calculates the denitrification in river and lakes Lake processes take place in whole lake volume.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Denitrification)
| [in] | i | index of current subbasin |
| [in] | watertype | Lake or river type (1=local, 2=main/outlet) |
| [in] | ktop | index of uppermost lake layer (if present) |
| [in] | systemtype | aquatic system type (1=lake, 2=river) |
| [in] | area | lake surface area/river bottom area/slc area (m2) |
| [in] | denpar | model parameter denitrification rate (kg/m2/day) |
| [in] | halfsatinwater | model parameter half saturation of IN (mg/L) |
| [in,out] | riverstate | River states |
| [in,out] | lakestate | Lake states |
Algorithm Initialisation
Calculate upper area of top layer
Calculate for each lake layer (or single water body volume):
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::initiate_lake_layer_state | ( | type(stateconfigurationtype), intent(in) | config, |
| type(lakestatetype), intent(inout) | lakestate | ||
| ) |
Initiation lake layered model for water and substances. Only for olakes.
| [in] | config | state file configuration |
| [in,out] | lakestate | Lake states |
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::initiate_lake_substance_state | ( | type(stateconfigurationtype), intent(in) | config, |
| type(lakestatetype), intent(inout) | lakestate | ||
| ) |
Initiation lake for nutrients and organic carbon for non layered lake.
| [in] | config | state file configuration |
| [in,out] | lakestate | lake states |
Algorithm
Initialize lake concentration from parameters (mg/L)
Set TPmean-variable from paraif phosphorus is not calculated by HYPE
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::initiate_river_substance_state | ( | type(stateconfigurationtype), intent(in) | config, |
| type(riverstatetype), intent(inout) | riverstate | ||
| ) |
Initiation river variables for substance simulations.
Consequences Module hypevariables variable Qmax, Q2max, iQmax, iQ2max may be allocated and set.
| [in] | config | state file configuration |
| [in,out] | riverstate | River states |
Algorithm
Allocate and initialize river sediment variables
Set TPmean-variable if phosphorus is not calculated by HYPE
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::internal_lake_load | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| integer, intent(in) | systemtype, | ||
| real, intent(in) | area, | ||
| type(lakestatetype), intent(inout) | lakestate | ||
| ) |
Calculates and add internal load of phosphorus for lakes.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Internal load)
| [in] | i | index of current subbasin |
| [in] | watertype | Lake or river type (1=local, 2=main/outlet) |
| [in] | systemtype | aquatic system type (1=lake, 2=river) |
| [in] | area | lake surface area/ river bottom area (m2) |
| [in,out] | lakestate | Lake state |
Algorithm
Check if internal phosphorus load is to be calculated
Calculate pool of P, and concentration and temperature dependent factors
Calculate internal load of phosphorus
Add internal load of phosphorus to lake water
Calculate internal load of phosphorus for each lake layer
Add internal load of phosphorus to lake water
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::lake_sedimentation | ( | integer, intent(in) | i, |
| integer, intent(in) | substance, | ||
| integer, intent(in) | watertype, | ||
| integer, intent(in) | ktop, | ||
| real, intent(in) | sedrate, | ||
| real, intent(in) | limsedpar, | ||
| real, intent(in) | area, | ||
| type(lakestatetype), intent(inout) | lakestate, | ||
| real, intent(out) | pooladd | ||
| ) |
Calculate sedimentation of substance in lake.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Sedimentation in lakes) and Organic carbon (River and lakes - Sedimentation)
| [in] | i | current index of subbasin |
| [in] | substance | current index of substance (PP,ON,SS,AE) |
| [in] | watertype | Lake type (1=local, 2=outlet) |
| [in] | ktop | Uppermost lake layer (-1 for not layered lake) |
| [in] | sedrate | sedimentation rate (lakes) (m/ts) |
| [in] | limsedpar | concentration limit for sedimentation (mg/L) |
| [in] | area | area of slc, lake area (m2) |
| [in,out] | lakestate | Lake state |
| [out] | pooladd | amount of substance added to sediment pool (kg/m2/ts) |
Algoritm
Calculate water volume, amount of substance in water (pool) and the sedimentation
Remove sedimentation from the water pool
Amount of substance added to sediment pool
Add sedimentation to the sediment pool
Calculate the new concentration in the water due to the change in the water pool
Calculate net loss of each lake layer and amount sedimenting to bottom
Remove substance from the water pool
Add sedimentation to the sediment pool
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::lake_siltation_and_flushing | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| real, intent(in) | ss_frac, | ||
| type(lakestatetype), intent(inout) | lakestate, | ||
| real, dimension(numsubstances), intent(out) | resuspup, | ||
| real, dimension(numsubstances), intent(out) | resuspdown, | ||
| real, dimension(numsubstances), intent(out) | removedsed | ||
| ) |
Calculate siltation of lake with sespended sediments (and algae) and flushing.
Reference ModelDescription Chapter Sediment
| [in] | i | current index of subbasin |
| [in] | watertype | Lake type (1=local, 2=outlet) |
| [in] | ss_frac | ss fraction of sediment pool depth |
| [in,out] | lakestate | Lake state |
| [out] | resuspup | resuspended substance to suspension in lake water (kg/m2/ts) |
| [out] | resuspdown | flushed substance to be transported downstream (kg/m2/ts) |
| [out] | removedsed | amount of sediment removed from lake sediment pool by flushing (kg/m2/ts) |
Algoritm Initiate resuspension and sediment flush rates to 0 - set to 0 for non-sediment substances
Check if lake information is available and if flushing is possible for this lake/reservoir (set help variables)
Determine whether or not to flush bottom sediments next timestep and then reset bottom sediment age
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::macrophyte_uptake | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| integer, intent(in) | ktop, | ||
| integer, intent(in) | systemtype, | ||
| real, intent(in) | area, | ||
| real, intent(in) | muptNpar, | ||
| real, intent(in) | muptPpar, | ||
| real, intent(in) | halfsatTPwater, | ||
| real, intent(in) | proddeppar, | ||
| real, intent(in) | limpppar, | ||
| type(lakestatetype), intent(inout), optional | lakestate, | ||
| type(riverstatetype), intent(inout), optional | riverstate | ||
| ) |
Calculates macrophyte uptake of IN and SP in surface water.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Macrophyte uptake)
| [in] | i | index of current subbasin |
| [in] | watertype | Lake or river type (1=local, 2=main/outlet) |
| [in] | ktop | Uppermost lake layer |
| [in] | systemtype | aquatic system type (1=lake, 2=river) |
| [in] | area | lake surface area/ river bottom area (m2) |
| [in] | muptnpar | model parameter production rate ON in water |
| [in] | muptppar | model parameter production rate PP in water |
| [in] | halfsattpwater | model parameter half saturation TP (mg/L) |
| [in] | proddeppar | depth above which macrophyte grows (m) |
| [in] | limpppar | (mg/L) |
| [in,out] | lakestate | Lake states |
| [in,out] | riverstate | River states |
Algoritm Pools of nutrients in the water, water temperature and fraction of depth of water volume that is active
Set help variables; water temperature, TPconcentration, and 20-day mean temperature
Temperature dependent factor
Total phosphorus concentration dependent factor
Estimated fraction of lake area above production depth
Macrophyte uptake
New concentration due to changes in lake water pools
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::production_mineralisation | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| integer, intent(in) | ktop, | ||
| integer, intent(in) | systemtype, | ||
| real, intent(in) | area, | ||
| real, intent(in) | prodNpar, | ||
| real, intent(in) | prodPpar, | ||
| real, intent(in) | prodCpar, | ||
| real, intent(in) | prodSipar, | ||
| real, intent(in) | tmpexpSipar, | ||
| real, intent(in) | halfsatTPwater, | ||
| real, intent(in) | limpppar, | ||
| real, intent(in) | plimsipar, | ||
| type(riverstatetype), intent(inout), optional | riverstate, | ||
| type(lakestatetype), intent(inout), optional | lakestate, | ||
| real, intent(in), optional | depth | ||
| ) |
Calculates transformation between IN/ON, SRP/PP and Si/ASi in water. Also simulated algae production (=ON-production) for sediment simulation, and organic carbon mineralisation or production. Simulating the combined processes of primary production and mineralisation. Lake process in whole lake volume for mixed lake, while for layered lake process is only in uppermodel layer ("epilimninon").
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Primary production and mineralization)
| [in] | i | index of current subbasin |
| [in] | watertype | Lake or river type (1=local, 2=main/outlet) |
| [in] | ktop | Uppermost lake layer |
| [in] | systemtype | aquatic system type (1=lake, 2=river) |
| [in] | area | lake surface area/ river bottom area (m2) |
| [in] | prodnpar | model parameter production rate ON in water |
| [in] | prodppar | model parameter production rate PP in water |
| [in] | prodcpar | model parameter production rate OC in water |
| [in] | prodsipar | model parameter production Algal Si |
| [in] | tmpexpsipar | model parameter temperature dependence production Algal Si |
| [in] | halfsattpwater | model parameter half saturation TP (mg/L) |
| [in] | limpppar | limitation of sedimentation parameter (mg/L) |
| [in] | plimsipar | P limitation of Si production parameter (mg/L) |
| [in,out] | riverstate | River states |
| [in,out] | lakestate | Lake states |
| [in] | depth | river depth (m) |
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::river_sedimentation_resuspension | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| real, intent(in) | area, | ||
| real, intent(in) | sedexppar, | ||
| real, intent(in) | riverq, | ||
| real, intent(in) | qbank, | ||
| real, intent(in) | depth, | ||
| real, intent(out) | maxSSconc, | ||
| real, intent(out) | sedresSS, | ||
| type(riverstatetype), intent(inout) | riverstate | ||
| ) |
Calculate sedimentation and resuspension of PP and SS in rivers.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Sedimentation and Resuspension in rivers)
| [in] | i | index of current subbasin |
| [in] | watertype | river type (1=local, 2=main) |
| [in] | area | river surface area (m2) |
| [in] | sedexppar | sedimentation/resuspension parameter |
| [in] | riverq | river discharge (m3/s) |
| [in] | qbank | bank full flow (m3/s) |
| [in] | depth | river depth (m) |
| [out] | maxssconc | river SS maximum transport concentration (mg/L) |
| [out] | sedresss | river sedimentation/resuspension of SS (kg/timestep) |
| [in,out] | riverstate | River states |
Algorithm
Initial check if calculation is to be made
Assess pool of PP and SS in water and sediment
Select current model for river resuspension/sedimentation
For model 0:
Calculate sedimentation and resuspension factor (per day)
Transfer PP and SS between sediment and water pools
For model 2: Simplified Bagnold Equation
Calculate river peak velocity across channel
Calculate amount of sediment (kg) to transfer, and/or amount of PP
Transfer SS between sediment and water pools
Transfer PP between sediment and water pools
Update state variables
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::sediment_fraction | ( | integer, intent(in) | i, |
| integer, intent(in) | watertype, | ||
| type(lakestatetype), intent(in) | lakestate, | ||
| real, intent(out) | ss_frac | ||
| ) |
Calculate fraction of siltation depth that is due to SS.
Reference ModelDescription Chapter Sediment
| [in] | i | current index of subbasin |
| [in] | watertype | Lake type (1=local, 2=outlet) |
| [in] | lakestate | Lake state |
| [out] | ss_frac | fraction of resuspended substance that is SS (-) |
Algoritm
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::sediment_pool_density | ( | integer, intent(in) | watertype, |
| integer, intent(in) | res_mode, | ||
| integer, intent(in) | siltation_option, | ||
| real, intent(in) | age, | ||
| real, intent(in) | frac_clay, | ||
| real, intent(in) | frac_silt, | ||
| real, intent(in) | frac_sand, | ||
| real, intent(out) | density | ||
| ) |
Calculate density of sediment in reservoir sediment pool.
Calculate the density of substance in sediment (SS and AE) with different options: Siltation Option 1: No Compaction + General Density - Use density (kg/m3) of substance (SS or AE) from general parameter in par.txt Siltation Option 2: No Compaction + Density from Soil Fraction & Reservoir Operation - Calculate the density (kg/m3) of substance (SS or AE) from GeoData.txt soil fractions and reservoir operation mode Siltation Option 3: Compaction + Density from Soil Fraction & Reservoir Operation - Calculate the compacted density (kg/m3) of substance (SS or AE) from GeoData.txt soil fractions and reservoir operation mode
Reference ModelDescription Chapter Sediment
| [in] | watertype | Lake type (1=local, 2=outlet) |
| [in] | res_mode | reservoir operation mode (1=sediment always submerged or nearly submerged, 2=normally moderate to considerable reservoir drawdown, 3=reservoir normally empty, 4=riverbed sediments) |
| [in] | siltation_option | siltation density option (1=constant, 2=depentent on soil, 3=compactation depending on soil and age |
| [in] | age | number of timesteps sediment has been compacting |
| [in] | frac_clay | fraction of clay in incoming sediment |
| [in] | frac_silt | fraction of silt in incoming sediment |
| [in] | frac_sand | fraction of sand in incoming sediment |
| [out] | density | new sediment production pool density (kg/m3) |
Here is the caller graph for this function:| subroutine npc_surfacewater_processes::set_flushing_status | ( | integer, intent(in) | mode, |
| integer, intent(in) | frequency, | ||
| real, intent(in) | start, | ||
| real, intent(in) | sstop, | ||
| real, intent(in) | depth, | ||
| real, intent(in) | maxdepth, | ||
| real, intent(in) | SSsedpool, | ||
| real, intent(in) | AEsedpool, | ||
| integer, intent(inout) | sedflush, | ||
| real, intent(inout) | sedage | ||
| ) |
Determine whether or not to flush sediments next timestep and reset sediment age.
| [in] | mode | sediment management mode |
| [in] | frequency | sediment flush frequency |
| [in] | start | sediment flush start |
| [in] | sstop | sediment flush end |
| [in] | depth | current lake depth from threshold |
| [in] | maxdepth | maximum depth from threshold (lake_depth) |
| [in] | sssedpool | SS in sediment |
| [in] | aesedpool | AE in sediment |
| [in,out] | sedflush | lake sediment flush on/off |
| [in,out] | sedage | age of sediment in lake since flushing |
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::substance_processes_in_lake | ( | integer, intent(in) | i, |
| integer, intent(in) | itype, | ||
| real, intent(in) | area, | ||
| type(lakestatetype), intent(inout) | lakestate, | ||
| real, dimension(numsubstances), intent(out) | resuspdown, | ||
| real, intent(out) | pooladd_ts, | ||
| real, intent(out) | pooladd_tn, | ||
| real, intent(out) | pooladd_tp, | ||
| real, intent(out) | pooladd_oc, | ||
| real, intent(out) | pooladd_si, | ||
| real, intent(out) | poolnet_ts | ||
| ) |
Calculate nutrient, organic carbon, silica and sediment processes in lake: denitrification, mineralisation, primary production, macrophyte uptake, sedimentation, and internal load.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Common things in lakes and river, Denitrification, Primary production and mineralization, Sedimentation in lakes and Internal load) and Chapter Organic carbon (River and Lakes)
| [in] | i | index of subbasin |
| [in] | itype | lake type (ilake or olake) |
| [in] | area | lake area (m2) |
| [in,out] | lakestate | Lake state |
| [out] | resuspdown | resuspended substance to be transported downstream (kg?/ts) |
| [out] | pooladd_ts | sediment added to lake bottom sediment pool (SS+AE) (kg) |
| [out] | pooladd_tn | nitrogen added to lake sediment (ON) (kg) |
| [out] | pooladd_tp | phosphorus added to lake sediment (PP) (kg) |
| [out] | pooladd_oc | org. carbon added to lake sediment (OC) (kg) |
| [out] | pooladd_si | silica added to lake sediment (ASi) (kg) |
| [out] | poolnet_ts | net change in bottom sediment in lake (SS+AE) (kg) |
Algorithm
Short notation for parameters dependent on regional corrections, and some more
Layered lake? Find top layer.
Calculate total phosphorous long-term mean
Calculate the nutrient degradation and uptake processes
Calculate the sedimentation and resuspension processes
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::substance_processes_in_river | ( | integer, intent(in) | i, |
| integer, intent(in) | itype, | ||
| real, intent(in) | area, | ||
| real, intent(in) | depth, | ||
| real, intent(in) | transq, | ||
| real, intent(in) | Qbank, | ||
| real, intent(out) | maxSSconc, | ||
| real, intent(out) | sedresSS, | ||
| type(riverstatetype), intent(inout) | riverstate | ||
| ) |
Calculate nutrient, organic carbon, silica and sediment processes in river This include denitrification, mineralisation, primary production, sedimentation, resuspension, and exchange with sediment.
Reference ModelDescription Chapter Nitrogen and phosphorus processes in rivers and lakes (Common things in lakes and river, Denitrification, Primary production and mineralization, and Sedimentation and Resuspension in rivers) and Chapter Organic carbon (River and Lakes - Primary production and mineralization)
| [in] | i | index of current subbasin |
| [in] | itype | river type (local or main) |
| [in] | area | river area (m2) |
| [in] | depth | river depth (m) |
| [in] | transq | flow out of translation box chain (m3/s) |
| [in] | qbank | bank full river flow |
| [out] | maxssconc | river SS maximum transport concentration (mg/L) |
| [out] | sedresss | river sedimentation/resuspension of SS (kg/timestep) |
| [in,out] | riverstate | River states |
Here is the call graph for this function:
Here is the caller graph for this function:| subroutine, public npc_surfacewater_processes::wetland_substance_processes | ( | integer, intent(in) | n, |
| real, intent(in) | area, | ||
| real, intent(in) | vol, | ||
| real, dimension(n), intent(inout) | cvol, | ||
| real, intent(in) | temp5, | ||
| real, intent(in) | temp30, | ||
| real, intent(inout) | fastN, | ||
| real, intent(inout) | fastP, | ||
| real, intent(inout) | humusN, | ||
| real, intent(inout) | humusP, | ||
| real, intent(inout) | partP | ||
| ) |
Calculate processes for substances (N,P,S) in wetland. The processes are nutrient uptake ans sedimentation. It is used for wetlands of iwet and owet type. Retention is limited to 99.9% (sed) and 50% (uptake) of the pool.
Reference ModelDescription Chapter Water management (Constructed wetlands)
| [in] | n | number of substances |
| [in] | area | area of wetland (m2) |
| [in] | vol | volume of wetland (m3) |
| [in,out] | cvol | concentration of wetland volume (mg/l) (before and after wetland processes) |
| [in] | temp5 | temperature (5-day-mean) (degree Celsius) |
| [in] | temp30 | temperature (30-day-mean) (degree Celsius) |
| [in,out] | fastn | immobile fast turnover nitrogen in upper soil layer(kg/km2) |
| [in,out] | fastp | immobile fast turnover phosphorus in upper soil layer (kg/km2) |
| [in,out] | humusn | immobile slow turnover nitrogen in upper soil layer(kg/km2) |
| [in,out] | humusp | immobile slow turnover phosphorus in upper soil layer (kg/km2) |
| [in,out] | partp | immobile particulate phosphorus in upper soil layer (kg/km2) |
Here is the call graph for this function:
Here is the caller graph for this function: