Functions/Subroutines | |
subroutine, public | initiate_river_substance_state (config, riverstate) |
subroutine, public | initiate_lake_substance_state (config, lakestate) |
subroutine, public | add_deposition_to_lake_as_load (i, iluse, pooltype, veg, areaij, sourcedry, lakestate) |
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, systemtype, area, denpar, halfsatINwater, riverstate, lakestate) |
subroutine | production_mineralisation (i, watertype, systemtype, area, prodNpar, prodPpar, prodSipar, tmpexpSipar, halfsatTPwater, limpppar, plimsipar, riverstate, lakestate, depth) |
subroutine | macrophyte_uptake (i, watertype, systemtype, area, muptNpar, muptPpar, halfsatTPwater, proddeppar, limpppar, lakestate, riverstate) |
subroutine | lake_sedimentation (i, substance, watertype, sedrate, limsedpar, 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_tpmean (i, watertype, lakestate) |
subroutine | calculate_river_tpmean (i, watertype, riverstate) |
subroutine | internal_lake_load (i, watertype, systemtype, area, lakestate) |
subroutine | oc_production_mineralisation (systemtype, area, prodpar, halfsatTPwater, limpppar, water, conc, watertemp, waterTPmean, temp10, temp20, depth) |
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_riverwetland_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) | iluse, | ||
integer, intent(in) | pooltype, | ||
integer, intent(in) | veg, | ||
real, intent(in) | areaij, | ||
real, dimension(numsubstances), intent(out) | sourcedry, | ||
type(lakestatetype), intent(inout) | lakestate | ||
) |
Calculate atmospheric deposition of N and P 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] | iluse | index of land use |
[in] | pooltype | laketype: 1=ilake, 2=olake |
[in] | veg | vegetation index |
[in] | areaij | classarea (km2) |
[out] | sourcedry | dry deposition (kg/timestep) |
[in,out] | lakestate | Lake state |
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 N and P 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 Inorg-N and PartP/SoluteP to river watercourse compartments
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
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) |
subroutine npc_surfacewater_processes::calculate_lake_tpmean | ( | integer, intent(in) | i, |
integer, intent(in) | watertype, | ||
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,out] | lakestate | Lake state |
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 |
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 river wetland constructed for nutrient removal.
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) |
subroutine npc_surfacewater_processes::calculate_riverwetland_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. 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) |
subroutine npc_surfacewater_processes::denitrification_water | ( | integer, intent(in) | i, |
integer, intent(in) | watertype, | ||
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] | systemtype | aquatic system type (1=lake, 2=river) |
[in] | area | lake surface area/river bottom area (m2) |
[in] | denpar | model parameter denitrification rate (kg/m2/day) |
[in] | halfsatinwater | model parameter half saturation IN (mg/L) |
[in,out] | riverstate | River states |
[in,out] | lakestate | Lake states |
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. Concentration in.
Consequences Module hypevariables variable slowlakeini may be allocated and set.
[in] | config | state file configuration |
[in,out] | lakestate | Lake states |
subroutine, public npc_surfacewater_processes::initiate_river_substance_state | ( | type(stateconfigurationtype), intent(in) | config, |
type(riverstatetype), intent(inout) | riverstate | ||
) |
Initiation river variables for nutrients and organic carbon simulations. Concentration (mg/L)
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
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
subroutine npc_surfacewater_processes::lake_sedimentation | ( | integer, intent(in) | i, |
integer, intent(in) | substance, | ||
integer, intent(in) | watertype, | ||
real, intent(in) | sedrate, | ||
real, intent(in) | limsedpar, | ||
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/Resuspension) 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] | sedrate | sedimentation rate (lakes) (m/ts) |
[in] | limsedpar | concentration limit for sedimentation (mg/L) |
[in,out] | lakestate | Lake state |
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
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
subroutine npc_surfacewater_processes::macrophyte_uptake | ( | integer, intent(in) | i, |
integer, intent(in) | watertype, | ||
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/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] | 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 |
subroutine npc_surfacewater_processes::oc_production_mineralisation | ( | integer, intent(in) | systemtype, |
real, intent(in) | area, | ||
real, intent(in) | prodpar, | ||
real, intent(in) | halfsatTPwater, | ||
real, intent(in) | limpppar, | ||
real, intent(in) | water, | ||
real, intent(inout) | conc, | ||
real, intent(in) | watertemp, | ||
real, intent(in) | waterTPmean, | ||
real, intent(in) | temp10, | ||
real, intent(in) | temp20, | ||
real, intent(in), optional | depth | ||
) |
Calculates transformation between OC/DIC in water Simulating the combined processes of primary production and mineralisation.
Reference ModelDescription Organic carbon (River and lakes - Primary production and mineralization)
[in] | systemtype | aquatic system type (1=lake, 2=river) |
[in] | area | lake surface area/ river bottom area (m2) |
[in] | prodpar | model parameter production rate OC in water |
[in] | halfsattpwater | model parameter half saturation TP (mg/L) |
[in] | limpppar | limitation of sedimentation parameter (mg/L) |
[in] | water | river or lake water (mm or m3) |
[in,out] | conc | OC concentration of river or lake |
[in] | watertemp | water temperature |
[in] | watertpmean | water TP mean |
[in] | temp10 | 10-day water temperature |
[in] | temp20 | 20-day water temperature |
[in] | depth | river depth (m) |
Algorithm
Calculate pools of organic carbon in the water, water temperature and fraction of depth of water volume that is active
Calculate dependency factors (Tot-P and temperature)
Calculate production/mineralisation of organic carbon
Set new concentration due to changes in pools
subroutine npc_surfacewater_processes::production_mineralisation | ( | integer, intent(in) | i, |
integer, intent(in) | watertype, | ||
integer, intent(in) | systemtype, | ||
real, intent(in) | area, | ||
real, intent(in) | prodNpar, | ||
real, intent(in) | prodPpar, | ||
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 and SRP/PP in water. Also simulated algae production (=ON-production) for sediment simulation. Simulating the combined processes of primary production and mineralisation. Lake process in whole lake volume.
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] | 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] | 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) |
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/Resuspension)
[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
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
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) |
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 |
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, 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/Resuspension 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
Calculate the nutrient degradation and uptake processes
Calculate the sedimentation and resuspension processes
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, 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/Resuspension) 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 |
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 in wetland. Retention is limited to 99.9% (sed) or 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) |