EngelsFransSpaans

Ad


OnWorks-favicon

ftnchek - Online in de cloud

Voer ftnchek uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht ftnchek die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


ftnchek - Fortran 77 programmacontrole

KORTE INHOUD


ftnchek [ -argumenten[=lijst] ] [ -matrix[=lijst] ]
[ -[geen]kort ] [ -roepboom[=lijst] ] [ -[geen]controle ]
[ -kolommen[=num] ] [ -gewoon[=lijst] ]
[ -[geen]kruisverwijzing[=lijst] ] [ -[geen]verklaren ]
[ -[geen]divisie ] [ -fouten[=num] ] [ -[geen]extern ]
[ -[geen]f77[=lijst] ] [ -[geen]f90[=lijst] ]
[ -[geen]f95[=lijst] ] [ -[geen]hulp ]
[ -[geen]identificatie-tekens[=lijst] ] [ -opnemen=str ]
[ -intrinsiek[=lijst] ] [ -[geen]bibliotheek ] [ -[geen]lijst ]
[ -gemaaktcls[=lijst] ] [ -mkhtml[=lijst] ]
[ -[geen]novice ] [ -uitvoer=str ]
[ -aanwijzergrootte[=num] ] [ -[geen]draagbaarheid[=lijst] ]
[ -[geen]mooi[=lijst] ] [ -project[=lijst] ]
[ -[geen]zuiver ] [ -[geen]rustig ] [ -[geen]referentie ]
[ -[geen]resources ] [ -[geen]zeschar ] [ -[geen]sorteren ]
[ -source[=lijst] ] [ -Stijl[=lijst] ] [ -[geen]symbool ]
[ -[geen]inkorting[=lijst] ] [ -gebruik[=lijst] ]
[ -[geen]vcg ] [ -[geen]versie ] [ -[geen]vluchtig ]
[ -woordgrootte[=num] ] [ -wikkelen[=num] ] [ bestanden ... ]

PRODUCTBESCHRIJVING


ftnchek (afkorting van Fortran checker) is ontworpen om bepaalde fouten in een Fortran te detecteren
programma dat een compiler gewoonlijk niet doet. ftnchek is niet primair bedoeld om te detecteren
syntaxisfouten. Het doel is om de gebruiker te helpen bij het vinden van semantische fouten. Semantisch
fouten zijn legaal in de Fortran-taal, maar zijn verspillend of kunnen onjuistheden veroorzaken
operatie. Variabelen die nooit worden gebruikt, kunnen bijvoorbeeld duiden op een omissie in de
programma; niet-geïnitialiseerde variabelen bevatten rommel die tot onjuiste resultaten kan leiden
berekend; en variabelen die niet zijn gedeclareerd, hebben mogelijk niet het beoogde type. ftnchek
is bedoeld om gebruikers te helpen bij het debuggen van hun Fortran-programma. Het is niet de bedoeling
om alle syntaxisfouten op te vangen. Dit is de functie van de compiler. Voorafgaand aan het gebruik
ftnchek, moet de gebruiker controleren of het programma correct compileert.

In dit document wordt eerst samengevat hoe u een beroep kunt doen ftnchek. Dat gedeelte moet eerder worden gelezen
beginnen te gebruiken ftnchek. Latere secties beschrijven ftnchek's opties in meer detail, geef
een voorbeeld van het gebruik ervan, en leg uit hoe de uitvoer moet worden geïnterpreteerd. De laatste secties
vermeld de beperkingen en bekende bugs in ftnchek.

INVOEREN FTNCHEK


ftnchek wordt aangeroepen via een commando van het formulier:

$ ftnchek [-optie -optie ...] bestandsnaam [bestandsnaam ...]

De haakjes geven iets aan dat optioneel is. De beugels zelf niet
daadwerkelijk getypt. Hier zijn opties opdrachtregelopties of instellingen, die de
werking van het programma en de hoeveelheid informatie die wordt afgedrukt. Als Nee
optie is opgegeven, is de standaardactie het afdrukken van foutmeldingen, waarschuwingen en
informatieve berichten, maar niet de programmalijst of symbooltabellen.

Elke optie begint met het teken '-'. (Op VAX/VMS- of MS-DOS-systemen die u mogelijk gebruikt
ofwel '/' of '-'.) Omwille van de conformiteit met een steeds gebruikelijker wordende conventie,
opties kunnen ook beginnen met '--'. Hieronder worden de opties uitgebreider beschreven
pagina.

ftnchek opties vallen in twee categorieën: schakelaars, die waar of onwaar zijn, en
instellingen, die een numerieke waarde of tekenreekswaarde hebben. De naam van een schakelaar wordt voorafgegaan door 'nee'
of 'nee-' om het uit te zetten: bijv -nopuur zou de waarschuwingen over onzuivere functies uitschakelen.
Het voorvoegsel 'nee' kan ook worden gebruikt bij numerieke instellingen, waardoor het effect wordt uitgeschakeld
de bijbehorende waarschuwingen. Instellingen die lijsten met waarschuwingen beheren, hebben een speciale syntaxis
hieronder besproken. Alleen de eerste drie tekens van een optienaam (de '-' niet meegerekend)
hoeven te worden verstrekt. Een dubbele punt kan worden gebruikt in plaats van een gelijkteken voor numeriek of tekenreeks
opdrachten instellen; we tonen echter hieronder alleen het gelijktekenformulier.

De schakelaars en instellingen die ftnchek momenteel herkent, vindt u hieronder. Voor elk
optie, de standaardwaarde is de waarde die wordt gebruikt als de optie niet expliciet is opgegeven, terwijl de
turn-on is de waarde die wordt gebruikt als de optie wordt gegeven zonder er een waarde aan toe te kennen.

-argumenten=lijst
Beheer waarschuwingen over subprogrammatypes en niet-overeenkomende argumenten. Standaard = inschakelen
= allemaal.

-matrix=lijst
Beheer waarschuwingen bij het controleren van array-argumenten van subprogramma's. Standaard = inschakelen =
alle.

-kort Gebruik een korter formaat voor sommige foutmeldingen. Standaard = nee.

-roepboom=lijst
Produceer een subprogrammaoproephiërarchie in een van de drie formaten: tekstoproepboom, wie-belt-
wie en VCG. Standaard = geen, inschakelen = boom, snoeien, sorteren.

Indien de -mkhtml optie wordt ingeroepen en tree is de toegepaste calltree-optie, een bestand
genaamd CallTree.html, zal worden geproduceerd met een afbeelding van de boom in HTML-formaat.

-controleren Controle uitvoeren. Standaard = ja.

-kolommen=num
Stel de maximale lijnlengte in op num kolommen. (Daarbuiten wordt dit genegeerd.) Inschakelen = max =
132. Standaard = 72.

-algemeen=lijst
Stel de mate van striktheid in bij het controleren van COMMON-blokken. Standaard = inschakelen = alles.

-kruisref=lijst
Druk een kruisverwijzingslijst af van subprogramma-oproepen, labelgebruik en/of COMMON-blok
gebruik. Standaard = geen.

-verklaren
Druk een lijst af van alle ID's waarvan het datatype niet expliciet is gedeclareerd. Standaard
= nee.

-divisie
Waarschuw waar deling plaatsvindt (behalve deling door een constante). Standaard = nee.

-fouten=num
Stel het maximale aantal foutmeldingen per cascade in. Standaard = inschakelen = 3.

-extern
Waarschuw als externe subprogramma's die worden aangeroepen nooit worden gedefinieerd. Standaard = ja.

-f77=lijst
Beheer specifieke waarschuwingen over ondersteunde extensies van de Fortran 77-standaard.
Standaard = geen, inschakelen = alles.

-f90=lijst
Beheer specifieke waarschuwingen over ondersteunde extensies van de Fortran 77-standaard
die niet zijn aangenomen als onderdeel van de Fortran 90-standaard. Standaard = geen, ingeschakeld
= allemaal.

-f95=lijst
Beheer specifieke waarschuwingen over standaard Fortran 77-functies waaruit zijn verwijderd
de Fortran 95-standaard. Standaard = geen, inschakelen = alles.

-Help Opdrachtoverzicht afdrukken. Standaard = nee.

-identificatietekens=lijst
Definieer niet-alfanumerieke tekens die in ID's kunnen worden gebruikt. Standaard =
inschakelen = dollarteken en onderstrepingsteken.

-opnemen=pad
Definieer een map waarin u naar INCLUDE-bestanden kunt zoeken voordat u in het hele systeem gaat zoeken
map. Cumulatief. Standaard = inschakelen = geen.

-intrinsiek=lijst
Controlebehandeling van niet-standaard intrinsieke functies. Standaard = alles behalve vms For
Unix-versie, allemaal behalve unix voor VMS-versie, alle behalve unix en vms voor anderen
versies. Aanzetten = alles.

-bibliotheek
Begin bibliotheekmodus: waarschuw niet voor subprogramma's in het bestand die zijn gedefinieerd, maar
nooit gebruikt. Standaard = nee.

-lijst Bronlijst van programma afdrukken. Standaard = nee.

-gemaaktcls=lijst
Bereid een aangiftedossier voor. De lijst specificeert opties voor het formaat hiervan
bestand. Standaard = geen, inschakelen = aangiften.

-mkhtml=lijst
Creëer individuele HTML-documentbestanden op basis van ftnchek-analyse en codecommentaar.
Meestal zult u dit ook willen specificeren -oproep=boom om het root-HTML-bestand te maken
Belboom.html. Standaard = geen, inschakelen = documenten.

-gevorderde
Geef uitvoer die geschikt is voor beginnende gebruikers. Standaard = ja.

-uitvoer=bestandsnaam
Stuur uitvoer naar het opgegeven bestand. Standaard en inschakelen sturen uitvoer naar het scherm.
(Standaard bestandsnaamextensie is .lis).

-pointergrootte=num
Stel de grootte van de ``Cray pointer''-variabelen in op num bytes. Minimaal = 1, maximaal = 16.
Standaard = inschakelen = 4

-draagbaarheid=lijst
Waarschuw voor niet-draagbaar gebruik. Standaard = geen, inschakelen = alles.

-mooi=lijst
Geef waarschuwingen voor mogelijk misleidende weergave van de broncode. Standaard = draai-
aan = alles.

-project=lijst
Projectbestand aanmaken (zie uitleg hieronder). Standaard = nee.

-zuiver Ga ervan uit dat de functies puur zijn, dat wil zeggen dat ze geen bijwerkingen hebben. Standaard = ja.

-rustig Produceer minder uitgebreide uitvoer. Standaard = nee.

-referentie
Print een tabel met subprogramma's waarnaar elk subprogramma verwijst. Standaard = nee.

-middelen
Druk de hoeveelheid bronnen af ​​die worden gebruikt bij het analyseren van het programma. Standaard = nee.

-zeschar
Maak een lijst van namen van variabelen die met een lengte van zes tekens botsen. Standaard = nee.

-soort Lijst met subprogramma's afdrukken, gesorteerd in volgorde van vereisten. Standaard = nee.

-bron=lijst
Selecteer bronopmaakopties: vaste of vrije vorm, DEC Fortran-tabbladopmaak
regels, INCLUDE-instructie in VMS-stijl, backslash-escape-reeksen in UNIX-stijl, en
impliciet typen van parameters. Standaard = geen, inschakelen = alles.

-stijl=lijst
Produceer extra kieskeurige waarschuwingen over verouderde of ouderwetse programmering
constructies. Standaard = geen, inschakelen = alles.

-symtab
Print de symbooltabel en de labeltabel voor elk subprogramma. Standaard = nee.

-truncatie=lijst
Controleer op mogelijk verlies aan nauwkeurigheid door afkappen. Standaard = inschakelen = alles.

-gebruik=lijst
Beheer waarschuwingen over ongebruikte of niet-geïnitialiseerde variabelen, algemene blokken, enz.
Standaard = inschakelen = alles.

-vcg Produceer het VCG-formaat van de oproepgrafiek.

-versie
Printversienummer. Standaard = nee.

-vluchtig
Stel dat COMMON-blokken tussen activeringen hun definitie verliezen. Standaard = nee. (Verouderd.
Te gebruiken -gemeenschappelijk=vluchtig in plaats daarvan.)

-woordgrootte=num
Stel de standaardwoordgrootte voor numerieke hoeveelheden in op num bytes. Standaard = inschakelen =
4 bytes.

-wikkel=num
Stel de uitvoerkolom in waarin lange foutmeldingen en waarschuwingen naar de volgende moeten worden weergegeven
lijn. Indien ingesteld op 0, schakelt u omloop uit. Standaard = inschakelen = 79.

Als er meer dan één optie wordt gebruikt, moeten deze worden gescheiden door een spatie, behalve op
systemen zoals VMS waarbij opties beginnen met een schuine streep ( / ). Er mogen geen spaties geplaatst worden
rond het gelijkteken ( = ) in een instelling. ftnchek "?" zal een opdrachtsamenvatting produceren
met alle opties en instellingen.

Voor instellingen waarvoor een lijst met trefwoorden nodig is, namelijk -argumenten, -matrix, -roepboom, -gewoon,
-kruisref, -f77, -f90, -f95, -intrinsiek, -gemaaktcls, -mkhtml, -draagbaarheid, -mooi,
-project, -source, -Stijl, -afknotting en -gebruik, bestaat de lijst uit trefwoorden
gescheiden door komma's of dubbele punten. Als de lijst met trefwoorden wordt weggelaten, wordt het effect ingesteld
de optie naar de inschakelwaarde (in de meeste gevallen hetzelfde als ``alle''). Ook als de lijst dat is
weggelaten, kan de naam van de instelling worden voorafgegaan door geen or Nee- om alle opties uit te schakelen
controles. Bijvoorbeeld, -f77 schakelt alle waarschuwingen over niet-standaardconstructies in, terwijl
-nof77 schakelt ze allemaal uit. Drie bijzondere trefwoorden zijn:

hulp Druk alle trefwoorden voor de opties af die door de instelling worden beheerd, met een korte omschrijving
uitleg van hun betekenissen. Dit trefwoord kan niet in een lijst met andere worden vermeld
zoekwoorden.

allen Stel alle opties in. Hiermee worden alle opties ingeschakeld die door de instelling worden beheerd.

geen Wis alle opties. Hierdoor worden alle opties uitgeschakeld die door de instelling worden beheerd.

Deze drie bijzondere trefwoorden moeten volledig worden vermeld. Voor alle andere zoekwoorden geldt slechts een beperkt aantal
letters van het trefwoord moeten worden opgegeven die nodig zijn om het ondubbelzinnig te identificeren, of a
Er mag een jokertekenpatroon worden gebruikt. Als u een trefwoord in de lijst opneemt, wordt het overeenkomstige
optie aan. Bijvoorbeeld, -f77=intrinsiek zou alleen de waarschuwingen over het gebruik van inschakelen
niet-standaard intrinsieke functies. Een trefwoord vooraf laten gaan door Nee- schakelt zijn optie uit. Voor
voorbeeld, -mooi=geen-lange-lijn schakelt waarschuwingen uit over regels die groter zijn dan 72 kolommen
lengte terwijl alle andere waarschuwingen over misleidende schijn van kracht blijven. Als een
instelling is standaard geen, kunt u alle opties inschakelen, behalve één of twee, met behulp van allen
Eerst. Bijvoorbeeld, -f77=alles,geen-inbegrepen maakt waarschuwingen mogelijk over alle niet-standaard extensies
behalve INCLUDE-verklaringen. Als een instelling standaard is allen, kunt u alle waarschuwingen uitschakelen
behalve één of twee door gebruik te maken geen Eerst. Bijvoorbeeld, -truncatie=geen,degradatie zou draaien
alle precisiegerelateerde waarschuwingen uit, behalve over degradaties. Wildcard-patronen bevatten een
asterisk om een ​​willekeurige reeks tekens aan te duiden. Als er een jokertekenpatroon wordt gebruikt, worden alle
waarschuwingen die hiermee overeenkomen, worden beïnvloed. Als Nee- wordt voorafgegaan aan het patroon, alle overeenkomsten
waarschuwingen zijn uitgeschakeld, anders zijn ze allemaal ingeschakeld. De minimale eenduidige lengte
regel is niet van toepassing op jokertekens. Gebruik bijvoorbeeld -gebruik=geen-*var* uitschakelen
alle waarschuwingen met betrekking tot variabel gebruik (zowel lokaal als algemeen). (Unix-gebruikers moeten dit mogelijk wel doen
citeer alle opties die jokertekens bevatten om te voorkomen dat de shell dit probeert
vouw ze uit.) Jokertekens worden alleen herkend in lijsten met waarschuwingszoekwoorden, niet in de bovenste
niveau-opties zelf.

. ftnchek opstart, zoekt het naar omgevingsvariabelen en ook naar voorkeuren
bestand. Alle opties die in de omgeving of in het voorkeurenbestand zijn gedefinieerd, worden gebruikt als
standaardinstellingen in plaats van de ingebouwde standaardinstellingen. Ze worden overschreven door elke opdrachtregel
opties. Zie het gedeelte over het wijzigen van de standaardinstellingen voor meer informatie over de omgeving
opties en het voorkeurenbestand.

Bij het geven van een naam aan een invoerbestand is de extensie optioneel. Als er geen verlenging wordt gegeven,
ftnchek zoekt eerst naar een projectbestand met extensie .prj, en zal dat gebruiken als dat het geval is
bestaat. Zoniet dan ftnchek zoekt naar een Fortran-bronbestand met de extensie .voor
voor VMS-systemen, .f voor UNIX-systemen. Er kan meer dan één bestandsnaam worden opgegeven ftnchek,
en het zal de modules in alle bestanden verwerken alsof ze zich in één enkel bestand bevinden.

Jokertekens zijn toegestaan ​​in de specificatie van bestandsnamen op de opdrachtregel voor de VMS
en MS-DOS-versies, maar uiteraard ook onder UNIX en elk ander systeem dat presteert
wildcard-uitbreiding in de opdrachtprocessor.

Als er geen bestandsnaam wordt opgegeven, ftnchek leest de invoer van de standaardinvoer.

OPTIES


In dit gedeelte vindt u een meer gedetailleerde bespreking van ftnchek opdrachtregelopties. Opties
en bestandsnamen kunnen op een opdrachtregel worden afgewisseld. De meeste opties zijn positioneel: elk
optie blijft van kracht vanaf het moment dat deze wordt aangetroffen totdat deze wordt overschreven door a
latere verandering. Zo kan de vermelding bijvoorbeeld voor sommige bestanden worden onderdrukt en niet voor
anderen. Uitzonderingen zijn: de -intrinsiek, -aanwijzergrootte en -woordgrootte instellingen, welke
kan niet worden gewijzigd zodra de verwerking van invoerbestanden is gestart; de -argumenten, -matrix,
-roepboom, -gewoon, -kruisref, -extern, -referentie, -middelen, -soort, -vcg en -vluchtig
opties, waarbij de actie alleen afhangt van de waarde van de optie na de verwerking ervan
invoerbestanden zijn voltooid; en de omvatten instelling, die cumulatief is.

De optienamen in de volgende lijst zijn in alfabetische volgorde.

-argumenten=lijst
Beheert waarschuwingen over niet-overeenkomende argumenten tussen feitelijke en dummy-subprogramma-argumenten,
en ook over discrepanties tussen het verwachte en werkelijke subprogrammatype. (Een werkelijke
argument is een argument dat door de beller aan het subprogramma wordt doorgegeven; een dummy-argument is
een argument dat door het subprogramma wordt ontvangen.) Standaard zijn alle waarschuwingen ingeschakeld.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Sinds al deze
waarschuwingen zijn standaard ingeschakeld en bevatten een trefwoord voorafgegaan door Nee- om een ​​uit te schakelen
bijzondere waarschuwing. Er zijn drie speciale trefwoorden: allen om alles aan te zetten
waarschuwingen over argumenten, geen om ze allemaal uit te schakelen, en hulp om de lijst af te drukken
alle trefwoorden met een korte uitleg van elk. Als lijst wordt weggelaten, -argumenten
is gelijk aan -argumenten=alles en -geen argumenten is gelijk aan -argumenten=geen.
De waarschuwingswoorden met hun betekenis zijn als volgt:

arrayness:
waarschuwen voor inconsistent gebruik van argumenten die arrays zijn. Deze waarschuwingen kunnen
verder gecontroleerd worden door de -matrix optie.

type dan: :
waarschuwen voor dummy-argumenten van een ander gegevenstype dan de daadwerkelijke argumenten.

functie-type:
waarschuw als de aanroep ervan uitgaat dat de retourwaarde van de functie van een ander type is
dan het in werkelijkheid is. Waarschuwt ook als een functie als subroutine wordt aangeroepen, of
vice versa.

aantal:
waarschuwen voor het aanroepen van een subprogramma met een ander aantal argumenten dan de
subprogramma verwacht.

Voor compatibiliteit met eerdere versies van ftnchek, een numerieke vorm hiervan
instelling wordt ook geaccepteerd: de lijst wordt vervangen door een getal van 0 tot 3. Een waarde van
0 schakelt alle waarschuwingen uit, 1 schakelt alleen in aantal, 2 schakelt alles in, behalve aantal,
en 3 schakelt alle waarschuwingen in.

Deze instelling is niet van toepassing op het controleren van aanroepen van intrinsieke functies of
statement-functies, die alleen kunnen worden uitgeschakeld door de -niet controleren optie.

Zie ook: -matrix, -bibliotheek, -gebruik.

-matrix=lijst
Controleert de mate van striktheid bij het controleren van de overeenstemming tussen feitelijk en dummy
subprogramma-argumenten die arrays zijn. De waarschuwingen die door deze instelling worden beheerd, zijn
voor constructies die legitiem kunnen worden gebruikt door een ervaren programmeur,
maar dat duidt vaak op programmeerfouten. Standaard zijn alle waarschuwingen uitgeschakeld
op.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Sinds al deze
waarschuwingen zijn standaard ingeschakeld en bevatten een trefwoord voorafgegaan door Nee- om een ​​uit te schakelen
bijzondere waarschuwing. Er zijn drie speciale trefwoorden: allen om alles aan te zetten
waarschuwingen over array-argumenten, geen om ze allemaal uit te schakelen, en hulp om de af te drukken
lijst met alle trefwoorden met een korte uitleg van elk trefwoord. Als lijst wordt weggelaten,
-matrix is gelijk aan -matrix=alles en -geen reeks is gelijk aan -matrix=geen. De
waarschuwingszoekwoorden met hun betekenis zijn als volgt:

Afmeting:
waarschuwen als de argumenten verschillen wat betreft het aantal dimensies, of als het daadwerkelijk is
argument is een array-element, terwijl het dummy-argument een hele array is.

grootte:
waarschuw als beide argumenten arrays zijn, maar ze verschillen in aantal elementen.

Voor compatibiliteit met eerdere versies van ftnchek, een numerieke vorm hiervan
instelling wordt ook geaccepteerd: de lijst wordt vervangen door een getal van 0 tot 3. Een waarde van
0 schakelt alle waarschuwingen uit, 1 schakelt alleen in Afmeting, slechts 2 ingeschakeld grootte en
3 schakelt alle waarschuwingen in.

Let op: Er wordt altijd een waarschuwing gegeven, ongeacht deze instelling, als het daadwerkelijke argument is
een array is, terwijl het dummy-argument een scalaire variabele is, of als het werkelijke
argument is een scalaire variabele of expressie, terwijl het dummy-argument een array is.
Deze gevallen zijn zelden opzettelijk. (Om zelfs deze waarschuwingen uit te schakelen, gebruikt u
-argumenten=geen-arrayness.) Er wordt nooit een waarschuwing gegeven als het feitelijke argument een
array-element terwijl het dummy-argument een scalaire variabele is. Variabel gedimensioneerd
arrays en arrays met de afmetingen 1 of een sterretje komen overeen met een willekeurig aantal arrays
elementen. Er is geen controle of multidimensionale arrays qua grootte overeenkomen
van elke dimensie afzonderlijk.

Zie ook: -argumenten, -bibliotheek, -gebruik.

-kort
Selecteert een korter formaat voor sommige waarschuwingsberichten. Op dit moment zijn de enige waarschuwingen
gecontroleerd door deze vlag zijn de vlaggen die aan het einde van de verwerking worden afgedrukt
subprogramma. Deze omvatten waarschuwingen over variabelen die zijn ingesteld maar niet worden gebruikt of
gebruikt vóór set, variabelenamen die niet voldoen aan de Fortran 77-standaard,
enz. (Deze waarschuwingen kunnen volledig worden onderdrukt, afhankelijk van andere vlaggen, zoals
de -gebruik or -f77 vlaggen.) In het standaardformaat wordt elke variabele vermeld op a
aparte regel, samen met het regelnummer waar de variabele wordt gedeclareerd, ingesteld of
gebruikt, afhankelijk van de aard van de waarschuwing. Het kortere formaat vermeldt eenvoudigweg alles
variabelen waarop de waarschuwing van toepassing is, met maximaal 4 variabelen per regel.

Zie ook: -rustig.

-roepboom=lijst
Oorzaken ftnchek om de oproepstructuur van het volledige programma af te drukken.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn twee bijzondere
trefwoorden: geen om alle opties uit te schakelen, en hulp om de lijst met alle bestanden af ​​te drukken
trefwoorden met een korte uitleg van elk. (Het trefwoord allen schakelt alles in
opties, maar zou normaal gesproken niet gebruikt moeten worden, omdat er maar één formaat zou moeten zijn
gespecificeerd.) Als lijst wordt weggelaten, -roepboom is gelijk aan -calltree=boom en
-nocallboom is gelijk aan -calltree=geen. Standaard wordt er geen oproepgrafiek afgedrukt.

Als de optie -mkhtml wordt aangeroepen en tree is de toegepaste calltree-optie, een bestand
met de naam CallTree.html, zal ook worden geproduceerd met een afbeelding van de boom in HTML-formaat. Dit
-bestand is handig als startpunt voor het bladeren door de HTML-bestanden die elk beschrijven
onderdeel van het programma.

De trefwoorden die bepalen welk formaat wordt gebruikt, zijn als volgt:

boom:
produceer de oproepgrafiek in boomformaat.

referentie:
maak de oproepgrafiek in het formaat wie-belt-wie (hetzelfde als -referentie schakelaar).

