9. Bibliotheksfunktionen

Alle Programmkomponenten besitzen Bibliotheksfunktionen und damit „offene Schnittstellen“, die vom Modellentwickler bei der Integration eigener Modelle in das System genutzt werden können. In den folgenden Tabellen sind diese Funktionen komplett aufgelistet.

Tabelle 9.1‑1: Module 3

Tabelle 9.1‑2: Daten ohne Raumbezug 3

Tabelle 9.1‑3: Raumbezüge 4

Tabelle 9.1‑4: I/O-Routinen 5

Tabelle 9.1‑5: Zeit-Routinen 6

Tabelle 9.1‑6: Ergebnisgrößen der Vertikalprozessebenen 6

Tabelle 9.1‑7: Raumbezüge 7

Tabelle 9.1‑8: EGMO 7

Tabelle 9.1‑9: Gesamtabflussmodul 8

Tabelle 9.1‑10: Abflussbildungsmodul 8

Tabelle 9.1‑11: Direktabflussmodul 9

Tabelle 9.1‑12: Grundwasserabflussmodul 9

Tabelle 9.1‑13: Hydrotopklassen 10

Tabelle 9.1‑14: Gesamtgebiet 10

Tabelle 9.1‑15: Teileinzugsgebiete 11

Tabelle 9.1‑16: Kaskadensegmente 11

Tabelle 9.1‑17: Elementarflächen 12

Tabelle 9.1‑18: Gewässerabschnitte 14

 

Tabelle 9.1‑1: Module

Funktionstyp Name der Funktion Übergabewerte Bedeutung
char* ModulName (int me) Name des Moduls, das der über me (ABI, RD, GW oder Q) definierten Modellebene zugeodnet ist
double ModulDT (int me) Zeitschrittweite dieses Moduls
FILE* FdModul (void) FILE-Pointer auf die Datei MODUL.STE
int ZModulSteuerInfo (char* modulname, char* key, char* zeile) gibt komplette Zeile aus dem über modulname definierten Block zur eigenen Weiterverwendung
int ModulAnswer (char* modulname, char* key) Wertet Ja/Nein-Anworten in der Modulsteuerdatei aus
int IModulSteuerInfo (char* modulname, char* key, int* val) Gibt INT-Wert aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key
int DModulSteuerInfo (char* modulname, char* key, double* val) Gibt Double-Wert aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key
int CModulSteuerInfo (char* modulname, char* key, char* val) GibtZeichenkette aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key
int DummyI1 (int) DummyI1-Routine
int DummyI2 (int, int) DummyI2-Routine

 

Tabelle 9.1‑2: Daten ohne Raumbezug

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int Efl_AnzNutzClass (void) Anzahl der Klassen bzw. Einträge in der Landnutzungstabelle
int Efl_AnzBodClass (void) Anzahl der Klassen bzw. Einträge in der Bodenformentabelle
int AnzBodenSchichten (int i_bod) Anzahl der Schichten im Boden i_bod
int BodenArtInSchicht (int i_bod, int i_schicht) Bodenart boartder über i_schicht festgelegten Bodenschicht
int LagerungsdichteInSchicht (int i_bod, int i_schicht) Lagerungsdichte ld der über i_schicht festgelegten Bodenschicht
int DickeDerSchicht (int i_bod, int i_schicht) Mächtigkeit [mm] der über i_schicht festgelegten Bodenschicht
double* KfWert (int boart, int ld) Kf der Bodenart boart bei einer Lagerungsdichte ld
double* NutzbareFeldkapazitaet (int boart, int ld) nfk der Bodenart boart bei einer Lagerungsdichte ld
double* Sickerwasserkapazitaet (int boart, int ld) lk der Bodenart boart bei einer Lagerungsdichte ld


Tabelle 9.1‑3: Raumbezüge

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int* Raumbezug (int modellebene) Zeiger auf Raumbezug der angebenen Modellebene (z.B. liefert *Raumbezug(ABI) den gewählten Raumbezug für die Modellierung der Abflussbildung)
Mögliche Angaben für Modellebenen sind:
MET – Meteorologie
ABI – Abflussbildung
RD – Direktabflusskonzentration
GW – Grundwasserabflusskonzentration
Q – Gesamt- oder Gewässerabflusskonzentration
int* I_Area (int cover) Zeiger auf das sich aktuell in Bearbeitung befindende Raumelement des angegebenden Covers (z.B. EFL)
Mögliche Angaben für Cover sind:
FGW – Fließgewässersystem
GEB – Gesamtgebiet (PseudoCover)
GWG – Grundwassergebiete (PseudoCover)
TG – Teileinzugsgebiete
KAS – Kaskadensegmente
EFL – Elementarflächen
HYD – Hydrotopklassen (PseudoCover)
FE – Fenite Elemente (PseudoCover – Angabe für Modellebene GW, wenn extern berechnete GW-Zuflüsse dem Gewässernetz zugeordnet werden sollen)
int N_Area (int cover) Anzahl der Raumelemente des angegebenden Covers (z.B. EFL)
int db_raum (char* cover) wandelt Zeichenkette in INT-Wert um (z.B. „EFL“ in EFL)


