1.3 Programmtechnische Grundprinzipien

1.3.1 Programmstrukturierung
1.3.2 Programmsteuerung
1.3.3 Verzeichnisstruktur
1.3.4 Programmname und Programmstart
1.3.5 Pfade
1.3.6 Programmtestung
1.3.7 Modellvarianten
1.3.8 Zeitschrittwahl für die Kontrollanzeige während Rechnung

Das System ArcEGMO wurde in der Programmiersprache C geschrieben und ist auf PC's unter Windows und auf UNIX-Plattformen lauffähig. In der jetzigen Version ist es in erster Linie als intelligente Toolbox für die Modellierung hydrologischer Prozesse zu sehen. Um die Lauffähigkeit auf verschiedenen Plattformen zu gewährleisten, besitzt ArcEGMO keine Nutzeroberfläche. Das Modell generiert sich weitgehend selbst entsprechend den zur Verfügung stehenden raum- und zeitbezogenen Eingangsdaten. Der auf ein Minimum reduzierte Nutzerdialog findet über Steuerdateien im ASCII-Format statt.

Im Folgenden werden im Sinne einer Übersichtsdarstellung einige grundlegende Prinzipien des Programms ArcEGMO beschrieben. Ausführlichere Beschreibungen werden in den nachfolgenden Kapiteln gegeben.

1.3.1 Programmstrukturierung

ArcEGMO besteht aus einer Reihe von Komponenten, die sich wie folgt bezüglich ihres Inhaltes unterscheiden:

Abbildung 3-1 gibt eine schematische Übersicht über das Programmsystem ArcEGMO. Den Kern bildet das hydrologische Modell, das definiert wird über

Die Verbindung zwischen Ein- und Ausgangsdaten und Modell wird über die folgenden Programmkomponenten realisiert:

Abbildung 3‑1: Übersichtsschema zum Aufbau des Programmsystems

ArcEGMO existiert in zwei unterschiedlichen Programmversionen.

Die Nutzerversion kann angewendet werden für Simulationsrechnungen mit den implementierten Modellvarianten.

Bei Einsatz der Entwicklerversion

Je nach Aufgabenstellung können mit ArcEGMO unterschiedlich komplexe Modelltypen generiert und abgearbeitet werden. Folgende Modelltypen werden derzeit unterstützt bzw. werden z.T. in das Programmsystem integriert:

MET_MOD

Modell zur Flächenübertragung stationsbezogener Klimagrößen, Schließen von Beobachtungslücken etc.

WH_MOD

Modell zur flächendifferenzierten Berechnung des Wasserhaushalts unter Nutzung stations- oder flächenbezogener Klimagrößen (analog MET_MOD)

NA_MOD

Niederschlag-Abfluss-Modell - WH_MOD zzgl. Berechnung der lateralen Mengenströme auf der Erdoberfläche, im Untergrund und im Gewässernetz

BW_MOD

Bewirtschaftungsmodell - erlaubt effektive Betrachtung von interessierenden Ausschnitten des Untersuchungsgebietes, z.B. Variantenrechnungen für Bewirtschaftungsmaßnahmen, betrachtet wird nur noch die Abflusskonzentration im Gewässernetz, Vorgabe von Randbedingungen (mit NA_MOD berechnete Zuflüsse zum Gebietsausschnitt) möglich

1.3.2 Programmsteuerung

Dem Modell und jeder Komponente ist jeweils eine Steuerdatei zugeordnet, die entweder

Zur besseren Unterscheidung der verschiedenen Dateien gibt es verschiedenen Dateitypen, die sich durch ihre Endungen leicht erkennen lassen.

  1. STEuerdateien mit der Endung .ste
  2. Struktur-Definitions-Dateien mit der Endung .sdf

Die Steuerdateien sind aus verschiedenen Informationsblöcken aufgebaut, die nacheinander abgearbeitet werden. Während die Programmsteuerung über die STEeuerdateien erfolgt, wird die Datenstruktur in den StrukturDefinitionsDateien festgelegt (Abbildung 3-2).

Abbildung 3‑2: Struktur des Projektverzeichnisses

Auf die Integration einer Programmoberfläche wurde vorerst verzichtet. 

Jede Steuerdatei setzt sich aus einem oder mehreren Anweisungsblöcken zusammen. Jeweils in der ersten Zeile eines Anweisungsblockes befindet sich ein definiertes und damit obligatorisches Schlüsselwort. Ein Block wird über das Dateiende oder mit einer mit "+" beginnende Abschlusszeile abgeschlossen, die ebenfalls obligatorisch ist und programmintern zur Ermittlung der Anzahl der Anweisungszeilen verwendet wird.