vcg:
produceer de oproepgrafiek in VCG-formaat (hetzelfde als -vcg schakelaar).

Slechts één van de formaten boom, referentieof vcg kan worden gespecificeerd.

De volgende trefwoorden beheren opties die van invloed zijn op de uitvoer:

snoeien:
herhaalde subbomen snoeien (alleen van toepassing bij boom). Dit is de standaard.

sorteren:
sorteer kinderen van elke routine in alfabetische volgorde. Dit is de standaardinstelling.

Zie de bespreking van de -referentie en -vcg vlaggen voor meer informatie hierover
formaten.

Voor boom formaat, de oproepgrafiek wordt afgedrukt vanuit het hoofdprogramma,
die op de eerste regel in de linkermarge staat. Vervolgens op de volgende regels,
elke routine die door het hoofdprogramma wordt aangeroepen, wordt vermeld, met een paar spaties ingesprongen, gevolgd
door de subboom die bij die routine begint.

Als een routine in de standaardmodus door meer dan één andere routine wordt aangeroepen, wordt deze
De oproepsubstructuur wordt alleen afgedrukt wanneer deze voor het eerst wordt aangetroffen. Latere oproepen geven alleen resultaat
de routinenaam en de mededeling ``(zie hierboven)''. Om de subboom te laten afdrukken
elke keer dat de routine voorkomt, gebruikt u de optie niet-snoeien.

Houd er rekening mee dat de aanroepboom onvolledig zal zijn als een van de invoerbestanden een project is
bestanden die meer dan één module bevatten en die zijn gemaakt in -bibliotheek modus. Zie de
bespreking van onderstaande projectbestanden.

Technische punten: Elke lijst met routines die door een bepaalde routine wordt opgeroepen, wordt afgedrukt
alfabetische volgorde tenzij de geen sortering optie wordt gegeven. Als er meerdere hoofdprogramma's zijn
worden gevonden, wordt de roepboom van elk afzonderlijk afgedrukt. Als er geen hoofdprogramma is
gevonden, wordt een rapport met die strekking afgedrukt, evenals de roepbomen van elk topniveau
niet-bibliotheekroutines worden afgedrukt. Deze vlag regelt alleen het afdrukken van de oproep
boom: ftnchek construeert in ieder geval de aanroepboom omdat deze wordt gebruikt om te bepalen
welke bibliotheekmodules zullen worden gecontroleerd. Zie de bespreking van de -bibliotheek
vlag.

Voor compatibiliteit met eerdere versies van ftnchek, een numerieke vorm hiervan
instelling wordt ook geaccepteerd: de lijst wordt vervangen door een getal van 0 tot en met 15. Dit
getal wordt gevormd uit 1 voor boom formaat, 2 voor referentie formaat, of 3 voor vcg
formaat, plus 4 voor niet-snoeienen 8 voor geen sortering.

Zie ook: -kruisref, -bibliotheek, -referentie, -soort, -symtab, -vcg.

-controleren
Deze schakelaar is voorzien zodat fouten en waarschuwingsmeldingen kunnen worden uitgeschakeld wanneer
ftnchek wordt gebruikt voor andere doeleinden dan het vinden van bugs, zoals het doen van aangiften
of het afdrukken van de oproepboom. Het is positioneel, dus nadat alle vinkjes zijn uitgeschakeld,
geselecteerde cheques kunnen weer worden ingeschakeld. Het effect van -niet controleren is om alles neer te zetten
schakelaars, numerieke instellingen en instellingen die lijsten met waarschuwingen voor hun beheren
turnoff-waarden, alsof ze allemaal zijn opgegeven met het voorvoegsel -no. Schakelaars
en instellingen die opties en werkingsmodi specificeren, in plaats van te controleren
waarschuwingen blijven onaangetast. Dit zijn -kolommen, -kruisref, omvatten, -intrinsiek,
-bibliotheek, -lijst, -gemaaktcls, -gevorderde, -uitvoer, -aanwijzergrootte, -project, -rustig,
-referentie, -middelen, -soort, -source, -symtab, -vcg, -versie, -woordgrootte en
-wikkelen. Standaard = ja.

Parseerfouten (syntaxisfouten als gevolg van niet-herkende of verkeerd opgemaakte instructies) zijn dat niet
onderdrukt door deze schakelaar, omdat de resultaten mogelijk onjuist zijn ftnchek heeft niet
het programma correct geparseerd.

Er zijn enkele diverse fouten en waarschuwingsberichten die niet worden beheerd door
elke andere schakelaar, en kan dus alleen via deze schakelaar worden uitgeschakeld. Houd er rekening mee dat het gebruik van
-controleren volgend -niet controleren heeft alleen tot gevolg dat deze speciale waarschuwingen worden omgezet
weer ingeschakeld en worden niet alle controles hersteld die zijn uitgeschakeld. Deze waarschuwingen zijn:

o Module bevat geen uitvoerbare instructies.

o In vrije bronvorm ontbreekt ruimte waar ruimte nodig is (bijvoorbeeld tussen a
trefwoord en een identificatie) of ruimte aanwezig waar niets is toegestaan ​​(bijvoorbeeld binnen
een identificatiemiddel).

o Nul- of negatieve lengtespecificatie in een gegevenstypedeclaratie van het formulier
type*len.

o Ongeldige operand(en) in een expressie.

o Array toegewezen aan scalair.

o Typemismatch tussen DO-index en grenzen.

o Ongedefinieerd gemeenschappelijk blok gedeclareerd in de SAVE-instructie.

o Intrinsieke functie expliciet gedeclareerd met een incompatibel type.

o Onbekende intrinsieke functie die expliciet is aangegeven in een INTRINSIC-instructie.

o Intrinsieke functie die als subprogramma-argument wordt doorgegeven, wordt niet gedeclareerd in een
INTRINSIEKE verklaring.

o Intrinsieke functie of instructiefunctie onjuist aangeroepen.

o Functie stelt geen retourwaarde in vóór de RETURN-instructie.

o Parameterconstantewaarde niet geëvalueerd (dit is ftnchekHet is zijn schuld, en dat is terecht
u hiervan op de hoogte te stellen).

o Het beginpunt van een subprogramma wordt later gebruikt als de naam van een ander subprogramma.

o Onbekend trefwoord gebruikt in een I/O-instructie.

o Illegale labelreferentie (GOTO verwijst bijvoorbeeld naar een niet-uitvoerbare instructie; I/O
statement verwijst naar een statement zonder format).

Zie ook: -fouten.

-kolommen=num
Stel de maximale instructielengte in op num kolommen. (Daarbuiten wordt dit genegeerd.) Dit
Er is een instelling beschikbaar om het controleren van programma's mogelijk te maken die mogelijk inbreuk maken op de Fortran
standaardlimiet van 72 kolommen voor de lengte van een verklaring. Volgens de
standaard worden alle tekens na kolom 72 genegeerd. Als deze instelling wordt gebruikt wanneer
de -f77=lange lijn optie actief is, wordt er een waarschuwing gegeven voor alle regels die binnenkomen
welke karakters voorbij kolom 72 worden verwerkt. Inschakelen = max = 132. Standaard = 72.

Deze instelling onderdrukt waarschuwingen over de aanwezigheid van tekens daarbuiten niet
kolom 72. Gebruik dit om code met betekenisvolle programmatekst buiten kolom 72 te verwerken
instellen en zorg ervoor dat de -f77 lange rij optie staat uit. Om code mee te verwerken
volgnummers in de kolommen 73 tot en met 80, laat de kolominstelling op de standaardwaarde staan
waardeer en gebruik de -mooi=geen-lange-lijn vlag.

Zie ook: -f77, -mooi.

-algemeen=lijst
Deze instelling bepaalt de strengheid van de controle van COMMON-blokken. Standaard allemaal
waarschuwingen behalve vluchtig zijn ingeschakeld.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Sinds de meeste hiervan
waarschuwingen zijn standaard ingeschakeld en bevatten een trefwoord voorafgegaan door Nee- om een ​​uit te schakelen
bijzondere waarschuwing. Er zijn drie speciale trefwoorden: allen om alles aan te zetten
waarschuwingen, geen om ze allemaal uit te schakelen, en hulp om de lijst met alle trefwoorden af ​​te drukken
met een korte uitleg van elk. Als lijst wordt weggelaten, -gewoon is gelijk aan
-common=afmetingen,exact,lengte,type en -niet gebruikelijk is gelijk aan -gemeenschappelijk=geen.
De waarschuwingswoorden met hun betekenis zijn als volgt:

Afmeting:
corresponderende arrays in elke declaratie van een blok moeten qua grootte overeenkomen
aantal afmetingen. Deze optie heeft alleen effect in combinatie met
exact.

exact:
de vergelijking van twee blokken gebeurt variabel per variabele in plaats van eenvoudigweg
waarbij overeenstemming tussen overeenkomstige opslaglocaties vereist is. Gebruik dit als alles
declaraties van een bepaald COMMON-blok worden verondersteld identiek te zijn, wat a
goede programmeerpraktijk.

lengte:
waarschuw als verschillende declaraties van hetzelfde blok niet gelijk zijn in totale lengte.
De Fortran 77-standaard vereist elk benoemd gemeenschappelijk blok, maar geen blanco gemeenschappelijk blok.
in alle modules van het programma dezelfde lengte hebben.

type dan: :
in elke declaratie van een bepaald COMMON-blok, overeenkomstige geheugenlocaties
(woorden of bytes) moeten overeenkomen wat betreft gegevenstype. Indien gebruikt samen met exact, deze
vereist dat overeenkomstige variabelen overeenkomen in het gegevenstype.

vluchtig:
Neem aan dat COMMON-blokken vluchtig zijn.

Veel Fortran-programmeurs gaan ervan uit dat variabelen, lokaal of in COMMON, dat wel zijn
statisch, dat wil zeggen dat als ze eenmaal een waarde hebben gekregen, ze die waarde permanent behouden totdat
het programma een andere waarde toegewezen. Maar in feite de Fortran 77
Standaard vereist dit niet dat dit het geval is. Lokale variabelen kunnen worden
ongedefinieerd tussen activeringen van een module waarin ze zijn gedeclareerd. Op dezelfde manier,
COMMON-blokken kunnen ongedefinieerd worden als er geen module is waarin ze zijn gedeclareerd
actief. (De technische term voor entiteiten met dit gedrag is ‘automatisch’, maar
ftnchek gebruikt het woord ‘vluchtig’ omdat dit duidelijker is voor de niet-specialist.) Alleen
COMMON-blokken gedeclareerd in een SAVE-instructie, of gedeclareerd in het hoofdprogramma of in a
Het blokdata-subprogramma blijft gedefinieerd zolang het programma loopt. Variabelen
en GEMEENSCHAPPELIJKE blokken die op een gegeven moment ongedefinieerd kunnen worden, worden vluchtig genoemd.

Indien de -gemeenschappelijk=vluchtig vlag is ingeschakeld, ftnchek zal u waarschuwen als het een vindt
vluchtig COMMON-blok. Als tegelijkertijd de -usage=com-block-volatile optie
is ingeschakeld (wat de standaardinstelling is), ftnchek zal proberen te controleren of een dergelijke blokkering
kan zijn gedefinieerde status verliezen tussen activeringen van de modules waar het zich bevindt
verklaard. ftnchek doet dit niet erg goed: de gebruikte regel is om te zien
of het blok wordt gedeclareerd in twee gescheiden subbomen van de aanroepboom. Voor
Dit zou bijvoorbeeld het geval zijn als twee modules, beide aangeroepen vanuit het hoofdprogramma,
heeft een vluchtig COMMON-blok gedeeld. Een blok kan ook tussen twee ongedefinieerd worden
opeenvolgende oproepen van hetzelfde subprogramma, maar ftnchek is niet slim genoeg om het te vertellen
of een subprogramma meer dan één keer kan worden aangeroepen; hier wordt dus niet op gecontroleerd.

De -gemeenschappelijk=vluchtig vlag heeft geen invloed op de weg ftnchek controleert het gebruik van local
variabelen.

Voor compatibiliteit met eerdere versies van ftnchek, een numerieke vorm hiervan
instelling wordt ook geaccepteerd: de lijst wordt vervangen door een getal van 0 tot 3. Een waarde van
0 schakelt alle waarschuwingen uit, 1 of hoger schakelt in type dan: , 2 of meer inschakelen
lengteen 3 schakelt in Afmeting en exact Ook. Het numerieke formulier kan niet worden ingeschakeld
de vluchtig optie.

Zie ook: -bibliotheek, -gebruik.

-kruisref=lijst
Drukt kruisverwijzingstabellen af. Standaard = geen.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. De trefwoorden met
hun betekenis is als volgt:

gesprekken:
tabel geeft elk subprogramma weer, gevolgd door een lijst met routines die het aanroepen.
In deze lijst worden bibliotheekmodules weggelaten die niet in de aanroepboom van het hoofdbestand staan
programma. De lijst is alfabetisch.

gemeenschappelijk:
In de tabel wordt elk COMMON-blok weergegeven, gevolgd door een lijst met de routines die toegang hebben
Het. Deze vermelde routines zijn de routines waarin sommige variabelen in de COMMON
blok worden benaderd, niet alleen de routines die het blok declareren. (Naar
Ontdek welke routines een COMMON-blok declareren maar het niet gebruiken, zie de
-gebruik vlag.)

labels:
In de tabel wordt elk label vermeld, gevolgd door een lijst met alle verwijzingen ernaar. Een label
verwijzing wordt aangegeven door het regelnummer en het verklaringstype van de verwijzende persoon
stelling. De labellijst is in opeenvolgende volgorde. De referenties zijn
vermeld in de volgorde waarin ze in het programma voorkomen.

Zie ook: -roepboom, -referentie, -soort, -symtab, -vcg.

-verklaren
Als deze vlag is ingesteld, worden alle identificatiegegevens waarvan het gegevenstype niet in elke module is gedeclareerd, weergegeven
zal worden vermeld. Deze vlag is nuttig bij het vinden van verkeerd gespelde namen van variabelen,
etc. Dezelfde lijst wordt weergegeven als de module een IMPLICIETE NONE bevat
stelling. Standaard = nee.

Zie ook: -zeschar, -gebruik.

-divisie
Deze schakelaar is bedoeld om gebruikers te helpen bij het opsporen van een mogelijke verdeling zonder problemen. Als
deze schakelaar is geselecteerd, wordt elke deling, behalve door een constante, gemarkeerd. (Het
Er wordt aangenomen dat de gebruiker intelligent genoeg is om niet te delen door een constante
gelijk aan nul!) Standaard = nee.

Zie ook: -draagbaarheid, -afknotting.

-fouten=num
Stel het maximale aantal foutmeldingen in een ``cascade'' in. Tijdens het controleren van
overeenstemming van subprogramma-argumenten, gemeenschappelijke blokdeclaraties, enzovoort,
soms zal een enkel geval een lange reeks waarschuwingen genereren. Vaak is dit eenvoudig
duidt op een andere oorzaak dan een echte discrepantie per item, zoals for
bijvoorbeeld een variabele die ontbreekt in een lijst. Dus in zulke gevallen ftnchek stopt met afdrukken
de waarschuwingen nadat de cascadelimiet is bereikt en de trailer ``etc...'' is
afgedrukt om aan te geven dat er meer fouten zijn die niet zijn afgedrukt. Als je dat denkt
Deze waarschuwingen zijn waarschijnlijk echt. Gebruik deze instelling om er meer te zien.
Inschakelen = standaard = 3, max = 999. Een waarde van 0 betekent geen limiet.

Deze instelling stelt geen algemene limiet in voor het aantal afgedrukte foutmeldingen.
alleen het nummer dat in een cascade wordt afgedrukt. De meeste soorten waarschuwingen en fouten
berichten zijn niet onderhevig aan het cascade-effect en worden hier dus niet door beïnvloed
instelling. Om waarschuwingen in het algemeen uit te schakelen, gebruikt u de individuele waarschuwingsbediening
opties of de -niet controleren optie.

Zie ook: -controleren.

-extern
Oorzaken ftnchek om te rapporteren of er subprogramma's zijn die door het programma worden aangeroepen
bepaald. Normaal gesproken, als ftnchek wordt elk op een compleet programma uitgevoerd
Een ander subprogramma dan de intrinsieke functies moet ergens worden gedefinieerd. Draai
schakel deze schakelaar uit als u slechts een subset van bestanden wilt controleren die deel uitmaken van een
groter compleet programma. Er wordt nog steeds gecontroleerd op subprogramma-argumenten
juistheid. Standaard = ja.

De -extern vlag wordt nu vervangen door de -gebruik=ext-ongedefinieerd keuze. Voor de
Voor het gemak, de -extern vlag blijft behouden, zodat -geen externe is gelijkwaardig
naar -gebruik=geen-ext-ongedefinieerd optie. De -extern schakelaar kan uiteindelijk worden teruggetrokken.

Zie ook: -bibliotheek.

-f77=lijst
Gebruik deze instelling om taalextensies op te sporen die de Fortran 77 schenden
Standaard. Dergelijke extensies kunnen ervoor zorgen dat uw programma niet draagbaar is. Voorbeelden
het gebruik van onderstrepingstekens in de namen van variabelen opnemen; namen van variabelen langer dan zes
karakters; instructieregels langer dan 72 tekens; en niet-standaard uitspraken
zoals de DO ... ENDDO-structuur. ftnchek rapporteert niet over het gebruik van
kleine letters. Standaard zijn alle waarschuwingen uitgeschakeld.

Deze instelling biedt gedetailleerde controle over de waarschuwingen over ondersteunde extensies
volgens de Fortran 77-standaard. (Meer details over de extensies zelf vindt u hier
hieronder vermeld in het gedeelte over Extensies.) De lijst bestaat uit gescheiden trefwoorden
door komma's of dubbele punten. Er zijn drie speciale trefwoorden: allen om alles aan te zetten
waarschuwingen over niet-standaard extensies, geen om ze allemaal uit te schakelen, en hulp printen
de lijst met alle trefwoorden met een korte uitleg van elk trefwoord. Als lijst wordt weggelaten,
-f77 is gelijk aan -f77=alles en -nof77 is gelijk aan -f77=geen. De waarschuwing
trefwoorden met hun betekenis zijn als volgt:

accepteer-type:
ACCEPT- en TYPE I/O-instructies.

array-grenzen:
Expressies die arraygrenzen definiëren die arrayelementen of -functies bevatten
gevonden.

opdracht-stmt:
Toewijzingsinstructies met arrays. In Fortran 90 kan een array zijn
toegewezen aan een andere array met compatibele vormen, of er kan een scalair aan worden toegewezen
een array. Geen van deze opdrachten is toegestaan ​​in Fortran 77.

Er treedt een gerelateerde waarschuwing op wanneer een array aan een scalair wordt toegewezen. Sinds dit
is ook illegaal in Fortran 90, er wordt altijd voor gewaarschuwd, ongeacht de
-f77 instelling (tenzij alle controles zijn uitgeschakeld met de -niet controleren vlag).

attribuut-gebaseerd-decl:
Typ declaraties in de nieuwe Fortran 90-attributengebaseerde stijl. Deze stijl van
declaratie onderscheidt zich door het gebruik van een dubbele dubbele punt (::) tussen de
lijst met attributen en de lijst met gedeclareerde variabelen. Deze optie ook
controleert waarschuwingen voor het gebruik van Fortran 90 lengte- of soortspecificaties in type
verklaringen. (Hoewel deze specificaties kunnen worden gebruikt in niet-attributengebaseerde
verklaringen worden gecontroleerd door deze optie om de verspreiding van te voorkomen
-f77 opties.)

automatische array:
Lokale (geen dummy) arrays met een variabele grootte. Deze zouden overeenkomen met
arrays waarvan de opslag tijdens runtime dynamisch moet worden toegewezen.

backslash:
Unix-backslash-escape in tekenreeksen. Deze waarschuwing wordt alleen gegeven als de
-source=unix-backslash instelling is opgegeven om de ontsnapping te veroorzaken
interpretatie van backslash..

byte: BYTE-gegevenstypedeclaratie.

casus-constructie:
De SELECT CASE-constructie.

karakter:
Uitbreidingen van de Fortran 77-standaard met betrekking tot karaktergegevens. Momenteel,
dit regelt alleen waarschuwingen over karaktervariabelen die zijn gedeclareerd met nul of
negatieve lengte. In Fortran 77 moeten alle karaktervariabelen positief zijn
lengte. In Fortran 90 kunnen ze een lengte van nul hebben, en verklaringen dat
specificeer dat negatieve lengtes zijn toegestaan, en worden nul voor de aangegeven lengtes
lengte. Opmerking: omdat specificaties voor een negatieve lengte een programmering kunnen aangeven
fout, wordt er een waarschuwing over gegeven, zelfs als deze optie is uitgeschakeld, en
wordt alleen onderdrukt door de -niet controleren vlag.

gemeenschappelijke subprogrammanaam:
Gemeenschappelijk blok en subprogramma met dezelfde naam.

constructienaam:
Gebruik van een constructnaam om een ​​controle-instructie te labelen.

voortzetting:
Meer dan 19 opeenvolgende vervolglijnen.

cpp: Unix C preprocessor-richtlijnen in de broncode.

cray-aanwijzer:
Syntaxis van ``Cray-aanwijzer''.

fiets-uitgang:
De CYCLE- en EXIT-instructies.

d-commentaar:
Foutopsporing in opmerkingen die beginnen met D in de broncode.

dec-tabblad:
DEC Fortran-stijl tabgeformatteerde broncode. Deze waarschuwing wordt alleen gegeven
indien de -source=dec-tabblad instelling is opgegeven om interpretatie van tabbladen te veroorzaken
in deze stijl.

doe-enddo:
DO-lusextensies: terminalinstructielabel weggelaten, END DO en WHILE.

dubbel complex:
Complex datatype met dubbele precisie.

formaat-dollarteken:
Controlecode voor dollarteken in FORMAT-instructies.

formaat-bewerken-descr:
Niet-standaard bewerkingsdescriptors in FORMAT-instructies.

functie-noparen:
Functiedefinitie zonder haakjes.

impliciet-geen:
IMPLICIET GEEN verklaring.

omvatten:
INCLUSIEF verklaring.

inline-commentaar:
Inline opmerkingen die beginnen met een uitroepteken.

interne-lijst-io:
Lijstgerichte I/O naar of van een intern bestand.

intrinsiek:
Niet-standaard intrinsieke functies.

io-trefwoorden
Niet-standaard trefwoorden die worden gebruikt in I/O-instructies. Deze vallen in drie groepen.
De eerste groep bevat trefwoorden die worden geaccepteerd in Fortran 90:

ACTIE PAD LEESSCHRIJVEN
VOORAF POSITIE GROOTTE
DELIM LEZEN SCHRIJVEN
EOR
De tweede groep omvat de volgende VMS Fortran-trefwoorden:

BLOCKSIZE EXTENDSIZE ALLEEN-LEZEN
BUFFERCOUNT BEGINGROOTTE RECORDGROOTTE
CARRIAGECONTROL MAXREC RECORDTYPE
STANDAARDBESTANDSNAAM (in OPEN) GEDEELD
DISP NOSPANBLOCK-TYPE
VERWIJDER ORGANISATIE
(Het trefwoord NAME is alleen standaard aanwezig in de INQUIRE-instructie.) De derde
groep bestaat uit het volgende IBM/MVS-trefwoord:

NUM
Deze vlag bestuurt ook een waarschuwing over het gebruik van ACCESS='APPEND', dat wil zeggen
door sommige compilers geaccepteerd. De waarde van 'APPEND' is voor geen enkele I/O geldig
specificatie in standaard Fortran 77, en in Fortran 90 moet 'APPEND' worden gebruikt
als een waarde van de POSITION-specificatie, niet ACCESS.

lange rij:
Verklaringen met betekenisvolle code voorbij 72 kolommen. Deze waarschuwing wordt alleen gegeven
indien de -kolommen instelling is gebruikt om de instructieveldbreedte te vergroten.

lange naam:
ID's van meer dan 6 tekens lang.

gemengd-gemeenschappelijk:
Gemengde karakter- en niet-karaktergegevens in COMMON-blok.

gemengd-expr:
Niet-standaard typecombinaties in uitdrukkingen, bijvoorbeeld DOUBLE PRECISION
met COMPLEX, waarbij hollerith wordt toegewezen aan gehele getallen, logische bewerkingen op gehele getallen.

naam-dollarteken:
Dollarteken gebruikt als teken in identificatiegegevens.

naam-onderstrepingsteken:
Onderstrepingsteken gebruikt als teken in ID's.

namenlijst:
NAMELIST-verklaring.

param-impliciet-type:
Impliciete typering van een parameter op basis van het gegevenstype van de toegewezen waarde. Dit
waarschuwing kan alleen optreden als het impliciete parametertypen is ingeschakeld door de
-source=param-impliciet-type optie, of als de PARAMETER-instructie van de
niet-standaardvorm zonder haakjes. Als deze optie is ingeschakeld, dan is elke optie mogelijk
gevallen waarin impliciet parametertypering plaatsvindt, worden gewaarschuwd. Als
u wilt alleen worden gewaarschuwd in die gevallen waarin het impliciete gegevenstype aanwezig is
verschilt van het standaardtype, gebruik -portabiliteit=param-impliciet-type gebruiken.
Volgens de Fortran 77-standaard wordt het datatype van een parameter opgegeven
volgens dezelfde regels als voor een variabele, en indien nodig is er een typeconversie
gedaan wanneer de waarde is toegewezen.

param-intrinsiek:
Intrinsieke functie of machtsverheffing door een reële waarde die wordt gebruikt om de waarde van a te definiëren
PARAMETER-definitie.

param-noparen:
PARAMETER-instructie zonder haakjes. De gebruiker moet zich ervan bewust zijn dat de
de semantiek van deze vorm van de verklaring verschilt van die van de standaard
vorm: in deze vorm ontleent de parameter zijn gegevenstype aan de waarde
toegewezen, in plaats van dat het standaardgegevenstype gebaseerd is op de eerste letter
van de parameternaam. (Deze vorm van de PARAMETER-instructie is geïntroduceerd
door DEC voordat de Fortran 77-standaard werd gedefinieerd, en moet worden vermeden.)

