EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

ftnchek – Online in der Cloud

Führen Sie ftnchek im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl ftnchek, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


ftnchek – Programmprüfer für Fortran 77

ZUSAMMENFASSUNG


ftnchek [ -Argumente[=Liste] ] [ -Array[=Liste]]
[ -[nicht]kurz ] [ -calltree[=Liste] ] [ -[nicht]aus der Ferne überprüfen ]
[ -Säulen[=num] ] [ -gemeinsam[=Liste]]
[ -[nicht]Querverweis[=Liste] ] [ -[nicht]erklären ]
[ -[nicht]Teilung ] [ -Fehler[=num] ] [ -[nicht]extern ]
[ -[nicht]f77[=Liste] ] [ -[nicht]f90[=Liste]]
[ -[nicht]f95[=Liste] ] [ -[nicht]Hilfe ]
[ -[nicht]Bezeichner-Zeichen[=Liste] ] [ -einschließen=str ]
[ -intrinsisch[=Liste] ] [ -[nicht]Bibliothek ] [ -[nicht]Liste ]
[ -makedcls[=Liste] ] [ -mkhtml[=Liste]]
[ -[nicht]Anfänger ] [ -Ausgabe=str ]
[ -Zeigergröße[=num] ] [ -[nicht]Portabilität[=Liste]]
[ -[nicht]ziemlich[=Liste] ] [ -Projekt[=Liste]]
[ -[nicht]auch ] [ -[nicht]ruhig ] [ -[nicht]Referenz ]
[ -[nicht]RESSOURCEN ] [ -[nicht]sixchar ] [ -[nicht]sortieren ]
[ -source[=Liste] ] [ Stil[=Liste] ] [ -[nicht]Symtab ]
[ -[nicht]Kürzung[=Liste] ] [ -Verwendungszweck[=Liste]]
[ -[nicht]vcg ] [ -[nicht]Version ] [ -[nicht]flüchtig ]
[ -Wortgröße[=num] ] [ -wickeln[=num] ] [ Dateien ... ]

BESCHREIBUNG


ftnchek (kurz für Fortran Checker) dient dazu, bestimmte Fehler in einem Fortran zu erkennen
Programm, das ein Compiler normalerweise nicht kann. ftnchek dient nicht in erster Linie der Erkennung
Syntaxfehler. Sein Zweck besteht darin, den Benutzer beim Auffinden semantischer Fehler zu unterstützen. Semantisch
Fehler sind in der Fortran-Sprache zulässig, aber verschwenderisch oder können zu Fehlern führen
Betrieb. Beispielsweise können Variablen, die nie verwendet werden, auf eine Auslassung in der Variablen hinweisen
Programm; Nicht initialisierte Variablen enthalten Müll, der zu falschen Ergebnissen führen kann
berechnet; und Variablen, die nicht deklariert sind, haben möglicherweise nicht den beabsichtigten Typ. ftnchek
soll Benutzer beim Debuggen ihres Fortran-Programms unterstützen. Es ist nicht beabsichtigt
um alle Syntaxfehler abzufangen. Dies ist die Funktion des Compilers. Vor der Verwendung
ftnchek, sollte der Benutzer überprüfen, ob das Programm korrekt kompiliert wird.

In diesem Dokument wird zunächst die Vorgehensweise zum Aufrufen zusammengefasst ftnchek. Dieser Abschnitt sollte vorher gelesen werden
beginnen zu verwenden ftnchek. Spätere Abschnitte beschreiben ftnchekWeitere Informationen zu den Optionen finden Sie hier
ein Anwendungsbeispiel und erklären Sie, wie die Ausgabe zu interpretieren ist. Die letzten Abschnitte
Erwähnen Sie die Einschränkungen und bekannten Fehler in ftnchek.

AUFRUFEN FTNCHEK


ftnchek wird durch einen Befehl der Form aufgerufen:

$ ftnchek [-option -option ...] Dateiname [Dateiname ...]

Die Klammern weisen auf etwas hin, das optional ist. Die Klammern selbst sind es nicht
tatsächlich getippt. Hier sind Optionen Befehlszeilenschalter oder Einstellungen, die das steuern
Bedienung des Programms und die Menge der ausgedruckten Informationen. Wenn nein
Wenn die Option angegeben ist, besteht die Standardaktion darin, Fehlermeldungen, Warnungen usw. zu drucken
Informationsmeldungen, jedoch nicht die Programmliste oder Symboltabellen.

Jede Option beginnt mit dem Zeichen „-“. (Auf VAX/VMS- oder MS-DOS-Systemen können Sie verwenden
entweder „/“ oder „-“.) Aus Gründen der Konformität mit einer zunehmend verbreiteten Konvention
Optionen können auch mit „--“ beginnen. Die Optionen werden im Folgenden ausführlicher beschrieben
.

ftnchek Optionen lassen sich in zwei Kategorien einteilen: Schalter, die entweder wahr oder falsch sind, und
Einstellungen, die einen numerischen oder Zeichenfolgenwert haben. Dem Namen eines Schalters wird „no“ vorangestellt.
oder „Nein-“, um es auszuschalten: z. B -nicht rein würde die Warnungen vor unreinen Funktionen ausschalten.
Das Präfix „Nein“ kann auch bei numerischen Einstellungen verwendet werden, was den Effekt einer Deaktivierung hat
die entsprechenden Warnhinweise. Einstellungen, die Warnlisten steuern, haben eine spezielle Syntax
nachfolgend diskutiert. Nur die ersten 3 Zeichen eines Optionsnamens (ohne das „-“)
bereitgestellt werden müssen. Anstelle eines Gleichheitszeichens kann für Zahlen oder Zeichenfolgen ein Doppelpunkt verwendet werden
Aufgaben festlegen; Im Folgenden zeigen wir jedoch nur die Gleichheitszeichenform.

Die Schalter und Einstellungen welche ftnchek Die aktuell erkannten Funktionen sind unten aufgeführt. Für jede
Option, der Standardwert ist der verwendete Wert, wenn die Option nicht explizit angegeben wird, während die
turn-on ist der Wert, der verwendet wird, wenn die Option angegeben wird, ohne ihr einen Wert zuzuweisen.

-Argumente=Liste
Kontrollieren Sie Warnungen über Nichtübereinstimmungen von Unterprogrammtypen und Argumenten. Standard = Einschalten
= alle.

-array=Liste
Kontrollieren Sie Warnungen bei der Überprüfung von Array-Argumenten von Unterprogrammen. Standard = Einschalten =
alle.

-knapp Verwenden Sie für einige Fehlermeldungen ein kürzeres Format. Standard = Nein.

-calltree=Liste
Erstellen Sie eine Unterprogramm-Aufrufhierarchie in einem von drei Formaten: Text-Aufrufbaum, Who-Calls-
wer und VCG. Standard = keine, aktiviert = Baum, Prune, Sortierung.

Besitzt das -mkhtml Option wird aufgerufen und tree ist die angewendete Calltree-Option, eine Datei
Es wird eine Datei mit dem Namen CallTree.html erstellt, die den Baum im HTML-Format darstellt.

-prüfen Führen Sie eine Überprüfung durch. Standard = ja.

-columns=num
Stellen Sie die maximale Zeilenlänge auf ein num Säulen. (Darüber hinaus wird ignoriert.) Turn-on = max =
132. Standard = 72.

-common=Liste
Legen Sie den Grad der Strenge bei der Prüfung von COMMON-Blöcken fest. Standard = Einschalten = alle.

-crossref=Liste
Drucken Sie eine Querverweisliste der Unterprogrammaufrufe, der Labelverwendung und/oder des COMMON-Blocks
verwenden. Standard = keine.

-erklären
Gibt eine Liste aller Bezeichner aus, deren Datentyp nicht explizit deklariert ist. Standard
= nein.

-Teilung
Warnen Sie überall dort, wo eine Division durchgeführt wird (außer Division durch eine Konstante). Standard = Nein.

-errors=num
Legen Sie die maximale Anzahl von Fehlermeldungen pro Kaskade fest. Standard = Einschalten = 3.

-extern
Warnen Sie, wenn aufgerufene externe Unterprogramme nie definiert werden. Standard = ja.

-f77=Liste
Kontrollieren Sie spezifische Warnungen zu unterstützten Erweiterungen des Fortran 77-Standards.
Standard = keine, eingeschaltet = alle.

-f90=Liste
Kontrollieren Sie spezifische Warnungen zu unterstützten Erweiterungen des Fortran 77-Standards
die nicht als Teil des Fortran 90-Standards übernommen wurden. Standard = keine, einschalten
= alle.

-f95=Liste
Kontrollieren Sie spezifische Warnungen zu Standardfunktionen von Fortran 77, die gelöscht wurden
der Fortran 95-Standard. Standard = keine, eingeschaltet = alle.

-Hilfe Befehlszusammenfassung drucken. Standard = Nein.

-identifier-chars=Liste
Definieren Sie nicht-alphanumerische Zeichen, die in Bezeichnern verwendet werden können. Standard =
Einschalten = Dollarzeichen und Unterstrich.

-einschließen=Weg
Definieren Sie ein Verzeichnis, in dem nach INCLUDE-Dateien gesucht werden soll, bevor Sie im gesamten System suchen
Verzeichnis. Kumulativ. Standard = Einschalten = keine.

-intrinsisch=Liste
Kontrollieren Sie die Behandlung nicht standardmäßiger intrinsischer Funktionen. Standard = alle außer usw. für
Unix-Version, alle außer Unix für die VMS-Version, alle außer Unix und usw. für andere
Versionen. Einschalten = alle.

-Bibliothek
Bibliotheksmodus starten: Keine Warnung vor definierten Unterprogrammen in der Datei
nie benutzt. Standard = Nein.

-Liste Quellenliste des Programms drucken. Standard = Nein.

-makedcls=Liste
Bereiten Sie eine Datei mit Erklärungen vor. Der Liste gibt Optionen für das Format an
Datei. Standard = keine, eingeschaltet = Deklarationen.

-mkhtml=Liste
Erstellen Sie individuelle HTML-Dokumentdateien aus ftnchek-Analysen und Codekommentaren.
Normalerweise möchten Sie auch angeben -call=Baum um die Stamm-HTML-Datei zu erstellen
CallTree.html. Standard = keine, aktiviert = Dokumente.

-Anfänger
Geben Sie eine Ausgabe, die für Anfänger geeignet ist. Standard = ja.

-Ausgabe=Dateinamen
Ausgabe an die angegebene Datei senden. Standardmäßig und aktiviert sendet die Ausgabe an den Bildschirm.
(Die Standarddateinamenerweiterung ist .lis).

-pointersize=num
Legen Sie die Größe der „Cray-Zeiger“-Variablen fest auf num Bytes. Min. = 1, Max. = 16.
Standard = Einschalten = 4

-Portabilität=Liste
Warnung vor nicht tragbarer Nutzung. Standard = keine, eingeschaltet = alle.

-hübsch=Liste
Geben Sie Warnungen vor möglicherweise irreführender Darstellung des Quellcodes aus. Standard = Turn-
on = alle.

-Projekt=Liste
Projektdatei erstellen (siehe Erklärung unten). Standard = Nein.

-rein Gehen Sie davon aus, dass die Funktionen rein sind, also keine Nebenwirkungen haben. Standard = ja.

-ruhig Erzeugen Sie eine weniger ausführliche Ausgabe. Standard = Nein.

-Referenz
Drucken Sie eine Tabelle der Unterprogramme, auf die jedes Unterprogramm verweist. Standard = Nein.

-Ressourcen
Gibt die Menge der für die Analyse des Programms verwendeten Ressourcen aus. Standard = Nein.

-sixchar
Listen Sie alle Variablennamen auf, die bei einer Länge von 6 Zeichen kollidieren. Standard = Nein.

-Sortieren Drucken Sie die Liste der Unterprogramme sortiert nach der erforderlichen Reihenfolge. Standard = Nein.

-Quelle=Liste
Wählen Sie Quellformatierungsoptionen aus: festes oder freies Format, DEC Fortran-Tabulatorformat
Zeilen, INCLUDE-Anweisung im VMS-Stil, Backslash-Escape-Sequenzen im UNIX-Stil und
implizite Typisierung von Parametern. Standard = keine, eingeschaltet = alle.

-Stil=Liste
Erstellen Sie besonders wählerische Warnungen vor veralteter oder altmodischer Programmierung
Konstruktionen. Standard = keine, eingeschaltet = alle.

-symtab
Symboltabelle und Beschriftungstabelle für jedes Unterprogramm drucken. Standard = Nein.

-truncation=Liste
Überprüfen Sie, ob durch das Abschneiden möglicherweise Genauigkeit verloren geht. Standard = Einschalten = alle.

-usage=Liste
Kontrollieren Sie Warnungen über nicht verwendete oder nicht initialisierte Variablen, gemeinsame Blöcke usw.
Standard = Einschalten = alle.

-vcg Erzeugen Sie das Anrufdiagramm im VCG-Format.

-Ausführung
Versionsnummer drucken. Standard = Nein.

-flüchtig
Gehen Sie davon aus, dass COMMON-Blöcke zwischen den Aktivierungen ihre Definition verlieren. Standard = Nein. (Veraltet.
Verwenden Sie die -common=flüchtig stattdessen.)

-wordsize=num
Legen Sie die Standardwortgröße für numerische Mengen auf fest num Bytes. Standard = Einschalten =
4 Bytes.

-wrap=num
Legen Sie die Ausgabespalte fest, in der lange Fehlermeldungen und Warnungen in die nächste umgebrochen werden
Linie. Wenn der Wert auf 0 eingestellt ist, deaktivieren Sie den Umbruch. Standard = Einschalten = 79.

Wenn mehr als eine Option verwendet wird, sollten diese durch ein Leerzeichen getrennt werden, außer bei
Systeme wie VMS, bei denen Optionen mit einem Schrägstrich ( / ) beginnen. Es dürfen keine Leerzeichen gesetzt werden
um das Gleichheitszeichen ( = ) in einer Einstellung. ftnchek „?“ erstellt eine Befehlszusammenfassung
Auflistung aller Optionen und Einstellungen.

Für Einstellungen, die eine Liste von Schlüsselwörtern erfordern, nämlich -Argumente, -Array, -calltree, -gemeinsam,
-crossref, -f77, -f90, -f95, -intrinsisch, -makedcls, -mkhtml, -Portabilität, -ziemlich,
-Projekt, -source, Stil, -Trunkierung und -Verwendungszweck, die Liste besteht aus Schlüsselwörtern
durch Kommas oder Doppelpunkte getrennt. Wenn die Liste der Schlüsselwörter weggelassen wird, wird der Effekt festgelegt
die Option auf ihren Einschaltwert (in den meisten Fällen derselbe wie „all“). Auch wenn die Liste ist
weggelassen, kann dem Einstellungsnamen ein Präfix vorangestellt werden nicht or Nein- um alle Optionen auszuschalten
Kontrollen. Zum Beispiel, -f77 schaltet alle Warnungen vor nicht standardmäßigen Konstruktionen ein, während
-nof77 schaltet sie alle aus. Drei spezielle Schlüsselwörter sind:

Hilfe Drucken Sie alle durch die Einstellung gesteuerten Optionsschlüsselwörter zusammen mit einer Kurzbeschreibung aus
Erklärung ihrer Bedeutung. Dieses Schlüsselwort kann nicht in einer Liste mit anderen angegeben werden
Schlüsselwörter.

alle Legen Sie alle Optionen fest. Dadurch werden alle durch die Einstellung gesteuerten Optionen aktiviert.

keine Löschen Sie alle Optionen. Dadurch werden alle durch die Einstellung gesteuerten Optionen deaktiviert.

Diese drei speziellen Schlüsselwörter müssen vollständig angegeben werden. Für alle anderen Keywords nur so viele
Es müssen die Buchstaben des Schlüsselworts angegeben werden, die zur eindeutigen Identifizierung erforderlich sind, oder a
Es kann ein Platzhaltermuster verwendet werden. Durch das Einfügen eines Schlüsselworts in die Liste wird das entsprechende Schlüsselwort angezeigt
Option ein. Zum Beispiel, -f77=intrinsisch würde nur die Warnungen vor der Verwendung von einschalten
Nicht standardmäßige intrinsische Funktionen. Ein Schlüsselwort voranstellen Nein- schaltet seine Option aus. Für
Beispiel -pretty=no-long-line schaltet Warnungen über Zeilen mit mehr als 72 Spalten aus
Länge, während alle anderen Warnungen vor irreführender Darstellung in Kraft bleiben. Wenn ein
Die Einstellung hat die Standardeinstellung keine, können Sie alle Optionen außer einer oder zwei aktivieren, indem Sie verwenden alle
Erste. Zum Beispiel, -f77=alle, nicht einschließen Aktiviert Warnungen zu allen nicht standardmäßigen Erweiterungen
außer INCLUDE-Anweisungen. Wenn eine Einstellung den Standardwert hat allekönnen Sie alle Warnungen ausschalten
außer ein oder zwei durch Verwendung keine Erste. Zum Beispiel, -truncation=none,degradierung würde sich drehen
Deaktivieren Sie alle präzisionsbezogenen Warnungen mit Ausnahme von Herabstufungen. Platzhaltermuster enthalten eine
Sternchen steht für eine beliebige Zeichenfolge. Wenn ein Platzhaltermuster verwendet wird, werden alle
Warnungen, die damit übereinstimmen, sind betroffen. Wenn Nein- wird dem Muster vorangestellt, alle passenden
Warnungen sind ausgeschaltet, andernfalls sind sie alle eingeschaltet. Die minimale eindeutige Länge
Die Regel gilt nicht für den Platzhalterabgleich. Verwenden Sie zum Beispiel -usage=no-*var* ausschalten
alle Warnungen im Zusammenhang mit der Variablenverwendung (sowohl lokal als auch allgemein). (Unix-Benutzer müssen möglicherweise
Setzen Sie alle Optionen in Anführungszeichen, die Platzhalter enthalten, um zu verhindern, dass die Shell dies versucht
Erweitern Sie sie.) Platzhalter werden nur in Listen mit Warnschlüsselwörtern erkannt, nicht in den obersten Listen.
Level-Optionen selbst.

Wann ftnchek Beim Start sucht es nach Umgebungsvariablen und auch nach Präferenzen
Datei. Alle in der Umgebung oder in der Einstellungsdatei definierten Optionen werden als verwendet
Standardwerte anstelle der integrierten Standardwerte. Sie werden von jeder Befehlszeile überschrieben
Optionen. Einzelheiten zur Umgebung finden Sie im Abschnitt zum Ändern der Standardeinstellungen
Optionen und die Voreinstellungsdatei.

Bei der Benennung einer Eingabedatei ist die Erweiterung optional. Wenn keine Verlängerung gegeben ist,
ftnchek sucht zunächst nach einer Projektdatei mit der Erweiterung .prj, und werde das verwenden, wenn es so ist
existiert. Wenn nicht, dann ftnchek sucht nach einer Fortran-Quelldatei mit der Erweiterung .zum
für VMS-Systeme, .f für UNIX-Systeme. Es kann mehr als ein Dateiname vergeben werden ftnchek,
und es verarbeitet die Module in allen Dateien, als wären sie in einer einzigen Datei.

Platzhalter sind bei der Angabe von Dateinamen in der Befehlszeile für das VMS zulässig
und MS-DOS-Versionen, aber natürlich auch unter UNIX und jedem anderen leistungsfähigen System
Platzhaltererweiterung im Befehlsprozessor.

Wenn kein Dateiname angegeben ist, ftnchek liest Eingaben von der Standardeingabe.

OPTIONAL


Dieser Abschnitt enthält eine ausführlichere Diskussion darüber ftnchek Befehlszeilenoptionen. Optionen
und Dateinamen können in einer Befehlszeile eingestreut werden. Die meisten Optionen sind positionell: jede
Die Option bleibt ab dem Zeitpunkt ihres Auftretens wirksam, bis sie durch a außer Kraft gesetzt wird
spätere Änderung. So kann es beispielsweise sein, dass die Auflistung für einige Dateien unterdrückt wird und für nicht
Andere. Ausnahmen sind: die -intrinsisch, -Zeigergröße und -Wortgröße Einstellungen, die
kann nicht mehr geändert werden, sobald die Verarbeitung der Eingabedateien begonnen hat; Die -Argumente, -Array,
-calltree, -gemeinsam, -crossref, -extern, -Referenz, -Ressourcen, -Sortieren, -vcg und -flüchtig
Optionen, bei denen die Aktion nur vom Wert der Option nach der Verarbeitung abhängt
Eingabedateien sind fertig; und das -einschließen Einstellung, die kumulativ ist.

Die Optionsnamen in der folgenden Liste sind in alphabetischer Reihenfolge.

-Argumente=Liste
Steuert Warnungen über Nichtübereinstimmungen zwischen tatsächlichen und Dummy-Unterprogrammargumenten.
und auch über Diskrepanzen zwischen erwartetem und tatsächlichem Unterprogrammtyp. (Eine tatsächliche
Argument ist ein Argument, das vom Aufrufer an das Unterprogramm übergeben wird. ein Scheinargument ist
ein vom Unterprogramm empfangenes Argument.) Standardmäßig sind alle Warnungen aktiviert.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Da all diese
Warnungen sind standardmäßig aktiviert. Fügen Sie ein Schlüsselwort mit dem Präfix ein Nein- a ausschalten
besondere Warnung. Es gibt drei spezielle Schlüsselwörter: alle um alles einzuschalten
Warnungen vor Streit, keine um sie alle auszuschalten, und Hilfe um die Liste auszudrucken
Alle Schlüsselwörter mit jeweils einer kurzen Erklärung. Wenn Liste wurde weggelassen, -Argumente
entspricht -arguments=alle und -keine Argumente entspricht -arguments=none.
Die Warnschlüsselwörter mit ihrer Bedeutung lauten wie folgt:

Anordnung:
warnt vor inkonsistenter Verwendung von Argumenten, bei denen es sich um Arrays handelt. Diese Warnungen können
weiter kontrolliert werden -Array .

tippe:
warnt vor Dummy-Argumenten eines anderen Datentyps als den tatsächlichen Argumenten.

Funktionstyp:
warnt, wenn der Aufruf davon ausgeht, dass der Rückgabewert der Funktion einen anderen Typ hat
als es tatsächlich ist. Warnt auch, wenn eine Funktion als Unterprogramm aufgerufen wird, oder
umgekehrt.

Anzahl:
warnt vor dem Aufruf eines Unterprogramms mit einer anderen Anzahl von Argumenten als dem
Unterprogramm erwartet.

Aus Kompatibilitätsgründen mit früheren Versionen von ftnchek, eine numerische Form davon
Einstellung wird ebenfalls akzeptiert: die Liste wird durch eine Zahl von 0 bis 3 ersetzt. Ein Wert von
0 schaltet alle Warnungen aus, 1 schaltet nur ein Anzahl, 2 Umdrehungen auf alle außer Anzahl,
und 3 schaltet alle Warnungen ein.

Diese Einstellung gilt nicht für die Prüfung von Aufrufen intrinsischer Funktionen oder
Anweisungsfunktionen, die nur durch die deaktiviert werden können -nocheck .

Siehe auch: -Array, -Bibliothek, -Verwendungszweck.

-array=Liste
Steuert den Grad der Strenge bei der Überprüfung der Übereinstimmung zwischen Ist und Dummy
Unterprogrammargumente, die Arrays sind. Die von dieser Einstellung gesteuerten Warnungen sind:
für Konstruktionen, die von einem erfahrenen Programmierer rechtmäßig verwendet werden könnten,
aber das deutet oft auf Programmierfehler hin. Standardmäßig sind alle Warnungen deaktiviert
auf.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Da all diese
Warnungen sind standardmäßig aktiviert. Fügen Sie ein Schlüsselwort mit dem Präfix ein Nein- a ausschalten
besondere Warnung. Es gibt drei spezielle Schlüsselwörter: alle um alles einzuschalten
Warnungen zu Array-Argumenten, keine um sie alle auszuschalten, und Hilfe um die auszudrucken
Liste aller Schlüsselwörter mit jeweils einer kurzen Erklärung. Wenn Liste wurde weggelassen,
-Array entspricht -array=alle und -noarray entspricht -array=keinedem „Vermischten Geschmack“. Seine
Warnungsschlüsselwörter mit ihrer Bedeutung lauten wie folgt:

Größe:
warnen, wenn sich die Argumente in der Anzahl ihrer Dimensionen unterscheiden oder wenn die tatsächlichen
Das Argument ist ein Array-Element, während das Dummy-Argument ein ganzes Array ist.

Größe:
warnt, wenn beide Argumente Arrays sind, sich aber in der Anzahl der Elemente unterscheiden.

Aus Kompatibilitätsgründen mit früheren Versionen von ftnchek, eine numerische Form davon
Einstellung wird ebenfalls akzeptiert: die Liste wird durch eine Zahl von 0 bis 3 ersetzt. Ein Wert von
0 schaltet alle Warnungen aus, 1 schaltet nur ein Größe, nur 2 Umdrehungen Größe und
3 schaltet alle Warnungen ein.

Hinweis: Unabhängig von dieser Einstellung wird beim tatsächlichen Argument immer eine Warnung ausgegeben
ist ein Array, während das Dummy-Argument eine Skalarvariable ist, oder wenn es sich um eine tatsächliche Variable handelt
Das Argument ist eine Skalarvariable oder ein Skalarausdruck, während das Dummy-Argument ein Array ist.
Diese Fälle sind selten vorsätzlich. (Um auch diese Warnungen auszuschalten, verwenden Sie
-arguments=no-arrayness.) Es wird niemals eine Warnung ausgegeben, wenn das tatsächliche Argument ein ist
Array-Element, während das Dummy-Argument eine Skalarvariable ist. Variabel dimensioniert
Arrays und Arrays, die mit 1 oder einem Sternchen dimensioniert sind, stimmen mit einer beliebigen Anzahl von Arrays überein
Elemente. Es erfolgt keine Prüfung, ob mehrdimensionale Arrays in der Größe übereinstimmen
jeder Dimension separat.

Siehe auch: -Argumente, -Bibliothek, -Verwendungszweck.

-knapp
Wählt für einige Warnmeldungen ein kürzeres Format aus. Derzeit die einzigen Warnungen
Von diesem Flag werden diejenigen gesteuert, die jeweils am Ende der Verarbeitung gedruckt werden
Unterprogramm. Dazu gehören Warnungen zu Variablen, die gesetzt, aber nicht verwendet werden oder
vor dem Festlegen verwendet, Variablennamen, die nicht dem Fortran 77-Standard entsprechen,
usw. (Diese Warnungen können abhängig von anderen Flags, wie z. B., vollständig unterdrückt werden
-Verwendungszweck or -f77 Flags.) Im Standardformat wird jede Variable auf a aufgeführt
separate Zeile, zusammen mit der Zeilennummer, in der die Variable deklariert, gesetzt oder gesetzt wird
je nach Art der Warnung verwendet werden. Das kürzere Format listet einfach alle auf
Variablen, für die die Warnung gilt, mit bis zu 4 Variablen pro Zeile.

Siehe auch: -ruhig.

-calltree=Liste
Ursachen ftnchek um die Aufrufstruktur des kompletten Programms auszudrucken.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Es gibt zwei besondere
Stichworte: keine um alle Optionen auszuschalten, und Hilfe um die Liste aller auszudrucken
Schlüsselwörter mit jeweils einer kurzen Erklärung. (Das Schlüsselwort alle schaltet alles ein
Optionen, sollten aber normalerweise nicht verwendet werden, da nur ein Format verwendet werden sollte
angegeben.) Wenn Liste wurde weggelassen, -calltree entspricht -calltree=Baum und
-nocalltree entspricht -calltree=none. Standardmäßig wird kein Anrufdiagramm gedruckt.

Wenn die Option -mkhtml aufgerufen wird und tree ist die angewendete Calltree-Option, eine Datei
Es wird auch eine Datei mit dem Namen CallTree.html erstellt, die den Baum im HTML-Format darstellt. Das
Die Datei eignet sich als Ausgangspunkt zum Durchsuchen der jeweils beschreibenden HTML-Dateien
Bestandteil des Programms.

Die Schlüsselwörter, die steuern, welches Format verwendet wird, sind wie folgt:

Baum:
Erstellen Sie das Anrufdiagramm im Baumformat.

Referenz:
Erstellen Sie das Anrufdiagramm im Format „Wer ruft wer an“ (wie -Referenz Schalter).

vcg:
Erzeugen Sie das Anrufdiagramm im VCG-Format (wie -vcg Schalter).