In der Regel beginnt jede Anweisungszeile mit einem definierten Schlüsselwort. Innerhalb des Programms werden Anweisungen über ihre Schlüsselwörter identifiziert. Wird ein Schlüsselwort nicht gefunden, führt das je nach Anweisung zu einem definierten Programmabbruch oder dazu, dass die zugehörige Anweisung nicht ausgeführt wird. In einigen Steuerdateien wird letzteres genutzt, um gezielt bestimmte Optionen ein- oder auszuschalten, indem vor das Schlüsselwort z.B. ein "*" gesetzt wird, was zur Nichtidentifikation dieses Wortes führt. Schlüsselworte sind weitgehend in Klarschrift verfasst, sie lassen also schon direkt auf den Inhalt der zugehörigen Anweisung schließen. Durch Kommentare, die nach der eigentlichen Anweisung folgen und mit "/*" beginnen, sind weitere Erläuterungen zu den einzelnen Anweisungen direkt in die Steuerdateien integriert, so dass vielfach auf eine ausführliche Erläuterung einzelner Anweisungen verzichtet werden kann. Wichtig ist jedoch der Hinweis, dass als Dezimaltrenner der "." in sämtlichen Steuerdateien fungiert.

Das Hauptprogramm ARC_EGMO initialisiert Speicherplatz für die Modellsteuerung und organisiert den Aufruf des abzuarbeitenden Modells. Zu Beginn eines Simulationslaufes wird die Programmsteuerdatei ARC_EGMO.STE (vgl. Abbildung 3.2) eingelesen, die sich im aktuellen Verzeichnis bzw. bei der Arbeit unter Windows im Arbeitsverzeichnis befinden muss.

Innerhalb dieser Steuerdatei werden die folgenden Optionen festgelegt:

#############################################################################

MODELL_VERSION             NA_Mod   /* NA_Mod oder WH_Mod                  */

STARTDATUM                 15  6 88 /* Tag Monat Jahr                      */

STARTZEIT                   1  0

ENDDATUM                   31 12 90 /* Tag Monat Jahr                      */

*ENDZEIT                     1  0

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

STARTWERTE_AUS_SIMULATION? Ja

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PROJEKT                   d:\NA-Modell_ArcEGMO

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

RAUMBEZUEGE_MODELLIERUNG

METEOR                    efl  /* EFL, KAS, TG oder GEB                    */

ABFLUSSBILDUNG            efl  /* EFL, KAS, TG oder GEB                    */

ABFLUSSKONZENTRATION_RD   geb  /*      KAS, TG oder GEB                    */

ABFLUSSKONZENTRATION_GW   geb  /* FE,  KAS, TG oder GEB                    */

GESAMTABFLUSS             fgw  /* FGW,      TG oder GEB                    */

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

RAUMBEZUEGE_ERGEBNISSE                  

METEOR                   efl /* EFL, KAS, TG oder GEB                      */

ABFLUSSBILDUNG           geb /* EFL, KAS, TG, GEB oder HYD                 */

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MODUL_MET                met_mod1 /* met_mod1                              */

MODUL_ABI                efl_mod1 /* efl_mod1 SiWaE, EGMO_WH, EGMO_NA      */

MODUL_RD                 RD_SIMP  /* KINWAVE, RD_SIMP                      */

MODUL_GW                 EGMO_GW  /* EGMO_GW                               */

MODUL_Q                  q_els    /* Q_ELS, FALTUNG                        */

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