wijzer:
Fortran 90 standaard pointer-gerelateerde syntaxis, inclusief POINTER, TARGET en
ALLOCATABLE-typeverklaringen, ALLOCATE-, DEALLOCATE- en NULLIFY-instructies,
en pointertoewijzing met =>.

quad-constant:
Reële constanten met quad-precisie, bijvoorbeeld van de vorm 1.23Q4.

aanhalingsteken:
Tekenreeksen die worden gescheiden door aanhalingstekens in plaats van door apostrofs.

relops:
Relationele (vergelijkings)operatoren bestaande uit interpunctie, namelijk: < <= == /=
> >=.

puntkomma:
Puntkomma gebruikt als scheidingsteken voor instructies.

verklaring-volgorde:
Uitspraken die niet in de door de standaard voorgeschreven volgorde vallen. De toegestane
De volgorde wordt geïllustreerd in Tabel 1 in het gedeelte over het interpreteren van de uitvoer.

typeloos-constant:
Typeloze constanten, bijvoorbeeld Z'19AF'.

typegrootte:
Typ declaraties die een grootte specificeren, bijvoorbeeld REAL*8.

variabel formaat:
Variabele herhalingsspecificatie of veldgrootte in FORMAT. Deze zijn van de vorm
< uitdrukken >.

vms-io:
Verouderd. Heeft nu dezelfde betekenis als de io-trefwoorden trefwoord.

Zie ook: -f90, -f95, -draagbaarheid, -mooi, -Stijl, -woordgrootte.

-f90=lijst
Deze instelling biedt gedetailleerde controle over de waarschuwingen over ondersteunde extensies
aan de Fortran 77-standaard die niet is aangenomen als onderdeel van de Fortran 90
Standaard. Let daar op ftnchek ondersteunt niet de volledige Fortran 90-taal.
Het ondersteunt echter wel enkele veelvoorkomende uitbreidingen van Fortran 77
voordat Fortran 90 werd gedefinieerd. Sommige van deze uitbreidingen werden onderdeel van de Fortran
90 Standaard, maar anderen niet. De -f90 instelling waarschuwt alleen voor het laatste.
Dat wil zeggen, deze vlag dekt zaken die noch legaal noch legaal zijn in Fortran 77
Fortran 90. Daarom vormen de waarschuwingen die door deze vlag worden gecontroleerd in feite een subset
van de waarschuwingen gecontroleerd door -f77. Er zijn een paar gevallen, hieronder beschreven, waarbij
de omstandigheden waarin de waarschuwing wordt gegeven zijn voor beide enigszins verschillend
vlaggen.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn er drie
speciale trefwoorden: allen om alle waarschuwingen over niet-standaardextensies in te schakelen,
geen om ze allemaal uit te schakelen, en hulp om de lijst met alle trefwoorden af ​​te drukken met a
korte uitleg van elk. Als lijst wordt weggelaten, -f90 is gelijk aan -f90=alles en
-nof90 is gelijk aan -f90=geen.

De volgende trefwoorden hebben een identieke betekenis voor -f90 als voor -f77. De lezer is
zie de uitleg onder -f77.

accepteer-type dubbel complex param-noparen
backslash formaat-dollarteken cray-aanwijzer
byte formaat-bewerken-descr quad-constant
cpp functie-noparen typegrootte
d-commentaar naam-dollarteken variabel formaat
dec-tabblad param-impliciet-type vms-io

De trefwoorden die enigszins afwijken van de overeenkomstige -f77 trefwoorden zijn als
volgt.

voortzetting:
De limiet voor het aantal vervolgregels voor een instructie in een vaste bron
vorm is hetzelfde, namelijk 19, in Fortran 90 als in Fortran 77. Voor vrije bron
De limiet is 39 vervolgregels, en een regel met daarin een vervolg
Het teken mag niet anders leeg zijn of alleen commentaar bevatten.

intrinsiek:
Dit is hetzelfde als voor -f77 met uitzondering van de intrinsieke functies gedefinieerd in
MIL-STD 1753, die allemaal zijn opgenomen in Fortran 90 en dus niet worden gewaarschuwd
over. (Zien -intrinsiek voor een lijst.)

io-trefwoorden:
Dit is hetzelfde als voor -f77 behalve dat er geen waarschuwingen worden gegeven voor de I/O
trefwoorden die standaard zijn in Fortran 90.

lange rij:
Hoewel de Fortran 90-standaard regels toestaat die langer zijn dan 72 tekens
vrije bronvorm, deze beperking is nog steeds van toepassing op een vaste bronvorm. In
gratis bronvorm, de limiet voor de regellengte is 132 tekens, en in tegenstelling tot vast
het formulier, ftnchek staat niet toe dat deze grens wordt verhoogd.

gemengd-expr:
Dit is hetzelfde als voor -f77 behalve uitdrukkingen die uitgebreide precisie combineren
real met complexe datatypen, die zijn toegestaan ​​in Fortran 90.

verklaring-volgorde:
Dit is vergelijkbaar met het overeenkomstige -f77 waarschuwing, maar past het enigszins toe
lossere beperkingen op de verklaringsvolgorde van de Fortran 90-standaard. In
In het bijzonder staat Fortran 90 DATA-statements en statement-functie toe
definities die moeten worden vermengd met specificatieverklaringen.

typeloos-constant:
In Fortran 90, binaire, octale en hexadecimale constanten van de vorm B'ddd',
O'ddd' en Z'ddd' zijn respectievelijk toegestaan. Hier vertegenwoordigt 'ddd' a
reeks cijfers. ftnchek herkent deze vormen, evenals een variant ervan
de vorm X'ddd' voor een hexadecimale constante, en andere varianten waarin de
basisindicator B, O, Z of X volgt de cijferreeks. Deze varianten waren
niet overgenomen in Fortran 90, dus alleen zij worden gewaarschuwd wanneer deze vlag is
Opgewonden.

Zie ook: -f77, -f95, -draagbaarheid, -mooi, -Stijl, -woordgrootte.

-f95=lijst
Deze instelling biedt gedetailleerde controle over waarschuwingen over standaard Fortran 77
functies die zijn verwijderd uit de Fortran 95-standaard. In tegenstelling tot de -f77 en -f90
instellingen zijn deze waarschuwingen van toepassing op de syntaxis die legaal is in Fortran 77. Echter, sindsdien
deze functies zijn uit de standaard verwijderd, het is mogelijk dat programma's
het bevatten ervan zal voor sommige nieuwere compilers onaanvaardbaar zijn.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn er drie
speciale trefwoorden: allen om alle waarschuwingen over niet-standaardextensies in te schakelen,
geen om ze allemaal uit te schakelen, en hulp om de lijst met alle trefwoorden af ​​te drukken met a
korte uitleg van elk. Als lijst wordt weggelaten, -f95 is gelijk aan -f95=alles en
-nof95 is gelijk aan -f95=geen. De waarschuwingszoekwoorden met hun betekenis zijn als
volgt.

echt doen:
Een DO-variabele van elk echt numeriek type.

pauze:
De PAUSE-instructie.

toewijzen:
De ASSIGN-instructie, toegewezen GOTO of toegewezen indeling.

h-bewerken:
De H bewerk de descriptor in een formaat.

Er is nog een andere syntaxisfunctie van Fortran 77 die in Fortran 95 is verwijderd, namelijk
vertakking naar een ENDIF van buiten het IF-blok. Echter, ftnchek is niet in staat om
analyseert de programmastroom, en geeft hiervoor dus geen waarschuwing.

Zie ook: -f77, -f90, -draagbaarheid, -mooi, -Stijl, -woordgrootte.

-Help
Drukt een lijst af met alle opdrachtregelopties, met een korte beschrijving van elke optie
samen met de standaardwaarde. Deze opdracht is qua functie identiek aan de ``?''
argument, en wordt aangeboden voor het gemak van de systemen waarin de vraag bestaat
mark heeft een speciale betekenis voor de opdrachtinterpreter. Standaard = nee.

De helplijst geeft ook het versienummer en patchniveau weer ftnchek en
copyright melding.

Opmerking: de ``standaard''-waarden die in de helplijst tussen vierkante haakjes staan, zijn:
strikt genomen niet de ingebouwde standaardwaarden, maar de huidige waarden achteraf
omgevingsopties en eventuele opdrachtregelopties voorafgaand aan het -Help optie hebben
verwerkt.

Zie ook: -gevorderde, -versie en hulp optie van alle instellingen waarvoor een lijst nodig is
zoekwoorden.

-identificatietekens=lijst
Definieer niet-alfanumerieke tekens die in ID's kunnen worden gebruikt. Standaard,
ftnchek accepteert alleen het dollarteken en het onderstrepingsteken als niet-alfanumerieke tekens
in identificatienamen. De karakters in de lijst vervang welke set dan ook geaccepteerd
niet-alfanumerieke tekens waren voorheen van kracht. Dus als het dollarteken of
onderstrepingstekens niet in de lijst zijn opgenomen, verliezen ze hun status als acceptabel
tekens.

Deze optie is bedoeld om in te schakelen ftnchek om bronbestanden te verwerken die niet-
standaardidentificatienamen die bijvoorbeeld nodig kunnen zijn om toegang te krijgen tot bepaalde
besturingssysteemdiensten. Zie het gedeelte over Beperkingen en uitbreidingen voor de
behandeling van identificatiegegevens die deze tekens bevatten bij impliciet typen.

gebruik -noidentifer-tekens schakelt de acceptatie van niet-alfanumerieke tekens uit
geheel.

Zie ook: -source.

-opnemen=pad
Specificeert een map waarin moet worden gezocht naar bestanden die zijn opgegeven door INCLUDE-instructies.
In tegenstelling tot andere opdrachtregelopties is deze instelling cumulatief; dat wil zeggen, als dat zo is
meer dan eens op de opdrachtregel gegeven, zijn alle aldus gespecificeerde mappen dat ook
geplaatst op een lijst die in dezelfde volgorde wordt doorzocht als waarin ze zijn opgegeven. De
volgorde waarin ftnchek zoekopdrachten naar een bestand dat moet worden opgenomen, is: de huidige
map; de map gespecificeerd door omgevingsvariabele FTNCHEK_INCLUDE, indien aanwezig;
de mappen gespecificeerd door any omvatten opties; de map opgegeven door
omgevingsvariabele INCLUDE; en ten slotte in een standaard systeembrede directory
(/ Usr / include voor UNIX, SYS$LIBRARY voor VMS en \include voor MSDOS).

Zie ook: -f77, -source.

-intrinsiek=lijst
Bepaalt of: ftnchek herkent bepaalde niet-standaard intrinsieke functies als
intrinsiek. De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Enkele van
de trefwoorden bepalen of bepaalde groepen functies en andere worden herkend
trefwoorden bepalen de verwachte syntaxis voor het aanroepen van bepaalde niet-standaard intrinsieke kenmerken.
Voeg een trefwoord toe om de herkenning van de overeenkomstige set intrinsieke kenmerken in te schakelen of
om de overeenkomstige syntaxis toe te staan. Voeg een trefwoord toe voorafgegaan door Nee- uitschakelen
die herkenning.

Er zijn drie speciale trefwoorden: allen schakelt de herkenning van al het niet-standaard in
intrinsiek (hieronder vermeld) en accepteert beide syntaxis voor degenen die variaties hebben.
Te gebruiken geen om de herkenning van alle niet-standaard intrinsieke kenmerken uit te schakelen, behalve de genoemde
onderstaand. Gebruik hulp om de lijst met alle trefwoorden af ​​te drukken met een korte uitleg ervan
elk. Als lijst wordt weggelaten, -intrinsiek is gelijk aan -intrinsiek=alles en
-niet-intrinsiek is gelijk aan -intrinsiek=geen.

De niet-standaard intrinsieke functies die nodig zijn om de niet-standaard uitgebreide functies te ondersteunen
precisiegegevenstypen (dubbele complexe en quad-precisie) worden altijd herkend.
De intrinsieke kenmerken van het dubbelcomplexe gegevenstype zijn:

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIMAG ZEXP ZCOS
CDSIN
De intrinsieke kenmerken van de typen quad-precisie en quad-complex zijn:

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
De sleutelwoorden die de herkenning van andere niet-standaard intrinsieke functies beheersen, zijn
als volgt:

extra:
de volgende algemeen verkrijgbare niet-standaard intrinsieke kenmerken herkennen (alle behalve
EXIT en LOC zijn gedefinieerd in MIL-STD 1753):

BTEST IBCLR IEOR ISHFTC
UITGANG IBITS IOR LOC
IEN IBSET ISHFT NIET

unix: herken deze algemene Unix-specifieke intrinsieke functies:

AFBREKEN VAN GMTIME LTIME SRAND
EN IARGC OF SYSTEEM
KRIJG IRAND RAND TIJD
GETENV LSHIFT RSHIFT XOR

vms: herken deze algemene VMS-specifieke intrinsieke functies:

DATUM IDATUM SECNDS TIJD

ERRSNS RAN GROOTTE VAN

iargc-geen-argument:
specificeer dat IARGC zonder argumenten kan worden aangeroepen.

iargc-één-argument:
specificeer dat IARGC met één argument kan worden aangeroepen.

rand-geen-argument:
specificeer dat RAND en IRAND zonder argumenten kunnen worden aangeroepen.

rand-één-argument:
specificeer dat RAND en IRAND met één argument kunnen worden aangeroepen.

De geen argument en één argument trefwoorden werken als volgt: de optie inschakelen
oorzaken ftnchek om de overeenkomstige syntaxis voor het aanroepen van de functie te accepteren,
zonder de mogelijkheid van de alternatieve syntaxis uit te sluiten. De optie draaien
off zorgt ervoor dat de corresponderende syntaxis niet wordt geaccepteerd. Als beide opties zijn omgedraaid
in één keer aan (de standaardinstelling), dan worden beide syntaxis geaccepteerd. Beide opties uitschakelen
zou in één keer geen betekenis hebben. Deze opties hebben geen effect bij erkenning van
Unix-intrinsiek is uitgeschakeld.

Houd er rekening mee dat deze instelling niet bepaalt of er niet-standaard waarschuwingen worden gegeven
over deze functies. Het bepaalt of de functies verondersteld worden te zijn
intrinsiek of niet, wat bepaalt hoe het gebruik ervan wordt gecontroleerd. Wanneer functioneert in
elk van deze sets is inbegrepen, hun aanroepingen worden gecontroleerd volgens de
regels voor de intrinsieke functies; anders worden ze als normaal gecontroleerd (gebruikers-
schriftelijke) externe functies. De niet-standaard waarschuwingen worden beheerd door de
-f77=intrinsiek optie.

De standaardwaarde van deze instelling is gelijk aan -intrinsiek=alles gevolgd door
-intrinsiek=geen-vms voor de Unix-versie, -intrinsiek=geen-unix voor de VMS-versie, en
-intrinsiek=geen-unix,geen-vms voor andere versies.

Opmerking: in versies van ftnchek vóór 2.10, de -intrinsiek vlag nam een ​​numeriek
argument in plaats van een lijst met opties. In het belang van de gebruikers die mogelijk hebben geschreven
scripts aanroepen ftnchek op deze manier wordt de numerieke vorm nog steeds geaccepteerd. De
numerieke vorm van de instelling bestaat uit drie cijfers. Het enencijfer selecteert de
reeks intrinsieke functies die moeten worden ondersteund. Het cijfer 0 selecteert alleen Fortran 77
standaard intrinsieke kenmerken plus die welke nodig zijn om de niet-standaard uitgebreide precisie te ondersteunen
gegevenstypen. Het cijfer 1 is gelijk aan extra, 2 is gelijk aan extra,unix en
3 is gelijk aan extra, vms. Het tientallencijfer van deze instelling bepaalt de syntaxis
van de intrinsieke functie RAND, en het honderdtal bepaalt de syntaxis van de
IARGC-functie. Geef voor deze cijfers 0 op om aanroep met nr te vereisen
argument, 1 om één argument te vereisen, en 2 om beide vormen toe te staan.

Zie ook: -f77.

-bibliotheek
Deze schakelaar wordt gebruikt als een bestand een aantal subprogramma's bevat, maar niet
ze worden allemaal door de applicatie gebruikt. Normaal gesproken, ftnchek waarschuwt u indien aanwezig
subprogramma's zijn gedefinieerd maar nooit gebruikt. Deze schakelaar onderdrukt deze waarschuwingen.
Standaard = nee.

Deze schakelaar bepaalt ook welke subprogrammaoproepen en COMMON-blokdeclaraties er zijn
gecontroleerd. Als een bestand wordt gelezen met de -bibliotheek vlag actief is, roept het subprogramma aan
en COMMON-declaraties in een routine in dat bestand worden alleen gecontroleerd als
die routine bevindt zich in de aanroepboom van het hoofdprogramma. Aan de andere kant, als de
-bibliotheek schakelaar is dan uitgeschakeld ftnchek controleert de oproepen van elke routine door
elke andere routine, ongeacht of die routines ooit daadwerkelijk zouden kunnen bestaan
aangeroepen tijdens runtime, en op dezelfde manier worden alle COMMON-blokdeclaraties vergeleken
overeenkomst.

Het verschil tussen deze schakelaar en de -usage=geen-ext-ongebruikt optie voor
subprogramma's is dat deze laatste alleen de waarschuwing over het bestaan ​​van routines onderdrukt
aangegeven maar niet gebruikt. De -bibliotheek switch gaat verder en sluit ongebruikt uit
routines die worden verwerkt terwijl deze van kracht is, van alle kruiscontroles van argumenten en
COMMON-blokdeclaraties ook.

(Als er nergens in de set bestanden een hoofdprogramma aanwezig is dat ftnchek heeft gelezen, dus
dat er dus geen roepboom is ftnchek zal zoeken naar niet-bibliotheekroutines
die door geen enkele andere routine worden aangeroepen, en gebruik deze als vervanging voor de hoofdroutine
programma bij het construeren van de oproepboom en het beslissen wat te controleren. Als zo’n top-
niveau niet-bibliotheekroutines worden gevonden, vervolgens alle intermoduleoproepen en alle COMMON
aangiften worden gecontroleerd.)

Zie ook: -argumenten, -roepboom, -gewoon, -extern, -gebruik.

-lijst
Specificeert dat een lijst van het Fortran-programma met regels moet worden afgedrukt
cijfers. Als ftnchek een fout detecteert, volgt de foutmelding de programmaregel
met een dakje ( ^ ) dat de locatie van de fout aangeeft. Als er geen bronvermelding was
aangevraagd, ftnchek zal nog steeds elke regel afdrukken die een fout bevat, om de
gebruiker bij het bepalen waar de fout is opgetreden. Standaard = nee.

Zie ook: -uitvoer, \fB-symtab, fB-stil.

-gemaaktcls=lijst
Bereid een netjes opgemaakt bestand voor met declaraties van variabelen, algemene blokken en
namenlijstlijsten, voor eventuele samenvoeging met de broncode. De aangiften zijn
opgeslagen in een bestand met dezelfde naam als de broncode, maar met de extensie
veranderd naar .dcl. Als er geen declaraties naar het bestand worden geschreven, wordt het verwijderd
verminder de rommel door lege bestanden.

Als invoer afkomstig is van standaardinvoer, in plaats van een benoemd bestand, dan zijn declaraties dat ook
naar standaarduitvoer geschreven.

Variabelen worden binnen elke declaratieklasse en in alfabetische volgorde gedeclareerd
type, met eerst integer-variabelen, vanwege hun latere mogelijke gebruik in array
dimensies.

PARAMETER-instructies vormen een uitzondering op de regel voor alfabetische volgorde, omdat de
Fortran 77 Standard vereist dat de uitdrukkingen die parameterwaarden definiëren verwijzen
alleen voor constanten en reeds gedefinieerde parameternamen. Dit forceert het origineel
bronbestandsvolgorde van dergelijke instructies die in de declaratiebestanden moeten worden bewaard.

Expliciete verklaring van allen variabelen wordt beschouwd als goede moderne programmering
oefening. Door compileropties te gebruiken om niet-gedeclareerde variabelen, verkeerd gespeld, te weigeren
namen van variabelen (of namen die verder gaan dan kolom 72) kunnen tijdens het compileren worden opgevangen.
Expliciete verklaringen vergemakkelijken ook aanzienlijk de veranderende drijvende-kommaprecisie
met filters zoals dtoq(1L), dto's(1L), fd2s(1L), fs2d(1L), qtod(1L), en
stond(1L). Deze programma's zijn in staat om typen expliciete drijvende komma te veranderen
typeverklaringen, intrinsieke functies en constanten, maar omdat ze dat niet doen
een rigoureuze lexicale en grammaticale analyse van de Fortran-broncode uitvoeren,
ze kunnen geen gewijzigde typedeclaraties leveren voor niet-gedeclareerde variabelen. Standaard
instelling = 0, inschakelen = 1.

Verschillende opties voor de vorm van het aangiftebestand worden beheerd door de lijst,
die bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn drie bijzondere
trefwoorden: allen om alle opties in te schakelen, geen om ze allemaal uit te schakelen, en hulp naar
print de lijst met alle trefwoorden met een korte uitleg van elk trefwoord. Als lijst is
overgeslagen, -gemaaktcls is gelijk aan -makedcls=declaraties (dat wil zeggen, produceer de
aangiftebestand met behulp van de standaardopties), en -nomakedcls is gelijk aan
-makedcls=geen.

Voor compatibiliteit met eerdere versies van ftnchek, een numerieke vorm van deze instelling
wordt eveneens aanvaard: de lijst wordt vervangen door een getal dat de som is van de getallen
tussen haakjes naast de trefwoorden in de volgende lijst. De waarschuwingszoekwoorden
met hun betekenis zijn als volgt:

verklaringen (1):
Schrijf een aangiftebestand. (Dit wordt geïmpliceerd door een van de andere opties, en
kan worden weggelaten als er andere opties worden gegeven.)

alleen niet aangegeven (2):
Standaard worden alle variabelen opgenomen in het declaratiebestand. Hiermee
optie, alleen opnemen zwartwerk variabelen. Deze instelling is handig als u
wil controleren op niet-gedeclareerde variabelen, aangezien Fortran-bronbestanden met alle
variabelen die correct zijn gedeclareerd, zullen niet resulteren in a .dcl bestand. Hiermee
optie worden gemeenschappelijke blokken en namenlijstlijsten niet opgenomen in de
aangiftebestand, omdat ze door hun aard niet zwart kunnen worden aangegeven.

compact (4):
De verklaringen zijn normaal gesproken mooi afgedrukt, zodat ze netjes in één lijn liggen
kolommen, zoals in de declaratiebestanden die worden uitgevoerd door de Extended PFORT Verifier,
moeite(1L). Deze optiewaarde selecteert in plaats daarvan compacte uitvoer, zonder kolom
uitlijning.

gebruik-vervolglijnen (8):
Zorgt ervoor dat vervolglijnen worden gebruikt waar toegestaan. De standaardinstelling is
begin op elke regel een nieuwe declaratie. Deze optie is geschikt om te gebruiken
met compact.

trefwoorden-kleine letters (16):
Voer Fortran-trefwoorden uit in kleine letters, in plaats van de standaard hoofdletters.

vars-en-consts-kleine letters (32):
Voer variabelen en constanten uit in kleine letters, in plaats van de standaardwaarde
hoofdletter. Tekenreeksconstanten worden niet beïnvloed door deze optie.

uitsluiten-sftran3 (64):
Laat declaraties weg van interne integer-variabelen geproduceerd door de SFTRAN3
preprocessor, xsf3(1L), als onderdeel van de vertaling van gestructureerd Fortran
verklaringen aan gewone Fortran. Deze variabelen hebben namen van zes tekens
het formulier NPRddd, NXdddd, N2dddd en N3dddd, Waar d is een decimaal cijfer.
Omdat ze onzichtbaar zijn in de SFTRAN3-broncode en zullen veranderen als de
SFTRAN3-code is gewijzigd, dergelijke variabelen mogen niet expliciet worden gedeclareerd.
In plaats daarvan moeten ze gewoon uitgaan van het standaard Fortran INTEGER-gegevenstype
op hun eerste brief, N.

asterisk-opmerking (128):
Gebruik een asterisk als commentaarteken; anders is de standaard 'C'.

commentaar-char-kleine letters (256):
Gebruik 'c' in plaats van 'C' of '*' als commentaarteken.

onderdruk-array-dimensies (512):
Onderdruk de dimensionering van arrays in de gegenereerde declaraties. Deze optie
is bedoeld voor gebruik met code zonder typedeclaraties, om de declaratie mogelijk te maken
bestanden die zonder wijziging in de code kunnen worden ingevoegd. Omdat de code zal hebben
dimension-instructies al, waarbij de arrayvariabelen in het type worden gedimensioneerd
verklaringen van het aangiftebestand zijn overbodig. Deze optie moet worden gebruikt
alleen in combinatie met optie 2 = alleen in het zwart omdat er anders geen is aangegeven
arrays die in een type-instructie zijn gedimensioneerd, verliezen hun
dimensionering.

free-form (1024):
Produceer verklaringen in vrije bronvorm. Deze modus wordt automatisch gebruikt als
de invoerbron is vrije vorm. Gebruik deze optie om aangiften te genereren
vrije vorm, zelfs als de invoer een vaste vorm heeft. Vrije vormverklaringen zijn
slechts 2 kolommen ingesprongen in plaats van 6, gebruik het uitroepteken als commentaar
teken en geef vervolgregels aan met een ampersand aan het einde van de
lijn wordt voortgezet.

De aangiftebestanden bevatten onderscheidende opmerkingen die het begin en het einde markeren van
declaraties voor elke programma-eenheid, om het gebruik van teksteditor-macro's te vergemakkelijken
het samenvoegen van de declaraties in de broncode.

De ftnchek distributie omvat een programma, dcl2inc, die de aangifte verwerkt
bestanden om bestanden te produceren die declaraties van alle COMMON-blokken bevatten, in een formulier
geschikt voor gebruik als INCLUDE-bestanden. Zie de dcl2inc(1L) manpagina voor de details van
het gebruik ervan.

Zie ook: -mkhtml.