Nur eines der Formate Baum, Referenz, oder vcg angegeben werden kann.

Die folgenden Schlüsselwörter steuern Optionen, die sich auf die Ausgabe auswirken:

Pflaume:
Beschneiden Sie wiederholte Teilbäume (nur anwendbar mit Baum). Dies ist die Standardeinstellung.

sortieren:
Sortieren Sie die untergeordneten Elemente jeder Routine in alphabetischer Reihenfolge. Dies ist die Standardeinstellung.

Siehe die Diskussion über die -Referenz und -vcg Einzelheiten hierzu finden Sie unter flags
Formate.

Aussichten für Baum Format, Der Aufrufgraph wird ausgehend vom Hauptprogramm ausgedruckt,
die in der ersten Zeile am linken Rand aufgeführt ist. Dann in den folgenden Zeilen:
Jede vom Hauptprogramm aufgerufene Routine wird aufgelistet, um einige Leerzeichen eingerückt und gefolgt
durch den Teilbaum, der bei dieser Routine beginnt.

Wenn eine Routine im Standardmodus von mehr als einer anderen Routine aufgerufen wird, ist dies der Fall
Der Aufrufteilbaum wird nur beim ersten Auftreten gedruckt. Spätere Aufrufe geben nur aus
der Routinename und der Hinweis „(siehe oben)“. Um den Teilbaum drucken zu lassen
Verwenden Sie bei jedem Vorkommen der Routine die Option nicht beschneiden.

Beachten Sie, dass die Aufrufstruktur unvollständig ist, wenn es sich bei einer der Eingabedateien um Projekte handelt
Dateien, die mehr als ein Modul enthalten, das in erstellt wurde -Bibliothek Modus. Siehe die
Diskussion der Projektdateien unten.

Technische Punkte: Jede Liste von Routinen, die von einer bestimmten Routine aufgerufen werden, wird gedruckt
alphabetische Reihenfolge, es sei denn, die no-sort Option gegeben ist. Wenn mehrere Hauptprogramme
gefunden werden, wird der Aufrufbaum für jeden separat ausgedruckt. Wenn kein Hauptprogramm vorhanden ist
gefunden, wird ein entsprechender Bericht ausgedruckt und die Aufrufbäume aller übergeordneten Ebenen angezeigt
Nicht-Bibliotheksroutinen werden gedruckt. Dieses Flag steuert nur das Drucken des Anrufs
Baum: ftnchek Konstruiert den Aufrufbaum auf jeden Fall, da er zur Bestimmung verwendet wird
welche Bibliotheksmodule gegengeprüft werden. Siehe die Diskussion über die -Bibliothek
Flagge.

Aus Kompatibilitätsgründen mit früheren Versionen von ftnchek, eine numerische Form davon
Einstellung wird ebenfalls akzeptiert: die Liste wird durch eine Zahl von 0 bis 15 ersetzt. Dies
Zahl wird aus 1 für gebildet Baum Format, 2 für Referenz Format, oder 3 für vcg
Format, plus 4 für nicht beschneidenund 8 für no-sort.

Siehe auch: -crossref, -Bibliothek, -Referenz, -Sortieren, -symtab, -vcg.

-prüfen
Dieser Schalter ist vorgesehen, damit Fehler und Warnmeldungen ausgeschaltet werden können
ftnchek wird zu anderen Zwecken als der Suche nach Fehlern verwendet, beispielsweise zum Erstellen von Deklarationen
oder den Anrufbaum ausdrucken. Es ist positionell, also nachdem alle Häkchen deaktiviert wurden,
Ausgewählte Prüfungen können wieder aktiviert werden. Der Effekt von -nocheck ist alles zu setzen
Schalter, numerische Einstellungen und Einstellungen, die Listen von Warnungen steuern
Abschaltwerte, als ob sie alle mit dem Präfix -no angegeben worden wären. Schalter
und Einstellungen, die Optionen und Betriebsmodi festlegen, statt sie zu steuern
Warnhinweise bleiben hiervon unberührt. Diese sind -Säulen, -crossref, -einschließen, -intrinsisch,
-Bibliothek, -Liste, -makedcls, -Anfänger, -Ausgang, -Zeigergröße, -Projekt, -ruhig,
-Referenz, -Ressourcen, -Sortieren, -source, -symtab, -vcg, -Ausführung, -Wortgröße und
-wickeln. Standard = ja.

Parse-Fehler (Syntaxfehler aufgrund nicht erkannter oder fehlerhafter Anweisungen) sind nicht der Fall
wird durch diesen Schalter unterdrückt, da es sonst zu falschen Ergebnissen kommen kann ftnchek hat nicht
hat das Programm korrekt analysiert.

Es gibt einige verschiedene Fehler und Warnmeldungen, die nicht von kontrolliert werden
jeder andere Schalter und kann daher nur mit diesem Schalter ausgeschaltet werden. Beachten Sie, dass mit
-prüfen Folgende -nocheck hat lediglich den Effekt, dass diese speziellen Warnungen ausgeschaltet werden
wieder aktiviert und stellt nicht alle deaktivierten Prüfungen wieder her. Diese Warnungen sind:

o Modul enthält keine ausführbaren Anweisungen.

o In der freien Quellform fehlt Leerzeichen dort, wo Leerzeichen erforderlich sind (z. B. zwischen a
Schlüsselwort und einen Bezeichner) oder Leerzeichen vorhanden, wo keines erlaubt ist (z. B. innerhalb
eine Kennung).

o Null- oder negative Längenangabe in einer Datentypdeklaration des Formulars
Typ*len.

o Ungültige(r) Operand(e) in einem Ausdruck.

o Dem Skalar zugewiesenes Array.

o Typkonflikt zwischen DO-Index und Grenzen.

o Undefinierter gemeinsamer Block, der in der SAVE-Anweisung deklariert wurde.

o Intrinsische Funktion, die explizit mit einem inkompatiblen Typ deklariert wurde.

o Unbekannte intrinsische Funktion, die explizit in einer INTRINSIC-Anweisung deklariert wurde.

o Die als Unterprogrammargument übergebene intrinsische Funktion ist nicht in einem deklariert
INTRINSIC-Anweisung.

o Intrinsische Funktion oder Anweisungsfunktion wurde falsch aufgerufen.

o Die Funktion legt den Rückgabewert nicht vor der RETURN-Anweisung fest.

o Parameterkonstantenwert nicht ausgewertet (dies ist ftnchekEs ist die Schuld, und das ist gerecht
um Sie darüber zu informieren).

o Der Einstiegspunkt eines Unterprogramms wird später als Name eines anderen Unterprogramms verwendet.

o Unbekanntes Schlüsselwort, das in einer E/A-Anweisung verwendet wird.

o Unzulässige Label-Referenz (z. B. GOTO verweist auf eine nicht ausführbare Anweisung; I/O
(Anweisung bezieht sich auf eine Nicht-Format-Anweisung).

Siehe auch: -Fehler.

-columns=num
Legen Sie die maximale Anweisungslänge auf fest num Säulen. (Darüber hinaus wird ignoriert.) Dies
Diese Einstellung ermöglicht die Überprüfung von Programmen, die möglicherweise gegen Fortran verstoßen
Standardbegrenzung von 72 Spalten für die Länge einer Anweisung. Entsprechend der
Standardmäßig werden alle Zeichen nach Spalte 72 ignoriert. Wenn diese Einstellung verwendet wird, wann
-f77=lange Zeile Wenn diese Option aktiviert ist, wird für alle Zeilen in eine Warnung ausgegeben
welche Zeichen ab Spalte 72 verarbeitet werden. Einschalten = max = 132. Standard = 72.

Diese Einstellung unterdrückt keine Warnungen über das Vorhandensein weiterer Zeichen
Spalte 72. Verwenden Sie dies, um Code mit aussagekräftigem Programmtext über Spalte 72 hinaus zu verarbeiten
Einstellung und stellen Sie sicher, dass die -f77 lange Linie Option ist ausgeschaltet. Code verarbeiten mit
Um Sequenznummern in den Spalten 73 bis 80 einzugeben, belassen Sie die Spalteneinstellung auf der Standardeinstellung
Wert legen und nutzen -pretty=no-long-line Flagge.

Siehe auch: -f77, -ziemlich.

-common=Liste
Diese Einstellung steuert die Strenge der Prüfung von COMMON-Blöcken. Standardmäßig alle
Warnungen außer flüchtig sind eingeschaltet.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Da die meisten davon
Warnungen sind standardmäßig aktiviert. Fügen Sie ein Schlüsselwort mit dem Präfix ein Nein- a ausschalten
besondere Warnung. Es gibt drei spezielle Schlüsselwörter: alle um alles einzuschalten
Warnungen, keine um sie alle auszuschalten, und Hilfe um die Liste aller Schlüsselwörter auszudrucken
mit jeweils einer kurzen Erklärung. Wenn Liste wurde weggelassen, -gemeinsam entspricht
-common=Abmessungen, genau, Länge, Typ und -keine gemeinsame entspricht -common=keine.
Die Warnschlüsselwörter mit ihrer Bedeutung lauten wie folgt:

Größe:
entsprechende Arrays in jeder Deklaration eines Blocks müssen in Größe und übereinstimmen
Anzahl der Dimensionen. Diese Option hat nur eine Wirkung, wenn sie zusammen mit verwendet wird
genau.

genau:
Der Vergleich zweier Blöcke erfolgt nicht einfach, sondern variabel für jede Variable
erfordert eine Vereinbarung zwischen den entsprechenden Lagerorten. Verwenden Sie dies, wenn alle
Deklarationen eines bestimmten COMMON-Blocks sollen identisch sein, was a ist
gute Programmierpraxis.

Länge:
warnt, wenn verschiedene Deklarationen desselben Blocks in der Gesamtlänge nicht gleich sind.
Der Fortran 77-Standard erfordert jeden benannten gemeinsamen Block, jedoch keinen leeren gemeinsamen Block.
in allen Modulen des Studiengangs die gleiche Länge haben.

tippe:
in jeder Deklaration eines bestimmten COMMON-Blocks die entsprechenden Speicherorte
(Wörter oder Bytes) müssen im Datentyp übereinstimmen. Bei gemeinsamer Verwendung mit genauDieser
erfordert, dass entsprechende Variablen im Datentyp übereinstimmen.

flüchtig:
Gehen Sie davon aus, dass COMMON-Blöcke flüchtig sind.

Viele Fortran-Programmierer gehen davon aus, dass Variablen, ob lokal oder in COMMON, vorhanden sind
statisch, das heißt, dass sie, sobald ihnen ein Wert zugewiesen wurde, diesen Wert dauerhaft behalten, bis
vom Programm einen anderen Wert zugewiesen bekommen. Tatsächlich jedoch der Fortran 77
Der Standard verlangt nicht, dass dies der Fall ist. Lokale Variablen können werden
undefiniert zwischen Aktivierungen eines Moduls, in dem sie deklariert sind. Ähnlich,
COMMON-Blöcke können undefiniert werden, wenn kein Modul vorhanden ist, in dem sie deklariert sind
aktiv. (Der Fachbegriff für Entitäten mit diesem Verhalten ist „automatisch“, aber
ftnchek verwendet das Wort „flüchtig“, da es für Laien klarer ist.) Nur
COMMON-Blöcke, die in einer SAVE-Anweisung oder im Hauptprogramm oder in einem deklariert wurden
Die Blockdaten des Unterprogramms bleiben definiert, solange das Programm läuft. Variablen
und COMMON-Blöcke, die irgendwann undefiniert werden können, werden als flüchtig bezeichnet.

Besitzt das -common=flüchtig Flagge ist eingeschaltet, ftnchek wird Sie warnen, wenn es eine findet
flüchtiger COMMON-Block. Wenn gleichzeitig die -usage=com-block-volatile zu erhalten
aktiviert ist (was die Standardeinstellung ist), ftnchek Ich werde versuchen zu überprüfen, ob ein solcher Block vorliegt
kann zwischen Aktivierungen der Module, in denen es sich befindet, seinen definierten Status verlieren
erklärt. ftnchek macht das nicht besonders gut: Die verwendete Regel ist zu sehen
ob der Block in zwei getrennten Teilbäumen des Aufrufbaums deklariert ist. Für
Dies wäre beispielsweise der Fall, wenn zwei Module, die beide vom Hauptprogramm aufgerufen werden,
hat einen flüchtigen COMMON-Block gemeinsam genutzt. Ein Block kann auch zwischen zwei undefiniert werden
aufeinanderfolgende Aufrufe desselben Unterprogramms, aber ftnchek ist nicht schlau genug, es zu sagen
ob ein Unterprogramm mehrfach aufgerufen werden kann, daher wird dieser Fall nicht geprüft.

Das -common=flüchtig Flagge hat keinen Einfluss auf den Weg ftnchek prüft die Verwendung von local
Variablen.

Aus Kompatibilitätsgründen mit früheren Versionen von ftnchek, eine numerische Form davon
Einstellung wird ebenfalls akzeptiert: die Liste wird durch eine Zahl von 0 bis 3 ersetzt. Ein Wert von
Bei 0 werden alle Warnungen ausgeschaltet, bei 1 oder höher werden alle Warnungen aktiviert tippe, 2 oder mehr Einschaltvorgänge
Länge, und 3 Mal eingeschaltet Größe und genau Auch. Das numerische Formular kann nicht aktiviert werden
flüchtig .

Siehe auch: -Bibliothek, -Verwendungszweck.

-crossref=Liste
Druckt Querverweistabellen. Standard = keine.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Die Schlüsselwörter mit
ihre Bedeutung ist wie folgt:

Anrufe:
Die Tabelle listet jedes Unterprogramm auf, gefolgt von einer Liste der Routinen, die es aufrufen.
In dieser Auflistung werden Bibliotheksmodule weggelassen, die sich nicht im Aufrufbaum der Hauptbibliothek befinden
Programm. Die Liste ist alphabetisch sortiert.

verbreitet:
Die Tabelle listet jeden COMMON-Block auf, gefolgt von einer Liste der Routinen, die darauf zugreifen
Es. Bei diesen aufgeführten Routinen handelt es sich um solche, in denen einige Variablen im COMMON
Auf den Block wird zugegriffen, nicht nur auf die Routinen, die den Block deklarieren. (Zu
Finden Sie heraus, welche Routinen einen COMMON-Block deklarieren, ihn aber nicht verwenden
-Verwendungszweck Flagge.)

Etiketten:
Die Tabelle listet jedes Etikett auf, gefolgt von einer Liste aller Verweise darauf. Ein Etikett
Die Referenz wird durch die Zeilennummer und den Anweisungstyp der Referenzierung gekennzeichnet
Stellungnahme. Die Etikettenliste ist in sequentieller Reihenfolge. Die Referenzen sind
werden in der Reihenfolge aufgelistet, in der sie im Programm vorkommen.

Siehe auch: -calltree, -Referenz, -Sortieren, -symtab, -vcg.

-erklären
Wenn dieses Flag gesetzt ist, werden alle Bezeichner angezeigt, deren Datentyp nicht in jedem Modul deklariert ist
wird aufgelistet. Dieses Flag ist hilfreich, um falsch geschriebene Variablennamen zu finden.
usw. Die gleiche Auflistung wird angezeigt, wenn das Modul ein IMPLICIT NONE enthält
Stellungnahme. Standard = Nein.

Siehe auch: -sixchar, -Verwendungszweck.

-Teilung
Dieser Schalter wird bereitgestellt, um Benutzern dabei zu helfen, mögliche Probleme bei der Division durch Null zu erkennen. Wenn
Wenn dieser Schalter aktiviert ist, wird jede Division außer durch eine Konstante markiert. (Es
Es wird davon ausgegangen, dass der Benutzer intelligent genug ist, nicht durch eine Konstante zu dividieren
gleich Null!) Standard = nein.

Siehe auch: -Portabilität, -Trunkierung.

-errors=num
Legen Sie die maximale Anzahl von Fehlermeldungen in einer „Kaskade“ fest. Bei der Überprüfung von
Vereinbarung von Unterprogrammargumenten, gemeinsamen Blockdeklarationen usw.
Manchmal löst ein einzelner Fall eine lange Reihe von Warnungen aus. Oftmals einfach
weist auf eine andere Ursache als eine tatsächliche Nichtübereinstimmung einzelner Artikel hin, z. B. für
Beispiel: eine Variable, die in einer Liste fehlt. Also in solchen Fällen ftnchek stoppt den Druckvorgang
die Warnungen, nachdem das Kaskadenlimit erreicht ist, und der Trailer „etc...“ ist
gedruckt, um darauf hinzuweisen, dass weitere Fehler vorhanden waren, die nicht gedruckt wurden. Wenn du das denkst
Diese Warnungen sind wahrscheinlich echt. Verwenden Sie diese Einstellung, um mehr davon anzuzeigen.
Einschalten = Standard = 3, max = 999. Ein Wert von 0 bedeutet keine Begrenzung.

Diese Einstellung legt keine allgemeine Grenze für die Anzahl der gedruckten Fehlermeldungen fest.
nur die Zahl, die in einer Kaskade gedruckt wird. Die meisten Arten von Warnungen und Fehlern
Nachrichten unterliegen nicht dem Kaskadeneffekt und sind daher nicht davon betroffen
Einstellung. Um Warnungen generell auszuschalten, verwenden Sie die individuelle Warnungssteuerung
Optionen oder die -nocheck .

Siehe auch: -prüfen.

-extern
Ursachen ftnchek um zu melden, ob vom Programm aufgerufene Unterprogramme niemals ausgeführt werden
definiert. Normalerweise, wenn ftnchek wird jeweils auf einem vollständigen Programm ausgeführt
Andere Unterprogramme als die intrinsischen Funktionen sollten irgendwo definiert werden. Drehen
Deaktivieren Sie diesen Schalter, wenn Sie nur eine Teilmenge der Dateien überprüfen möchten, die Teil eines sind
größeres Gesamtprogramm. Es wird weiterhin nach Unterprogrammargumenten gesucht
Richtigkeit. Standard = ja.

Das -extern Die Flagge wird nun durch die ersetzt -usage=ext-undefiniert Möglichkeit. Für die
Der Einfachheit halber, die -extern Flag bleibt erhalten, so dass -noextern ist gleichwertig
zu -usage=no-ext-undefiniert Option. Die -extern Der Switch wird möglicherweise irgendwann außer Betrieb genommen.

Siehe auch: -Bibliothek.

-f77=Liste
Verwenden Sie diese Einstellung, um Spracherweiterungen abzufangen, die gegen Fortran 77 verstoßen
Standard. Solche Erweiterungen können dazu führen, dass Ihr Programm nicht portierbar ist. Beispiele
die Verwendung von Unterstrichen in Variablennamen einbeziehen; Variablennamen länger als sechs
Figuren; Anweisungszeilen länger als 72 Zeichen; und nicht standardmäßige Aussagen
wie die Struktur DO ... ENDDO. ftnchek berichtet nicht über die Verwendung von
Kleinbuchstaben. Standardmäßig sind alle Warnungen deaktiviert.

Diese Einstellung bietet detaillierte Kontrolle über die Warnungen zu unterstützten Erweiterungen
zum Fortran 77 Standard. (Weitere Details zu den Erweiterungen selbst finden Sie unter
siehe unten im Abschnitt über Erweiterungen.) Die Liste besteht aus getrennten Schlüsselwörtern
durch Kommas oder Doppelpunkte. Es gibt drei spezielle Schlüsselwörter: alle um alles einzuschalten
Warnungen vor nicht standardmäßigen Erweiterungen, keine um sie alle auszuschalten, und Hilfe zu drucken
die Liste aller Schlüsselwörter mit einer kurzen Erklärung zu jedem. Wenn Liste wurde weggelassen,
-f77 entspricht -f77=alle und -nof77 entspricht -f77=keine. Die Warnung
Schlüsselwörter mit ihrer Bedeutung sind wie folgt:

Accept-Typ:
ACCEPT- und TYPE-I/O-Anweisungen.

Array-Grenzen:
Ausdrücke, die Array-Grenzen definieren, die Array-Elemente oder -Funktionen enthalten
Verweise.

Zuweisungsstmt:
Zuweisungsanweisungen mit Arrays. In Fortran 90 kann ein Array sein
Es kann einem anderen Array mit kompatibler Form oder einem Skalar zugewiesen werden
eine Anordnung. Keine dieser Zuweisungen ist in Fortran 77 zulässig.

Eine entsprechende Warnung tritt auf, wenn ein Array einem Skalar zugewiesen wird. Seit dem
ist auch in Fortran 90 illegal, es wird unabhängig davon immer davor gewarnt
-f77 Einstellung (es sei denn, alle Überprüfungen sind mit deaktiviert). -nocheck Flagge).

attributbasierte-deklaration:
Geben Sie Deklarationen im neuen attributbasierten Fortran 90-Stil ein. Dieser Stil von
Die Deklaration zeichnet sich durch die Verwendung eines Doppelpunkts (::) zwischen den aus
Liste der Attribute und die Liste der deklarierten Variablen. Auch diese Option
Steuert Warnungen für die Verwendung von Fortran 90-Längen- oder Artspezifizierern im Typ
Erklärungen. (Obwohl diese Spezifizierer auch in nicht-attributbasierten Umgebungen verwendet werden können
Deklarationen werden durch diese Option gesteuert, um eine Verbreitung zu verhindern
-f77 Optionen.)

Automatisches Array:
Lokale (keine Dummy-)Arrays mit variabler Größe. Diese würden entsprechen
Arrays, deren Speicher zur Laufzeit dynamisch zugewiesen werden müsste.

umgekehrter Schrägstrich:
Unix-Backslash-Escape in Strings. Diese Warnung wird nur ausgegeben, wenn die
-source=unix-backslash Die Einstellung wird angegeben, um das Escape auszulösen
Interpretation von Backslash..

Byte: BYTE-Datentypdeklaration.

Fallkonstrukt:
Das SELECT CASE-Konstrukt.

Charakter:
Erweiterungen des Fortran 77-Standards bezüglich Zeichendaten. Derzeit,
Dies steuert nur Warnungen zu Zeichenvariablen, die mit Null oder deklariert wurden
negative Länge. In Fortran 77 müssen alle Zeichenvariablen positiv sein
Länge. In Fortran 90 können sie eine Länge von Null haben und diese deklarieren
Geben Sie an, dass negative Längen zulässig sind, die für die Deklaration zu Null werden
Länge. Hinweis: Negative Längenbezeichner können auf eine Programmierung hinweisen
Fehler, die entsprechende Warnung wird auch dann ausgegeben, wenn diese Option deaktiviert ist, und
wird nur durch die unterdrückt -nocheck Flagge.

Common-Subprog-Name:
Gemeinsamer Block und Unterprogramm mit demselben Namen.

Konstruktname:
Verwendung eines Konstruktnamens zum Beschriften einer Steueranweisung.

Fortsetzung:
Mehr als 19 aufeinanderfolgende Fortsetzungszeilen.

cpp: Unix-C-Präprozessoranweisungen im Quellcode.

Cray-Pointer:
„Cray-Zeiger“-Syntax.

Zyklus-Ausgang:
Die CYCLE- und EXIT-Anweisungen.

D-Kommentar:
Debuggen von Kommentaren, die im Quellcode mit D beginnen.

Dez-Tab:
Tabulatorformatierter Quellcode im DEC Fortran-Stil. Diese Warnung wird nur ausgegeben
wenn die -source=dec-tab Die Einstellung wird angegeben, um die Interpretation von Tabulatoren zu bewirken
in diesem Stil.

do-enddo:
DO-Schleifenerweiterungen: Beschriftung der Terminalanweisung weggelassen, END DO und WHILE.

Doppelkomplex:
Komplexer Datentyp mit doppelter Genauigkeit.

format-dollarsign:
Steuercode für Dollarzeichen in FORMAT-Anweisungen.

Format-Bearbeitungsbeschreibung:
Nicht standardmäßige Bearbeitungsdeskriptoren in FORMAT-Anweisungen.

Funktion-noparen:
Funktionsdefinition ohne Klammern.

implizit-keine:
IMPLICIT NONE-Anweisung.

das:
INCLUDE-Anweisung.

Inline-Kommentar:
Inline-Kommentare beginnen mit einem Ausrufezeichen.

interne-liste-io:
Listengesteuerte E/A zu oder von einer internen Datei.

innere:
Nicht standardmäßige intrinsische Funktionen.

io-Schlüsselwörter
Nicht standardmäßige Schlüsselwörter, die in E/A-Anweisungen verwendet werden. Diese fallen in drei Gruppen.
Die erste Gruppe umfasst Schlüsselwörter, die in Fortran 90 akzeptiert werden:

AKTIONSPAD LESEN/SCHREIBEN
GRÖSSE DER ERWEITERTEN POSITION
DELIM LESEN SCHREIBEN
EOR
Die zweite Gruppe umfasst die folgenden VMS-Fortran-Schlüsselwörter:

BLOCKSIZE EXTENDSIZE schreibgeschützt
BUFFERCOUNT INITIALSIZE RECORDSIZE
CARRIAGECONTROL MAXREC RECORDTYPE
STANDARDDATEINAME (in OFFEN) GETEILT
DISP NOSPANBLOCK-TYP
ORGANISATION ENTSORGEN
(Das Schlüsselwort NAME ist nur in der INQUIRE-Anweisung Standard.) Der dritte
Die Gruppe besteht aus dem folgenden IBM/MVS-Schlüsselwort:

NUM
Dieses Flag steuert auch eine Warnung vor der Verwendung von ACCESS='APPEND'
von einigen Compilern akzeptiert. Der Wert von „APPEND“ ist für keine E/A gültig
Spezifizierer im Standard-Fortran 77 und in Fortran 90 sollte „APPEND“ verwendet werden
als Wert des POSITION-Bezeichners, nicht als ACCESS-Wert.

lange Linie:
Anweisungen mit aussagekräftigem Code über 72 Spalten hinaus. Diese Warnung wird nur gegeben
wenn die -Säulen Die Einstellung wurde verwendet, um die Breite des Anweisungsfelds zu erhöhen.

langer Name:
Bezeichner mit mehr als 6 Zeichen Länge.

gemischt-gemeinsam:
Gemischte Zeichen- und Nichtzeichendaten im COMMON-Block.

gemischter Ausdruck:
Nicht standardmäßige Typkombinationen in Ausdrücken, zum Beispiel DOUBLE PRECISION
mit COMPLEX, Zuweisen von Hollerith zu Ganzzahlen, logische Operationen für Ganzzahlen.

Name-Dollarzeichen:
Dollarzeichen, das als Zeichen in Bezeichnern verwendet wird.

Name-Unterstrich:
Unterstrich, der als Zeichen in Bezeichnern verwendet wird.

Namensliste:
NAMELIST-Anweisung.

param-implicit-type:
Implizite Typisierung eines Parameters durch den Datentyp des zugewiesenen Werts. Das
Die Warnung kann nur auftreten, wenn die implizite Parametertypisierung durch aktiviert wurde
-source=param-implicit-type Option, oder wenn die PARAMETER-Anweisung von der ist
Nichtstandardisierte Form ohne Klammern. Wenn diese Option aktiviert ist, dann alle
Vor Fällen, in denen eine implizite Parametertypisierung auftritt, wird eine Warnung angezeigt. Wenn
Sie möchten nur in den Fällen gewarnt werden, in denen der implizite Datentyp vorliegt
weicht vom Standardtyp ab, Verwendung -portability=param-implicit-type stattdessen.
Gemäß dem Fortran 77-Standard wird der Datentyp eines Parameters angegeben
Es gelten die gleichen Regeln wie für eine Variable, ggf. erfolgt eine Typkonvertierung
erfolgt, wenn der Wert zugewiesen wird.

param-intrinsisch:
Intrinsische Funktion oder Potenzierung durch eine reelle Zahl, die zur Definition des Werts von a verwendet wird
PARAMETER-Definition.

param-noparen:
PARAMETER-Anweisung ohne Klammern. Der Benutzer sollte sich darüber im Klaren sein, dass die
Die Semantik dieser Form der Aussage unterscheidet sich von der des Standards
Form: In dieser Form erhält der Parameter seinen Datentyp vom Wert
zugewiesen, anstatt dass sein Standarddatentyp auf dem ersten Buchstaben basiert
des Parameternamens. (Diese Form der PARAMETER-Anweisung wurde eingeführt
von DEC vor der Definition des Fortran 77-Standards erstellt und sollte vermieden werden.)