Tabelle 9.1‑4: I/O-Routinen

Funktionstyp Name der Funktion Übergabewerte Bedeutung
char* ProjectDir (void) Zeichenkette mit kompletten Pfad des Projektverzeichnisses
char* GisDir (void) Zeichenkette mit kompletten Pfad des GIS-Verzeichnisses im Projekt
char* ZeitDir (void) Zeichenkette mit kompletten Pfad zu den Zeitdaten im Projekt
char* ResDir (void) Zeichenkette mit kompletten Pfad zu den Ergebnissen im Projekt
char* ModDir (void) Zeichenkette mit kompletten Pfad zum Modell-Verzeichnis im Projekt (i.A. …ARC_EGMO)
char* Dir2Level (char* dir1level, int 2level) Zeichenkette auf das über 2level angegeben Verzeichnis innerhalb des 1level-Verzeichnisses. Das 1level-Verzeichnis kann z.B. über GisDir() erhalten werden. 2level sollte über eine der folgenden Angaben definiert werden
– DIR_SEL für „Select“
– DIR_DES für „Describe“
– DIR_PAR für „Para“
– DIR_HYD für „Hyd_Data“
– DIR_MET für „Met_Data“
– DIR_GW für „GW_Data“
– DIR_REL für „ASCII.REL“
– DIR_PAT für „ASCII.PAT“
int dprintf (char* format, …) analog printf-Routine in C
void PrintTest (char* format, …) analog printf-Routine in C, aber Ausgabe in die Protokolldatei
int RETURN_ERR (int fehlernummer, char* fehlerbeschreibung“), Ausgabe der Fehlerbeschreibung auf Bildschirm und in die
Protokolldatei und definiertes Programmende mit exit(fehlernummer)


Tabelle 9.1‑5: Zeit-Routinen

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int AktMonat (void) aktuelle Monatsnummer
int YearDay (void) aktuelle Tagesnummer innerhalb des Jahres (1 bis 365)
double Met_DTd (void) Zeitdiskretisierung der meteorologischen Daten [Minuten]
fpos_t Met_n_dtd (void) Anzahl der Berechnungszeitschrittweite
double* DTb (void) aktuelle Berechnungszeitschrittweite [Minuten]
fpos_t N_Minutes (void) Simulationszeitraum in Minuten
fpos_t T_Time (void) aktuelle Zeitschrittnummer

 

Tabelle 9.1‑6: Ergebnisgrößen der Vertikalprozessebenen

Funktionstyp Name der Funktion Übergabewerte Bedeutung
double* Met_KorNiederschlag (void)
double* Met_PotVerdunstung (void) liefert Verweis auf die angegebene Größe
double* Abi_Effektivniederschlag (void) es ist automatisch realisiert, daß die angegebene Größe dem aktuellen Raumelement zugeordnet ist
double* Abi_Grundwasserneubildung (void) (wenn z.B. die Abflussbildung der Elementarfläche 15 berechnet werden soll, wird bei einer Raumgliederung in
double* Abi_HypodermischerAbfluss (void) Teileinzugsgebieten für die Modellebene Meteorologie über Res_KorNiederschlag() der Niederschlag des
double* Abi_Landoberflaechenabfluss (void) Teilgebietes bereitgestellt, in dem sich die Elementarfläche 15 befindet)
double* Abi_RealeVerdunstung (void)
double* Abi_BodenfeuchteAbs (void) Summe aller Bodenkapillarspeicherfüllungen (sofern eine Vertikaluntergliederung erfolgt)
double* Abi_BodenfeuchteDef (void) 1. – Res_BodenfeuchteAbs / Bodenkapillarwasserspeicherkapazität


