Ekliger Fehler. Ich habe ein paar ganz harmlose Zeilen in ein Programm eingefügt und es lief nicht mehr. Daraufhin habe ich die Zeilen übersprungen (einfach Goto davor gesetzt). Es änderte sich aber nichts. Es lief nicht mehr.
Die Ursache liegt in einem Compilerfehler im Zusammenhang mit der Speicherverwaltung der Variablen. Muss ein sehr sporadisches Problem sein. Sonst wäre mir das schon viel früher aufgefallen.
Die Umgehung geht folgendermaßen:
1) Alle nicht explizit deklarierten Variablen deklarieren. Für die Übersichtlichkeit ist es geraten, die neuen Deklarationen in einem eigenen Block zusammenzufassen.
2) Allen deklarierten Variablen, die nicht in der Dummy-Argument-Liste oder in einem Common vorkommen, einen Anfangswert zuweisen.
1) allein genügt nicht. Danach lief bei mir ein Programm nicht mehr, das vorher noch einwandfrei lief.
Um die undefinierten Variablen zu finden, kann man sich eines kleinen Tricks bedienen: Man kommentiert alle implicit-Anweisungen aus, läßt sie aber im Programm.Sonst weiß man nachher nicht mehr, welchen Typ die Variablen vorher hatten. Dann macht man eine neue Anweisung rein:
implicit logical (a-z) oder
implicit logical (a-z,$), je nachdem, ob man das $-Zeichen erlaubt hat, oder nicht.
Wenn man jetzt übersetzt, dann bekommt man Fehlermeldungen für praktisch alle undeklarierten Variablen.
Man muß allerdings noch auf Variablen achten, die in Common oder in der Dummy-Argument-Liste liegen. Werden diese nur weitergereicht und waren sie vorher nicht deklariert, dann haben sie jetzt unter Umständen den falschen Variablentyp "Logical".
cottonwood (10.878) 164x Beste Antwort 272x "Danke"
|