EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

ftnchek - Online în cloud

Rulați ftnchek în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda ftnchek care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


ftnchek - Verificator de programe Fortran 77

REZUMAT


ftnchek [ -argumente[=listă] ] [ -matrice[=listă] ]
[ -[Nu.]scurt ] [ -calltree[=listă] ] [ -[Nu.]verifica ]
[ -coloane[=o] ] [ -uzual[=listă] ]
[ -[Nu.]crossref[=listă] ] [ -[Nu.]declara ]
[ -[Nu.]divizare ] [ - erori[=o] ] [ -[Nu.]extern ]
[ -[Nu.]f77[=listă] ] [ -[Nu.]f90[=listă] ]
[ -[Nu.]f95[=listă] ] [ -[Nu.]ajutor ]
[ -[Nu.]caractere-identificator[=listă] ] [ -include=str ]
[ -intrinsec[=listă] ] [ -[Nu.]bibliotecă ] [ -[Nu.]listă ]
[ -madecls[=listă] ] [ -mkhtml[=listă] ]
[ -[Nu.]novice ] [ -ieșire=str ]
[ -dimensiunea pointerelor[=o] ] [ -[Nu.]portabilitate[=listă] ]
[ -[Nu.]destul de[=listă] ] [ proiect[=listă] ]
[ -[Nu.]pur ] [ -[Nu.]liniştit ] [ -[Nu.]referință ]
[ -[Nu.]resurse ] [ -[Nu.]sixchar ] [ -[Nu.]fel ]
[ -sursă[=listă] ] [ -Stil[=listă] ] [ -[Nu.]symtab ]
[ -[Nu.]trunchiere[=listă] ] [ -utilizare[=listă] ]
[ -[Nu.]vcg ] [ -[Nu.]versiune ] [ -[Nu.]volatil ]
[ -dimensiunea cuvintelor[=o] ] [ -înfășurați[=o] ] [ fișiere ... ]

DESCRIERE


ftnchek (Prescurtare pentru Fortran Checker) este conceput pentru a detecta anumite erori într-un Fortran
program pe care un compilator de obicei nu îl face. ftnchek nu este destinat în primul rând să detecteze
erori de sintaxă. Scopul său este de a ajuta utilizatorul în găsirea erorilor semantice. Semantic
erorile sunt legale în limba Fortran, dar sunt risipitoare sau pot cauza incorecte
Operațiune. De exemplu, variabilele care nu sunt niciodată utilizate pot indica o anumită omisiune în
program; variabilele neinițializate conțin gunoaie care pot cauza rezultate incorecte
calculat; iar variabilele care nu sunt declarate pot să nu aibă tipul dorit. ftnchek
este destinat să asiste utilizatorii în depanarea programului lor Fortran. Nu este destinat
pentru a detecta toate erorile de sintaxă. Aceasta este funcția compilatorului. Înainte de utilizare
ftnchek, utilizatorul trebuie să verifice dacă programul se compilează corect.

Acest document rezumă mai întâi modul de invocare ftnchek. Acea secțiune ar trebui citită înainte
incepand sa se foloseasca ftnchek. Secțiunile ulterioare descriu ftnchekOpțiunile lui mai detaliat, dați
un exemplu de utilizare a acestuia și explicați cum să interpretați rezultatul. Secțiunile finale
menționați limitările și erorile cunoscute în ftnchek.

INVOCAT FTNCHEK


ftnchek este invocat printr-o comandă de forma:

$ ftnchek [-opțiune -opțiune ...] nume fișier [nume fișier ...]

Parantezele indică ceva care este opțional. Parantezele în sine nu sunt
de fapt tastat. Aici opțiunile sunt comutatoare sau setări din linia de comandă, care controlează
funcționarea programului și cantitatea de informații care vor fi tipărite. Daca nu
este specificată opțiunea, acțiunea implicită este imprimarea mesajelor de eroare, avertismentelor și
mesaje informative, dar nu lista de programe sau tabelele cu simboluri.

Fiecare opțiune începe cu caracterul „-”. (Pe sistemele VAX/VMS sau MS-DOS puteți utiliza
fie „/” fie „-”.) De dragul conformității cu o convenție din ce în ce mai comună,
opțiunile pot începe și cu „--”. Opțiunile sunt descrise mai detaliat în cele ce urmează
secţiune.

ftnchek opțiunile se împart în două categorii: comutatoare, care sunt fie adevărate, fie false și
setări, care au o valoare numerică sau șir. Numele unui comutator este prefixat de „nu”
sau „nu-” pentru a o dezactiva: de ex -nepură ar dezactiva avertismentele despre funcțiile impure.
Prefixul „nu” poate fi folosit și cu setări numerice, având ca efect dezactivarea
avertismentele corespunzătoare. Setările care controlează listele de avertismente au o sintaxă specială
discutat mai jos. Doar primele 3 caractere ale unui nume de opțiune (fără numărarea „-”)
trebuie furnizate. Se pot folosi două puncte în locul unui semn egal pentru numere sau șir
stabilirea sarcinilor; cu toate acestea, arătăm mai jos doar forma semnului egal.

Comutatoarele și setările care ftnchek recunoașterile în prezent sunt enumerate mai jos. Pentru fiecare
opțiunea, valoarea implicită este valoarea utilizată dacă opțiunea nu este specificată în mod explicit, în timp ce opțiunea
turn-on este valoarea utilizată dacă opțiunea este dată fără a-i atribui o valoare.

-argumente=listă
Controlați avertismentele despre tipul de subprogram și nepotrivirile argumentelor. Implicit = pornire
= toate.

-matrice=listă
Controlați avertismentele în verificarea argumentelor matricei ale subprogramelor. Implicit = pornire =
toate.

-scurt Utilizați un format mai scurt pentru unele mesaje de eroare. Implicit = nu.

-calltree=listă
Produceți ierarhie de apeluri de subprogram într-unul dintre cele 3 formate: arborele de apeluri text, cine-apelează-
cine și VCG. Implicit = niciunul, pornire = copac, prune, sortare.

În cazul în care -mkhtml este invocată opțiunea și arborele este opțiunea de arbore de apeluri aplicată, un fișier
numit CallTree.html, va fi produs ilustrând arborele în format HTML.

-Verifica Efectuați verificarea. Implicit = da.

-coloane=o
Setați lungimea maximă a liniei la o coloane. (Dincolo de aceasta este ignorată.) Pornire = max =
132. Implicit = 72.

-comun=listă
Setați gradul de strictețe în verificarea blocurilor COMUNE. Implicit = pornire = toate.

-crossref=listă
Tipăriți lista de referințe încrucișate a apelurilor de subprogram, utilizarea etichetelor și/sau blocul COMUN
utilizare. Implicit = niciunul.

-declara
Tipăriți o listă cu toți identificatorii al căror tip de date nu este declarat în mod explicit. Mod implicit
= nu.

-Divizia
Avertizați oriunde se face împărțirea (cu excepția împărțirii printr-o constantă). Implicit = nu.

-erori=o
Setați numărul maxim de mesaje de eroare per cascadă. Implicit = pornire = 3.

-extern
Avertizați dacă subprogramele externe care sunt invocate nu sunt niciodată definite. Implicit = da.

-f77=listă
Controlați avertismentele specifice despre extensiile acceptate pentru Fortran 77 Standard.
Implicit = niciunul, pornire = toate.

-f90=listă
Controlați avertismentele specifice despre extensiile acceptate pentru Fortran 77 Standard
care nu au fost adoptate ca parte a standardului Fortran 90. Implicit = niciunul, pornire
= toate.

-f95=listă
Controlați avertismentele specifice despre caracteristicile standard Fortran 77 din care au fost șterse
standardul Fortran 95. Implicit = niciunul, pornire = toate.

-Ajutor Imprimați rezumatul comenzii. Implicit = nu.

-identifier-chars=listă
Definiți caractere non-alfanumerice care pot fi utilizate în identificatori. Implicit =
pornire = semn dolar și liniuță.

-include=cale
Definiți un director pentru a căuta fișiere INCLUDE înainte de a căuta în întregul sistem
director. Cumulativ. Implicit = pornire = niciunul.

-intrinsec=listă
Tratamentul de control al funcțiilor intrinseci nestandard. Implicit = toate cu excepția vms pentru
Versiunea Unix, toate cu excepția unix pentru versiunea VMS, toate cu excepția unix și vms pentru alții
versiuni. Pornire = toate.

-bibliotecă
Începeți modul bibliotecă: nu avertizați despre subprogramele din fișier care sunt definite dar
niciodata folosit. Implicit = nu.

-listă Imprimați lista surselor de program. Implicit = nu.

-madecls=listă
Întocmește un dosar de declarații. The listă specifică opțiunile pentru formatul acestuia
fişier. Implicit = niciunul, pornire = declarații.

-mkhtml=listă
Creați fișiere de document HTML individuale din analiza ftnchek și comentariile de cod.
De obicei, veți dori și să specificați -call=tree pentru a crea fișierul HTML rădăcină
CallTree.html. Implicit = niciunul, pornire = documente.

-novice
Oferiți rezultate potrivite pentru utilizatorii începători. Implicit = da.

-ieșire=nume de fișier
Trimiteți rezultatul către fișierul dat. Implicit și pornit trimite ieșire pe ecran.
(Extensia implicită a numelui de fișier este .lis).

-pointers size=o
Setați dimensiunea variabilelor ``Cray pointer'' la o octeți. Min = 1, max = 16.
Implicit = pornire = 4

-portabilitate=listă
Avertizați despre utilizări non-portabile. Implicit = niciunul, pornire = toate.

-frumos=listă
Dați avertismente pentru apariția posibilă înșelătoare a codului sursă. Implicit = turn-
on = all.

-proiect=listă
Creați fișierul de proiect (vezi explicația de mai jos). Implicit = nu.

-pur Să presupunem că funcțiile sunt pure, adică nu au efecte secundare. Implicit = da.

-Liniște Produceți rezultate mai puțin detaliate. Implicit = nu.

-referinţă
Tipăriți tabelul subprogramelor la care face referire fiecare subprogram. Implicit = nu.

-resurse
Tipăriți cantitatea de resurse utilizate în analiza programului. Implicit = nu.

-sixchar
Listați orice nume de variabile care se ciocnesc la lungimea de 6 caractere. Implicit = nu.

-fel Tipăriți lista subprogramelor sortate în ordinea cerințelor preliminare. Implicit = nu.

-sursa=listă
Selectați opțiunile de formatare a sursei: formă fixă ​​sau liberă, format DEC Fortran
linii, instrucțiunea INCLUDE în stil VMS, secvențe de evadare backslash în stil UNIX și
tastarea implicită a parametrilor. Implicit = niciunul, pornire = toate.

-stil=listă
Produceți avertismente extrem de pretențioase despre programarea învechită sau de modă veche
constructii. Implicit = niciunul, pornire = toate.

-simtab
Tipăriți tabelul de simboluri și tabelul de etichete pentru fiecare subprogram. Implicit = nu.

-truncare=listă
Verificați eventuala pierdere a preciziei prin trunchiere. Implicit = pornire = toate.

-utilizare=listă
Avertismente de control despre variabile neutilizate sau neinițializate, blocuri comune etc.
Implicit = pornire = toate.

-vcg Produceți formatul VCG al graficului de apel.

-versiune
Numărul versiunii tipărite. Implicit = nu.

-volatil
Să presupunem că blocurile COMUNE își pierd definiția între activări. Implicit = nu. (Învechit.
Utilizare -comun=volatil in schimb.)

-dimensiunea cuvintelor=o
Setați dimensiunea implicită a cuvântului pentru cantitățile numerice la o octeți. Implicit = pornire =
4 octeți.

-wrap=o
Setați coloana de ieșire în care să includeți mesajele lungi de eroare și avertismentele la următoarea
linia. Dacă setați la 0, dezactivați ambalarea. Implicit = pornire = 79.

Când se utilizează mai multe opțiuni, acestea ar trebui separate printr-un spațiu liber, cu excepția pe
sisteme precum VMS unde opțiunile încep cu slash ( / ). Nu pot fi plasate spații goale
în jurul semnului egal ( = ) într-un cadru. ftnchek "?" va produce un rezumat al comenzii
listând toate opțiunile și setările.

Pentru setările care iau o listă de cuvinte cheie, și anume -argumente, -matrice, -calltree, -uzual,
-ref încrucișat, -f77, -f90, -f95, -intrinsec, -madecls, -mkhtml, -portabilitate, -frumos,
proiect, -sursă, -Stil, -trunchiere, și -utilizare, lista este formată din cuvinte cheie
separate prin virgule sau două puncte. Dacă lista de cuvinte cheie este omisă, efectul este setat
opțiunea pentru valoarea sa de pornire (la fel ca ``toate'' în majoritatea cazurilor). De asemenea, dacă lista este
omis, numele setarii poate fi prefixat cu Nu. or nO- pentru a dezactiva toate opțiunile
controale. De exemplu, -f77 activează toate avertismentele despre construcții nestandard, în timp ce
-nof77 le stinge pe toate. Trei cuvinte cheie speciale sunt:

ajutor Imprimați toate cuvintele cheie ale opțiunii controlate de setare, cu un scurt
explicarea semnificațiilor lor. Acest cuvânt cheie nu poate fi dat într-o listă cu altele
Cuvinte cheie.

toate Setați toate opțiunile. Aceasta pornește toate opțiunile controlate de setare.

nici unul Ștergeți toate opțiunile. Aceasta dezactivează toate opțiunile controlate de setare.

Aceste trei cuvinte cheie speciale trebuie să fie date în întregime. Pentru toate celelalte cuvinte cheie, doar la fel de multe
trebuie date literele cuvântului cheie necesare pentru a-l identifica fără ambiguitate sau a
Se poate folosi modelul wildcard. Includerea unui cuvânt cheie în listă transformă cel corespunzător
opțiunea activată. De exemplu, -f77=intrinsec ar activa doar avertismentele despre utilizarea
funcții intrinseci nestandard. Prefixarea unui cuvânt cheie cu nO- își dezactivează opțiunea. Pentru
exemplu, -pretty=fără-linie lungă dezactivează avertismentele despre liniile care depășesc 72 de coloane în
lungime lăsând în vigoare toate celelalte avertismente despre aspectul înșelător. În cazul în care un
setarea este implicită nici unul, puteți activa toate opțiunile, cu excepția uneia sau a două utilizând toate
primul. De exemplu, -f77=toate, fără includere activează avertismente despre toate extensiile nestandard
cu excepția declarațiilor INCLUDE. Dacă o setare este implicită toate, puteți dezactiva toate avertismentele
cu excepția unuia sau a două prin utilizarea nici unul primul. De exemplu, -truncare=niciuna, retrogradare s-ar întoarce
dezactivați toate avertismentele legate de precizie, cu excepția retrogradărilor. Modelele wildcard conțin un
asterisc pentru orice șir de caractere. Dacă se folosește un model de wildcard, toate
avertismentele care se potrivesc cu acesta sunt afectate. Dacă nO- este prefixat modelului, toate se potrivesc
avertismentele sunt dezactivate, altfel toate sunt activate. Lungimea minimă fără ambiguitate
regula nu se aplică potrivirii wildcard. De exemplu, folosiți -usage=nu-*var* a opri
toate avertismentele referitoare la utilizarea variabilelor (atât locale, cât și comune). (Utilizatorii Unix ar putea avea nevoie
citați orice opțiuni care conțin metacaractere pentru a preveni shell-ul să încerce
extindeți-le.) Caracterele metalice sunt recunoscute numai în listele de cuvinte cheie de avertizare, nu în
opțiunile de nivel în sine.

Cand ftnchek pornește, caută variabile de mediu și, de asemenea, preferințe
fişier. Orice opțiuni definite în mediu sau în fișierul de preferințe sunt folosite ca
implicite în locul setărilor implicite încorporate. Ele sunt suprasolicitate de orice linie de comandă
Opțiuni. Consultați secțiunea privind modificarea setărilor implicite pentru detalii despre mediu
opțiuni și fișierul de preferințe.

Când dați un nume unui fișier de intrare, extensia este opțională. Dacă nu se acordă prelungire,
ftnchek va căuta mai întâi un fișier proiect cu extensie .prj, și îl va folosi dacă
există. Dacă nu, atunci ftnchek va căuta un fișier sursă Fortran cu extensia .pentru
pentru sistemele VMS, .f pentru sisteme UNIX. Se poate da mai mult de un nume de fișier ftnchek,
și va procesa modulele în toate fișierele ca și cum ar fi într-un singur fișier.

Caracterele metalice sunt permise în specificarea numelor de fișiere pe linia de comandă pentru VMS
și versiunile MS-DOS, ca și, desigur, sub UNIX și orice alt sistem care funcționează
extinderea wildcard în procesorul de comenzi.

Dacă nu este dat niciun nume de fișier, ftnchek va citi intrarea de la intrarea standard.

OPŢIUNI


Această secțiune oferă o discuție mai detaliată despre ftnchek opțiunile din linia de comandă. Opțiuni
iar numele fișierelor pot fi intercalate pe o linie de comandă. Cele mai multe opțiuni sunt poziționale: fiecare
opțiunea rămâne în vigoare din punctul în care este întâlnită până când este înlocuită de a
schimbare ulterioară. Astfel, de exemplu, listarea poate fi suprimată pentru unele fișiere și nu pentru
alții. Excepții sunt: ​​the -intrinsec, -dimensiunea pointerelor, și -dimensiunea cuvintelor setări, care
nu poate fi modificat odată ce procesarea fișierelor de intrare a început; cel -argumente, -matrice,
-calltree, -uzual, -ref încrucișat, -extern, -referinţă, -resurse, -fel, -vcg, și -volatil
opțiuni, unde acțiunea depinde doar de valoarea opțiunii după procesarea
fișierele de intrare sunt terminate; si -include setare, care este cumulativă.

Numele opțiunilor din lista următoare sunt în ordine alfabetică.

-argumente=listă
Controlează avertismentele cu privire la nepotrivirile dintre argumentele subprogramelor reale și fictive,
și, de asemenea, despre nepotrivirile între tipul de subprogram așteptat și real. (Un real
argument este un argument transmis subprogramului de către apelant; un argument fals este
un argument primit de subprogram.) În mod implicit, toate avertismentele sunt activate.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Din moment ce toate acestea
avertismentele sunt activate în mod implicit, includ un cuvânt cheie prefixat de nO- a opri a
avertisment special. Există trei cuvinte cheie speciale: toate pentru a porni toate
avertismente despre argumente, nici unul pentru a le opri pe toate și ajutor pentru a tipări lista de
toate cuvintele cheie cu o scurtă explicație a fiecăruia. Dacă listă este omis, -argumente
este echivalent cu -argumente=toate, și -fara argumente este echivalent cu -argumente=niciuna.
Cuvintele cheie de avertizare cu semnificațiile lor sunt următoarele:

matricea:
avertizează despre utilizarea inconsecventă a argumentelor care sunt matrice. Aceste avertismente pot
fi controlat în continuare de către -matrice opțiune.

tip:
avertizează despre argumentele inactiv de un tip de date diferit de argumentele reale.

tip funcție:
avertizează dacă invocarea presupune că valoarea returnată a funcției este de alt tip
decât este de fapt. De asemenea, avertizează dacă o funcție este apelată ca subrutină sau
viceversa.

număr:
avertizează despre invocarea unui subprogram cu un număr diferit de argumente decât cel
se așteaptă subprogramul.

Pentru compatibilitate cu versiunile anterioare ale ftnchek, o formă numerică a acesteia
se acceptă şi setarea: the listă se înlocuiește cu un număr de la 0 la 3. O valoare de
0 dezactivează toate avertismentele, 1 pornește numai număr, 2 pornește toate, cu excepția număr,
iar 3 activează toate avertismentele.

Această setare nu se aplică verificării invocărilor funcțiilor intrinseci sau
funcții de instrucțiuni, care pot fi dezactivate numai de -nocheck opțiune.

Vezi de asemenea şi: -matrice, -bibliotecă, -utilizare.

-matrice=listă
Controlează gradul de strictețe în verificarea acordului dintre efectiv și inactiv
argumente de subprogram care sunt tablouri. Avertismentele controlate de această setare sunt
pentru construcții care ar putea fi utilizate în mod legitim de un programator experimentat,
dar care indică adesea erori de programare. În mod implicit, toate avertismentele sunt activate
pe.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Din moment ce toate acestea
avertismentele sunt activate în mod implicit, includ un cuvânt cheie prefixat de nO- a opri a
avertisment special. Există trei cuvinte cheie speciale: toate pentru a porni toate
avertismente despre argumentele matricei, nici unul pentru a le opri pe toate și ajutor pentru a imprima
lista tuturor cuvintelor cheie cu o scurtă explicație a fiecăruia. Dacă listă este omis,
-matrice este echivalent cu -array=toate, și -noarray este echivalent cu -array=niciunul.
cuvintele cheie de avertizare cu semnificațiile lor sunt următoarele:

Dimensiuni:
avertizează dacă argumentele diferă în ceea ce privește numărul lor de dimensiuni sau dacă cel real
argumentul este un element de matrice, în timp ce argumentul inactiv este un întreg tablou.

mărimea:
avertizează dacă ambele argumente sunt matrice, dar diferă ca număr de elemente.

Pentru compatibilitate cu versiunile anterioare ale ftnchek, o formă numerică a acesteia
se acceptă şi setarea: the listă se înlocuiește cu un număr de la 0 la 3. O valoare de
0 dezactivează toate avertismentele, 1 pornește numai Dimensiuni, doar 2 porniri mărimea, și
3 activează toate avertismentele.

Notă: Un avertisment este întotdeauna dat, indiferent de această setare, dacă argumentul real
este o matrice în timp ce argumentul inactiv este o variabilă scalară, sau dacă actualul
argumentul este o variabilă scalară sau o expresie, în timp ce argumentul inactiv este o matrice.
Aceste cazuri sunt rareori intenționate. (Pentru a dezactiva chiar și aceste avertismente, utilizați
-argumente=no-arrayness.) Nicio avertizare nu este dată niciodată dacă argumentul real este un
element matrice în timp ce argumentul dummy este o variabilă scalară. Dimensiuni variabile
matricele și matricele dimensionate cu 1 sau asterisc se potrivesc cu orice număr de matrice
elemente. Nu se verifică dacă matricele multidimensionale sunt de acord în ceea ce privește dimensiunea
a fiecărei dimensiuni separat.

Vezi de asemenea şi: -argumente, -bibliotecă, -utilizare.

-scurt
Selectează un format mai scurt pentru unele mesaje de avertizare. În prezent, singurele avertismente
controlate de acest steag sunt cele care sunt tipărite la sfârșitul procesării fiecăruia
subprogram. Acestea includ avertismente despre variabilele care sunt setate, dar nu sunt utilizate sau
utilizate înainte de setare, nume de variabile care nu sunt conforme cu standardul Fortran 77,
etc. (Aceste avertismente pot fi suprimate în întregime în funcție de alte semnale, cum ar fi
il -utilizare or -f77 steaguri.) În formatul implicit, fiecare variabilă este listată pe a
linie separată, împreună cu numărul liniei în care este declarată variabila, setată sau
utilizat, conform naturii avertismentului. Formatul mai scurt le enumeră pur și simplu pe toate
variabile cărora li se aplică avertismentul, cu până la 4 variabile pe linie.

Vezi de asemenea şi: -Liniște.

-calltree=listă
Cauze ftnchek pentru a tipări structura de apel a programului complet.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Sunt două speciale
Cuvinte cheie: nici unul pentru a dezactiva toate opțiunile și ajutor pentru a tipări lista tuturor
cuvinte cheie cu o scurtă explicație a fiecăruia. (Cuvântul cheie toate pornește toate
opțiuni, dar nu ar trebui să fie utilizate în mod normal, deoarece ar trebui să fie un singur format
specificat.) Dacă listă este omis, -calltree este echivalent cu -calltree=copac, și
-nocalltree este echivalent cu -calltree=niciunul. În mod implicit, nu este imprimat niciun grafic de apel.