BERECHNUNGS_VARIANTE    test1   /* Ergebnisverzeichnis

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Kommentar : beliebiger Kommentar zum Simulationslauf etc.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#############################################################################

Abbildung 3‑3: Programmsteuerdatei ARC_EGMO.STE

So wird in der Hauptsteuerdatei einerseits die Modellversion Niederschlags-Abfluss-Modell (NA_Mod) oder Wasserhaushaltsmodell (WH-Mod) ausgewählt, aber auch der Modellierungszeitraum über Startdatum und Enddatum festgelegt. Dann folgen Verweise auf die Datenbasis (hier z.B. Elementarflächen ⇒ EFL) die dann weiter über die Strukturdefinitionsfiles beschrieben werden (Abbildung 3-3).

1.3.3 Verzeichnisstruktur

Sämtliche für die Modellierung benötigten Daten werden in einem Projektverzeichnis verwaltet, dessen prinzipielle Struktur in den Abbildungen 3-4 und 3-5 dargestellt ist. Der Name des Projektverzeichnisses ist frei wählbar und wird dem Programm innerhalb der Programmsteuerdatei mitgeteilt (s. Kapitel 1.3.2).

Abbildung 3‑4: Struktur des Projektverzeichnisses

Jedes Projektverzeichnis besteht aus den 4 Hauptverzeichnissen

  1. ARC_EGMO, das verschiedene Steuerdateien beinhaltet,
  2. GIS, das die raumbezogenen Daten beinhaltet,
  3. ZEIT.DAT, das die zeitbezogenen Daten beinhaltet und
  4. RESULTS, in das die Modellierungsergebnisse gespeichert werden (Dieser Order wird nach der ersten Berechnung angelegt).

Das GIS-Verzeichnis besteht aus einer Reihe von Unterverzeichnissen, die

Das Verzeichnis ZEIT.DAT besteht aus Unterverzeichnissen, die

Im RESULTS-Verzeichnis werden die Ergebnisse abgelegt,

Abbildung 3‑5: Struktur des Projektverzeichnisses

Die Dateien sind über Verweise miteinander verknüpft. Die Hauptsteuerdatei ist die ArcEGMO.ste. Von dieser werden alle anderen Dateien angesteuert. Daher wird sie auch zum Programmstart (Kapitel 1.3.4) an die Ausführungsdatei (AE_5.exe) übergeben.

1.3.4 Programmname und Programmstart

Der Programmname setzt sich aus "ae_" für ArcEGMO und der Versionsbezeichnung zusammen.

Für das Starten des Programms existieren verschiedene Möglichkeiten.

  1. Doppelklick auf die ae_5.exe (Achten Sie darauf, dass Sie vorher den Pfad in der arc_egmo.ste ändern.)

    oder

  2. Angabe einer Übergabevariablen

Auch hier müssen Sie beachten, dass Sie vorher den Pfad in der arc_egmo.ste geändert haben.

Abbildung 3‑6: Eingabeaufforderung

Beim Starten des Programms wird getestet, ob eine Übergabevariable existiert und diese den Zugriff auf die Hauptsteuerdatei arc_egmo.ste gestattet. Existiert keine Übergabevariable, wird im aktuellen Verzeichnis nach einer Datei arc_egmo.ste gesucht und diese - sofern vorhanden - verwendet.

Schlägt dies fehl, wird getestet, ob die Environment-Variable AE_HOME belegt ist. Ist dies der Fall, wird vorausgesetzt, dass diese Variable den kompletten Pfad bis zum aktuellen Projekt enthält. Im Unterverzeichnis ARC_EGMO wird dann die Hauptsteuerdatei arc_egmo.ste geladen und die normale Abarbeitung beginnt. Ist die Environment-Variable AE_HOME nicht belegt, wird das Programm beendet, da dann die Hauptsteuerdatei arc_egmo.ste nicht geladen werden kann.

1.3.5 Pfade

Über das Steuerwort PROJEKT in der ARC_EGMO.STE wird der Projektpfad mit dem entsprechendem Laufwerksbuchstaben festgelegt. Neben dem Projektverzeichnis können über die Schlüsselwörter GIS_VERZEICHNIS und RESULT_VERZEICHNIS auch separate Verzeichnisse für die raumbezogenen Eingangsdaten (GIS) und die Ergebnisse (Results) angegeben werden und diese somit getrennt von den weiteren Projektdaten gehalten werden.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PROJEKT                   d:\NA-Modell_ArcEGMO

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Abbildung 3‑7: Auszug aus der ARC_EGMO.STE

Die Pfade für das PROJEKT, GIS_VERZEICHNIS und RESULT_VERZEICHNIS können aber auch über eine PFADE.STE angegeben werden.

Dazu muss in der ARC_EGMO.STE die Steuerdatei Pfade anstelle des Projektpfades angegeben werden. Dies erfolgt über den Eintrag des Wortes Datei (siehe Abbildung 3-8).

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PROJEKT                   Datei

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Abbildung 3‑8: Verweis auf die PFADE.STE in der ARC_EGMO.ste

 

In der PFADE.STE, die im ARC_EGMO Verzeichnis stehen muss, können andere Pfade als die Standardpfade angegeben werden.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PROJEKT                   d:\NA-Modell_ArcEGMO

GIS_VERZEICHNIS           d:\NA-Modell_ArcEGMO\GIS

RESULT_VERZEICHNIS        d:\NA-Modell_ArcEGMO

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Abbildung 3‑9: PFADE.STE

In der PFADE.STE können aber keine Pfade für die Zeit-Daten verwaltet werden.

Die Angabe von Unterverzeichnissen oder Verweise auf andere Speicherorte bei den Zeit-Daten kann in den DESCRIBE-Dateien für die Zeit-Daten vorgenommen werden. Der Pfad des Unterverzeichnisses muss mit \ beginnen und enden. Es wird dann der angegebene Pfad aus der ARC_EGMO.STE mit dem Pfad des Unterverzeichnisses verkettet. Soll ein Verweis auf einen Ordner außerhalb der ArcEGMO-Struktur erfolgen muss der gesamte Pfad angegeben werden. Der folgende Auszug aus der MET_DATA.SDF zeigt die drei verschieden Möglichkeiten (Standard, Unterverzeichnis und Verweis) der Pfadangabe bei den Zeit-Daten.

######Meteorologie  ##################################################

MET_DATEN                ASCII

*MET_DATEN               ASCII    \stundenwerte\

*MET_DATEN               ASCII    D:\NA-Modell_ArcEGMO\met_data\stundenwerte\

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Abbildung 3‑10: Auszug aus der MET_DATA.SDF

Bei den DESCRIBE-Dateien für die GIS-Daten kann ebenfalls auf diese Weise ein Unterverzeichnis, aber kein Verweis angegeben werden.

1.3.6 Programmtestung

Durch den Eintrag des Schlüsselwortes TESTDRUCK in einer Steuer- oder DESCRIBE-Datei wird zu Prüfzwecken eine detaillierte Protokollierung in der Datei ARC_EGMO.TXT für die betreffende Programmkomponente aktiviert (z.B. von eingelesenen Werten wie Systemzustandsvariablen).

1.3.7 Modellvarianten

Über den Block STEUERDATEIEN in die Datei ARC_EGMO.STE besteht die Möglichkeit, verschiedene Modellvarianten (Daten, Steuerparameter etc.) zentral über Änderungen in einer Datei zu aktivieren. Der folgende Dateiauszug zeigt diesen Steuerblock mit den möglichen Schlüsselwörtern. Die Einträge ELEMENTARFLAECHEN bis ZEITFUNKTIONEN verweisen auf die Definitionsdateien im Verzeichnis GIS\DESCRIBE (.sdf wird programmintern ergänzt), während die Einträge METEOROLOGIE_DATEN bis ERGEBNISSE auf Steuerdateien im Verzeichnis ARC_EGMO verweisen (.ste wird programmintern ergänzt). Wird ein Schlüsselwort nicht gefunden, weil es nicht angegeben ist oder auskommentiert wurde, wird auf die bisherigen Standarddateien (sdf bzw. ste) zugegriffen.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

STEUERDATEIEN

ELEMENTARFLAECHEN                 EFL   /*  */