-mkhtml=lijst
Produceer HTML-documentatie vanaf de broncode. Creëert individuele HTML-bestanden van ftnchek
analyse en codecommentaar. Alle opmerkingen onmiddellijk voorafgaand aan en volgend op de
functie- of subroutinedefinitie worden vastgelegd in het HTML-bestand. Geen herformattering van
broncommentaar wordt op een andere manier uitgevoerd dan het verwijderen van FORTRAN-commentaartekens.
Bovendien vermeldt het HTML-bestand de gedeclareerde lokale variabelen, gemeenschappelijk blok
gebruikte variabelen, aangeroepen functies en subroutines, gebruik van I/O-eenheden en andere
informatie over elk subprogramma. Meestal zult u dit ook willen specificeren
-oproep=boom om het root-HTML-bestand CallTree.html te maken. (Misschien zou dit bestand dat moeten doen
de naam index.html krijgen.)

Verschillende opties voor de vorm van de HTML-bestanden worden beheerd door de lijst, welke
bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn drie bijzondere
trefwoorden: allen om alle opties in te schakelen, geen om ze allemaal uit te schakelen, en hulp naar
print de lijst met alle trefwoorden met een korte uitleg van elk trefwoord. Als lijst is
overgeslagen, -mkhtml is gelijk aan -mkhtml=documenten (dwz maak het HTML-document
bestanden met de standaardopties), en -nomkhtmls is gelijk aan -mkhtml=geen.

Voor de eenvoud zijn de opties voor -mkhtml zijn dezelfde als die voor
-gemaaktcls behalve die welke niet van toepassing zijn. Evenzo is een numerieke vorm van
deze instelling kan worden gebruikt, gevormd als de som van de getallen tussen haakjes in de
onderstaande lijst. De waarschuwingswoorden met hun betekenis zijn als volgt:

documenten (1):
Maak de HTML-documenten. (Dit wordt geïmpliceerd door een van de andere opties, en
kan worden weggelaten als er andere opties worden gegeven.)

compact (4):
De verklaringen zijn normaal gesproken mooi afgedrukt, zodat ze netjes in één lijn liggen
kolommen. Deze optiewaarde selecteert in plaats daarvan compacte uitvoer, zonder kolom
uitlijning.

gebruik-vervolglijnen (8):
Zorgt ervoor dat vervolgregels worden gebruikt in plaats van een nieuwe aangifte te beginnen
op elke lijn. Deze optie is geschikt om samen met te gebruiken compact.

trefwoorden-kleine letters (16):
Voer Fortran-trefwoorden uit in kleine letters, in plaats van de standaard hoofdletters.

vars-en-consts-kleine letters (32):
Voer variabelen en constanten uit in kleine letters, in plaats van de standaardwaarde
hoofdletter. Tekenreeksconstanten worden niet beïnvloed door deze optie.

uitsluiten-sftran3 (64):
Laat declaraties weg van interne integer-variabelen geproduceerd door de SFTRAN3
preprocessor, xsf3(1L). (Zien -gemaaktcls ter discussie.)

onderdruk-array-dimensies (512):
Onderdruk de dimensionering van arrays in de gegenereerde declaraties. Dit is
normaal gesproken onwenselijk, maar is beschikbaar als u om de een of andere reden dit niet wilt
array-afmetingen die in de HTML moeten verschijnen.

free-form (1024):
Produceer variabele declaraties in gratis bronvorm. Deze modus is
automatisch gebruikt als de invoerbron een vrije vorm heeft. Dit heeft vooral invloed op de
vorm van vervolglijnen als deze worden gebruikt.

Zie ook: -roepboom, -gemaaktcls.

-gevorderde
Deze vlag is bedoeld om meer nuttige uitvoer voor beginners te bieden. Het heeft er twee
Effecten:

(a) geeft een extra boodschap dat een functie wel wordt gebruikt, maar niet
ergens gedefinieerd kan een array zijn die de gebruiker vergat te declareren in a
DIMENSION-instructie (aangezien de syntaxis van een arrayverwijzing dezelfde is als die
van een functiereferentie).

(b) wijzigt de vorm van de foutmeldingen en waarschuwingen. Als de vlag wordt gedraaid
af door -nonovice, worden deze berichten afgedrukt in een stijl die meer op UNIX lijkt
pluis.

Standaard = ja.

-uitvoer=bestandsnaam
Deze instelling is bedoeld voor het gemak op systemen die 'easy' niet toestaan
omleiding van uitvoer van programma's. Wanneer deze instelling wordt gegeven, wordt de uitvoer die
dat normaal gesproken op het scherm verschijnt, wordt in plaats daarvan naar het genoemde bestand verzonden. Opmerking,
echter, dat operationele fouten van ftnchek zelf (bijvoorbeeld uit de ruimte of kan niet
open bestand) wordt nog steeds naar het scherm verzonden. De extensie voor de bestandsnaam is
optioneel, en als er geen verlenging wordt gegeven, de verlenging .lis gebruikt.

-pointergrootte=num
Specificeert de grootte van een ``Cray pointer'' variabele num bytes. Standaard = draai-
aan = 4 bytes.

De aanwijzergrootte wordt gebruikt om waarschuwingen over precisie-mismatch te geven waarbij de aanwijzer betrokken is
variabelen, bijvoorbeeld wanneer aan een pointer een waarde uit een toewijzing wordt toegewezen
routine, of doorgegeven als een subprogrammaparameter.

Zie ook: -f77, -draagbaarheid, -afknotting, -woordgrootte.

-draagbaarheid=lijst
ftnchek geeft waarschuwingen voor een verscheidenheid aan niet-draagbare toepassingen. Voorbeelden zijn onder meer
het gebruik van tabbladen behalve in opmerkingen of binnen tekenreeksen, het gebruik van Hollerith
constanten, en de gelijkwaardigheid van variabelen van verschillende gegevenstypen. Deze optie
produceert geen waarschuwingen voor ondersteunde uitbreidingen van de Fortran 77-standaard,
wat ook draagbaarheidsproblemen kan veroorzaken. Om deze te vangen, gebruik je de -f77 instellen.
Standaard zijn alle waarschuwingen uitgeschakeld.

Deze instelling biedt gedetailleerde controle over de waarschuwingen over mogelijke portabiliteit
problemen. De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn
drie bijzondere trefwoorden: allen om alle waarschuwingen over niet-draagbaar gebruik in te schakelen,
geen om ze allemaal uit te schakelen, en hulp om de lijst met alle trefwoorden af ​​te drukken met a
korte uitleg van elk. Als lijst wordt weggelaten, -draagbaarheid is gelijk aan
-draagbaarheid=alles en -geen draagbaarheid is gelijk aan -draagbaarheid=geen. De
waarschuwingszoekwoorden met hun betekenis zijn als volgt:

backslash:
Backslash-teken in tekenreeksen. Omdat sommige compilers de backslash behandelen als
een ontsnappingskarakter kan de aanwezigheid ervan problemen veroorzaken, ook al wordt het gebruikt
op een standaardconforme manier.

gemeenschappelijke uitlijning:
COMMON-blokvariabelen niet in aflopende volgorde van opslaggrootte. Sommige
compilers hebben deze volgorde nodig vanwege vereisten voor opslaguitlijning.

hallo:
Hollerith-constanten (anders dan binnen de FORMAT-specificaties). De Hollerith
gegevenstype is een functie van Fortran IV die is verwijderd in de Fortran 77
standaard. Het wordt vervangen door het tekengegevenstype. Hollerith opslaan
gegevens in variabelen van een numeriek of logisch gegevenstype zijn niet overdraagbaar vanwege
verschillende woordgroottes.

lange snaar:
Tekenreeksconstanten, variabelen of expressies die langer zijn dan 255 tekens.

gemengde gelijkwaardigheid:
Variabelen van verschillende gegevenstypen gelijkwaardig.

gemengd formaat:
Variabelen gedeclareerd met standaardprecisie gebruikt met expliciet opgegeven variabelen
precisie, in uitdrukkingen, toewijzingen of als argumenten. Als bijvoorbeeld een
variabele gedeclareerd als REAL*8 wordt behandeld als gelijkwaardig aan DUBBELE PRECISIE.

echt doen:
Niet-gehele DO-lusindex en grenzen. Deze kunnen ervoor zorgen dat de resultaten van een programma veranderen
zijn afhankelijk van de hardwarekenmerken van de specifieke gebruikte computer.

param-impliciet-type:
Impliciet typen van een parameter op basis van het gegevenstype van de toegewezen waarde, als dit het geval is
verschilt van het standaardtype. Deze waarschuwing kan alleen optreden als deze impliciet is
Het typen van parameters is ingeschakeld door de -source=param-impliciet-type
optie, of als de PARAMETER-instructie een niet-standaardvorm heeft zonder
haakjes. Als deze optie is ingeschakeld, zijn alle gevallen impliciet
parametertypering plaatsvindt en waarbij het impliciete type verschilt van de
standaardtype gebaseerd op de eerste letter van de parameternaam, wordt gewaarschuwd
over. Impliciete parametertypering kan de semantiek van instructies veranderen
waar de parameter wordt gebruikt, wat portabiliteitsproblemen veroorzaakt.

tab: Tabbladen in de broncode. Tabbladen worden door verschillende mensen verschillend geïnterpreteerd
compilers. Deze waarschuwing wordt slechts één keer gegeven, aan het einde van het bestand.

Zie ook: -f77, -f90, -f95, -mooi, -Stijl, -woordgrootte.

-mooi=lijst
Beheert bepaalde berichten met betrekking tot het uiterlijk van de broncode. Deze waarschuwen
over dingen die een programma minder leesbaar kunnen maken of misleidend kunnen zijn voor de lezer.
Standaard zijn alle waarschuwingen ingeschakeld.

Deze instelling biedt gedetailleerde controle over de waarschuwingen over de weergave. De
lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Omdat alle waarschuwingen zijn ingeschakeld
Voeg standaard een trefwoord toe voorafgegaan door Nee- om een ​​bepaalde waarschuwing uit te schakelen.
Er zijn drie speciale trefwoorden: allen om alle waarschuwingen over misleidende informatie in te schakelen
verschijningen, geen om ze allemaal uit te schakelen, en hulp om de lijst met alle bestanden af ​​te drukken
trefwoorden met een korte uitleg van elk. Als lijst wordt weggelaten, -mooi is
gelijkwaardig -mooi=alles en -niet mooi is gelijk aan -mooi=geen. De
waarschuwingszoekwoorden met hun betekenis zijn als volgt:

alternatieve terugkeer:
Een RETURN-instructie heeft een constante die een alternatief retourpunt specificeert
ligt niet tussen 0 en het aantal dummy-argumenten die labels zijn. Dit is
legaal en heeft hetzelfde effect als een RETOUR zonder alternatieve retour
expressie, maar suggereert dat de programmeur van plan was een alternatief te gebruiken
retourlabel dat niet is meegeleverd.

embedded-ruimte:
Spatie ingebed in namen van variabelen of in operatoren die uit meerdere tekens bestaan, zoals **.

voortzetting:
Vervolgmarkering na een commentaarregel.

lange rij:
Regels (behalve opmerkingen) met een breedte van meer dan 72 kolommen (normaal gesproken is dit meer dan 72).
genegeerd door de compiler).

ontbrekende ruimte:
Gebrek aan ruimte tussen variabele en een voorafgaand zoekwoord.

meerdere-gemeenschappelijk:
COMMON-blok gedeclareerd in meerdere instructies. Er wordt geen waarschuwing gegeven als de
uitspraken zijn opeenvolgend, behalve de commentaarregels.

lijst met meerdere namen:
NAMELIST gedeclareerd in meerdere verklaringen. Er wordt geen waarschuwing gegeven als de
uitspraken zijn opeenvolgend, behalve de commentaarregels.

haakjes:
Haakjes rond een variabele op zichzelf. Als subprogramma-argument is dit
maakt het argument tot een uitdrukking, die niet kan worden gewijzigd door het subprogramma.

Merk op dat in de vrije bronvorm extra ruimte en ontbrekende ruimte verboden zijn door de
Fortran 90 Standard, en zijn niet louter stijlschendingen. In dit geval de waarschuwingen
worden vervangen door syntaxisfoutmeldingen en kunnen alleen worden uitgeschakeld met behulp van
-niet controleren.

Zie ook: -f77, -draagbaarheid, -Stijl.

-project=lijst
ftnchek zal een projectbestand maken van elk bronbestand dat hierbij wordt ingevoerd
optie is ingeschakeld. Het projectbestand krijgt dezelfde naam als de invoer
bestand, maar met de extensie .f or .voor vervangen door .prj. (Als de invoer afkomstig is van
standaardinvoer, krijgt het projectbestand een naam ftnchek.prj.) Standaard = geen.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn er drie
speciale trefwoorden: allen om alle opties in te schakelen, geen om ze allemaal uit te schakelen, en
hulp om de lijst met alle trefwoorden af ​​te drukken, met een korte uitleg van elk trefwoord. Als
lijst wordt weggelaten, -project is gelijk aan -project=alles en -geen project is
gelijkwaardig -project=geen. De trefwoorden met hun betekenis zijn als volgt:

en je merk te creëren :
Maak een projectbestand. De standaardinstelling is dat er geen projectbestand wordt aangemaakt. Als
deze optie staat niet aan, de overige opties hebben geen effect.

trim-oproepen:
Trim de hoeveelheid informatie die in het projectbestand is opgeslagen over het subprogramma
verklaringen en oproepen. Dit is de standaardinstelling. Schakel deze optie alleen uit in
zeldzame situaties. (Zie bespreking hieronder.) De hoeveelheid trimmen varieert
afhankelijk van -bibliotheek vlag. Meer informatie wordt bijgesneden als die vlag er is
Opgewonden.

trim-gemeenschappelijk:
Verklein het aantal gemeenschappelijke blokdeclaraties dat in het projectbestand is opgeslagen.
Dit is de standaardinstelling. Schakel deze optie alleen uit in zeldzame situaties. (Zien
bespreking hieronder.) Deze optie heeft geen effect als de -bibliotheek vlag wordt gedraaid
off: wanneer niet in de bibliotheekmodus, is er geen bijsnijden van gemeenschappelijke blokdeclaraties
ongeacht deze optie gedaan.

Een projectbestand bevat een samenvatting van informatie uit het bronbestand, voor gebruik in
overeenkomst controleren tussen FUNCTION-, SUBROUTINE- en COMMON-gebruik in andere bestanden.
Het maakt incrementele controles mogelijk, wat tijd bespaart wanneer u over een grote set gegevens beschikt
bestanden met gedeelde subroutines, waarvan de meeste zelden veranderen. Je kan lopen
ftnchek eenmaal voor elk bestand met de -project vlag ingesteld, waardoor de projectbestanden worden gemaakt.
Meestal stelt u ook de -bibliotheek en -geen externe vlaggen op dit moment, naar
onderdruk berichten met betrekking tot consistentie met andere bestanden. Alleen foutmeldingen
die betrekking hebben op elk bestand afzonderlijk, worden op dit moment afgedrukt. Daarna rennen
ftnchek zonder deze vlaggen op alle projectbestanden samen, om de consistentie te controleren
tussen de verschillende bestanden. Alle berichten die intern zijn voor de afzonderlijke bestanden worden nu weergegeven
worden weggelaten. Pas als een bestand wordt gewijzigd, moet er een nieuw projectbestand worden gemaakt
voor.

Natuurlijk, wanneer de -project optie is ingeschakeld, ftnchek zal het project niet lezen
bestanden als invoer.

Normaal gesproken moeten de trimopties ingeschakeld blijven als u van plan bent een project te maken
bestanden voor toekomstige invoer ftnchek. Omdat trimmen standaard is ingeschakeld, betekent dit:
dat simpelweg het commando geven -project zonder optielijst is het aan te raden
modus. De trimopties worden alleen aangeboden voor het gemak van degenen die dat willen
gebruik projectbestanden voor andere doeleinden dan het controleren van het programma
ftnchek. Om projectbestanden voor het beoogde doel te gebruiken, moeten de trimopties worden gebruikt
niet worden uitgeschakeld.

Projectbestanden bevatten alleen informatie die nodig is om de overeenstemming tussen bestanden te controleren.
Dit betekent dat een projectbestand geen nut heeft als alle modules van het volledige programma bestaan
zijn opgenomen in één enkel bestand.

Een meer gedetailleerde bespreking wordt gegeven in de sectie over het gebruik van projectbestanden.

-zuiver
Veronderstel dat functies ``puur'' zijn, dat wil zeggen dat ze geen bijwerkingen zullen hebben als ze worden gewijzigd
hun argumenten of variabelen in een COMMON-blok. Wanneer deze vlag van kracht is,
ftnchek zal zijn bepaling van de ingestelde en gebruikte status van de feitelijke argumenten baseren
in de veronderstelling dat argumenten die aan een functie worden doorgegeven, niet worden gewijzigd. Het zal
geef ook een waarschuwing als blijkt dat een functie een van zijn argumenten of andere wijzigt
GEMEENSCHAPPELIJKE variabelen. Standaard = ja.

Wanneer deze vlag is uitgeschakeld, worden daadwerkelijke argumenten die aan functies worden doorgegeven, verwerkt
op dezelfde manier als feitelijke argumenten die aan subroutines worden doorgegeven. Dit betekent dat ftnchek
gaat ervan uit dat argumenten door de functies kunnen worden gewijzigd. Er zullen geen waarschuwingen zijn
gegeven als blijkt dat een functie bijwerkingen heeft. Want strengere controle wel
mogelijk als wordt aangenomen dat functies zuiver zijn, moet u deze vlag alleen uitschakelen als
jouw programma gebruikt feitelijk functies met bijwerkingen.

-rustig
Deze optie vermindert de hoeveelheid output gerelateerd aan normaal bedrijf, zodat
foutmeldingen zijn duidelijker. Deze optie is bedoeld voor het gemak van
gebruikers die grote bestandenpakketten controleren. De geëlimineerde uitvoer omvat de
namen van projectbestanden en het bericht dat er geen syntaxisfouten zijn gevonden.
Het elimineert ook enkele lege regels die normaal gesproken voor de duidelijkheid zijn opgenomen. (Sommige
van deze uitgang wordt weer ingeschakeld door de -lijst en -symtab opties.) Standaard = nee.

Opmerking: de manier om het verschil tussen de -rustig en -kort dat
-rustig onderdrukt geen waarschuwingsgerelateerde informatie, terwijl -kort doet.

Zie ook: -kort.

-referentie
Specificeert dat een wie-belt-wie-tabel moet worden afgedrukt. In deze tabel wordt elk subprogramma vermeld
gevolgd door een lijst met de routines die het oproept. Deze schakelaar is gelijk aan
-calltree=referentie. Standaard = nee.

In de referentielijst worden routines weggelaten die door ongebruikte bibliotheekmodules worden aangeroepen. Aldus
bevat dezelfde informatie als voor het call-tree-formaat, namelijk de hiërarchie van
subprogrammaoproepen, maar op een andere manier afgedrukt. Hiermee wordt een breedte-eerst afgedrukt
doorkruising van de oproepboom terwijl -calltree=boom drukt eerst een diepte af
oversteken.

Zie ook: -roepboom, -kruisref, -bibliotheek, -soort, -symtab, -vcg.

-middelen
Drukt de hoeveelheid bronnen af ​​die worden gebruikt door ftnchek bij het verwerken van het programma. Dit
lijst kan nuttig zijn bij het analyseren van de omvang en complexiteit van een programma. Het kan
ook helpen bij het kiezen van grotere maten voor ftnchek's interne tabellen als ze dat ook zijn
klein om een ​​bepaald programma te analyseren. Standaard = nee.

In deze lijst verwijst de term 'chunk size' naar de grootte van de geheugenblokken
toegewezen om het betreffende artikel op te slaan, in eenheden ter grootte van één artikel, niet
noodzakelijkerwijs in bytes. Wanneer de aanvankelijk toegewezen ruimte vol is, ontstaat er meer geheugen
wordt verdeeld in brokken van deze omvang. Hieronder volgt een toelichting op de artikelen
gedrukt:

bron lijnen verwerkt:
Totaal aantal coderegels, met afzonderlijke totalen voor instructieregels en
commentaarregels. Commentaarregels bevatten ook regels met 'C' of '*' in kolom 1
als lege regels en regels die alleen inline commentaar bevatten. Verklaringslijnen
zijn alle andere regels, inclusief regels met inline commentaar na sommige regels
code. Vervolglijnen worden als afzonderlijke lijnen geteld. Lijnen in omvatten
bestanden worden geteld telkens wanneer het bestand wordt opgenomen.

Totaal uitvoerbaar verklaringen:
Aantal instructies in het programma, anders dan specificatie, gegevens, verklaringen
function-, FORMAT-, ENTRY- en END-instructies.

Totaal aantal of modulen:
Een module is een extern subprogramma, inclusief het hoofdprogramma, subroutines,
functies en blokdata-eenheden. Dit aantal bestaat uit modules die zijn gedefinieerd binnen de
bron, niet de modules waarnaar wordt verwezen. Verklaringsfuncties zijn niet inbegrepen. A
subprogramma met meerdere ingangspunten wordt slechts één keer meegeteld.

Totaal verklaring labels gedefinieerd
Aantal labels dat aan afschriften is gehecht (vaak afschriftnummers genoemd). De
Het totale aantal labels voor het hele programma wordt gegeven, evenals het maximum
nummer in een enkel subprogramma.

Max identificatie naam tekens:
Aantal tekens dat wordt gebruikt voor het opslaan van identificatienamen. Een identificatie is een
variabele, subprogramma of gemeenschappelijke bloknaam. Lokale namen zijn die van lokaal
variabelen in een subprogramma, terwijl globale namen verwijzen naar subprogramma en gemeenschappelijk
bloknamen, evenals namen van dummy-argumenten en namen van algemene variabelen. Werkelijk
argumenttekst (maximaal 15 tekens voor elk argument) is hier ook opgenomen.
De ruimte die wordt gebruikt voor lokale namen wordt aan het einde van elke module niet hersteld
dit aantal groeit, net als de mondiale ruimte, totdat het hele programma is geanalyseerd.
Helaas kan dit cijfer tekst bevatten die meerdere keren is opgeslagen,
hoewel er een heuristiek wordt gebruikt die in veel gevallen duplicaten zal voorkomen.

Max teken tekst tekens:
Een token is de kleinste syntactische eenheid van de FORTRAN-taal boven het niveau
van individuele karakters. Een token kan bijvoorbeeld een variabelenaam zijn, a
numerieke constante, een tekstreeks tussen aanhalingstekens of een leesteken. Token
tekst wordt opgeslagen terwijl een module wordt verwerkt. Om technische redenen is
tokens van één teken zijn niet inbegrepen in dit totaal. Artikelen die dat niet zijn
weergegeven in de symbolentabel, mogen worden gedupliceerd. De ruimte voor tokentekst is
teruggevonden aan het einde van elke module, dus dit cijfer vertegenwoordigt het maximum voor
welke module dan ook.

Max lokaal symbolen:
Dit is het grootste aantal vermeldingen in de lokale symbooltabel voor elke module.
Invoer in de lokale symbooltabel omvat alle variabelen en parameters, een gemeenschappelijk blok
namen, instructiefuncties, externe subprogramma's en intrinsieke functies
waarnaar wordt verwezen door de module. Letterlijke constanten worden niet opgeslagen in het lokale symbool
tafel.

Max globaal symbolen:
Dit is het aantal vermeldingen in de globale symbooltabel aan het einde van
verwerken. Invoeren in de globale symbooltabel omvatten extern subprogramma en gemeenschappelijk
blok namen. Intrinsieke functies en instructiefuncties zijn niet inbegrepen.

Max aantal of tokenlijsten:
Een tokenlijst is een reeks tokens die het feitelijke of dummy-argument vertegenwoordigen
lijst van een subprogramma, of de lijst met variabelen in een gemeenschappelijk blok of namenlijst.
Daarom vertegenwoordigt dit getal de grootste som van COMMON, CALL, NAMELIST en
ENTRY-instructies en functie-aanroepen voor elke module. De ruimte is
aan het einde van elke module hersteld.

Max teken lijst/boom ruimte:
Dit is het grootste aantal tokens in alle tokenlijsten en tokenbomen van
welke module dan ook. Bij het analyseren van een uitdrukking wordt een tokenboom gevormd: elke
operand is een blad van de boom en de operatoren zijn de knooppunten. Daarom dit
getal is een maatstaf voor de maximale complexiteit van een individuele module. Voor
een module met veel lange rekenkundige uitdrukkingen zal bijvoorbeeld een high hebben
nummer. Houd er rekening mee dat, in tegenstelling tot de hierboven beschreven tokentekst, het aantal tokens gelijk is
onafhankelijk van de lengte van de namen van variabelen of letterlijke constanten in de
uitdrukkingen.

Telefoon Nummer of subprogramma aanroepingen:
Dit is de som over alle modules van het aantal CALL-statements en functie
aanroepen (behalve intrinsieke functies en instructiefuncties).

Telefoon Nummer of gemeenschappelijk blok decls:
Dit is de som over alle modules van het aantal gemeenschappelijke blokdeclaraties.
Dat wil zeggen dat elke declaratie van een blok in een andere module wordt geteld
afzonderlijk. (De standaard staat meerdere declaraties van een blok binnen de
dezelfde module; deze worden als slechts één aangifte geteld, aangezien dit het geval is
gelijk aan een enkele lange verklaring.)

Telefoon Nummer of reeks Sun. & param ptrs:
Dit is de som over alle modules van het aantal arraydimensies en -parameters
definitietekstreeksen die zijn opgeslagen voor gebruik door de -gemaaktcls keuze. De lengte van
de tekstreeksen worden niet meegeteld. Elke dimensie van een multidimensionale array is dat wel
apart geteld.

Deze cijfers zijn uiteraard niet hetzelfde wanneer projectbestanden worden gebruikt in plaats van
de originele broncode. Zelfs de cijfers voor mondiale entiteiten kunnen verschillen,
omdat een deel van de overtollige informatie in projectbestanden wordt geëlimineerd.