Dacă este invocată opțiunea -mkhtml și arborele este opțiunea de arbore de apeluri aplicată, un fișier
numit CallTree.html, va fi, de asemenea, produs ilustrând arborele în format HTML. Acest
fișierul este util ca punct de plecare pentru răsfoirea fișierelor HTML care le descriu pe fiecare
componentă a programului.

Cuvintele cheie care controlează ce format este utilizat sunt următoarele:

copac:
produce graficul apelului în format arborescent.

referință:
produce graficul apelurilor în format who-calls-who (la fel ca -referinţă intrerupator).

vcg:
produce graficul apelului în format VCG (la fel ca -vcg intrerupator).

Doar unul dintre formate copac, referință, Sau vcg poate fi specificat.

Următoarele cuvinte cheie controlează opțiunile care afectează rezultatul:

prună uscată:
tăiați subarborele repetat (aplicabil numai cu copac). Acesta este implicit.

fel:
sortați copiii din fiecare rutină în ordine alfabetică. Aceasta este valoarea implicită.

Vezi discuția despre -referinţă și -vcg steaguri pentru detalii despre acestea
formate.

Pentru copac format, graficul apelului este tipărit pornind de la programul principal,
care este listat pe prima linie la marginea stângă. Apoi, pe următoarele rânduri,
fiecare rutină apelată de programul principal este listată, indentată câteva spații, urmată
de subarborele începând cu acea rutină.

În modul implicit, dacă o rutină este apelată de mai multe alte rutine, aceasta
subarborele de apeluri este tipărit numai prima dată când este întâlnit Apelurile ulterioare dau numai
numele rutinei și notificarea ``(vezi mai sus)''. Pentru a avea subarborele tipărit pentru
fiecare apariție a rutinei, utilizați opțiunea fără prune.

Rețineți că arborele de apeluri va fi incomplet dacă oricare dintre fișierele de intrare este proiect
fișiere care conțin mai mult de un module care au fost create în -bibliotecă modul. Vezi
discuții despre fișierele de proiect de mai jos.

Puncte tehnice: Fiecare listă de rutine apelate de o anumită rutină este tipărită
ordine alfabetică, cu excepția cazului în care fără sortare este dată opțiunea. Dacă mai multe programe principale
sunt găsite, arborele de apeluri al fiecăruia este tipărit separat. Dacă nu există niciun program principal
găsit, un raport în acest sens este tipărit și arborii de apeluri de la orice nivel superior
rutinele non-bibliotecare sunt tipărite. Acest steag controlează doar tipărirea apelului
copac: ftnchek construiește arborele de apel în orice caz deoarece este folosit pentru a determina
care module de bibliotecă vor fi verificate încrucișat. Vezi discuția despre -bibliotecă
steag.

Pentru compatibilitate cu versiunile anterioare ale ftnchek, o formă numerică a acesteia
se acceptă şi setarea: the listă este înlocuit cu un număr de la 0 la 15. Aceasta
numărul este format din 1 pentru copac format, 2 pentru referință format sau 3 pentru vcg
format, plus 4 pentru fără pruneși 8 pentru fără sortare.

Vezi de asemenea şi: -ref încrucișat, -bibliotecă, -referinţă, -fel, -simtab, -vcg.

-Verifica
Acest comutator este furnizat astfel încât erorile și mesajele de avertizare să poată fi dezactivate când
ftnchek este utilizat în alte scopuri decât găsirea erorilor, cum ar fi efectuarea de declarații
sau tipărirea arborelui de apeluri. Este pozițional, așa că după dezactivarea tuturor verificărilor,
cecurile selectate pot fi reactivate. Efectul -nocheck este a pune totul
comutatoare, setări numerice și setări care controlează listele de avertismente ale acestora
valorile de dezactivare, ca și cum toate ar fi fost specificate cu prefixul -no. Comutatoare
și setări care specifică opțiunile și modurile de operare, mai degrabă decât controlul
avertismentele, nu sunt afectate. Acestea sunt -coloane, -ref încrucișat, -include, -intrinsec,
-bibliotecă, -listă, -madecls, -novice, -ieșire, -dimensiunea pointerelor, proiect, -Liniște,
-referinţă, -resurse, -fel, -sursă, -simtab, -vcg, -versiune, -dimensiunea cuvintelor, și
-înfășurați. Implicit = da.

Erorile de analiză (erori de sintaxă datorate instrucțiunilor nerecunoscute sau malformate) nu sunt
suprimat de acest comutator, deoarece rezultatele pot fi incorecte dacă ftnchek nu are
a analizat corect programul.

Există unele erori diverse și mesaje de avertizare care nu sunt controlate de
orice alt comutator și, prin urmare, poate fi oprit numai de acest comutator. Rețineți că folosind
-Verifica următor -nocheck are doar ca efect întoarcerea acestor avertismente speciale
repornit și nu restabilește toate verificările pe care le-a dezactivat. Aceste avertismente sunt:

o Modulul nu conține instrucțiuni executabile.

o În formă de sursă liberă, spațiul lipsă acolo unde este necesar spațiu (de exemplu, între a
cuvânt cheie și un identificator) sau spațiu prezent acolo unde nu este permis niciunul (de exemplu, în
un identificator).

o Specificare de lungime zero sau negativă într-o declarație de tip de date a formularului
tip*len.

o Operanzi nevalidi într-o expresie.

o Matrice atribuită la scalar.

o Nepotrivire de tip între indicele DO și limite.

o Bloc comun nedefinit declarat în instrucțiunea SAVE.

o Funcție intrinsecă declarată explicit cu un tip incompatibil.

o Funcție intrinsecă necunoscută declarată explicit într-o instrucțiune INTRINSIC.

o Funcția intrinsecă transmisă ca argument de subprogram nu este declarată în an
Declarație INTRINSECĂ.

o Funcție intrinsecă sau funcție de instrucțiune invocată incorect.

o Funcția nu setează valoarea returnată înainte de instrucțiunea RETURN.

o Valoarea constantă a parametrului nu a fost evaluată (acesta este ftnchekvina lui și este drept
informându-te asupra faptului).

o Punctul de intrare al unui subprogram este folosit ulterior ca nume de subprogram diferit.

o Cuvânt cheie necunoscut utilizat într-o instrucțiune I/O.

o Referință de etichetă ilegală (de ex. GOTO se referă la o declarație neexecutabilă; I/O
declarația se referă la o declarație non-formată).

Vezi de asemenea şi: - erori.

-coloane=o
Setați lungimea maximă a declarației la o coloane. (Dincolo de acest lucru este ignorat.) Aceasta
setarea este furnizată pentru a permite verificarea programelor care pot încălca Fortran
limita standard de 72 de coloane pentru lungimea unei declarații. In conformitate cu
standard, toate caracterele dincolo de coloana 72 sunt ignorate. Dacă această setare este utilizată când
il -f77=linie lungă opțiunea este în vigoare, va fi dat un avertisment pentru orice rând în
care caractere dincolo de coloana 72 sunt procesate. Pornire = max = 132. Implicit = 72.

Această setare nu suprimă avertismentele despre prezența caracterelor dincolo
coloana 72. Pentru a procesa codul cu text de program semnificativ dincolo de coloana 72, utilizați aceasta
setarea și asigurați-vă că -f77 linie lunga opțiunea este dezactivată. Pentru a procesa codul cu
numerele de ordine în coloanele 73 până la 80, lăsați setarea coloanelor la valoarea implicită
valorează și folosește -pretty=fără-linie lungă steag.

Vezi de asemenea şi: -f77, -frumos.

-comun=listă
Această setare controlează strictețea verificării blocurilor COMUNE. Implicit, toate
avertismente cu excepția volatil sunt pornite.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Din moment ce majoritatea acestora
avertismentele sunt activate în mod implicit, includ un cuvânt cheie prefixat de nO- a opri a
avertisment special. Există trei cuvinte cheie speciale: toate pentru a porni toate
Avertizări, nici unul pentru a le opri pe toate și ajutor pentru a tipări lista tuturor cuvintelor cheie
cu o scurtă explicație a fiecăruia. Dacă listă este omis, -uzual este echivalent cu
-common=dimensiuni,exact,lungime,tip, și - deloc comun este echivalent cu -comun=niciuna.
Cuvintele cheie de avertizare cu semnificațiile lor sunt următoarele:

Dimensiuni:
tablourile corespunzătoare din fiecare declarație a unui bloc trebuie să fie de acord ca dimensiune și
numărul de dimensiuni. Această opțiune are efect numai atunci când este utilizată împreună cu
exact.

exact:
compararea a două blocuri se face mai degrabă variabilă cu variabilă decât pur și simplu
care necesită acord între locațiile de depozitare corespunzătoare. Folosește asta dacă tot
declarațiile unui anumit bloc COMUN se presupune că sunt identice, adică a
bună practică de programare.

lungime:
avertizează dacă diferite declarații ale aceluiași bloc nu sunt egale în lungime totală.
Standardul Fortran 77 necesită fiecare bloc comun numit, dar nu comun gol,
să aibă aceeași lungime în toate modulele programului.

tip:
în fiecare declarație a unui anumit bloc COMUN, locațiile de memorie corespunzătoare
(cuvinte sau octeți) trebuie să fie de acord în tipul de date. Dacă este utilizat împreună cu exact, Acest
va necesita ca variabilele corespunzătoare să fie de acord în tipul de date.

volatil:
Să presupunem că blocurile COMUNE sunt volatile.

Mulți programatori Fortran presupun că variabilele, fie că sunt locale sau COMUNE, sunt
static, adică că odată atribuită o valoare, ei păstrează acea valoare permanent până la
atribuită o valoare diferită de către program. Cu toate acestea, de fapt, Fortran 77
Standardul nu cere ca acesta să fie cazul. Variabilele locale pot deveni
nedefinit între activările unui modul în care sunt declarate. În mod similar,
Blocurile COMUNE pot deveni nedefinite dacă nu există niciun modul în care sunt declarate
activ. (Termenul tehnic pentru entitățile cu acest comportament este „automat”, dar
ftnchek folosește cuvântul ``volatil'' deoarece este mai clar pentru nespecialist.) Numai
Blocuri COMUNE declarate într-o instrucțiune SAVE, sau declarate în programul principal sau într-un
subprogramul de date bloc rămâne definit atâta timp cât programul rulează. Variabile
iar blocurile COMUNE care pot deveni nedefinite la un moment dat sunt numite volatile.

În cazul în care -comun=volatil steagul este aprins, ftnchek vă va avertiza dacă găsește o
bloc COMUN volatil. Dacă, în același timp, cel -usage=com-bloc-volatil opțiune
este pornit (care este implicit), ftnchek va încerca să verifice dacă un astfel de bloc
își poate pierde starea definită între activările modulelor în care se află
declarat. ftnchek nu face o treabă foarte bună în acest sens: regula folosită este să vezi
dacă blocul este declarat în două subarbori separate ale arborelui de apeluri. Pentru
de exemplu, acesta ar fi cazul dacă două module, ambele apelate din programul principal,
a partajat un bloc COMUN volatil. Un bloc poate deveni, de asemenea, nedefinit între doi
apeluri succesive ale aceluiaşi subprogram, dar ftnchek nu este suficient de inteligent pentru a spune
dacă un subprogram poate fi apelat de mai multe ori, astfel încât acest caz nu este verificat.

-comun=volatil steagul nu afectează calea ftnchek verifică utilizarea localului
variabile.

Pentru compatibilitate cu versiunile anterioare ale ftnchek, o formă numerică a acesteia
se acceptă şi setarea: the listă se înlocuiește cu un număr de la 0 la 3. O valoare de
0 dezactivează toate avertismentele, 1 sau mai mult pornește tip, 2 sau mai multe porniri
lungime, iar 3 pornește Dimensiuni și exact de asemenea. Forma numerică nu se poate activa
il volatil opțiune.

Vezi de asemenea şi: -bibliotecă, -utilizare.

-crossref=listă
Imprimă tabele de referințe încrucișate. Implicit = niciunul.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Cuvintele cheie cu
semnificațiile lor sunt după cum urmează:

Apeluri:
tabelul listează fiecare subprogram urmat de o listă de rutine care îl numesc.
Această listă omite modulele bibliotecii care nu sunt în arborele de apeluri al principalului
program. Lista este alfabetizată.

comun:
tabelul listează fiecare bloc COMUN urmat de o listă a rutinelor pe care le accesează
aceasta. Aceste rutine enumerate sunt cele în care unele variabile în COMUNE
bloc sunt accesate, nu doar acele rutine care declară blocul. (La
aflați ce rutine declară un bloc COMUN, dar nu îl utilizați, vedeți
-utilizare steag.)

etichete:
tabelul listează fiecare etichetă urmată de o listă cu toate referințele la aceasta. O eticheta
referința este desemnată prin numărul rândului și tipul de declarație al referinței
afirmație. Lista de etichete este în ordine secvențială. Referințele sunt
enumerate în ordinea în care sunt întâlnite în program.

Vezi de asemenea şi: -calltree, -referinţă, -fel, -simtab, -vcg.

-declara
Dacă acest flag este setat, toți identificatorii al căror tip de date nu este declarat în fiecare modul
vor fi listate. Acest steag este util pentru a ajuta la găsirea numelor de variabile scrise greșit,
etc. Aceeași listare va fi dată dacă modulul conține NIMIC IMPLICIT
afirmație. Implicit = nu.

Vezi de asemenea şi: -sixchar, -utilizare.

-Divizia
Acest comutator este oferit pentru a ajuta utilizatorii să identifice potențialele probleme de împărțire la zero. Dacă
acest comutator este selectat, fiecare diviziune, cu excepția unei constante, va fi marcată. (Aceasta
se presupune că utilizatorul este suficient de inteligent pentru a nu împărți la o constantă care este
egal cu zero!) Implicit = nr.

Vezi de asemenea şi: -portabilitate, -trunchiere.

-erori=o
Setați numărul maxim de mesaje de eroare într-o „cascadă”. În timpul verificării
acordul argumentelor subprogramului, declarațiilor de bloc comune și așa mai departe,
uneori, un singur caz va genera un șir lung de avertismente. Adesea, pur și simplu
indică o altă cauză decât o nepotrivire autentică articol cu ​​articol, cum ar fi pentru
exemplu o variabilă care lipsește dintr-o listă. Deci in astfel de cazuri ftnchek se oprește tipărirea
avertismentele după ce limita cascadă este atinsă, iar remorca ``etc...'' este
tipărit pentru a indica faptul că au existat mai multe erori netipărite. Dacă crezi că
Este posibil ca aceste avertismente să fie autentice, utilizați această setare pentru a vedea mai multe dintre ele.
Pornire = implicit = 3, max = 999. O valoare de 0 înseamnă că nu există limită.

Această setare nu stabilește o limită generală a numărului de mesaje de eroare imprimate,
numai numărul tipărit în orice cascadă. Cele mai multe tipuri de avertismente și erori
mesajele nu sunt supuse efectului de cascadă și, prin urmare, nu sunt afectate de acesta
setare. Pentru a dezactiva avertismentele în general, utilizați controlul individual de avertizare
opțiuni sau -nocheck opțiune.

Vezi de asemenea şi: -Verifica.

-extern
Cauze ftnchek pentru a raporta dacă vreun subprogram invocat de program nu este niciodată
definit. De obicei, dacă ftnchek este rulat pe un program complet, fiecare
subprogram, altul decât funcțiile intrinseci, ar trebui definit undeva. Întoarce-te
dezactivați acest comutator dacă doriți doar să verificați un subset de fișiere care fac parte dintr-un
program complet mai mare. Argumentele subprogramului vor fi în continuare verificate
corectitudine. Implicit = da.

-extern steag este acum înlocuit de -usage=ext-nedefinit opțiune. Pentru
din motive de comoditate, -extern se păstrează steagul, astfel încât -noextern este echivalent
la -usage=no-ext-nedefinit opțiune. -extern comutatorul poate fi retras în cele din urmă.

Vezi de asemenea şi: -bibliotecă.

-f77=listă
Utilizați această setare pentru a captura extensii de limbă care încalcă Fortran 77
Standard. Astfel de extensii pot face ca programul dvs. să nu fie portabil. Exemple
includeți utilizarea liniuțelor de subliniere în numele variabilelor; nume de variabile mai lungi de șase
personaje; linii de declarație mai lungi de 72 de caractere; și declarații nestandard
precum structura DO ... ENDDO. ftnchek nu raportează despre utilizarea
litere mici. În mod implicit, toate avertismentele sunt dezactivate.

Această setare oferă control detaliat asupra avertismentelor despre extensiile acceptate
la standardul Fortran 77. (Detalii suplimentare despre extensiile în sine sunt
dat mai jos în secţiunea Extensii.) The listă constă din cuvinte cheie separate
prin virgule sau două puncte. Există trei cuvinte cheie speciale: toate pentru a porni toate
avertismente despre extensiile nestandard, nici unul pentru a le opri pe toate și ajutor la imprimare
lista tuturor cuvintelor cheie cu o scurtă explicație a fiecăruia. Dacă listă este omis,
-f77 este echivalent cu -f77=toate, și -nof77 este echivalent cu -f77=niciuna. Avertismentul
cuvintele cheie cu semnificațiile lor sunt următoarele:

accept-type:
ACCEPT și TYPE instrucțiuni I/O.

limite ale matricei:
Expresii care definesc limitele matricei care conțin elemente sau funcție de matrice
referințe.

atribuire-stmt:
Declarații de atribuire care implică matrice. În Fortran 90, o matrice poate fi
alocat unei alte matrice de formă compatibilă sau unui scalar îi poate fi atribuit
o matrice. Niciuna dintre aceste sarcini nu este permisă în Fortran 77.

Un avertisment asociat apare atunci când o matrice este atribuită unui scalar. De la aceasta
este ilegal și în Fortran 90, este întotdeauna avertizat, indiferent de
-f77 setare (cu excepția cazului în care toate verificările sunt dezactivate cu -nocheck steag).

bazat pe atribute-decl:
Declarații de tip în noul stil Fortran 90 bazat pe atribute. Acest stil de
declarația se distinge prin utilizarea dublelor două puncte (::) între
lista de atribute și lista de variabile declarate. De asemenea, această opțiune
controlează avertismentele pentru utilizarea specificatorilor de lungime sau tip Fortran 90 în tip
declarații. (Deși acești specificatori pot fi utilizați în format care nu se bazează pe atribute
declarații, acestea sunt controlate de această opțiune pentru a evita proliferarea
-f77 Opțiuni.)

matrice automată:
Matrice locale (nu fictive) care au dimensiuni variabile. Acestea ar corespunde
matrice a căror stocare ar trebui să fie alocată dinamic în timpul rulării.

backslash:
Unix backslash escape în șiruri. Acest avertisment va fi dat numai dacă
-source=unix-backslash setarea este specificată pentru a provoca evadarea
interpretarea backslash..

octet: Declarație de tip de date BYTE.

case-construct:
Construcția SELECT CASE.

caracter:
Extensii la standardul Fortran 77 privind datele de caractere. In prezent,
aceasta controlează doar avertismentele despre variabilele caracter declarate cu zero sau
lungime negativă. În Fortran 77, toate variabilele de caractere trebuie să fie pozitive
lungime. În Fortran 90, acestea pot fi de lungime zero și declarații că
specificați lungimi negative sunt permise, transformându-se în zero pentru cele declarate
lungime. Notă: deoarece specificatorii de lungime negativi pot indica o programare
eroare, avertismentul despre ele este dat chiar dacă această opțiune este dezactivată și
este suprimată numai de către -nocheck steag.

nume-subprog-comun:
Bloc comun și subprogram având același nume.

construct-nume:
Utilizarea unui nume de construcție pentru a eticheta o instrucțiune de control.

continuare:
Peste 19 linii de continuare succesive.

cpp: directive de preprocesor Unix C în codul sursă.

cray-pointer:
Sintaxa ``Cray pointer''.

ciclu-ieșire:
Instrucțiunile CYCLE și EXIT.

d-comentează:
Depanarea comentariilor care încep cu D în codul sursă.

dec-tab:
DEC Cod sursă format în filă în stil Fortran. Acest avertisment va fi dat numai
dacă -source=dec-tab setarea este specificată pentru a provoca interpretarea filelor
în acest stil.

do-enddo:
Extensii de buclă DO: eticheta instrucțiunii terminale omise, END DO și WHILE.

dublu complex:
Tip de date complex de dublă precizie.

format-dollarsign:
Codul de control al semnului dolar în extrasele FORMAT.

format-editare-descr:
Descriptori de editare nestandard în instrucțiunile FORMAT.

function-noparen:
Definirea funcției fără paranteze.

implicit-niciuna:
Declarație IMPLICIT NONE.

include:
Declarația INCLUDE.

inline-comentare:
Comentarii inline care încep cu un semn de exclamare.

lista-internă-io:
I/E direcționate în listă către sau de la un fișier intern.

intrinsec:
Funcții intrinseci nestandard.

io-cuvinte cheie
Cuvinte cheie nestandard utilizate în instrucțiunile I/O. Acestea se împart în trei grupe.
Primul grup include cuvinte cheie care sunt acceptate în Fortran 90:

ACTION PAD READSCRIERE
DIMENSIUNEA POZIȚIEI AVANSATE
DELIM CITEȘTE SCRIE
EOR
Al doilea grup cuprinde următoarele cuvinte cheie VMS Fortran:

BLOCKSIZE EXTENSIZE DOAR CITIREA
BUFFERCOUNT INITIALSIZE RECORDSIZE
CARRIAGECONTROL MAXREC RECORDTYPE
NUME IMPLICIT DE FIȘIER (în DESCHIS) ÎNTREPRINAT
DISP NOSPANBLOCK TIP
DISPONIȚI ORGANIZARE
(Cuvântul cheie NUME este standard numai în instrucțiunea INQUIRE.) Al treilea
grupul este format din următorul cuvânt cheie IBM/MVS:

NUM
Acest indicator controlează, de asemenea, un avertisment despre utilizarea ACCESS='APPEND', adică
acceptate de unii compilatori. Valoarea lui „APPEND” nu este valabilă pentru niciun I/O
specificatorul în standardul Fortran 77, iar în Fortran 90 ar trebui folosit „APPEND”.
ca valoare a specificatorului POZIȚIE, nu ACCES.

linie lunga:
Declarații cu cod semnificativ peste 72 de coloane. Acest avertisment este dat numai
dacă -coloane setarea a fost folosită pentru a mări lățimea câmpului declarației.

nume lung:
Identificatori de peste 6 caractere.

mixt-comun:
Date mixte cu caractere și fără caractere în blocul COMMON.

mixt-expr:
Combinații de tipuri nestandard în expresii, de exemplu PRECIZIUNE DUBLĂ
cu COMPLEX, atribuirea hollerith unui întreg, operații logice pe numere întregi.

nume-semn de dolar:
Semnul dolar folosit ca caracter în identificatori.

nume-subliniere:
Litere de subliniere folosită ca caracter în identificatori.

lista de nume:
Declarație NAMELIST.

param-implicit-tip:
Tastarea implicită a unui parametru după tipul de date al valorii atribuite. Acest
avertismentul poate apărea numai dacă introducerea implicită a parametrilor a fost activată de către
-source=param-implicit-type opțiunea, sau dacă instrucțiunea PARAMETER este din
formă nestandard fără paranteze. Dacă această opțiune este activată, atunci oricare
vor fi avertizate cazurile în care apare introducerea implicită a parametrilor. Dacă
doriți să fiți avertizat doar în acele cazuri în care tipul de date implicit
diferă de tipul implicit, utilizați -portability=param-implicit-type in schimb.
Conform standardului Fortran 77, este dat tipul de date al unui parametru
după aceleași reguli ca pentru o variabilă și, dacă este necesar, o conversie de tip este
făcut atunci când valoarea este atribuită.

param-intrinsec:
Funcție intrinsecă sau exponențierea unui real folosită pentru a defini valoarea lui a
Definiția PARAMETRILOR.