Tabelle 9.1‑7: Raumbezüge

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int* Rb_id (int rbe, int rb)
double RbAimp (int rbe, int rb) Ermittlung der angegebenen Größe (hier versiegelter Flächenanteil) für den über rbe und rb
double* RbFlaeche (int rbe, int rb) definierten Raumbezug
double RbFliessgewaesserlaenge (int rbe, int rb) * rbe ist Raumbezugstyp (z.B. TG, KAS …)
double RbGefaelle (int rbe, int rb) * rb ist das aktuelle Geometrieelement (z.B. Teilgebiet 15)
double RbRauhigkeit (int rbe, int rb)
double RbX (int rbe, int rb, double* area) Schätzung der X, Y und Z-Koordinaten für den über rbe und rb definierten Raumbezug aus den
double RbY (int rbe, int rb, double* area) Koordinaten der internen Elementarflächen,
double RbHoehe (int rbe, int rb, double* area) * area ist die Fläche des aktuellen Geometrieelement (z.B. Teilgebiet 15) [m**2]

 

Tabelle 9.1‑8: EGMO

Funktionstyp Name der Funktion Übergabewerte Bedeutung
double* Hyd_Gmn (int i_hyd) EGMO-Parameter
double* Hyd_Gmx (int i_hyd) EGMO-Parameter
double* Hyd_Hmx (int i_hyd) EGMO-Parameter
double* Hyd_Hsc (int i_hyd) EGMO-Parameter
double* Hyd_Sna (int i_hyd) EGMO-Parameter
double* Hyd_Snm (int i_hyd) EGMO-Parameter
double* Hyd_WH_D1 (int i_hyd) EGMO-Parameter
double* Hyd_Hlff () EGMO-Parameter


Tabelle 9.1‑9: Gesamtabflussmodul

Funktionstyp Name der Funktion Übergabewerte Bedeutung
double* Q_Abfluss (int rb) s. Name
double* Q_Direktzufluss (int rb) s. Name
double* Q_Eigengebietszufluss (int rb) s. Name
double* Q_Externzufluss (int rb) s. Name
double* Q_Grundwasserzufluss (int rb) s. Name
double* Q_Inhalt (int rb) s. Name
double Q_Input (int rb) s. Name
double* Q_Oberliegerzufluss (int rb) s. Name
double* Q_VorlandInhalt (int rb) s. Name
double* Q_Wasserstand (int rb) s. Name
double* Q_DTakt (void) aktuelle Berechnungszeitschrittweite [Minuten] bei der Gesamtabflussgenerierung

 

Tabelle 9.1‑10: Abflussbildungsmodul

Funktionstyp Name der Funktion Übergabewerte Bedeutung
double* Abi_Interzeptionsfuellung (int rb) Interzeptionsspeicherfüllung für den Raumbezug rb
double* Abi_Muldenspeicherfuellung (int rb) Muldenspeicherfüllung für den Raumbezug rb
double* Abi_Bodenspeicherfuellung (int rb, int nr) Bodensystemwert nr (0 bis 3) für den Raumbezug rb (Systemwert kann in Abhängigkeit vom Modul eine Speicherfüllung oder ein Schichtabstand oder ähnliches sein)
double* Vorgeschichte (void) Meteorologische Vorgeschichte (eingelesener Wert) (0 … 1)
double* ZeitFaktor (void) DTb/Met_DTd
double* ZeitFaktor_Kf (void) Skalierung des Kf-Wertes bei langen Met_DTd (eingelesener Wert) (0 … 1)


Tabelle 9.1‑11: Direktabflussmodul

Funktionstyp Name der Funktion Übergabewerte Bedeutung
double* Rd_Abfluss (int rb) aktueller Inhalt im Element rb
double* Rd_Inhalt (int rb) aktueller Abfluss aus dem Element rb
double* Rd_Oberliegerzufluss (int rb) aktueller Zufluss zum Element rb
double RdFliessweg (int rb) Fließweg [m] bis zum Unterlieger (kann Gewässerabschnitt oder Kaskadensegment sein)
int Find_DT_RdMod () Liefert die aus numerischen Stabilitätsgründen benötigte Zeitdiskretisierung [Minuten]

 

Tabelle 9.1‑12: Grundwasserabflussmodul

Funktionstyp Name der Funktion Übergabewerte Bedeutung
double* Gw_SpeicherInput (int rb, int hyd_typ) dient der Aufsummierung aller Grundwasserneubildungen für den Hydrotoptyp hyd_typ innerhalb des Raumbezugs rb
double* Els_Input (int rb, int els) aktueller Input [mm] des Einzellinearspeichers els im Raumbezug rb
double* Gw_Output (int t_akt, int rb) Summe aller Grundwasserabflüsse (z.B. aller Einzellinearspeicher) des Raumelements rb zum Zeitpunkt t_akt