-zeschar
Een van de doelen van de ftnchek programma is om gebruikers te helpen draagbare Fortran te schrijven
programma's. Een potentiële bron van niet-overdraagbaarheid is het gebruik van namen van variabelen
zijn langer dan zes tekens. Sommige compilers negeren gewoon de extra tekens.
Dit gedrag kan er mogelijk toe leiden dat er rekening wordt gehouden met twee verschillende variabelen
hetzelfde. De variabelen met de namen AVERAGECOST en AVERAGEPRICE zijn bijvoorbeeld hetzelfde
in de eerste zes karakters. Als u dergelijke mogelijke conflicten wilt onderkennen, gebruikt u
deze vlag. Standaard = nee.

Gebruik de -f77=lange namen als je een lijst wilt maken allen variabelen langer dan zes
karakters, niet alleen die paren die hetzelfde zijn in de eerste zes.

Zie ook: -f77, -draagbaarheid.

-soort
Specificeert dat een gesorteerde lijst van alle modules die in het programma worden gebruikt, wordt afgedrukt. Dit
lijst staat in ``vereiste'' volgorde, dwz elke module wordt pas afgedrukt nadat alle
modules waaruit het wordt opgeroepen, zijn afgedrukt. Dit wordt ook wel een genoemd
``topologische sortering'' van de aanroepboom. Elke module wordt slechts één keer vermeld. Routines
die niet in de oproepboom van het hoofdprogramma staan, worden weggelaten. Als er enige zijn
cycli in de oproepgrafiek (illegaal in standaard Fortran) worden gedetecteerd en
gediagnosticeerd. Standaard = nee.

Zie ook: -roepboom, -kruisref, -referentie, -symtab, -vcg.

-bron=lijst
Deze instelling regelt bepaalde opties over de vorm van de Fortran-broncode.
De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn er drie
speciale trefwoorden: allen om alle opties in te schakelen, geen om ze allemaal uit te schakelen, en
hulp om de lijst met alle trefwoorden af ​​te drukken, met een korte uitleg van elk trefwoord. Als
lijst wordt weggelaten, -source is gelijk aan -bron=alles en -geen bron is gelijkwaardig
naar -bron=geen.

Voor compatibiliteit met eerdere versies van ftnchek, een numerieke vorm van deze instelling
wordt eveneens aanvaard: de lijst wordt vervangen door een getal dat de som is van de getallen
tussen haakjes naast de trefwoorden in de volgende lijst. (De vast en gratis
opties hebben geen numerieke waarden.) De waarschuwingssleutelwoorden met hun betekenis zijn dat wel
als volgt:

vast:
Interpreteer de bron als een vaste vorm (met ondersteunde extensies zoals
uitroepteken voor commentaar). Verklaringen moeten in de kolommen 7 tot en met 72 staan
(Tenzij de -kolen instelling is gebruikt om dit te veranderen), en spaties niet
significante externe karaktercontext (maar waarvoor gewaarschuwd wordt onder de -mooi
keuze). Dit is de standaardmodus, tenzij de extensie van het bronbestand de extensie is .f90
or .F90. deze optie kan niet samen met worden gegeven -bron=gratis.

gratis: Interpreteer de bron als vrije vorm. Verklaringen kunnen overal in kolom 1 staan
tot 132 kunnen opmerkingen alleen beginnen met een uitroepteken, en spaties wel
op sommige plaatsen vereist, zoals tussen ID's en trefwoorden. Dit is
de standaardmodus als de extensie van het bronbestand .f90 or .F90. Deze optie
kan niet samen met gegeven worden -bron=vast or -source=dec-tabblad

dec-tabblad (1):
Accepteer een tab-geformatteerde bron in DEC-stijl. Een regel die begint met een eerste tab
wordt behandeld als een nieuwe instructieregel, tenzij het teken na de tab staat
een cijfer dat niet nul is, in welk geval het wordt behandeld als een vervolglijn. De
volgende kolom na de tab- of vervolgmarkering wordt beschouwd als kolom 7. A
Er wordt een waarschuwing gegeven in het geval dat de lijn een voortzetting is, als
-f77=dec-tabblad van kracht is.

vms-include (2):
Accepteer INCLUDE-instructies in VMS-stijl. Deze volgen de normale syntaxis, maar
met de volgende extra kenmerken: (1) de bestandsextensie, indien niet opgegeven,
is standaard hetzelfde als een normale bronbestandsextensie; en (2) de optie
/LIST of /NOLIST kunnen aan de include-bestandsnaam worden toegevoegd om de lijst te beheren
van zijn inhoud.

unix-backslash (4):
Verwerk backslash-escapes in UNIX-stijl in tekenreeksen. De ontsnapping
De volgorde na de backslash wordt geëvalueerd volgens de ANSI
standaard voor strings in C: maximaal drie cijfers duiden een octale waarde aan, een x
betekent het begin van een hexadecimale constante, een van de letters abfnrt
duiden speciale controlecodes aan, en elk ander teken (inclusief nieuwe regel)
duidt op het karakter zelf. Wanneer deze broncodeoptie van kracht is, a
Er wordt gewaarschuwd als de -f77=backslash instelling is opgegeven.

Het standaardgedrag is om de backslash te behandelen zoals elk ander normaal gedrag
karakter, maar er wordt een waarschuwing over draagbaarheid gegenereerd als het
-draagbaarheid vlag is gezet. Vanwege het feit dat sommige compilers de
backslash op een niet-standaard manier, het is mogelijk om aan de standaard te voldoen
programma's zijn niet-draagbaar als ze het backslash-teken in tekenreeksen gebruiken.

Sinds ftnchek doet niet veel met de geïnterpreteerde string, maar zelden
nodig om van deze optie gebruik te maken. Het is nodig om onecht te voorkomen
waarschuwingen alleen als (a) het programma dat wordt gecontroleerd een backslash gebruikt om een ​​bestand in te sluiten
apostrof of aanhalingsteken in een tekenreeks in plaats van het standaardmechanisme te gebruiken
van het verdubbelen van het scheidingsteken; (b) de backslash wordt gebruikt om te ontsnappen aan het einde van-
regel om een ​​string over meerdere bronregels voort te zetten; orka
De PARAMETER-definitie gebruikt een intrinsieke stringfunctie zoals LEN
een string als argument, en die waarde wordt later gebruikt om array te definiëren
afmetingen, enz.

param-impliciet-type (8):
Impliciet typen van een parameter op basis van het gegevenstype van de toegewezen waarde. Sommige
niet-standaard compilers kunnen toestaan ​​dat het gegevenstype van de waarde de
Fortran 77 standaardtype van een parameter die is gebaseerd op de eerste letter van
de parameternaam. Deze optie is alleen van toepassing op PARAMETER-instructies van de
standaardformulier met haakjes. Een parameter die expliciet is vermeld
gedeclareerd in een type-instructie voorafgaand aan de PARAMETER-instructie, wordt dit niet beïnvloed
door deze optie. Er wordt een waarschuwing gegeven onder de -f77=param-impliciet-type
or -portabiliteit=param-impliciet-type optie.

Merk op dat dit impliciete typen wordt behandeld als gelijkwaardig aan een expliciet type
declaratie voor de parameter. Daarom, als je gebruikt
-makedcls=alleen niet-aangegeven om alleen aangiften te genereren van niet-aangegeven
variabelen, deze parameters zullen dat wel doen niet worden opgenomen.

dec-param-standaard-type (16):
Volg de Fortran 77-regel voor het typen van gegevens van DEC Fortran-stijlparameters.
Deze worden gedeclareerd met behulp van een niet-standaardvorm van de PARAMETER-instructie
er ontbreken haakjes. Volgens DEC Fortran, parameters gedefinieerd door dit formulier
van de instructie wordt het gegevenstype gegeven door het gegevenstype van de waarde
toegewezen. Gebruik deze optie om het te vertellen ftnchek niet om deze regel te volgen, maar
in plaats daarvan dezelfde regel te gebruiken als voor standaard PARAMETER-instructies. Dit
optie is niet van toepassing op PARAMETER-instructies van het standaardformulier.

Standaard zijn al deze broncodeopties uitgeschakeld, behalve de
vms-include optie, die standaard is ingeschakeld in de VMS-versie.

Zie ook: -f77, omvatten, -draagbaarheid.

-stijl=lijst
Biedt extra kieskeurige waarschuwingen over verouderde of ouderwetse programmering
constructies. Deze optie is nuttig bij pogingen om een ​​moderne programmering te volgen
stijl. (De meeste dingen waarover onder deze optie wordt geklaagd, zijn verboden in de
F subgroep taal.) By standaard, allen waarschuwingen zijn gedraaid uit.

De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Er zijn er drie
speciale trefwoorden: allen om alle opties in te schakelen, geen om ze allemaal uit te schakelen, en
hulp om de lijst met alle trefwoorden af ​​te drukken, met een korte uitleg van elk trefwoord. Als
lijst wordt weggelaten, -Stijl is gelijk aan -stijl=alles en -geenstijl is gelijk aan
-stijl=geen. De waarschuwingswoorden met hun betekenis zijn als volgt:

blok-als:
Klagen over de rekenkundige IF-instructie. Accepteer blok IF of logische IF (welke
beheert één enkele verklaring).

constructienaam:
Klagen over naamloze blokconstructies: IF, DO en SELECT CASE. Let daar op
als er een constructnaam aanwezig is in de openingsinstructie van een construct, dan
het moet aanwezig zijn op alle andere componentinstructies (ELSE, END IF,
enz.) van de constructie. In dat geval ontbreekt een constructnaam daarop
instructies genereert ongeacht deze optie een syntaxisfout. De bedoeling
van deze optie is om te waarschuwen als het construct de optionele optie volledig mist
naam.

onderscheidend-doen:
Klagen als twee DO-lussen een gemeenschappelijke terminator-instructie delen.

doe-construeer:
Klagen als de terminator van een DO-lus iets anders is dan een END DO of
VERDER verklaring. Dit is de vereiste om de lus te laten voldoen
de Fortran 90-definitie van een doe-construct.

doe-enddo:
Klaag als de terminator van een DO-lus iets anders is dan een END DO
stelling. (Deze optie overschrijft de doe-construeer optie, gelijk zijn
strenger.)

eindnaam:
Klaag over de afwezigheid van de naam van het subprogramma op gestructureerde END
statements.

formaat-stmt:
Klagen over de aanwezigheid van FORMAT-instructies. Alleen de FORMAT-instructies
zelf worden gemarkeerd, niet de verwijzingen ernaar in I/O-lijsten.

goto: Klagen over de aanwezigheid van onvoorwaardelijke, berekende of toegewezen GOTO
verklaringen. Klaag ook over alternatieve retourzendingen (maar niet over labels als
subprogramma-argumenten).

gelabeld-stmt:
Klagen over de aanwezigheid van labels (nummers) op andere stellingen dan
FORMAT-verklaringen. (Aangezien FORMAT-instructies aantoonbaar handig zijn en niet
Omdat ze gemakkelijk worden misbruikt, worden klachten daarover gecontroleerd door de afzonderlijke partijen
formaat-stmt trefwoord.)

programma-stmt:
Klagen over het ontbreken van een PROGRAM-verklaring aan het hoofd van de leiding
programma.

gestructureerd einde:
Klaag liever over het gebruik van een gewone END-instructie om een ​​subprogramma te beëindigen
dan een gestructureerde END-instructie (END PROGRAM, END SUBROUTINE, END FUNCTION,
of EINDBLOKGEGEVENS).

Zie ook: -f77, -f90, -f95, -mooi, -draagbaarheid.

-symtab
Voor elke module wordt een symbooltabel afgedrukt met alle identificatiegegevens
vermeld in de module. Deze tabel geeft de naam van elke variabele, het datatype,
en het aantal dimensies voor arrays. Een asterisk (*) geeft aan dat de
variabele is impliciet getypt, in plaats van in een expliciet type te worden genoemd
verklaring verklaring. De tabel vermeldt ook alle subprogramma's die door de module worden aangeroepen,
alle COMMON-blokken gedeclareerd, etc. Standaard = nee.

Ook wordt voor elke module een etikettentabel afgedrukt. In de tabel wordt elk label vermeld
gedefinieerd in de module; de regel waarop het statement-label is gedefinieerd; en de
instructietype (uitvoerbaar, formaat of specificatie). De labels staan ​​vermeld in
opeenvolgende volgorde.

Er wordt ook een tabel afgedrukt die de I/O-eenheden beschrijft die door de module worden gebruikt, samen met
informatie over hoe ze worden gebruikt: welke bewerkingen worden uitgevoerd, of de
toegang sequentieel of direct is, en of de I/O geformatteerd of ongeformatteerd is.

Zie ook: -roepboom, -kruisref, -lijst, -referentie, -soort, -vcg.

-truncatie=lijst
Waarschuw voor mogelijke afkappings- (of afrondings)fouten. De meeste hiervan hebben betrekking op
rekenen met gehele getallen. Standaard zijn alle waarschuwingen ingeschakeld.

Deze instelling biedt gedetailleerde controle over de waarschuwingen over mogelijke afkapping
fouten. De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Aangezien alle
waarschuwingen zijn standaard ingeschakeld en bevatten een trefwoord voorafgegaan door Nee- om een ​​uit te schakelen
bijzondere waarschuwing. Er zijn drie speciale trefwoorden: allen om alles aan te zetten
waarschuwingen over afkapping, geen om ze allemaal uit te schakelen, en hulp om de lijst af te drukken
alle trefwoorden met een korte uitleg van elk. Als lijst wordt weggelaten, -afknotting
is gelijk aan -truncatie=alles en -notruncatie is gelijk aan
-truncatie=geen. De waarschuwingswoorden met hun betekenis zijn als volgt:

int-div-exponent:
gebruik van het resultaat van deling van gehele getallen als exponent. Dit suggereert dat een
het echte quotiënt is bedoeld. Een voorbeeld is het schrijven van X**(1/3) om te evalueren
de derdemachtswortel van X. De juiste uitdrukking is X**(1./3.).

int-div-reëel:
Conversie van een uitdrukking met een deling van gehele getallen naar reëel. Dit
suggereert dat er een reëel quotiënt wordt bedoeld.

int-div-nul:
deling in een constante uitdrukking met gehele getallen die het resultaat nul oplevert.

int-neg-macht:
machtsverheffen van een geheel getal met een negatief geheel getal (wat nul oplevert, tenzij
het basisgetal is 1 in grootte). Dit suggereert dat er een echte basis is
bedoeld.

promotie:
automatische conversie van een lagere nauwkeurigheidshoeveelheid naar een met een hogere nauwkeurigheid
precisie. Het verlies aan nauwkeurigheid voor echte variabelen in dit proces is
vergelijkbaar met de overeenkomstige degradatie. Er wordt geen waarschuwing gegeven voor promotie
van gehele getallen tot reëel, aangezien dit normaal gesproken exact is.

real-do-index:
gebruik van een niet-gehele DO-index in een lus met gehele grenzen. Een geheel getal DO
index met reële grenzen wordt altijd gewaarschuwd, ongeacht deze instelling.

echt-subscript:
gebruik van een niet-geheel array-subscript.

significante cijfers:
het overspecificeren van een enkele precisieconstante. Dit kan erop wijzen dat er sprake is van een dubbele
precisieconstante was bedoeld.

omvang-degradatie:
automatische conversie van een hoeveelheid met een hogere precisie naar een hoeveelheid met een lagere precisie
van hetzelfde type. Deze waarschuwing treedt alleen op als er een expliciete grootte wordt gebruikt
het declareren van het type van een of beide operanden in een toewijzing. Bijvoorbeeld, een
er wordt een waarschuwing gegeven wanneer een REAL*8-variabele wordt toegewezen aan een REAL-variabele,
als de standaardwoordgrootte van 4 van kracht is. Er wordt ook een waarschuwing gegeven als:
een lang geheel getal wordt toegewezen aan een korter geheel getal, bijvoorbeeld als een INTEGER
expressie is toegewezen aan een INTEGER*2 variabele. Er is één uitzondering hierop
dit laatste geval, namelijk als de rechterkant van de opdracht klein is
letterlijke constante (minder dan 128). type-degradatie: automatische conversie van a
hoeveelheid met hogere precisie naar een hoeveelheid met lagere precisie van een ander type. Dit
waarschuwing omvat de conversie van reële hoeveelheden naar gehele getallen, dubbele precisie
naar enkele precisie real, en toewijzing van een langere tekenreeks aan a
kortere.

De waarschuwingen over promotie en degradatie zijn ook van toepassing op complexe constanten,
waarbij de nauwkeurigheid wordt beschouwd als die van het reële of denkbeeldige deel. Waarschuwingen over
promoties en degradaties worden alleen gegeven als de conversie automatisch plaatsvindt,
bijvoorbeeld in uitdrukkingen van gemengde precisie of in een opdrachtverklaring. Indien intrinsiek
Er worden functies zoals INT gebruikt om de conversie uit te voeren, er wordt geen waarschuwing gegeven.

Zie ook: -draagbaarheid, -woordgrootte.

-gebruik=lijst
Waarschuw voor ongebruikte of mogelijk niet-geïnitialiseerde variabelen, ongebruikte gemeenschappelijke blokken,
ongedefinieerde of ongebruikte instructielabels en ongebruikte of ongedefinieerde subprogramma's. Door
standaard zijn alle waarschuwingen ingeschakeld.

Deze instelling biedt gedetailleerde controle over de waarschuwingen over mogelijk gebruik
fouten. De lijst bestaat uit trefwoorden gescheiden door komma's of dubbele punten. Aangezien alle
waarschuwingen zijn standaard ingeschakeld en bevatten een trefwoord voorafgegaan door Nee- om een ​​uit te schakelen
bijzondere waarschuwing. Er zijn drie speciale trefwoorden: allen om alles aan te zetten
waarschuwingen over gebruik, geen om ze allemaal uit te schakelen, en hulp om de lijst met allemaal af te drukken
de trefwoorden met een korte uitleg van elk. Als lijst wordt weggelaten, -gebruik is
gelijkwaardig -gebruik=alles en -geen gebruik is gelijk aan -gebruik=geen. Deze
waarschuwingen hebben betrekking op vier hoofdcategorieën objecten: dummy-argumenten van subprogramma's, algemeen
blokken en variabelen, subprogramma's en functies, en lokale variabelen. Waarschuwingen
omvatten ongedefinieerde items, vermenigvuldigen gedefinieerde items, ongebruikte items, enz. De waarschuwing
trefwoorden met hun betekenis zijn als volgt:

arg-alias:
een scalair dummy-argument is eigenlijk hetzelfde als een ander en is (of kan zijn)
gewijzigd. De Fortran 77-standaard (sectie 15.9.3.6) verbiedt het wijzigen van een
argument dat een alias is van een ander.

arg-array-alias:
een dummy-argument dat een array of array-element is, bevindt zich in dezelfde array als
een andere en wordt gewijzigd. Deze vlag is vergelijkbaar met arg-alias maar biedt
afzonderlijke controle over array-argumenten. Het is moeilijker om te bepalen of er sprake is van aliasing
gebeurt in het geval van arrays, dus als ftnchek geeft te veel valse waarschuwingen,
Met deze vlag kunnen de array-gerelateerde worden uitgeschakeld zonder te onderdrukken
de waarschuwingen voor scalairen.

arg-gemeenschappelijke-alias:
een scalair dummy-argument is hetzelfde als een gemeenschappelijke variabele in het subprogramma,
en beide zijn gewijzigd. Dit is ook verboden door de Fortran 77-standaard.
Als de algemene controle niet exact is (zie de -gewoon instelling), is het moeilijker om dat te doen
vertel of er aliasing optreedt, zodat de waarschuwing wordt gegeven als de variabele dat wel is
ergens in een gemeenschappelijk blok dat door het subprogramma wordt gedeclareerd.

arg-gemeenschappelijke-array-alias:
een dummy-argument dat een array of array-element is, bevindt zich in dezelfde array als a
gemeenschappelijke variabele, en beide zijn gewijzigd. Als de algemene controle niet exact is,
de variabele kan zich overal in een gemeenschappelijk blok bevinden dat wordt gedeclareerd door de
subprogramma.

arg-const-gemodificeerd:
een subprogramma wijzigt een argument dat een constante of een uitdrukking is. Zo een
een actie kan afwijkend gedrag van het programma veroorzaken.

arg-ongebruikt:
een dummy-argument wordt gedeclareerd maar nooit gebruikt. Dit is vergelijkbaar met de
var-ongebruikt trefwoord dat hieronder wordt beschreven, maar alleen van toepassing is op argumenten.

com-block-ongebruikt:
er wordt een gemeenschappelijk blok gedeclareerd, maar geen van de variabelen daarin wordt door iemand gebruikt
subprogramma. Deze waarschuwing wordt onderdrukt als de algemene striktheidsinstelling is
0.

com-block-vluchtig:
een gemeenschappelijk blok kan de definitie van zijn inhoud verliezen als er gemeenschappelijke blokken zijn
vluchtig. Deze optie heeft alleen effect als de -gemeenschappelijk=vluchtig vlag is binnen
effect. Zie de bespreking van de -gewoon instelling hierboven.

com-var-set-ongebruikt:
aan een gemeenschappelijke variabele wordt een waarde toegewezen, maar de waarde ervan wordt door niemand gebruikt
subprogramma. Deze waarschuwing wordt onderdrukt als de algemene striktheidsinstelling is
0.

com-var-niet-geïnitialiseerd:
de waarde van een gemeenschappelijke variabele wordt in een subprogramma gebruikt, maar is niet ingesteld
overal. Helaas, ftnchek doet er niet voldoende grondige analyse van
de aanroepreeks om te weten welke routines vóór andere worden aangeroepen. Dus
waarschuwingen over dit type fout worden alleen gegeven in gevallen waarin:
variabele wordt in een bepaalde routine gebruikt, maar in geen enkele andere routine ingesteld. Controleren
van individuele COMMON-variabelen wordt alleen gedaan als de -gewoon instelling is 3
(variabel door variabele overeenkomst). Deze waarschuwing wordt onderdrukt als de common
striktheidsinstelling is 0.

com-var-ongebruikt:
een gemeenschappelijke variabele wordt gedeclareerd, maar door geen enkel subprogramma gebruikt. Deze waarschuwing
wordt onderdrukt als de algemene strengheidsinstelling 0 is.

do-index-gewijzigd:
een variabele die de index is van een DO-lus, wordt door een of andere instructie gewijzigd
binnen het bereik van de lus. De standaard staat een actieve DO-variabele toe
kan alleen worden gewijzigd door het incrementatiemechanisme van de DO-instructie.

ext-vermenigvuldigd-gedefinieerd:
een externe (een subroutine of functie) wordt meer dan eens gedefinieerd. Definitie
van een extern middel dat de kern van de broncode levert.

ext-alleen gedeclareerd:
in een bepaalde module wordt een naam gedeclareerd in een EXTERNAL-instructie, maar dat is niet het geval
ergens gedefinieerd of gebruikt.

ext-ongedefinieerd:
een externe wordt gebruikt (aangeroepen) maar nergens gedefinieerd. Deze optie is
gelijk aan de -extern vlag. Als het subprogramma meer dan wordt aangeroepen
een keer worden die aanroepen nog steeds gecontroleerd op consistentie.

ext-ongebruikt:
er is een extern gedefinieerd (de hoofdtekst van het subprogramma is aanwezig), maar deze wordt niet gebruikt.
Een subprogramma wordt als ongebruikt beschouwd, zelfs als het door een ander wordt aangeroepen
subprogramma, als het niet kan worden aangeroepen vanuit een uitvoeringsthread die begint met
het hoofdprogramma. De overeenstemming van de argumenten van het subprogramma met zijn
aanroepen wordt nog steeds gecontroleerd, zelfs als deze waarschuwing is uitgeschakeld. Als dat zo is
geen hoofdprogramma, dan wordt deze waarschuwing alleen gegeven als het subprogramma dat niet is
waar dan ook aangeroepen. Deze waarschuwing wordt onderdrukt in de bibliotheekmodus, maar in bibliotheek
mode heeft het extra effect dat het controleren van argumenten op ongebruikte argumenten wordt onderdrukt
routines.

label-ongedefinieerd:
een statement verwijst naar een label dat niet is gedefinieerd.

label-ongebruikt:
er wordt een statementlabel gedefinieerd, maar er wordt nooit naar verwezen.

var-set-ongebruikt:
aan een lokale variabele wordt een waarde toegewezen, maar die waarde wordt niet gebruikt.

var-niet-geïnitialiseerd:
de waarde van een lokale variabele kan worden gebruikt voordat deze wordt toegewezen. Soms
ftnchek maakt een fout in de waarschuwingen over het gebruik van lokale variabelen. Gebruikelijk
het maakt de fout om een ​​waarschuwing te geven als er geen probleem is, maar dit komt zelden voor
In sommige gevallen kan het zijn dat er niet wordt gewaarschuwd waar het probleem zich voordoet. Zie het gedeelte over
Bugs voor voorbeelden. Als variabelen gelijkwaardig zijn, wordt de regel gebruikt door ftnchek
is dat een verwijzing naar een willekeurige variabele dezelfde verwijzing naar alle variabelen impliceert
variabelen waarmee het gelijkwaardig is. Voor arrays geldt de regel dat een verwijzing naar
elk array-element wordt behandeld als een verwijzing naar alle elementen van de array.

var-ongebruikt:
een lokale variabele wordt wel gedeclareerd (bijvoorbeeld in een typedeclaratie), maar niet
gebruikt in de module. Geldt niet voor dummy-argumenten: waarschuwingen daarvoor
worden bepaald door het trefwoord arg-ongebruikt hierboven omschreven.

Opmerking: in versies van ftnchek vóór 2.10, de -gebruik flag heeft een numeriek argument aangenomen
in plaats van een lijst met opties. In het belang van gebruikers die mogelijk scripts hebben geschreven
aanroepen ftnchek op deze manier wordt de numerieke vorm nog steeds geaccepteerd. Het numerieke
instelling bestaat uit drie cijfers. Het eerste cijfer (honderdtallen) bepaalt
waarschuwingen over subprogramma's (functies en subroutines), het tweede cijfer (tientallen
plaats) waarschuwingen over gemeenschappelijke blokken en gemeenschappelijke variabelen, en het derde cijfer
(ones place) waarschuwingen over lokale variabelen. Elk cijfer regelt waarschuwingen
volgens de conventie dat een 1 betekent: waarschuwen voor ongedefinieerde items en variabelen
die vóór de set worden gebruikt, een 2 betekent waarschuwen voor items die ongebruikt zijn, en een 3 betekent
waarschuwen voor beide soorten. Deze getallen worden nu omgezet naar de juiste waarden
voor de hierboven genoemde trefwoorden, behalve voor com-block-vluchtig, die niet wordt beïnvloed
door het numerieke argument.