param-noparen:
Instrucțiunea PARAMETER fără paranteze. Utilizatorul ar trebui să fie conștient de faptul că
semantica acestei forme a enunţului diferă de cea a standardului
form: în această formă, parametrul își ia tipul de date din valoare
atribuit, în loc să aibă tipul de date implicit bazat pe prima literă
a numelui parametrului. (Această formă a instrucțiunii PARAMETER a fost introdusă
până în DEC înainte ca standardul Fortran 77 să fie definit și ar trebui evitat.)

indicatorul:
Sintaxa standard Fortran 90 legată de pointer, inclusiv POINTER, TARGET și
Declarații de tip ALLOCATABLE, instrucțiuni ALLOCATE, DEALLOCATE și NULLIFY,
și atribuirea pointerului folosind =>.

quad-constante:
Constante reale de precizie cvadruplă, de exemplu de forma 1.23Q4.

ghilimele:
Șiruri delimitate mai degrabă de ghilimele decât de apostrofe.

relops:
Operatori relaționali (comparație) compuși din punctuație și anume: < <= == /=
>>=.

punct şi virgulă:
Punct virgulă folosit ca separator de instrucțiuni.

declarație-ordine:
Declarații în afara secvenței impuse de Standard. Permisul
secvența este ilustrată în tabelul 1 din secțiunea privind interpretarea rezultatului.

fără tip-constant:
Constante fără tip, de exemplu Z'19AF'.

dimensiunea tipului:
Declarații de tip care specifică o dimensiune, de exemplu REAL*8.

format variabil:
Specificație de repetare variabilă sau dimensiune câmp în FORMAT. Acestea sunt de formă
< expres >.

vms-io:
Învechit. Acum are același sens ca și io-cuvinte cheie cuvinte cheie.

Vezi de asemenea şi: -f90, -f95, -portabilitate, -frumos, -Stil, -dimensiunea cuvintelor.

-f90=listă
Această setare oferă control detaliat asupra avertismentelor despre extensiile acceptate
la standardul Fortran 77 care nu au fost adoptate ca parte a Fortran 90
Standard. Rețineți că ftnchek nu acceptă limba completă Fortran 90.
Cu toate acestea, acceptă unele extensii comune pentru Fortran 77 care erau predominante
înainte ca Fortran 90 să fie definit. Unele dintre aceste extensii au devenit parte a Fortranului
90 Standard, dar alții nu. The -f90 setarea avertizează numai despre acestea din urmă.
Adică, acest steag acoperă lucruri care nu sunt nici legale Fortran 77, nici legale
Fortran 90. Prin urmare, avertismentele controlate de acest steag sunt practic un subset
a avertismentelor controlate de -f77. Există câteva cazuri, descrise mai jos, în care
imprejurarile in care se da avertismentul sunt putin diferite pentru cei doi
steaguri.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Se află trei
cuvinte cheie speciale: toate pentru a activa toate avertismentele despre extensiile nestandard,
nici unul pentru a le opri pe toate și ajutor pentru a tipări lista tuturor cuvintelor cheie cu a
scurtă explicație a fiecăruia. Dacă listă este omis, -f90 este echivalent cu -f90=toate, și
-nof90 este echivalent cu -f90=niciuna.

Următoarele cuvinte cheie au semnificații identice pentru -f90 în ceea ce privește -f77. Cititorul este
a făcut referire la explicațiile de mai jos -f77.

accept-type dublu complex param-noparen
backslash format-dollarsign cray-pointer
octet format-editare-descr quad-constante
cpp function-noparen dimensiunea tipului
d-comentează nume-semn de dolar format variabil
dec-tab param-implicit-tip vms-io

Cuvintele cheie care diferă oarecum de cele corespunzătoare -f77 cuvintele cheie sunt ca
urmează.

continuare:
Limita numărului de linii de continuare pentru o declarație în sursă fixă
forma este aceeași, și anume 19, în Fortran 90 ca și în Fortran 77. Pentru sursă gratuită
Limita este de 39 de linii de continuare și o linie care conține o continuare
marca nu poate fi altfel goală sau conține doar un comentariu.

intrinsec:
Acesta este la fel ca pentru -f77 cu excepția funcțiilor intrinseci definite în
MIL-STD 1753, care sunt toate incluse în Fortran 90 și, prin urmare, nu sunt avertizate
despre. (Vedea -intrinsec pentru o listă.)

io-cuvinte cheie:
Acesta este la fel ca pentru -f77 cu excepția faptului că nu sunt date avertismente pentru I/O
cuvinte cheie care sunt standard în Fortran 90.

linie lunga:
Deși standardul Fortran 90 permite linii mai lungi de 72 de caractere
forma sursă liberă, această restricție se aplică în continuare formei sursă fixă. În
sursă gratuită, limita de lungime a liniei este de 132 de caractere și, spre deosebire de cea fixă
formă, ftnchek nu permite creșterea acestei limite.

mixt-expr:
Acesta este la fel ca pentru -f77 cu excepția expresiilor care amestecă precizie extinsă
reale cu tipuri de date complexe, care sunt permise în Fortran 90.

declarație-ordine:
Aceasta este similară cu cea corespunzătoare -f77 avertisment, dar aplică oarecum
restricții mai laxe privind ordinea de declarație a standardului Fortran 90. În
în special, Fortran 90 permite declarații DATE și funcția declarație
definițiile care trebuie amestecate cu declarații de specificație.

fără tip-constant:
În Fortran 90, constante binare, octale și hexazecimale de forma B'ddd',
O'ddd' și, respectiv, Z'ddd' sunt permise. Aici „ddd” reprezintă a
șir de cifre. ftnchek recunoaște aceste forme, precum și o variantă a
forma X'ddd' pentru o constantă hexazecimală și alte variante în care
indicatorul de bază B, O, Z sau X urmează șirul de cifre. Aceste variante au fost
nu sunt adoptate în Fortran 90, deci doar ei sunt avertizați când este acest steag
pornit.

Vezi de asemenea şi: -f77, -f95, -portabilitate, -frumos, -Stil, -dimensiunea cuvintelor.

-f95=listă
Această setare oferă control detaliat asupra avertismentelor despre Fortran 77 standard
caracteristici care au fost șterse din Fortran 95 Standard. spre deosebire de -f77 și -f90
setărilor, aceste avertismente se aplică sintaxei care este legală Fortran 77. Cu toate acestea, din moment ce
aceste caracteristici au fost șterse din Standard, este posibil ca programele
Conținerea acestora va fi inacceptabilă pentru unii compilatori mai noi.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Se află trei
cuvinte cheie speciale: toate pentru a activa toate avertismentele despre extensiile nestandard,
nici unul pentru a le opri pe toate și ajutor pentru a tipări lista tuturor cuvintelor cheie cu a
scurtă explicație a fiecăruia. Dacă listă este omis, -f95 este echivalent cu -f95=toate, și
-nof95 este echivalent cu -f95=niciuna. Cuvintele cheie de avertizare cu semnificațiile lor sunt ca
urmează.

real-do:
O variabilă DO de orice tip numeric real.

pauză:
Declarația PAUSE.

atribui:
Instrucțiunea ASSIGN, GOTO atribuit sau formatul atribuit.

h-edit:
Descriptorul de editare H într-un format.

Există o altă caracteristică de sintaxă Fortran 77 care a fost ștearsă în Fortran 95, și anume
ramificare la un ENDIF din afara blocului IF. In orice caz, ftnchek nu poate
analiza fluxul programului și, prin urmare, nu oferă un avertisment pentru acest lucru.

Vezi de asemenea şi: -f77, -f90, -portabilitate, -frumos, -Stil, -dimensiunea cuvintelor.

-Ajutor
Tipărește o listă cu toate opțiunile din linia de comandă cu o scurtă descriere a fiecăreia
împreună cu valoarea sa implicită. Această comandă este identică ca funcție cu cea a ``?''
argument, și este oferit ca o comoditate pentru acele sisteme în care întrebarea
marca are o semnificație specială pentru interpretul de comenzi. Implicit = nu.

Lista de ajutor afișează, de asemenea, numărul versiunii și nivelul patch-ului ftnchek și
notificare privind drepturile de autor.

Notă: valorile „implicite” tipărite între paranteze drepte în lista de ajutor sunt:
strict vorbind, nu valorile implicite încorporate, ci valorile curente după oricare
opțiunile de mediu și orice opțiuni de linie de comandă care preced -Ajutor opțiunea au
fost prelucrate.

Vezi de asemenea şi: -novice, -versiune, și ajutor opțiunea tuturor setărilor care iau o listă de
Cuvinte cheie.

-identifier-chars=listă
Definiți caractere non-alfanumerice care pot fi utilizate în identificatori. În mod implicit,
ftnchek acceptă doar semnul dolar și liniuța de subliniere ca caractere non-alfanumerice
în numele de identificare. Personajele din listă înlocuiți orice set de acceptate
caracterele non-alfanumerice erau în vigoare anterior. Astfel, dacă semnul dolarului sau
sublinierea nu sunt incluse în listă, își pierd statutul de acceptabil
caractere.

Această opțiune este oferită pentru activare ftnchek pentru a gestiona fișierele sursă care conțin non-
nume de identificare standard care pot fi necesare, de exemplu, pentru a accesa anumite
servicii ale sistemului de operare. Consultați secțiunea Limitări și extensii pentru
tratarea identificatorilor care conțin aceste caractere în tastarea implicită.

Utilizarea -noidentififer-chars dezactivează acceptarea caracterelor non-alfanumerice
în întregime.

Vezi de asemenea şi: -sursă.

-include=cale
Specifică un director care trebuie căutat pentru fișierele specificate de instrucțiunile INCLUDE.
Spre deosebire de alte opțiuni de linie de comandă, această setare este cumulativă; adică dacă este
date de mai multe ori pe linia de comandă, toate directoarele astfel specificate sunt
plasate pe o listă care va fi căutată în aceeași ordine în care sunt date. The
ordinea în care ftnchek căutările pentru un fișier de inclus este: curentul
director; directorul specificat de variabila de mediu FTNCHEK_INCLUDE, dacă există;
directoarele specificate de oricare -include Opțiuni; directorul specificat de
variabila de mediu INCLUDE; și în sfârșit într-un director standard pentru întregul sistem
(/ usr / include pentru UNIX, SYS$LIBRARY pentru VMS și \include pentru MSDOS).

Vezi de asemenea şi: -f77, -sursă.

-intrinsec=listă
Controlează dacă ftnchek recunoaște anumite funcții intrinseci nestandard ca
intrinsec. The listă constă din cuvinte cheie separate prin virgule sau două puncte. Unele
cuvintele cheie controlează dacă să recunoască anumite grupuri de funcții și altele
cuvintele cheie controlează sintaxa așteptată pentru invocarea unor intrinseci nestandard.
Includeți un cuvânt cheie pentru a activa recunoașterea setului corespunzător de intrinseci sau
pentru a permite sintaxa corespunzătoare. Includeți un cuvânt cheie prefixat de nO- a opri
acea recunoaștere.

Există trei cuvinte cheie speciale: toate activează recunoașterea tuturor nestandardelor
intrinseci (enumerate mai jos) și acceptă fie sintaxa pentru cele care au variații.
Utilizare nici unul pentru a dezactiva recunoașterea tuturor elementelor intrinseci nestandard, cu excepția celor notate
de mai jos. Utilizare ajutor pentru a tipări lista tuturor cuvintelor cheie cu o scurtă explicație a
fiecare. Dacă listă este omis, -intrinsec este echivalent cu -intrinsec=toate, și
-nointrinsec este echivalent cu -intrinsec=niciuna.

Funcțiile intrinseci nonstandard necesare pentru a susține extinderea nonstandard
Tipurile de date de precizie (dublu complex și quad precizie) sunt întotdeauna recunoscute.
Elementele intrinseci pentru tipul de date dublu complex sunt:

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIAG ZEXP ZCOS
CDSIN
Intrinsecile pentru precizia quad și tipurile quad complexe sunt:

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
Cuvintele cheie care controlează recunoașterea altor funcții intrinseci nestandard sunt
după cum urmează:

suplimentar:
recunoașteți următoarele intrinseci nestandard disponibile în mod obișnuit (toate cu excepția
EXIT și LOC sunt definite în MIL-STD 1753):

BEST IBCLR IEOR ISHFTC
EXIT IBITS IOR LOC
IAND IBSET ISHFT NU

unix: recunoașteți aceste funcții intrinseci comune specifice Unix:

ABORT GMTIME LTIME SRAND
SI IARGC SAU SISTEM
GETARG IRAND RAND TIME
GETENV LSHIFT RSHIFT XOR

vms: recunoașteți aceste funcții intrinseci comune specifice VMS:

DATA IDATE SECUNDE ORA

ERRSNS RAN SIZEOF

iargc-no-argument:
specificați că IARGC poate fi invocat fără argumente.

iargc-un-argument:
specificați că IARGC poate fi invocat cu un singur argument.

rand-no-argument:
specificați că RAND și IRAND pot fi invocate fără argumente.

rand-un-argument:
specificați că RAND și IRAND pot fi invocate cu un singur argument.

fără argument și un singur argument cuvintele cheie funcționează după cum urmează: activarea opțiunii
cauze ftnchek să accepte sintaxa corespunzătoare pentru invocarea funcției,
fără a exclude posibilitatea sintaxei alternative. Întoarcerea opțiunii
off face ca sintaxa corespunzătoare să nu fie acceptată. Dacă ambele opțiuni sunt întoarse
pornit deodată (prestabilit), atunci oricare dintre sintaxa este acceptată. Dezactivarea ambelor opțiuni
deodată nu ar avea sens. Aceste opțiuni nu au niciun efect în cazul recunoașterii
Unix intrinseci a fost dezactivat.

Rețineți că această setare nu controlează dacă sunt emise avertismente non-standard
despre aceste funcții. Controlează dacă se presupune că funcțiile sunt
intrinsec sau nu, care determină modul în care este verificată utilizarea lor. Când funcţionează în
oricare dintre aceste seturi sunt incluse, invocarile lor vor fi verificate conform
reguli pentru funcțiile intrinseci; în caz contrar, acestea vor fi verificate în mod normal (utilizator-
scris) funcţii externe. Avertismentele non-standard sunt controlate de
-f77=intrinsec opțiune.

Valoarea implicită a acestei setări este echivalentă cu -intrinsec=toate urmată de
-intrinsic=no-vms pentru versiunea Unix, -intrinsec=no-unix pentru versiunea VMS și
-intrinsic=no-unix,no-vms pentru alte versiuni.

Notă: În versiunile de ftnchek înainte de 2.10, -intrinsec steagul a luat un număr
argument în loc de o listă de opțiuni. De dragul utilizatorilor care au scris
invocarea de scripturi ftnchek în acest fel, forma numerică este încă acceptată. The
forma numerică a setării este formată din trei cifre. Cifra celor selectate
set de funcții intrinseci care trebuie suportate. Cifra 0 selectează doar Fortran 77
intrinseci standard plus cele necesare pentru a sprijini precizia extinsă nonstandard
tipuri de date. Cifra 1 este echivalentă cu suplimentar, 2 este echivalent cu extra, unix, și
3 este echivalent cu extra,vms. Cifra zecilor din această setare controlează sintaxa
a funcției intrinseci RAND, iar cifra sutelor controlează sintaxa lui
Funcția IARGC. Pentru aceste cifre, specificați 0 pentru a solicita invocarea cu nr
argument, 1 pentru a solicita un argument și 2 pentru a permite oricare dintre forme.

Vezi de asemenea şi: -f77.

-bibliotecă
Acest comutator este utilizat atunci când un număr de subprograme sunt conținute într-un fișier, dar nu
toate sunt utilizate de aplicație. În mod normal, ftnchek vă avertizează dacă există
subprogramele sunt definite, dar nu sunt folosite niciodată. Acest comutator va suprima aceste avertismente.
Implicit = nu.

Acest comutator controlează, de asemenea, care sunt apelurile de subprogram și declarațiile de bloc COMUNE
verificat. Dacă un fișier este citit cu -bibliotecă flag de fapt, apelurile subprogramului
iar declarațiile COMUNE conținute într-o rutină din acel fișier vor fi verificate numai dacă
acea rutină se află în arborele de apeluri al programului principal. Pe de altă parte, dacă
-bibliotecă atunci comutatorul este oprit ftnchek verifică apelurile fiecărei rutine prin
orice altă rutină, indiferent dacă acele rutine ar putea fi vreodată
invocat în timpul rulării și, de asemenea, toate declarațiile de bloc COMUNE sunt comparate pentru
acord.

Diferența dintre acest comutator și -usage=nu-ext-neutilizat opțiune pentru
subprograme este că acesta din urmă suprimă doar avertismentul despre rutine
declarate dar neutilizate. The -bibliotecă comutatorul merge mai departe și exclude neutilizat
rutine procesate în timp ce este în vigoare din toate verificările încrucișate ale argumentelor și
De asemenea, declarațiile bloc COMUNE.

(Dacă nu există niciun program principal în setul de fișiere, atunci ftnchek a citit, deci
că nu există nici un arbore de apeluri, atunci ftnchek va căuta orice rutine non-bibliotecare
care nu sunt numite de nicio altă rutină și le folosesc ca înlocuitori pentru principal
program în construirea arborelui de apeluri și a decide ce să verifice. Dacă nu există un astfel de top-
sunt găsite rutinele de nivel non-bibliotecă, apoi toate apelurile inter-module și toate COMUNE
declarațiile vor fi verificate.)

Vezi de asemenea şi: -argumente, -calltree, -uzual, -extern, -utilizare.

-listă
Specifică faptul că o listă a programului Fortran urmează să fie tipărită cu linie
numerele. Dacă ftnchek detectează o eroare, mesajul de eroare urmează linia programului
cu un indicator ( ^ ) care specifică locația erorii. Dacă nicio listă sursă nu a fost
solicitat, ftnchek va imprima în continuare orice rând care conține o eroare, pentru a ajuta
utilizator pentru a determina unde a apărut eroarea. Implicit = nu.

Vezi de asemenea şi: -ieșire, \fB-symtab, fB-liniștit.

-madecls=listă
Pregătiți un fișier bine formatat cu declarații de variabile, blocuri comune și
liste de nume, pentru posibila îmbinare în codul sursă. Declarațiile sunt
stocat într-un fișier cu același nume ca și codul sursă, dar cu extensia
schimbat în .dcl. Dacă nu sunt scrise declarații în fișier, acesta este șters în
reduceți dezordinea din fișierele goale.

Dacă intrarea vine de la intrare standard, în loc de un fișier numit, atunci declarațiile sunt
scris la ieșire standard.

Variabilele sunt declarate în ordine alfabetică în cadrul fiecărei clase de declarație și
tip, cu variabile întregi mai întâi, din cauza utilizării lor ulterioare posibile în matrice
dimensiuni.

Instrucțiunile PARAMETER sunt o excepție de la regula de ordine alfabetică, deoarece
Standardul Fortran 77 cere ca expresiile care definesc valorile parametrilor se referă
numai la constante și la nume de parametri deja definite. Acest lucru forțează originalul
ordinea fișierului sursă a acestor declarații care urmează să fie păstrate în fișierele declarațiilor.

Declarație explicită a toate variabile este considerată o bună programare modernă
practică. Prin utilizarea opțiunilor compilatorului pentru a respinge variabilele nedeclarate, scrise greșit
numele variabilelor (sau numele care se extind dincolo de coloana 72) pot fi capturate în timpul compilării.
Declarațiile explicite facilitează, de asemenea, foarte mult schimbarea preciziei în virgulă mobilă
cu filtre precum dtoq(1L), dtos(1L), fd2s(1L), fs2d(1L), qtod(1L) și
stod(1L). Aceste programe sunt capabile să schimbe tipurile de virgulă mobilă explicită
declarații de tip, funcții intrinseci și constante, dar pentru că nu
efectuarea unei analize riguroase lexicale și gramaticale a codului sursă Fortran,
nu pot furniza declarații de tip modificat pentru variabilele nedeclarate. Mod implicit
setare = 0, pornire = 1.

Diverse opțiuni pentru forma dosarului declarațiilor sunt controlate de către listă,
care constă din cuvinte cheie separate prin virgule sau două puncte. Sunt trei speciale
Cuvinte cheie: toate pentru a activa toate opțiunile, nici unul pentru a le opri pe toate și ajutor la
tipăriți lista tuturor cuvintelor cheie cu o scurtă explicație a fiecăruia. Dacă listă is
omis, -madecls este echivalent cu -makedcls=declarații (adică produc
fișierul declarațiilor folosind opțiunile implicite) și -nomakedcls este echivalent cu
-makedcls=niciuna.

Pentru compatibilitate cu versiunile anterioare ale ftnchek, o formă numerică a acestei setări
este de asemenea acceptat: the listă se înlocuiește cu un număr care este suma numerelor
între paranteze lângă cuvintele cheie din lista următoare. Cuvintele cheie de avertizare
cu semnificațiile lor sunt următoarele:

declarații (1):
Scrieți un dosar de declarație. (Acest lucru este implicat de oricare dintre celelalte opțiuni și
poate fi omis dacă sunt oferite alte opțiuni.)

numai nedeclarate (2):
În mod implicit, toate variabilele sunt incluse în fișierul de declarație. Cu asta
opțiune, include numai nedeclarat variabile. Această setare este utilă dacă
doresc să verifice variabilele nedeclarate, deoarece fișierele sursă Fortran cu toate
variabilele declarate corect nu vor avea ca rezultat a .dcl fişier. Cu asta
opțiunea, blocurile comune și listele de nume nu vor fi incluse în
dosar de declarație, întrucât prin natura lor nu pot fi nedeclarate.

compact (4):
Declarațiile sunt în mod normal destul de imprimate pentru a se alinia perfect în comun
coloane, ca în fișierele de declarație scoase de către Extended PFORT Verifier,
pfort(1L). Această valoare a opțiunii selectează în schimb o ieșire compactă, fără coloană
aliniere.

linii-continuare-utilizare (8):
Determină utilizarea liniilor de continuare acolo unde este permis. Valoarea implicită este să
începe o nouă declarație pe fiecare linie. Această opțiune este adecvată pentru utilizare
Împreună cu compact.

cuvinte cheie-minuscule (16):
Trimiteți cuvintele cheie Fortran cu litere mici, în loc de majuscule implicite.

vars-and-consts-minuscule (32):
Variabilele de ieșire și constantele cu litere mici, în loc de cele implicite
majuscule. Constantele șirurilor de caractere nu sunt afectate de această opțiune.

exclude-sftran3 (64):
Omiteți declarațiile variabilelor întregi interne produse de SFTRAN3
preprocesor, xsf3(1L), ca parte a traducerii Fortranului structurat
declarații către Fortran obișnuit. Aceste variabile au nume de șase caractere
forma NPRddd, NXdddd, N2dddd, și N3dddd, În cazul în care d este o cifră zecimală.
Deoarece sunt invizibile în codul sursă SFTRAN3 și se vor schimba dacă
Codul SFTRAN3 este modificat, astfel de variabile nu trebuie declarate explicit.
În schimb, ar trebui să presupună doar tipul de date implicit Fortran INTEGER bazat
pe scrisoarea lor inițială, N.

asterisc-comentar (128):
Utilizați un asterisc ca caracter de comentariu; În caz contrar, implicit este „C”.

comentariu-car-minuscule (256):
Utilizați „c” în loc de „C” sau „*” ca caracter de comentariu.

suprima-matrice-dimensiuni (512):
Suprimați dimensionarea tablourilor în declarațiile generate. Această opțiune
este pentru utilizare cu cod fără declarații de tip, pentru a permite declarația
fișierele să fie inserate fără modificare în cod. Din moment ce codul va avea
instrucțiuni de dimensiune deja, dimensionând variabilele matricei din tip
declaraţiile dosarului de declaraţii sunt redundante. Această opțiune ar trebui folosită
numai în combinație cu opțiunea 2 = nedeclarat-doar pentru că în caz contrar există
tablourile care au fost dimensionate într-o instrucțiune de tip își vor pierde
dimensionarea.

liber de la (1024):
Produceți declarații în formă gratuită. Acest mod este utilizat automat dacă
sursa de intrare este liberă. Utilizați această opțiune pentru a produce declarații în
formă liberă chiar dacă intrarea este în formă fixă. Declarațiile în formă liberă sunt
indentat doar 2 coloane în loc de 6, utilizați semnul exclamării ca comentariu
caracter și indicați liniile de continuare printr-un ampersand la sfârșitul caracterului
linia care urmează să fie continuată.