Tabelle 9.1‑13: Hydrotopklassen

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int* Hyd_Raumbezug () Raumbezugsebene vzw. Cover, auf die sich die Hydrotopeinteilung bezieht, z.B. TG
int Hyd_n_hyd () Gesamtanzahl aller Hydrotopklassen, z.B. in allen TG’s
int Hyd_n_typ () Anzahl der definierten Hydrotoptypen, z.B. Agw oder AW
int* Hyd_Rb (int i_hyd) Raumbezug der Hydrotopklasse i_hyd, z.B. das übergeordnete Teileinzugsgebiet
int* Hyd_id (int i_hyd) ID bzw. laufende Nummer der Hydrotopklasse (1 bis Hyd_n_hyd())
int* Hyd_Typ (int i_hyd) Nummer des Hydrotoptyps (1 bis Hyd_n_typ())
char* Hyd_Name (int i_hyd) Name des Hydrotoptyps (1 bis Hyd_n_typ())
int Hyd_Grundwassernah (int i_hyd) gw_nah=1, gw_fern=0,
double* Hyd_Flaeche (int i_hyd) Fläche der Hydrotopklasse [m**2]
double* Hyd_VersiegelterAnteil (int i_hyd) s. Name
double* Hyd_Interzeptionsspeicherkap (int i_hyd) s. Name
double* Hyd_Muldenspeicherkapazitaet (int i_hyd) s. Name

 

Tabelle 9.1‑14: Gesamtgebiet

Funktionstyp Name der Funktion Übergabewerte Bedeutung
double* Geb_Flaeche (int dummy) Flaeche des Gesamtgebietes [m**2]
double* Geb_hoehe (int dummy) mittlere Höhe [m] (flächengewichtetes Mittel aller Elementarflächenhöhen)
double* Geb_X (int dummy) mittlere X-Koordinate [m] (flächengewichtetes Mittel aller Elementarflächenkoordinaten)
double* Geb_Y (int dummy) mittlere Y-Koordinate [m] (flächengewichtetes Mittel aller Elementarflächenkoordinaten)


Tabelle 9.1‑15: Teileinzugsgebiete

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int Tg_n_tg (void) Anzahl der Teileinzugsgebiete
int* Tg_id (int i_tg) ID des aktuellen Teileinzugsgebietes
double* Tg_Flaeche (int i_tg) Fläche des aktuellen Teileinzugsgebietes
int* Tg_gwg_id (int i_tg) ID des zugeordneten Grundwasserteilgebietes
double* Tg_Fliessgewaesserlaenge (int i_tg) Summe aller Fließgewässerlängen innerhalb des aktuellen Teileinzugsgebietes (entweder Attribut der TG-Tabelle oder intern aus FGW abgeleitet)
int* Tg_GeoId (int i_tg) Verweis auf Geologische Formation
double* Tg_GeoKennwertKf (int i_tg) Verweis auf den sich aus der Geologischen Formation ergebenen Kf-Wert
double* Tg_KumEinzugsgebiet (int i_tg) Kumulatives Einzugsgebiet bis zum Gebietsauslaß des aktuellen Einzugsgebietes
int* Tg_LastFgw (int i_tg) Verweis auf den letzten (untersten) Gewässerabschnitt im aktuellen Teileinzugsgebiet
int* Tg_ulieger (int i_tg) Verweis auf das dem aktuellen Teileinzugsgebiet unterliegende Teileinzugsgebiet

 

Tabelle 9.1‑16: Kaskadensegmente

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int Kas_n_kas (void) Anzahl der Kaskadensegmente
int* Kas_id (int i_kas) ID des aktuellen Kaskadensegments
double* Kas_Flaeche (int i_kas) Fläche [m**2] des aktuellen Kaskadensegments
int* Kas_tg_id (int i_kas) ID des übergeordneten Teileinzugsgebietes
int* Kas_fgw_id (int i_kas) ID des zugeorneten Gewässerabschnittes
int* Kas_gwg_id (int i_kas) ID des zugeorneten Grundwasserteilgebietes
int* Kas_ulieger (int i_kas) ID des UnterliegerKaskadensegments (wenn =0, Entwässerung in Kas_fgw_id)
int Kas_seite (int i_kas) rechts=0, links=1, Zwickel=2