Zie ook: -gewoon, -verklaren, -extern, -bibliotheek.

-vcg
Produceer de oproepgrafiek in de vorm van een VCG-grafiekbeschrijving. Deze beschrijving is
geschreven naar een apart bestand, met dezelfde stam als het bestand dat het hoofdbestand bevat
programma en achtervoegsel .vcg. Dit bestand kan rechtstreeks aan worden doorgegeven xvcg(1L) tot
visualiseer de oproepgrafiek. (Als de invoer afkomstig is van de standaardinvoer, dan wordt de grafiek
beschrijving wordt verzonden naar standaarduitgang.) Deze schakelaar is gelijk aan
-roepboom=vcg. Standaard = nee.

De VCG-beschrijving zoals deze is gemaakt, is complexer dan nodig is. VCG maakt grafieken mogelijk
en geneste subgrafieken: elke subroutine wordt gemaakt als een subgrafiek die in de subroutine is genest
belroutines. Hiermee kunt u subgrafieken interactief weergeven of samenvatten
Hen.

De -vcg optie voor ftnchek is geschreven door Dr. Philip Rubini uit Cranfield
Universiteit, VK.

xvcg is een hulpmiddel voor grafiekvisualisatie dat draait onder het X Windows-systeem. Het is
gratis verkrijgbaar via ftp.cs.uni-sb.de. Het is geschreven door G. Sander van de
Universiteit van Saarland, Duitsland.

Zie ook: -roepboom, -kruisref, -referentie, -soort.

-versie
Deze optie veroorzaakt ftnchek om een ​​regel af te drukken met het versienummer, de releasedatum,
en patchniveau van het programma. Als er geen bestanden worden opgegeven, wordt het afgesloten. Als bestanden
worden gegeven, is het effect van deze optie dat het patchniveau (normaal gesproken
weggelaten) in de versie-informatie die bij het begin van de verwerking wordt afgedrukt. Standaard =
Nr.

Zie ook: -Help.

-vluchtig
Neem aan dat COMMON-blokken vluchtig zijn. Standaard = nee.

Deze vlag wordt vervangen door -gemeenschappelijk=vluchtigen mag niet langer worden gebruikt. Het kan
worden geëlimineerd in een toekomstige release van ftnchek.

Zie ook: -gewoon, -gebruik.

-woordgrootte=num
Specificeert de standaard woordgrootte num bytes. Dit is de grootte van logische en
numerieke variabelen met enkele precisie waaraan geen expliciete precisie is gegeven.
(Expliciete precisies voor niet-karaktervariabelen zijn een uitbreiding op de Fortran 77
Standaard, en worden gegeven door typeverklaringen zoals REAL*8 X.) Dubbele precisie
en complexe variabelen zullen tweemaal deze waarde zijn, en dubbele complexe variabelen vier
keer. Quad-precisieconstanten en intrinsieke functieresultaten zullen vier keer zijn
deze waarde. Houd er rekening mee dat variabelen die als REAL*16 zijn gedeclareerd, als quad worden beschouwd
precisie alleen als de woordgrootte 4 bytes is. Standaard = inschakelen = 4 bytes.

Voor het controleren van standaardconforme programma's doet de waarde van de woordgrootte er niet toe
declareer geen expliciete precisies voor niet-tekenvariabelen en sla Hollerith niet op
gegevens in variabelen. Deze instelling heeft ook geen invloed op de standaardtekengrootte
variabelen, wat altijd 1 byte is. Er wordt aangenomen dat Hollerith-constanten ook in beslag nemen
1 byte per teken.

De woordgrootte wordt gebruikt om te bepalen of er sprake is van afkapping bij de toewijzing
instructies, en om precisie-mismatches op te sporen in subprogramma-argumentenlijsten en
gemeenschappelijke blokkeerlijsten. De exacte waarschuwingen die worden afgegeven, zijn afhankelijk van de status
van andere vlaggen. Onder zowel de -draagbaarheid=gemengd formaat en - geen woordgrootte vlag,
elke vermenging van expliciete met standaardprecisieobjecten (karakteruitdrukkingen niet
inbegrepen) waarvoor wordt gewaarschuwd. Dit geldt voor rekenkundige uitdrukkingen die beide bevatten
typen objecten, en om argumenten en COMMON-variabelen te subprogrammeren. Onder controle
van de -truncatie=degradatie en promotie opties waarvoor een waarschuwing wordt gegeven
toewijzing van een expressie aan een kortere variabele van hetzelfde type, of for
bevordering van een lagere precisiewaarde naar hogere precisie in een rekenkunde
expressie of een toewijzingsinstructie.

Geef een woordgrootte van 0, of gelijkwaardig, met behulp van - geen woordgrootte betekent dat er geen sprake is van wanbetaling
waarde zal worden aangenomen. Dit is hetzelfde als specificeren -draagbaarheid=gemengd formaat.
Gebruik het om gevallen te vinden waarin standaard en expliciete precisie worden gecombineerd, bijvoorbeeld om te markeren
plaatsen waar REAL*8 wordt behandeld als gelijkwaardig aan DUBBELE PRECISIE.

Zie ook: -aanwijzergrootte, -draagbaarheid, -afknotting.

-wikkel=col
Beheert de verpakking van foutmeldingen. Lange foutmeldingen die voorbij zouden komen
de opgegeven kolom wordt opgedeeld in afzonderlijke regels tussen de woorden van de
bericht voor een betere leesbaarheid. Indien uitgeschakeld met -nurap, elke afzonderlijke fout
bericht wordt op één regel afgedrukt en laat het aan het display over om het in te pakken
bericht of kap het af. Standaard = inschakelen = 79.

VERANDEREN HET STANDAARD


ftnchek bevat twee mechanismen voor het wijzigen van de standaardwaarden van alle opties: door
het definiëren van omgevingsvariabelen of door het maken van een voorkeurenbestand. Wanneer ftnchek start op,
het zoekt in zijn omgeving naar variabelen waarvan de namen zijn samengesteld door het voorvoegsel
string FTNCHEK_ naar de hoofdletterversie van de optienaam. Als zo'n variabele dat is
gevonden, wordt de waarde ervan gebruikt om de standaardwaarde voor de overeenkomstige schakelaar of instelling op te geven.
In het geval van instellingen (bijvoorbeeld de -gewoon striktheidsinstelling) de waarde van de
omgevingsvariabele wordt gelezen als de standaardinstellingswaarde. In het geval van schakelaars is de
de standaardschakelaar wordt als waar of ja beschouwd, tenzij de omgevingsvariabele de waarde heeft
0 of NEE.

Houd er rekening mee dat de naam van de omgevingsvariabele moet worden geconstrueerd met de optie van volledige lengte
naam, die in hoofdletters moet zijn. Om bijvoorbeeld te maken ftnchek druk een bronvermelding af via
Stel standaard de omgevingsvariabele FTNCHEK_LIST in op 1 of YES of iets anders dan 0 of
NEE. De namen FTNCHEK_LIS (niet de volledige optienaam) of ftnchek_list (kleine letters) zouden
niet worden herkend.

Hier volgen enkele voorbeelden van hoe u omgevingsvariabelen op verschillende systemen instelt. Voor
eenvoud: alle voorbeelden vormen de standaard -lijst schakel over naar JA.

1. UNIX, Bourne-shell: $ FTNCHEK_LIST=YES
$ export FTNCHEK_LIST

2. UNIX, C-shell: % setenv FTNCHEK_LIST JA

3. VAX/VMS: $ DEFINE FTNCHEK_LIST JA

4. MSDOS: $ SET FTNCHEK_LIST=JA

Na het verwerken van eventuele omgevingsvariabelen zoekt ftnchek naar een voorkeurenbestand
met opties en instellingen. Er wordt in de volgende volgorde gezocht, waarbij alleen de
eerste bestand gevonden: (1) .ftnchekrc in de huidige map, (2) ftnchek.ini in de huidige
map, (3) .ftnchekrc in de homedirectory van de gebruiker, (4) ftnchek.ini in het huis
map. Als een dergelijk bestand wordt gevonden, worden de daarin gedefinieerde opties als standaard gebruikt
plaats van de ingebouwde standaardinstellingen en overschrijft alle standaardinstellingen die in de omgeving zijn ingesteld.

Elke optie of instelling in het voorkeurenbestand moet op een aparte regel staan. Ze worden gegeven
in dezelfde vorm als op de opdrachtregel, behalve zonder het eerste streepje. De voorkeuren
bestand kan lege regels en opmerkingen bevatten. Opmerkingen worden op elk punt in een regel geïntroduceerd
door een spatie (spatie of tab) of het teken '#', en worden afgesloten aan het einde van
de lijn.

Opdrachtregelopties overschrijven de standaardinstellingen die zijn ingesteld in de omgeving of in de voorkeuren
bestand, op dezelfde manier waarop ze de ingebouwde standaardwaarden overschrijven.

GEBRUIK MAKEND VAN PROJECT FILES


Dit gedeelte bevat gedetailleerde informatie over hoe u projectbestanden het meest effectief kunt gebruiken.
en hoe u enkele valkuilen kunt vermijden.

Je kunt de cheques verdelen ftnchek doet in twee categorieën: lokaal en mondiaal. Lokaal
het controleren is beperkt tot binnen een enkele routine en vangt zaken op als niet-geïnitialiseerd
variabelen, onbedoeld verlies van precisie in rekenkundige uitdrukkingen, enz. Dit soort
controle kan op elk subprogramma afzonderlijk worden uitgevoerd. Verder is lokale controle van a
subprogramma hoeft niet te worden herhaald wanneer een ander subprogramma wordt gewijzigd. Globaal
controle vangt zaken op zoals het aanroepen van een subroutine met de verkeerde argumenttypen, of
het oneens zijn over gemeenschappelijke blokverklaringen. Het vereist dat je naar de hele set kijkt
subprogramma's die met elkaar communiceren.

Het doel van projectbestanden is om de lokale controle- en globale controlestappen mogelijk te maken
gescheiden zijn. Ervan uitgaande dat elk subprogramma zich in een eigen bronbestand bevindt, kunt u het uitvoeren
ftnchek één keer per keer om lokale controle uit te voeren terwijl de globale controle wordt onderdrukt. Dan
ftnchek kan één keer op alle projectbestanden samen worden uitgevoerd om de globale controle uit te voeren. De
Het onderstaande voorbeeld van een makefile laat zien hoe u deze taak kunt automatiseren. Het ``.f.prj'' doel werkt a bij
projectbestand voor een bepaald bestand telkens wanneer het bronbestand verandert. De informatie
die nodig zijn voor de globale controle wordt opgeslagen in het projectbestand. Het ``check'' doel doet het
gecombineerde globale controle. Typisch zou ``make check'' het ``ftnchek -project'' herhalen
stap alleen op gewijzigde bronbestanden en voer vervolgens de globale controle uit. Dit is duidelijk een grote
voordeel voor grote programma's, wanneer veel subprogramma's zelden of nooit veranderen.

Bij het gebruik van projectbestanden kunt u het beste elk subprogramma in een afzonderlijk bronbestand plaatsen.
Als elk bronbestand meer dan één subprogramma kan bevatten, wordt de definitie ingewikkelder
van ``lokale'' en ``globale'' controle, omdat er sprake is van enige inter-module controle
opgenomen in een bestand. ftnchek probeert in dit geval het goede te doen, maar die zijn er
enkele complicaties (hieronder beschreven) als gevolg van de wisselwerking tussen het vermijden van het opnieuw doen van cross-
controles en het bewaren van informatie over de structuur van het programma.

Normaal gesproken moeten er projectbestanden worden gemaakt om de minste hoeveelheid hercontrole uit te voeren
de -bibliotheek vlag van kracht en trimmen ingeschakeld. In deze modus wordt de informatie opgeslagen
in het projectbestand bestaat uit alle subprogramma-declaraties, alle subprogramma-aanroepen
niet opgelost door declaraties in hetzelfde bestand, en één exemplaar van elk COMMON-blok
verklaring. Dit is de minimale hoeveelheid informatie die nodig is om de overeenkomst tussen de twee te controleren
bestanden.

Als het bronbestand meer dan één routine bevat, zijn er enkele mogelijke problemen
kan voortkomen uit het maken van het projectbestand in bibliotheekmodus, omdat de aanroepende hiërarchie
tussen de routines die in het bestand zijn gedefinieerd, gaat verloren. Ook als de routines in het bestand make
gebruik van COMMON-blokken die worden gedeeld met routines in andere bestanden, zal er niet zijn
voldoende informatie opgeslagen voor de juiste controle van de ingestelde en gebruikte status van COMMON-blokken
en COMMON-variabelen volgens de -gebruik instelling. Daarom als u van plan bent om te gebruiken
projectbestanden wanneer -gebruik controle is ingeschakeld (wat de standaardsituatie is), en of
meerdere routines in één projectbestand delen GEMEENSCHAPPELIJKE blokken met routines in andere bestanden,
de projectbestanden moeten worden gemaakt met de -bibliotheek vlag uitgeschakeld. In deze modus
ftnchek bespaart, naast de hierboven genoemde informatie, één aanroep van elk subprogramma door
elk ander subprogramma in hetzelfde bestand en alle COMMON-blokdeclaraties. Dit betekent dat
het projectbestand groter zal zijn dan nodig, en dat wanneer het wordt ingelezen, ftnchek mogen
herhaal enkele inter-modulecontroles die het al deed toen het projectbestand werd gemaakt. Als
elk projectbestand bevat slechts één module, er gaat geen informatie verloren bij het maken ervan
de projectbestanden in bibliotheekmodus.

Vanwege het mogelijke verlies van informatie dat gepaard gaat met het aanmaken van een projectbestand met de
-bibliotheek vlag van kracht is, zal het projectbestand altijd worden behandeld als het later wordt ingelezen
als bibliotheekbestand, ongeacht de huidige instelling van het -bibliotheek vlag. Op de andere
Anderzijds kan een projectbestand dat is gemaakt terwijl de bibliotheekmodus is uitgeschakeld, later in beide worden ingelezen
modus.

In de voorgaande discussie wordt ervan uitgegaan dat de trimopties van de -project instelling zijn
ingeschakeld wanneer het projectbestand wordt gemaakt. Dit is de normale situatie. De geen trim
opties van de -project Er zijn instellingen beschikbaar voor het geval men de projectbestanden wil gebruiken
voor andere doeleinden dan het controleren van het programma ftnchek. Je zou bijvoorbeeld kunnen schrijven
een Perl-script om de projectbestanden te analyseren op informatie over hoe de verschillende
subprogramma's worden opgeroepen. U mag de geen trim mogelijkheden om de problemen aan te pakken
informatieverlies zoals hierboven besproken, omdat ze meer informatie veroorzaken dan nodig is
opgeslagen. Hierdoor worden de projectbestanden groter en ontstaan ​​er problemen ftnchek om later meer werk te doen
het leest ze om uw volledige programma te controleren. Normaal gesproken moet u de -bibliotheek
optie om te bepalen hoeveel informatie moet worden opgeslagen voor later gebruik ftnchek bij het controleren van uw
programma.

Hier is een voorbeeld van hoe u UNIX kunt gebruiken maken hulpprogramma om automatisch een nieuw bestand te maken
projectbestand elke keer dat het corresponderende bronbestand wordt gewijzigd, en om de set te controleren
bestanden voor consistentie. Voeg deze regels toe aan je makefile. In het voorbeeld wordt ervan uitgegaan dat a
Er is macro OBJS gedefinieerd waarin alle namen van objectbestanden worden vermeld die moeten worden gekoppeld
samen om het volledige uitvoerbare programma te vormen. (In dit makefile zijn de ingesprongen regels
moeten elk beginnen met een tab, geen spaties.) Als een bronbestand meerdere routines bevat
die gemeenschappelijke blokken met elkaar delen, moet de no-com-\* optie worden verwijderd
van NOGLOBAL, en/of laat de vlag -library vallen.
# tell make wat een projectbestandsachtervoegsel is
.ACHTERVOEGSELS: .prj

# deze opties onderdrukken globale controles.
NOGLOBAL=-usage=geen-ext-ongedefinieerd,geen-com-\*

# tell make hoe je een .prj-bestand kunt maken van een .f-bestand
.f.prj:
ftnchek -project $(NOGLOBAL) -bibliotheek $

# macro PRJS instellen met projectbestandsnamen
PRJS= $(OBJS:.o=.prj)

# "make check" controleert alles wat is gewijzigd.
controleren: $(PRJS)
ftnchek $(PRJS)

Wanneer een programma veel routines gebruikt die zijn gedefinieerd in een groot aantal verschillende bronbestanden in
verschillende mappen, kan het lastig zijn om alle verschillende projectbestanden op te geven
nodig om het programma goed te controleren. Om dergelijke gevallen aan te pakken, ftnchek staat projecten toe
bestanden worden samengevoegd tot één groot bestand. Dit enkele bestand kan vervolgens worden doorgegeven aan
ftnchek om de informatie te verstrekken voor het controleren van het gebruik van een of alle routines
gedefinieerd in de gecombineerde projectbestanden. Wanneer u zo'n ``bibliotheek''-projectbestand gebruikt, kunt u
misschien wilt ftnchek's foutrapporten om precies de naam te documenteren van het bestand waarin het
specifieke functie is gedefinieerd. Als de verschillende bronbestanden zich in verschillende mappen bevinden, kan een
Foutrapport dat alleen de bestandsnaam vermeldt, kan dubbelzinnig zijn en zou eerder de
pad naar het bestand. De oplossing is om elk van de individuele projectbestanden aan te maken door
het volledige pad naar het bronbestand geven. Vervolgens verschijnt dit volledige pad in het
foutmeldingen. Stel bijvoorbeeld dat alle bronbestanden van het subprogramma van de bibliotheek dat zijn
in submappen van een map met de naam /util/lib. Dan kunnen de individuele projectbestanden
eerst worden gemaakt door een commando zoals
find /util/lib -naam '*.f' -exec ftnchek -project '{}' ';'
(Mogelijk zijn er andere opties beschikbaar ftnchek zoals hierboven besproken. Ook deze stap
zou in plaats daarvan kunnen worden afgehandeld door een herziene makefile-regel die de volledige broncode zou verschaffen
bestandspad in plaats van alleen de lokale naam bij het aanroepen ftnchek.) Voeg vervolgens alles samen
deze projectbestanden handmatig.
find /util/lib -name '*.prj' -exec cat '{}' ';' > ourlib.prj
Vervolgens kan een programmabronbestand worden gecontroleerd met behulp van de opdracht
ftnchek prog.f ... -lib ourlib.prj
en een foutmelding gerelateerd aan een bibliotheekroutine zal het volledige pad naar de
het bronbestand van de routine.

Momenteel bestaat er geen archiefhulpprogramma zoals ar om de inhoud van een aaneengeschakeld bestand te beheren
projectbestand zoals dat in de bovenstaande afbeelding. Als er wijzigingen worden aangebracht in een van de
bibliotheekroutines is de enige manier om het gecombineerde projectbestand bij te werken, het samenvoegen van alle bestanden
de afzonderlijke projectbestanden opnieuw. Zo'n hulpprogramma zou vrij eenvoudig te schrijven zijn.
Iemand zou dat moeten doen en het moeten bijdragen aan de ftnchek inspanning.

AN VOORBEELD


Het volgende eenvoudige Fortran-programma illustreert de berichten van ftnchek. De
programma is bedoeld om een ​​reeks testscores te accepteren en vervolgens het gemiddelde voor de te berekenen
series.

C AUTEURS: MIKE MYERS EN LUCIA SPAGNUOLO
C DATUM: 8 MEI 1989

C-variabelen:
C SCORE -> een reeks testscores
C SUM -> som van de testscores
C COUNT -> teller van scores ingelezen
CI -> lusteller

ECHTE FUNCTIE COMPAV(SCORE,COUNT)
GEHEEL SOM, AANTAL, J,SCORE(5)

DOEN 30 I = 1,COUNT
SOM = SOM + SCORE(I)
30 DOORGAAN
COMPAV = SOM/COUNT
EINDE

PROGRAMMA AVENUM
C
C HOOFDPROGRAMMA
C
C AUTEUR: LOIS BIGBIE
C DATUM: 15 MEI 1990
C
C-variabelen:
C MAXNOS -> maximaal aantal invoerwaarden
C NUMS -> een reeks getallen
C COUNT -> exact aantal invoerwaarden
C AVG -> gemiddelde geretourneerd door COMPAV
CI -> lusteller
C

PARAMETER(MAXNOS=5)
INTEGER I, TEL
ECHTE NUMS(MAXNOS), AVG
AANTAL = 0
DOE 80 I = 1,MAXNOS
LEES (5,*,END=100) NUMS(I)
AANTAL = AANTAL + 1
80 DOORGAAN
100 AVG = COMPAV(NUMS; COUNT)
EINDE

De compiler geeft geen foutmeldingen wanneer dit programma wordt gecompileerd. Maar hier is wat
gebeurt wanneer het wordt uitgevoerd:

$ gemiddeld uitgevoerd
70
90
85

$

Wat is er gebeurd? Waarom deed het programma niets? Het volgende is de uitvoer van
ftnchek wanneer het wordt gebruikt om het bovenstaande programma te debuggen:

$ ftnchek -lijst -symtab gemiddelde

FTNCHEK versie 3.3 november 2004

Bestand gemiddelde.f:

1 C AUTEURS: MIKE MYERS EN LUCIA SPAGNUOLO
2 C DATUM: 8 MEI 1989
3
4 C-variabelen:
5 C SCORE -> een reeks testscores
6 C SUM -> som van de testscores
7 C COUNT -> teller van scores ingelezen
8 CI -> lusteller
9
10 ECHTE FUNCTIE COMPAV(SCORE,COUNT)
11 GEHEEL SOM, AANTAL, J,SCORE(5)
12
13 DOE 30 I = 1,TEL
14 SOM = SOM + SCORE(I)
15 30 DOORGAAN
16 COMPAV = SOM/COUNT
^
Waarschuwing nabij regel 16, kolom 20: geheel getal quotiënt expr SUM/COUNT omgezet naar
vast
17 EINDE

Module COMPAV: func: echt

variabelen:

Naam Type Dims Naam Type Dims Naam Type Dims Naam Type Dims
COMPAV reëel AANTAL intg I intg* J intg
SCORE intg 1 SOM intg

* Variabele niet gedeclareerd. Type is impliciet gedefinieerd.

Waarschuwing in module COMPAV: Variabelen gedeclareerd maar nooit verwezen:
J aangegeven op regel 11

Waarschuwing in module COMPAV: Variabelen mogen worden gebruikt voordat ze worden ingesteld:
SUM gebruikt op regel 14
SOM ingesteld op regel 14

Verklaringslabels gedefinieerd:

Labelregel StmtType
<30> 15 ex

18
19
20 PROGRAMMA AVENUM
21 C
22 C HOOFDPROGRAMMA
23 C
24 C AUTEUR: LOIS BIGBIE
25 C DATUM: 15 MEI 1990
26 C
27 C-variabelen:
28 C MAXNOS -> maximaal aantal invoerwaarden
29 C NUMS -> een reeks getallen
30 C COUNT -> exact aantal invoerwaarden
31 C AVG -> gemiddelde geretourneerd door COMPAV
32 CI -> lusteller
33 C
34
35 PARAMETER(MAXNOS=5)
36 INTEGER I, AANTAL
37 ECHTE NUMS(MAXNOS), AVG
38 AANTAL = 0
39 DOE 80 I = 1,MAXNOS
40 LEES (5,*,END=100) NUMS(I)
41 AANTAL = AANTAL + 1
42 80 DOORGAAN
43 100 AVG = COMPAV(NUMS; COUNT)
44 EINDE

Module AVENUM: prog

Externe subprogramma's waarnaar wordt verwezen:

COMPAV: echt*

variabelen:

Naam Type Dims Naam Type Dims Naam Type Dims Naam Type Dims
AVG echt COUNT intg I intg MAXNOS intg*
NUMS echt 1

* Variabele niet gedeclareerd. Type is impliciet gedefinieerd.

Waarschuwing in module AVENUM: Variabelen ingesteld maar nooit gebruikt:
AVG ingesteld op lijn 43

I/O-bewerkingen:

Eenheids-ID Eenheidsnr. Toegangsformulier Bedieningsregel
5 SEQ FMTD LEZEN 40

Verklaringslabels gedefinieerd:

Labelregel StmtType Labelregel StmtType
<80> 42 uitvoerend <100> 43 uitvoerend

0 syntaxisfouten gedetecteerd in bestand mean.f
6 waarschuwingen uitgegeven in bestand Average.f

Waarschuwing: het gegevenstype van het COMPAV-argument van het subprogramma komt niet overeen op positie 1:
Dummy arg SCORE in module COMPAV regel 10 bestand Average.f is van het type intg
Werkelijke arg NUMS in module AVENUM regel 43 bestand Average.f is van het type real

Think ftnchek, bevat het programma variabelen die eerder kunnen worden gebruikt
waaraan een initiële waarde is toegewezen, en variabelen die niet nodig zijn. ftnchek waarschuwt ook de
gebruiker dat een geheel getalquotiënt is omgezet in een reële waarde. Dit kan de gebruiker helpen
het opvangen van een onbedoelde afrondingsfout. Sinds de -symtab vlag werd gegeven, ftnchek prints
een tabel uit met identifiers van de lokale module en hun corresponderende datatype
en aantal afmetingen. Eindelijk, ftnchek waarschuwt dat de functie COMPAV niet wordt gebruikt
met het juiste type argumenten.

met ftnchek's hulp kunnen we het programma debuggen. We kunnen zien dat er het volgende was
fouten:

1. SUM en COUNT hadden moeten worden omgezet in reëel voordat de deling werd uitgevoerd.

2. SUM moet op 0 zijn geïnitialiseerd voordat de lus wordt ingevoerd.

3. AVG werd na berekening nooit afgedrukt.