Fișierele de declarație conțin comentarii distinctive care marchează începutul și sfârșitul
declarații pentru fiecare unitate de program, pentru a facilita utilizarea macrocomenzilor editorului de text pentru
îmbinând declarațiile înapoi în codul sursă.

ftnchek distribuția include un program, dcl2inc, care procesează declarația
fișiere pentru a produce fișiere care conțin declarații ale tuturor blocurilor COMUNE, într-o formă
potrivit pentru utilizare ca fișiere INCLUDE. Vezi dcl2inc(1L) pagina de manual pentru detalii despre
utilizarea sa.

Vezi de asemenea şi: -mkhtml.

-mkhtml=listă
Produceți documentație HTML din sursă. Creează fișiere HTML individuale din ftnchek
analiză și comentarii de cod. Toate comentariile imediat înainte și după
funcția sau definiția subrutinei sunt capturate în fișierul HTML. Fără reformatare a
comentariile sursă sunt efectuate altfel decât eliminarea caracterelor de comentariu FORTRAN.
În plus, fișierul HTML listează variabilele locale declarate, bloc comun
variabilele utilizate, funcțiile și subrutinele numite, utilizarea unității I/O și altele
informații despre fiecare subprogram. De obicei, veți dori și să specificați
-call=tree pentru a crea fișierul HTML rădăcină CallTree.html. (Poate că acest fișier ar trebui
fi numit index.html.)

Diverse opțiuni pentru forma fișierelor HTML sunt controlate de listă, Care
constă din cuvinte cheie separate prin virgule sau două puncte. Sunt trei speciale
Cuvinte cheie: toate pentru a activa toate opțiunile, nici unul pentru a le opri pe toate și ajutor la
tipăriți lista tuturor cuvintelor cheie cu o scurtă explicație a fiecăruia. Dacă listă is
omis, -mkhtml este echivalent cu -mkhtml=documente (adică produceți documentul HTML
fișiere folosind opțiunile implicite) și -nomkhtmls este echivalent cu -mkhtml=niciunul.

De dragul simplității, opțiunile pentru -mkhtml sunt aceleasi cu cele pentru
-madecls cu excepția celor care sunt inaplicabile. La fel, o formă numerică a
poate fi folosită această setare, formată ca sumă a numerelor din paranteze din
lista de mai jos. Cuvintele cheie de avertizare cu semnificațiile lor sunt următoarele:

documente (1):
Creați documentele HTML. (Acest lucru este implicat de oricare dintre celelalte opțiuni și
poate fi omis dacă sunt oferite alte opțiuni.)

compact (4):
Declarațiile sunt în mod normal destul de imprimate pentru a se alinia perfect în comun
coloane. Această valoare a opțiunii selectează în schimb o ieșire compactă, fără coloană
aliniere.

linii-continuare-utilizare (8):
Determină utilizarea liniilor de continuare în loc să înceapă o nouă declarație
pe fiecare linie. Această opțiune este adecvată pentru a fi utilizată împreună cu compact.

cuvinte cheie-minuscule (16):
Trimiteți cuvintele cheie Fortran cu litere mici, în loc de majuscule implicite.

vars-and-consts-minuscule (32):
Variabilele de ieșire și constantele cu litere mici, în loc de cele implicite
majuscule. Constantele șirurilor de caractere nu sunt afectate de această opțiune.

exclude-sftran3 (64):
Omiteți declarațiile variabilelor întregi interne produse de SFTRAN3
preprocesor, xsf3(1L). (Vedea -madecls pentru discutie.)

suprima-matrice-dimensiuni (512):
Suprimați dimensionarea tablourilor în declarațiile generate. Aceasta este
în mod normal, nedorit, dar este disponibil dacă dintr-un motiv oarecare nu doriți
dimensiunile matricei să apară în HTML.

liber de la (1024):
Produceți declarații variabile în formă gratuită. Acest mod este
folosit automat dacă sursa de intrare este liberă. Acest lucru afectează în principal
formă de linii de continuare dacă sunt folosite.

Vezi de asemenea şi: -calltree, -madecls.

-novice
Acest steag este menit să ofere rezultate mai utile pentru începători. Are două
efecte:

(a) furnizează un mesaj suplimentar în sensul că o funcție care este utilizată, dar nu
definit oriunde ar putea fi o matrice pe care utilizatorul a uitat să o declare într-un
Instrucțiunea DIMENSION (deoarece sintaxa unei referințe de matrice este aceeași cu aceea
a unei referințe de funcție).

(b) modifică forma mesajelor de eroare și avertismentelor. Dacă steagul este întors
oprit de -novice, aceste mesaje sunt tipărite într-un stil mai asemănător UNIX
scamă.

Implicit = da.

-ieșire=nume de fișier
Această setare este oferită pentru comoditate pe sistemele care nu permit utilizarea simplă
redirecționarea rezultatelor din programe. Când este dată această setare, ieșirea care
apare în mod normal pe ecran va fi trimis în schimb la fișierul numit. Notă,
cu toate acestea, că erorile operaționale ale ftnchek în sine (de exemplu, din spațiu sau nu poate
fișier deschis) va fi trimis în continuare pe ecran. Extensia pentru numele fișierului este
opțional, iar dacă nu se oferă nicio extensie, extensia .lis va fi folosit.

-pointers size=o
Specifică dimensiunea unei variabile ``Cray pointer'' o octeți. Implicit = turn-
activat = 4 octeți.

Dimensiunea indicatorului este utilizată pentru a informa avertismentele de nepotrivire de precizie care implică indicatorul
variabile, de exemplu atunci când unui pointer i se atribuie o valoare dintr-o alocare
rutină sau transmis ca parametru de subprogram.

Vezi de asemenea şi: -f77, -portabilitate, -trunchiere, -dimensiunea cuvintelor.

-portabilitate=listă
ftnchek va da avertismente pentru o varietate de utilizări non-portabile. Exemplele includ
utilizarea filelor, cu excepția comentariilor sau în interiorul șirurilor de caractere, utilizarea Hollerith
constante și echivalarea variabilelor de diferite tipuri de date. Această opțiune
nu produce avertismente pentru extensiile acceptate la standardul Fortran 77,
care poate cauza, de asemenea, probleme de portabilitate. Pentru a le prinde, folosiți -f77 setare.
În mod implicit, toate avertismentele sunt dezactivate.

Această setare oferă control detaliat asupra avertismentelor despre posibila portabilitate
Probleme. listă constă din cuvinte cheie separate prin virgule sau două puncte. Sunt
trei cuvinte cheie speciale: toate pentru a activa toate avertismentele despre utilizări neportabile,
nici unul pentru a le opri pe toate și ajutor pentru a tipări lista tuturor cuvintelor cheie cu a
scurtă explicație a fiecăruia. Dacă listă este omis, -portabilitate este echivalent cu
-portabilitate=toate, și -noportabilitatea este echivalent cu -portabilitate=niciuna.
cuvintele cheie de avertizare cu semnificațiile lor sunt următoarele:

backslash:
Caracter backslash în șiruri. Deoarece unii compilatori tratează bara oblică inversă ca
un caracter de evadare, prezența acestuia poate cauza probleme chiar dacă este folosit
într-un mod conform standardului.

comun-aliniere:
Variabilele bloc COMUNE nu sunt în ordinea descrescătoare a dimensiunii stocării. niste
compilatorii necesită această ordine din cauza cerințelor de aliniere a stocării.

hollerith:
Constante Hollerith (altele decât în ​​cadrul specificațiilor FORMAT). The Hollerith
tipul de date este o caracteristică a Fortran IV care a fost ștearsă în Fortran 77
standard. Este înlocuit de tipul de date caracter. Stocarea Hollerith
datele din variabile de tip de date numerice sau logice nu sunt portabile din cauza
dimensiuni diferite ale cuvintelor.

cu șnur lung:
Constante de șir, variabile sau expresii de peste 255 de caractere.

echivalență mixtă:
Variabile de diferite tipuri de date echivalente.

de dimensiuni mixte:
Variabilele declarate cu precizie implicită utilizate cu variabilele date explicit
precizie, în expresii, sarcini sau ca argumente. De exemplu, dacă a
variabila declarată ca REAL*8 este tratată ca echivalent cu PRECIZIUNE DUBLĂ.

real-do:
Indicele și limitele buclei DO care nu sunt întregi. Acestea pot cauza rezultatele unui program
depinde de caracteristicile hardware ale computerului utilizat.

param-implicit-tip:
Tastarea implicită a unui parametru după tipul de date al valorii atribuite, dacă acesta
diferă de tipul implicit. Acest avertisment poate apărea numai dacă este implicit
tastarea parametrilor a fost activată de -source=param-implicit-type
opțiunea, sau dacă instrucțiunea PARAMETER este de formă nestandard fără
parantezele. Dacă această opțiune este activată, atunci toate cazurile au fost implicite
are loc tastarea parametrilor și unde tipul implicit este diferit de
tipul implicit bazat pe prima literă a numelui parametrului, va fi avertizat
despre. Tastarea implicită a parametrilor poate schimba semantica instrucțiunilor
unde este utilizat parametrul, provocând probleme de portabilitate.

fila: file în codul sursă. Filele sunt interpretate diferit de diferite
compilatoare. Acest avertisment va fi dat o singură dată, la finalul dosarului.

Vezi de asemenea şi: -f77, -f90, -f95, -frumos, -Stil, -dimensiunea cuvintelor.

-frumos=listă
Controlează anumite mesaje legate de aspectul codului sursă. Acestea avertizează
despre lucruri care ar putea face un program mai puțin lizibil sau ar putea fi înșelător pentru cititor.
În mod implicit, toate avertismentele sunt activate.

Această setare oferă control detaliat asupra avertismentelor despre aspect. The
listă constă din cuvinte cheie separate prin virgule sau două puncte. Deoarece toate avertismentele sunt activate
în mod implicit, includeți un cuvânt cheie prefixat de nO- pentru a dezactiva un anumit avertisment.
Există trei cuvinte cheie speciale: toate pentru a activa toate avertismentele despre inducerea în eroare
aparențe, nici unul pentru a le opri pe toate și ajutor pentru a tipări lista tuturor
cuvinte cheie cu o scurtă explicație a fiecăruia. Dacă listă este omis, -frumos is
echivalent cu -pretty=toate, și - deloc frumos este echivalent cu -drăguță=niciuna.
cuvintele cheie de avertizare cu semnificațiile lor sunt următoarele:

alternativ-retur:
O instrucțiune RETURN are o constantă care specifică un punct de întoarcere alternativ care
nu este între 0 și numărul de argumente fictive care sunt etichete. Aceasta este
legală și are același efect ca o RETURNARE fără returnare alternativă
expresie, dar sugerează că programatorul a intenționat să folosească o alternativă
etichetă de returnare care nu este furnizată.

spațiu încorporat:
Spațiu încorporat în nume de variabile sau în operatori cu mai multe caractere, cum ar fi **.

continuare:
Semn de continuare după o linie de comentariu.

linie lunga:
Liniile (cu excepția comentariilor) peste 72 de coloane în lățime (dincolo de 72 este în mod normal
ignorat de compilator).

lipsă-spațiu:
Lipsa de spațiu între variabilă și un cuvânt cheie precedent.

multiple-comune:
Bloc COMUN declarat în mai multe instrucțiuni. Nu este dat niciun avertisment dacă
declarațiile sunt consecutive, cu excepția rândurilor de comentarii.

liste de nume multiple:
NAMELIST declarată în mai multe instrucțiuni. Nu este dat niciun avertisment dacă
declarațiile sunt consecutive, cu excepția rândurilor de comentarii.

paranteze:
Paranteze în jurul unei variabile în sine. Ca argument de subprogram, acesta
face din argument o expresie, nemodificabilă de către subprogram.

Rețineți că, în formă de sursă gratuită, spațiul suplimentar și spațiul lipsă sunt interzise de
Fortran 90 Standard și nu sunt simple încălcări ale stilului. În acest caz avertismentele
sunt înlocuite cu mesaje de eroare de sintaxă și pot fi dezactivate numai prin utilizarea
-nocheck.

Vezi de asemenea şi: -f77, -portabilitate, -Stil.

-proiect=listă
ftnchek va crea un fișier de proiect din fiecare fișier sursă care este introdus în acest timp
opțiunea este activată. Fișierul de proiect va primi același nume ca și intrarea
fișier, dar cu extensia .f or .pentru inlocuit de .prj. (Dacă intrarea este de la
intrare standard, fișierul de proiect este numit ftnchek.prj.) Implicit = niciunul.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Se află trei
cuvinte cheie speciale: toate pentru a activa toate opțiunile, nici unul pentru a le opri pe toate și
ajutor pentru a tipări lista tuturor cuvintelor cheie cu o scurtă explicație a fiecăruia. Dacă
listă este omis, proiect este echivalent cu -proiect=toate, și -nici un proiect is
echivalent cu -proiect=niciunul. Cuvintele cheie cu semnificațiile lor sunt următoarele:

crea:
Produceți un fișier de proiect. Implicit nu se produce un fișier de proiect. Dacă
această opțiune nu este activată, celelalte opțiuni nu au niciun efect.

trim-calls:
Tăiați cantitatea de informații stocate în fișierul de proiect despre subprogram
declarații și apeluri. Aceasta este valoarea implicită. Dezactivați această opțiune numai în
situații rare. (Consultați discuția de mai jos.) Cantitatea de tăiere variază
depinzând de -bibliotecă steag. Mai multe informații sunt tăiate dacă acel steag este
pornit.

trim-comun:
Tăiați numărul de declarații de bloc comune stocate în fișierul de proiect.
Aceasta este valoarea implicită. Dezactivați această opțiune numai în situații rare. (Vedea
discuție de mai jos.) Această opțiune nu are efect dacă -bibliotecă steagul este întors
off: atunci când nu este în modul bibliotecă, nu se efectuează tăierea declarațiilor de bloc comune
făcut indiferent de această opțiune.

Un fișier de proiect conține un rezumat al informațiilor din fișierul sursă, pentru utilizare în
verificarea acordului între utilizările FUNCTION, SUBROUTINE și COMMON în alte fișiere.
Permite verificarea incrementală, ceea ce economisește timp ori de câte ori aveți un set mare de
fișiere care conțin subrutine partajate, dintre care majoritatea se modifică rar. Poți să alergi
ftnchek o dată pe fiecare fișier cu proiect set de flag, creând fișierele de proiect.
De obicei, ați seta și -bibliotecă și -noextern steaguri în acest moment, să
suprimați mesajele referitoare la coerența cu alte fișiere. Doar mesaje de eroare
aferent fiecărui fișier în sine va fi tipărit în acest moment. După aceea, fugi
ftnchek fără aceste steaguri pe toate fișierele de proiect împreună, pentru a verifica consistența
dintre diferitele dosare. Toate mesajele interne ale fișierelor individuale vor fi acum
fi omis. Doar atunci când un fișier este modificat, va trebui creat un nou fișier de proiect
pentru aceasta.

Desigur, când proiect opțiunea este activată, ftnchek nu va citi proiectul
fișiere ca intrare.

De obicei, opțiunile de tăiere ar trebui lăsate activate atunci când intenționați să creați un proiect
fișiere pentru introducere ulterioară în ftnchek. Deoarece decuparea este activată în mod implicit, aceasta înseamnă
care pur și simplu dând comanda proiect fără lista de opțiuni este recomandată
modul. Opțiunile de tăiere sunt oferite doar ca o comoditate pentru cei care doresc
utilizați fișierele de proiect în alte scopuri decât verificarea programului cu
ftnchek. Pentru a utiliza fișierele de proiect în scopul propus, opțiunile de tăiere ar trebui
să nu fie oprit.

Fișierele de proiect conțin doar informații necesare pentru verificarea acordului dintre fișiere.
Aceasta înseamnă că un fișier de proiect nu este de nici un folos dacă toate modulele programului complet
sunt cuprinse într-un singur fișier.

O discuție mai detaliată este dată în secțiunea despre Utilizarea fișierelor de proiect.

-pur
Să presupunem că funcțiile sunt „pure”, adică nu vor avea efecte secundare prin modificare
argumentele sau variabilele lor într-un bloc COMUN. Când acest steag este în vigoare,
ftnchek își va baza determinarea statutului set și utilizat al argumentelor reale
presupunând că argumentele transmise unei funcții nu sunt modificate. Se va
de asemenea, emite un avertisment dacă se găsește că o funcție modifică oricare dintre argumentele sale sau oricare
Variabile COMUNE. Implicit = da.

Când acest flag este dezactivat, argumentele reale transmise funcțiilor vor fi gestionate
la fel ca argumentele reale transmise subrutinelor. Aceasta înseamnă că ftnchek
va presupune că argumentele pot fi modificate de funcții. Nu vor fi avertismente
dat dacă se constată că o funcție are efecte secundare. Pentru că o verificare mai strictă este
posibil dacă funcțiile sunt presupuse a fi pure, ar trebui să dezactivați acest indicator numai dacă
programul dvs. folosește de fapt funcții cu efecte secundare.

-Liniște
Această opțiune reduce cantitatea de ieșire legată de funcționarea normală, astfel încât
mesajele de eroare sunt mai evidente. Această opțiune este oferită pentru confortul
utilizatorii care verifică suite mari de fișiere. Ieșirea eliminată include
numele fișierelor de proiect și mesajul care raportează că nu au fost găsite erori de sintaxă.
De asemenea, elimină unele linii goale care sunt de obicei incluse pentru claritate. (Niste
a acestei ieșiri este reactivată de către -listă și -simtab opțiuni.) Implicit = nr.

Notă: modul de a vă aminti diferența dintre -Liniște și -scurt este faptul că
-Liniște nu suprimă nicio informație legată de avertismente, în timp ce -scurt nu.

Vezi de asemenea şi: -scurt.

-referinţă
Specifică faptul că un tabel cine-apelează-cine să fie tipărit. Acest tabel listează fiecare subprogram
urmată de o listă a rutinelor pe care le apelează. Acest comutator este echivalent cu
-calltree=referință. Implicit = nu.

Lista de referințe omite rutinele apelate de modulele bibliotecii neutilizate. Asa e
conține aceleași informații ca și pentru formatul call-tree, și anume ierarhia lui
apeluri de subprogram, dar tipărite într-un mod diferit. Acest lucru tipărește mai întâi pe lățime
parcurgerea arborelui de apeluri întrucât -calltree=copac tipărește mai întâi adâncimea
traversare.

Vezi de asemenea şi: -calltree, -ref încrucișat, -bibliotecă, -fel, -simtab, -vcg.

-resurse
Imprimă cantitatea de resurse utilizate de ftnchek la procesarea programului. Acest
listarea poate fi utilă în analiza mărimii și complexității unui program. Se poate
ajuta de asemenea in alegerea dimensiunilor mai mari pt ftnchekmesele interne ale lui dacă sunt și ele
mic pentru a analiza un anumit program. Implicit = nu.

În această listă, termenul „dimensiune bucată” este dimensiunea blocurilor de memorie
alocate pentru stocarea articolului în cauză, în unități de mărimea unui articol, nu
neapărat în octeți. Când spațiul alocat inițial este umplut, mai multă memorie
este alocat în bucăți de această dimensiune. Următoarea este o explicație a elementelor
imprimate:

Sursă linii procesat:
Numărul total de linii de cod, cu totaluri separate pentru liniile de instrucțiuni și
linii de comentarii. Rândurile de comentarii includ și rândurile cu „C” sau „*” în coloana 1
ca linii goale și linii care conțin doar un comentariu inline. Liniile de declarație
sunt toate celelalte rânduri, inclusiv liniile care au un comentariu în linie după unele
cod. Liniile de continuare sunt socotite ca linii separate. Liniile incluse
fișierele sunt numărate de fiecare dată când fișierul este inclus.

Total executabil declarații:
Numărul de instrucțiuni din program, altele decât specificații, date, instrucțiuni-
instrucțiunile de funcție, FORMAT, ENTRY și END.

Total număr of module:
Un modul este orice subprogram extern, inclusiv programul principal, subrutinele,
funcții și blocați unitățile de date. Acest număr este de module definite în
sursă, nu modulele la care se face referire. Funcțiile de declarație nu sunt incluse. A
subprogramul cu mai multe puncte de intrare este numărat o singură dată.

Total declaraţie etichete definit
Numărul de etichete atașate declarațiilor (numite adesea numere de declarații). The
Este dat numărul total de etichete pentru întregul program, precum și maximul
număr într-un singur subprogram.

max identificator nume caractere:
Numărul de caractere utilizate pentru stocarea numelor de identificare. Un identificator este a
nume variabilă, subprogram sau bloc comun. Numele locale sunt cele de local
variabilele dintr-un subprogram, în timp ce numele globale se referă la subprogram și comun
nume de bloc, precum și nume de argumente fictive și nume de variabile comune. Real
textul argumentului (până la 15 caractere pentru fiecare argument) este de asemenea inclus aici.
Spațiul folosit pentru numele locale nu este recuperat la sfârșitul fiecărui modul, deci
acest număr, ca și spațiul global, crește până când întregul program este analizat.
Din păcate, această cifră poate include un text stocat de mai multe ori,
deși se folosește o euristică care va evita în multe cazuri dublurile.

max semn a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. caractere:
Un token este cea mai mică unitate sintactică a limbajului FORTRAN deasupra nivelului
a personajelor individuale. De exemplu, un simbol poate fi un nume de variabilă, a
constantă numerică, un șir de text între ghilimele sau un caracter de punctuație. Jeton
textul este stocat în timp ce un modul este procesat. Din motive tehnice,
jetoanele cu un singur caracter nu sunt incluse în acest total. Articole care nu sunt
reprezentate în tabelul cu simboluri pot fi duplicate. Spațiul pentru textul indicativ este
recuperate la sfarsitul fiecarui modul, deci aceasta cifra reprezinta maximul pt
orice modul.

max local simboluri:
Acesta este cel mai mare număr de intrări din tabelul de simboluri locale pentru orice modul.
Intrările din tabelul de simboluri locale includ toate variabilele și parametrii, bloc comun
nume, funcții de instrucțiuni, subprograme externe și funcții intrinseci
la care face referire modul. Constantele literale nu sunt stocate în simbolul local
tabel.

max global simboluri:
Acesta este numărul de intrări din tabelul global de simboluri de la sfârșitul
prelucrare. Intrările din tabelul de simboluri globale includ subprograme externe și comune
nume de bloc. Funcțiile intrinseci și funcțiile de instrucțiuni nu sunt incluse.

max număr of liste de jetoane:
O listă de jetoane este o secvență de jetoane reprezentând argumentul real sau inactiv
lista unui subprogram sau lista de variabile dintr-un bloc comun sau lista de nume.
Prin urmare, acest număr reprezintă cea mai mare sumă de COMUN, CALL, NAMELIST și
Instrucțiuni ENTRY și invocări de funcții pentru orice modul. Spatiul este
recuperate la sfârşitul fiecărui modul.

max semn lista/arborele spaţiu:
Acesta este cel mai mare număr de jetoane din toate listele de jetoane și arbori de jetoane ale
orice modul. Se formează un arbore de simboluri atunci când se analizează o expresie: fiecare
operandul este o frunză a arborelui, iar operatorii sunt nodurile. Prin urmare aceasta
numărul este o măsură a complexității maxime a unui modul individual. Pentru
de exemplu, un modul cu multe expresii aritmetice lungi va avea un mare
număr. Rețineți că, spre deosebire de textul jetoanelor descris mai sus, numărul de jetoane este
independent de lungimea numelor de variabile sau a constantelor literale din
expresii.

Număr of subprogram invocari:
Aceasta este suma tuturor modulelor a numărului de instrucțiuni CALL și funcție
invocări (cu excepția funcțiilor intrinseci și a funcțiilor de instrucțiuni).