Zeiger:
Fortran 90-Standard-Zeiger-bezogene Syntax, einschließlich POINTER, TARGET und
ALLOCATABLE-Typdeklarationen, ALLOCATE-, DEALLOCATE- und NULLIFY-Anweisungen,
und Zeigerzuweisung mit =>.

Quad-Konstante:
Realkonstanten mit vierfacher Genauigkeit, z. B. der Form 1.23Q4.

Anführungszeichen:
Zeichenfolgen, die durch Anführungszeichen statt durch Apostrophe getrennt sind.

relops:
Relationale (Vergleichs-)Operatoren, die aus Satzzeichen bestehen, nämlich: < <= == /=
> >=.

Semikolon:
Semikolon wird als Anweisungstrennzeichen verwendet.

Anweisungsreihenfolge:
Anweisungen außerhalb der vom Standard vorgeschriebenen Reihenfolge. Das Erlaubte
Die Reihenfolge ist in Tabelle 1 im Abschnitt „Interpretieren der Ausgabe“ dargestellt.

typlose Konstante:
Typlose Konstanten, zum Beispiel Z'19AF'.

Schriftgröße:
Geben Sie Deklarationen ein, die eine Größe angeben, zum Beispiel REAL*8.

Variables Format:
Variable Wiederholungsangabe oder Feldgröße im FORMAT. Diese sind von der Form
< ausdr >.

vms-io:
Veraltet. Jetzt hat die gleiche Bedeutung wie das io-Schlüsselwörter Stichwort.

Siehe auch: -f90, -f95, -Portabilität, -ziemlich, Stil, -Wortgröße.

-f90=Liste
Diese Einstellung bietet detaillierte Kontrolle über die Warnungen zu unterstützten Erweiterungen
zum Fortran 77-Standard, die nicht als Teil des Fortran 90 übernommen wurden
Standard. Beachten Sie, dass ftnchek unterstützt nicht die vollständige Fortran 90-Sprache.
Es unterstützt jedoch einige gängige Erweiterungen von Fortran 77, die weit verbreitet waren
bevor Fortran 90 definiert wurde. Einige dieser Erweiterungen wurden Teil des Fortran
90 Standard, andere jedoch nicht. Der -f90 Die Einstellung warnt nur vor Letzterem.
Das heißt, diese Flagge deckt Dinge ab, die weder Fortran 77 noch legal sind
Fortran 90. Daher sind die von diesem Flag gesteuerten Warnungen im Grunde eine Teilmenge
der von gesteuerten Warnungen -f77. Es gibt einige unten beschriebene Fälle, in denen
Die Umstände, unter denen die Warnung ausgesprochen wird, unterscheiden sich bei beiden geringfügig
Flaggen.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Dort sind drei
spezielle Schlüsselwörter: alle um alle Warnungen zu nicht standardmäßigen Erweiterungen zu aktivieren,
keine um sie alle auszuschalten, und Hilfe um die Liste aller Schlüsselwörter mit a auszudrucken
jeweils eine kurze Erklärung. Wenn Liste wurde weggelassen, -f90 entspricht -f90=alle und
-nof90 entspricht -f90=keine.

Die folgenden Schlüsselwörter haben identische Bedeutungen für -f90 wie für -f77. Der Leser ist
Wir verweisen auf die Erläuterungen unten -f77.

Accept-Typ Doppelkomplex param-noparen
umgekehrter Schrägstrich format-dollarsign Cray-Pointer
Byte Format-Bearbeitungsbeschreibung Quad-Konstante
cpp Funktion-noparen Schriftgröße
D-Kommentar Name-Dollarzeichen Variables Format
Dez-Tab param-implicit-type vms-io

Die Schlüsselwörter weichen etwas von den entsprechenden ab -f77 Schlüsselwörter sind wie
folgt.

Fortsetzung:
Die Begrenzung der Anzahl der Fortsetzungszeilen für eine Anweisung in fester Quelle
Die Form ist in Fortran 19 dieselbe, nämlich 90, wie in Fortran 77. Als kostenlose Quelle
Die maximale Anzahl liegt bei 39 Fortsetzungszeilen und einer Zeile, die eine Fortsetzung enthält
Markierung darf ansonsten nicht leer sein oder nur einen Kommentar enthalten.

innere:
Dies ist das Gleiche wie für -f77 mit Ausnahme der in definierten intrinsischen Funktionen
MIL-STD 1753, die alle in Fortran 90 enthalten sind und daher nicht gewarnt werden
um. (Sehen -intrinsisch für eine Liste.)

io-Schlüsselwörter:
Dies ist das Gleiche wie für -f77 außer dass für die E/A keine Warnungen ausgegeben werden
Schlüsselwörter, die in Fortran 90 Standard sind.

lange Linie:
Obwohl der Fortran 90-Standard Zeilen mit mehr als 72 Zeichen zulässt
Bei der freien Quellform gilt diese Einschränkung weiterhin für die feste Quellform. In
Bei kostenlosen Quellen beträgt die Zeilenlängenbeschränkung 132 Zeichen und im Gegensatz zu festen
bilden, ftnchek erlaubt keine Erhöhung dieser Grenze.

gemischter Ausdruck:
Dies ist das Gleiche wie für -f77 mit Ausnahme von Ausdrücken, die eine erweiterte Präzision enthalten
real mit komplexen Datentypen, die in Fortran 90 zulässig sind.

Anweisungsreihenfolge:
Dies ähnelt dem entsprechenden -f77 Warnung, gilt aber etwas
Lockere Beschränkungen der Anweisungsreihenfolge des Fortran 90-Standards. In
Insbesondere erlaubt Fortran 90 DATA-Anweisungen und Anweisungsfunktionen
Definitionen, die mit Spezifikationsanweisungen vermischt werden sollen.

typlose Konstante:
In Fortran 90 sind binäre, oktale und hexadezimale Konstanten der Form B'ddd',
O'ddd' bzw. Z'ddd' sind zulässig. Hier steht „ddd“ für a
Ziffernfolge. ftnchek erkennt diese Formen sowie eine Variante davon
die Form X'ddd' für eine hexadezimale Konstante und andere Varianten, in denen die
Der Basisindikator B, O, Z oder X folgt der Ziffernfolge. Diese Varianten waren
nicht in Fortran 90 übernommen, daher werden nur sie gewarnt, wenn diese Flagge vorhanden ist
eingeschaltet.

Siehe auch: -f77, -f95, -Portabilität, -ziemlich, Stil, -Wortgröße.

-f95=Liste
Diese Einstellung bietet detaillierte Kontrolle über Warnungen zum Standard-Fortran 77
Funktionen, die aus dem Fortran 95-Standard gelöscht wurden. im Gegensatz zu den -f77 und -f90
Einstellungen beziehen sich diese Warnungen auf die Syntax, die für Fortran 77 zulässig ist. Allerdings seitdem
Diese Funktionen wurden aus dem Standard gelöscht, es ist möglich, dass Programme
Sie zu enthalten, wird für einige neuere Compiler inakzeptabel sein.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Dort sind drei
spezielle Schlüsselwörter: alle um alle Warnungen zu nicht standardmäßigen Erweiterungen zu aktivieren,
keine um sie alle auszuschalten, und Hilfe um die Liste aller Schlüsselwörter mit a auszudrucken
jeweils eine kurze Erklärung. Wenn Liste wurde weggelassen, -f95 entspricht -f95=alle und
-nof95 entspricht -f95=keine. Die Warnschlüsselwörter mit ihrer Bedeutung lauten wie folgt
folgt.

echt:
Eine DO-Variable eines beliebigen reellen numerischen Typs.

Pause:
Die PAUSE-Anweisung.

zuweisen:
Die ASSIGN-Anweisung, das zugewiesene GOTO oder das zugewiesene Format.

h-edit:
Der H-Bearbeitungsdeskriptor in einem Format.

Es gibt eine weitere Fortran 77-Syntaxfunktion, die in Fortran 95 gelöscht wurde, nämlich
Verzweigung zu einem ENDIF von außerhalb des IF-Blocks. Jedoch, ftnchek ist nicht in der Lage
analysiert den Programmablauf und gibt daher hierfür keine Warnung aus.

Siehe auch: -f77, -f90, -Portabilität, -ziemlich, Stil, -Wortgröße.

-Hilfe
Druckt eine Liste aller Befehlszeilenoptionen mit jeweils einer kurzen Beschreibung
zusammen mit seinem Standardwert. Dieser Befehl hat die gleiche Funktion wie der „?“
Argument und wird als Erleichterung für diejenigen Systeme bereitgestellt, in denen die Frage gestellt wird
Die Markierung hat für den Befehlsinterpreter eine besondere Bedeutung. Standard = Nein.

In der Hilfeliste werden auch die Versionsnummer und der Patch-Level von gedruckt ftnchek und einem
Urheberrechtshinweis.

Hinweis: Die in der Hilfeliste in eckigen Klammern gedruckten „Standard“-Werte lauten:
Genau genommen handelt es sich dabei nicht um die integrierten Standardwerte, sondern um die aktuellen Werte
Umgebungsoptionen und alle Befehlszeilenoptionen vor dem -Hilfe Option haben
verarbeitet wurde.

Siehe auch: -Anfänger, -Ausführung und Hilfe Option aller Einstellungen, die eine Liste von annehmen
Schlüsselwörter.

-identifier-chars=Liste
Definieren Sie nicht-alphanumerische Zeichen, die in Bezeichnern verwendet werden können. Standardmäßig,
ftnchek akzeptiert nur das Dollarzeichen und den Unterstrich als nicht-alphanumerische Zeichen
in Bezeichnernamen. Die Charaktere in der Liste Ersetzen Sie den akzeptierten Satz
Bisher galt die Verwendung nichtalphanumerischer Zeichen. Wenn also Dollarzeichen oder
Unterstriche werden nicht in die Liste aufgenommen und verlieren ihren Status als akzeptabel
Zeichen.

Diese Option wird zur Aktivierung bereitgestellt ftnchek um Quelldateien zu verarbeiten, die nicht-
Standard-Identifikatornamen, die beispielsweise für den Zugriff auf bestimmte erforderlich sein können
Betriebssystemdienste. Weitere Informationen finden Sie im Abschnitt zu Einschränkungen und Erweiterungen
Behandlung von Bezeichnern, die diese Zeichen enthalten, bei der impliziten Typisierung.

Die richtigen -noidentifer-chars deaktiviert die Annahme nicht-alphanumerischer Zeichen
vollständig.

Siehe auch: -source.

-einschließen=Weg
Gibt ein Verzeichnis an, das nach durch INCLUDE-Anweisungen angegebenen Dateien durchsucht werden soll.
Im Gegensatz zu anderen Befehlszeilenoptionen ist diese Einstellung kumulativ; das heißt, wenn es so ist
Wird in der Befehlszeile mehr als einmal angegeben, gelten alle so angegebenen Verzeichnisse
werden in eine Liste aufgenommen, die in derselben Reihenfolge durchsucht wird, in der sie angegeben sind. Der
Reihenfolge in welcher ftnchek Sucht nach einer Datei, die aufgenommen werden soll: die aktuelle
Verzeichnis; das durch die Umgebungsvariable FTNCHEK_INCLUDE angegebene Verzeichnis, falls vorhanden;
die von any angegebenen Verzeichnisse -einschließen Optionen; das von angegebene Verzeichnis
Umgebungsvariable INCLUDE; und schließlich in einem systemweiten Standardverzeichnis
(/ usr / include für UNIX, SYS$LIBRARY für VMS und \include für MSDOS).

Siehe auch: -f77, -source.

-intrinsisch=Liste
Steuert, ob ftnchek erkennt bestimmte nicht standardmäßige intrinsische Funktionen als
intrinsisch. Der Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Einige
Die Schlüsselwörter steuern, ob bestimmte Funktionsgruppen und andere erkannt werden
Schlüsselwörter steuern die erwartete Syntax zum Aufrufen einiger nicht standardmäßiger systeminterner Funktionen.
Fügen Sie ein Schlüsselwort ein, um die Erkennung des entsprechenden Satzes von Intrinsics oder zu aktivieren
um die entsprechende Syntax zu ermöglichen. Fügen Sie ein Schlüsselwort mit dem Präfix ein Nein- ausschalten
diese Anerkennung.

Es gibt drei spezielle Schlüsselwörter: alle Aktiviert die Erkennung aller Nichtstandards
Intrinsics (unten aufgeführt) und akzeptiert jede Syntax für diejenigen, die Variationen haben.
Verwenden Sie die keine um die Erkennung aller nicht standardmäßigen intrinsischen Elemente mit Ausnahme der angegebenen zu deaktivieren
unter. Verwenden Hilfe um die Liste aller Schlüsselwörter mit einer kurzen Erklärung auszudrucken
jede. Wenn Liste wurde weggelassen, -intrinsisch entspricht -intrinsic=alle und
-nicht intrinsisch entspricht -intrinsic=keine.

Die nicht standardmäßigen intrinsischen Funktionen, die zur Unterstützung der nicht standardmäßigen erweiterten Funktionen erforderlich sind
Präzisionsdatentypen (doppelt komplex und vierfach präzise) werden immer erkannt.
Die wesentlichen Merkmale des doppelten komplexen Datentyps sind:

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIMAG ZEXP ZCOS
CDSIN
Die wesentlichen Merkmale der Typen „Quad Precision“ und „Quad Complex“ sind:

CQABS QARCOS QEXT QNINT
CQCOS QARSIN QEXTD QPROD
CQEXP QATAN QFLOAT QREAL
CQLOG QATAN2 QIMAG QSIGN
CQSIN QCMPLX QINT QSIN
CQSQRT QCONJG QLOG QSINH
DBLEQ QCOS QLOG10 QSQRT
IQINT QCOSH QMAX1 QTAN
IQNINT QDIM QMIN1 QTANH
QABS QEXP QMOD SNGLQ
Die Schlüsselwörter, die die Erkennung anderer nicht standardmäßiger intrinsischer Funktionen steuern, sind
wie folgt:

extra:
Erkennen Sie die folgenden allgemein verfügbaren nicht standardmäßigen intrinsischen Funktionen (alle außer
EXIT und LOC sind in MIL-STD 1753 definiert):

BTEST IBCLR IEOR ISHFTC
EXIT IBITS IOR LOC
IAND IBSET ISHFT NICHT

Unix: Erkennen Sie diese allgemeinen Unix-spezifischen intrinsischen Funktionen:

ABBRUCH GMTIME LTIME SRAND
UND IARGC ODER SYSTEM
GETARG IRAND RAND ZEIT
GETENV LSHIFT RSHIFT XOR

usw.: Erkennen Sie diese allgemeinen VMS-spezifischen intrinsischen Funktionen:

DATUM IDATE SEKUNDEN ZEIT

ERRSNS RAN SIZEOF

iargc-no-argument:
Geben Sie an, dass IARGC ohne Argumente aufgerufen werden kann.

iargc-one-argument:
Geben Sie an, dass IARGC mit einem Argument aufgerufen werden kann.

Rand-kein-Argument:
Geben Sie an, dass RAND und IRAND ohne Argumente aufgerufen werden können.

Rand-eins-Argument:
Geben Sie an, dass RAND und IRAND mit einem Argument aufgerufen werden können.

Das kein Argument und ein Argument Schlüsselwörter funktionieren wie folgt: Aktivieren der Option
Ursachen ftnchek die entsprechende Syntax für den Aufruf der Funktion zu akzeptieren,
ohne die Möglichkeit der alternativen Syntax auszuschließen. Option umdrehen
off führt dazu, dass die entsprechende Syntax nicht akzeptiert wird. Wenn beide Optionen aktiviert sind
on auf einmal (Standardeinstellung), dann wird jede Syntax akzeptiert. Beide Optionen ausschalten
auf einmal wäre nicht sinnvoll. Diese Optionen haben keine Auswirkung, wenn die Erkennung erfolgt
Unix-Intrinsics wurde deaktiviert.

Beachten Sie, dass diese Einstellung nicht steuert, ob nicht standardmäßige Warnungen ausgegeben werden
über diese Funktionen. Es steuert, ob die Funktionen angenommen werden
intrinsisch oder nicht, was bestimmt, wie ihre Verwendung überprüft wird. Wenn funktioniert in
Sind alle diese Sätze enthalten, werden ihre Aufrufe entsprechend überprüft
Regeln für die intrinsischen Funktionen; andernfalls werden sie wie gewohnt überprüft (benutzerdefiniert).
geschrieben) externe Funktionen. Die nicht standardmäßigen Warnungen werden von gesteuert
-f77=intrinsisch .

Der Standardwert dieser Einstellung entspricht -intrinsic=alle gefolgt von
-intrinsic=no-vms für die Unix-Version, -intrinsic=kein-Unix für die VMS-Version und
-intrinsic=no-unix,no-vms für andere Versionen.

Hinweis: In Versionen von ftnchek vor 2.10, die -intrinsisch flag nahm eine Zahl an
Argument anstelle einer Liste von Optionen. Im Interesse der Benutzer, die möglicherweise geschrieben haben
Aufrufende Skripte ftnchek Auf diese Weise wird die numerische Form weiterhin akzeptiert. Der
Die numerische Form der Einstellung besteht aus drei Ziffern. Die Einerstelle wählt die aus
Satz intrinsischer Funktionen, die unterstützt werden sollen. Die Ziffer 0 wählt nur Fortran 77 aus
Standard-Intrinsics sowie diejenigen, die zur Unterstützung der nicht standardmäßigen erweiterten Präzision erforderlich sind
Datentypen. Die Ziffer 1 entspricht extra, 2 ist äquivalent zu extra, Unix und
3 entspricht extra, vms. Die Zehnerstelle dieser Einstellung steuert die Syntax
der intrinsischen Funktion RAND, und die Hunderterstelle steuert die Syntax der
IARGC-Funktion. Geben Sie für diese Ziffern 0 an, um einen Aufruf mit Nr. zu erfordern
Argument, 1, um ein Argument zu erfordern, und 2, um eine der beiden Formen zuzulassen.

Siehe auch: -f77.

-Bibliothek
Dieser Schalter wird verwendet, wenn mehrere Unterprogramme in einer Datei enthalten sind, jedoch nicht
Alle werden von der Anwendung verwendet. Normalerweise, ftnchek warnt Sie ggf
Unterprogramme werden definiert, aber nie verwendet. Dieser Schalter unterdrückt diese Warnungen.
Standard = Nein.

Dieser Schalter steuert auch, welche Unterprogrammaufrufe und COMMON-Blockdeklarationen es sind
überprüft. Wenn eine Datei mit gelesen wird -Bibliothek Wenn das Flag aktiv ist, ruft das Unterprogramm auf
und COMMON-Deklarationen, die in einer Routine in dieser Datei enthalten sind, werden nur überprüft, wenn
Diese Routine befindet sich im Aufrufbaum des Hauptprogramms. Wenn andererseits die
-Bibliothek Der Schalter ist dann ausgeschaltet ftnchek prüft die Aufrufe jeder Routine durch
jede andere Routine, unabhängig davon, ob diese Routinen jemals tatsächlich sein könnten
wird zur Laufzeit aufgerufen und alle COMMON-Blockdeklarationen werden ebenfalls verglichen
Zustimmung.

Der Unterschied zwischen diesem Schalter und dem -usage=no-ext-unused Option für
Unterprogrammen besteht darin, dass Letzteres nur die Warnung vor laufenden Routinen unterdrückt
deklariert, aber nicht verwendet. Der -Bibliothek Schalter geht weiter und schließt unbenutzte aus
Routinen, die verarbeitet werden, während sie in Kraft sind, aus allen Gegenprüfungen von Argumenten und
Auch COMMON-Blockdeklarationen.

(Wenn es nirgendwo in der Dateigruppe ein Hauptprogramm gibt, das ftnchek hat gelesen, also
dass es also keinen Aufrufbaum gibt ftnchek sucht nach Routinen, die nicht zur Bibliothek gehören
die von keiner anderen Routine aufgerufen werden, und verwenden diese als Ersatz für die Hauptroutine
Programm beim Aufbau des Aufrufbaums und bei der Entscheidung, was überprüft werden soll. Wenn kein solches Top-
Nicht-Bibliotheksroutinen der Ebene werden gefunden, dann alle Aufrufe zwischen Modulen und alle COMMON
Erklärungen werden geprüft.)

Siehe auch: -Argumente, -calltree, -gemeinsam, -extern, -Verwendungszweck.

-Liste
Gibt an, dass eine Auflistung des Fortran-Programms mit Zeile ausgedruckt werden soll
Zahlen. Wenn ftnchek Erkennt ein Fehler, folgt die Fehlermeldung der Programmzeile
mit einem Caretzeichen ( ^ ), das den Ort des Fehlers angibt. Wenn keine Quellenangabe vorhanden war
angefordert, ftnchek wird trotzdem jede Zeile ausdrucken, die einen Fehler enthält, um das zu unterstützen
Der Benutzer kann ermitteln, wo der Fehler aufgetreten ist. Standard = Nein.

Siehe auch: -Ausgang, \fB-symtab, fB-leise.

-makedcls=Liste
Bereiten Sie eine sauber formatierte Datei mit Deklarationen von Variablen, allgemeinen Blöcken usw. vor
Namenslisten, zur möglichen Einbindung in den Quellcode. Die Erklärungen sind
wird in einer Datei mit demselben Namen wie der Quellcode, jedoch mit der Erweiterung, gespeichert
gewechselt zu .dcl. Wenn keine Deklarationen in die Datei geschrieben werden, wird sie gelöscht
Reduzieren Sie die Unordnung leerer Dateien.

Wenn die Eingabe aus der Standardeingabe und nicht aus einer benannten Datei stammt, sind dies Deklarationen
in die Standardausgabe geschrieben.

Variablen werden innerhalb jeder Deklarationsklasse und in alphabetischer Reihenfolge deklariert
Typ, mit Integer-Variablen zuerst, wegen ihrer späteren möglichen Verwendung in Arrays
Abmessungen.

PARAMETER-Anweisungen stellen eine Ausnahme von der Regel der alphabetischen Reihenfolge dar, da die
Der Fortran 77-Standard erfordert, dass die Ausdrücke, die Parameterwerte definieren, referenzieren
nur auf Konstanten und bereits definierte Parameternamen. Dies erzwingt das Original
Quelldateireihenfolge solcher Anweisungen, die in den Deklarationsdateien beibehalten werden sollen.

Ausdrückliche Erklärung von alle Variablen gelten als gute moderne Programmierung
üben. Durch die Verwendung von Compileroptionen zum Zurückweisen nicht deklarierter und falsch geschriebener Variablen
Variablennamen (oder Namen, die über Spalte 72 hinausgehen) können zur Kompilierungszeit abgefangen werden.
Explizite Deklarationen erleichtern auch die Änderung der Gleitkommagenauigkeit erheblich
mit Filtern wie z.B dtoq(1L), dtos(1L), fd2s(1L), fs2d(1L), qtod(1L) und
stand(1L). Diese Programme sind in der Lage, explizite Gleitkommatypen zu ändern
Typdeklarationen, intrinsische Funktionen und Konstanten, sondern weil dies nicht der Fall ist
eine gründliche lexikalische und grammatikalische Analyse des Fortran-Quellcodes durchführen,
Sie können keine geänderten Typdeklarationen für nicht deklarierte Variablen bereitstellen. Standard
Einstellung = 0, Einschalten = 1.

Verschiedene Optionen für die Form der Deklarationsdatei werden durch gesteuert Liste,
die aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern besteht. Es gibt drei besondere
Stichworte: alle um alle Optionen zu aktivieren, keine um sie alle auszuschalten, und Hilfe zu
Drucken Sie die Liste aller Schlüsselwörter mit einer kurzen Erklärung zu jedem aus. Wenn Liste is
weggelassen, -makedcls entspricht -makedcls=Deklarationen (also produzieren die
Deklarationsdatei mit den Standardoptionen) und -nomakedcls entspricht
-makedcls=none.

Aus Kompatibilitätsgründen mit früheren Versionen von ftnchek, eine numerische Form dieser Einstellung
wird auch akzeptiert: die Liste wird durch eine Zahl ersetzt, die die Summe der Zahlen ist
in Klammern neben den Schlüsselwörtern in der folgenden Liste. Die Warnschlüsselwörter
mit ihrer Bedeutung sind wie folgt:

Erklärungen (1):
Schreiben Sie eine Deklarationsdatei. (Dies wird durch alle anderen Optionen impliziert, und
kann weggelassen werden, wenn andere Optionen angegeben sind.)

Nur nicht deklariert (2):
Standardmäßig sind alle Variablen in der Deklarationsdatei enthalten. Mit diesem
Option, nur einschließen nicht deklariert Variablen. Diese Einstellung ist nützlich, wenn Sie
Ich möchte nach nicht deklarierten Variablen suchen, da Fortran-Quelldateien mit allen
Ordnungsgemäß deklarierte Variablen führen nicht zu einem .dcl Datei. Mit diesem
Option werden gemeinsame Blöcke und Namenslisten nicht in die aufgenommen
Deklarationsdatei, da sie naturgemäß nicht nicht deklariert werden können.

kompakt (4):
Die Erklärungen sind normalerweise hübsch gedruckt, um sauber aneinandergereiht zu sein
Spalten, wie in den Deklarationsdateien, die vom Extended PFORT Verifier ausgegeben werden,
pfort(1L). Dieser Optionswert wählt stattdessen eine kompakte Ausgabe ohne Spalte
Ausrichtung.

Fortsetzungszeilen verwenden (8):
Bewirkt, dass Fortsetzungszeilen verwendet werden, sofern dies zulässig ist. Die Standardeinstellung ist „to“.
Beginnen Sie in jeder Zeile eine neue Deklaration. Die Verwendung dieser Option ist sinnvoll
Zusammen mit kompakt.

Schlüsselwörter-Kleinbuchstaben (16):
Geben Sie Fortran-Schlüsselwörter in Kleinbuchstaben statt in Standard-Großbuchstaben aus.

vars-and-consts-lowercase (32):
Geben Sie Variablen und Konstanten in Kleinbuchstaben statt in der Standardschrift aus
Großbuchstaben. Zeichenfolgekonstanten sind von dieser Option nicht betroffen.

ausschließen-sftran3 (64):
Lassen Sie Deklarationen interner Integer-Variablen weg, die vom SFTRAN3 erzeugt werden
Präprozessor, xsf3(1L), als Teil der Übersetzung von strukturiertem Fortran
Anweisungen zum gewöhnlichen Fortran. Diese Variablen haben einen sechsstelligen Namen
die Form NPRddd, NXdddd, N2dddd und N3dddd, Wobei d ist eine Dezimalziffer.
Weil sie im SFTRAN3-Quellcode unsichtbar sind und sich ändern, wenn die
Da der SFTRAN3-Code geändert wird, sollten solche Variablen nicht explizit deklariert werden.
Stattdessen sollten sie einfach den standardmäßigen Fortran-Datentyp INTEGER annehmen
auf ihrem Anfangsbrief, N.

Sternchen-Kommentar (128):
Verwenden Sie als Kommentarzeichen ein Sternchen; der Standardwert ist andernfalls „C“.

Kommentar-Zeichen-Kleinbuchstaben (256):
Als Kommentarzeichen verwenden Sie „c“ statt „C“ oder „*“.

Array-Dimensionen unterdrücken (512):
Unterdrücken Sie die Dimensionierung von Arrays in den generierten Deklarationen. Diese Option
ist für die Verwendung mit Code ohne Typdeklarationen vorgesehen, um die Deklaration zu ermöglichen
Dateien können ohne Änderung in den Code eingefügt werden. Da wird der Code haben
Dimensionsanweisungen bereits, Dimensionierung der Array-Variablen im Typ
Anweisungen der Deklarationsdatei sind überflüssig. Diese Option sollte genutzt werden
nur in Verbindung mit Option 2 = undeclared-only, da sonst beliebig
Arrays, die in einer Typanweisung dimensioniert wurden, verlieren ihre Gültigkeit
Bemaßung.

Freiform- (1024):
Erstellen Sie Erklärungen in freier Quellform. Dieser Modus wird automatisch verwendet, wenn
Die Eingabequelle ist Freiform. Verwenden Sie diese Option, um Deklarationen zu erstellen
freie Form, auch wenn die Eingabe in fester Form erfolgt. Freiformerklärungen sind
nur 2 statt 6 Spalten eingerückt, verwenden Sie das Ausrufezeichen als Kommentar
Zeichen und kennzeichnen Fortsetzungszeilen durch ein kaufmännisches Und am Ende des Zeichens
Zeile wird fortgesetzt.