4. NUMS had als INTEGER moeten worden gedeclareerd in plaats van REAL.

We zien ook dat I, en niet J, INTEGER had moeten worden verklaard in de functie COMPAV. Ook,
MAXNOS werd niet gedeclareerd als INTEGER, noch COMPAV als REAL, in het programma AVENUM. Deze zijn niet
fouten, maar deze kunnen duiden op onzorgvuldigheid. Toevallig was dit het standaardtype
variabelen vielen samen met het beoogde type.

Hier is het gecorrigeerde programma en de uitvoer ervan wanneer het wordt uitgevoerd:

C AUTEURS: MIKE MYERS EN LUCIA SPAGNUOLO
C DATUM: 8 MEI 1989
C
C-variabelen:
C SCORE -> een reeks testscores
C SUM -> som van de testscores
C COUNT -> teller van scores ingelezen
CI -> lusteller
C
ECHTE FUNCTIE COMPAV(SCORE,COUNT)
GEHEEL SOM, AANTAL, I,SCORE(5)
C
SOM = 0
DOEN 30 I = 1,COUNT
SOM = SOM + SCORE(I)
30 DOORGAAN
COMPAV = FLOAT(SOM)/FLOAT(COUNT)
EINDE
C
C
PROGRAMMA AVENUM
C
C HOOFDPROGRAMMA
C
C AUTEUR: LOIS BIGBIE
C DATUM: 15 MEI 1990
C
C-variabelen:
C MAXNOS -> maximaal aantal invoerwaarden
C NUMS -> een reeks getallen
C COUNT -> exact aantal invoerwaarden
C AVG -> gemiddelde geretourneerd door COMPAV
CI -> lusteller
C
C
GEHEEL MAXNOS
PARAMETER(MAXNOS=5)
GEHEEL GEHEEL I, NUMS(MAXNOS), COUNT
ECHTE AVG, COMPAV
AANTAL = 0
DOE 80 I = 1,MAXNOS
LEES (5,*,END=100) NUMS(I)
AANTAL = AANTAL + 1
80 DOORGAAN
100 AVG = COMPAV(NUMS; COUNT)
SCHRIJF(6,*) 'GEMIDDELD =',GEMIDDELD
EINDE
$ gemiddeld uitgevoerd
70
90
85

GEMIDDELDE = 81.66666
$

met ftnchekDankzij de hulp is ons programma een succes!

INTERPRETEREN HET OUTPUT


De berichten gegeven door ftnchek omvatten niet alleen syntaxisfouten, maar ook waarschuwingen en
informatieve berichten over dingen die legaal Fortran zijn, maar die op fouten kunnen duiden of
onzorgvuldigheid. De meeste van deze berichten kunnen worden uitgeschakeld via opdrachtregelopties. Welke
optie bepaalt elk bericht is afhankelijk van de aard van de aandoening waarvoor wordt gewaarschuwd.
Zie de beschrijvingen van de opdrachtregelvlaggen in de voorgaande secties, en van individuele
berichten hieronder. Elk bericht wordt voorafgegaan door een woord of zin die de aard ervan aangeeft
de aandoening en de ernst ervan.

``Fout'' betekent een syntaxisfout. De eenvoudigste syntaxisfouten zijn typografische fouten
fouten, bijvoorbeeld onevenwichtige haakjes of een spelfout in een trefwoord. Dit soort
fout wordt opgevangen door de parser en verschijnt met de beschrijving ``parse error'' of ``syntaxis
error'' (afhankelijk van de versie van de parsergenerator en of het GNU bizon or
UNIX jacc). Dit type foutmelding kan niet worden onderdrukt. Houd er rekening mee dat dit soort
een fout betekent vaak dat ftnchek heeft de verklaring waarin de fout zat niet goed geïnterpreteerd
plaatsvindt, zodat de daaropvolgende controlewerkzaamheden in gevaar komen. Je zou moeten
elimineer alle syntaxisfouten voordat u doorgaat met het interpreteren van de andere berichten ftnchek
geeft.

``Waarschuwing: niet-standaard syntaxis'' duidt op een uitbreiding van Fortran die ftnchek ondersteunt
maar dat is niet volgens de Fortran 77 Standaard. De extensies die ftnchek accepteert
worden beschreven in het gedeelte over Extensies hieronder. Een voorbeeld is de DO...ENDDO
bouw. Als een programma deze extensies gebruikt, worden er waarschuwingen gegeven
specificaties onder de -f77 instelling. Het standaardgedrag is om geen waarschuwingen te geven.

'Waarschuwing' betekent in andere gevallen een toestand die verdacht is, maar dat wel of niet kan zijn
een programmeerfout. Vaak zijn deze voorwaarden legaal volgens de norm. Sommige zijn
illegaal, maar vallen niet onder de noemer syntaxisfouten. Gebruiksfouten zijn daar een voorbeeld van.
Deze verwijzen naar de mogelijkheid dat een variabele kan worden gebruikt voordat er een a aan is toegewezen
waarde (doorgaans een fout), of dat een variabele wordt gedeclareerd maar nooit wordt gebruikt (onschadelijk maar
kan duiden op onzorgvuldigheid). De hoeveelheid controle op gebruiksfouten wordt bepaald door de
-gebruik flag, die standaard de maximale hoeveelheid controle specificeert.

Truncatiewaarschuwingen hebben betrekking op situaties waarin de nauwkeurigheid onbedoeld verloren kan gaan, bijvoorbeeld
bijvoorbeeld wanneer een waarde met dubbele precisie wordt toegewezen aan een reële variabele. Deze waarschuwingen zijn
gecontroleerd door de -afknotting instelling, die standaard is ingeschakeld.

``Niet-draagbaar gebruik'' waarschuwt voor een functie die mogelijk niet door sommige compilers wordt geaccepteerd
ook al is dit niet in strijd met de Fortran 77-standaard, of kan dit het programma veroorzaken
om anders te presteren op verschillende platforms. Bijvoorbeeld het gelijkwaardig maken van reële en
integer-variabelen is meestal een niet-draagbare praktijk. Het gebruik van extensies voor de
standaardtaal is natuurlijk een andere bron van niet-overdraagbaarheid, maar dit wordt behandeld als
een apart geval. Om een ​​programma te controleren op echte draagbaarheid, moeten zowel de -draagbaarheid en
-f77 vlaggen moeten worden gebruikt. Ze zijn beide standaard uitgeschakeld. De -woordgrootte instelling is
bedoeld om alleen die niet-draagbare toepassingen te controleren die afhankelijk zijn van een bepaalde machine
woordgrootte.

‘Mogelijk misleidende schijn’ wordt gebruikt voor juridische constructies die misschien niet wat betekenen
ze lijken op het eerste gezicht te betekenen. Fortran is bijvoorbeeld ongevoelig voor lege ruimte,
dus vreemde ruimte binnen namen van variabelen of het gebrek aan ruimte tussen een trefwoord en a
variabele kan de verkeerde indruk bij de lezer wekken. Deze berichten kunnen worden onderdrukt
door de uit te schakelen -mooi vlag, die standaard is ingeschakeld.

Andere berichten die worden gegeven nadat alle bestanden zijn verwerkt, hebben te maken met
overeenkomst tussen modules, gebruik niet het woord ``waarschuwing'', maar val daar doorgaans wel onder
categorie. Voorbeelden hiervan zijn type-mismatches tussen corresponderende variabelen in verschillende
COMMON-blokdeclaraties, of tussen dummy- en daadwerkelijke argumenten van een subprogramma. Deze
waarschuwingen worden beheerd door de -gewoon en -argumenten respectievelijk instellingen. Standaard
beide zijn ingesteld voor maximale strengheid van de controle.

Een andere groep waarschuwingen over aandoeningen die vaak onschadelijk zijn, hebben betrekking op gevallen waarin
de array-eigenschappen van een variabele die als subprogramma-argument wordt doorgegeven, verschillen tussen de twee
routines. Een array-element kan bijvoorbeeld worden doorgegeven aan een subroutine die a verwacht
hele reeks. Dit is een veelgebruikte techniek voor het verwerken van afzonderlijke rijen of kolommen
tweedimensionale arrays. Het kan echter ook op een programmeerfout duiden. De -matrix
Met deze instelling kan de gebruiker de mate van striktheid aanpassen die moet worden gebruikt bij het controleren hiervan
soort overeenkomst tussen werkelijke en dummy array-argumenten. Standaard is de striktheid
maximum.

``Oeps'' duidt op een technisch probleem, wat betekent dat er een bug in zit ftnchek of dat het
de middelen zijn overschreden.

De syntaxisfoutmeldingen en waarschuwingen bevatten de bestandsnaam samen met het regelnummer en
kolom nummer. ftnchek heeft twee verschillende opties voor het optreden van deze fout
berichten. Indien -gevorderde van kracht is, wat de standaard is, zijn de berichten in een stijl
benadert normaal Engels. (In de standaardstijl wordt de bestandsnaam niet afgedrukt in berichten
binnen de hoofdtekst van het programma if -lijst is van kracht.) De andere stijl van foutmeldingen
wordt geselecteerd door de -nonovice keuze. In deze stijl is het uiterlijk van de berichten hetzelfde
vergelijkbaar met die van UNIX pluis programma.

ftnchek is nog steeds blind voor sommige soorten syntaxisfouten. De twee belangrijkste zijn
gedetailleerde controle van FORMAT-instructies, en bijna alles wat te maken heeft met de controle ervan
uitvoeringsstroom door middel van IF-, DO- en GOTO-instructies: namelijk correcte nesting van controle
structuren, het matchen van openingsstatements zoals IF ... THEN met slotstatements
zoals ENDIF, en het juiste gebruik van statementlabels (nummers). De meeste compilers zullen dat wel doen
vang deze fouten. Zie het gedeelte over Beperkingen voor een meer gedetailleerde bespreking.

If ftnchek geeft u een syntaxisfoutmelding terwijl de compiler dat niet doet, dit kan zijn omdat
uw programma bevat een uitbreiding op standaard Fortran die door de compiler wordt geaccepteerd
maar niet door ftnchek. (Zie het gedeelte over Extensies.) Op een VAX/VMS-systeem kunt u gebruik maken van
de compileroptie /STANDARD om ervoor te zorgen dat de compiler alleen standaard Fortran accepteert. Op
Bij de meeste UNIX- of UNIX-achtige systemen kan dit worden bereikt door de vlag in te stellen -ansi.

Veel van de berichten van ftnchek spreken voor zich. Degenen die wat nodig hebben
aanvullende uitleg vindt u hieronder in alfabetische volgorde.

Gemeen blok NAAM: gegevens type dan: wanverhouding at positie n
De n-de variabele in het COMMON-blok verschilt qua gegevenstype op twee verschillende manieren
declaraties van het COMMON-blok. Standaard (-gewoon striktheidsniveau 3), ftnchek
is erg kieskeurig als het om COMMON-blokken gaat: de daarin vermelde variabelen moeten exact overeenkomen
op gegevenstype en arraydimensies. Dat wil zeggen, het juridische paar verklaringen in
verschillende modules:
GEMEENSCHAPPELIJK /COM1/ A,B
en
GEMEENSCHAPPELIJK /COM1/ A(2)
zal veroorzaken ftnchek om waarschuwingen te geven op striktheidsniveau 3. Deze twee verklaringen
zijn legaal in Fortran omdat ze allebei twee reële variabelen declareren. Bij striktheid
niveau 1 of 2, er zou in dit voorbeeld geen waarschuwing worden gegeven, maar de waarschuwing zou er wel zijn
gegeven als er een gegevenstype-mismatch was, bijvoorbeeld als B INTEGER werd verklaard.
Gecontrolleerd door -gewoon instellen.

Gemeen blok NAAM heeft lang gegevens type dan: volgend kort gegevens type dan:
Sommige compilers vereisen uitlijning van items van meerdere bytes, zodat elk item begint bij een
adres dat een veelvoud is van de artikelgrootte. Dus als er een korte (bijv.
precisie-reëel) item wordt gevolgd door een lang (bijvoorbeeld dubbele precisie-reëel) item, de
laatste is mogelijk niet correct uitgelijnd. Gecontrolleerd door -draagbaarheid=gemeenschappelijke uitlijning
optie.

Gemeen blok NAAM heeft gemengd karakter en niet-karakter variabelen
De ANSI-standaard vereist dat elke variabele in een COMMON-blok van het type is
CHARACTER, dan moeten alle andere variabelen in hetzelfde COMMON-blok ook van het type zijn
KARAKTER. Gecontrolleerd door -f77=gemengd-gemeenschappelijk optie.

Gemeen blok NAAM: wisselende lengte
Voor -gewoon Als u niveau 2 instelt, betekent dit bericht dat er een COMMON-blok is gedeclareerd
hebben verschillende aantallen woorden in twee verschillende subprogramma's. Een woord is het bedrag
opslagruimte bezet door één geheel getal of reële variabele. Voor -gewoon instelniveau 3,
het betekent dat de twee declaraties een verschillend aantal variabelen hebben, waarbij an
Een array van elke grootte wordt als één variabele beschouwd. Dit is niet noodzakelijkerwijs een fout,
maar het kan erop duiden dat een variabele ontbreekt in een van de lijsten. Let daar op
volgens de Fortran 77-standaard is het een fout voor benoemde COMMON-blokken (maar
niet blanco COMMON) om te verschillen in aantal woorden in declaraties in verschillende
modules. Gegeven voor -gewoon instelling 2 of 3.

fout: Slecht gevormd logisch/relationeel operator or constante

fout: Slecht gevormd vast constante
De syntaxisanalysator heeft het begin gevonden van een van de speciale woorden die met en beginnen
eindigen met een punt (bijv. .EQ.), of het begin van een numerieke constante, maar dat gebeurde niet
erin slagen een dergelijk compleet item te vinden.

fout: kan niet be verstelbaar grootte in module NAAM
Een tekenvariabele kan niet worden gedeclareerd met een grootte die een asterisk bevat
haakjes, tenzij het een dummy-argument, een parameter of de naam van de functie is
gedefinieerd in de module.

fout: kan niet be gedeclareerd in GELD BESPAREN verklaring in module NAAM
Alleen lokale variabelen en gemeenschappelijke blokken kunnen in een SAVE-instructie worden gedeclareerd.

fout: Nee pad naar dit verklaring
ftnchek zal uitspraken detecteren die worden genegeerd of omzeild omdat er geen is
voorzienbare route naar de verklaring. Een ongenummerde verklaring (a
verklaring zonder verklaringslabel), die onmiddellijk na een GOTO-verklaring plaatsvindt,
kan onmogelijk worden uitgevoerd.

fout: ontleden fout
Dit betekent dat de parser, die het Fortran-programma analyseert in expressies,
verklaringen, enz., is er voor een bepaald deel niet in geslaagd een geldige interpretatie te vinden
van een verklaring in het programma. Als uw compiler geen syntaxisfout rapporteert op
dezelfde plaats, de meest voorkomende verklaringen zijn: (1) gebruik van een uitbreiding op ANSI
standaard Fortran die niet wordt herkend door ftnchek, of (2) de verklaring vereist
meer vooruitzien dan ftnchek toepassingen (zie het gedeelte over Bugs).

OPMERKING: Dit bericht betekent dat de betreffende verklaring niet wordt geïnterpreteerd.
Daarom is het mogelijk dat ftnchek's daaropvolgende verwerking zal foutief zijn, als
het hangt af van eventuele zaken die door deze verklaring worden beïnvloed (typeverklaringen, enz.).

fout: Syntaxis fout
Dit is hetzelfde als ``Error: Parse error'' (zie hierboven). Het wordt gegenereerd als uw
versie ftnchek is gebouwd met behulp van UNIX jacc parsergenerator in plaats van GNU
bizon.

Identifiers welke zijn niet unieke in eerste zes chars
Waarschuwt dat twee ID's die langer zijn dan zes tekens niet verschillen in de
eerste 6 karakters. Dit is voor de draagbaarheid: ze mogen niet als afzonderlijk worden beschouwd
door sommige samenstellers. Gecontrolleerd door -zeschar optie.

Niet-draagbaar gebruik: argument nauwkeurigheid mogen niet be te corrigeren For intrinsiek functie
De precisie van een argument dat aan een intrinsieke functie wordt doorgegeven, kan onjuist zijn
sommige computers. Wordt uitgegeven wanneer een numerieke variabele met expliciete precisie wordt gedeclareerd
(bijv. REAL*8 X) wordt doorgegeven aan een specifieke intrinsieke functie (bijv. DSQRT(X)).
Gecontrolleerd door -draagbaarheid=gemengd formaat en -woordgrootte.

Niet-draagbaar gebruik: karakter constant/variabel lengte overschrijdt 255
Sommige compilers ondersteunen geen tekenreeksen die langer zijn dan 255 tekens.
Gecontrolleerd door -draagbaarheid=lange reeks.

Niet-draagbaar gebruik: Dien in bevat tabbladen
ftnchek breidt tabbladen uit zodat ze gelijkwaardig zijn aan spaties tot aan de volgende kolom, namelijk a
veelvoud van 8. Sommige compilers behandelen tabbladen anders, en het is ook mogelijk dat
Bij bestanden die per elektronische post worden verzonden, worden de tabbladen op de een of andere manier omgezet in blanco velden.
Daarom kunnen bestanden met tabbladen mogelijk niet correct worden gecompileerd nadat ze zijn opgeslagen
overgedragen. ftnchek geeft deze melding niet als tabbladen alleen binnen reacties voorkomen
of karakterconstanten. Gecontrolleerd door -draagbaarheid=tabblad.

Niet-draagbaar gebruik: niet integer DO lus bounds
Deze waarschuwing wordt alleen gegeven als de DO-index en -grenzen niet geheel getal zijn. Gebruik van
niet-gehele hoeveelheden in een DO-instructie kunnen onverwachte of andere fouten veroorzaken
resultaten op verschillende machines, als gevolg van afrondingseffecten. Gecontrolleerd door
-draagbaarheid = echt doen.

Mogelijk it is an reeks welke was niet gedeclareerd
Dit bericht wordt toegevoegd aan waarschuwingen met betrekking tot een functieaanroep of een
argumenttype komt niet overeen, waarvoor de mogelijkheid bestaat dat wat een
functie is eigenlijk bedoeld als een array. Als de programmeur vergat te dimensioneren
een array, verwijzingen naar de array worden geïnterpreteerd als functieaanroepen.
Deze melding wordt onderdrukt als de betreffende naam in een EXTERN of
INTRINSIEKE verklaring. Gecontroleerd door de -gevorderde optie.

Mogelijk misleidend verschijning: tekens verleden 72 kolommen
Het programma wordt verwerkt met de instructieveldbreedte op de standaardwaarde
van 72, en er zijn enkele niet-lege tekens gevonden voorbij kolom 72. In dit geval
ftnchek verwerkt de tekens voorbij kolom 72 niet en brengt de gebruiker hiervan op de hoogte
dat de verklaring mogelijk niet de betekenis heeft die zij lijkt te hebben. Deze
Het kan door de programmeur zijn bedoeld dat karakters significant zijn, maar dat zullen ze wel zijn
genegeerd door de compiler. Gecontrolleerd door -mooi=lange lijn.

Mogelijk misleidend verschijning: Gemeen blok gedeclareerd in meer neem contact een verklaring
Dergelijke meervoudige verklaringen zijn legaal en hebben hetzelfde effect als een voortzetting van
de originele declaratie van het blok. Deze waarschuwing wordt alleen gegeven als de twee
verklaringen worden gescheiden door een of meer tussenliggende verklaringen. Gecontrolleerd door
-pretty=meerdere algemene.

Mogelijk misleidend verschijning: Voortzetting volgt commentaar or blanco lijn
ftnchek geeft dit waarschuwingsbericht uit om de gebruiker te waarschuwen dat een voortzetting van een
De verklaring wordt afgewisseld met opmerkingen, waardoor deze gemakkelijk over het hoofd wordt gezien. Gecontrolleerd door
-mooi=vervolg.

Mogelijk misleidend verschijning: vreemd haakjes
Waarschuwt voor haakjes rond een variabele op zichzelf in een expressie. Wanneer een
Een variabele tussen haakjes wordt als argument aan een subprogramma doorgegeven en behandeld als
een expressie, niet als een variabele waarvan de waarde kan worden gewijzigd door de aangeroepen routine.
Gecontrolleerd door -mooi=haakjes.

subprogramma NAAM: argument gegevens type dan: wanverhouding at positie n
Het subprogramma n-de feitelijke argument (in de CALL of het gebruik van een functie)
verschilt qua datatype of precisie van de n-de dummy-argument (in de SUBROUTINE of
FUNCTIE-verklaring). Als de gebruiker bijvoorbeeld een subprogramma definieert met
SUBROUTINE SUBA(X)
ECHTE X
en elders beroept SUBA zich op
CALL ONDER(2)
ftnchek zal de fout detecteren. De reden hier is dat het getal 2 een geheel getal is,
niet echt. De gebruiker had moeten schrijven
OPROEP SUBA(2.0)

Bij het controleren van een argument dat een subprogramma is, ftnchek moet kunnen bepalen
of het nu een functie of een subroutine is. De regels die worden gebruikt door ftnchek om dit te doen zijn
als volgt: Als het subprogramma niet alleen als feitelijk argument wordt doorgegeven, maar ook
direct elders in dezelfde module wordt aangeroepen, wordt het type daardoor bepaald
gebruik. Als dat niet het geval is, dan moet de naam van het subprogramma niet expliciet voorkomen
type-declaratie, er wordt aangenomen dat het een subroutine is; als het expliciet wordt getypt, is dat zo
als functie genomen. Daarom hoeven subroutines alleen als feitelijke argumenten te worden doorgegeven
worden gedeclareerd door een EXTERNAL-instructie in de aanroepende module, terwijl functies dat wel moeten doen
ook expliciet worden getypt om te voorkomen dat dit foutbericht wordt gegenereerd.
Gecontrolleerd door -argumenten instellen.

subprogramma NAAM: argument arrayness wanverhouding at positie n
Vergelijkbaar met de voorgaande situatie, maar het dummy-argument van het subprogramma verschilt van
het overeenkomstige feitelijke argument in zijn aantal dimensies of aantal
elementen. Gecontrolleerd door -matrix met -argumenten instellingen.

subprogramma NAAM: argument wanverhouding at positie n
Een karakter-dummy-argument is groter dan het overeenkomstige feitelijke argument, of a
Het dummy-argument van Hollerith is groter dan het overeenkomstige feitelijke argument.
Gecontrolleerd door -argumenten instellen.

subprogramma NAAM: argument gebruik wanverhouding
ftnchek detecteert een mogelijk conflict tussen de manier waarop een subprogramma een argument gebruikt
en de manier waarop het argument aan het subprogramma wordt geleverd. Het conflict kan
een van de twee typen zijn, zoals hieronder beschreven.

pop arg is gewijzigd, Daadwerkelijk arg is const or uitdrukken
Een dummy-argument is een argument zoals genoemd in een SUBROUTINE- of FUNCTION-instructie en
gebruikt binnen het subprogramma. Een feitelijk argument is een argument zoals doorgegeven aan a
subroutine of functie van de beller. ftnchek zegt dat het een dummy-argument is
gewijzigd door het subprogramma, wat impliceert dat de waarde ervan wordt gewijzigd tijdens de aanroep
module. Het overeenkomstige feitelijke argument mag geen constante of uitdrukking zijn,
maar eerder een variabele of array-element waaraan legitiem kan worden toegewezen.
Gecontroleerd door de -usage=arg-const-gemodificeerd optie.

pop arg gebruikt vaardigheden set, Daadwerkelijk arg niet reeks
Hier kan een dummy-argument in het subprogramma worden gebruikt voordat er een waarde aan wordt toegewezen
ernaar door het subprogramma. Het overeenkomstige feitelijke argument moet een waarde hebben
toegewezen door de beller voordat het subprogramma wordt opgeroepen. Gecontroleerd door de
-usage=var-niet-geïnitialiseerd optie.

Deze waarschuwing wordt niet beïnvloed door de -argumenten instellen.

subprogramma NAAM ingeroepen inconsistent
Hier is de discrepantie tussen het datatype van het subprogramma zelf zoals gebruikt en zoals
bepaald. Bijvoorbeeld als de gebruiker declareert
GEHEEL FUNCTIE AANTAL(A)
en roept COUNT aan in een andere module als
N = AANTAL(A)
zonder het datatype te declareren, zal het standaard het echte type gebruiken, gebaseerd op het eerste
letter van zijn naam. De oproepmodule had de aangifte moeten bevatten
GEHEEL AANTAL

gegeven voor -argumenten instelling 2 of 3.

subprogramma NAAM: wisselende lengte argument lijsten:
Er is een inconsistentie gevonden tussen het aantal dummy-argumenten (parameters)
een subprogramma heeft en het aantal daadwerkelijke argumenten dat eraan is gegeven bij een aanroep.
ftnchek houdt alle aanroepen van subprogramma's bij (CALL-instructies en
expressies die functies gebruiken) en vergelijkt deze met de definities van de
subprogramma's elders in de broncode. De Fortran-compiler doet dit normaal gesproken niet
dit soort fouten opvangen. Gegeven voor -argumenten instelling 1 of 3.

Veranderlijk niet verklaard. Type heeft geweest stilzwijgend gedefinieerd
Wanneer u de symbolentabel voor een module afdrukt, ftnchek markeert alles met een asterisk
ID's die niet expliciet zijn getypt en die het datatype tonen dat dat was
toegewezen via impliciet typen. Dit biedt ondersteuning voor gebruikers die dat willen
declareer alle variabelen zoals vereist in Pascal of andere talen. Dit
bericht verschijnt alleen als de -symtab optie is van kracht. Als alternatief kunt u de
-verklaren flag als u een lijst wilt krijgen van alle niet-gedeclareerde variabelen.

Variabelen gedeclareerd maar nooit waarnaar wordt verwezen
Detecteert alle ID's die in uw programma zijn gedeclareerd maar nooit zijn gebruikt,
ofwel om een ​​waarde toegewezen te krijgen, ofwel om toegang te krijgen tot hun waarde. Variabelen in COMMON
zijn uitgesloten. Gecontroleerd door de -usage=var-ongebruikt optie.