Număr of comun bloca declina:
Aceasta este suma tuturor modulelor a numărului de declarații de bloc comune.
Adică, fiecare declarație a unui bloc dintr-un modul diferit este numărată
separat. (Standardul permite declarații multiple ale unui bloc în cadrul
același modul; acestea sunt socotite ca o singură declarație din moment ce sunt
echivalent cu o singură declarație lungă.)

Număr of mulțime vag & PARAM ptrs:
Aceasta este suma peste toate modulele a numărului de dimensiune și parametru al matricei
șiruri de text de definiție salvate pentru utilizare de către -madecls opțiune. Lungimea de
șirurile de text nu sunt numărate. Fiecare dimensiune a unui tablou multidimensional este
numărate separat.

Aceste numere nu sunt, evident, aceleași atunci când fișierele de proiect sunt utilizate în loc de
codul sursă original. Chiar și cifrele pentru entitățile globale pot fi diferite,
întrucât unele informații redundante sunt eliminate în fișierele de proiect.

-sixchar
Unul dintre obiectivele ftnchek programul este de a ajuta utilizatorii să scrie Fortran portabil
programe. O sursă potențială de nonportabilitate este utilizarea numelor de variabile care
sunt mai lungi de șase caractere. Unii compilatori ignoră caracterele suplimentare.
Acest comportament ar putea duce la considerarea a două variabile diferite ca
la fel. De exemplu, variabilele numite AVERAGECOST și AVERAGEPRICE sunt aceleași
în primele șase caractere. Dacă doriți să prindeți astfel de posibile conflicte, utilizați
acest steag. Implicit = nu.

Folosește -f77=nume-lungi daca vrei sa faci lista toate variabile mai lungi de șase
personaje, nu doar acele perechi care sunt aceleași în primele șase.

Vezi de asemenea şi: -f77, -portabilitate.

-fel
Specifică ca o listă sortată a tuturor modulelor utilizate în program să fie tipărită. Acest
lista este în ordinea „precondiții”, adică fiecare modul este tipărit numai după toate
au fost tipărite modulele din care este numită. Aceasta se mai numește și a
``sortarea topologică'' a arborelui de apeluri. Fiecare modul este listat o singură dată. Rutine
care nu se află în arborele de apeluri al programului principal sunt omise. Dacă există
cicluri în graficul de apel (ilegal în Fortran standard) vor fi detectate și
diagnosticat. Implicit = nu.

Vezi de asemenea şi: -calltree, -ref încrucișat, -referinţă, -simtab, -vcg.

-sursa=listă
Această setare controlează anumite opțiuni despre forma codului sursă Fortran.
listă constă din cuvinte cheie separate prin virgule sau două puncte. Se află trei
cuvinte cheie speciale: toate pentru a activa toate opțiunile, nici unul pentru a le opri pe toate și
ajutor pentru a tipări lista tuturor cuvintelor cheie cu o scurtă explicație a fiecăruia. Dacă
listă este omis, -sursă este echivalent cu -sursa=toate, și -nicio sursa este echivalent
la -sursa=niciuna.

Pentru compatibilitate cu versiunile anterioare ale ftnchek, o formă numerică a acestei setări
este de asemenea acceptat: the listă se înlocuiește cu un număr care este suma numerelor
între paranteze lângă cuvintele cheie din lista următoare. (Cel fixată și gratuit
opțiunile nu au valori numerice.) Cuvintele cheie de avertizare cu semnificațiile lor sunt
după cum urmează:

fixată:
Interpretați sursa ca formă fixă ​​(cu extensii acceptate, cum ar fi
semnul exclamării pentru comentarii). Declarațiile trebuie să fie în coloanele de la 7 la 72
(cu excepția cazului în care -col setarea a fost folosită pentru a schimba aceasta), iar spațiile nu sunt
context semnificativ în afara caracterului (dar avertizat despre sub -frumos
opțiune). Acesta este modul implicit, cu excepția cazului în care extensia fișierului sursă este .f90
or .F90. această opțiune nu poate fi dată împreună cu -source=free.

gratuit: Interpretați sursa ca formă liberă. Declarațiile pot fi oriunde în coloanele 1
la 132, comentariile pot începe doar cu un semn de exclamare, iar spațiile libere sunt
necesar în unele locuri, cum ar fi între identificatori și cuvinte cheie. Aceasta este
modul implicit dacă extensia fișierului sursă este .f90 or .F90. Această opțiune
nu poate fi dat împreună cu -sursa=fix or -source=dec-tab

dec-tab (1):
Acceptați sursa formatată în filă în stil DEC. O linie care începe cu o filă inițială
va fi tratată ca o nouă linie de instrucțiune, cu excepția cazului în care caracterul de după tabulație este
o cifră diferită de zero, caz în care este tratată ca o linie de continuare. The
următoarea coloană după fila sau marcajul de continuare este considerată coloana 7. A
se va da avertizare în cazul în care linia este o continuare, dacă
-f77=dec-tab este în vigoare.

vms-include (2):
Acceptați declarațiile INCLUDE în stil VMS. Acestea urmează sintaxa normală, dar
cu următoarele caracteristici suplimentare: (1) extensia fișierului, dacă nu este dată,
implicit la aceeași extensie de fișier sursă normală; și (2) opțiunea
/LIST sau /NOLIST pot fi atașate la numele fișierului de includere, pentru a controla listarea
a continutului acestuia.

unix-backslash (4):
Gestionați evadările backslash în stil UNIX în șirurile de caractere. Evadarea
secvența după bara oblică inversă va fi evaluată conform ANSI
standard pentru șiruri în C: până la trei cifre semnifică o valoare octală, un x
semnifică începutul unei constante hexazecimale, oricare dintre literele abfnrt
semnifică coduri speciale de control și orice alt caracter (inclusiv linia nouă)
semnifică personajul în sine. Când această opțiune de cod sursă este în vigoare, a
se va avertiza dacă -f77=bară oblică inversă este specificată setarea.

Comportamentul implicit este de a trata bara oblică inversă ca orice alt normal
caracter, dar un avertisment despre portabilitate va fi generat dacă
-portabilitate steag este setat. Din cauza faptului că unii compilatori tratează
bară oblică inversă într-un mod nestandard, este posibil pentru conformitate cu standardul
programele să fie neportabile dacă folosesc caracterul backslash în șiruri.

Întrucât ftnchek nu face mare lucru cu șirul interpretat, este rar
necesar pentru a utiliza această opțiune. Este necesar pentru a evita falsurile
avertismente numai dacă (a) programul care este verificat folosește backslash pentru a încorpora un
apostrofați sau ghilimele într-un șir în loc să utilizați mecanismul standard
de dublare a delimitatorului; (b) bara oblică inversă este folosită pentru a scăpa de sfârșitul
linie pentru a continua un șir pe mai multe linii sursă; sau (c) a
Definiția PARAMETER folosește o funcție intrinsecă șir, cum ar fi LEN cu astfel de
un șir ca argument și acea valoare este folosită ulterior pentru a defini matricea
dimensiuni, etc.

param-implicit-tip (8):
Tastarea implicită a unui parametru după tipul de date al valorii atribuite. niste
compilatoarele non-standard pot permite tipului de date al valorii să suprascrie
Tipul implicit Fortran 77 al unui parametru care se bazează pe prima literă a
numele parametrului. Această opțiune se aplică numai instrucțiunilor PARAMETER ale
forma standard care are paranteze. Un parametru care a fost explicit
declarată într-o instrucțiune de tip înainte de instrucțiunea PARAMETER nu este afectată
prin această opțiune. Un avertisment va fi dat sub -f77=tip-param-implicit
or -portability=param-implicit-type opțiune.

Rețineți că această tastare implicită este tratată ca echivalent cu un tip explicit
declarație pentru parametru. Prin urmare, dacă utilizați
-makedcls=numai nedeclarate să genereze declaraţii numai de nedeclarate
variabile, acești parametri vor nu a fi inclus.

dec-param-tip-standard (16):
Urmați regula Fortran 77 pentru tastarea datelor pentru parametrii stilului DEC Fortran.
Acestea sunt declarate folosind o formă nestandard a instrucțiunii PARAMETER care
lipsesc parantezele. Conform DEC Fortran, parametri definiți prin acest formular
ale declarației au tipul de date dat de tipul de date al valorii
atribuit. Utilizați această opțiune pentru a spune ftnchek să nu urmeze această regulă dar
în schimb să folosiți aceeași regulă ca și pentru instrucțiunile standard PARAMETER. Acest
opțiunea nu se aplică instrucțiunilor PARAMETER din formularul standard.

În mod implicit, toate aceste opțiuni de cod sursă sunt dezactivate, cu excepția
vms-include opțiunea, care este activată implicit în versiunea VMS..

Vezi de asemenea şi: -f77, -include, -portabilitate.

-stil=listă
Oferă avertismente extrem de pretențioase despre programarea învechită sau de modă veche
constructii. Această opțiune este utilă pentru eforturile de a urma o programare modernă
stil. (Majoritatea lucrurilor reclamate în cadrul acestei opțiuni sunt interzise în
F submult limba.) By Mod implicit, toate avertismente sunt avansat off.

listă constă din cuvinte cheie separate prin virgule sau două puncte. Se află trei
cuvinte cheie speciale: toate pentru a activa toate opțiunile, nici unul pentru a le opri pe toate și
ajutor pentru a tipări lista tuturor cuvintelor cheie cu o scurtă explicație a fiecăruia. Dacă
listă este omis, -Stil este echivalent cu -style=toate, și -nostyle este echivalent cu
-style=niciunul. Cuvintele cheie de avertizare cu semnificațiile lor sunt următoarele:

bloc-daca:
Plângeți-vă despre declarația aritmetică IF. Acceptați IF bloc sau IF logic (care
controlează o singură declarație).

construct-nume:
Reclamați-vă despre constructele bloc fără nume: IF, DO și SELECT CASE. Rețineți că
dacă un nume de construct este prezent pe instrucțiunea de deschidere a unui construct, atunci
este necesar să fie prezent în toate celelalte instrucțiuni ale componentelor (ELSE, END IF,
etc.) a constructului. În acest caz, un nume de construcție lipsește pe acelea
instrucțiuni generează o eroare de sintaxă, indiferent de această opțiune. Scopul
a acestei opțiuni este de a avertiza dacă constructul nu are complet opționalul
nume.

distinct-do:
Reclamați-vă dacă două bucle DO au o declarație de terminare comună.

a-construi:
Reclamați dacă terminatorul unei bucle DO este altceva decât un END DO sau
Declarația CONTINUE. Aceasta este cerința pentru ca bucla să se îndeplinească
definiția Fortran 90 a unui do-construct.

do-enddo:
Reclamați dacă terminatorul unei bucle DO este altceva decât un END DO
afirmație. (Această opțiune înlocuiește a-construi opțiune, fiind egal
mai strict.)

nume final:
Plângeți-vă de absența numelui subprogramului pe END structurat
declarații.

format-stmt:
Plângeți-vă de prezența instrucțiunilor FORMAT. Doar instrucțiunile FORMAT
ei înșiși sunt marcați, nu referințele la ele în listele I/O.

goto: Plângeți-vă de prezența GOTO necondiționat, calculat sau atribuit
declarații. De asemenea, se plâng de returnările alternative (dar nu de etichete ca
argumente ale subprogramului).

etichetat-stmt:
Plângeți-vă de prezența etichetelor (numerelor) pe alte afirmații decât
instrucțiuni FORMAT. (Deoarece instrucțiunile FORMAT sunt, fără îndoială, convenabile și nu
ușor abuzate, plângerile despre ele sunt controlate de către separat
format-stmt cuvânt cheie.)

program-stmt:
Plângeți-vă de absența unei declarații PROGRAM în fruntea principalului
programul.

sfarsit structurat:
Plângeți-vă de utilizarea unei instrucțiuni simple END pentru a încheia un subprogram, mai degrabă
decât o instrucțiune END structurată (END PROGRAM, END SUBROUTINE, END FUNCTION,
sau END BLOC DATE).

Vezi de asemenea şi: -f77, -f90, -f95, -frumos, -portabilitate.

-simtab
Pentru fiecare modul va fi tipărit un tabel cu simboluri, care listează toți identificatorii
mentionate in modul. Acest tabel oferă numele fiecărei variabile, tipul ei de date,
și numărul de dimensiuni pentru matrice. Un asterisc (*) indică faptul că
variabila a fost introdusă implicit, în loc să fie numită într-un tip explicit
declarație. Tabelul listează, de asemenea, toate subprogramele invocate de modul,
toate blocurile COMUNE declarate etc. Implicit = nr.

De asemenea, pentru fiecare modul, se va imprima un tabel de etichete. Tabelul listează fiecare etichetă
definite în modul; linia pe care este definită eticheta de declarație; si
tipul de instrucțiune (executabil, format sau specificație). Etichetele sunt listate în
Ordine secvențială.

De asemenea, este tipărit un tabel care descrie unitățile I/O utilizate de modul, împreună cu
informații despre modul în care sunt utilizate: ce operațiuni sunt efectuate, dacă
accesul este secvenţial sau direct şi dacă I/O este formatat sau neformatat.

Vezi de asemenea şi: -calltree, -ref încrucișat, -listă, -referinţă, -fel, -vcg.

-truncare=listă
Avertizați despre posibilele erori de trunchiere (sau rotunjire). Cele mai multe dintre acestea sunt legate de
aritmetica intregi. În mod implicit, toate avertismentele sunt activate.

Această setare oferă control detaliat asupra avertismentelor despre posibila trunchiere
erori. The listă constă din cuvinte cheie separate prin virgule sau două puncte. Din moment ce toate
avertismentele sunt activate în mod implicit, includ un cuvânt cheie prefixat de nO- a opri a
avertisment special. Există trei cuvinte cheie speciale: toate pentru a porni toate
avertismente despre trunchiere, nici unul pentru a le opri pe toate și ajutor pentru a tipări lista de
toate cuvintele cheie cu o scurtă explicație a fiecăruia. Dacă listă este omis, -trunchiere
este echivalent cu -truncare=toate, și -netruncarea este echivalent cu
-truncare=niciuna. Cuvintele cheie de avertizare cu semnificațiile lor sunt următoarele:

int-div-exponent:
utilizarea rezultatului împărțirii întregi ca exponent. Aceasta sugerează că a
se intenționează coeficientul real. Un exemplu ar fi scrierea X**(1/3) pentru a evalua
rădăcina cubă a lui X. Expresia corectă este X**(1./3.).

int-div-real:
Conversia unei expresii care implică o diviziune întreagă în real. Acest
sugerează că este intenționat un coeficient real.

int-div-zero:
împărțirea într-o expresie constantă întreagă care dă un rezultat de zero.

int-neg-putere:
exponențiarea unui număr întreg cu un număr întreg negativ (care dă zero, cu excepția cazului în care
întregul de bază este 1 ca mărime). Acest lucru sugerează că o bază reală este
intenționat.

de promovare:
conversia automată a unei cantități de precizie mai mică într-una de mai mare
precizie. Pierderea preciziei pentru variabilele reale în acest proces este
comparabil cu retrogradarea corespunzătoare. Nu se acordă niciun avertisment pentru promovare
de cantități întregi la real, deoarece aceasta este de obicei exactă.

real-do-index:
utilizarea unui index DO non-intreg într-o buclă cu limite întregi. Un număr întreg DO
indexul cu limite reale este întotdeauna avertizat, indiferent de această setare.

indice real:
utilizarea unui indice de matrice non-întreg.

cifre semnificative:
supraspecificarea unei singure constante de precizie. Acest lucru poate indica faptul că un dublu
a fost intenționată constanta de precizie.

mărime-degradare:
conversia automată a unei cantități de precizie mai mare într-una de precizie mai mică
de acelasi tip. Acest avertisment apare numai atunci când este utilizată o dimensiune explicită în
declararea tipului unuia sau ambilor operanzi dintr-o atribuire. De exemplu, a
va fi emis un avertisment atunci când o variabilă REAL*8 este atribuită unei variabile REAL,
dacă dimensiunea implicită a cuvintelor de 4 este în vigoare. De asemenea, se emite un avertisment dacă a
întregul lung este atribuit unuia mai scurt, de exemplu, dacă este un INTEGER
expresia este atribuită unei variabile INTEGER*2. Există o excepție de la
acest ultim caz, și anume dacă partea dreaptă a misiunii este mică
constantă literală (mai puțin de 128). tip-retrogradare: conversia automată a unui
cantitate de precizie mai mare la una de precizie mai mică de tip diferit. Acest
avertismentul include conversia cantităților reale în număr întreg, precizie dublă
la o singură precizie reală și atribuirea unui șir de caractere mai lung la a
unul mai scurt.

Avertismentele despre promovare și retrogradare se aplică și unor constante complexe,
considerând că precizia este cea a părții reale sau imaginare. Avertismente despre
promoțiile și retrogradările sunt date numai atunci când conversia se face automat,
de exemplu, în expresii de precizie mixtă sau într-o declarație de atribuire. Dacă intrinsec
funcții precum INT sunt utilizate pentru a efectua conversia, nu este dat niciun avertisment.

Vezi de asemenea şi: -portabilitate, -dimensiunea cuvintelor.

-utilizare=listă
Avertizați despre variabile neutilizate sau posibile neinițializate, blocuri comune neutilizate,
etichete de instrucțiuni nedefinite sau neutilizate și subprograme neutilizate sau nedefinite. De
implicit, toate avertismentele sunt activate.

Această setare oferă control detaliat asupra avertismentelor despre posibila utilizare
erori. The listă constă din cuvinte cheie separate prin virgule sau două puncte. Din moment ce toate
avertismentele sunt activate în mod implicit, includ un cuvânt cheie prefixat de nO- a opri a
avertisment special. Există trei cuvinte cheie speciale: toate pentru a porni toate
avertismente despre utilizare, nici unul pentru a le opri pe toate și ajutor pentru a tipări lista tuturor
cuvintele cheie cu o scurtă explicație a fiecăruia. Dacă listă este omis, -utilizare is
echivalent cu -utilizare=toate, și -mușcată este echivalent cu -utilizare=niciuna. Acestea
avertismentele acoperă patru categorii principale de obiecte: argumente dummy ale subprogramului, comune
blocuri și variabile, subprograme și funcții și variabile locale. Avertizări
include articole nedefinite, elemente definite multiplicate, articole neutilizate etc. Avertismentul
cuvintele cheie cu semnificațiile lor sunt următoarele:

arg-alias:
un argument fals scalar este de fapt același cu altul și este (sau poate fi)
modificat. Standardul Fortran 77 (secțiunea 15.9.3.6) interzice modificarea unui
argument care este alias altuia.

arg-array-alias:
un argument fals care este o matrice sau un element de matrice este în aceeași matrice ca
alta si se modifica. Acest steag este similar cu arg-alias dar oferă
control separat asupra argumentelor matricei. Este mai greu de spus dacă aliasing este
care apar în cazul tablourilor, deci dacă ftnchek dă prea multe avertismente false,
acest flag permite dezactivarea celor legate de matrice fără a fi suprimate
avertismentele pentru scalari.

arg-common-alias:
un argument inactiv scalar este același cu o variabilă comună din subprogram,
și oricare este modificat. Acest lucru este, de asemenea, interzis de standardul Fortran 77.
Dacă verificarea comună nu este exactă (vezi -uzual setare), este mai greu
spuneți dacă are loc aliasing, astfel încât avertismentul este dat dacă variabila este
oriunde într-un bloc comun care este declarat de subprogram.

arg-common-array-alias:
un argument inactiv care este o matrice sau un element de matrice este în aceeași matrice cu a
variabilă comună și oricare este modificată. Dacă verificarea comună nu este exactă,
variabila poate fi oriunde într-un bloc comun care este declarat de către
subprogram.

arg-const-modificat:
un subprogram modifică un argument care este o constantă sau o expresie. Astfel de
o acțiune ar putea provoca un comportament anormal al programului.

arg-nefolosit:
un argument fals este declarat, dar nu este niciodată folosit. Aceasta este similară cu
var-nefolosit cuvântul cheie descris mai jos, dar se aplică numai argumentelor.

com-bloc-nefolosit:
un bloc comun este declarat, dar niciuna dintre variabilele din acesta nu este folosită de niciunul
subprogram. Acest avertisment este suprimat dacă setarea comună de strictețe este
0.

com-bloc-volatil:
un bloc comun poate pierde definiția conținutului său dacă blocurile comune sunt
volatil. Această opțiune are efect numai dacă -comun=volatil steagul este în
efect. Vezi discuția despre -uzual setare de mai sus.

com-var-set-nefolosit:
unei variabile comune i se atribuie o valoare, dar valoarea ei nu este folosită de nimeni
subprogram. Acest avertisment este suprimat dacă setarea comună de strictețe este
0.

com-var-neinițializat:
valoarea unei variabile comune este folosită în unele subprograme, dar nu este setată
oriunde. Din pacate, ftnchek nu face o analiză suficient de amănunțită a
secvența de apel pentru a ști care rutine sunt chemate înaintea altora. Asa de
avertismentele despre acest tip de eroare vor fi date numai pentru cazurile în care a
variabila este folosită într-o rutină, dar nu este setată în nicio altă rutină. Control
a variabilelor COMUNE individuale se face numai dacă -uzual setarea este 3
(variabil prin acord variabil). Acest avertisment este suprimat dacă este comun
setarea de strictețe este 0.

com-var-nefolosit:
o variabilă comună este declarată, dar nu este utilizată de niciun subprogram. Acest avertisment
este suprimată dacă setarea comună de strictețe este 0.

do-index-modificat:
o variabilă care este indexul unei bucle DO este modificată de o instrucțiune
în intervalul buclei. Standardul permite unei variabile DO active să
poate fi modificat numai de mecanismul de incrementare al instrucțiunii DO.

ext-multiplicare-definite:
o externă (o subrutină sau o funcție) este definită de mai multe ori. Definiție
a unui mijloc extern care furnizează corpul codului său sursă.

Ext-declared-only:
un nume este declarat într-o instrucțiune EXTERNAL într-un modul, dar nu este
definite sau folosite oriunde.

ext-nedefinit:
un extern este folosit (invocat) dar nu este definit nicăieri. Această opțiune este
echivalent cu -extern steag. Dacă subprogramul este invocat mai mult de
o dată, acele invocări vor fi în continuare verificate pentru coerență.

ext-nefolosit:
un extern este definit (corpul său subprogram este prezent) dar nu este utilizat.
Un subprogram este considerat neutilizat chiar dacă este invocat de altcineva
subprogram, dacă nu poate fi apelat din niciun fir de execuție începând cu
programul principal. Acordul argumentelor subprogramului cu acesta
invocațiile sunt încă verificate chiar dacă acest avertisment este dezactivat. Daca exista
nici un program principal, atunci acest avertisment este emis numai dacă subprogramul nu este
invocat oriunde. Acest avertisment este suprimat în modul bibliotecă, dar bibliotecă
modul are efectul suplimentar de a suprima verificarea argumentelor pentru neutilizate
rutine.

etichetă-nedefinită:
o declarație se referă la o etichetă care nu a fost definită.

etichetă-nefolosită:
o etichetă de declarație este definită, dar nu se face referire niciodată.

var-set-nefolosit:
unei variabile locale i se atribuie o valoare, dar această valoare nu este utilizată.

var-neinițializat:
valoarea unei variabile locale poate fi utilizată înainte de a fi atribuită. Uneori
ftnchek face o greșeală în avertismentele despre utilizarea variabilelor locale. De obicei
greșește pe partea de a da un avertisment acolo unde nu există nicio problemă, dar rareori
cazuri, poate să nu avertizeze unde există problema. Vezi secțiunea despre
Bug-uri de exemplu. Dacă variabilele sunt echivalente, regula folosită de ftnchek
este că o referire la orice variabilă implică aceeași referință la toate
variabile cu care este echivalat. Pentru matrice, regula este că o referire la
orice element de matrice este tratat ca referință la toate elementele matricei.

var-nefolosit:
o variabilă locală este declarată (de exemplu, într-o declarație de tip), dar nu este
utilizat în modul. Nu se aplică argumentelor false: avertismente despre ele
sunt controlate de cuvântul cheie arg-nefolosit descris mai sus.

