Ich bin neu in Fortran und Codierung im Allgemeinen, also entschuldige ich mich, wenn meine Terminologie nicht korrekt ist.IEEE_UNDERFLOW_FLAG IEEE_DENORMAL in Fortran 77
Ich benutze eine Linux-Maschine mit dem Gfortran-Compiler.
Ich forsche diesen Sommer, der mich einschließt, ein Programm zu erhalten, das in ungefähr 1980 geschrieben wird, das wieder arbeitet. Es ist in Fortran 77 geschrieben. Ich habe den ganzen Code sowie einige Unterlagen darüber.
In seiner aktuellen Form erhalte ich einen "IEEE_UNDERFLOW_FLAG IEEE_DENORMAL" Fehler. Mein erster Gedanke ist, dass dieser Code in einer anderen Umgebung/Architektur entwickelt werden sollte.
Die Dokumentation besagt "Dieses Programm wurde entwickelt, um auf dem HARRIS Computersystem zu laufen. Es kann auch auf einem VAX-System ausgeführt werden, wenn die Variablen mit einfacher Genauigkeit sowohl im Hauptcode als auch im Unterroutinenpaket in doppelt genaue Variablen geändert werden. "
Ich habe versucht, die Variablen mit einfacher Genauigkeit in Variablen mit doppelter Genauigkeit zu ändern habe das falsch gemacht. Wenn das die richtige Sache wäre, wäre jede Einsicht toll.
Ich habe auch versucht, die Codierung mit -std = Legacy und -m32 zu kompilieren. Ich erhalte auch denselben Fehler.
Alle Ratschläge, um mich in die richtige Richtung zu bringen, würden sehr geschätzt werden.
Die Produktion von subnormal ist wahrscheinlich zu erwarten. Es würde kein Problem bei der Wahl des Build-Verfahrens anzeigen. – tim18
Die Anweisung zum Umschalten auf doppelte Genauigkeit kann wichtig sein, da die Eigenschaften von ieee754 single möglicherweise nicht besser als vax sind. – tim18
Gfortran hat Optionen zum automatischen Ersetzen von Single durch Double. Sie sollten die Dokumente lesen, wenn Sie dies berücksichtigen. – tim18