Variabelen reeks maar nooit gebruikt
ftnchek zal de gebruiker op de hoogte stellen wanneer aan een variabele een waarde is toegewezen, maar de
variabele wordt op geen enkele andere manier in het programma gebruikt. Meestal is dit het gevolg van een
toezicht. Gecontroleerd door de -usage=var-set-ongebruikt optie.

Variabelen gebruikt vaardigheden reeks
Dit bericht geeft aan dat een ID wordt gebruikt om een ​​waarde voorafgaand aan de waarde te berekenen
initialisatie. Dergelijk gebruik kan ertoe leiden dat er een onjuiste waarde wordt berekend
de initiële waarde ervan wordt niet gecontroleerd. Gecontroleerd door de -usage=var-niet-geïnitialiseerd
optie.

Variabelen mogen be gebruikt vaardigheden reeks
Vergelijkbaar met gebruikt vóór de set, behalve dat ftnchek kan de status ervan niet bepalen
met zekerheid. ftnchek gaat ervan uit dat een variabele kan worden gebruikt voordat deze wordt ingesteld als de eerste
het gebruik van de variabele vindt plaats voorafgaand aan de toewijzing ervan in de programmatekst.
Gecontroleerd door de -usage=var-niet-geïnitialiseerd optie.

Waarschuwing: DO index is niet geheel getal
Deze waarschuwing wordt alleen gegeven als de DO-grenzen geheel getal zijn, maar de DO-index niet.
Dit kan duiden op een fout bij het declareren van de index als geheel getal. Gecontrolleerd door
-truncation=echt-doen optie.

Waarschuwing: geheel getal quotiënt uitdrukken ... geconverteerd naar vast
Het quotiënt van twee gehele getallen resulteert in een resultaat van het type geheel getal, waarbij de
fractioneel deel valt weg. Als zo'n geheeltallige uitdrukking met deling is
later geconverteerd naar een echt datatype, kan het zijn dat er een echte typeverdeling was geweest
bedoeld. Gecontrolleerd door -truncatie=int-div-real optie.

Waarschuwing: Geheel getal quotiënt uitdrukken ... gebruikt in exponent
Het quotiënt van twee gehele getallen resulteert in een resultaat van het type geheel getal, waarbij de
fractioneel deel valt weg. Als een dergelijke geheeltallige uitdrukking als exponent wordt gebruikt,
het is zeer waarschijnlijk dat een echte typeverdeling bedoeld was. Gecontrolleerd door
-truncatie=int-div-exponent optie.

Waarschuwing: NAAM niet reeks wanneer RETURN ondervonden
De manier waarop functies in Fortran een waarde retourneren, is door de waarde toe te wijzen aan de
naam van de functie. Dit bericht geeft aan dat aan de functie geen a is toegewezen
waarde vóór het punt waarop een RETURN-instructie werd gevonden. Daarom is het
Het is mogelijk dat de functie een ongedefinieerde waarde retourneert.

Waarschuwing: Niet standaard syntaxis: verstelbaar grootte kan niet be aaneengeschakeld hier
De Fortran 77-standaard (paragraaf 6.2.2) verbiedt het aaneenschakelen van tekenvariabelen
waarvan de grootte een asterisk tussen haakjes is, behalve in een toewijzingsinstructie.
Gecontrolleerd door -f77=gemengde expr.

Waarschuwing: Niet standaard syntaxis : aanzienlijke tekens verleden 72 kolommen
Deze waarschuwing wordt gegeven onder de -f77=lange lijn instelling als de -kolommen instelling heeft
gebruikt om de veldbreedte van de instructie te vergroten, en een instructie heeft betekenis
programmatekst voorbij kolom 72. Standaard Fortran negeert alle tekst in die kolommen,
maar sommige compilers doen dat niet. Het programma kan dus anders worden behandeld
verschillende compilers.

Waarschuwing: Niet standaard syntaxis : Statement uit of order.
ftnchek detecteert instructies die buiten de voor ANSI gespecificeerde volgorde vallen
standaard Fortran 77. Tabel 1 illustreert de toegestane volgorde van uitspraken in de
Fortran-taal. Uitspraken die niet in de juiste volgorde staan, worden toch geïnterpreteerd door
ftnchek, om ``cascades'' van foutmeldingen te voorkomen. De reeksenteller is dat ook
teruggedraaid om herhaling van de foutmelding voor een gelijkaardig blok te voorkomen
verklaringen. Gecontroleerd door de -f77=opdrachtvolgorde optie.

-------------------------------------------------- ------
| | impliciet
| parameter |--------------------
| | andere specificatie
formaat |---------------|--------------------
en | | statement-functie
binnenkomst | gegevens |--------------------
| | uitvoerbaar
-------------------------------------------------- ------

Tabel 1

Waarschuwing: Mogelijk divisie by nul
Dit bericht wordt overal afgedrukt waar deling plaatsvindt (behalve deling door a
constante). Gebruik het om een ​​runtime-verdeling door nul-probleem te lokaliseren. Gecontroleerd
by -divisie optie.

Waarschuwing: vast afgekapt naar int
ftnchek heeft een toewijzingsinstructie gedetecteerd die een echte uitdrukking heeft op de
rechts, maar een geheel getalvariabele aan de linkerkant. Het fractionele deel van de reële waarde
zal verloren gaan. Als u de echte expressie expliciet converteert naar een geheel getal met behulp van de
INT of NINT intrinsieke functie, er wordt geen waarschuwing afgedrukt. Een soortgelijk bericht luidt
wordt afgedrukt als een uitdrukking met dubbele precisie is toegewezen aan een enkele precisie
variabele, enz. Gecontroleerd door -truncatie=degradatie optie.

Waarschuwing: subscript is niet geheel getal
Omdat array-subscripts normaal gesproken gehele getallen zijn, is het gebruik van een niet-geheel getal
expressie hier kan een fout aangeven. Gecontrolleerd door -truncatie=echt-subscript
optie.

Waarschuwing: Onbekend intrinsiek functie
Dit bericht waarschuwt de gebruiker dat een naam die in een INTRINSIC-instructie is gedeclareerd, is
onbekend voor ftnchek. Waarschijnlijk is het een niet-standaard intrinsieke functie, en dus de
programma zal niet draagbaar zijn. De functie wordt behandeld door ftnchek als gebruiker-
gedefinieerde functie. Deze waarschuwing wordt door geen enkele optie onderdrukt, omdat deze van invloed is
ftnchek's analyse van het programma. Als de intrinsieke functie zich echter in een van bevindt
de ondersteunde sets van niet-standaard intrinsieke waarden, kunt u de -intrinsiek instelling
oorzaak ftnchek om het te herkennen.

Beperkingen EN EXTENSIONS


ftnchek accepteert ANSI-standaard Fortran-77-programma's met enkele kleine en talrijke beperkingen
gemeenschappelijke extensies.

Beperkingen:
De dummy-argumenten in instructiefuncties worden behandeld als gewone variabelen van
het programma. Dat wil zeggen dat hun bereik het gehele subprogramma omvat, niet alleen de instructie
functie definitie.

De controle van FORMAT-instructies is laks en tolereert ontbrekende scheidingstekens (komma,
enz.) tussen formaatbeschrijvingen op plaatsen waar de standaard deze vereist, en
waardoor .d velden op descriptors die deze niet zouden moeten hebben. Er wordt gewaarschuwd onder
-f77=format-edit-descr over niet-standaard descriptortypen (zoals O), en ondersteund
extensies.

Er zijn enkele syntactische extensies en Fortran 90-elementen ftnchek accepteert
maar controleert heel weinig. Bijvoorbeeld het gebruik van aanwijzers (of de
niet-standaard Cray-syntaxis of de Fortran 90-syntaxis) is alleen voor set aangevinkt
en gebruikte status. Er wordt gehoopt dat er op een dag een grondiger controle zal plaatsvinden
geïmplementeerd, maar voorlopig moet de gebruiker rekening houden met de acceptatie van deze syntactische elementen
functies eenvoudigweg voor het gemak om het controleren van andere aspecten van de code mogelijk te maken
bevat ze. Zie de sectie Extensies voor meer informatie over wat functies zijn
geaccepteerd maar niet volledig gecontroleerd.

Als een door de gebruiker geleverd subprogramma dezelfde naam heeft als een van de niet-standaard intrinsieke
functies herkend door ftnchek, moet het worden gedeclareerd in een EXTERNAL-instructie in
elke routine die er een beroep op doet. Anders wordt het normaal aan de controle onderworpen
gegeven aan de intrinsieke functie. Omdat de niet-standaard intrinsieke eigenschappen dat niet zijn
standaard, is deze EXTERNE verklaring niet vereist door de Fortran 77-standaard.
De -intrinsiek=geen setting, herkenning van de meeste niet-standaard intrinsieke kenmerken
(behalve alleen die welke nodig zijn om het dubbele complexe datatype te ondersteunen) kunnen worden omgedraaid
uit. Zie de lijsten met ondersteunde niet-standaard intrinsieke functies onder de
bespreking van de -intrinsiek instelling hierboven.

uitbreidingen:
Al deze extensies (behalve kleine letters) genereren waarschuwingen als
de relevante -f77 optie is ingesteld. Sommige van de hieronder genoemde extensies maken deel uit van
de Fortran-90-standaard. Deze worden aangegeven met de notatie (F90).

Tabbladen zijn toegestaan ​​en vertaald naar gelijkwaardige spaties die overeenkomen met tab
stopt elke 8 kolommen. De standaard herkent geen tabbladen. Merk op dat sommige
compilers staan ​​tabbladen toe, maar behandelen ze anders. De behandeling gedefinieerd voor DEC
FORTRAN kan worden bereikt met behulp van de -source=dec-tabblad instellen.

Tekenreeksen kunnen worden gescheiden door aanhalingstekens of apostrofs. Een reeks van twee
scheidingstekens worden geïnterpreteerd als één enkel ingebed scheidingsteken.
(F90)

Tekenreeksen kunnen backslash-escape-reeksen in UNIX-stijl bevatten. Zij zullen zijn
als zodanig geïnterpreteerd als de -source=unix-backslash instelling wordt gegeven. Anders de
het backslash-teken wordt behandeld als een normaal afdrukteken.

De broncode kan het gratis Fortran 90-formaat of het traditionele vaste formaat hebben.
(F90)

Een puntkomma is toegestaan ​​als scheidingsteken voor verklaringen. (F90)

Kleine letters zijn toegestaan ​​en worden intern naar hoofdletters omgezet
behalve in tekenreeksen. De standaard specificeert alleen hoofdletters, behalve in
opmerkingen en tekenreeksen. (F90)

Hollerith-constanten zijn toegestaan, in overeenstemming met de Fortran 77-standaard,
bijlage C. Ze mogen niet worden gebruikt in expressies, of worden verward met datatype
KARAKTER.

De letter 'D' (hoofdletter of kleine letter) in kolom 1 wordt beschouwd als het begin van a
opmerking. Er is geen optie om dergelijke regels als verklaringen te behandelen in plaats van als commentaar.

Verklaringen mogen langer zijn dan 72 kolommen, op voorwaarde dat de instelling -kolommen was
gebruikt om de limiet te verhogen. Volgens de standaard komt alle tekst uit kolom 73
tot en met 80 wordt genegeerd en geen enkele regel mag langer zijn dan 80 kolommen.

Variabelenamen mogen langer zijn dan zes tekens. De standaard specificeert er zes
het maximum. ftnchek staat namen toe van maximaal 31 tekens lang (F90).

Namen van variabelen kunnen onderstrepingstekens en dollartekens bevatten (of andere niet-alfabetische tekens).
tekens zoals gespecificeerd door de -identificatie-tekens keuze). Deze karakters zijn zijn
hetzelfde behandeld als alfabetische letters. Het standaardtype voor variabelen die beginnen
met deze karakters is ECHT. In IMPLICIT-type instructies die een bereik specificeren van
tekens, volgt het dollarteken Z en wordt gevolgd door een onderstrepingsteken. (Elke andere
door de gebruiker gedefinieerde tekens worden op dezelfde manier behandeld als het dollarteken.) Fortran 90
staat onderstrepingstekens in variabelenamen toe.

De UNIX-versie tolereert de aanwezigheid van preprocessor-richtlijnen, namelijk regels
beginnend met het hekje (#). Deze worden behandeld als commentaar, behalve #line
richtlijnen, die worden geïnterpreteerd en worden gebruikt om het regelnummer en de bron in te stellen
bestandsnaam voor waarschuwingen en foutmeldingen. Merk op dat #include richtlijnen dat niet zijn
verwerkt door ftnchek. Programma's die ze gebruiken voor het opnemen van bronbestanden zouden dat moeten zijn
door de preprocessor gegaan voordat het wordt ingevoerd ftnchek. Zoals hieronder vermeld,
ftnchek verwerkt INCLUDE-instructies, die een andere syntaxis hebben. Een
optioneel programma, ftnpp(1L) (afzonderlijk verkrijgbaar) zorgt voor voorbewerking
verwerkt INCLUDE-bestanden correct.

De Fortran 90 DO ... ENDDO-besturingsstructuur is toegestaan. De CYCLUS en EXIT
verklaringen worden aanvaard. Deze kunnen allemaal een optionele do-construct-naam hebben, maar
constructnamen worden niet gecontroleerd op consistentie. (F90)

De Fortran 90 SELECT CASE-constructie wordt geaccepteerd. (F90)

Constructnamen worden ook geaccepteerd op IF, THEN, ELSE, ENDIF en SELECT CASE
verklaringen. (F90)

De ACCEPT- en TYPE-instructies (voor terminal-I/O) zijn hetzelfde toegestaan
syntaxis als PRINT.

De zogenaamde ``Cray pointer''-syntaxis wordt getolereerd. Het is niet hetzelfde als de
Fortran 90 POINTER-verklaring. Er is geen echte controle van de andere verklaring
dan de basissyntaxis. De vorm van deze verklaring is
AANWIJZER (wijzer, punt) [,(wijzer, punt)]
Aan de pointervariabelen wordt het gegevenstype INTEGER *4 toegewezen. Gebruikscontrole van
de pointee-variabelen worden onderdrukt, omdat ze in de praktijk indirect toegankelijk zijn
via de wijzers.

De volgende Fortran 90 pointer-gerelateerde syntaxis worden geaccepteerd: ALLOCATABLE,
POINTER- en TARGET-instructies en dezelfde attributen in typedeclaraties;
ALLOCATE, DEALLOCATE en NULLIFY uitvoerbare instructies; aanwijzertoewijzing met behulp van
=> exploitant; en de intrinsieke functies TOEGEWEZEN en GEASSOCIEERD. Weinig semantisch
het controleren van pointervariabelen en bewerkingen gebeurt buiten de basisset en wordt gebruikt
toestand. Er wordt bijvoorbeeld niet gecontroleerd op fouten als bungelende wijzers,
of gebruik van niet-toegewezen arrays.

Verklaringen kunnen een willekeurig aantal vervolgregels bevatten. De Fortran 77 en Fortran
90 standaarden staan ​​maximaal 19 standaarden in vaste bronvorm toe. De Fortran 90-standaard
staat een maximum van 39 toe in vrije bronvorm.

Relationele (vergelijkings)operatoren bestaande uit interpunctie, namelijk: < <= == /= > >=
zijn toegestaan. (F90)

Inline commentaar, beginnend met een uitroepteken, is toegestaan. (F90)

NAMENLIJST I/O wordt ondersteund. De syntaxis is hetzelfde als in Fortran 90.

FORMAT-instructies kunnen een dollarteken bevatten om aan te geven dat er geen
opbrengst. Een geheeltallige uitdrukking tussen punthaken kan overal in a worden gebruikt
FORMAT-instructie waarbij de Fortran 77-standaard een geheel getalconstante toestaat (behalve
voor de lengte van een Hollerith-constante), om een ​​looptijdwaarde voor een herhaling te geven
specificatie of veldbreedte.

Niet-standaard trefwoorden zijn toegestaan ​​in I/O-instructies, die overeenkomen met die in VMS
Fortran.

De IMPLICIT NONE-instructie wordt ondersteund. De betekenis van deze verklaring is dat
Bij alle variabelen moeten de gegevenstypen expliciet worden gedeclareerd. In plaats van de vlag te markeren
voorkomen van dergelijke variabelen met syntaxisfoutmeldingen, ftnchek wacht tot de
einde van de module en drukt vervolgens een lijst af met alle niet-gedeclareerde variabelen, zoals deze
doet voor de -verklaren keuze. (F90)

Gegevenstypen INTEGER, REAL, COMPLEX en LOGICAL mogen een optioneel hebben
precisiespecificatie in typeverklaringen. REAL*8 betekent bijvoorbeeld een 8-byte
gegevenstype met drijvende komma. Er wordt niet noodzakelijkerwijs rekening gehouden met het REAL*8-datatype
gelijk aan DUBBELE PRECISIE, afhankelijk van de -woordgrootte instelling. De Fortran 77
Standaard staat alleen een lengtespecificatie toe voor CHARACTER-gegevens.

ftnchek ondersteunt de DOUBLE COMPLEX-typespecificatie voor een complexe hoeveelheid waarvan
echte en denkbeeldige onderdelen zijn dubbele precisie. Gemengde rekenkunde waarbij betrokken is
complex met enkele precisie en echte gegevens met dubbele precisie, verboden onder de
Standaard levert een dubbelcomplex resultaat op.

Gecombineerde typedeclaraties en data-statement-achtige initializers worden geaccepteerd.
Deze hebben de vorm van een standaard Fortran 77-typeverklaring, gevolgd door een schuine streep
een gescheiden lijst met constanten zoals gebruikt in een DATA-instructie. Een voorbeeld van de
syntaxis is
GEHEEL N / 100 /
Deze bastaardvorm van initialisatieverklaring werd niet overgenomen in Fortran 90. Zo
verklaringen moeten worden geschreven met behulp van het hieronder beschreven standaardformulier
geaccepteerd door ftnchek.

Er is beperkte ondersteuning voor op Fortran 90-attributen gebaseerde typedeclaraties. Dit
De declaratiestijl onderscheidt zich door het gebruik van een dubbele dubbele punt (::) tussen de
lijst met attributen en de lijst met gedeclareerde variabelen. De ondersteunde functies kunnen
geschikt zijn voor beginnende programmeurs, maar nog niet voldoende voor professionele
kwaliteit Fortran 90-programma's. Ik hoop in de toekomst ondersteuning voor meer functies toe te voegen
releases. Ik nodig vrijwilligers uit om bij deze taak te helpen. Zie het ToDo-bestand in de
broncodedistributie voor meer informatie. De attributen die momenteel worden geaccepteerd, bovendien
alle gebruikelijke gegevenstypen zijn DIMENSION, EXTERNAL, INTRINSIC, PARAMETER en SAVE.
De nieuwe declaratievorm maakt het ook mogelijk waarden aan de variabelen toe te wijzen
verklaard. Momenteel is de (LEN=waarde) vorm van het specificeren van tekenlengtes is ook
geaccepteerd. Soortspecificaties, met behulp van (KIND=waarde) worden geparseerd, maar zijn dat niet
verwerkt: alle soorten worden als standaardsoort behandeld. Bovendien wordt er weinig gecontroleerd
van deze declaraties gaat verder dan de basissyntaxis.

Er zijn veel veel voorkomende niet-standaard intrinsieke functies beschikbaar. Zie de
bespreking van -intrinsiek voor een lijst met functies en hoe u kunt bepalen welke
erkend.

Argumentcontrole is niet strak voor die niet-standaard intrinsieke waarden waarvoor arrays of
gemengde argumenttypen.

ftnchek staat de INCLUDE-instructie toe, die ervoor zorgt dat de tekst van de
gegeven bestand. De syntaxis is
ERBIJ BETREKKEN 'bestandsnaam'
Dit is compatibel met Fortran 90. Als de -source=vms-include optie wordt gegeven,
ftnchek volgt de VMS-conventies met betrekking tot deze verklaring: er wordt uitgegaan van a
standaardextensie van .voor als er geen bestandsnaamextensie is opgegeven, en de
qualifier /[NO]LIST na de bestandsnaam, om de lijst van de opgenomen bestanden te beheren
bestand. Er is geen ondersteuning voor het opnemen van VMS-tekstmodules.

In diagnostische uitvoer met betrekking tot items in include-bestanden wordt de locatie van
de fout wordt gespecificeerd door zowel de locatie in het include-bestand als de locatie in
het bovenliggende bestand waarin het bestand is opgenomen.

ftnchek accepteert PARAMETER-instructies zonder haakjes. Deze zullen gewaarschuwd worden
over als de -f77=param-noparen vlag wordt gegeven.

ftnchek accepteert PARAMETER-definities die intrinsieke functies omvatten en
machtsverheffing door een niet-gehele exponent. Beide gevallen zijn verboden door
de Fortran 77-standaard, en zal worden gewaarschuwd als de -f77=param-intrinsiek vlag
is gegeven. Als een intrinsieke functiewaarde een geheel getalconstante tijdens het compileren is,
ftnchek zal het beoordelen. Hierdoor kunt u beter controleren of de parameter wordt gebruikt
arraygroottes declareren. Fortran 90 maakt intrinsieke functies in PARAMETER mogelijk
definities.

De intrinsieke functies die worden geëvalueerd zijn:

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

De functies van integer-argumenten worden alleen geëvalueerd als de argumenten geheeltallig zijn
constante uitdrukkingen. (Dit kunnen gehele constanten, parameters en
evalueert intrinsieke functies.) De functie LEN wordt geëvalueerd als het argument ervan is
een uitdrukking die alleen karakterconstanten en variabelen bevat waarvan de lengte niet gelijk is
verstelbaar. De functies ICHAR en INDEX worden alleen geëvalueerd als de argumenten dat zijn
karakter constanten. ftnchek geeft een waarschuwing als het de waarde van sommigen nodig heeft
intrinsieke functie die niet wordt geëvalueerd.

NIEUW KENMERKEN


Dit zijn de wijzigingen van versie 3.2 naar versie 3.3:

1. De front-end is herschreven voor onbeperkt vooruitkijken, waardoor de al lang bestaande bug is geëlimineerd
dat veroorzaakte een onjuiste interpretatie van uitspraken waarvan de dubbelzinnigheid niet werd opgelost
de eerste regel.

2. De -mkhtml optie is nu beschikbaar in de MS-DOS-versie.

3. Ondersteuning toegevoegd voor Fortran 90 pointer-gerelateerde syntaxis: ALLOCATE, DEALLOCATE en NULLIFY
verklaringen; de attributen ALLOCATABLE, POINTER en TARGET in typedeclaraties; de
pointer-toewijzingsoperator => en intrinsieke functies ALLOCATED en ASSOCIATE; En
array-declaraties met uitgestelde vorm. Momenteel worden deze nieuwe syntaxisfuncties geaccepteerd
maar niet goed gecontroleerd. Deze functie is toegevoegd door Robert Landrito.

4. De -f77 en -f90 wijzer optie voor het beheren van waarschuwingen over ``Cray pointers'' is geweest
hernoemd naar cray-aanwijzer. De -f77=wijzer optie regelt nu in plaats daarvan waarschuwingen voor
code met Fortran 90 pointer-gerelateerde syntaxis.

5. Opnieuw geïmplementeerd -mkhtml verwerking, dus het is nu veel sneller op bronbestanden die
veel routines.

6. De indeling van de testdirectory is gewijzigd, zodat deze niet langer hoeft te worden gewijzigd
de distributie om de testsuite uit te voeren (check.bat) onder MS-DOS.

7. Probleem opgelost bij het lezen van numerieke instellingen op de opdrachtregel bij het instellen van de naam afgekort tot
3-tekens.

8. Bug opgelost die een valse waarschuwing veroorzaakte voor een GOTO die verwijst naar een gelabelde END-instructie
wanneer de verklaring vóór END een FORMAT was.

9. Nieuwe vlag -f77=teken om waarschuwingen over uitbreidingen van de Fortran 77 te beheren
karakter gegevenstype. Bij deze nieuwe vlag hoort ondersteuning voor Fortran 90-regels
declaraties van tekenvariabelen die resulteren in nul of een negatieve lengte, waardoor
en behandel negatieve lengtewaarden als nul.

10. Kleine bug opgelost bij het afdrukken van opmerkingen en lege regels na de laatste END-instructie
in -lijst modus.

Gebruik ftnchek online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    Beugels
    Beugels
    Brackets is een gratis, moderne open-source
    teksteditor speciaal gemaakt voor het web
    Ontwikkeling. Geschreven in HTML, CSS en
    JavaScript met gerichte visuele hulpmiddelen en
    voorbereiding...
    Download haakjes
  • 2
    Gratis Pascal-compiler
    Gratis Pascal-compiler
    Een 32/64/16-bit Pascal-compiler voor
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, Gameboy
    Advance, Nintendo NDS en DOS;
    semantisch compatibel met...
    Download de gratis Pascal-compiler
  • 3
    Canon EOS DIGITAL-info
    Canon EOS DIGITAL-info
    Canon heeft geen sluitertijd
    opgenomen in de EXIF-informatie van een
    afbeeldingsbestand, in tegenstelling tot Nikon en
    Pentax. Er is geen officiële Canon-basis
    sollicitatie ...
    Canon EOS DIGITAL-info downloaden
  • 4
    REFInd
    REFInd
    rEFInd is een vork van de rEFIt-laars
    manager. Net als rEFIt kan rEFInd dat ook
    detecteert automatisch uw geïnstalleerde EFI-opstart
    laders en het presenteert een mooie GUI
    menu van opstartoptie...
    rEFInd downloaden
  • 5
    ExpressLuke GSI
    ExpressLuke GSI
    Deze SourceForge-downloadpagina was om
    sta gebruikers toe om mijn gebouwde bron te downloaden
    GSI's, gebaseerd op Phhusson's Great
    werk. Ik bouw zowel Android Pie als
    Androïde 1...
    ExpressLuke GSI downloaden
  • 6
    Muziek Caster
    Muziek Caster
    Music Caster is een dienbladmuziekspeler
    waarmee je je lokale muziek kunt casten naar een
    Google Cast-apparaat. Op de eerste vlucht,
    u moet op de pijl in uw klikken
    tas...
    Musiccaster downloaden
  • Meer "

Linux-commando's

Ad