Die Deklarationsdateien enthalten eindeutige Kommentare, die den Anfang und das Ende von markieren
Deklarationen für jede Programmeinheit, um die Verwendung von Texteditor-Makros zu erleichtern
Zusammenführen der Deklarationen wieder in den Quellcode.

Das ftnchek Der Vertrieb umfasst ein Programm, dcl2inc, das die Deklaration verarbeitet
Dateien, um Dateien zu erstellen, die Deklarationen aller COMMON-Blöcke in einem Formular enthalten
Geeignet für die Verwendung als INCLUDE-Dateien. Siehe die dcl2inc(1L) Manpage für Einzelheiten zu
sein Nutzen.

Siehe auch: -mkhtml.

-mkhtml=Liste
Erstellen Sie eine HTML-Dokumentation aus dem Quellcode. Erstellt individuelle HTML-Dateien aus ftnchek
Analyse und Codekommentare. Alle Kommentare unmittelbar vor und nach dem
Funktions- oder Unterprogrammdefinitionen werden in der HTML-Datei erfasst. Keine Neuformatierung von
Quellkommentare werden anders ausgeführt als das Entfernen von FORTRAN-Kommentarzeichen.
Darüber hinaus listet die HTML-Datei die deklarierten lokalen Variablen und den gemeinsamen Block auf
Verwendete Variablen, aufgerufene Funktionen und Unterprogramme, Verwendung von E/A-Einheiten und anderes
Informationen zu jedem Unterprogramm. Normalerweise möchten Sie auch angeben
-call=Baum um die Root-HTML-Datei CallTree.html zu erstellen. (Vielleicht sollte diese Datei
den Namen index.html tragen.)

Über den werden verschiedene Optionen für die Form der HTML-Dateien gesteuert Liste, Die
besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Es gibt drei besondere
Stichworte: alle um alle Optionen zu aktivieren, keine um sie alle auszuschalten, und Hilfe zu
Drucken Sie die Liste aller Schlüsselwörter mit einer kurzen Erklärung zu jedem aus. Wenn Liste is
weggelassen, -mkhtml entspricht -mkhtml=Dokumente (dh das HTML-Dokument erstellen
Dateien mit den Standardoptionen) und -nomkhtmls entspricht -mkhtml=none.

Der Einfachheit halber sind die Optionen für -mkhtml sind die gleichen wie die für
-makedcls außer denen, die nicht anwendbar sind. Ebenso eine numerische Form von
Diese Einstellung kann verwendet werden, gebildet als Summe der Zahlen in Klammern im
Liste unten. Die Warnschlüsselwörter mit ihrer Bedeutung lauten wie folgt:

Unterlagen (1):
Erstellen Sie die HTML-Dokumente. (Dies wird durch alle anderen Optionen impliziert, und
kann weggelassen werden, wenn andere Optionen angegeben sind.)

kompakt (4):
Die Erklärungen sind normalerweise hübsch gedruckt, um sauber aneinandergereiht zu sein
Säulen. Dieser Optionswert wählt stattdessen eine kompakte Ausgabe ohne Spalte
Ausrichtung.

Fortsetzungszeilen verwenden (8):
Bewirkt, dass Fortsetzungszeilen verwendet werden, anstatt eine neue Deklaration zu beginnen
in jeder Zeile. Diese Option kann zusammen mit verwendet werden kompakt.

Schlüsselwörter-Kleinbuchstaben (16):
Geben Sie Fortran-Schlüsselwörter in Kleinbuchstaben statt in Standard-Großbuchstaben aus.

vars-and-consts-lowercase (32):
Geben Sie Variablen und Konstanten in Kleinbuchstaben statt in der Standardschrift aus
Großbuchstaben. Zeichenfolgekonstanten sind von dieser Option nicht betroffen.

ausschließen-sftran3 (64):
Lassen Sie Deklarationen interner Integer-Variablen weg, die vom SFTRAN3 erzeugt werden
Präprozessor, xsf3(1L). (Sehen -makedcls zur Diskussion.)

Array-Dimensionen unterdrücken (512):
Unterdrücken Sie die Dimensionierung von Arrays in den generierten Deklarationen. Das ist
Normalerweise unerwünscht, ist aber verfügbar, wenn Sie dies aus irgendeinem Grund nicht möchten
Array-Dimensionen, die im HTML angezeigt werden sollen.

Freiform- (1024):
Erstellen Sie Variablendeklarationen in freier Quellform. Dieser Modus ist
Wird automatisch verwendet, wenn die Eingabequelle Freiform ist. Dies betrifft vor allem die
Form von Fortsetzungszeilen, sofern diese verwendet werden.

Siehe auch: -calltree, -makedcls.

-Anfänger
Dieses Flag soll Anfängern eine hilfreichere Ausgabe bieten. Es hat zwei
Effekte:

(a) stellt eine zusätzliche Meldung bereit, die besagt, dass eine Funktion verwendet wird, aber nicht
irgendwo definiert, könnte es sich um ein Array handeln, das der Benutzer vergessen hat, in a zu deklarieren
DIMENSION-Anweisung (da die Syntax einer Array-Referenz dieselbe ist
einer Funktionsreferenz).

(b) ändert die Form der Fehlermeldungen und Warnungen. Wenn die Flagge gedreht wird
aus durch -Nonovie, werden diese Nachrichten in einem Stil gedruckt, der eher UNIX ähnelt
Band.

Standard = ja.

-Ausgabe=Dateinamen
Diese Einstellung dient der Bequemlichkeit auf Systemen, die eine einfache Bedienung nicht zulassen
Umleitung der Ausgabe von Programmen. Wenn diese Einstellung gegeben ist, ist die Ausgabe welche
Die normalerweise auf dem Bildschirm angezeigte Datei wird stattdessen an die benannte Datei gesendet. Notiz,
jedoch, dass Bedienungsfehler von ftnchek selbst (z. B. außer Platz oder nicht möglich).
geöffnete Datei) werden weiterhin an den Bildschirm gesendet. Die Erweiterung für den Dateinamen ist
optional, und wenn keine Erweiterung angegeben ist, die Erweiterung .lis werden verwendet.

-pointersize=num
Gibt die Größe einer „Cray-Zeiger“-Variablen an num Bytes. Standard = Turn-
on = 4 Bytes.

Die Zeigergröße wird verwendet, um Warnungen vor Präzisionskonflikten im Zusammenhang mit dem Zeiger zu geben
Variablen, beispielsweise wenn einem Zeiger ein Wert aus einer Zuweisung zugewiesen wird
Routine oder als Unterprogrammparameter übergeben.

Siehe auch: -f77, -Portabilität, -Trunkierung, -Wortgröße.

-Portabilität=Liste
ftnchek gibt Warnungen für eine Vielzahl nicht tragbarer Verwendungen aus. Beispiele beinhalten
die Verwendung von Tabulatoren, außer in Kommentaren oder innerhalb von Zeichenfolgen, die Verwendung von Hollerith
Konstanten und die Äquivalenz von Variablen unterschiedlicher Datentypen. Diese Option
erzeugt keine Warnungen für unterstützte Erweiterungen des Fortran 77-Standards,
Dies kann auch zu Portabilitätsproblemen führen. Um diese zu fangen, verwenden Sie die -f77 Einstellung.
Standardmäßig sind alle Warnungen deaktiviert.

Diese Einstellung bietet eine detaillierte Kontrolle über die Warnungen bezüglich möglicher Portabilität
Probleme. Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Es gibt
drei spezielle Schlüsselwörter: alle um alle Warnungen vor nicht tragbaren Nutzungen einzuschalten,
keine um sie alle auszuschalten, und Hilfe um die Liste aller Schlüsselwörter mit a auszudrucken
jeweils eine kurze Erklärung. Wenn Liste wurde weggelassen, -Portabilität entspricht
-portabilität=alle und -keine Portabilität entspricht -portability=nonedem „Vermischten Geschmack“. Seine
Warnungsschlüsselwörter mit ihrer Bedeutung lauten wie folgt:

umgekehrter Schrägstrich:
Backslash-Zeichen in Zeichenfolgen. Da einige Compiler den Backslash als behandeln
Wenn es sich um ein Escape-Zeichen handelt, kann seine Anwesenheit zu Problemen führen, auch wenn es verwendet wird
auf normgerechte Weise.

gemeinsame Ausrichtung:
COMMON-Blockvariablen sind nicht in absteigender Reihenfolge der Speichergröße sortiert. Manche
Compiler benötigen diese Reihenfolge aufgrund der Anforderungen an die Speicherausrichtung.

hollerith:
Hollerith-Konstanten (außer innerhalb der FORMAT-Spezifikationen). Die Hollerith
Der Datentyp ist eine Funktion von Fortran IV, die in Fortran 77 gelöscht wurde
Standard. Er wird durch den Zeichendatentyp ersetzt. Hollerith aufbewahren
Daten in Variablen eines numerischen oder logischen Datentyps sind aufgrund von nicht portierbar
unterschiedliche Wortgrößen.

lange Saite:
Zeichenfolgenkonstanten, Variablen oder Ausdrücke mit einer Länge von mehr als 255 Zeichen.

gemischte Äquivalenz:
Variablen unterschiedlicher Datentypen äquivalent.

gemischte Größe:
Mit der Standardgenauigkeit deklarierte Variablen werden mit explizit angegebenen Variablen verwendet
Präzision, in Ausdrücken, Zuweisungen oder als Argumente. Wenn zum Beispiel a
Die als REAL*8 deklarierte Variable wird als äquivalent zu DOUBLE PRECISION behandelt.

echt:
Index und Grenzen der nicht ganzzahligen DO-Schleife. Diese können dazu führen, dass die Ergebnisse eines Programms beeinträchtigt werden
hängen von den Hardwareeigenschaften des jeweiligen verwendeten Computers ab.

param-implicit-type:
Implizite Typisierung eines Parameters durch den Datentyp des zugewiesenen Werts, falls vorhanden
weicht vom Standardtyp ab. Diese Warnung kann nur implizit auftreten
Die Parametereingabe wurde von aktiviert -source=param-implicit-type
Option, oder wenn die PARAMETER-Anweisung eine nicht standardmäßige Form hat, ohne
Klammern. Wenn diese Option aktiviert ist, sind alle Instanzen implizit
Parametertypisierung erfolgt und wenn sich der implizite Typ vom unterscheidet
Der Standardtyp basiert auf dem ersten Buchstaben des Parameternamens und wird gewarnt
um. Durch implizite Parametertypisierung kann sich die Semantik von Anweisungen ändern
wo der Parameter verwendet wird, was zu Portabilitätsproblemen führt.

Tab: Tabulatoren im Quellcode. Tabs werden von unterschiedlich interpretiert
Compiler. Diese Warnung wird nur einmal am Ende der Datei ausgegeben.

Siehe auch: -f77, -f90, -f95, -ziemlich, Stil, -Wortgröße.

-hübsch=Liste
Steuert bestimmte Meldungen im Zusammenhang mit der Darstellung des Quellcodes. Diese warnen
über Dinge, die ein Programm möglicherweise weniger lesbar machen oder den Leser täuschen könnten.
Standardmäßig sind alle Warnungen aktiviert.

Diese Einstellung bietet eine detaillierte Kontrolle über die Warnungen zum Erscheinungsbild. Der
Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Da alle Warnungen aktiviert sind
Fügen Sie standardmäßig ein Schlüsselwort mit dem Präfix ein Nein- um eine bestimmte Warnung auszuschalten.
Es gibt drei spezielle Schlüsselwörter: alle um alle Warnungen vor Irreführung einzuschalten
Auftritte, keine um sie alle auszuschalten, und Hilfe um die Liste aller auszudrucken
Schlüsselwörter mit jeweils einer kurzen Erklärung. Wenn Liste wurde weggelassen, -ziemlich is
entspricht -hübsch=alle und -nicht hübsch entspricht -pretty=keinedem „Vermischten Geschmack“. Seine
Warnungsschlüsselwörter mit ihrer Bedeutung lauten wie folgt:

Alternativ-Rückkehr:
Eine RETURN-Anweisung verfügt über eine Konstante, die einen alternativen Rückkehrpunkt angibt
liegt nicht zwischen 0 und der Anzahl der Dummy-Argumente, die Labels sind. Das ist
legal und hat die gleiche Wirkung wie eine RÜCKGABE ohne alternative Rückgabe
Ausdruck, deutet jedoch darauf hin, dass der Programmierer beabsichtigte, eine Alternative zu verwenden
Rücksendeetikett, das nicht mitgeliefert wird.

eingebetteter Raum:
In Variablennamen oder in Mehrzeichenoperatoren wie ** eingebettete Leerzeichen.

Fortsetzung:
Fortsetzungszeichen nach einer Kommentarzeile.

lange Linie:
Zeilen (außer Kommentare) mit einer Breite von mehr als 72 Spalten (normalerweise sind es mehr als 72 Spalten).
vom Compiler ignoriert).

fehlender Platz:
Platzmangel zwischen Variable und einem vorangehenden Schlüsselwort.

mehrfach gemeinsam:
COMMON-Block, der in mehreren Anweisungen deklariert wird. Es erfolgt keine Warnung, wenn die
Anweisungen sind bis auf Kommentarzeilen fortlaufend.

Mehrfachnamenliste:
NAMELIST in mehreren Anweisungen deklariert. Es erfolgt keine Warnung, wenn die
Anweisungen sind bis auf Kommentarzeilen fortlaufend.

Klammern:
Klammern um eine Variable allein. Als Unterprogrammargument dies
Macht das Argument zu einem Ausdruck, der vom Unterprogramm nicht geändert werden kann.

Beachten Sie, dass in der freien Quellform zusätzlicher und fehlender Platz verboten ist
Fortran 90 Standard und stellen keine bloßen Stilverstöße dar. In diesem Fall die Warnungen
werden durch Syntaxfehlermeldungen ersetzt und können nur mit deaktiviert werden
-nocheck.

Siehe auch: -f77, -Portabilität, Stil.

-Projekt=Liste
ftnchek erstellt aus jeder dabei eingegebenen Quelldatei eine Projektdatei
Option ist aktiviert. Die Projektdatei erhält denselben Namen wie die Eingabe
Datei, aber mit der Erweiterung .f or .zum ersetzt durch .prj. (Wenn die Eingabe von stammt
Standardeingabe, die Projektdatei wird benannt ftnchek.prj.) Standard = keine.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Dort sind drei
spezielle Schlüsselwörter: alle um alle Optionen zu aktivieren, keine um sie alle auszuschalten, und
Hilfe um die Liste aller Schlüsselwörter mit einer kurzen Erklärung zu jedem auszudrucken. Wenn
Liste wurde weggelassen, -Projekt entspricht -Projekt=alle und -kein Projekt is
entspricht -Projekt=keine. Die Schlüsselwörter mit ihrer Bedeutung lauten wie folgt:

erstellen:
Erstellen Sie eine Projektdatei. Standardmäßig wird keine Projektdatei erstellt. Wenn
Diese Option ist nicht aktiviert, die anderen Optionen haben keine Auswirkung.

Trimmrufe:
Reduzieren Sie die Menge der in der Projektdatei gespeicherten Informationen zum Unterprogramm
Erklärungen und Aufrufe. Dies ist die Standardeinstellung. Deaktivieren Sie diese Option nur in
seltene Situationen. (Siehe Diskussion unten.) Der Umfang des Beschnitts variiert
abhängig von -Bibliothek Flagge. Weitere Informationen werden gekürzt, wenn diese Flagge vorhanden ist
eingeschaltet.

trim-common:
Reduzieren Sie die Anzahl der in der Projektdatei gespeicherten allgemeinen Blockdeklarationen.
Dies ist die Standardeinstellung. Deaktivieren Sie diese Option nur in seltenen Situationen. (Sehen
Diskussion unten.) Diese Option hat keine Auswirkung, wenn die -Bibliothek Flagge wird gedreht
aus: Wenn Sie sich nicht im Bibliotheksmodus befinden, werden allgemeine Blockdeklarationen nicht gekürzt
wird unabhängig von dieser Option durchgeführt.

Eine Projektdatei enthält eine Zusammenfassung der Informationen aus der Quelldatei zur Verwendung in
Überprüfung der Übereinstimmung zwischen FUNCTION-, SUBROUTINE- und COMMON-Verwendungen in anderen Dateien.
Es ermöglicht eine inkrementelle Überprüfung, was bei großen Datenmengen Zeit spart
Dateien, die gemeinsam genutzte Unterprogramme enthalten, von denen sich die meisten selten ändern. Du kannst rennen
ftnchek einmal für jede Datei mit dem -Projekt Flag gesetzt, Erstellung der Projektdateien.
Normalerweise würden Sie auch das festlegen -Bibliothek und -noextern Flags zu diesem Zeitpunkt, zu
Unterdrücken Sie Meldungen zur Konsistenz mit anderen Dateien. Nur Fehlermeldungen
Die zu jeder Datei gehörenden Dateien werden zu diesem Zeitpunkt gedruckt. Anschließend ausführen
ftnchek Ohne diese Flags für alle Projektdateien zusammen, um die Konsistenz zu überprüfen
zwischen den verschiedenen Dateien. Alle internen Nachrichten der einzelnen Dateien werden jetzt angezeigt
weggelassen werden. Nur wenn eine Datei geändert wird, muss eine neue Projektdatei erstellt werden
für sie.

Natürlich, wenn die -Projekt Option ist aktiviert, ftnchek wird das Projekt nicht lesen
Dateien als Eingabe.

Normalerweise sollten die Trimmoptionen aktiviert bleiben, wenn Sie ein Projekt erstellen möchten
Dateien für zukünftige Eingaben ftnchek. Da das Trimmen standardmäßig aktiviert ist, bedeutet dies:
das einfach den Befehl geben -Projekt ohne Optionsliste wird empfohlen
Modus. Die Ausstattungsoptionen dienen nur der Bequemlichkeit für diejenigen, die dies möchten
Verwenden Sie Projektdateien für andere Zwecke als zur Überprüfung des Programms
ftnchek. Um Projektdateien für ihren vorgesehenen Zweck verwenden zu können, sollten die Zuschneideoptionen vorhanden sein
nicht ausgeschaltet werden.

Projektdateien enthalten nur Informationen, die zur Überprüfung der Übereinstimmung zwischen Dateien erforderlich sind.
Das bedeutet, dass eine Projektdatei keinen Nutzen hat, wenn alle Module des Gesamtprogramms vorhanden sind
sind in einer einzigen Datei enthalten.

Eine ausführlichere Diskussion finden Sie im Abschnitt zur Verwendung von Projektdateien.

-rein
Gehen Sie davon aus, dass die Funktionen „rein“ sind, das heißt, dass sie bei Änderungen keine Nebenwirkungen haben
ihre Argumente oder Variablen in einem COMMON-Block. Wenn dieses Flag aktiviert ist,
ftnchek wird seine Bestimmung des eingestellten und verwendeten Status auf die tatsächlichen Argumente stützen
unter der Annahme, dass an eine Funktion übergebene Argumente nicht geändert werden. Es wird
Geben Sie außerdem eine Warnung aus, wenn festgestellt wird, dass eine Funktion eines oder mehrere ihrer Argumente ändert
GEMEINSAME Variablen. Standard = ja.

Wenn dieses Flag deaktiviert ist, werden tatsächliche Argumente verarbeitet, die an Funktionen übergeben werden
auf die gleiche Weise wie tatsächliche Argumente, die an Unterprogramme übergeben werden. Das bedeutet, dass ftnchek
geht davon aus, dass Argumente durch die Funktionen geändert werden können. Es erfolgen keine Warnungen
Wird angegeben, wenn festgestellt wird, dass eine Funktion Nebenwirkungen hat. Weil es eine strengere Kontrolle gibt
möglich, wenn davon ausgegangen wird, dass Funktionen rein sind, sollten Sie dieses Flag nur deaktivieren, wenn
Ihr Programm verwendet tatsächlich Funktionen mit Nebenwirkungen.

-ruhig
Diese Option reduziert die Leistungsmenge bezogen auf den Normalbetrieb, sodass
Fehlermeldungen sind deutlicher zu erkennen. Diese Option dient der Bequemlichkeit
Benutzer, die große Dateisammlungen überprüfen. Die eliminierte Ausgabe umfasst die
Namen von Projektdateien und die Meldung, dass keine Syntaxfehler gefunden wurden.
Außerdem werden einige Leerzeilen entfernt, die normalerweise aus Gründen der Übersichtlichkeit eingefügt werden. (Manche
Dieser Ausgang wird durch den wieder eingeschaltet -Liste und -symtab Optionen.) Standard = Nein.

Hinweis: Die Art und Weise, sich den Unterschied zwischen den zu merken -ruhig und -knapp ist, dass
-ruhig unterdrückt keine warnungsbezogenen Informationen -knapp tut.

Siehe auch: -knapp.

-Referenz
Gibt an, dass eine Who-calls-who-Tabelle gedruckt werden soll. In dieser Tabelle sind die einzelnen Unterprogramme aufgeführt
gefolgt von einer Liste der aufgerufenen Routinen. Dieser Schalter entspricht
-calltree=Referenz. Standard = Nein.

In der Referenzliste werden Routinen weggelassen, die von nicht verwendeten Bibliotheksmodulen aufgerufen werden. Also es
enthält die gleichen Informationen wie für das Call-Tree-Format, nämlich die Hierarchie von
Unterprogrammaufrufe, aber anders gedruckt. Dadurch wird eine Breite zuerst ausgedruckt
Durchlaufen des Aufrufbaums während -calltree=Baum druckt eine Tiefenansicht aus
Durchquerung.

Siehe auch: -calltree, -crossref, -Bibliothek, -Sortieren, -symtab, -vcg.

-Ressourcen
Gibt die Menge der verwendeten Ressourcen aus ftnchek bei der Bearbeitung des Programms. Das
Die Auflistung kann bei der Analyse der Größe und Komplexität eines Programms hilfreich sein. Es kann
helfen auch bei der Auswahl größerer Größen ftnchek's interne Tabellen, falls dies auch der Fall ist
klein, um ein bestimmtes Programm zu analysieren. Standard = Nein.

In dieser Auflistung bezeichnet der Begriff „Chunk-Größe“ die Größe der Speicherblöcke
zugewiesen, um den betreffenden Artikel zu speichern, in Einheiten der Größe eines Artikels, nicht
unbedingt in Bytes. Wenn der ursprünglich zugewiesene Speicherplatz voll ist, steht mehr Speicher zur Verfügung
wird in Blöcken dieser Größe zugewiesen. Im Folgenden finden Sie eine Erläuterung der Elemente
gedruckt:

Quelle Linien verarbeitet:
Gesamtzahl der Codezeilen, mit separaten Summen für Anweisungszeilen und
Kommentarzeilen. Kommentarzeilen umfassen auch Zeilen mit „C“ oder „*“ in Spalte 1
als Leerzeilen und Zeilen, die nur einen Inline-Kommentar enthalten. Aussagezeilen
sind alle anderen Zeilen, einschließlich Zeilen, auf die ein Inline-Kommentar folgt
Code. Fortsetzungszeilen werden als separate Zeilen gezählt. Zeilen in include
Dateien werden jedes Mal gezählt, wenn die Datei eingebunden wird.

Gesamt ausführbar Aussagen:
Anzahl der Anweisungen im Programm, außer Spezifikation, Daten, Anweisung.
Funktions-, FORMAT-, ENTRY- und END-Anweisungen.

Gesamt Anzahl of Module:
Ein Modul ist ein beliebiges externes Unterprogramm, einschließlich des Hauptprogramms, Unterprogrammen,
Funktionen und Blockdateneinheiten. Diese Anzahl bezieht sich auf Module, die innerhalb der definiert sind
Quelle, nicht Module, auf die verwiesen wird. Anweisungsfunktionen sind nicht enthalten. A
Unterprogramme mit mehreren Einstiegspunkten werden nur einmal gezählt.

Gesamt Aussage Etiketten definiert
Anzahl der Etiketten, die Aussagen zugeordnet sind (oft auch als Anweisungsnummern bezeichnet). Der
Es wird die Gesamtanzahl der Etiketten für das gesamte Programm sowie das Maximum angegeben
Nummer in einem einzelnen Unterprogramm.

Max Kennzeichnung Name Zeichen:
Anzahl der Zeichen, die zum Speichern von Bezeichnernamen verwendet werden. Ein Bezeichner ist ein
Variable, Unterprogramm oder allgemeiner Blockname. Lokale Namen sind lokale Namen
Variablen in einem Unterprogramm, während sich globale Namen auf Unterprogramme und allgemeine Variablen beziehen
Blocknamen sowie Dummy-Argumentnamen und allgemeine Variablennamen. Tatsächlich
Hier ist auch der Argumenttext (bis zu 15 Zeichen für jedes Argument) enthalten.
Der für lokale Namen verwendete Platz wird am Ende jedes Moduls nicht wiederhergestellt
Diese Zahl wächst, wie der globale Raum, bis das gesamte Programm analysiert ist.
Leider kann diese Zahl Text enthalten, der mehr als einmal gespeichert wurde.
obwohl eine Heuristik verwendet wird, die in vielen Fällen Duplikate vermeidet.

Max Zeichen Text Zeichen:
Ein Token ist die kleinste syntaktische Einheit der FORTRAN-Sprache oberhalb der Ebene
einzelner Charaktere. Ein Token kann beispielsweise ein Variablenname sein, a
numerische Konstante, eine Textzeichenfolge in Anführungszeichen oder ein Satzzeichen. Zeichen
Text wird gespeichert, während ein Modul verarbeitet wird. Aus technischen Gründen
Einzelzeichen-Token sind in dieser Summe nicht enthalten. Artikel, die es nicht sind
Die in der Symboltabelle dargestellten Elemente können dupliziert werden. Der Platz für Tokentext ist
am Ende jedes Moduls wiederhergestellt, daher stellt diese Zahl das Maximum für dar
irgendein Modul.

Max aus einer regionalen Symbole:
Dies ist die größte Anzahl von Einträgen in der lokalen Symboltabelle für ein Modul.
Lokale Symboltabelleneinträge umfassen alle Variablen und Parameter sowie einen gemeinsamen Block
Namen, Anweisungsfunktionen, externe Unterprogramme und intrinsische Funktionen
vom Modul referenziert. Literale Konstanten werden nicht im lokalen Symbol gespeichert
Tabelle.

Max globale Symbole:
Dies ist die Anzahl der Einträge in der globalen Symboltabelle am Ende
wird bearbeitet. Zu den globalen Symboltabelleneinträgen gehören externe Unterprogramme und allgemeine
Blocknamen. Intrinsische Funktionen und Anweisungsfunktionen sind nicht enthalten.

Max Anzahl of Tokenlisten:
Eine Tokenliste ist eine Folge von Token, die das tatsächliche Argument oder Dummy-Argument darstellen
Liste eines Unterprogramms oder die Liste der Variablen in einem gemeinsamen Block oder einer Namensliste.
Daher stellt diese Zahl die größte Summe aus COMMON, CALL, NAMELIST und dar
ENTRY-Anweisungen und Funktionsaufrufe für ein beliebiges Modul. Der Raum ist
am Ende jedes Moduls wiederhergestellt.

Max Zeichen Liste/Baum Raum:
Dies ist die größte Anzahl an Token in allen Token-Listen und Token-Bäumen von
irgendein Modul. Bei der Analyse eines Ausdrucks wird ein Token-Baum gebildet: every
Der Operand ist ein Blatt des Baums und die Operatoren sind die Knoten. Deshalb dies
Die Zahl ist ein Maß für die maximale Komplexität eines einzelnen Moduls. Für
Beispielsweise hat ein Modul mit vielen langen arithmetischen Ausdrücken einen hohen Wert
Nummer. Beachten Sie, dass die Anzahl der Token im Gegensatz zum oben beschriebenen Token-Text beträgt
unabhängig von der Länge der Variablennamen oder Literalkonstanten im
Ausdrücke.

Nummer of Unterprogramm Aufrufe:
Dies ist die Summe der Anzahl der CALL-Anweisungen und Funktionen über alle Module
Aufrufe (außer intrinsische Funktionen und Anweisungsfunktionen).

Nummer of verbreitet Schutzmassnahmen bei erklärt:
Dies ist die Summe der Anzahl gemeinsamer Blockdeklarationen über alle Module.
Das heißt, jede Deklaration eines Blocks in einem anderen Modul wird gezählt
separat. (Der Standard erlaubt mehrere Deklarationen eines Blocks innerhalb der
gleiches Modul; diese werden als nur eine Erklärung gezählt, da sie es sind
entspricht einer einzelnen langen Deklaration.)