Tabelle 9.1‑17: Elementarflächen

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int Efl_n_efl (void) Anzahl der Elementarflächen
int* Efl_id (int i_efl) ID der aktuellen Elementarfläche i_efl
double* Efl_Flaeche (int i_efl) Fläche [m*2]
int* Efl_tg_id (int i_efl) Verweis auf übergeordnetes Einzugsgebiet
int* Efl_kas_id (int i_efl) Verweis auf übergeordnetes Kaskadensegment
int* Efl_gwg_id (int i_efl) Verweis auf übergeordnetes Grundwassergebiet
int* Efl_hyd_id (int i_efl) Zuordnung zu einem Hydrotoptyp
int Efl_ew_tg (int i_efl) Zuordnung zu einem Entwässerungsteilgebiet bzw. zu einem kanalisierten Teilgebiet
int Efl_halden_id (int i_efl) Zuordnung einer Sonderstruktur
int Efl_boden_id (int i_efl) Verweis auf eine Bodenform
int Efl_lntz_id (int i_efl) Verweis auf eine Landnutzung
int Efl_flurab (int i_efl) Verweis auf einen Grundwasserflurabstand
int Efl_gef (int i_efl) Gefälle [%]
int Efl_expo (int i_efl) Exposition [%]
int Efl_melio (int i_efl) Verweis auf eine Melioration
int Efl_topi_id (int i_efl) Verweis auf einen Topographischen Index
double* Efl_Grundwasserflurabstand_Max (int i_efl) Max. Grundwasserflurabstand (Max. Wert der Relatetabelle)
double* Efl_Grundwasserflurabstand_Rep (int i_efl) Repräsentativer Grundwasserflurabstand (Rep. Wert der Relatetabelle)
double* Efl_Interzeptionskapazitaet (int i_efl) Interzeptionsspeicherkapazität
double* Efl_Bodenmaechtigkeit (int i_efl) Minimum aus max. Wurzeltiefe und Bodenmächtigkeit
double* Efl_KfRepraesentativ (int i_efl) Repräsentativer Kf-Wert
double* Efl_Bedeckungsgrad (int i_efl) Vegetationsbedeckungsgrad
double* Efl_MaxWurzeltiefe (int i_efl) Max. Wurzeltiefe
double* Efl_MinWurzeltiefe (int i_efl) Min. Wurzeltiefe
double* Efl_Muldenspeicherkapazitaet (int i_efl) Muldenspeicherkapazität
double* Efl_NutzbareFeldkapazitaetRep (int i_efl) repräsentative nutzbare Feldkapazität (profilgemittelter Wert)
double* Efl_Rauhigkeit (int i_efl) Oberflächenrauhigkeit (abhängig von Landnutzung)
double* Efl_SickerwasserkapazitaetRep (int i_efl) repräsentative Sickerwasserkapazität (GPV-FK) (profilgemittelter Wert)
double* Efl_TanBeta_Rep (int i_efl) tan(BETA) –> s. Top-Modell
double* Efl_TopAE_Mit (int i_efl) angeschlossenes Einzugsgebiet
double* Efl_TopIndex_Max (int i_efl) max. Top-Index
double* Efl_Versiegelungsgrad (int i_efl) Versieglungsgrad
double* Efl_X (int i_efl) X-Koordinate der Elementarfläche bzw. des Labelpunktes
double* Efl_Y (int i_efl) Y-Koordinate der Elementarfläche bzw. des Labelpunktes
double* Efl_hoehe (int i_efl) Z-Koordinate der Elementarfläche bzw. des Labelpunktes


Tabelle 9.1‑18: Gewässerabschnitte

Funktionstyp Name der Funktion Übergabewerte Bedeutung
int Fgw_n_fgw (void) Anzahl der Gewässerabschnitte
int* Fgw_id (int i_fgw) ID des aktuellen Gewässerabschnittes
double* Fgw_Laenge (int i_fgw) Länge [m] des aktuellen Gewässerabschnittes
int* Fgw_tg_id (int i_fgw) Verweis auf zu- bzw. übergeordnetes Teileinzugsgebiet
int* Fgw_gwg_id (int i_fgw) Verweis auf zu- bzw. übergeordnetes Grundwasserteileinzugsgebiet
int* Fgw_baseflow_id (int i_fgw) Verweis auf BaseFlow-ID
int* Fgw_ulieger (int i_fgw) Verweis auf Unterlieger
int Fgw_typ_id (int i_fgw) Verweis auf Gewässertyp
int Fgw_geo_id (int i_fgw) Verweis auf Geologie
int Fgw_prof_id (int i_fgw) Verweis auf Profildaten
double* Fgw_Eigeneinzugsgebiet (int i_fgw) Eigeneinzugsgebiet [m**2] des Gewässerabschnitts
double* Fgw_KumEinzugsgebiet (int i_fgw) kumulatives Einzugsgebiet [m**2] des Gewässerabschnitts
double* Fgw_Hoehe_o (int i_fgw) Hoehe [m] des unteren Knotes des Gewässerabschnitts
double* Fgw_Hoehe_u (int i_fgw) Hoehe [m] des oberen Knotes des Gewässerabschnitts
Nach oben scrollen