Zum Inhaltsverzeichnis
Zurück zum Anhang A
B Implementierung der Programme
Die Programme TRACKFIT und SED sind VAX-FORTRAN Programme. Als Libraries
stehen BOS [Bl 87], CERN-Library [CE
89a], GKS [En 87], GEANT [Br
84] und eigene Libraries der SINDRUM Gruppe zur Verfügung. In
diesem Kapitel soll der Aufbau der beiden Programme durch Aufrufdiagramme
und Nassi-Shneidermann Diagramme dargestellt werden. Bei den Aufrufdiagrammen
werden die Routinen aus GKS und GEANT nicht einzeln aufgeführt, sondern
nur als Paket. GKS_2 sind eigene Routinen, die GKS-Routinen leicht erweitern.
Auch sie werden nicht einzeln aufgeführt. Selbst mit diesen Kürzungen
wäre das Aufrufdiagramm noch zu umfangreich, deshalb wurden einige
Routinen im Hauptdiagramm als Unterprogramme eingetragen und anschließend
in eigenen Diagrammen aufgeführt. Es werden auch Unterroutinen aufgeführt,
die so nicht existieren. Die bereits erwähnten: GKS, GKS_2 und GEANT
und außerdem als weitere Zusammenfassung dieser und anderer Graphikroutinen:
GRAPHIK. Solche Pseudoroutinen sind in Großbuchstaben geschrieben,
alle anderen klein. GRAPHIK ist als Unterprogramm, als eigenes Diagramm,
aufgeführt, die anderen Pseudoroutinen nicht.
(a)
(b)
(c)
Abb. B.1. Die verschiedenen Arten von Routinen. (a) der Aufruf einer normalen
Routine. Falls sie weitere Routinen aufruft, sind diese eingetragen. (b)
der Aufruf einer Routine, die später als eigenes Unterprogramm aufgeführt
wird. (c) Aufruf einer Pseudoroutine (s.Text)
B.1 Trackfit (incl. FILL_MARK)
Das Programm TRACKFIT.FOR ist kein eigenständiges Programm. Es enthält
mehrere Routinen, die aus anderen Modulen aufgerufen werden können.
Als BATCH-Programm werden von MAINFRAME.FOR die Routinen init_trackfit,
trackfit und trackfit_last aufgerufen. Aus dem SED wird fit aufgerufen.
Da fill_mark auch vom SED benutzt wird und deshalb als eigenes Programm
FILL_MARK.FOR existiert, ist es hier als Unterprogramm aufgeführt.
Die Routinen read_eventstructure und fill_mark sind auch als Nassi-Shneidermann-Diagramme
dargestellt.
Abb. B.2. Die aus anderen Programmen aufrufbaren Routinen aus TRACKFIT.FOR
und FILL_MARK.FOR
Abb. B.3. Die Unterroutine calculate_track_dft aus TRACKFIT.FOR
Abb. B.4. Algorithmus der Hauptroutine trackfit
Abb. B.5. Algorithmus der Einleseroutine read_event-structure des TRACKFIT.
Abb. B.6. Ablaufdiagramm der Routine prepare_combination
Abb. B.7. Die Routine fill_mark
Abb. B.8. Der Teil der Routine fill_mark, der im vorigen Diagramm als fill_mark_cseg
bezeichnet ist.
B.2 SED
SED.FOR enthält im Gegensatz zu TRACKFIT.FOR seine eigene Startroutine.
Dieser ruft sed_main auf. Die hier dargestellten Routinen sind teilweise
in SED_RUMPF.FOR enthalten. Der Grund zur Teilung des Quellcodes ist, Zeit
beim Compilieren zu sparen. Deshalb wird hier auch nicht zwischen den beiden
unterschieden. Die Routinen fit und FILL_MARK sind im vorigen Unterkapitel
beschrieben.
Abb. B.9.a 1.Teil des Aufrufdiagramms von sed_main
Abb. B.9.b 2.Teil des Aufrufdiagramms von sed_main
Abb. B.9.c 3.Teil des Aufrufdiagramms von sed_main
Abb. B.10. Der erste Teil der von sed_main aufgerufenen Routinen.
Abb. B.11. Der zweite Teil der von sed_main aufgerufenen Routinen.
Abb. B.12. Die Graphikroutinen des SED zusammengefaßt zur Pseudoroutine
GRAPHIK. Die hier vorkommenden Pseudoroutinen GKS, GKS_2 und GEANT werden
nicht weiter behandelt.
Weiter zum Anhang C
Zum Inhaltsverzeichnis