Nummer of Array schwach & stoppen Punkte:
Dies ist die Summe über alle Module der Anzahl der Array-Dimensionen und Parameter
Definitionstextzeichenfolgen, die zur Verwendung durch gespeichert werden -makedcls Möglichkeit. Die Länge von
Die Textzeichenfolgen werden nicht gezählt. Jede Dimension eines mehrdimensionalen Arrays ist
separat gezählt.

Diese Zahlen sind offensichtlich nicht identisch, wenn anstelle von Projektdateien verwendet werden
der ursprüngliche Quellcode. Sogar die Zahlen für globale Einheiten können unterschiedlich sein.
da einige redundante Informationen in Projektdateien eliminiert werden.

-sixchar
Eines der Ziele der ftnchek Das Programm soll Benutzern helfen, tragbares Fortran zu schreiben
Programme. Eine mögliche Ursache für die Nichtportabilität ist die Verwendung von Variablennamen
sind länger als sechs Zeichen. Einige Compiler ignorieren die zusätzlichen Zeichen einfach.
Dieses Verhalten könnte möglicherweise dazu führen, dass zwei verschiedene Variablen berücksichtigt werden
das gleiche. Beispielsweise sind die Variablen AVERAGECOST und AVERAGEPRICE identisch
in den ersten sechs Zeichen. Wenn Sie solche möglichen Konflikte abfangen möchten, verwenden Sie
diese Flagge. Standard = Nein.

Verwenden Sie das -f77=Langnamen wenn Sie auflisten möchten alle Variablen länger als sechs
Zeichen, nicht nur die Paare, die in den ersten sechs gleich sind.

Siehe auch: -f77, -Portabilität.

-Sortieren
Gibt an, dass eine sortierte Liste aller im Programm verwendeten Module gedruckt wird. Das
Die Liste ist in der Reihenfolge „Voraussetzungen“, d. h. jedes Modul wird erst nach allen gedruckt
Module, von denen aus es aufgerufen wird, wurden gedruckt. Dies wird auch als a bezeichnet
„topologische Sortierung“ des Aufrufbaums. Jedes Modul wird nur einmal aufgeführt. Routinen
die nicht im Aufrufbaum des Hauptprogramms stehen, werden weggelassen. Falls es welche gibt
Zyklen im Aufrufdiagramm (illegal in Standard-Fortran) werden sie erkannt und
diagnostiziert. Standard = Nein.

Siehe auch: -calltree, -crossref, -Referenz, -symtab, -vcg.

-Quelle=Liste
Diese Einstellung steuert bestimmte Optionen zur Form des Fortran-Quellcodes.
Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Dort sind drei
spezielle Schlüsselwörter: alle um alle Optionen zu aktivieren, keine um sie alle auszuschalten, und
Hilfe um die Liste aller Schlüsselwörter mit einer kurzen Erklärung zu jedem auszudrucken. Wenn
Liste wurde weggelassen, -source entspricht -source=alle und -Keine Quelle ist gleichwertig
zu -source=keine.

Aus Kompatibilitätsgründen mit früheren Versionen von ftnchek, eine numerische Form dieser Einstellung
wird auch akzeptiert: die Liste wird durch eine Zahl ersetzt, die die Summe der Zahlen ist
in Klammern neben den Schlüsselwörtern in der folgenden Liste. (Der fixiert und kostenlos
Optionen haben keine numerischen Werte.) Die Warnschlüsselwörter mit ihrer Bedeutung sind
wie folgt:

fixiert:
Interpretieren Sie die Quelle als feste Form (mit unterstützten Erweiterungen wie
Ausrufezeichen für Kommentare). Aussagen müssen in den Spalten 7 bis 72 erfolgen
(es sei denn, die -cols Die Einstellung wurde verwendet, um dies zu ändern), Leerzeichen jedoch nicht
signifikanter externer Charakterkontext (aber unter der Warnung davor wird gewarnt). -ziemlich
Möglichkeit). Dies ist der Standardmodus, es sei denn, die Quelldateierweiterung lautet .f90
or .F90. Diese Option kann nicht zusammen mit angegeben werden -source=kostenlos.

kostenlos: Interpretieren Sie die Quelle als freie Form. Anweisungen können an beliebiger Stelle in Spalte 1 stehen
Bis 132 dürfen Kommentare nur mit einem Ausrufezeichen beginnen, Leerzeichen jedoch
An manchen Stellen erforderlich, z. B. zwischen Bezeichnern und Schlüsselwörtern. Das ist
Der Standardmodus, wenn die Quelldateierweiterung lautet .f90 or .F90. Diese Option
kann nicht zusammen mit angegeben werden -source=behoben or -source=dec-tab

Dez-Tab (1):
Akzeptieren Sie Quellen im DEC-Stil im Tabulatorformat. Eine Zeile, die mit einem Tabulator beginnt
wird als neue Anweisungszeile behandelt, es sei denn, das Zeichen nach dem Tabulator ist
eine Ziffer ungleich Null; in diesem Fall wird sie als Fortsetzungszeile behandelt. Der
Die nächste Spalte nach dem Tabulator- oder Fortsetzungszeichen wird als Spalte 7 übernommen. A
Eine Warnung wird ausgegeben, wenn es sich bei der Zeile um eine Fortsetzung handelt
-f77=Dec-Tab ist in Kraft.

vms-include (2):
Akzeptieren Sie INCLUDE-Anweisungen im VMS-Stil. Diese folgen der normalen Syntax, aber
mit den folgenden zusätzlichen Funktionen: (1) die Dateierweiterung, falls nicht angegeben,
Die Standardeinstellung ist dieselbe wie bei einer normalen Quelldateierweiterung. und (2) die Option
/LIST oder /NOLIST können an den Namen der Include-Datei angehängt werden, um die Auflistung zu steuern
seines Inhalts.

Unix-Backslash (4):
Behandelt Backslash-Escapezeichen im UNIX-Stil in Zeichenfolgen. Die Flucht
Die auf den Backslash folgende Sequenz wird gemäß ANSI ausgewertet
Standard für Strings in C: Bis zu drei Ziffern bedeuten einen Oktalwert, ein x
bezeichnet den Anfang einer hexadezimalen Konstante, einer der Buchstaben abfnrt
kennzeichnen spezielle Steuercodes und jedes andere Zeichen (einschließlich Zeilenumbruch)
bezeichnet den Charakter selbst. Wenn diese Quellcodeoption wirksam ist, a
Es wird eine Warnung ausgegeben, wenn die -f77=Backslash Einstellung angegeben ist.

Das Standardverhalten besteht darin, den Backslash wie jeden anderen Normalen zu behandeln
Zeichen, es wird jedoch eine Warnung zur Portabilität generiert, wenn das
-Portabilität Flag ist gesetzt. Aufgrund der Tatsache, dass einige Compiler das behandeln
Wenn ein Backslash auf eine nicht standardmäßige Weise verwendet wird, ist dies für eine standardkonforme Verwendung möglich
Programme gelten als nicht portierbar, wenn sie das Backslash-Zeichen in Zeichenfolgen verwenden.

Da ftnchek macht nicht viel mit der interpretierten Zeichenfolge, das ist selten der Fall
erforderlich, um diese Option zu nutzen. Es ist notwendig, um Falschmeldungen zu vermeiden
Warnungen nur, wenn (a) das überprüfte Programm einen Backslash zum Einbetten eines verwendet
Fügen Sie in einer Zeichenfolge ein Apostroph oder Anführungszeichen ein, anstatt den Standardmechanismus zu verwenden
das Trennzeichen zu verdoppeln; (b) Der Backslash wird verwendet, um das Ende zu umgehen.
Zeile, um eine Zeichenfolge über mehrere Quellzeilen hinweg fortzusetzen; Orca
Die PARAMETER-Definition verwendet eine intrinsische Zeichenfolgenfunktion wie LEN mit einer solchen
eine Zeichenfolge als Argument, und dieser Wert wird später zur Definition des Arrays verwendet
Abmessungen usw.

param-implicit-type (8):
Implizite Typisierung eines Parameters durch den Datentyp des zugewiesenen Werts. Manche
Nicht standardmäßige Compiler ermöglichen möglicherweise, dass der Datentyp des Werts den überschreibt
Fortran 77-Standardtyp eines Parameters, der auf dem ersten Buchstaben von basiert
der Parametername. Diese Option gilt nur für PARAMETER-Anweisungen von
Standardform, die Klammern enthält. Ein Parameter, der explizit angegeben wurde
Der in einer Typanweisung vor der PARAMETER-Anweisung deklarierte Wert ist nicht betroffen
durch diese Option. Im Folgenden wird eine Warnung ausgegeben -f77=param-implicit-type
or -portability=param-implicit-type .

Beachten Sie, dass diese implizite Typisierung als äquivalent zu einem expliziten Typ behandelt wird
Deklaration für den Parameter. Daher, wenn Sie verwenden
-makedcls=nicht deklariert um nur Meldungen von nicht angemeldeten Personen zu erstellen
Variablen, diese Parameter werden nicht enthalten sein.

dec-param-standard-type (16):
Befolgen Sie die Fortran 77-Regel für die Datentypisierung von DEC Fortran-Stilparametern.
Diese werden mithilfe einer nicht standardmäßigen Form der PARAMETER-Anweisung deklariert
es fehlen Klammern. Laut DEC Fortran sind die durch dieses Formular definierten Parameter
Der Datentyp der Anweisung ist durch den Datentyp des Werts gegeben
zugewiesen. Nutzen Sie diese Option, um es zu sagen ftnchek dieser Regel aber nicht zu folgen
Verwenden Sie stattdessen die gleiche Regel wie für Standard-PARAMETER-Anweisungen. Das
Die Option gilt nicht für PARAMETER-Anweisungen der Standardform.

Standardmäßig sind alle diese Quellcodeoptionen außer der deaktiviert
vms-include Option, die in der VMS-Version standardmäßig aktiviert ist.

Siehe auch: -f77, -einschließen, -Portabilität.

-Stil=Liste
Bietet besonders wählerische Warnungen vor veralteter oder altmodischer Programmierung
Konstruktionen. Diese Option ist hilfreich für Bemühungen, einer modernen Programmierung zu folgen
Stil. (Die meisten der im Rahmen dieser Option beanstandeten Dinge sind in der verboten
F Teilmenge Sprache.) By Standard alle Warnungen sind drehte sich um aus.

Das Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Dort sind drei
spezielle Schlüsselwörter: alle um alle Optionen zu aktivieren, keine um sie alle auszuschalten, und
Hilfe um die Liste aller Schlüsselwörter mit einer kurzen Erklärung zu jedem auszudrucken. Wenn
Liste wurde weggelassen, Stil entspricht -style=alle und -kein Style entspricht
-style=keine. Die Warnschlüsselwörter mit ihrer Bedeutung lauten wie folgt:

Block-wenn:
Beschweren Sie sich über die arithmetische IF-Anweisung. Akzeptieren Sie Block-IF oder logisches IF (was
steuert eine einzelne Anweisung).

Konstruktname:
Beschweren Sie sich über unbenannte Blockkonstrukte: IF, DO und SELECT CASE. Beachten Sie, dass
Wenn in der Eröffnungsanweisung eines Konstrukts ein Konstruktname vorhanden ist, dann
Es muss in allen anderen Komponentenanweisungen vorhanden sein (ELSE, END IF,
usw.) des Konstrukts. In diesem Fall fehlt ein Konstruktname auf diesen
Anweisungen erzeugen unabhängig von dieser Option einen Syntaxfehler. Der Zweck
Diese Option besteht darin, zu warnen, wenn dem Konstrukt die Option vollständig fehlt
Namen.

eindeutig-tun:
Beschweren Sie sich, wenn zwei DO-Schleifen eine gemeinsame Abschlussanweisung haben.

do-konstruieren:
Beschweren Sie sich, wenn das Abschlusszeichen einer DO-Schleife etwas anderes als ein END DO oder ist
CONTINUE-Anweisung. Dies ist die Voraussetzung dafür, dass die Schleife erfüllt wird
die Fortran 90-Definition eines Do-Konstrukts.

do-enddo:
Beschweren Sie sich, wenn das Abschlusszeichen einer DO-Schleife etwas anderes als ein END DO ist
Stellungnahme. (Diese Option überschreibt die do-konstruieren Option, gerade sein
strenger.)

Endname:
Beschweren Sie sich über das Fehlen des Unterprogrammnamens am strukturierten END
Aussagen.

format-stmt:
Beschweren Sie sich über das Vorhandensein von FORMAT-Anweisungen. Nur die FORMAT-Anweisungen
selbst werden markiert, nicht die Verweise auf sie in E/A-Listen.

goto: Beschweren Sie sich über das Vorhandensein von unbedingtem, berechnetem oder zugewiesenem GOTO
Aussagen. Beschweren Sie sich auch über alternative Rückgaben (jedoch nicht über Etiketten wie
Unterprogrammargumente).

beschriftet-stmt:
Beschweren Sie sich über das Vorhandensein von Beschriftungen (Zahlen) auf anderen Aussagen als
FORMAT-Anweisungen. (Da FORMAT-Anweisungen wohl praktisch sind und nicht
leicht missbraucht werden, Beschwerden darüber werden von den Separaten kontrolliert
format-stmt Stichwort.)

Programm-STMT:
Beschweren Sie sich über das Fehlen einer PROGRAM-Anweisung am Kopf der Hauptzeile


strukturiertes Ende:
Beschweren Sie sich lieber über die Verwendung einer einfachen END-Anweisung zum Beenden eines Unterprogramms
als eine strukturierte END-Anweisung (END PROGRAM, END SUBROUTINE, END FUNCTION,
oder ENDSATZDATEN).

Siehe auch: -f77, -f90, -f95, -ziemlich, -Portabilität.

-symtab
Für jedes Modul wird eine Symboltabelle ausgedruckt, in der alle Bezeichner aufgeführt sind
im Modul erwähnt. Diese Tabelle gibt den Namen jeder Variablen, ihren Datentyp und
und die Anzahl der Dimensionen für Arrays. Ein Sternchen (*) zeigt an, dass die
Die Variable wurde implizit typisiert und nicht in einem expliziten Typ benannt
Deklarationsanweisung. Die Tabelle listet außerdem alle vom Modul aufgerufenen Unterprogramme auf.
alle deklarierten COMMON-Blöcke usw. Standard = Nein.

Außerdem wird für jedes Modul eine Etikettentabelle gedruckt. Die Tabelle listet jedes Etikett auf
im Modul definiert; die Zeile, in der die Anweisungsbezeichnung definiert ist; und das
Anweisungstyp (ausführbare Datei, Format oder Spezifikation). Die Etiketten sind in aufgeführt
fortlaufende Reihenfolge.

Außerdem wird eine Tabelle gedruckt, in der die vom Modul verwendeten E/A-Einheiten beschrieben werden
Informationen darüber, wie sie verwendet werden: welche Operationen ausgeführt werden, ob die
Der Zugriff erfolgt sequentiell oder direkt und ob die E/A formatiert oder unformatiert ist.

Siehe auch: -calltree, -crossref, -Liste, -Referenz, -Sortieren, -vcg.

-truncation=Liste
Warnen Sie vor möglichen Kürzungs- (oder Rundungs-)Fehlern. Die meisten davon beziehen sich auf
Ganzzahlarithmetik. Standardmäßig sind alle Warnungen aktiviert.

Diese Einstellung bietet detaillierte Kontrolle über die Warnungen vor möglicher Kürzung
Fehler. Der Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Da alle
Warnungen sind standardmäßig aktiviert. Fügen Sie ein Schlüsselwort mit dem Präfix ein Nein- a ausschalten
besondere Warnung. Es gibt drei spezielle Schlüsselwörter: alle um alles einzuschalten
Warnungen vor Kürzungen, keine um sie alle auszuschalten, und Hilfe um die Liste auszudrucken
Alle Schlüsselwörter mit jeweils einer kurzen Erklärung. Wenn Liste wurde weggelassen, -Trunkierung
entspricht -truncation=alle und -notruncation entspricht
-truncation=none. Die Warnschlüsselwörter mit ihrer Bedeutung lauten wie folgt:

int-div-exponent:
Verwendung des Ergebnisses einer ganzzahligen Division als Exponent. Dies deutet darauf hin, dass a
Es handelt sich um einen echten Quotienten. Ein Beispiel wäre das Schreiben von X**(1/3) zur Auswertung
die Kubikwurzel von X. Der korrekte Ausdruck ist X**(1./3.).

int-div-real:
Konvertierung eines Ausdrucks, der eine ganzzahlige Division beinhaltet, in eine reelle Zahl. Das
legt nahe, dass ein reeller Quotient beabsichtigt ist.

int-div-null:
Division in einem ganzzahligen konstanten Ausdruck, der das Ergebnis Null ergibt.

int-neg-power:
Potenzierung einer ganzen Zahl durch eine negative ganze Zahl (was Null ergibt, es sei denn
die Basis-Ganzzahl ist betragsmäßig 1). Dies deutet darauf hin, dass es sich um eine echte Basis handelt
beabsichtigt.

Förderung:
Automatische Umwandlung einer Größe mit niedrigerer Präzision in eine Größe mit höherer Genauigkeit
Präzision. Der Genauigkeitsverlust für reale Variablen in diesem Prozess beträgt
vergleichbar mit der entsprechenden Herabstufung. Für eine Beförderung erfolgt keine Warnung
von ganzzahligen Größen zu reellen Größen, da dies normalerweise genau ist.

real-do-index:
Verwendung eines nicht ganzzahligen DO-Index in einer Schleife mit ganzzahligen Grenzen. Ein ganzzahliges DO
Unabhängig von dieser Einstellung wird immer vor einem Index mit echten Grenzen gewarnt.

Real-Index:
Verwendung eines nicht ganzzahligen Array-Index.

bedeutende Figuren:
Überspezifizierung einer Konstante mit einfacher Genauigkeit. Dies kann auf ein Doppel hinweisen
Präzisionskonstante war vorgesehen.

Größenherabstufung:
Automatische Umwandlung einer Größe mit höherer Präzision in eine Größe mit niedrigerer Genauigkeit
vom gleichen Typ. Diese Warnung tritt nur auf, wenn eine explizite Größe verwendet wird
Deklarieren des Typs eines oder beider Operanden in einer Zuweisung. Zum Beispiel ein
Es wird eine Warnung ausgegeben, wenn eine REAL*8-Variable einer REAL-Variablen zugewiesen wird.
wenn die Standardwortgröße von 4 gilt. Eine Verwarnung erfolgt auch, wenn a
Eine lange Ganzzahl wird einer kürzeren Zahl zugewiesen, z. B. wenn es sich um eine Ganzzahl handelt
Der Ausdruck wird einer INTEGER*2-Variablen zugewiesen. Es gibt eine Ausnahme
Dies ist der letzte Fall, nämlich wenn die rechte Seite der Aufgabe klein ist
Literalkonstante (weniger als 128). Typherabstufung: automatische Konvertierung von a
Eine Menge mit höherer Präzision wird in eine Menge mit geringerer Präzision eines anderen Typs umgewandelt. Das
Die Warnung beinhaltet die Konvertierung reeller Größen in Ganzzahlen mit doppelter Genauigkeit
zu reeller Zahl mit einfacher Genauigkeit und Zuweisung einer längeren Zeichenfolge zu a
kürzere.

Die Warnungen vor Beförderungen und Herabstufungen gelten auch für komplexe Konstanten.
Betrachtet man die Präzision als die des Real- oder Imaginärteils? Warnungen vor
Beförderungen und Herabstufungen werden nur dann gewährt, wenn die Umwandlung automatisch erfolgt.
zB in Ausdrücken gemischter Präzision oder in einer Zuweisungsanweisung. Wenn intrinsisch
Wenn für die Konvertierung Funktionen wie INT verwendet werden, wird keine Warnung ausgegeben.

Siehe auch: -Portabilität, -Wortgröße.

-usage=Liste
Warnung vor ungenutzten oder möglicherweise nicht initialisierten Variablen, ungenutzten gemeinsamen Blöcken,
undefinierte oder nicht verwendete Anweisungsbezeichnungen und nicht verwendete oder nicht definierte Unterprogramme. Von
Standardmäßig sind alle Warnungen aktiviert.

Diese Einstellung bietet eine detaillierte Kontrolle über die Warnungen zu einer möglichen Nutzung
Fehler. Der Liste besteht aus durch Kommas oder Doppelpunkte getrennten Schlüsselwörtern. Da alle
Warnungen sind standardmäßig aktiviert. Fügen Sie ein Schlüsselwort mit dem Präfix ein Nein- a ausschalten
besondere Warnung. Es gibt drei spezielle Schlüsselwörter: alle um alles einzuschalten
Warnhinweise zur Nutzung, keine um sie alle auszuschalten, und Hilfe um die Liste aller auszudrucken
die Schlüsselwörter mit jeweils einer kurzen Erklärung. Wenn Liste wurde weggelassen, -Verwendungszweck is
entspricht -usage=alle und -Keine Verwendung entspricht -usage=none. Diese
Warnungen decken vier Hauptkategorien von Objekten ab: Unterprogramm-Dummy-Argumente, allgemein
Blöcke und Variablen, Unterprogramme und Funktionen sowie lokale Variablen. Warnungen
undefinierte Elemente einschließen, definierte Elemente multiplizieren, nicht verwendete Elemente usw. Die Warnung
Schlüsselwörter mit ihrer Bedeutung sind wie folgt:

arg-alias:
Ein skalares Dummy-Argument ist tatsächlich dasselbe wie ein anderes und ist (oder kann sein)
geändert. Der Fortran 77-Standard (Abschnitt 15.9.3.6) verbietet das Ändern eines
Argument, das einem anderen Alias ​​zugeordnet ist.

arg-array-alias:
Ein Dummy-Argument, das ein Array oder Array-Element ist, befindet sich im selben Array wie
ein anderer und wird modifiziert. Diese Flagge ähnelt arg-alias aber bietet
separate Kontrolle über Array-Argumente. Es ist schwieriger zu sagen, ob Aliasing vorliegt
tritt im Fall von Arrays auf, also wenn ftnchek gibt zu viele falsche Warnungen,
Mit diesem Flag können die Array-bezogenen deaktiviert werden, ohne sie zu unterdrücken
die Warnungen für Skalare.

arg-common-alias:
ein skalares Dummy-Argument ist dasselbe wie eine gemeinsame Variable im Unterprogramm,
und entweder wird geändert. Dies ist auch durch den Fortran 77-Standard verboten.
Wenn die allgemeine Überprüfung nicht genau ist (siehe -gemeinsam Einstellung), ist es schwieriger
Zeigt an, ob ein Aliasing auftritt, sodass die Warnung ausgegeben wird, wenn die Variable vorhanden ist
irgendwo in einem gemeinsamen Block, der vom Unterprogramm deklariert wird.

arg-common-array-alias:
Ein Dummy-Argument, das ein Array oder Array-Element ist, befindet sich im selben Array wie a
gemeinsame Variable, und eine davon wird geändert. Wenn die allgemeine Überprüfung nicht genau ist,
Die Variable kann sich an einer beliebigen Stelle in einem gemeinsamen Block befinden, der von deklariert wird
Unterprogramm.

arg-const-modifiziert:
Ein Unterprogramm ändert ein Argument, das eine Konstante oder ein Ausdruck ist. Solch
Eine Aktion könnte zu einem anormalen Verhalten des Programms führen.

arg-unbenutzt:
Ein Dummy-Argument wird deklariert, aber nie verwendet. Dies ähnelt dem
var-unbenutzt Das unten beschriebene Schlüsselwort gilt jedoch nur für Argumente.

com-block-unbenutzt:
Es wird ein gemeinsamer Block deklariert, aber keine der darin enthaltenen Variablen wird von irgendjemandem verwendet
Unterprogramm. Diese Warnung wird unterdrückt, wenn die allgemeine Strenge-Einstellung lautet
0.

com-block-volatil:
Ein gemeinsamer Block kann die Definition seines Inhalts verlieren, wenn dies bei gemeinsamen Blöcken der Fall ist
flüchtig. Diese Option hat nur dann eine Auswirkung, wenn die -common=flüchtig Flagge ist drin
Wirkung. Siehe die Diskussion über die -gemeinsam Einstellung oben.

com-var-set-unused:
Einer gemeinsamen Variablen wird ein Wert zugewiesen, aber ihr Wert wird von keiner verwendet
Unterprogramm. Diese Warnung wird unterdrückt, wenn die allgemeine Strenge-Einstellung lautet
0.

com-var-uninitialisiert:
Der Wert einer gemeinsamen Variablen wird in einem Unterprogramm verwendet, aber nicht festgelegt
überall. Bedauerlicherweise, ftnchek führt keine ausreichend gründliche Analyse durch
die Aufrufsequenz, um zu wissen, welche Routinen vor anderen aufgerufen werden. So
Warnungen zu dieser Art von Fehlern werden nur in den Fällen ausgegeben, in denen a
Variable wird in manchen Routinen verwendet, aber in keiner anderen Routine gesetzt. Überprüfung
der einzelnen COMMON-Variablen erfolgt nur, wenn die -gemeinsam Einstellung ist 3
(variabel durch variable Vereinbarung). Diese Warnung wird unterdrückt, wenn das Common
Die Strenge-Einstellung ist 0.

com-var-unused:
Eine gemeinsame Variable wird deklariert, aber von keinem Unterprogramm verwendet. Diese Warnung
wird unterdrückt, wenn die allgemeine Striktheitseinstellung 0 ist.

do-index-modifiziert:
Eine Variable, die den Index einer DO-Schleife darstellt, wird durch eine Anweisung geändert
innerhalb der Reichweite der Schleife. Der Standard erlaubt eine aktive DO-Variable
nur durch den Inkrementierungsmechanismus der DO-Anweisung geändert werden.

ext-multiply-definiert:
ein externes (ein Unterprogramm oder eine Funktion) wird mehr als einmal definiert. Definition
eines externen Mittels, das den Hauptteil seines Quellcodes bereitstellt.

Nur ext-deklariert:
Ein Name wird in einer EXTERNAL-Anweisung in einem Modul deklariert, ist es aber nicht
definiert oder irgendwo verwendet werden.

ext-undefiniert:
Ein externer Wert wird verwendet (aufgerufen), aber nirgendwo definiert. Diese Option ist
äquivalent zu der -extern Flagge. Wenn das Unterprogramm mehr als aufgerufen wird
Einmal werden diese Aufrufe weiterhin auf Konsistenz überprüft.

ext-unbenutzt:
ein externes Objekt ist definiert (sein Unterprogrammkörper ist vorhanden), wird aber nicht verwendet.
Ein Unterprogramm gilt auch dann als unbenutzt, wenn es von einem anderen aufgerufen wird
Unterprogramm, wenn es von keinem Ausführungsthread aufgerufen werden kann, der mit beginnt
das Hauptprogramm. Die Übereinstimmung der Argumente des Unterprogramms mit seinem
Aufrufe werden auch dann noch überprüft, wenn diese Warnung deaktiviert ist. Wenn da ist
Wenn kein Hauptprogramm vorhanden ist, wird diese Warnung nur ausgegeben, wenn das Unterprogramm nicht vorhanden ist
irgendwo aufgerufen. Diese Warnung wird im Bibliotheksmodus unterdrückt, aber im Bibliotheksmodus
Der Modus hat den zusätzlichen Effekt, dass die Argumentprüfung auf nicht verwendete Argumente unterdrückt wird
Routinen.

label-undefiniert:
Eine Anweisung bezieht sich auf eine Bezeichnung, die nicht definiert wurde.

Etikett-unbenutzt:
Eine Anweisungsbezeichnung ist definiert, es wird jedoch nie darauf verwiesen.

Var-Set-unbenutzt:
Einer lokalen Variablen wird ein Wert zugewiesen, dieser Wert wird jedoch nicht verwendet.

var-nicht initialisiert:
Der Wert einer lokalen Variablen kann vor der Zuweisung verwendet werden. Manchmal
ftnchek macht einen Fehler in den Warnungen zur Verwendung lokaler Variablen. Normalerweise
Es liegt ein Fehler darin, eine Warnung auszugeben, wenn kein Problem vorliegt, aber in seltenen Fällen
In einigen Fällen wird möglicherweise keine Warnung ausgegeben, wenn das Problem tatsächlich besteht. Siehe den Abschnitt über
Bugs als Beispiele. Wenn Variablen äquivalent sind, wird die von verwendete Regel verwendet ftnchek
ist, dass ein Verweis auf eine beliebige Variable den gleichen Verweis auf alle impliziert
Variablen, mit denen es äquivalent ist. Für Arrays gilt die Regel, dass ein Verweis auf
Jedes Array-Element wird als Referenz auf alle Elemente des Arrays behandelt.