Notă: În versiunile de ftnchek înainte de 2.10, -utilizare flag a luat un argument numeric
în loc de o listă de opțiuni. De dragul utilizatorilor care au scris scripturi
invocante ftnchek în acest fel, forma numerică este încă acceptată. Numericul
setarea este compusă din trei cifre. Prima cifră (locul sutelor) controlează
avertismente despre subprograme (funcții și subrutine), a doua cifră (zeci
loc) avertismente despre blocurile comune și variabilele comune și a treia cifră
(un loc) avertismente despre variabilele locale. Fiecare cifră controlează avertismentele
conform convenției conform căreia un 1 înseamnă avertizare despre elemente și variabile nedefinite
care sunt utilizate înainte de setare, un 2 înseamnă avertizează despre articolele care sunt neutilizate și un 3 înseamnă
avertizează despre ambele tipuri. Aceste numere sunt acum convertite în valorile corespunzătoare
pentru cuvintele cheie enumerate mai sus, cu excepția com-bloc-volatil, care nu este afectat
prin argumentul numeric.

Vezi de asemenea şi: -uzual, -declara, -extern, -bibliotecă.

-vcg
Produceți graficul apelului sub forma unei descrieri a graficului VCG. Această descriere este
scris într-un fișier separat, cu aceeași tulpină ca și fișierul care conține fișierul principal
program și sufix .vcg. Acest fișier poate fi dat direct către xvcg(1L) la
vizualizați graficul apelului. (Dacă intrarea este de la intrarea standard, atunci graficul
descrierea este trimisă la ieșirea standard.) Acest comutator este echivalent cu
-calltree=vcg. Implicit = nu.

Descrierea VCG așa cum a fost creată este mai complexă decât trebuie. VCG permite grafice
și subgrafe imbricate: fiecare subrutină este creată ca un subgraf imbricat în interiorul său
apelarea rutinelor. Acest lucru vă permite să afișați interactiv subgrafe sau să rezumați
Le.

-vcg opțiune pentru ftnchek a fost scrisă de dr. Philip Rubini din Cranfield
Universitatea, Marea Britanie.

xvcg este un instrument de vizualizare grafică care rulează sub sistemul X windows. Este
disponibil gratuit de pe ftp.cs.uni-sb.de. A fost scris de G. Sander de la
Universitatea din Saarland, Germania.

Vezi de asemenea şi: -calltree, -ref încrucișat, -referinţă, -fel.

-versiune
Această opțiune provoacă ftnchek pentru a tipări o linie care indică numărul versiunii, data lansării,
și nivelul de patch al programului. Dacă nu sunt date fișiere, se iese. Dacă fișierele
sunt date, efectul acestei opțiuni este de a include nivelul de patch (în mod normal
omis) în informațiile despre versiune tipărite la începutul procesării. Implicit =
nr.

Vezi de asemenea şi: -Ajutor.

-volatil
Să presupunem că blocurile COMUNE sunt volatile. Implicit = nu.

Acest steag este înlocuit de -comun=volatil, și nu ar trebui să mai fie folosit. Aceasta poate
fi eliminat într-o versiune viitoare a ftnchek.

Vezi de asemenea şi: -uzual, -utilizare.

-dimensiunea cuvintelor=o
Specifică dimensiunea implicită a cuvântului o octeți. Aceasta este dimensiunea logic și
variabile numerice cu precizie unică cărora nu li se oferă precizii explicite.
(Preciziile explicite pentru variabilele non-caracter sunt o extensie a Fortran 77
Standard și sunt date prin declarații de tip, cum ar fi REAL*8 X.) Dublă precizie
iar variabilele complexe vor fi de două ori mai mari decât această valoare, iar variabilele complexe duble de patru
ori. Constantele cu precizie cvadră și rezultatele funcției intrinseci vor fi de patru ori
această valoare. Rețineți că variabilele declarate ca REAL*16 vor fi considerate quad
precizie numai dacă dimensiunea cuvântului este de 4 octeți. Implicit = pornire = 4 octeți.

Valoarea mărimii cuvântului nu contează pentru verificarea programelor conforme cu standardul care
nu declarați precizări explicite pentru variabile fără caracter și nu stocați Hollerith
date în variabile. De asemenea, această setare nu afectează dimensiunea implicită a caracterului
variabile, care este întotdeauna de 1 octet. Se presupune, de asemenea, că ocupă constantele Hollerith
1 octet per caracter.

Mărimea cuvântului este utilizată pentru a determina dacă trunchierea are loc în alocare
declarații și pentru a detecta nepotrivirile de precizie în listele de argumente ale subprogramelor și
liste comune de blocare. Avertismentele exacte care sunt emise vor depinde de stare
a altor steaguri. Sub ambele -portabilitate=dimensiuni mixte si -nowordsize steag,
orice amestec de obiecte explicite cu precizie implicită (expresiile de caractere nu
inclus) este avertizat despre. Acest lucru se aplică expresiilor aritmetice care le conțin pe ambele
tipuri de obiecte și să subprogrameze argumente și variabile COMUNE. Sub control
a -truncare=retrogradare și de promovare opțiuni, este dat un avertisment pentru
atribuirea unei expresii unei variabile mai scurte de același tip sau pentru
promovarea unei valori mai mici de precizie la o precizie mai mare într-o aritmetică
expresie sau o declarație de atribuire.

Oferirea unei mărimi a cuvântului de 0 sau echivalent, folosind -nowordsize înseamnă că nu există implicit
se va presupune valoarea. Acest lucru este echivalent cu specificarea -portabilitate=dimensiuni mixte.
Folosiți-l pentru a găsi cazuri de amestecare implicită și precizie explicită, de exemplu pentru a semnaliza
locuri în care REAL*8 este tratat ca echivalent cu PRECIZIUNEA DUBLĂ.

Vezi de asemenea şi: -dimensiunea pointerelor, -portabilitate, -trunchiere.

-wrap=cu
Controlează împachetarea mesajelor de eroare. Mesaje de eroare lungi care ar trece
coloana specificată va fi împărțită în linii separate între cuvintele
mesaj pentru o mai bună lizibilitate. Dacă este oprit cu -acum, fiecare eroare separată
mesajul va fi tipărit pe o singură linie, lăsând la latitudinea afișajului să împacheteze
mesaj sau trunchiați-l. Implicit = pornire = 79.

SCHIMBARE THE IMPACT


ftnchek include două mecanisme de modificare a valorilor implicite ale tuturor opțiunilor: prin
definirea variabilelor de mediu sau prin crearea unui fișier de preferințe. Când ftnchek Pornește,
caută în mediul său orice variabile ale căror nume sunt compuse prin prefixarea lui
șirul FTNCHEK_ pe versiunea cu majuscule a numelui opțiunii. Dacă o astfel de variabilă este
găsit, valoarea sa este utilizată pentru a specifica valoarea implicită pentru comutatorul sau setarea corespunzătoare.
În cazul setărilor (de exemplu, aplicația -uzual setare de strictețe) valoarea
variabila de mediu este citită ca valoare implicită de setare. În cazul comutatoarelor,
comutatorul implicit va fi considerat adevărat sau da, cu excepția cazului în care variabila de mediu are valoarea
0 sau NU.

Rețineți că numele variabilei de mediu trebuie să fie construit cu opțiunea de lungime completă
numele, care trebuie să fie cu majuscule. De exemplu, a face ftnchek tipăriți o listă de surse de către
implicit, setați variabila de mediu FTNCHEK_LIST la 1 sau YES sau orice altceva decât 0 sau
NU. Numele FTNCHEK_LIS (nu numele complet al opțiunii) sau ftnchek_list (minuscule) ar
să nu fie recunoscut.

Iată câteva exemple despre cum să setați variabilele de mediu pe diferite sisteme. Pentru
simplitate, toate exemplele stabilesc valoarea implicită -listă comutați pe DA.

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

2. UNIX, C shell: % setenv FTNCHEK_LIST YES

3. VAX/VMS: $ DEFINE FTNCHEK_LIST YES

4. MSDOS: $ SET FTNCHEK_LIST=DA

După procesarea oricăror variabile de mediu, ftnchek caută un fișier de preferințe
conţinând opţiuni şi setări. Acesta va căuta în următoarea ordine, folosind numai
primul fișier găsit: (1) .ftnchekrc în directorul curent, (2) ftnchek.ini în curent
director, (3) .ftnchekrc în directorul principal al utilizatorului, (4) ftnchek.ini in casa
director. Dacă se găsește un astfel de fișier, opțiunile definite în el sunt utilizate ca implicite în
locul setărilor implicite încorporate și suprascriind orice setări implicite în mediu.

Fiecare opțiune sau setare din fișierul de preferințe trebuie să fie pe o linie separată. Ele sunt date
în aceeași formă ca pe linia de comandă, cu excepția fără liniuța inițială. Preferințele
fișierul poate conține rânduri goale și comentarii. Comentariile sunt introduse în orice punct al unei linii
printr-un caracter spațiu (gol sau tab) sau caracterul „#” și se termină până la sfârșitul lui
linia.

Opțiunile din linia de comandă înlocuiesc valorile implicite setate în mediu sau în preferințe
fișier, în același mod în care înlocuiesc valorile implicite încorporate.

UTILIZAREA PROIECT DOSARE


Această secțiune conține informații detaliate despre cum să utilizați cel mai eficient fișierele de proiect,
și cum să eviți unele capcane.

Se pot împărți cecurile ftnchek face în două categorii, local și global. Local
verificarea este limitată la o singură rutină și prinde lucruri precum neinițializate
variabile, pierderea neintenționată a preciziei în expresiile aritmetice etc. Acest fel de
verificarea se poate face pe fiecare subprogram independent. În plus, verificarea locală a a
subprogramul nu trebuie repetat atunci când alt subprogram este schimbat. Global
verificarea prinde lucruri precum apelarea unei subrutine cu tipuri de argument greșite sau
dezacord în declarațiile bloc comune. Este nevoie să se uite la întregul set de
subprograme care interacționează între ele.

Scopul fișierelor de proiect este de a permite verificarea locală și verificarea globală
fi separat. Presupunând că fiecare subprogram se află în propriul fișier sursă, puteți rula
ftnchek o dată pe fiecare pentru a face verificarea locală în timp ce se suprimă verificarea globală. Atunci
ftnchek poate fi rulat o dată pe toate fișierele de proiect împreună pentru a face verificarea globală. The
exemplu de makefile de mai jos arată cum să automatizați această sarcină. Ținta ``.f.prj'' se actualizează a
proiect pentru un anumit fișier oricând se modifică fișierul sursă. Informatia
necesar pentru verificarea globală este salvat în fișierul de proiect. Ținta ``verificarea'' face
verificare globală combinată. De obicei, ``make check'' va repeta ``ftnchek -project''
treceți numai pe fișierele sursă modificate, apoi faceți verificarea globală. Acesta este evident un mare
avantaj pentru programele mari, când multe subprograme se schimbă rar sau vreodată.

Cel mai bine este atunci când utilizați fișiere de proiect să plasați fiecare subprogram într-un fișier sursă separat.
Dacă fiecare fișier sursă poate conține mai mult de un subprogram, aceasta complică definiția
de verificare „locală” și „globală” deoarece există o verificare între module care este
conținute într-un fișier. ftnchek încearcă să facă ceea ce trebuie în acest caz, dar există
unele complicații (descrise mai jos) din cauza compromisului între evitarea refacerii
verifică și păstrează informații despre structura programului.

De obicei, pentru a face cea mai mică cantitate de re-verificare, fișierele de proiect ar trebui să fie create cu
il -bibliotecă steag în vigoare și decuparea activată. În acest mod, informațiile sunt salvate
în fișierul de proiect constă din toate declarațiile de subprogram, toate invocările de subprogram
nerezolvate prin declarații în același dosar, și câte o instanță a fiecărui bloc COMUN
declaraţie. Aceasta este cantitatea minimă de informații necesare pentru a verifica acordul între
fișiere.

Dacă fișierul sursă conține mai mult de o rutină, există unele probleme posibile care
poate apărea din crearea fișierului de proiect în modul bibliotecă, deoarece ierarhia de apelare
dintre rutinele definite în fișier se pierde. De asemenea, dacă rutinele din fișier fac
utilizarea blocurilor COMUNE care sunt partajate cu rutinele din alte fișiere, nu va exista
suficiente informații salvate pentru verificarea corectă a stării setate și utilizate a blocurilor COMUNE
și variabile COMUNE în funcție de -utilizare setare. Prin urmare, dacă intenționați să utilizați
fişierele de proiect când -utilizare verificarea este activată (care este situația implicită) și dacă
mai multe rutine dintr-un fișier de proiect partajează blocuri COMUNE cu rutinele din alte fișiere,
fișierele de proiect ar trebui create cu -bibliotecă steag stins. În acest mod,
ftnchek salvează, pe lângă informațiile enumerate mai sus, o invocare a fiecărui subprogram de către
orice alt subprogram din același fișier și toate declarațiile de bloc COMUNE. Aceasta înseamnă că
fișierul de proiect va fi mai mare decât este necesar și că atunci când este citit, ftnchek Mai
repetați câteva verificări între module pe care le-a făcut deja când a fost creat fișierul proiect. Dacă
fiecare fișier de proiect conține un singur modul, nu există pierderi de informații în creare
fișierele de proiect în modul bibliotecă.

Datorită posibilei pierderi de informații care implică crearea unui fișier de proiect cu
-bibliotecă flag în vigoare, ori de câte ori acel fișier de proiect este citit mai târziu, acesta va fi tratat
ca fișier de bibliotecă, indiferent de setarea curentă a -bibliotecă steag. Pe de altă parte
De asemenea, un fișier proiect creat cu modul bibliotecă dezactivat poate fi citit mai târziu în oricare dintre ele
Mod.

Discuția de mai sus presupune că opțiunile de tăiere ale proiect setarea sunt
pornit când este creat fișierul proiect. Aceasta este situația normală. The fără tăiere
opțiunile din proiect setările sunt furnizate în cazul în care se dorește să utilizeze fișierele de proiect
în alte scopuri decât verificarea programului cu ftnchek. De exemplu, s-ar putea scrie
un script Perl pentru a analiza fișierele de proiect pentru informații despre modul în care diferă
sunt numite subprograme. Nu ar trebui să utilizați fără tăiere opțiuni pentru a face față problemelor
pierderea de informații discutată mai sus, deoarece acestea provoacă mai multe informații decât este necesar
stocate. Acest lucru face fișierele de proiect mai mari și cauzează ftnchek pentru a lucra mai târziu când
le citește pentru a vă verifica programul complet. De obicei, ar trebui să utilizați -bibliotecă
opțiunea de a controla câte informații să stocheze pentru a fi utilizate ulterioară ftnchek în verificarea dvs
programul.

Iată un exemplu despre cum să utilizați UNIX face utilitar pentru a crea automat un nou
proiect de fiecare dată când fișierul sursă corespunzător este modificat și pentru a verifica setul de
fișiere pentru consecvență. Adăugați aceste rânduri la makefile. Exemplul presupune că a
A fost definită macro OBJS care listează toate numele fișierelor obiect care urmează să fie legate
împreună pentru a forma programul executabil complet. (În acest makefile, liniile indentate
ar trebui să înceapă fiecare cu o filă, nu spații libere.) Dacă orice fișier sursă conține mai multe rutine
care împart blocuri comune între ele, atunci opțiunea no-com-\* ar trebui eliminată
de la NOGLOBAL și/sau aruncați steag-ul -bibliotecă.
# spuneți make ce este un sufix de fișier de proiect
.SUFIXE: .prj

# aceste opțiuni suprimă verificările globale.
NOGLOBAL=-usage=no-ext-undefined,no-com-\*

# spuneți-le lui make cum să creați un fișier .prj dintr-un fișier .f
.f.prj:
ftnchek -proiect $(NOGLOBAL) -biblioteca $

# configurați macro PRJS care conține nume de fișiere de proiect
PRJS= $(OBJS:.o=.prj)

# „face check” va verifica tot ce a fost schimbat.
verificați: $(PRJS)
ftnchek $(PRJS)

Când un program folosește multe rutine definite într-un număr mare de fișiere sursă diferite în
directoare diferite, poate fi greoaie să specificați toate fișierele de proiect diferite
necesare pentru a verifica corect programul. Pentru a trata astfel de cazuri, ftnchek permite proiectul
fișierele care urmează să fie concatenate într-un singur fișier mare. Acest singur fișier poate fi apoi dat
ftnchek pentru a furniza informațiile pentru verificarea utilizării uneia sau a tuturor rutinelor
definite în fișierele de proiect combinate. Când utilizați un astfel de fișier de proiect ``bibliotecă'', dvs
poate vrea ftnchekEroarea lui raportează pentru a documenta exact numele fișierului în care se află
este definită o funcție specifică. Dacă diferitele fișiere sursă se află în mai multe directoare, an
raportul de eroare care oferă doar numele fișierului poate fi ambiguu și mai degrabă ar trebui să includă
calea către fișier. Soluția este să creați fiecare dintre fișierele de proiect individuale prin
oferind calea completă către fișierul sursă. Apoi această cale completă va apărea în
rapoarte de eroare. De exemplu, să presupunem că toate fișierele sursă ale subprogramelor din bibliotecă sunt
în subdirectoarele unui director numit /util/lib. Apoi fișierele de proiect individuale ar putea
mai întâi să fie creat printr-o comandă precum
găsiți /util/lib -name '*.f' -exec ftnchek -project '{}' ';'
(E posibil să fie oferite și alte opțiuni pentru ftnchek asa cum sa discutat mai sus. De asemenea, acest pas
ar putea fi gestionat în schimb printr-o regulă de makefile revizuită care ar furniza sursa completă
calea fișierului în loc de doar numele local la invocare ftnchek.) Apoi, concatenează toate
aceste fișiere de proiect manual.
găsiți /util/lib -name '*.prj' -exec cat '{}' ';' > ourlib.prj
Apoi un fișier sursă de program poate fi verificat folosind comanda
ftnchek prog.f ... -lib ourlib.prj
și un mesaj de eroare legat de orice rutină de bibliotecă va include calea completă către
fișierul sursă al rutinei.

În prezent, nu există un utilitar de arhivare ca ar pentru a gestiona conținutul unui concatenat
fișier proiect ca cel din ilustrația de mai sus. Dacă se fac modificări la unul dintre
rutinele bibliotecii, singura modalitate de a actualiza fișierul proiect combinat este să le concatenați pe toate
dosarele de proiect individuale din nou. Un astfel de utilitar ar fi destul de ușor de scris.
Cineva ar trebui să facă acest lucru și să contribuie la ftnchek efort.

AN EXEMPLU


Următorul program simplu Fortran ilustrează mesajele date de ftnchek.
programul este destinat să accepte o serie de scoruri la test și apoi să calculeze media pentru
serie.

C AUTORI: MIKE MYERS ȘI LUCIA SPAGNUOLO
C DATA: 8 MAI 1989

Variabile C:
C SCORE -> o serie de scoruri la test
C SUM -> suma scorurilor la test
C COUNT -> contor de scoruri citite
CI -> contor bucle

FUNCȚIE REALĂ COMPAV(SCORE,COUNT)
SUMĂ ÎNTREGĂ,NUMĂRĂ,J,SCOR(5)

DO 30 I = 1,CONT
SUMA = SUMA + SCORE(I)
30 CONTINUA
COMPAV = SUM/COUNT
Sfârşit

PROGRAM AVENUM
C
C PROGRAM PRINCIPAL
C
C AUTOR: LOIS BIGBIE
C DATA: 15 MAI 1990
C
Variabile C:
C MAXNOS -> numărul maxim de valori de intrare
C NUMS -> o matrice de numere
C COUNT -> numărul exact de valori de intrare
C AVG -> medie returnată de COMPAV
CI -> contor bucle
C

PARAMETER(MAXNOS=5)
INTEGRU I, CONTE
NUME REALE(MAXNOS), AVG
COUNT = 0
DO 80 I = 1,MAXNOS
CITEȘTE (5,*,END=100) NUMS(I)
NUMĂRARE = ​​NUMĂRARE + 1
80 CONTINUA
100 AVG = COMPAV(NUMS, COUNT)
Sfârşit

Compilatorul nu dă mesaje de eroare atunci când acest program este compilat. Totuși, iată ce
se întâmplă când este rulat:

$ run medie
70
90
85

$

Ce s-a întâmplat? De ce nu a făcut nimic programul? Următorul este rezultatul de la
ftnchek când este folosit pentru a depana programul de mai sus:

$ ftnchek -list -symtab medie

FTNCHEK Versiunea 3.3 noiembrie 2004

Fisier average.f:

1 C AUTORI: MIKE MYERS ȘI LUCIA SPAGNUOLO
2 C DATA: 8 MAI 1989
3
4 variabile C:
5 C SCORE -> o serie de scoruri la test
6 C SUM -> suma scorurilor la test
7 C COUNT -> contor de scoruri citite
8 CI -> contor bucle
9
10 COMPAV FUNCȚII REALE (SCORE, COUNT)
11 INTEGER SUM,COUNT,J,SCOR(5)
12
13 DO 30 I = 1,CONT
14 SUMA = SUMA + SCORE(I)
15 30 CONTINUA
16 COMPAV = SUM/NUMĂR
^
Avertisment lângă linia 16 col 20: coeficientul întreg expr SUM/COUNT convertit în
real
17 SFÂRȘIT

Modul COMPAV: func: real

Variabile:

Nume Tip Dims Nume Tip Dims Nume Tip Dims Nume Tip Dims
COMPAV real COUNT intg I intg* J intg
SCORE intg 1 SUM intg

* Variabilă nedeclarată. Tipul a fost definit implicit.

Avertisment în modulul COMPAV: Variabile declarate, dar niciodată referite:
J a declarat la linia 11

Avertisment în modulul COMPAV: Variabilele pot fi utilizate înainte de setare:
SUMA folosită la linia 14
SUMA stabilită la rândul 14

Etichetele declarațiilor definite:

Linia de etichetă StmtType
<30> 15 exec

18
19
20 PROGRAM AVENUM
21 C
22 C PROGRAM PRINCIPAL
23 C
24 C AUTOR: LOIS BIGBIE
25 C DATA: 15 MAI 1990
26 C
27 variabile C:
28 C MAXNOS -> numărul maxim de valori de intrare
29 C NUMS -> o matrice de numere
30 C COUNT -> numărul exact de valori de intrare
31 C AVG -> medie returnată de COMPAV
32 CI -> contor bucle
33 C
34
35 PARAMETRI(MAXNOS=5)
36 ÎNTREG I, CONTE
37 NUME REALE(MAXNOS), AVG
38 COUNT = 0
39 DO 80 I = 1,MAXNOS
40 CITEȘTE (5,*,END=100) NUMS(I)
41 NUMĂRARE = ​​NUMĂRARE + 1
42 80 CONTINUA
43 100 AVG = COMPAV(NUMS, COUNT)
44 SFÂRȘIT

Modulul AVENUM: prog

Subprograme externe la care se face referire:

COMPAV: real*

Variabile:

Nume Tip Dims Nume Tip Dims Nume Tip Dims Nume Tip Dims
AVG real COUNT intg I intg MAXNOS intg*
NUMS real 1

* Variabilă nedeclarată. Tipul a fost definit implicit.

Avertisment în modulul AVENUM: Variabile setate, dar niciodată utilizate:
AVG setat la linia 43

Operațiuni I/O:

ID unitate Nr. unitate Formular de acces Linia de operare
5 SEQ FMTD READ 40

Etichetele declarațiilor definite:

Linia de etichetă StmtType Linia de etichetă StmtType
<80> 42 exec <100> 43 exec

0 erori de sintaxă detectate în fișier mediu.f
6 avertismente emise în medie dosar.f

Avertisment: tipul de date al argumentului COMPAV al subprogramului nu se potrivește la poziția 1:
Dummy arg SCORE în modulul COMPAV linia 10 fișier average.f este de tip intg
Arg NUMS real în modulul AVENUM linia 43 fișier average.f este de tip real