*KASKADENSEGMENTE                 

TEILEINZUGSGEBIETE                TG    /* oberirdisches Einzugsgebiet */

FLIESSGEWAESSER                    FGW  /* FGW des oberird. Einzugsgebietes */

*GEWAESSERPUNKTE                   GWP   /* Flughafen ueber Bauernsee */

*ELEMENTARFLAECHENKLASSIFIZIERUNG  EFL_HYD    

*HYDROTOPKLASSENZUORDNUNG          HYD

*ZEITFUNKTIONEN                    ZF_ohne    /* ohne Zeitfunktionen */

*METEOROLOGIE_DATEN                met   /* Test-Stationsreihen */

*METEOROLOGIE_DATEN                meteor     /* Stationsreihen */

*HYDROLOGIE_DATEN

BEWIRTSCHAFTUNGSDATEN             bw_data_mit /* mit Nutzungseinfluessen */

MODULSTEUERUNG                     modul      /*  */

ERGEBNISSE                         results    /* Ergebnisdatei für Langzeitsimulation */

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Abbildung 3‑11: Auszug aus der Steuerdatei

1.3.8 Zeitschrittwahl für die Kontrollanzeige während der Rechnung

In die arc_egmo.ste wurde ein weiteres Schlüsselwort integriert, mit dem die während der Rechnung durchlaufende Kontrollanzeige modifiziert werden kann.

arc_egmo.ste

Kontrolldruck       1      /* default - eine Ausgabe pro Jahr */

                    0      /*         - eine Ausgabe pro Tag bzw. pro Zeitschritt */

Abbildung 3‑12: Kontrollanzeige



[2] zur Integration vorgesehen - dient der Berücksichtigung von besonderen Punkten im Gewässernetz (Speicher, Hochwasserrückhaltebecken, Seen, Wehre etc.)

[3] Die Endzeit wird nur benötigt, wenn der Berechnungszeitschritt kleiner 24 h ist und der Simulationszeitraum nicht um 24 Uhr endet.