var-unbenutzt:
Eine lokale Variable wird deklariert (z. B. in einer Typdeklaration), ist es aber nicht
im Modul verwendet. Gilt nicht für Scheinargumente: Warnungen dazu
werden durch das Schlüsselwort gesteuert arg-unbenutzt oben beschrieben.

Hinweis: In Versionen von ftnchek vor 2.10, die -Verwendungszweck flag nahm ein numerisches Argument an
anstelle einer Liste von Optionen. Im Interesse der Benutzer, die möglicherweise Skripte geschrieben haben
aufrufen ftnchek Auf diese Weise wird die numerische Form weiterhin akzeptiert. Die Zahl
Die Einstellung besteht aus drei Ziffern. Die erste Ziffer (Hunderterstelle) steuert
Warnungen vor Unterprogrammen (Funktionen und Unterroutinen), die zweite Ziffer (Zehner).
Ort) Warnungen zu gemeinsamen Blöcken und gemeinsamen Variablen, und die dritte Ziffer
(Einzelplatz) Warnungen zu lokalen Variablen. Jede Ziffer steuert Warnungen
Gemäß der Konvention bedeutet eine 1 eine Warnung vor undefinierten Elementen und Variablen
eine 2 bedeutet, dass Sie vor nicht verwendeten Elementen warnen, und eine 3 bedeutet
warnen Sie vor beiden Typen. Diese Zahlen werden nun in die entsprechenden Werte umgewandelt
für die oben aufgeführten Schlüsselwörter, außer für com-block-volatil, was davon nicht betroffen ist
durch das numerische Argument.

Siehe auch: -gemeinsam, -erklären, -extern, -Bibliothek.

-vcg
Erstellen Sie das Anrufdiagramm in Form einer VCG-Diagrammbeschreibung. Diese Beschreibung ist
in eine separate Datei geschrieben, mit demselben Stamm wie die Datei, die die Hauptdatei enthält
Programm und Suffix .vcg. Diese Datei kann direkt weitergegeben werden xvcg(1L) bis
Visualisieren Sie das Anrufdiagramm. (Wenn die Eingabe von der Standardeingabe stammt, dann ist das Diagramm
Beschreibung wird an die Standardausgabe gesendet.) Dieser Schalter entspricht
-calltree=vcg. Standard = Nein.

Die erstellte VCG-Beschreibung ist komplexer als nötig. VCG ermöglicht Grafiken
und verschachtelte Untergraphen: Jede Unterroutine wird als in ihr verschachtelter Untergraph erstellt
Aufrufroutinen. Dadurch können Sie Teilgraphen interaktiv anzeigen oder zusammenfassen
Them.

Das -vcg Option für ftnchek wurde von Dr. Philip Rubini aus Cranfield geschrieben
Universität, Großbritannien.

xvcg ist ein Diagrammvisualisierungstool, das unter dem X-Windows-System läuft. Es ist
frei verfügbar unter ftp.cs.uni-sb.de. Es wurde von G. Sander geschrieben
Universität des Saarlandes, Deutschland.

Siehe auch: -calltree, -crossref, -Referenz, -Sortieren.

-Ausführung
Diese Option verursacht ftnchek um eine Zeile mit der Versionsnummer, dem Veröffentlichungsdatum,
und Patch-Level des Programms. Wenn keine Dateien angegeben sind, wird es beendet. Wenn Dateien
angegeben sind, besteht der Effekt dieser Option darin, dass der Patch-Level einbezogen wird (normalerweise).
weggelassen) in den zu Beginn der Verarbeitung ausgedruckten Versionsinformationen. Standard =
Nr.

Siehe auch: -Hilfe.

-flüchtig
Gehen Sie davon aus, dass COMMON-Blöcke flüchtig sind. Standard = Nein.

Diese Flagge wird ersetzt durch -common=flüchtigund sollte nicht mehr verwendet werden. Es kann
in einer zukünftigen Version von entfernt werden ftnchek.

Siehe auch: -gemeinsam, -Verwendungszweck.

-wordsize=num
Gibt die Standardwortgröße an num Bytes. Dies ist die Größe von logisch und
Numerische Variablen mit einfacher Genauigkeit, denen keine explizite Genauigkeit zugewiesen wird.
(Explizite Genauigkeiten für Nicht-Zeichenvariablen sind eine Erweiterung des Fortran 77
Standard und werden durch Typdeklarationen wie REAL*8 X angegeben.) Doppelte Genauigkeit
und komplexe Variablen sind doppelt so groß wie dieser Wert, und doppelte komplexe Variablen sind viermal so groß
mal. Konstanten mit vierfacher Genauigkeit und intrinsische Funktionsergebnisse betragen das Vierfache
dieser Wert. Beachten Sie, dass als REAL*16 deklarierte Variablen als Quad betrachtet werden
Genauigkeit nur, wenn die Wortgröße 4 Byte beträgt. Standard = Einschalten = 4 Bytes.

Für die Überprüfung standardkonformer Programme spielt der Wortgrößenwert keine Rolle
Deklarieren Sie keine expliziten Genauigkeiten für Nicht-Zeichenvariablen und speichern Sie Hollerith nicht
Daten in Variablen. Diese Einstellung hat auch keinen Einfluss auf die Standardgröße der Zeichen
Variablen, die immer 1 Byte beträgt. Es wird auch angenommen, dass Hollerith-Konstanten besetzt sind
1 Byte pro Zeichen.

Die Wortgröße wird verwendet, um zu bestimmen, ob es bei der Zuweisung zu einer Kürzung kommt
Anweisungen und um Präzisionskonflikte in Unterprogrammargumentlisten und zu erkennen
Gemeinsame Sperrlisten. Die genauen Warnungen, die ausgegeben werden, hängen vom Status ab
anderer Flaggen. Unter beiden -portability=gemischte Größe und dem -nowordsize Flagge,
jede Mischung von expliziten Objekten mit Standardpräzisionsobjekten (Zeichenausdrücke nicht).
enthalten) wird gewarnt. Dies gilt für arithmetische Ausdrücke, die beides enthalten
Objekttypen sowie auf Unterprogrammargumente und COMMON-Variablen. Unter Kontrolle
dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog. -truncation=Herabstufung und Förderung Optionen, für die eine Warnung ausgegeben wird
Zuweisung eines Ausdrucks zu einer kürzeren Variablen desselben Typs oder für
Heraufstufung eines Werts mit niedrigerer Präzision in eine höhere Präzision in einer Arithmetik
Ausdruck oder eine Zuweisungsanweisung.

Geben Sie eine Wortgröße von 0 oder gleichwertig an -nowordsize bedeutet, dass kein Standardwert vorliegt
Wert angenommen wird. Dies ist gleichbedeutend mit einer Angabe -portability=gemischte Größe.
Verwenden Sie es, um Fälle zu finden, in denen Standardgenauigkeit und explizite Genauigkeit gemischt werden, beispielsweise zum Markieren
Stellen, an denen REAL*8 als gleichwertig mit DOUBLE PRECISION behandelt wird.

Siehe auch: -Zeigergröße, -Portabilität, -Trunkierung.

-wrap=col
Steuert das Umschließen von Fehlermeldungen. Lange Fehlermeldungen, die vorbeilaufen würden
Die angegebene Spalte wird in separate Zeilen zwischen den Wörtern aufgeteilt
Nachricht zur besseren Lesbarkeit. Wenn mit ausgeschaltet -nowrap, jeder einzelne Fehler
Die Nachricht wird in einer Zeile gedruckt und es bleibt dem Display überlassen, sie umzubrechen
Nachricht oder kürzen Sie sie. Standard = Einschalten = 79.

WECHSEL STANDARDS


ftnchek enthält zwei Mechanismen zum Ändern der Standardwerte aller Optionen: durch
Definieren von Umgebungsvariablen oder durch Erstellen einer Einstellungsdatei. Wenn ftnchek startet,
Es sucht in seiner Umgebung nach Variablen, deren Namen durch das Präfix „das“ zusammengesetzt sind
string FTNCHEK_ auf die großgeschriebene Version des Optionsnamens. Wenn eine solche Variable ist
gefunden, wird sein Wert verwendet, um den Standardwert für den entsprechenden Schalter oder die entsprechende Einstellung anzugeben.
Bei Einstellungen (z.B. der -gemeinsam Strenge Einstellung) der Wert der
Die Umgebungsvariable wird als Standardeinstellungswert gelesen. Bei Schaltern ist die
Der Standardschalter wird als „true“ oder „yes“ angenommen, es sei denn, die Umgebungsvariable hat den Wert
0 oder NEIN.

Beachten Sie, dass der Name der Umgebungsvariablen mit der Option voller Länge erstellt werden muss
Name, der in Großbuchstaben geschrieben sein muss. Zum Beispiel zu machen ftnchek Drucken Sie eine Quellenliste aus
Standardmäßig setzen Sie die Umgebungsvariable FTNCHEK_LIST auf 1 oder YES oder etwas anderes als 0 oder
NEIN. Die Namen FTNCHEK_LIS (nicht der vollständige Optionsname) oder ftnchek_list (Kleinbuchstaben) würden dies tun
nicht erkannt werden.

Hier finden Sie einige Beispiele zum Festlegen von Umgebungsvariablen auf verschiedenen Systemen. Für
Der Einfachheit halber legen alle Beispiele den Standard fest -Liste auf JA wechseln.

1. UNIX, Bourne-Shell: $ FTNCHEK_LIST=YES
$ FTNCHEK_LIST exportieren

2. UNIX, C-Shell: % setenv FTNCHEK_LIST YES

3. VAX/VMS: $ DEFINE FTNCHEK_LIST YES

4. MSDOS: $ SET FTNCHEK_LIST=YES

Nach der Verarbeitung aller Umgebungsvariablen sucht ftnchek nach einer Einstellungsdatei
Enthält Optionen und Einstellungen. Die Suche erfolgt in der folgenden Reihenfolge, wobei nur das verwendet wird
erste gefundene Datei: (1) .ftnchekrc im aktuellen Verzeichnis, (2) ftnchek.ini in der Strömung
Verzeichnis, (3) .ftnchekrc im Home-Verzeichnis des Benutzers, (4) ftnchek.ini im Haus
Verzeichnis. Wird eine solche Datei gefunden, werden die darin definierten Optionen als Standardwerte verwendet
anstelle der integrierten Standardeinstellungen und überschreibt alle in der Umgebung festgelegten Standardeinstellungen.

Jede Option oder Einstellung in der Einstellungsdatei muss in einer separaten Zeile stehen. Sie sind gegeben
in der gleichen Form wie in der Befehlszeile, außer ohne den ersten Bindestrich. Die Vorlieben
Die Datei kann Leerzeilen und Kommentare enthalten. Kommentare werden an jeder Stelle einer Zeile eingefügt
durch ein Leerzeichen (Leerzeichen oder Tabulator) oder das Zeichen „#“ und werden durch das Ende von abgeschlossen
die Linie.

Befehlszeilenoptionen überschreiben die in der Umgebung oder in den Einstellungen festgelegten Standardeinstellungen
Datei, genauso wie sie die integrierten Standardeinstellungen überschreiben.

VERWENDUNG PROJEKT DATEIEN


Dieser Abschnitt enthält detaillierte Informationen zur effektiven Nutzung von Projektdateien.
und wie man einige Fallstricke vermeidet.

Man kann die Schecks teilen ftnchek in zwei Kategorien unterteilt: lokal und global. Lokal
Die Überprüfung ist auf eine einzelne Routine beschränkt und fängt Dinge ab, die nicht initialisiert sind
Variablen, unbeabsichtigter Genauigkeitsverlust in arithmetischen Ausdrücken usw. Diese Art von
Die Überprüfung kann für jedes Unterprogramm unabhängig durchgeführt werden. Darüber hinaus erfolgt die örtliche Prüfung von a
Das Unterprogramm muss nicht wiederholt werden, wenn ein anderes Unterprogramm geändert wird. Global
Bei der Überprüfung werden Dinge wie der Aufruf einer Unterroutine mit den falschen Argumenttypen aufgedeckt, oder
Uneinigkeit bei gemeinsamen Blockdeklarationen. Es erfordert die Betrachtung des gesamten Satzes
Unterprogramme, die miteinander interagieren.

Der Zweck von Projektdateien besteht darin, die lokalen und globalen Prüfschritte zu ermöglichen
getrennt sein. Vorausgesetzt, dass sich jedes Unterprogramm in einer eigenen Quelldatei befindet, können Sie es ausführen
ftnchek einmal bei jedem, um eine lokale Prüfung durchzuführen und gleichzeitig die globale Prüfung zu unterdrücken. Dann
ftnchek kann einmal für alle Projektdateien zusammen ausgeführt werden, um die globale Überprüfung durchzuführen. Der
Das folgende Beispiel-Makefile zeigt, wie diese Aufgabe automatisiert werden kann. Das Ziel „.f.prj“ aktualisiert a
Projektdatei für eine bestimmte Datei jedes Mal, wenn sich die Quelldatei ändert. Die Information
Die für die globale Prüfung benötigten Informationen werden in der Projektdatei gespeichert. Das „check“-Ziel erledigt dies
kombinierte globale Prüfung. Normalerweise würde „make check“ das „ftnchek -project“ wiederholen.
Gehen Sie nur bei geänderten Quelldateien vor und führen Sie dann die globale Prüfung durch. Das ist offensichtlich ein großes Problem
Vorteil für große Programme, wenn sich viele Unterprogramme selten oder nie ändern.

Bei der Verwendung von Projektdateien ist es am besten, jedes Unterprogramm in einer separaten Quelldatei zu platzieren.
Wenn jede Quelldatei mehr als ein Unterprogramm enthalten kann, wird die Definition komplizierter
von „lokaler“ und „globaler“ Prüfung, da es eine gewisse Prüfung zwischen Modulen gibt
in einer Datei enthalten. ftnchek versucht in diesem Fall das Richtige zu tun, aber es gibt welche
Einige Komplikationen (unten beschrieben) aufgrund des Kompromisses zwischen der Vermeidung einer erneuten Durchführung von Cross-
prüft und bewahrt Informationen über die Struktur des Programms.

Normalerweise sollten Projektdateien mit erstellt werden, um den Aufwand für erneute Überprüfungen möglichst gering zu halten
-Bibliothek Flagge aktiviert und Beschnitt aktiviert. In diesem Modus werden die Informationen gespeichert
in der Projektdatei besteht aus allen Unterprogrammdeklarationen, allen Unterprogrammaufrufen
nicht durch Deklarationen in derselben Datei aufgelöst und eine Instanz jedes COMMON-Blocks
Erklärung. Dies ist die Mindestmenge an Informationen, die zur Überprüfung der Übereinstimmung zwischen ihnen erforderlich ist
Dateien.

Wenn die Quelldatei mehr als eine Routine enthält, kann es zu Problemen kommen
kann durch die Erstellung der Projektdatei im Bibliotheksmodus entstehen, da die Aufrufhierarchie
unter den in der Datei definierten Routinen geht verloren. Auch, wenn die Routinen in der Datei machen
Die Verwendung von COMMON-Blöcken, die mit Routinen in anderen Dateien gemeinsam genutzt werden, erfolgt nicht
Es werden genügend Informationen für die korrekte Überprüfung des eingestellten und verwendeten Status von COMMON-Blöcken gespeichert
und COMMON-Variablen gemäß -Verwendungszweck Einstellung. Deshalb, wenn Sie planen, es zu verwenden
Projektdateien wann -Verwendungszweck Die Überprüfung ist aktiviert (was die Standardsituation ist) und wenn
Mehrere Routinen in einer Projektdatei teilen sich GEMEINSAME Blöcke mit Routinen in anderen Dateien.
Die Projektdateien sollten mit erstellt werden -Bibliothek Flagge ausgeschaltet. In diesem Modus
ftnchek speichert neben den oben aufgeführten Informationen einen Aufruf jedes Unterprogramms durch
jedes andere Unterprogramm in derselben Datei und alle COMMON-Blockdeklarationen. Das bedeutet, dass
die Projektdatei größer als nötig sein wird und dass beim Einlesen ftnchek Mai
Wiederholen Sie einige Prüfungen zwischen Modulen, die bereits beim Erstellen der Projektdatei durchgeführt wurden. Wenn
Da jede Projektdatei nur ein Modul enthält, gehen bei der Erstellung keine Informationen verloren
die Projektdateien im Bibliotheksmodus.

Aufgrund des möglichen Informationsverlusts, der durch das Erstellen einer Projektdatei mit dem verursacht wird
-Bibliothek Wenn das Flag aktiviert ist, wird die Projektdatei immer dann behandelt, wenn sie später eingelesen wird
als Bibliotheksdatei, unabhängig von der aktuellen Einstellung des -Bibliothek Flagge. Auf dem anderen
Andererseits kann eine Projektdatei, die mit deaktiviertem Bibliotheksmodus erstellt wurde, später in beide eingelesen werden
Modus arbeiten können.

Bei der vorangehenden Diskussion wird davon ausgegangen, dass die Trimmoptionen des -Projekt Einstellung sind
wird aktiviert, wenn die Projektdatei erstellt wird. Dies ist die normale Situation. Der kein Trimmen
Optionen der -Projekt Für den Fall, dass man die Projektdateien verwenden möchte, sind Einstellungsmöglichkeiten vorgesehen
für andere Zwecke als die Überprüfung des Programms mit ftnchek. Man könnte zum Beispiel schreiben
Ein Perl-Skript zum Analysieren der Projektdateien, um Informationen über die Unterschiede zu erhalten
Unterprogramme werden aufgerufen. Sie sollten das nicht verwenden kein Trimmen Möglichkeiten, mit den Problemen umzugehen
Der oben besprochene Informationsverlust führt dazu, dass mehr Informationen entstehen, als nötig sind
gelagert. Dadurch werden die Projektdateien größer und es kommt zu Problemen ftnchek um später mehr Arbeit zu erledigen
Es liest sie, um Ihr gesamtes Programm zu überprüfen. Normalerweise sollten Sie die verwenden -Bibliothek
Option zum Steuern, wie viele Informationen zur späteren Verwendung gespeichert werden sollen ftnchek bei der Überprüfung Ihrer


Hier ist ein Beispiel für die Verwendung von UNIX um Dienstprogramm zum automatischen Erstellen eines neuen
Projektdatei jedes Mal, wenn die entsprechende Quelldatei geändert wird, und um den Satz zu überprüfen
Dateien für Konsistenz. Fügen Sie diese Zeilen zu Ihrem Makefile hinzu. Das Beispiel geht davon aus, dass a
Es wurde das Makro OBJS definiert, das alle Namen der zu verknüpfenden Objektdateien auflistet
zusammen, um das vollständige ausführbare Programm zu bilden. (In diesem Makefile sind die eingerückten Zeilen
sollte jeweils mit einem Tabulator und nicht mit Leerzeichen beginnen.) Wenn eine Quelldatei mehrere Routinen enthält
die untereinander gemeinsame Blöcke haben, sollte die Option no-com-\* entfernt werden
von NOGLOBAL und/oder löschen Sie das Flag -library.
# Sagen Sie make, was ein Projektdateisuffix ist
.SUFFIXE: .prj

# Diese Optionen unterdrücken globale Prüfungen.
NOGLOBAL=-usage=no-ext-undefiniert,no-com-\*

# Sagen Sie make, wie eine .prj-Datei aus einer .f-Datei erstellt wird
.f.prj:
ftnchek -project $(NOGLOBAL) -library $

# Richten Sie das Makro PRJS ein, das Projektdateinamen enthält
PRJS= $(OBJS:.o=.prj)

# „make check“ überprüft alles, was geändert wurde.
prüfen: $(PRJS)
ftnchek $(PRJS)

Wenn ein Programm viele Routinen verwendet, die in einer großen Anzahl unterschiedlicher Quelldateien definiert sind
Wenn Sie verschiedene Verzeichnisse verwenden, kann es umständlich sein, alle verschiedenen Projektdateien anzugeben
erforderlich, um das Programm ordnungsgemäß zu überprüfen. Um solche Fälle zu bearbeiten, ftnchek ermöglicht Projekt
Dateien zu einer einzigen großen Datei verkettet werden. Diese einzelne Datei kann dann weitergegeben werden
ftnchek Bereitstellung der Informationen zur Überprüfung der Verwendung einiger oder aller Routinen
in den kombinierten Projektdateien definiert. Wenn Sie eine solche „Bibliothek“-Projektdatei verwenden, müssen Sie
vielleicht wollen ftnchek's Fehlerberichte, um den genauen Namen der Datei zu dokumentieren, in der sich die befindet
spezifische Funktion definiert ist. Befinden sich die verschiedenen Quelldateien in mehreren Verzeichnissen, kann ein
Ein Fehlerbericht, der nur den Dateinamen angibt, kann mehrdeutig sein und sollte stattdessen den enthalten
Pfad zur Datei. Die Lösung besteht darin, jede einzelne Projektdatei per zu erstellen
Geben Sie den vollständigen Pfad zur Quelldatei an. Dann erscheint dieser vollständige Pfad im
Fehlerberichte. Angenommen, alle Quelldateien des Unterprogramms der Bibliothek sind vorhanden
in Unterverzeichnissen eines Verzeichnisses namens /util/lib. Dann könnten die einzelnen Projektdateien
zuerst durch einen Befehl wie erstellt werden
find /util/lib -name '*.f' -exec ftnchek -project '{}' ';'
(Möglicherweise wären auch andere Optionen vorgesehen ftnchek wie oben besprochen. Auch dieser Schritt
könnte stattdessen durch eine überarbeitete Makefile-Regel behandelt werden, die die vollständige Quelle bereitstellen würde
Beim Aufruf wird der Dateipfad anstelle nur des lokalen Namens angegeben ftnchek.) Als nächstes verketten Sie alles
diese Projektdateien manuell.
find /util/lib -name '*.prj' -exec cat '{}' ';' > ourlib.prj
Anschließend kann eine Programmquelldatei mit dem Befehl überprüft werden
ftnchek prog.f ... -lib ourlib.prj
und eine Fehlermeldung, die sich auf eine Bibliotheksroutine bezieht, enthält den vollständigen Pfad zur
Quelldatei der Routine.

Derzeit gibt es kein vergleichbares Archivdienstprogramm ar um den Inhalt einer verketteten Datei zu verwalten
Projektdatei wie in der Abbildung oben. Wenn Änderungen an einem der vorgenommen werden
Bei Bibliotheksroutinen besteht die einzige Möglichkeit, die kombinierte Projektdatei zu aktualisieren, darin, alle zu verketten
die einzelnen Projektdateien noch einmal. Ein solches Dienstprogramm wäre recht einfach zu schreiben.
Jemand sollte dies tun und es dazu beitragen ftnchek Aufwand.

AN BEISPIEL


Das folgende einfache Fortran-Programm veranschaulicht die von bereitgestellten Nachrichten ftnchekdem „Vermischten Geschmack“. Seine
Das Programm soll eine Reihe von Testergebnissen akzeptieren und dann den Durchschnitt dafür berechnen
Serie.

C AUTOREN: MIKE MYERS UND LUCIA SPAGNUOLO
C-DATUM: 8. MAI 1989

C-Variablen:
C SCORE -> eine Reihe von Testergebnissen
C SUM -> Summe der Testergebnisse
C COUNT -> Zähler der eingelesenen Punkte
CI -> Schleifenzähler

REAL FUNCTION COMPAV(SCORE,COUNT)
INTEGER SUM,COUNT,J,SCORE(5)

DO 30 I = 1,COUNT
SUMME = SUMME + SCORE(I)
30 WEITER
COMPAV = SUMME/ANZAHL
ENDE

PROGRAMM AVENUM
C
C HAUPTPROGRAMM
C
C AUTOR: LOIS BIGBIE
C-DATUM: 15. MAI 1990
C
C-Variablen:
C MAXNOS -> maximale Anzahl von Eingabewerten
C NUMS -> ein Array von Zahlen
C COUNT -> genaue Anzahl der Eingabewerte
C AVG -> von COMPAV zurückgegebener Durchschnitt
CI -> Schleifenzähler
C

PARAMETER(MAXNOS=5)
INTEGER I, ZÄHLEN
REALE ZAHLEN (MAXNOS), AVG
ANZAHL = 0
DO 80 I = 1,MAXNOS
READ (5,*,END=100) NUMS(I)
ANZAHL = ANZAHL + 1
80 WEITER
100 AVG = COMPAV(NUMS, COUNT)
ENDE

Der Compiler gibt beim Kompilieren dieses Programms keine Fehlermeldungen aus. Doch hier ist was
passiert, wenn es ausgeführt wird:

$ Laufdurchschnitt
70
90
85

$

Was ist passiert? Warum hat das Programm nichts gemacht? Das Folgende ist die Ausgabe von
ftnchek wenn es zum Debuggen des obigen Programms verwendet wird:

$ ftnchek -list -symtab Durchschnitt

FTNCHEK Version 3.3 November 2004

Datei Average.f:

1 C AUTOREN: MIKE MYERS UND LUCIA SPAGNUOLO
2 C DATUM: 8. MAI 1989
3
4 C-Variablen:
5 C SCORE -> eine Reihe von Testergebnissen
6 C SUM -> Summe der Testergebnisse
7 C COUNT -> Zähler der eingelesenen Punkte
8 CI -> Schleifenzähler
9
10 REAL FUNCTION COMPAV(SCORE,COUNT)
11 INTEGER SUM,COUNT,J,SCORE(5)
12
13 DO 30 I = 1,COUNT
14 SUMME = SUMME + SCORE(I)
15 30 WEITER
16 COMPAV = SUMME/ANZAHL
^
Warnung in der Nähe von Zeile 16, Spalte 20: Ganzzahliger Quotient expr SUM/COUNT konvertiert in
echt
17 ENDE

Modul COMPAV: func: real

Variablen:

Name Typ Dims Name Typ Dims Name Typ Dims Name Typ Dims
COMPAV real COUNT intg I intg* J intg
SCORE intg 1 SUM intg

* Variable nicht deklariert. Der Typ wurde implizit definiert.

Warnung im Modul COMPAV: Variablen deklariert, aber nie referenziert:
J erklärte in Zeile 11

Warnung im Modul COMPAV: Variablen können vor dem Setzen verwendet werden:
SUM wird in Zeile 14 verwendet
SUM wird in Zeile 14 eingestellt

Definierte Anweisungsbezeichnungen:

StmtType der Beschriftungszeile
<30> 15 Exek

18
19
20 PROGRAMM AVENUM
21 C
22 C HAUPTPROGRAMM
23 C
24 C AUTOR: LOIS BIGBIE
25 C DATUM: 15. MAI 1990
26 C
27 C-Variablen:
28 C MAXNOS -> maximale Anzahl Eingabewerte
29 C NUMS -> ein Array von Zahlen
30 C COUNT -> genaue Anzahl der Eingabewerte
31 C AVG -> von COMPAV zurückgegebener Durchschnitt
32 CI -> Schleifenzähler
33 C
34
35 PARAMETER(MAXNOS=5)
36 INTEGER I, ZÄHLEN
37 REALE ZAHLEN (MAXNOS), AVG
38 ZÄHLUNG = 0
39 DO 80 I = 1,MAXNOS
40 READ (5,*,END=100) NUMS(I)
41 ANZAHL = ANZAHL + 1
42 80 WEITER
43 100 AVG = COMPAV(NUMS, COUNT)
44 ENDE

Modul AVENUM: prog

Auf externe Unterprogramme verwiesen:

COMPAV: echt*

Variablen:

Name Typ Dims Name Typ Dims Name Typ Dims Name Typ Dims
AVG real COUNT intg I intg MAXNOS intg*
NUMS real 1

* Variable nicht deklariert. Der Typ wurde implizit definiert.

Warnung im Modul AVENUM: Variablen gesetzt, aber nie verwendet:
AVG in Zeile 43 eingestellt

E/A-Operationen:

Einheiten-ID Einheiten-Nr. Zugriffsformular-Operationszeile
5 SEQ FMTD READ 40

Definierte Anweisungsbezeichnungen:

Beschriftungszeile StmtType Beschriftungszeile StmtType
<80> 42 Ausf. <100> 43 Ausf

In der Datei „average.f“ wurden 0 Syntaxfehler festgestellt
6 Warnungen in der Datei Average.f ausgegeben