În conformitate cu ftnchek, programul conține variabile care pot fi utilizate înainte ca acestea să fie
atribuită o valoare inițială și variabile care nu sunt necesare. ftnchek avertizează de asemenea pe
utilizator că un coeficient întreg a fost convertit într-un real. Acest lucru poate ajuta utilizatorul să intre
surprinderea unei erori de rotunjire neintenționată. Din momentul în care -simtab steagul a fost dat, ftnchek printuri
un tabel care conține identificatori din modulul local și tipul lor de date corespunzător
și numărul de dimensiuni. In cele din urma, ftnchek avertizează că funcția COMPAV nu este utilizată
cu tipul adecvat de argumente.

cu ftnchekAjutor, putem depana programul. Putem vedea că au fost următoarele
erori:

1. SUM și COUNT ar fi trebuit convertite în real înainte de a face împărțirea.

2. SUM ar fi trebuit inițializat la 0 înainte de a intra în buclă.

3. AVG nu a fost niciodată tipărit după ce a fost calculat.

4. NUMS ar fi trebuit să fie declarat INTEGER în loc de REAL.

Vedem de asemenea că eu, nu J, ar fi trebuit declarat INTEGER în funcția COMPAV. De asemenea,
MAXNOS nu a fost declarat ca INTEGER, nici COMPAV ca REAL, în programul AVENUM. Acestea nu sunt
erori, dar pot indica neglijență. După cum sa întâmplat, tipul implicit al acestora
variabilele au coincis cu tipul dorit.

Iată programul corectat și rezultatul său atunci când rulează:

C AUTORI: MIKE MYERS ȘI LUCIA SPAGNUOLO
C DATA: 8 MAI 1989
C
Variabile C:
C SCORE -> o serie de scoruri la test
C SUM -> suma scorurilor la test
C COUNT -> contor de scoruri citite
CI -> contor bucle
C
FUNCȚIE REALĂ COMPAV(SCORE,COUNT)
SUMĂ ÎNTREGĂ,NUMĂRĂ,I,SCOR(5)
C
SUMA = 0
DO 30 I = 1,CONT
SUMA = SUMA + SCORE(I)
30 CONTINUA
COMPAV = FLOAT(SUM)/FLOAT(COUNT)
Sfârşit
C
C
PROGRAM AVENUM
C
C PROGRAM PRINCIPAL
C
C AUTOR: LOIS BIGBIE
C DATA: 15 MAI 1990
C
Variabile C:
C MAXNOS -> numărul maxim de valori de intrare
C NUMS -> o matrice de numere
C COUNT -> numărul exact de valori de intrare
C AVG -> medie returnată de COMPAV
CI -> contor bucle
C
C
INTEGER MAXNOS
PARAMETER(MAXNOS=5)
INTEGER I, NUMS(MAXNOS), COUNT
REAL AVG,COMPAV
COUNT = 0
DO 80 I = 1,MAXNOS
CITEȘTE (5,*,END=100) NUMS(I)
NUMĂRARE = ​​NUMĂRARE + 1
80 CONTINUA
100 AVG = COMPAV(NUMS, COUNT)
SCRIEȚI(6,*) „MEDIE =”, MEDIA
Sfârşit
$ run medie
70
90
85

MEDIE = 81.66666
$

cu ftnchekajutorul lui, programul nostru este un succes!

INTERPRETARE THE REZULTATE


Mesajele date de ftnchek includ nu numai erori de sintaxă, ci și avertismente și
mesaje informative despre lucruri care sunt legale Fortran dar care pot indica erori sau
nepăsare. Cele mai multe dintre aceste mesaje pot fi dezactivate prin opțiunile din linia de comandă. Care
opțiunea controlează fiecare mesaj depinde de natura afecțiunii despre care este avertizat.
Vedeți descrierile steagurilor din linia de comandă din secțiunile anterioare și ale fiecărei persoane
mesajele de mai jos. Fiecare mesaj este prefixat cu un cuvânt sau o expresie care indică natura
starea și severitatea acesteia.

``Eroare'' înseamnă o eroare de sintaxă. Cele mai simple tipuri de erori de sintaxă sunt tipografice
erori, de exemplu paranteze neechilibrate sau ortografie greșită a unui cuvânt cheie. Acest tip de
eroarea este surprinsă de parser și apare cu descrierea ``parse error'' sau ``sintaxă
eroare'' (în funcție de versiunea generatorului de parser și dacă este GNU bizon or
UNIX yacc). Acest tip de mesaj de eroare nu poate fi suprimat. Fiți conștienți de faptul că acest tip de
eroare înseamnă adesea că ftnchek nu a interpretat corect declarația în care eroarea
are loc, astfel încât operațiunile sale de verificare ulterioare vor fi compromise. Tu ar trebui
eliminați toate erorile de sintaxă înainte de a continua la interpretarea celorlalte mesaje ftnchek
dă.

``Avertisment: Sintaxa nonstandard'' indică o extensie pentru Fortran care ftnchek sprijină
dar asta nu este conform standardului Fortran 77. Extensiile care ftnchek acceptă
sunt descrise în secțiunea Extensii de mai jos. Un exemplu este DO ... ENDDO
constructie. Dacă un program folosește aceste extensii, se vor da avertismente conform
caietul de sarcini sub -f77 setare. Comportamentul implicit este de a nu da avertismente.

„Avertisment” în alte cazuri înseamnă o afecțiune care este suspectă, dar care poate fi sau nu
o eroare de programare. Adesea, aceste condiții sunt legale conform standardului. Unii sunt
ilegale, dar nu se încadrează la rubrica erori de sintaxă. Erorile de utilizare sunt un exemplu.
Acestea se referă la posibilitatea ca o variabilă să fie utilizată înainte de a fi atribuită a
valoare (în general, o eroare) sau că o variabilă este declarată, dar niciodată utilizată (inofensivă, dar
poate indica nepăsare). Cantitatea de verificare a erorilor de utilizare este controlată de
-utilizare flag, care specifică valoarea maximă de verificare în mod implicit.

Avertismentele de trunchiere acoperă situații în care precizia poate fi pierdută neintenționat, pt
exemplu când o valoare de precizie dublă este atribuită unei variabile reale. Aceste avertismente sunt
controlat de -trunchiere setare, care este activată în mod implicit.

``Utilizarea neportabilă'' avertizează asupra unor caracteristici care ar putea să nu fie acceptate de unii compilatori
chiar dacă nu este contrar standardului Fortran 77 sau asta poate cauza programul
pentru a funcționa diferit pe platforme diferite. De exemplu, echivalând real și
variabile întregi este de obicei o practică non-portabilă. Utilizarea extensiilor la
limbajul standard este, desigur, o altă sursă de non-portabilitate, dar aceasta este tratată ca
un caz separat. Pentru a verifica un program pentru portabilitatea reală, atât -portabilitate si
-f77 ar trebui folosite steaguri. Ambele sunt dezactivate implicit. The -dimensiunea cuvintelor setarea este
furnizat pentru a verifica numai acele utilizări neportabile care depind de o anumită mașină
dimensiunea cuvintelor.

„Apariția posibilă înșelătoare” este folosită pentru construcții legale care nu înseamnă ce
par să însemne la prima vedere. De exemplu, Fortran este insensibil la spațiul liber,
deci spațiu străin în numele variabilelor sau lipsa spațiului dintre un cuvânt cheie și a
variabila poate transmite cititorului o impresie greșită. Aceste mesaje pot fi suprimate
prin oprirea -frumos flag, care este activat în mod implicit.

Alte mesaje care sunt date după procesarea tuturor fișierelor și care au legătură cu
acord între module, nu folosiți cuvântul ``avertisment'', dar, în general, intrați în asta
categorie. Exemplele includ nepotriviri de tip între variabilele corespunzătoare în diferite
Declarații de bloc COMUNE, sau între argumentele fictive și reale ale unui subprogram. Aceste
avertismentele sunt controlate de -uzual și -argumente respectiv setări. În mod implicit
ambele sunt setate pentru strictețe maximă a verificării.

Un alt grup de avertismente despre condiții care sunt adesea inofensive se referă la cazurile în care
proprietățile matricei ale unei variabile transmise ca argument de subprogram diferă între cele două
rutine. De exemplu, un element de matrice ar putea fi transmis unei subrutine care așteaptă a
întreaga matrice. Aceasta este o tehnică folosită în mod obișnuit pentru procesarea unor rânduri sau coloane individuale de
tablouri bidimensionale. Cu toate acestea, ar putea indica și o eroare de programare. The -matrice
setarea permite utilizatorului să ajusteze gradul de strictețe care va fi utilizat în verificarea acesteia
un fel de acord între argumentele reale și dummy ale matricei. În mod implicit, strictețea este
maxim.

``Oops'' indică o problemă tehnică, adică fie o eroare ftnchek sau că este
resursele au fost depășite.

Mesajele de eroare de sintaxă și avertismentele includ numele fișierului împreună cu numărul rândului și
numărul coloanei. ftnchek are două opțiuni diferite pentru apariția acestor erori
mesaje. Dacă -novice este în vigoare, care este implicit, mesajele sunt într-un stil
aproximând limba engleză normală. (În stilul implicit, numele fișierului nu este tipărit în mesaje
în cadrul corpului programului dacă -listă este în vigoare.) Celălalt stil de mesaje de eroare
este selectat de către -novice opțiune. În acest stil, aspectul mesajelor este
similar cu cel al UNIX-ului scamă programul.

ftnchek este încă orb la unele tipuri de erori de sintaxă. Cele mai importante două sunt
verificarea detaliată a instrucțiunilor FORMAT și aproape orice are de-a face cu controlul
fluxul de execuție prin intermediul instrucțiunilor IF, DO și GOTO: și anume imbricarea corectă a controlului
structuri, potrivirea declarațiilor de deschidere precum IF ... THEN cu declarațiile de închidere
cum ar fi ENDIF și utilizarea corectă a etichetelor de instrucțiuni (numerele). Majoritatea compilatorilor o vor face
prinde aceste erori. Consultați secțiunea Limitări pentru o discuție mai detaliată.

If ftnchek vă oferă un mesaj de eroare de sintaxă atunci când compilatorul nu, poate fi din cauză că
programul dumneavoastră conține o extensie la standardul Fortran, care este acceptată de compilator
dar nu de către ftnchek. (Consultați secțiunea despre Extensii.) Pe un sistem VAX/VMS, puteți utiliza
opțiunea compilatorului /STANDARD pentru a determina compilatorul să accepte doar Fortran standard. Pe
majoritatea sistemelor UNIX sau UNIX, acest lucru poate fi realizat prin setarea steagului -ansi.

Multe dintre mesajele date de ftnchek se explică de la sine. Cei care au nevoie
explicații suplimentare sunt enumerate mai jos, în ordine alfabetică.

Comun bloca NUME: de date tip nepotrivire at poziţie n
n-a variabilă din blocul COMUN diferă în tipul de date în două diferite
declarații ale blocului COMUN. În mod implicit (-uzual nivelul de strictețe 3), ftnchek
este foarte pretențios în privința blocurilor COMUNE: variabilele enumerate în ele trebuie să se potrivească exact
după tipul de date și dimensiunile matricei. Adică perechea legală de declarații în
diferite module:
COMUN /COM1/ A,B
și
COMUN /COM1/ A(2)
va cauza ftnchek să dea avertismente la nivelul de stricteţe 3. Aceste două declaraţii
sunt legale în Fortran, deoarece ambii declară două variabile reale. La strictețe
nivel 1 sau 2, în acest exemplu nu ar fi dat niciun avertisment, dar avertizarea ar fi
dat dacă a existat o nepotrivire a tipului de date, de exemplu, dacă B a fost declarat INTEGER.
Controlat de -uzual setare.

Comun bloca NUME are lung de date tip următor mic de statura de date tip
Unele compilatoare necesită alinierea elementelor pe mai mulți octeți, astfel încât fiecare articol să înceapă la un
adresa care este un multiplu al mărimii articolului. Astfel, dacă un scurt (de exemplu, un singur
precizie reală) este urmată de un articol lung (de ex. dublă precizie reală), the
acesta din urmă poate să nu fie aliniat corect. Controlat de -portability=common-alignment
opțiune.

Comun bloca NUME are mixt caracter și non-caracter variabile
Standardul ANSI cere ca orice variabilă dintr-un bloc COMMON să fie de tip
CARACTER, atunci toate celelalte variabile din același bloc COMUN trebuie să fie și ele de tip
CARACTER. Controlat de -f77=mixt-comun opțiune.

Comun bloca NUME: variabil lungime
Pentru -uzual setarea nivelului 2, acest mesaj înseamnă că un bloc COMUN este declarat la
au un număr diferit de cuvinte în două subprograme diferite. Un cuvânt este suma
de stocare ocupată de un număr întreg sau variabilă reală. Pentru -uzual setarea nivelului 3,
înseamnă că cele două declarații au un număr diferit de variabile, unde an
matricea de orice dimensiune este considerată o variabilă. Aceasta nu este neapărat o eroare,
dar poate indica faptul că o variabilă lipsește dintr-una dintre liste. Rețineți că
conform standardului Fortran 77, este o eroare pentru blocurile COMUNE numite (dar
not blank COMUNE) a diferi ca număr de cuvinte în declarații în diferite
module. Dat pentru -uzual setarea 2 sau 3.

Eroare: Prost format logic/relațional operator or constant

Eroare: Prost format real constant
Analizatorul de sintaxă a găsit începutul unuia dintre cuvintele speciale care încep și
se termină cu o perioadă (de ex. .EQ.) sau începutul unei constante numerice, dar nu
reuși să găsească un articol complet de acest fel.

Eroare: nu poti be reglabil mărimea in modul NUME
O variabilă caracter nu poate fi declarată cu o dimensiune care este un asterisc
paranteze, cu excepția cazului în care este un argument fals, un parametru sau numele funcției
definite în modul.

Eroare: nu poti be declarat in SALVAȚI declaraţie in modul NUME
Doar variabilele locale și blocurile comune pot fi declarate într-o instrucțiune SAVE.

Eroare: Nu cale la acest declaraţie
ftnchek va detecta declarațiile care sunt ignorate sau ocolite deoarece nu există
cale previzibilă către declarație. De exemplu, o declarație nenumerată (a
declarație fără etichetă de declarație), care apare imediat după o instrucțiune GOTO,
nu poate fi executat.

Eroare: analiza eroare
Aceasta înseamnă că analizatorul, care analizează programul Fortran în expresii,
declarații etc., nu a reușit să găsească o interpretare validă pentru o anumită parte
a unei declarații din program. Dacă compilatorul dumneavoastră nu raportează o eroare de sintaxă la
în același loc, cele mai comune explicații sunt: ​​(1) utilizarea unei extensii la ANSI
standard Fortran care nu este recunoscut de ftnchek, sau (2) declarația cere
mai mult înainte decât ftnchek utilizări (vezi secțiunea despre erori).

NOTĂ: Acest mesaj înseamnă că declarația afectată nu este interpretată.
Prin urmare, este posibil ca ftnchekprelucrarea ulterioară a lui va fi greșită, dacă
depinde de orice aspecte afectate de această declarație (declarații de tip etc.).

Eroare: Sintaxă eroare
Aceasta este la fel cu „Eroare: Eroare de analiză” (vezi mai sus). Este generat dacă dvs
versiune a ftnchek a fost construit folosind UNIX yacc generator de parser mai degrabă decât GNU
bizon.

Identificatorii care sunt nu unic in primul şase rezervoare
Avertizează că doi identificatori care au mai mult de 6 caractere nu diferă în
primele 6 caractere. Aceasta este pentru portabilitate: este posibil să nu fie considerate distincte
de către unii compilatori. Controlat de -sixchar opțiune.

Neportabil utilizare: argument precizie Mai nu be corecta pentru intrinsec funcţie
Precizia unui argument transmis unei funcții intrinseci poate fi incorectă
unele calculatoare. Emis atunci când o variabilă numerică este declarată cu precizie explicită
(de ex. REAL*8 X) este transmis unei anumite funcții intrinseci (de ex. DSQRT(X)).
Controlat de -portabilitate=dimensiuni mixte și -dimensiunea cuvintelor.

Neportabil utilizare: caracter constantă/variabilă lungime depășește 255
Unele compilatoare nu acceptă șiruri de caractere cu o lungime mai mare de 255 de caractere.
Controlat de -portabilitate=șir lung.

Neportabil utilizare: Fișier conține file
ftnchek extinde filele pentru a fi echivalente cu spații până la următoarea coloană care este a
multiplu de 8. Unii compilatori tratează filele în mod diferit și, de asemenea, este posibil ca
fișierele trimise prin poștă electronică vor avea filele convertite în spații libere într-un fel.
Prin urmare, fișierele care conțin file pot să nu fie compilate corect după ce sunt
transferat. ftnchek nu dă acest mesaj dacă filele apar numai în comentarii
sau constante de caractere. Controlat de -portabilitate=tab.

Neportabil utilizare: neîntreg DO buclă limite
Acest avertisment este dat numai atunci când indexul DO și limitele nu sunt întregi. Utilizarea de
cantitățile care nu sunt întregi dintr-o instrucțiune DO pot provoca erori neașteptate sau diferite
rezultate pe diferite mașini, datorită efectelor de rotunjire. Controlat de
-portabilitate=real-do.

Eventual it is an mulțime care a fost nu declarat
Acest mesaj este atașat avertismentelor legate de invocarea unei funcții sau a unui
nepotrivirea tipului de argument, pentru care există posibilitatea ca ceea ce pare a fi a
funcția este de fapt menită să fie o matrice. Dacă programatorul a uitat să dimensioneze
un tablou, referințele la matrice vor fi interpretate ca invocări de funcții.
Acest mesaj va fi suprimat dacă numele în cauză apare într-un EXTERN sau
Declarație intrinsecă. Controlat de -novice opțiune.

Eventual derutant aspect: caractere trecut 72 coloane
Programul este procesat cu lățimea câmpului de instrucțiune la valoarea sa standard
de 72, iar unele caractere neblank au fost găsite după coloana 72. În acest caz,
ftnchek nu procesează caracterele dincolo de coloana 72 și notifică utilizatorul
că enunțul poate să nu aibă sensul pe care pare să îl aibă. Aceste
caracterele ar putea fi intenționate de programator să fie semnificative, dar vor fi
ignorat de compilator. Controlat de -pretty=linie lungă.

Eventual derutant aspect: Comun bloca declarat in mai mult decât unu declaraţie
Astfel de declarații multiple sunt legale și au același efect ca o continuare a
declarația originală a blocului. Acest avertisment este dat doar dacă cele două
declaraţiile sunt separate prin una sau mai multe declaraţii intermediare. Controlat de
-pretty=multiplu-comun.

Eventual derutant aspect: continuare urmează comentariu or necompletat linie
ftnchek emite acest mesaj de avertizare pentru a alerta utilizatorul că o continuare a a
declarația este presărată cu comentarii, făcându-l ușor de trecut cu vederea. Controlat de
-pretty=continuare.

Eventual derutant aspect: străin paranteze
Avertizează despre parantezele care înconjoară o variabilă în sine într-o expresie. Când un
variabila între paranteze este transmisă ca argument unui subprogram, este tratată ca
o expresie, nu ca o variabilă a cărei valoare poate fi modificată de rutina apelată.
Controlat de -pretty=paranteze.

Subprogram NUME: argument de date tip nepotrivire at poziţie n
Subprogramul n-al-lea argument real (în CALL sau utilizarea unei funcții)
diferă ca tip de date sau precizie de n--al-lea argument fals (în SUBRUTINE sau
Declarație FUNCȚIE). De exemplu, dacă utilizatorul definește un subprogram prin
SUBRUTINĂ SUBA(X)
X ADEVĂRAT
iar în altă parte invocă SUBA de
CALL SUBA(2)
ftnchek va detecta eroarea. Motivul aici este că numărul 2 este întreg,
nu este real. Utilizatorul ar fi trebuit să scrie
Apelați la SUBA(2.0)

Când verificați un argument care este un subprogram, ftnchek trebuie să poată determina
fie că este o funcţie sau o subrutină. Regulile folosite de ftnchek pentru a face acest lucru sunt
după cum urmează: Dacă subprogramul, pe lângă faptul că este transmis ca argument real, este și
invocat direct în altă parte în același modul, atunci tipul său este determinat de asta
utilizare. Dacă nu, atunci dacă numele subprogramului nu apare în mod explicit
declarație de tip, se presupune că este o subrutină; dacă este scris în mod explicit, este
luată ca funcţie. Prin urmare, subrutinele trecute ca argumente reale au nevoie doar
fi declarat printr-o instrucțiune EXTERN în modulul de apelare, în timp ce funcțiile trebuie
de asemenea, să fie introduse în mod explicit pentru a evita generarea acestui mesaj de eroare.
Controlat de -argumente setare.

Subprogram NUME: argument matricea nepotrivire at poziţie n
Similar cu situația anterioară, dar argumentul dummy al subprogramului diferă de
argumentul real corespunzător în numărul său de dimensiuni sau numărul de
elemente. Controlat de -matrice Împreună cu -argumente setări.

Subprogram NUME: argument nepotrivire at poziţie n
Un argument inactiv de caracter este mai mare decât argumentul real corespunzător sau a
Argumentul inactiv Hollerith este mai mare decât argumentul real corespunzător.
Controlat de -argumente setare.

Subprogram NUME: argument folosire nepotrivire
ftnchek detectează un posibil conflict între modul în care un subprogram utilizează un argument
și modul în care argumentul este furnizat subprogramului. Conflictul poate
fie unul dintre cele două tipuri, după cum este prezentat mai jos.

fictiv arg is modificat, Real arg is CONST or expres
Un argument fals este un argument așa cum este numit într-o instrucțiune SUBROUTINE sau FUNCTION și
utilizate în cadrul subprogramului. Un argument real este un argument așa cum a fost transmis la a
subrutină sau funcție de către apelant. ftnchek spune că un argument fals este
modificat de subprogram, implicând că valoarea acestuia este modificată în apelare
modul. Argumentul real corespunzător nu ar trebui să fie o constantă sau o expresie,
ci mai degrabă o variabilă sau un element de matrice căruia îi poate fi atribuit în mod legitim.
Controlat de către -usage=arg-const-modified opțiune.

fictiv arg utilizat înainte a stabilit, Real arg nu set
Aici poate fi folosit un argument inactiv în subprogram înainte de a fi atribuită o valoare
la acesta prin subprogram. Argumentul real corespunzător ar trebui să aibă o valoare
atribuit acestuia de apelant înainte de invocarea subprogramului. Controlat de către
-usage=var-neinițializat opțiune.

Acest avertisment nu este afectat de -argumente setare.

Subprogram NUME invocat inconsecvent
Aici nepotrivirea este între tipul de date al subprogramului în sine, așa cum este utilizat și ca
definit. De exemplu, dacă utilizatorul declară
NUMĂRUL FUNȚIILOR ÎNTREG (A)
și invocă COUNT într-un alt modul ca
N = COUNT(A)
fără a-și declara tipul de date, va fi implicit tipul real, pe baza primului
litera numelui său. Modulul de apelare ar fi trebuit să includă declarația
NUMĂRUL ÎNTREGI

Dat pentru -argumente setarea 2 sau 3.

Subprogram NUME: variabil lungime argument liste:
S-a găsit o inconsecvență între numărul de argumente inactiv (parametri)
un subprogram are și numărul de argumente reale date într-o invocare.
ftnchek ține evidența tuturor invocărilor subprogramelor (instrucțiuni CALL și
expresii folosind funcții) și le compară cu definițiile din
subprograme în altă parte în codul sursă. Compilatorul Fortran de obicei nu
prinde acest tip de eroare. Dat pentru -argumente setarea 1 sau 3.

Variabil nu declarat. Tip are fost implicit definit
Când imprimați tabelul de simboluri pentru un modul, ftnchek va semnaliza cu un asterisc toate
identificatori care nu sunt introduși în mod explicit și vor afișa tipul de date care a fost
atribuite prin tastare implicită. Aceasta oferă asistență pentru utilizatorii care doresc
declară toate variabilele așa cum este necesar în Pascal sau în alte limbi. Acest
mesajul apare numai atunci când -simtab opțiunea este în vigoare. Ca alternativă, utilizați
-declara flag dacă doriți să obțineți o listă cu toate variabilele nedeclarate.

Variabile declarat dar nu referință
Detectează orice identificatori care au fost declarați în programul dvs., dar nu au fost niciodată utilizați,
fie să li se atribuie o valoare, fie să li se acceseze valoarea. Variabile în COMUNE
sunt excluse. Controlat de către -usage=var-unused opțiune.

Variabile set dar nu utilizat
ftnchek va anunța utilizatorul când unei variabile i-a fost atribuită o valoare, dar
variabila nu este utilizată altfel în program. De obicei, aceasta rezultă dintr-o
supraveghere. Controlat de către -usage=var-set-unused opțiune.

Variabile utilizat înainte set
Acest mesaj indică faptul că un identificator este utilizat pentru a calcula o valoare anterioară acesteia
initializare. O astfel de utilizare poate duce la calcularea unei valori incorecte, deoarece
valoarea sa inițială nu este controlată. Controlat de -usage=var-neinițializat
opțiune.

Variabile Mai be utilizat înainte set
Asemănător cu folosit înainte de set, cu excepția faptului că ftnchek nu este în măsură să-și determine starea
cu siguranta. ftnchek presupune că o variabilă poate fi utilizată înainte de setată dacă prima
utilizarea variabilei are loc înainte de atribuirea acesteia în textul programului.
Controlat de către -usage=var-neinițializat opțiune.

Avertisment: DO index is nu întreg
Acest avertisment este dat numai atunci când limitele DO sunt întregi, dar indicele DO nu este.
Poate indica un eșec în declararea indexului ca fiind un întreg. Controlat de
-truncare=real-do opțiune.

Avertisment: întreg coeficient expres ... convertit la real
Din câtul a două numere întregi rezultă un rezultat de tip întreg, în care
parte fracționată este aruncată. Dacă o astfel de expresie întreagă care implică diviziunea este
convertit ulterior într-un tip de date real, este posibil ca o diviziune de tip real să fi fost
destinat. Controlat de -truncare=int-div-real opțiune.

Avertisment: Întreg coeficient expres ... utilizat in exponent
Din câtul a două numere întregi rezultă un rezultat de tip întreg, în care
parte fracționată este aruncată. Dacă o astfel de expresie întreagă este folosită ca exponent,
este destul de probabil să fi fost intenționată o divizare de tip real. Controlat de
-truncare=int-div-exponent opțiune.

Avertisment: NUME nu set cand A REVENI întâlnite
Modul în care funcționează în Fortran returnează o valoare este prin atribuirea valorii lui
numele functiei. Acest mesaj indică faptul că funcția nu a fost atribuită a
valoare înainte de punctul în care a fost găsită o instrucțiune RETURN. Prin urmare este
este posibil ca funcția să returneze o valoare nedefinită.

Avertisment: nonstandard sintaxă: reglabil mărimea nu poti be concatenat aici
Standardul Fortran 77 (secțiunea 6.2.2) interzice concatenarea variabilelor de caractere
a căror dimensiune este un asterisc între paranteze, cu excepția unei declarații de atribuire.
Controlat de -f77=mixte-expr.

Avertisment: nonstandard sintaxă : semnificativ caractere trecut 72 coloane
Acest avertisment este dat sub -f77=linie lungă setarea dacă -coloane setarea are
a fost folosit pentru a mări lățimea câmpului de declarație, iar o declarație are sens
textul programului dincolo de coloana 72. Standard Fortran ignoră tot textul din acele coloane,
dar unii compilatori nu. Astfel, programul poate fi tratat diferit de către
diferite compilatoare.

Avertisment: nonstandard sintaxă : Declarație afară of comandă.
ftnchek va detecta instrucțiunile care sunt în afara secvenței specificate pentru ANSI
standard Fortran 77. Tabelul 1 ilustrează succesiunea permisă de declarații în
Limba Fortran. Declarațiile care nu sunt în ordine sunt totuși interpretate de
ftnchek, pentru a preveni ``cascadele'' de mesaje de eroare. Contorul de secvențe este de asemenea
anulat pentru a preveni repetarea mesajului de eroare pentru un bloc similar
declarații. Controlat de -f77=instrucțiune-ordine opțiune.

-------------------------------------------------- ------
| | implicit
| parametru |---------------------
| | altă specificație
format |----------------|----------------------
și | | declarație-funcție
intrare | date |----------------------
| | executabil
-------------------------------------------------- ------

Tabelul 1

Avertisment: Posibil divizare by zero
Acest mesaj este tipărit oriunde se face împărțirea (cu excepția împărțirii cu a
constant). Folosiți-l pentru a ajuta la localizarea unei probleme de divizare a timpului de execuție la zero. Controlat
by -Divizia opțiune.

Avertisment: real trunchiat la intg
ftnchek a detectat o instrucțiune de atribuire care are o expresie reală pe
dreapta, dar o variabilă întreagă în stânga. Partea fracțională a valorii reale
va fi pierdut. Dacă convertiți în mod explicit expresia reală în număr întreg folosind
Funcție intrinsecă INT sau NINT, nu va fi imprimat niciun avertisment. Un mesaj similar este
imprimat dacă o expresie de precizie dublă este atribuită unei singure precizii
variabilă etc. Controlată de -truncare=retrogradare opțiune.

Avertisment: indicele is nu întreg
Deoarece indicele de matrice sunt în mod normal cantități întregi, utilizarea unui număr non-întreg
expresia de aici poate semnala o eroare. Controlat de -truncare=subindice real
opțiune.

Avertisment: Necunoscut intrinsec funcţie
Acest mesaj avertizează utilizatorul că un nume declarat într-o instrucțiune INTRINSIC este
necunoscut de ftnchek. Probabil că este o funcție intrinsecă nestandard, și așadar
programul nu va fi portabil. Funcția va fi tratată de ftnchek ca utilizator-
functie definita. Acest avertisment nu este suprimat de nicio opțiune, deoarece afectează
ftnchekanaliza programului. Totuși, dacă funcția intrinsecă este într-unul dintre
seturile acceptate de intrinseci nonstandard, puteți utiliza -intrinsec setarea
cauză ftnchek să-l recunoască.

LIMITAREA AND PRELUNGIRI


ftnchek acceptă programe Fortran-77 standard ANSI cu unele limitări minore și numeroase
extensii comune.

Limitări:
Argumentele fictive din funcțiile de instrucțiuni sunt tratate ca variabile obișnuite ale
programul. Adică, scopul lor este întregul subprogram, nu doar declarația
definirea funcției.

Verificarea instrucțiunilor FORMAT este laxă, tolerând separatorii lipsă (virgulă,
etc.) între descriptorii de format în locurile în care Standardul le cere și
permiţând .d câmpuri pe descriptori care nu ar trebui să le aibă. Avertizează sub
-f77=format-edit-descr despre tipurile de descriptori nestandard (cum ar fi O) și acceptate
extensii.

Există unele extensii sintactice și elemente Fortran 90 care ftnchek acceptă
dar verifică foarte puțin. De exemplu, utilizarea pointerului (dacă
sintaxa Cray nestandard sau sintaxa Fortran 90) nu este verificată decât pentru set
și starea folosită. Se speră că într-o zi va fi o verificare mai amănunțită
implementate, dar deocamdată utilizatorul ar trebui să aibă în vedere acceptarea acestor sintactice
caracteristici pur și simplu ca o comoditate pentru a permite verificarea altor aspecte ale codului care
le contine. Consultați secțiunea Extensii pentru detalii despre caracteristicile
acceptat, dar nu complet verificat.

Dacă un subprogram furnizat de utilizator are același nume ca unul dintre intrinseci nestandard
functii recunoscute de ftnchek, trebuie declarat într-o instrucțiune EXTERNAL în
orice rutină care o invocă. În caz contrar, va fi supus verificării în mod normal
dat funcţiei intrinseci. Deoarece intrinsecile nonstandard nu sunt
standard, această declarație EXTERNĂ nu este cerută de standardul Fortran 77.
Utilizarea -intrinsec=niciuna setarea, recunoașterea celor mai multe intrinseci nestandard
(cu excepția doar a celor necesare pentru a suporta tipul de date dublu complex) pot fi transformate
oprit. Consultați listele de funcții intrinseci nestandard acceptate sub
discuție despre -intrinsec setare de mai sus.

Extensii:
Toate aceste extensii (cu excepția caracterelor minuscule) vor genera avertismente dacă
relevante -f77 opțiunea este setată. Unele dintre extensiile enumerate mai jos fac parte din
standardul Fortran-90. Acestea sunt indicate prin notația (F90).

Filele sunt permise și traduse în spații libere echivalente care corespund tabelor
se oprește la fiecare 8 coloane. Standardul nu recunoaște filele. Rețineți că unii
compilatoarele permit file, dar le tratează diferit. Tratamentul definit pentru DEC
FORTRAN poate fi realizat folosind -source=dec-tab setare.

Șirurile pot fi delimitate fie prin ghilimele, fie prin apostrofe. O succesiune de doi
caracterele delimitare sunt interpretate ca un singur caracter delimitator încorporat.
(F90)

Șirurile pot conține secvențe de evadare backslash în stil UNIX. Acestea vor fi
interpretat ca atare dacă cel -source=unix-backslash este dat setarea. Altfel cel
Caracterul backslash va fi tratat ca un caracter normal de imprimare.

Codul sursă poate fi fie în format gratuit Fortran 90, fie în format fix tradițional.
(F90)

Un punct și virgulă este permis ca separator de instrucțiuni. (F90)

Caracterele mici sunt permise și sunt convertite intern în majuscule
cu excepția șirurilor de caractere. Standardul specifică numai litere mari, cu excepția în
comentarii și șiruri. (F90)

Constantele Hollerith sunt permise, în conformitate cu standardul Fortran 77,
anexa C. Ele nu trebuie folosite în expresii sau confundate cu tipul de date
CARACTER.

Litera „D” (majuscule sau minuscule) din coloana 1 este tratată ca începutul lui a
cometariu. Nu există nicio opțiune de a trata astfel de rânduri ca declarații în loc de comentarii.

Declarațiile pot fi mai lungi de 72 de coloane, cu condiția ca setarea -coloane a fost
folosit pentru a mări limita. Conform standardului, tot textul din coloanele 73
până la 80 este ignorată și nicio linie nu poate fi mai lungă de 80 de coloane.

Numele variabilelor pot fi mai lungi de șase caractere. Standardul specifică șase ca
maximul. ftnchek permite nume de până la 31 de caractere (F90).

Numele variabilelor pot conține liniuțe de subliniere și semne dolar (sau altele non-alfabetice
caracterele specificate de -identificator-caractere opțiune). Aceste personaje sunt sunt
tratate la fel ca literele alfabetice. Tipul implicit pentru variabilele care încep
cu aceste personaje este REAL. În instrucțiunile de tip IMPLICIT care specifică un interval de
caractere, semnul dolar urmează Z și este urmat de liniuță. (Oricare altul
caracterele definite de utilizator sunt tratate la fel ca semnul dolarului.) Fortran 90
permite sublinierea în numele variabilelor.

Versiunea UNIX tolerează prezența directivelor de preprocesor, și anume linii
începând cu semnul lire sterline (#). Acestea sunt tratate ca comentarii, cu excepția #line
directive, care sunt interpretate și sunt folosite pentru a seta numărul și sursa liniei
nume de fișier pentru avertismente și mesaje de eroare. Rețineți că directivele #include nu sunt
procesat de ftnchek. Programele care le folosesc pentru includerea fișierelor sursă ar trebui să fie
trecut prin preprocesor înainte de a fi introdus în ftnchek. După cum se menționează mai jos,
ftnchek procesează instrucțiunile INCLUDE, care au o sintaxă diferită. Un
program optional, ftnpp(1L) (disponibil separat) oferă preprocesare
gestionează corect fișierele INCLUDE.

Structura de control Fortran 90 DO ... ENDDO este permisă. CYCLE și EXIT
declarațiile sunt acceptate. Toate acestea pot avea un nume opțional do-construct, dar
Numele constructelor nu sunt verificate pentru consecvență. (F90)

Construcția Fortran 90 SELECT CASE este acceptată. (F90)

Numele constructelor sunt acceptate și pe IF, THEN, ELSE, ENDIF și SELECT CASE
declarații. (F90)

Instrucțiunile ACCEPT și TYPE (pentru terminal I/O) sunt permise, cu aceleași
sintaxă ca PRINT.

Așa-numita sintaxă ``Cray pointer'' este tolerată. Nu este la fel ca
Declarație Fortran 90 POINTER. Nu există o verificare reală a declarației altele
decât sintaxa de bază. Forma acestei afirmații este
POINTOR (indicatorul, pointee) [,(indicatorul, pointee)]
Variabilelor pointer li se atribuie un tip de date INTEGER *4. Verificarea utilizării
variabilele pointee sunt suprimate, deoarece în practică sunt accesate indirect
prin indicatori.

Sunt acceptate următoarele sintaxe legate de pointerul Fortran 90: ALLOCATABLE,
Instrucțiuni POINTER și TARGET și aceleași atribute în declarațiile de tip;
Instrucțiunile executabile ALLOCATE, DEALLOCATE și NULLIFY; atribuirea pointerului folosind
=> operator; iar funcţiile intrinseci ALOCAT şi ASOCIAT. Puțin semantic
verificarea variabilelor pointerului și a operațiilor se face dincolo de setul de bază și se utilizează
stare. De exemplu, nu există nicio verificare pentru erori precum indicatori suspendați,
sau utilizarea de tablouri nealocate.

Declarațiile pot avea orice număr de rânduri de continuare. Fortran 77 și Fortran
90 de standarde permit maximum 19 sub formă de sursă fixă. Standardul Fortran 90
permite maximum 39 în formă gratuită.

Operatori relaționali (comparație) compuși din punctuație și anume: < <= == /= > >=
sunt permise. (F90)

Comentariile inline, care încep cu un semn de exclamare, sunt permise. (F90)

NAMELIST I/O este acceptat. Sintaxa este aceeași ca în Fortran 90.

Declarațiile FORMAT pot conține un semn dolar pentru a indica suprimarea transportului-
întoarcere. O expresie întreagă cuprinsă între paranteze unghiulare poate fi folosită oriunde în a
Instrucțiunea FORMAT în care standardul Fortran 77 permite o constantă întreagă (cu excepția
pentru lungimea unei constante Hollerith), pentru a furniza o valoare a timpului de rulare pentru o repetare
specificația sau lățimea câmpului.

Cuvintele cheie nestandard sunt permise în instrucțiunile I/O, corespunzătoare celor din VMS
Fortran.

Declarația IMPLICIT NONE este acceptată. Sensul acestei afirmații este că
toate variabilele trebuie să aibă tipurile de date declarate în mod explicit. În loc să semnalizeze
aparițiile unor astfel de variabile cu mesaje de eroare de sintaxă, ftnchek așteaptă până la
sfârșitul modulului și apoi tipăriți o listă cu toate variabilele nedeclarate, așa cum este
face pentru -declara opțiune. (F90)

Tipurile de date INTEGER, REAL, COMPLEX și LOGIC pot avea un opțional
specificație de precizie în declarațiile de tip. De exemplu, REAL*8 înseamnă 8 octeți
tip de date în virgulă mobilă. Tipul de date REAL*8 nu este neapărat luat în considerare
echivalent cu PRECIZIE DUBLĂ, în funcție de -dimensiunea cuvintelor setare. Fortranul 77
Standardul permite specificarea lungimii numai pentru datele CARACTER.

ftnchek suportă specificația de tip DOUBLE COMPLEX pentru o cantitate complexă a cărei
părțile reale și imaginare sunt dublă precizie. Aritmetică mixtă care implică
complex cu o singură precizie cu date reale cu precizie dublă, interzis în temeiul
Standard, dă un rezultat dublu complex.

Sunt acceptate declarații de tip combinat și inițializatoare asemănătoare instrucțiunilor de date.
Acestea au forma unei declarații standard de tip Fortran 77, urmată de o bară oblică.
listă delimitată de constante precum cea utilizată într-o instrucțiune DATA. Un exemplu de
sintaxa este
INTREG N / 100 /
Această formă nenorocită de declarație de inițializare nu a fost adoptată în Fortran 90. Așa
declarațiile trebuie scrise folosind formularul standard descris mai jos, adică
acceptat de ftnchek.

Există suport limitat pentru declarațiile de tip bazate pe atribute Fortran 90. Acest
stilul de declarare se distinge prin utilizarea dublelor două puncte (::) între
lista de atribute și lista de variabile declarate. Caracteristicile acceptate pot
să fie adecvate pentru programatorii începători, dar nu sunt încă suficiente pentru profesioniști
programe Fortran 90 de calitate. Sper să adaug suport pentru mai multe funcții în viitor
eliberează. Invit voluntari să ajute în această sarcină. Vedeți fișierul ToDo în
distribuția codului sursă pentru detalii. În plus, atributele acceptate în prezent
toate tipurile obișnuite de date sunt DIMENSIUNE, EXTERNĂ, INTRINSECĂ, PARAMETRI și SALVARE.
Noua formă de declarare permite, de asemenea, atribuirea de valori variabilelor
declarat. În prezent, (LEN=valoare) forma de specificare a lungimii caracterelor este de asemenea
admis. Specificații amabile, folosind (KIND=valoare) sunt analizate, dar nu sunt
procesate: toate tipurile sunt tratate ca tip implicit. De asemenea, există puține verificări
a acestor declarații dincolo de sintaxa de bază.

Sunt furnizate multe funcții intrinseci nestandard întâlnite în mod obișnuit. Vezi
discuție despre -intrinsec pentru o listă de funcții și cum să controlați care sunt
recunoscut.

Verificarea argumentelor nu este strictă pentru acele intrinseci nestandard care preiau matrice sau
tipuri de argumente mixte.

ftnchek permite declarația INCLUDE, care determină includerea textului
fisierul dat. Sintaxa este
INCLUDE 'nume de fișier'
Acesta este compatibil cu Fortran 90. Dacă -source=vms-include este dată opțiunea,
ftnchek urmează convențiile VMS cu privire la această declarație: presupune a
extensia implicită a .pentru dacă nu este dată nicio extensie de nume de fișier și permite
calificativ /[NO]LIST după numele fișierului, pentru a controla listarea celor incluse
fişier. Nu există suport pentru includerea modulelor de text VMS.

În ieșirea de diagnosticare referitoare la elementele conținute în fișierele includ, locația
eroarea este specificată atât de locația sa în fișierul include, cât și de locația din
fișierul părinte în care a fost inclus fișierul.

ftnchek acceptă instrucțiuni PARAMETER care nu au paranteze. Acestea vor fi avertizate
despre dacă -f77=param-noparen este dat steag.

ftnchek acceptă definiţiile PARAMETRII care implică funcţii intrinseci şi
exponentiare printr-un exponent non-întreg. Ambele cazuri sunt interzise de
Fortran 77 Standard și va fi avertizat dacă -f77=param-intrinsec pavilion
este dată. Dacă o valoare intrinsecă a funcției este o constantă întreagă la compilare,
ftnchek o va evalua. Acest lucru permite o mai bună verificare dacă parametrul este utilizat în
declararea dimensiunilor matricei. Fortran 90 permite funcții intrinseci în PARAMETER
definiții.

Funcțiile intrinseci care sunt evaluate sunt:

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

Funcțiile argumentelor întregi sunt evaluate numai dacă argumentele sunt întregi
expresii constante. (Acestea pot implica constante întregi, parametri și
funcţii intrinseci evaluate.) Funcţia LEN este evaluată dacă argumentul său este
o expresie care implică numai constante de caractere și variabile a căror lungime nu este
reglabil. Funcțiile ICHAR și INDEX sunt evaluate numai dacă argumentele sunt
constante de caractere. ftnchek dă un avertisment dacă are nevoie de valoarea unora
funcţie intrinsecă care nu este evaluată.

NOU CARACTERISTICI


Iată modificările de la versiunea 3.2 la versiunea 3.3:

1. Front-end-ul a fost rescris pentru o perspectivă nelimitată, eliminând bug-ul de lungă durată
care a provocat interpretarea incorectă a afirmațiilor a căror ambiguitate nu a fost rezolvată în
prima linie.

2. -mkhtml opțiunea este acum disponibilă în versiunea MS-DOS.

3. S-a adăugat suport pentru sintaxa legată de pointerul Fortran 90: ALLOCATE, DEALLOCATE și NULLIFY
declarații; atributele ALLOCATABLE, POINTER și TARGET în declarațiile de tip; cel
operator de alocare pointer => și funcții intrinseci ALOCAT și ASOCIAT; și
declarații de matrice în formă amânată. În prezent, aceste noi caracteristici de sintaxă sunt acceptate
dar nu verificat corespunzător. Această caracteristică a fost adăugată de Robert Landrito.

4. -f77 și -f90 indicatorul Opțiunea de control a avertismentelor despre ``Cray pointers'' a fost
redenumit în cray-pointer. -f77=pointer opțiunea acum controlează în schimb avertismentele pentru
cod care conține sintaxă legată de pointer Fortran 90.

5. Re-implementat -mkhtml procesarea, astfel încât acum este mult mai rapidă pe fișierele sursă care conțin
multe rutine.

6. Am schimbat aranjamentul directorului de testare, astfel încât să nu mai fie nevoie de modificare
distribuția pentru a rula suita de teste (verifica.bat) sub MS-DOS.

7. S-a remediat o eroare în citirea setărilor numerice pe linia de comandă la setarea numelui abreviat
3 de caractere.

8. S-a remediat o eroare care provoca un avertisment fals pentru un GOTO referitor la o instrucțiune etichetată END
când declarația înainte de END a fost un FORMAT.

9. Steagul nou -f77=caracter pentru a controla avertismentele despre extensiile pentru Fortran 77
tip de date caracter. Însoțind acest nou steag este și suport pentru regulile Fortran 90 pentru
declarații de variabile caracter care evaluează la zero sau lungime negativă, permițând
le și tratând valorile negative ale lungimii ca zero.

10. S-a remediat o eroare minoră la tipărirea comentariilor și a liniilor goale după ultima declarație END
in -listă Mod.

Utilizați ftnchek online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    Console
    Console
    Brackets este un open-source modern și gratuit
    editor de text realizat special pentru Web
    Dezvoltare. Scris în HTML, CSS și
    JavaScript cu instrumente vizuale concentrate și
    pregătire...
    Descărcați paranteze
  • 2
    Compilator Pascal gratuit
    Compilator Pascal gratuit
    Un compilator Pascal pe 32/64/16 biți pentru
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, Game Boy
    Advance, Nintendo NDS și DOS;
    compatibil semantic cu...
    Descărcați gratuit Pascal Compiler
  • 3
    Informații Canon EOS DIGITAL
    Informații Canon EOS DIGITAL
    Canon nu are număr de obturatori
    incluse în informațiile EXIF ​​ale unui
    fișier imagine, spre deosebire de Nikon și
    Pentax. Nu există nicio bază oficială Canon
    aplicație ...
    Descărcați informațiile Canon EOS DIGITAL
  • 4
    REFIND
    REFIND
    rEFInd este o furcă a cizmei rEFIt
    administrator. La fel ca REFIt, REFInd poate
    detectează automat boot-ul EFI instalat
    încărcătoare și prezintă o interfață grafică destul de bună
    meniul opțiunii de boot...
    Descărcați REFInd
  • 5
    ExpressLuke GSI
    ExpressLuke GSI
    Această pagină de descărcare SourceForge trebuia să
    permite utilizatorilor să descarce sursa mea construită
    GSI, bazate pe phhusson's great
    muncă. Am construit atât Android Pie, cât și
    Android 1...
    Descărcați ExpressLuke GSI
  • 6
    Music Caster
    Music Caster
    Music Caster este un music player
    care vă permite să proiectați muzica locală la a
    Dispozitiv Google Cast. La prima alergare,
    va trebui să faceți clic pe săgeata din dvs
    tas...
    Descărcați Music Caster
  • Mai mult »

Comenzi Linux

Ad