Warnung: Der Datentyp des Arguments COMPAV des Unterprogramms stimmt an Position 1 nicht überein:
Das Dummy-Arg SCORE in der COMPAV-Zeile-10-Datei des Moduls „average.f“ ist vom Typ intg
Das tatsächliche Argument NUMS in der AVENUM-Zeile 43-Datei des Moduls „average.f“ ist vom Typ „real“.

Laut ftnchek, das Programm enthält Variablen, die verwendet werden können, bevor sie verwendet werden
einen Anfangswert zugewiesen und Variablen, die nicht benötigt werden. ftnchek warnt auch die
Benutzer, dass ein ganzzahliger Quotient in einen reellen Quotienten umgewandelt wurde. Dies kann dem Benutzer dabei helfen
Einen unbeabsichtigten Rundungsfehler abfangen. Seit der -symtab Flagge wurde gegeben, ftnchek Drucke
Gibt eine Tabelle aus, die Bezeichner aus dem lokalen Modul und den entsprechenden Datentyp enthält
und Anzahl der Dimensionen. Endlich, ftnchek warnt, dass die Funktion COMPAV nicht verwendet wird
mit der richtigen Art von Argumenten.

Mit der ftnchekMit unserer Hilfe können wir das Programm debuggen. Wir können sehen, dass es Folgendes gab
Fehler:

1. SUM und COUNT sollten vor der Division in reelle Werte umgewandelt worden sein.

2. SUM sollte vor Eintritt in die Schleife auf 0 initialisiert worden sein.

3. AVG wurde nach der Berechnung nie ausgedruckt.

4. NUMS hätte als INTEGER anstelle von REAL deklariert werden sollen.

Wir sehen auch, dass I und nicht J in der Funktion COMPAV als INTEGER hätte deklariert werden sollen. Auch,
Im Programm AVENUM wurde weder MAXNOS als INTEGER noch COMPAV als REAL deklariert. Diese sind nicht
Fehler, aber sie können auf Nachlässigkeit hinweisen. Zufälligerweise der Standardtyp davon
Variablen stimmten mit dem beabsichtigten Typ überein.

Hier ist das korrigierte Programm und seine Ausgabe bei der Ausführung:

C AUTOREN: MIKE MYERS UND LUCIA SPAGNUOLO
C-DATUM: 8. MAI 1989
C
C-Variablen:
C SCORE -> eine Reihe von Testergebnissen
C SUM -> Summe der Testergebnisse
C COUNT -> Zähler der eingelesenen Punkte
CI -> Schleifenzähler
C
REAL FUNCTION COMPAV(SCORE,COUNT)
INTEGER SUM,COUNT,I,SCORE(5)
C
SUMME = 0
DO 30 I = 1,COUNT
SUMME = SUMME + SCORE(I)
30 WEITER
COMPAV = FLOAT(SUM)/FLOAT(COUNT)
ENDE
C
C
PROGRAMM AVENUM
C
C HAUPTPROGRAMM
C
C AUTOR: LOIS BIGBIE
C-DATUM: 15. MAI 1990
C
C-Variablen:
C MAXNOS -> maximale Anzahl von Eingabewerten
C NUMS -> ein Array von Zahlen
C COUNT -> genaue Anzahl der Eingabewerte
C AVG -> von COMPAV zurückgegebener Durchschnitt
CI -> Schleifenzähler
C
C
INTEGER MAXNOS
PARAMETER(MAXNOS=5)
INTEGER I, NUMS(MAXNOS), COUNT
ECHTER AVG, COMPAV
ANZAHL = 0
DO 80 I = 1,MAXNOS
READ (5,*,END=100) NUMS(I)
ANZAHL = ANZAHL + 1
80 WEITER
100 AVG = COMPAV(NUMS, COUNT)
WRITE(6,*) 'AVERAGE =',AVG
ENDE
$ Laufdurchschnitt
70
90
85

DURCHSCHNITT = 81.66666
$

Mit der ftnchek's Hilfe, unser Programm ist ein Erfolg!

Dolmetschen AUSGABE


Die Nachrichten von ftnchek enthalten nicht nur Syntaxfehler, sondern auch Warnungen und
Informationsmeldungen über Dinge, die für Fortran legal sind, aber auf Fehler hinweisen können oder
Nachlässigkeit. Die meisten dieser Meldungen können über Befehlszeilenoptionen deaktiviert werden. Welche
Welche Option jede Meldung steuert, hängt von der Art der Bedingung ab, vor der gewarnt wird.
Sehen Sie sich die Beschreibungen der Befehlszeilen-Flags in den vorherigen Abschnitten und der einzelnen an
Nachrichten unten. Jeder Nachricht ist ein Wort oder eine Phrase vorangestellt, die die Art der Nachricht angibt
der Zustand und seine Schwere.

„Fehler“ bedeutet einen Syntaxfehler. Die einfachste Art von Syntaxfehlern sind typografische Fehler
Fehler, zum Beispiel unausgeglichene Klammern oder falsche Schreibweise eines Schlüsselworts. Diese Art von
Der Fehler wird vom Parser abgefangen und mit der Beschreibung „Analysefehler“ oder „Syntax“ angezeigt
Fehler'' (abhängig von der Version des Parser-Generators und davon, ob es sich um GNU handelt Bison or
UNIX jacc). Diese Art von Fehlermeldung kann nicht unterdrückt werden. Seien Sie sich bewusst, dass diese Art von
Fehler bedeutet das oft ftnchek hat die Aussage nicht richtig interpretiert, wo der Fehler liegt
auftritt, so dass die nachfolgenden Prüfvorgänge beeinträchtigt werden. Du solltest
Beseitigen Sie alle Syntaxfehler, bevor Sie mit der Interpretation der anderen Nachrichten fortfahren ftnchek
gibt.

„Warnung: Nicht standardmäßige Syntax“ weist auf eine Erweiterung von Fortran hin ftnchek unterstützt
aber das entspricht nicht dem Fortran 77 Standard. Die Erweiterungen, die ftnchek akzeptiert
werden im Abschnitt über Erweiterungen unten beschrieben. Ein Beispiel ist DO ... ENDDO
Konstruktion. Wenn ein Programm diese Erweiterungen verwendet, werden entsprechende Warnungen ausgegeben
Spezifikationen unter der -f77 Einstellung. Das Standardverhalten besteht darin, keine Warnungen auszugeben.

In anderen Fällen bedeutet „Warnung“ einen Zustand, der verdächtig ist, aber möglicherweise nicht der Fall ist
ein Programmierfehler. Häufig sind diese Bedingungen im Rahmen der Norm zulässig. Einige sind
illegal, fallen aber nicht unter die Überschrift Syntaxfehler. Ein Beispiel hierfür sind Nutzungsfehler.
Damit ist die Möglichkeit gemeint, dass eine Variable verwendet werden kann, bevor ihr eine zugewiesen wurde
Wert (im Allgemeinen ein Fehler) oder dass eine Variable deklariert, aber nie verwendet wird (harmlos, aber
kann auf Unachtsamkeit hindeuten). Der Umfang der Überprüfung auf Nutzungsfehler wird durch gesteuert
-Verwendungszweck Flag, das standardmäßig den maximalen Überprüfungsumfang angibt.

Kürzungswarnungen decken Situationen ab, in denen die Genauigkeit unbeabsichtigt verloren gehen kann, z
Beispiel, wenn einer reellen Variablen ein Wert mit doppelter Genauigkeit zugewiesen wird. Diese Warnungen sind
gesteuert von der -Trunkierung Einstellung, die standardmäßig aktiviert ist.

„Nichtportable Verwendung“ warnt vor einer Funktion, die von einigen Compilern möglicherweise nicht akzeptiert wird
auch wenn es nicht im Widerspruch zum Fortran 77-Standard steht oder das Programm verursachen kann
auf verschiedenen Plattformen unterschiedlich zu funktionieren. Zum Beispiel die Äquivalenz von Real und
Integer-Variablen sind normalerweise eine nicht tragbare Praxis. Die Verwendung von Erweiterungen zum
Standardsprache ist natürlich eine weitere Quelle der Nichtportabilität, aber dies wird so behandelt
ein separater Fall. Um ein Programm auf echte Portabilität zu überprüfen, müssen sowohl die -Portabilität und dem
-f77 Flags sollten verwendet werden. Sie sind beide standardmäßig deaktiviert. Der -Wortgröße Einstellung ist
Wird bereitgestellt, um nur die nicht tragbaren Verwendungen zu überprüfen, die von einem bestimmten Computer abhängen
Wortgröße.

„Möglicherweise irreführende Erscheinung“ wird für rechtliche Konstruktionen verwendet, die möglicherweise nicht was bedeuten
sie scheinen auf den ersten Blick zu bedeuten. Beispielsweise ist Fortran unempfindlich gegenüber Leerzeichen,
so überflüssiger Leerraum innerhalb von Variablennamen oder der Mangel an Leerzeichen zwischen einem Schlüsselwort und einem
Variable kann beim Leser einen falschen Eindruck vermitteln. Diese Meldungen können unterdrückt werden
durch das Ausschalten -ziemlich Flag, das standardmäßig aktiviert ist.

Andere Meldungen, die ausgegeben werden, nachdem alle Dateien verarbeitet wurden, und die damit zu tun haben
Wenn Sie eine Vereinbarung zwischen Modulen treffen, verwenden Sie nicht das Wort „Warnung“, fallen aber im Allgemeinen darunter
Kategorie. Beispiele hierfür sind Typkonflikte zwischen entsprechenden Variablen in verschiedenen
GEMEINSAME Blockdeklarationen oder zwischen Dummy- und tatsächlichen Argumenten eines Unterprogramms. Diese
Warnungen werden von der gesteuert -gemeinsam und -Argumente Einstellungen bzw. Standardmäßig
beide sind auf maximale Prüfgenauigkeit eingestellt.

Eine weitere Gruppe von Warnungen vor häufig harmlosen Zuständen bezieht sich auf Fälle, in denen
Die Array-Eigenschaften einer als Unterprogrammargument übergebenen Variablen unterscheiden sich zwischen den beiden
Routinen. Beispielsweise könnte ein Array-Element an eine Unterroutine übergeben werden, die ein erwartet
ganzes Array. Dies ist eine häufig verwendete Technik zur Verarbeitung einzelner Zeilen oder Spalten von
zweidimensionale Arrays. Es könnte aber auch ein Hinweis auf einen Programmierfehler sein. Der -Array
Mit dieser Einstellung kann der Benutzer den Grad der Genauigkeit anpassen, mit dem dies überprüft wird
Art der Übereinstimmung zwischen tatsächlichen und Dummy-Array-Argumenten. Standardmäßig ist die Strenge
maximal.

„Ups“ weist auf ein technisches Problem hin, also entweder auf einen Bug in ftnchek oder dass es
Ressourcen wurden überschritten.

Die Syntaxfehlermeldungen und -warnungen enthalten den Dateinamen sowie die Zeilennummer und
Spaltennummer. ftnchek Es gibt zwei verschiedene Möglichkeiten für das Auftreten dieser Fehler
Mitteilungen. Wenn -Anfänger Ist in Kraft, was die Standardeinstellung ist, haben die Nachrichten einen Stil
annähernd normales Englisch. (Im Standardstil wird der Dateiname nicht in Nachrichten gedruckt
innerhalb des Programmkörpers, wenn -Liste ist in Kraft.) Die andere Art von Fehlermeldungen
wird ausgewählt von der -Nonovie Möglichkeit. In diesem Stil ist das Erscheinungsbild der Nachrichten
ähnlich dem von UNIX Band

ftnchek ist immer noch blind für einige Arten von Syntaxfehlern. Die beiden wichtigsten sind
detaillierte Prüfung von FORMAT-Anweisungen und fast alles, was mit der Steuerung zu tun hat
Ausführungsablauf mittels IF-, DO- und GOTO-Anweisungen: nämlich korrekte Verschachtelung der Steuerung
Strukturen, Zuordnung von Eröffnungsanweisungen wie IF ... THEN mit Schlussanweisungen
wie ENDIF und die ordnungsgemäße Verwendung von Anweisungsbezeichnungen (Zahlen). Die meisten Compiler werden das tun
Fangen Sie diese Fehler ab. Eine ausführlichere Diskussion finden Sie im Abschnitt „Einschränkungen“.

If ftnchek Gibt Ihnen eine Syntaxfehlermeldung, wenn der Compiler dies nicht tut, kann das daran liegen
Ihr Programm enthält eine Erweiterung zum Standard-Fortran, die vom Compiler akzeptiert wird
aber nicht von ftnchek. (Siehe den Abschnitt über Erweiterungen.) Auf einem VAX/VMS-System können Sie verwenden
Die Compiler-Option /STANDARD bewirkt, dass der Compiler nur Standard-Fortran akzeptiert. An
Bei den meisten UNIX- oder UNIX-ähnlichen Systemen kann dies durch Setzen des Flags erreicht werden -ansi.

Viele der Nachrichten von ftnchek sind selbsterklärend. Diejenigen, die etwas brauchen
Weitere Erläuterungen sind unten in alphabetischer Reihenfolge aufgeführt.

gemeinsam Schutzmassnahmen bei Name: technische Daten tippe Nichtübereinstimmung at Position n
Das nDie -te Variable im COMMON-Block unterscheidet sich im Datentyp in zwei verschiedenen
Deklarationen des COMMON-Blocks. Standardmäßig (-gemeinsam Strengestufe 3), ftnchek
ist bei COMMON-Blöcken sehr wählerisch: Die darin aufgeführten Variablen müssen genau übereinstimmen
nach Datentyp und Array-Dimensionen. Das heißt, das legale Deklarationspaar in
verschiedene Module:
GEMEINSAM /COM1/ A,B
und
GEMEINSAM /COM1/ A(2)
wird verursachen ftnchek um Warnungen der Strengestufe 3 auszusprechen. Diese beiden Erklärungen
sind in Fortran zulässig, da beide zwei reelle Variablen deklarieren. An Strenge
B. Stufe 1 oder 2, würde in diesem Beispiel keine Warnung ausgegeben, die Warnung jedoch
Wird angegeben, wenn ein Datentypkonflikt vorliegt, beispielsweise wenn B als INTEGER deklariert wurde.
Kontrolliert von -gemeinsam Einstellung.

gemeinsam Schutzmassnahmen bei NAME/FUNKTION hat lange technische Daten tippe Folgende kurz technische Daten tippe
Einige Compiler erfordern die Ausrichtung von Multibyte-Elementen, sodass jedes Element bei an beginnt
Adresse, die ein Vielfaches der Elementgröße ist. Wenn also ein Kurzschluss (z. B. ein-
Auf das Element mit reeller Präzision folgt ein langes Element (z. B. mit reeller Präzision doppelter Genauigkeit), das
Letzteres ist möglicherweise nicht richtig ausgerichtet. Kontrolliert von -portability=common-alignment
.

gemeinsam Schutzmassnahmen bei NAME/FUNKTION hat gemischt Charakter und Nicht-Charakter Variablen
Der ANSI-Standard verlangt, dass jede Variable in einem COMMON-Block vom Typ ist
CHARACTER, dann müssen alle anderen Variablen im selben COMMON-Block ebenfalls vom Typ sein
CHARAKTER. Kontrolliert von -f77=gemischt-gemeinsam .

gemeinsam Schutzmassnahmen bei Name: Variieren Länge
Aussichten für -gemeinsam Bei Einstellungsstufe 2 bedeutet diese Meldung, dass ein COMMON-Block deklariert wurde
haben unterschiedliche Anzahlen von Wörtern in zwei verschiedenen Unterprogrammen. Ein Wort ist die Menge
Speicherplatz, der von einer Ganzzahl oder einer reellen Variablen belegt wird. Für -gemeinsam Einstellstufe 3,
Dies bedeutet, dass die beiden Deklarationen eine unterschiedliche Anzahl von Variablen haben, wobei an
Ein Array beliebiger Größe wird als eine Variable betrachtet. Dies ist nicht unbedingt ein Fehler,
Es kann jedoch darauf hinweisen, dass in einer der Listen eine Variable fehlt. Beachten Sie, dass
Laut Fortran 77-Standard handelt es sich um einen Fehler für benannte COMMON-Blöcke (aber
nicht leer (COMMON), um sich in der Anzahl der Wörter in verschiedenen Deklarationen zu unterscheiden
Module. Gegeben für -gemeinsam Einstellung 2 oder 3.

Fehler: Schlecht gebildet logisch/relational Operator or konstante

Fehler: Schlecht gebildet echt konstante
Der Syntaxanalysator hat den Anfang eines der speziellen Wörter gefunden, die mit und beginnen
endet mit einem Punkt (z. B. .EQ.) oder dem Anfang einer numerischen Konstante, tat dies jedoch nicht
Es gelingt Ihnen, ein solches vollständiges Objekt zu finden.

Fehler: kann keine be einstellbar Größe in Modulen NAME/FUNKTION
Eine Zeichenvariable kann nicht mit der Größe eines Sternchens deklariert werden
Klammern, es sei denn, es handelt sich um ein Dummy-Argument, einen Parameter oder den Namen der Funktion
im Modul definiert.

Fehler: kann keine be , erklärt in SPAREN Aussage in Modulen NAME/FUNKTION
In einer SAVE-Anweisung können nur lokale Variablen und gemeinsame Blöcke deklariert werden.

Fehler: Nein Weg zu fehlen uns die Worte. Aussage
ftnchek erkennt Anweisungen, die ignoriert oder umgangen werden, da keine vorhanden sind
vorhersehbaren Weg zur Aussage. Zum Beispiel eine nicht nummerierte Aussage (a
Anweisung ohne Anweisungsbezeichnung), die unmittelbar nach einer GOTO-Anweisung auftritt,
unmöglich ausgeführt werden kann.

Fehler: Analysieren Fehler
Das bedeutet, dass der Parser, der das Fortran-Programm in Ausdrücke analysiert,
Aussagen usw. konnten für einige Teile keine gültige Interpretation finden
einer Anweisung im Programm. Wenn Ihr Compiler keinen Syntaxfehler meldet
Am gleichen Ort sind die häufigsten Erklärungen: (1) Verwendung einer ANSI-Erweiterung
Standard-Fortran, das von nicht erkannt wird ftnchekoder (2) die Anweisung erfordert
mehr vorausschauend als ftnchek verwendet (siehe Abschnitt über Bugs).

HINWEIS: Diese Meldung bedeutet, dass die betroffene Anweisung nicht interpretiert wird.
Daher ist es möglich, dass ftnchekDie nachfolgende Verarbeitung wird fehlerhaft sein, wenn
es hängt von allen Angelegenheiten ab, die von dieser Anweisung betroffen sind (Typdeklarationen usw.).

Fehler: Syntax Fehler
Dies ist dasselbe wie „Fehler: Parse-Fehler“ (siehe oben). Es wird generiert, wenn Ihr
Version von ftnchek wurde unter UNIX erstellt jacc Parser-Generator statt GNU
Bison.

Identifiers welche sind nicht einzigartiges in zuerst sechs Zeichen
Warnt, dass sich zwei Bezeichner, die länger als 6 Zeichen sind, nicht unterscheiden
ersten 6 Zeichen. Dies dient der Portabilität: Sie werden möglicherweise nicht als eigenständig betrachtet
von einigen Compilern. Kontrolliert von -sixchar .

Nicht tragbar Verwendung: Argument Präzision Mai nicht be und beseitigen Muskelschwäche für innere Funktion
Die Genauigkeit eines an eine intrinsische Funktion übergebenen Arguments ist möglicherweise falsch
einige Computer. Wird ausgegeben, wenn eine numerische Variable mit expliziter Genauigkeit deklariert wird
(z. B. REAL*8 X) wird an eine bestimmte intrinsische Funktion (z. B. DSQRT(X)) übergeben.
Kontrolliert von -portability=gemischte Größe und -Wortgröße.

Nicht tragbar Verwendung: Charakter konstant/variabel Länge übersteigt 255
Einige Compiler unterstützen keine Zeichenfolgen mit einer Länge von mehr als 255 Zeichen.
Kontrolliert von -portability=langer String.

Nicht tragbar Verwendung: Reichen Sie das enthält Registerkarten
ftnchek Erweitert Tabulatoren so, dass sie bis zur nächsten Spalte, die a ist, Leerzeichen entsprechen
Vielfaches von 8. Einige Compiler behandeln Tabulatoren unterschiedlich, und das ist auch möglich
Bei Dateien, die per E-Mail gesendet werden, werden die Tabulatoren auf irgendeine Weise in Leerzeichen umgewandelt.
Daher werden Dateien, die Tabulatoren enthalten, nach dem Erstellen möglicherweise nicht korrekt kompiliert
übertragen. ftnchek gibt diese Meldung nicht aus, wenn Tabulatoren nur innerhalb von Kommentaren vorkommen
oder Zeichenkonstanten. Kontrolliert von -portability=tab.

Nicht tragbar Verwendung: nicht ganzzahlig DO Schleife Beschränkt
Diese Warnung wird nur ausgegeben, wenn der DO-Index und die Grenzen keine Ganzzahlen sind. Gebrauch von
Nicht ganzzahlige Mengen in einer DO-Anweisung können zu unerwarteten oder anderen Fehlern führen
Ergebnisse auf unterschiedlichen Maschinen aufgrund von Rundungseffekten. Kontrolliert von
-portability=real-do.

Möglicherweise it is an Array welche wurde nicht , erklärt
Diese Nachricht wird an Warnungen im Zusammenhang mit einem Funktionsaufruf oder einer angehängt
Nichtübereinstimmung des Argumenttyps, bei dem die Möglichkeit besteht, dass es sich scheinbar um ein Argument handelt
Die Funktion soll eigentlich ein Array sein. Wenn der Programmierer die Dimensionierung vergessen hat
Wenn es sich um ein Array handelt, werden Verweise auf das Array als Funktionsaufrufe interpretiert.
Diese Meldung wird unterdrückt, wenn der betreffende Name in einem EXTERNEN oder erscheint
INTRINSIC-Anweisung. Kontrolliert durch die -Anfänger .

Möglicherweise irreführend Aussehen: Zeichen passt 72 Spalten
Das Programm wird mit der Anweisungsfeldbreite auf dem Standardwert abgearbeitet
von 72, und einige Nicht-Leerzeichen wurden über Spalte 72 hinaus gefunden. In diesem Fall
ftnchek verarbeitet die Zeichen über Spalte 72 hinaus nicht und benachrichtigt den Benutzer
dass die Aussage möglicherweise nicht die Bedeutung hat, die sie zu haben scheint. Diese
Zeichen könnten vom Programmierer als bedeutsam angesehen werden, aber sie werden es sein
vom Compiler ignoriert. Kontrolliert von -pretty=lange Schlange.

Möglicherweise irreführend Aussehen: gemeinsam Schutzmassnahmen bei , erklärt in mehr als dank One Aussage
Solche Mehrfacherklärungen sind rechtsgültig und haben die gleiche Wirkung wie eine Fortsetzung
die ursprüngliche Deklaration des Blocks. Diese Warnung wird nur ausgegeben, wenn die beiden
Deklarationen werden durch eine oder mehrere dazwischen liegende Anweisungen getrennt. Kontrolliert von
-pretty=mehrfach-gemeinsam.

Möglicherweise irreführend Aussehen: Fortsetzung folgt Kommentar or leer Linie
ftnchek gibt diese Warnmeldung aus, um den Benutzer darauf aufmerksam zu machen, dass eine Fortsetzung von a
Die Aussage ist mit Kommentaren durchsetzt, sodass sie leicht übersehen werden kann. Kontrolliert von
-pretty=Fortsetzung.

Möglicherweise irreführend Aussehen: Fremdartig Klammern
Warnt vor Klammern, die eine Variable in einem Ausdruck umgeben. Wenn ein
Wird eine in Klammern gesetzte Variable als Argument an ein Unterprogramm übergeben, wird sie als behandelt
ein Ausdruck, nicht als Variable, deren Wert von der aufgerufenen Routine geändert werden kann.
Kontrolliert von -pretty=Klammern.

Unterprogramm Name: Argument technische Daten tippe Nichtübereinstimmung at Position n
Das Unterprogramm n-tes tatsächliches Argument (im CALL oder der Verwendung einer Funktion)
unterscheidet sich im Datentyp oder in der Genauigkeit vom n-tes Dummy-Argument (in der SUBROUTINE oder
FUNCTION-Deklaration). Wenn der Benutzer beispielsweise ein Unterprogramm definiert
UNTERPROGRAMM SUBA(X)
ECHTES X
und an anderer Stelle ruft SUBA auf
Anrufen SUBA(2)
ftnchek wird den Fehler erkennen. Der Grund dafür ist, dass die Zahl 2 eine ganze Zahl ist.
nicht echt. Der Benutzer hätte schreiben sollen
CALL SUBA(2.0)

Beim Überprüfen eines Arguments, das ein Unterprogramm ist, ftnchek muss man bestimmen können
ob es sich um eine Funktion oder ein Unterprogramm handelt. Die Regeln, die von verwendet werden ftnchek dies zu tun sind
wie folgt: Wenn das Unterprogramm nicht nur als tatsächliches Argument übergeben wird, sondern auch
direkt an einer anderen Stelle im selben Modul aufgerufen wird, wird sein Typ dadurch bestimmt
Verwendung. Wenn nicht, dann erscheint der Name des Unterprogramms nicht explizit
Bei der Typdeklaration wird davon ausgegangen, dass es sich um eine Unterroutine handelt. Wenn es explizit eingegeben wird, ist es so
als Funktion genommen. Daher müssen Unterprogramme nur als tatsächliche Argumente übergeben werden
durch eine EXTERNAL-Anweisung im aufrufenden Modul deklariert werden, während Funktionen dies müssen
auch explizit eingegeben werden, um die Generierung dieser Fehlermeldung zu vermeiden.
Kontrolliert von -Argumente Einstellung.

Unterprogramm Name: Argument Anordnung Nichtübereinstimmung at Position n
Ähnlich wie in der vorherigen Situation, aber das Unterprogramm-Dummy-Argument unterscheidet sich von
das entsprechende tatsächliche Argument in seiner Anzahl von Dimensionen bzw. Anzahl von
Elemente. Kontrolliert von -Array Zusammen mit -Argumente zu üben.

Unterprogramm Name: Argument Nichtübereinstimmung at Position n
Ein Zeichen-Dummy-Argument ist größer als das entsprechende tatsächliche Argument, oder a
Das Hollerith-Dummy-Argument ist größer als das entsprechende tatsächliche Argument.
Kontrolliert von -Argumente Einstellung.

Unterprogramm Name: Argument Verwendung Nichtübereinstimmung
ftnchek Erkennt einen möglichen Konflikt zwischen der Art und Weise, wie ein Unterprogramm ein Argument verwendet
und die Art und Weise, wie das Argument dem Unterprogramm übergeben wird. Der Konflikt kann
einer von zwei Typen sein, wie unten beschrieben.

Papiermuster arg is geändert, Tatsächlich arg is const or ausdr
Ein Dummy-Argument ist ein Argument, wie es in einer SUBROUTINE- oder FUNCTION-Anweisung benannt ist
innerhalb des Unterprogramms verwendet. Ein tatsächliches Argument ist ein Argument, wie es an a übergeben wird
Unterprogramm oder Funktion durch den Aufrufer. ftnchek sagt, dass es sich um ein Scheinargument handelt
vom Unterprogramm geändert, was bedeutet, dass sein Wert beim Aufruf geändert wird
Modul. Das entsprechende tatsächliche Argument sollte keine Konstante oder ein Ausdruck sein.
sondern eine Variable oder ein Array-Element, dem legitim zugewiesen werden kann.
Gesteuert von der -usage=arg-const-modified .

Papiermuster arg benutzt Bevor Set, Tatsächlich arg nicht kompensieren
Hier kann im Unterprogramm ein Dummy-Argument verwendet werden, bevor ihm ein Wert zugewiesen wird
dazu durch das Unterprogramm. Das entsprechende tatsächliche Argument sollte einen Wert haben
wird ihm vom Aufrufer vor dem Aufruf des Unterprogramms zugewiesen. Kontrolliert durch die
-usage=var-uninitialisiert .

Diese Warnung ist davon nicht betroffen -Argumente Einstellung.

Unterprogramm NAME/FUNKTION aufgerufen uneinheitlich
Hier besteht die Diskrepanz zwischen dem Datentyp des Unterprogramms selbst wie verwendet und wie
definiert. Zum Beispiel, wenn der Benutzer erklärt
INTEGER-FUNKTIONSZÄHLER(A)
und ruft COUNT in einem anderen Modul als auf
N = ANZAHL(A)
Ohne Angabe seines Datentyps wird standardmäßig der reale Typ verwendet, der auf dem ersten basiert
Buchstaben seines Namens. Das aufrufende Modul hätte die Deklaration enthalten sollen
Ganzzahlzahl

Gegeben für -Argumente Einstellung 2 oder 3.

Unterprogramm Name: Variieren Länge Argument Listen:
Es wurde eine Inkonsistenz zwischen der Anzahl der Dummy-Argumente (Parameter) festgestellt.
ein Unterprogramm hat und die Anzahl der tatsächlichen Argumente, die ihm bei einem Aufruf übergeben werden.
ftnchek Verfolgt alle Aufrufe von Unterprogrammen (CALL-Anweisungen und
Ausdrücke mithilfe von Funktionen) und vergleicht sie mit den Definitionen der
Unterprogramme an anderer Stelle im Quellcode. Der Fortran-Compiler tut dies normalerweise nicht
Fangen Sie diese Art von Fehler ab. Gegeben für -Argumente Einstellung 1 oder 3.

Variable nicht erklärt. Typ hat war implizit definiert
Beim Ausdrucken der Symboltabelle für ein Modul ftnchek wird alle mit einem Sternchen markieren
Bezeichner, die nicht explizit typisiert sind, zeigen den Datentyp an, der vorhanden war
durch implizite Eingabe zugewiesen. Dies bietet Unterstützung für Benutzer, die dies wünschen
Deklarieren Sie alle Variablen, wie es in Pascal oder einigen anderen Sprachen erforderlich ist. Das
Die Meldung erscheint nur, wenn die -symtab Option ist in Kraft. Alternativ nutzen Sie die
-erklären Flag, wenn Sie eine Liste aller nicht deklarierten Variablen erhalten möchten.

Variablen , erklärt aber hört niemals referenziert
Erkennt alle Bezeichner, die in Ihrem Programm deklariert, aber nie verwendet wurden.
entweder um ihnen einen Wert zuzuweisen oder um auf ihren Wert zuzugreifen. Variablen in COMMON
sind ausgenommen. Kontrolliert durch die -usage=var-unused .

Variablen kompensieren aber hört niemals benutzt
ftnchek benachrichtigt den Benutzer, wenn einer Variablen ein Wert zugewiesen wurde, aber die
Die Variable wird im Programm nicht anderweitig verwendet. Normalerweise resultiert dies aus einem
Aufsicht. Kontrolliert durch die -usage=var-set-unused .

Variablen benutzt Bevor kompensieren
Diese Meldung gibt an, dass ein Bezeichner verwendet wird, um vor seinem Wert einen Wert zu berechnen
Initialisierung. Eine solche Verwendung kann dazu führen, dass ein falscher Wert berechnet wird
sein Anfangswert wird nicht kontrolliert. Kontrolliert durch die -usage=var-uninitialisiert
.

Variablen Mai be benutzt Bevor kompensieren
Ähnlich wie zuvor verwendet, außer dass ftnchek ist nicht in der Lage, seinen Status zu bestimmen
mit Sicherheit. ftnchek geht davon aus, dass eine Variable verwendet werden kann, bevor sie als erste festgelegt wird
Die Verwendung der Variablen erfolgt vor ihrer Zuweisung im Programmtext.
Gesteuert von der -usage=var-uninitialisiert .

Warnung: DO Index is nicht ganze Zahl
Diese Warnung wird nur ausgegeben, wenn die DO-Grenzen ganzzahlig sind, der DO-Index jedoch nicht.
Dies kann darauf hindeuten, dass der Index nicht als Ganzzahl deklariert werden konnte. Kontrolliert von
-truncation=real-do .

Warnung: ganze Zahl Quotient ausdr ... umgewandelt zu echt
Der Quotient zweier Ganzzahlen ergibt ein Ergebnis vom Typ Ganzzahl, bei dem die
Der Bruchteil wird weggelassen. Wenn ein solcher ganzzahliger Ausdruck eine Division beinhaltet
Später in einen realen Datentyp konvertiert, kann es sein, dass eine echte Typaufteilung stattgefunden hat
vorgesehen. Kontrolliert von -truncation=int-div-real .

Warnung: ganze Zahl Quotient ausdr ... benutzt in Exponent
Der Quotient zweier Ganzzahlen ergibt ein Ergebnis vom Typ Ganzzahl, bei dem die
Der Bruchteil wird weggelassen. Wenn ein solcher ganzzahliger Ausdruck als Exponent verwendet wird,
Es ist sehr wahrscheinlich, dass eine echte Typenteilung beabsichtigt war. Kontrolliert von
-truncation=int-div-exponent .

Warnung: NAME/FUNKTION nicht kompensieren wann RÜCKKEHR angetroffen
Die Art und Weise, wie Funktionen in Fortran einen Wert zurückgeben, besteht darin, den Wert dem zuzuweisen
Name der Funktion. Diese Meldung weist darauf hin, dass der Funktion kein zugewiesen wurde
Wert vor dem Punkt, an dem eine RETURN-Anweisung gefunden wurde. Daher ist es
Möglicherweise könnte die Funktion einen undefinierten Wert zurückgeben.

Warnung: Nicht standard Syntax: einstellbar Größe kann keine be verkettet hier
Der Fortran 77-Standard (Abschnitt 6.2.2) verbietet die Verkettung von Zeichenvariablen
deren Größe ein Sternchen in Klammern ist, außer in einer Zuweisungsanweisung.
Kontrolliert von -f77=gemischter Ausdruck.

Warnung: Nicht standard Syntax : signifikant Zeichen passt 72 Spalten
Diese Warnung wird unter der gegeben -f77=lange Zeile Einstellung, wenn die -Säulen Einstellung hat
wurde verwendet, um die Breite des Anweisungsfelds zu erhöhen und eine Anweisung sinnvoller zu machen
Programmtext über Spalte 72 hinaus. Standard-Fortran ignoriert den gesamten Text in diesen Spalten.
aber einige Compiler tun dies nicht. Daher kann das Programm unterschiedlich behandelt werden
verschiedene Compiler.

Warnung: Nicht standard Syntax : Erklärung of Ordnung.
ftnchek erkennt Anweisungen, die außerhalb der für ANSI angegebenen Reihenfolge liegen
Standard Fortran 77. Tabelle 1 veranschaulicht die zulässige Reihenfolge von Anweisungen im
Fortran-Sprache. Aussagen, die nicht in der richtigen Reihenfolge sind, werden dennoch von interpretiert
ftnchek, um „Kaskaden“ von Fehlermeldungen zu verhindern. Der Sequenzzähler ist ebenfalls vorhanden
zurückgesetzt, um eine Wiederholung der Fehlermeldung für einen ähnlichen Block zu verhindern
Aussagen. Kontrolliert durch die -f77=Anweisungsreihenfolge .

-------------------------------------------------- ------
| | implizit
| Parameter |--------------------
| | andere Spezifikation
Format |---------------|-------
und | | Anweisungsfunktion
Eintrag | Daten |-------
| | ausführbar
-------------------------------------------------- ------

Tabelle 1

Warnung: Möglich Teilung by Null
Diese Meldung wird überall dort ausgedruckt, wo eine Division durchgeführt wird (außer Division durch a).
Konstante). Verwenden Sie es, um ein Problem mit der Laufzeitdivision durch Null zu lokalisieren. Kontrolliert
by -Teilung .

Warnung: echt gekürzt zu intg
ftnchek hat eine Zuweisungsanweisung erkannt, die einen echten Ausdruck enthält
rechts, aber eine ganzzahlige Variable auf der linken Seite. Der Bruchteil des realen Wertes
wird verloren sein. Wenn Sie den reellen Ausdruck mithilfe von explizit in eine Ganzzahl konvertieren
INT- oder NINT-interne Funktion, es wird keine Warnung ausgegeben. Eine ähnliche Nachricht ist
wird gedruckt, wenn ein Ausdruck mit doppelter Genauigkeit einer einfachen Genauigkeit zugewiesen wird
Variable usw. Gesteuert von -truncation=Herabstufung .

Warnung: Index is nicht ganze Zahl
Da es sich bei Array-Indizes normalerweise um ganzzahlige Größen handelt, ist die Verwendung einer nicht ganzzahligen Zahl sinnvoll
Der Ausdruck hier kann einen Fehler signalisieren. Kontrolliert von -truncation=real-subscript
.

Warnung: Unbekannt innere Funktion
Diese Meldung warnt den Benutzer, dass ein in einer INTRINSIC-Anweisung deklarierter Name vorhanden ist
unbekannt ftnchek. Wahrscheinlich handelt es sich um eine nicht standardmäßige intrinsische Funktion
Das Programm ist nicht portierbar. Die Funktion wird von behandelt ftnchek als Benutzer-
definierte Funktion. Diese Warnung wird von keiner Option unterdrückt, da sie Auswirkungen hat
ftnchekAnalyse des Programms. Wenn die intrinsische Funktion jedoch in einer von liegt
Die unterstützten Sätze nicht standardmäßiger intrinsischer Funktionen können Sie verwenden -intrinsisch Einstellung
Ursache ftnchek es zu erkennen.

EINSCHRÄNKUNGEN UND ERWEITERUNGEN


ftnchek akzeptiert ANSI-Standard-Fortran-77-Programme mit einigen geringfügigen und zahlreichen Einschränkungen
gängige Erweiterungen.

Einschränkungen:
Die Dummy-Argumente in Anweisungsfunktionen werden wie gewöhnliche Variablen von behandelt
das Programm. Das heißt, ihr Geltungsbereich umfasst das gesamte Unterprogramm und nicht nur die Anweisung
Funktionsdefinition.

Die Prüfung von FORMAT-Anweisungen ist lax und toleriert fehlende Trennzeichen (Komma,
usw.) zwischen Formatdeskriptoren an Stellen, an denen der Standard sie erfordert, und
ermöglicht .d Felder auf Deskriptoren, die sie nicht haben sollten. Es wird unten gewarnt
-f77=format-edit-descr über nicht standardmäßige Deskriptortypen (wie O) und unterstützt
Erweiterungen.

Es gibt einige syntaktische Erweiterungen und Fortran 90-Elemente ftnchek akzeptiert
prüft aber nur sehr wenig. Zum Beispiel die Verwendung von Zeigern (ob die
nicht standardmäßige Cray-Syntax oder die Fortran 90-Syntax) wird außer für set nicht überprüft
und Gebrauchtzustand. Es ist zu hoffen, dass es eines Tages eine gründlichere Überprüfung geben wird
implementiert, aber vorerst sollte der Benutzer die Akzeptanz dieser Syntax prüfen
Funktionen einfach als Annehmlichkeit, um die Überprüfung anderer Aspekte des Codes zu ermöglichen
enthält sie. Einzelheiten zu den Funktionen finden Sie im Abschnitt „Erweiterungen“.
akzeptiert, aber nicht vollständig überprüft.

Wenn ein vom Benutzer bereitgestelltes Unterprogramm denselben Namen hat wie eines der nicht standardmäßigen intrinsischen
Funktionen erkannt von ftnchek, muss es in einer EXTERNAL-Anweisung in deklariert werden
jede Routine, die es aufruft. Andernfalls wird die Prüfung normal durchgeführt
der intrinsischen Funktion gegeben. Da die nicht standardmäßigen Eigenheiten nicht vorhanden sind
Standard ist diese EXTERNAL-Anweisung vom Fortran 77-Standard nicht erforderlich.
Verwendung der -intrinsic=keine Einstellung, Erkennung der meisten nicht standardmäßigen Eigenheiten
(mit Ausnahme derjenigen, die zur Unterstützung des doppelten komplexen Datentyps erforderlich sind) können gedreht werden
aus. Die Listen der unterstützten nicht standardmäßigen intrinsischen Funktionen finden Sie unter
Diskussion über die -intrinsisch Einstellung oben.

Erweiterungsoptionen:
Alle diese Erweiterungen (außer Kleinbuchstaben) generieren Warnungen, wenn
das relevante -f77 Option ist eingestellt. Einige der unten aufgeführten Erweiterungen sind Teil von
der Fortran-90-Standard. Diese werden durch die Notation (F90) gekennzeichnet.

Tabulatorzeichen sind zulässig und werden in entsprechende Leerzeichen übersetzt, die dem Tabulatorzeichen entsprechen
stoppt alle 8 Spalten. Der Standard erkennt keine Tabulatoren. Beachten Sie, dass einige
Compiler erlauben Tabulatoren, behandeln sie jedoch unterschiedlich. Die für DEC definierte Behandlung
FORTRAN kann mit dem erreicht werden -source=dec-tab Einstellung.

Zeichenfolgen können entweder durch Anführungszeichen oder Apostrophe getrennt werden. Eine Folge von zwei
Trennzeichen werden als einzelnes eingebettetes Trennzeichen interpretiert.
(F90)

Zeichenfolgen können Backslash-Escape-Sequenzen im UNIX-Stil enthalten. Sie werden
als solche interpretiert, wenn die -source=unix-backslash Einstellung gegeben ist. Ansonsten der
Backslash-Zeichen werden wie normale Druckzeichen behandelt.

Der Quellcode kann entweder im freien Fortran 90-Format oder im traditionellen festen Format vorliegen.
(F90)

Als Anweisungstrennzeichen ist ein Semikolon zulässig. (F90)

Kleinbuchstaben sind erlaubt und werden intern in Großbuchstaben umgewandelt
außer in Zeichenfolgen. Der Standard spezifiziert nur Großbuchstaben, außer in
Kommentare und Zeichenfolgen. (F90)

Hollerith-Konstanten sind gemäß dem Fortran 77-Standard zulässig.
Anhang C. Sie sollten nicht in Ausdrücken verwendet oder mit Datentypen verwechselt werden
CHARAKTER.

Der Buchstabe „D“ (Groß- oder Kleinschreibung) in Spalte 1 wird als Anfang von a behandelt
Kommentar. Es gibt keine Möglichkeit, solche Zeilen als Anweisungen statt als Kommentare zu behandeln.

Anweisungen können bei entsprechender Einstellung länger als 72 Spalten sein -Säulen wurde
verwendet, um das Limit zu erhöhen. Laut Norm alle Texte ab Spalte 73
bis 80 wird ignoriert und keine Zeile darf länger als 80 Spalten sein.

Variablennamen dürfen länger als sechs Zeichen sein. Der Standard spezifiziert sechs als
das Maximum. ftnchek erlaubt Namen mit einer Länge von bis zu 31 Zeichen (F90).

Variablennamen können Unterstriche und Dollarzeichen (oder andere nicht alphabetische Zeichen) enthalten
Zeichen wie in der angegeben -identifier-chars Möglichkeit). Diese Charaktere sind
werden genauso behandelt wie alphabetische Buchstaben. Der Standardtyp für den Variablenanfang
mit diesen Charakteren ist ECHT. In Anweisungen vom Typ IMPLICIT, die einen Bereich angeben
Zeichen folgt das Dollarzeichen dem Z und es folgt ein Unterstrich. (Alle anderen
Benutzerdefinierte Zeichen werden genauso behandelt wie das Dollarzeichen.) Fortran 90
erlaubt Unterstriche in Variablennamen.

Die UNIX-Version toleriert das Vorhandensein von Präprozessoranweisungen, nämlich Zeilen
beginnend mit dem Nummernzeichen (#). Diese werden mit Ausnahme von #line als Kommentare behandelt
Direktiven, die interpretiert werden und zum Festlegen der Zeilennummer und der Quelle verwendet werden
Dateiname für Warnungen und Fehlermeldungen. Beachten Sie, dass dies bei #include-Direktiven nicht der Fall ist
verarbeitet von ftnchek. Programme, die sie zum Einbinden von Quelldateien verwenden, sollten es sein
durch den Präprozessor geleitet, bevor es eingegeben wird ftnchek. Wie unten erwähnt,
ftnchek verarbeitet INCLUDE-Anweisungen, die eine andere Syntax haben. Ein
optionales Programm, ftnpp(1L) (separat erhältlich) bietet eine Vorverarbeitung dafür
Behandelt INCLUDE-Dateien ordnungsgemäß.

Zulässig ist die Kontrollstruktur Fortran 90 DO ... ENDDO. Der CYCLE und EXIT
Aussagen werden akzeptiert. Alle diese können einen optionalen Do-Construct-Namen haben, aber
Konstruktnamen werden nicht auf Konsistenz überprüft. (F90)

Das Fortran 90 SELECT CASE-Konstrukt wird akzeptiert. (F90)

Konstruktnamen werden auch für IF, THEN, ELSE, ENDIF und SELECT CASE akzeptiert
Aussagen. (F90)

Die ACCEPT- und TYPE-Anweisungen (für Terminal-I/O) sind ebenfalls zulässig
Syntax als PRINT.

Die sogenannte „Cray-Pointer“-Syntax wird toleriert. Es ist nicht dasselbe wie das
Fortran 90 POINTER-Anweisung. Eine wirkliche Überprüfung der Aussage findet sonst nicht statt
als die grundlegende Syntax. Die Form dieser Aussage ist
ZEIGER (Zeiger, Spitzenreiter) [,(Zeiger, Spitzenreiter)]
Den Zeigervariablen wird der Datentyp INTEGER *4 zugewiesen. Nutzungsprüfung von
Die Pointee-Variablen werden unterdrückt, da in der Praxis indirekt auf sie zugegriffen wird
über die Zeiger.

Die folgenden auf Fortran 90-Zeiger bezogenen Syntaxen werden akzeptiert: ALLOCATABLE,
POINTER- und TARGET-Anweisungen und dieselben Attribute in Typdeklarationen;
Ausführbare Anweisungen ALLOCATE, DEALLOCATE und NULLIFY; Zeigerzuweisung mit
=> Operator; und die intrinsischen Funktionen ALLOCATED und ASSOCIATED. Wenig Semantik
Die Überprüfung von Zeigervariablen und -operationen erfolgt über die Grundmenge hinaus und wird verwendet
Status. Beispielsweise erfolgt keine Prüfung auf Fehler wie baumelnde Zeiger,
oder Verwendung nicht zugewiesener Arrays.

Anweisungen können beliebig viele Fortsetzungszeilen haben. Der Fortran 77 und Fortran
90 Standards erlauben maximal 19 in fester Quellform. Der Fortran 90-Standard
erlaubt maximal 39 in freier Quellform.

Relationale (Vergleichs-)Operatoren, die aus Satzzeichen bestehen, nämlich: < <= == /= > >=
sind erlaubt. (F90)

Inline-Kommentare, die mit einem Ausrufezeichen beginnen, sind zulässig. (F90)

NAMELIST I/O wird unterstützt. Die Syntax ist die gleiche wie in Fortran 90.

FORMAT-Anweisungen können ein Dollarzeichen enthalten, um die Unterdrückung von Zeilenumbrüchen anzuzeigen.
zurückkehren. Ein in spitze Klammern eingeschlossener ganzzahliger Ausdruck kann überall in a verwendet werden
FORMAT-Anweisung, bei der der Fortran 77-Standard eine ganzzahlige Konstante zulässt (außer
für die Länge einer Hollerith-Konstante), um einen Laufzeitwert für eine Wiederholung bereitzustellen
Spezifikation oder Feldbreite.

In I/O-Anweisungen sind nicht standardmäßige Schlüsselwörter zulässig, die denen in VMS entsprechen
Fortran.

Die IMPLICIT NONE-Anweisung wird unterstützt. Die Bedeutung dieser Aussage ist folgende
Für alle Variablen muss der Datentyp explizit deklariert werden. Anstatt das zu markieren
Vorkommen solcher Variablen mit Syntaxfehlermeldungen, ftnchek wartet bis zum
Ende des Moduls und gibt dann eine Liste aller nicht deklarierten Variablen aus
tut für die -erklären Möglichkeit. (F90)

Die Datentypen INTEGER, REAL, COMPLEX und LOGICAL dürfen optional sein
Präzisionsangabe in Typdeklarationen. REAL*8 bedeutet beispielsweise ein 8-Byte
Gleitkomma-Datentyp. Der Datentyp REAL*8 wird nicht unbedingt berücksichtigt
entspricht DOPPELTER PRÄZISION, je nach -Wortgröße Einstellung. Der Fortran 77
Standard erlaubt eine Längenangabe nur für CHARACTER-Daten.

ftnchek unterstützt die Typspezifikation DOUBLE COMPLEX für eine komplexe Größe, deren
Real- und Imaginärteile sind doppelt genau. Mixed-Mode-Arithmetik mit
Komplex mit einfacher Genauigkeit und realen Daten mit doppelter Genauigkeit, verboten gemäß
Standard, ergibt ein doppelt komplexes Ergebnis.

Kombinierte Typdeklarationen und datenanweisungsähnliche Initialisierer werden akzeptiert.
Diese haben die Form einer Standard-Fortran-77-Typdeklaration, gefolgt von einem Schrägstrich.
begrenzte Liste von Konstanten, wie sie in einer DATA-Anweisung verwendet wird. Ein Beispiel dafür
Syntax ist
Ganzzahl N / 100 /
Diese Bastardform der Initialisierungsdeklaration wurde in Fortran 90 nicht übernommen
Erklärungen sollten unter Verwendung des unten beschriebenen Standardformulars verfasst werden
akzeptiert von ftnchek.

Es gibt begrenzte Unterstützung für attributbasierte Fortran 90-Typdeklarationen. Das
Der Deklarationsstil zeichnet sich durch die Verwendung eines Doppelpunkts (::) zwischen den aus
Liste der Attribute und die Liste der deklarierten Variablen. Die unterstützten Funktionen können sein
für unerfahrene Programmierer ausreichend sein, für professionelle Programmierer jedoch noch nicht ausreichend sein.
hochwertige Fortran 90-Programme. Ich hoffe, in Zukunft Unterstützung für weitere Funktionen hinzufügen zu können
Veröffentlichungen. Ich lade Freiwillige ein, bei dieser Aufgabe mitzuhelfen. Siehe die ToDo-Datei im
Weitere Informationen finden Sie unter Verteilung des Quellcodes. Die aktuell akzeptierten Attribute außerdem
Alle üblichen Datentypen sind DIMENSION, EXTERNAL, INTRINSIC, PARAMETER und SAVE.
Die neue Form der Deklaration ermöglicht auch die Zuweisung von Werten zu den Variablen
erklärt. Derzeit ist die (LEN=Wert) Form der Angabe von Zeichenlängen ist ebenfalls
akzeptiert. Kind-Spezifikationen, mit (KIND=Wert) werden analysiert, sind es aber nicht
Verarbeitet: Alle Arten werden als Standardart behandelt. Außerdem gibt es kaum Kontrollen
dieser Deklarationen über die grundlegende Syntax hinaus.

Viele häufig vorkommende nicht standardmäßige intrinsische Funktionen werden bereitgestellt. Siehe die
Diskussion über -intrinsisch Hier finden Sie eine Liste der Funktionen und wie Sie diese steuern
anerkannt.

Die Argumentüberprüfung ist für die nicht standardmäßigen intrinsischen Funktionen, die Arrays oder akzeptieren, nicht streng
gemischte Argumenttypen.

ftnchek erlaubt die INCLUDE-Anweisung, die die Einbindung des Textes bewirkt
angegebene Datei. Die Syntax ist
ENTHALTEN 'Dateinamen'
Dies ist kompatibel mit Fortran 90. Wenn die -source=vms-include Option ist gegeben,
ftnchek folgt in Bezug auf diese Anweisung den VMS-Konventionen: Es geht davon aus, dass a
Standarderweiterung von .zum wenn keine Dateinamenerweiterung angegeben ist und dies zulässt
Qualifizierer /[NO]LIST nach dem Dateinamen, um die Auflistung der enthaltenen Dateien zu steuern
Datei. Es gibt keine Unterstützung für die Einbindung von VMS-Textmodulen.

In der Diagnoseausgabe in Bezug auf Elemente, die in Include-Dateien enthalten sind, der Speicherort von
Der Fehler wird sowohl durch seinen Speicherort in der Include-Datei als auch durch den Speicherort in angegeben
die übergeordnete Datei, in der die Datei enthalten war.

ftnchek akzeptiert PARAMETER-Anweisungen ohne Klammern. Diese werden gewarnt
darüber, ob die -f77=param-noparen Flagge gegeben.

ftnchek akzeptiert PARAMETER-Definitionen, die intrinsische Funktionen beinhalten und
Potenzierung durch einen nicht ganzzahligen Exponenten. Beide Fälle sind verboten
den Fortran 77-Standard und wird gewarnt, wenn der -f77=param-intrinsisch Flagge
gegeben ist. Wenn ein intrinsischer Funktionswert eine ganzzahlige Konstante zur Kompilierungszeit ist,
ftnchek Werde es bewerten. Dies ermöglicht eine bessere Überprüfung, ob der Parameter verwendet wird
Array-Größen deklarieren. Fortran 90 ermöglicht intrinsische Funktionen in PARAMETER
Definitionen.

Die intrinsischen Funktionen, die ausgewertet werden, sind:

ABS IABS DIM IDIM MAX
MAX0 MIN MIN0 MOD SIGN
ISIGN LEN ICHAR INDEX

Die Funktionen ganzzahliger Argumente werden nur ausgewertet, wenn die Argumente ganzzahlig sind
Konstante Ausdrücke. (Dabei kann es sich um ganzzahlige Konstanten, Parameter usw. handeln
ausgewertete intrinsische Funktionen.) Die Funktion LEN wird ausgewertet, wenn ihr Argument ist
ein Ausdruck, der nur Zeichenkonstanten und Variablen umfasst, deren Länge keine Länge hat
einstellbar. Die Funktionen ICHAR und INDEX werden nur ausgewertet, wenn die Argumente vorhanden sind
Zeichenkonstanten. ftnchek Gibt eine Warnung aus, wenn der Wert einiger benötigt wird
intrinsische Funktion, die nicht ausgewertet wird.

NEU! MERKMALE


Hier sind die Änderungen von Version 3.2 zu Version 3.3:

1. Das Frontend wurde für unbegrenzten Lookahead neu geschrieben, wodurch der seit langem bestehende Fehler behoben wurde
Dies führte zu einer falschen Interpretation von Aussagen, deren Mehrdeutigkeit nicht behoben wurde
die erste Zeile.

2. Das -mkhtml Die Option ist jetzt in der MS-DOS-Version verfügbar.

3. Unterstützung für Fortran 90-Zeigersyntax hinzugefügt: ALLOCATE, DEALLOCATE und NULLIFY
Aussagen; die Attribute ALLOCATABLE, POINTER und TARGET in Typdeklarationen; Die
Zeigerzuweisungsoperator => und intrinsische Funktionen ALLOCATED und ASSOCIATED; Und
Array-Deklarationen mit verzögerter Form. Derzeit werden diese neuen Syntaxfunktionen akzeptiert
aber nicht richtig überprüft. Diese Funktion wurde von Robert Landrito hinzugefügt.

4. Das -f77 und -f90 Zeiger Option, die Warnungen zu „Cray-Zeigern“ steuert, wurde hinzugefügt
umbenannt in Cray-Pointerdem „Vermischten Geschmack“. Seine -f77=Zeiger Option steuert jetzt stattdessen Warnungen für
Code, der Fortran 90-Zeiger-bezogene Syntax enthält.

5. Neu implementiert -mkhtml Die Verarbeitung erfolgt jetzt viel schneller bei Quelldateien, die Folgendes enthalten
viele Routinen.

6. Die Anordnung des Testverzeichnisses wurde geändert, sodass keine Änderungen mehr erforderlich sind
die Distribution, um die Testsuite auszuführen (check.bat) unter MS-DOS.

7. Fehler beim Lesen numerischer Einstellungen in der Befehlszeile behoben, wenn der Name abgekürzt wurde
3-Zeichen

8. Fehler behoben, der zu einer falschen Warnung für ein GOTO führte, das sich auf eine END-Anweisung mit Bezeichnung bezog
wenn die Anweisung vor END ein FORMAT war.

9. Neue Flagge -f77=Zeichen um Warnungen über Erweiterungen des Fortran 77 zu steuern
Zeichendatentyp. Mit dieser neuen Flagge geht die Unterstützung der Fortran 90-Regeln einher
Zeichenvariablendeklarationen, die eine Null- oder negative Länge ergeben, ermöglichen
sie und behandeln negative Längenwerte als Null.

10. Kleiner Fehler beim Drucken von Kommentaren und Leerzeilen nach der letzten END-Anweisung behoben
in -Liste Modus arbeiten können.

Nutzen Sie ftnchek online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad