IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

ftnchek - Online nel cloud

Esegui ftnchek nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando ftnchek che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


ftnchek - Controllo del programma Fortran 77

SINOSSI


ftnchek [ -argomenti[=stratagemma]] [ -Vettore[=stratagemma]]
[ -[no]breve ] [ - calltree[=stratagemma]] [ -[no]dai un'occhiata ]
[ -colonne[=num]] [ -Comune[=stratagemma]]
[ -[no]riferimento incrociato[=stratagemma]] [ -[no]dichiarare ]
[ -[no]divisione ] [ -errori[=num]] [ -[no]esterno ]
[ -[no]f77[=stratagemma]] [ -[no]f90[=stratagemma]]
[ -[no]f95[=stratagemma]] [ -[no]Aiuto ]
[ -[no]caratteri-identificatori[=stratagemma]] [ -include=str ]
[ -intrinseco[=stratagemma]] [ -[no]biblioteca ] [ -[no]stratagemma ]
[ -madecls[=stratagemma]] [ -mkhtml[=stratagemma]]
[ -[no]novizio ] [ -uscita=str ]
[ -dimensione del puntatore[=num]] [ -[no]portabilità[=stratagemma]]
[ -[no]piuttosto[=stratagemma]] [ -progetto[=stratagemma]]
[ -[no]puro ] [ -[no]silenzioso ] [ -[no]riferimento ]
[ -[no]risorse ] [ -[no]sei caratteri ] [ -[no]sorta ]
[ -fonte[=stratagemma]] [ Stile[=stratagemma]] [ -[no]sintassi ]
[ -[no]troncamento[=stratagemma]] [ -uso[=stratagemma]]
[ -[no]vcg ] [ -[no]versione ] [ -[no]volatile ]
[ -dimensione parola[=num]] [ -avvolgere[=num]] [ file ... ]

DESCRIZIONE


ftnchek (abbreviazione di Fortran checker) è progettato per rilevare determinati errori in un Fortran
programma che un compilatore di solito non fa. ftnchek non è principalmente destinato a rilevare
errori di sintassi. Il suo scopo è assistere l'utente nella ricerca di errori semantici. Semantico
gli errori sono legali nella lingua Fortran ma sono uno spreco o possono causare errori
operazione. Ad esempio, le variabili che non vengono mai utilizzate possono indicare qualche omissione nel
programma; le variabili non inizializzate contengono spazzatura che può causare risultati errati
calcolato; e le variabili che non sono dichiarate potrebbero non avere il tipo previsto. ftnchek
ha lo scopo di assistere gli utenti nel debug del loro programma Fortran. Non è inteso
per catturare tutti gli errori di sintassi. Questa è la funzione del compilatore. Prima dell'uso
ftnchek, l'utente deve verificare che il programma venga compilato correttamente.

Questo documento riassume innanzitutto come invocare ftnchek. Quella sezione dovrebbe essere letta prima
cominciando a usare ftnchek. Le sezioni successive descrivono ftnchekle opzioni di più in dettaglio, dai
un esempio del suo utilizzo e spiegare come interpretare l'output. Le sezioni finali
menzionare le limitazioni e i bug noti in ftnchek.

INVOCANDO FTNCHEK


ftnchek viene invocato tramite un comando della forma:

$ ftnchek [-option -option ...] nome file [nome file ...]

Le parentesi indicano qualcosa che è facoltativo. Le parentesi stesse non lo sono
effettivamente digitato. Qui le opzioni sono opzioni o impostazioni della riga di comando, che controllano il
funzionamento del programma e la quantità di informazioni che verranno stampate. se no
l'opzione è specificata, l'azione predefinita è stampare messaggi di errore, avvisi e
messaggi informativi, ma non l'elenco dei programmi o le tabelle dei simboli.

Ogni opzione inizia con il carattere '-'. (Sui sistemi VAX/VMS o MS-DOS è possibile utilizzare
o '/' o '-'.) Per motivi di conformità con una convenzione sempre più comune,
le opzioni possono anche iniziare con '--'. Le opzioni sono descritte più ampiamente nel prossimo
.

ftnchek le opzioni si dividono in due categorie: opzioni, che sono vere o false, e
impostazioni, che hanno un valore numerico o stringa. Il nome di un interruttore è preceduto da "no"
o 'no-' per disattivarlo: ad es -nopuro disattiverebbe gli avvisi sulle funzioni impure.
Il prefisso 'no' può essere utilizzato anche con impostazioni numeriche, con l'effetto di disattivare
le avvertenze corrispondenti. Le impostazioni che controllano gli elenchi di avvisi hanno una sintassi speciale
discusso di seguito. Solo i primi 3 caratteri del nome di un'opzione (senza contare il '-')
bisogno di essere fornito. I due punti possono essere usati al posto del segno uguale per numeri o stringhe
compiti di impostazione; tuttavia, di seguito mostriamo solo la forma del segno di uguale.

Gli interruttori e le impostazioni che ftnchek attualmente riconosce sono elencati di seguito. Per ciascuno
opzione, il valore predefinito è il valore utilizzato se l'opzione non è specificata esplicitamente, mentre l'opzione
turn-on è il valore utilizzato se l'opzione viene data senza assegnarle un valore.

-argomenti=stratagemma
Avvisi di controllo sul tipo di sottoprogramma e mancata corrispondenza degli argomenti. Predefinito = accensione
= tutto.

-matrice=stratagemma
Avvisi di controllo nel controllo degli argomenti dell'array dei sottoprogrammi. Predefinito = accensione =
tutti.

-breve Utilizzare un formato più breve per alcuni messaggi di errore. Predefinito = no.

-calltree=stratagemma
Produci la gerarchia delle chiamate del sottoprogramma in uno dei 3 formati: struttura delle chiamate di testo, chi-chiama-
chi e VCG. Predefinito = nessuno, accensione = albero, potatura, ordinamento.

Se l' -mkhtml l'opzione è invocata ed tree è l'opzione calltree applicata, un file
denominato CallTree.html, verrà prodotto raffigurante l'albero in formato HTML.

-dai un'occhiata Eseguire il controllo. Predefinito = sì.

-colonne=num
Imposta la lunghezza massima della linea su num colonne. (Oltre a questo viene ignorato.) Accensione = max =
132. Predefinito = 72.

-comune=stratagemma
Imposta il grado di rigore nel controllo dei blocchi COMUNI. Predefinito = accensione = tutto.

-riferimento incrociato=stratagemma
Stampa l'elenco di riferimenti incrociati delle chiamate dei sottoprogrammi, l'utilizzo dell'etichetta e/o il blocco COMUNE
uso. Predefinito = nessuno.

-dichiarare
Stampa un elenco di tutti gli identificatori il cui tipo di dati non è dichiarato esplicitamente. Predefinito
= n.

-divisione
Avvisa ovunque venga eseguita la divisione (tranne la divisione per costante). Predefinito = no.

-errori=num
Imposta il numero massimo di messaggi di errore per cascata. Predefinito = accensione = 3.

-esterno
Avvisa se i sottoprogrammi esterni richiamati non vengono mai definiti. Predefinito = sì.

-f77=stratagemma
Controlla avvisi specifici sulle estensioni supportate per lo standard Fortran 77.
Predefinito = nessuno, accensione = tutti.

-f90=stratagemma
Controlla avvisi specifici sulle estensioni supportate per lo standard Fortran 77
che non sono stati adottati come parte dello standard Fortran 90. Predefinito = nessuno, accensione
= tutto.

-f95=stratagemma
Controlla avvisi specifici sulle funzionalità standard di Fortran 77 che sono state eliminate da
lo standard Fortran 95. Predefinito = nessuno, accensione = tutti.

-Aiuto Riepilogo comandi di stampa. Predefinito = no.

-identificatore-caratteri=stratagemma
Definire caratteri non alfanumerici che possono essere utilizzati negli identificatori. Predefinito =
turn-on = segno di dollaro e underscore.

-include=sentiero
Definire una directory per cercare i file INCLUDE prima di cercare nel sistema
directory. Cumulativo. Predefinito = accensione = nessuno.

-intrinseco=stratagemma
Trattamento di controllo delle funzioni intrinseche non standard. Predefinito = tutti tranne vms per
Versione Unix, tutti tranne unix per la versione VMS, tutti tranne unix ed vms per altro
versioni. Accensione = tutto.

-biblioteca
Avvia modalità libreria: non avvisa sui sottoprogrammi nel file che sono definiti ma
mai usato. Predefinito = no.

-elenco Stampa l'elenco delle origini del programma. Predefinito = no.

-makedcls=stratagemma
Preparare un file di dichiarazioni. Il stratagemma specifica le opzioni per il formato di questo
file. Predefinito = nessuno, accensione = dichiarazioni.

-mkhtml=stratagemma
Crea file di documenti HTML individuali dall'analisi ftnchek e dai commenti sul codice.
Di solito vorrai anche specificare -call=albero per creare il file HTML radice
CallTree.html. Predefinito = nessuno, accensione = documenti.

-novizio
Fornisci un output adatto a utenti inesperti. Predefinito = sì.

-uscita=Nome del file
Invia l'output al file specificato. L'impostazione predefinita e l'accensione inviano l'output allo schermo.
(L'estensione del nome file predefinita è .LIS).

-dimensione puntatore=num
Imposta la dimensione delle variabili ``Cray pointer'' su num byte. Min = 1, massimo = 16.
Default = accensione = 4

-portabilità=stratagemma
Avvertire sugli utilizzi non portatili. Predefinito = nessuno, accensione = tutti.

-carino=stratagemma
Fornire avvisi per l'aspetto fuorviante del codice sorgente. Predefinito = turno-
acceso = tutto.

-progetto=stratagemma
Crea file di progetto (vedi spiegazione sotto). Predefinito = no.

-puro Supponiamo che le funzioni siano pure, cioè che non abbiano effetti collaterali. Predefinito = sì.

-silenzioso Produce un output meno dettagliato. Predefinito = no.

-riferimento
Stampa la tabella dei sottoprogrammi referenziati da ogni sottoprogramma. Predefinito = no.

-Risorse
Stampa la quantità di risorse utilizzate nell'analisi del programma. Predefinito = no.

-seichar
Elenca tutti i nomi di variabile che si scontrano con una lunghezza di 6 caratteri. Predefinito = no.

-ordinare Stampa l'elenco dei sottoprogrammi ordinati in base ai requisiti. Predefinito = no.

-sorgente=stratagemma
Seleziona le opzioni di formattazione della sorgente: forma fissa o libera, DEC Fortran con formattazione a schede
righe, istruzione INCLUDE in stile VMS, sequenze di escape con barra rovesciata in stile UNIX e
tipizzazione implicita dei parametri. Predefinito = nessuno, accensione = tutti.

-stile=stratagemma
Produci avvisi estremamente esigenti sulla programmazione obsoleta o antiquata
costruzioni. Predefinito = nessuno, accensione = tutti.

-simbolo
Stampa la tabella dei simboli e la tabella delle etichette per ogni sottoprogramma. Predefinito = no.

-troncamento=stratagemma
Verificare la possibile perdita di precisione a causa del troncamento. Predefinito = accensione = tutto.

-uso=stratagemma
Avvisi di controllo su variabili inutilizzate o non inizializzate, blocchi comuni, ecc.
Predefinito = accensione = tutto.

-vcg Produci il formato VCG del grafico delle chiamate.

-versione
Stampa il numero della versione. Predefinito = no.

-volatile
Supponiamo che i blocchi COMMON perdano la definizione tra le attivazioni. Predefinito = no. (Obsoleto.
Usa il -comune=volatile anziché.)

-dimensione parola=num
Imposta la dimensione della parola predefinita per le quantità numeriche su num byte. Predefinito = accensione =
4 byte.

-avvolgere=num
Imposta la colonna di output in cui avvolgere i messaggi di errore lunghi e gli avvisi al successivo
linea. Se impostato su 0, disattiva il wrapping. Default = accensione = 79.

Quando viene utilizzata più di un'opzione, devono essere separate da uno spazio vuoto, tranne on
sistemi come VMS in cui le opzioni iniziano con la barra ( / ). Non possono essere inseriti spazi vuoti
intorno al segno di uguale ( = ) in un'impostazione. ftnchek "?" produrrà un riepilogo dei comandi
elencando tutte le opzioni e le impostazioni.

Per le impostazioni che richiedono un elenco di parole chiave, vale a dire -argomenti, -Vettore, - calltree, -Comune,
-rif, -f77, -f90, -f95, -intrinseco, -madecls, -mkhtml, -portabilità, -bella,
-progetto, -fonte, Stile, -troncamentoe -uso, l'elenco è composto da parole chiave
separati da virgole o due punti. Se l'elenco delle parole chiave viene omesso, l'effetto è quello di impostare
l'opzione al suo valore di attivazione (uguale a ``all'' nella maggior parte dei casi). Inoltre, se l'elenco è
omesso, il nome dell'impostazione può essere preceduto da no or no- per disattivare tutte le opzioni it
controlli. Per esempio, -f77 attiva tutti gli avvisi sulle costruzioni non standard, mentre
-nof77 li spegne tutti. Tre parole chiave speciali sono:

Aiuto Stampa tutte le parole chiave dell'opzione controllate dall'impostazione, con una breve
spiegazione dei loro significati. Questa parola chiave non può essere fornita in un elenco con altri
parole chiave.

contro tutti i Imposta tutte le opzioni. Questo attiva tutte le opzioni controllate dall'impostazione.

nessuna Cancella tutte le opzioni. Questo disattiva tutte le opzioni controllate dall'impostazione.

Queste tre parole chiave speciali devono essere fornite per intero. Per tutte le altre parole chiave, solo altrettante
devono essere fornite le lettere della parola chiave necessarie per identificarla in modo univoco, oppure a
può essere utilizzato un modello di caratteri jolly. Includere una parola chiave nell'elenco trasforma il corrispondente
opzione attiva. Per esempio, -f77=intrinseco attiverebbe solo gli avvisi sull'uso di
funzioni intrinseche non standard. Anteporre una parola chiave con no- disattiva la sua opzione. Per
esempio, -pretty=no-long line disattiva gli avvisi sulle righe che superano le 72 colonne in
lunghezza lasciando in vigore tutti gli altri avvisi sull'aspetto fuorviante. Se un
l'impostazione è predefinita nessuna, puoi attivare tutte le opzioni tranne una o due usando contro tutti i
primo. Per esempio, -f77=tutto,non-includere abilita gli avvisi su tutte le estensioni non standard
tranne le istruzioni INCLUDE. Se un'impostazione è predefinita contro tutti i, puoi disattivare tutti gli avvisi
tranne uno o due usando nessuna primo. Per esempio, -troncamento=nessuno, retrocessione si girerebbe
disattivare tutti gli avvisi relativi alla precisione ad eccezione delle retrocessioni. I modelli di caratteri jolly contengono un
asterisco per indicare qualsiasi stringa di caratteri. Se viene utilizzato un pattern con caratteri jolly, tutti i
gli avvisi che corrispondono ad esso sono interessati. Se no- è preceduto dal modello, tutti gli abbinamenti
gli avvisi sono disattivati, altrimenti sono tutti accesi. La lunghezza minima non ambigua
regola non si applica alla corrispondenza con caratteri jolly. Ad esempio, usa -uso=no-*var* per disattivare
tutti gli avvisi relativi all'utilizzo variabile (sia locale che comune). (Gli utenti Unix potrebbero aver bisogno di
citare tutte le opzioni contenenti caratteri jolly per evitare che la shell tenti di farlo
espanderli.) I caratteri jolly vengono riconosciuti solo negli elenchi di parole chiave di avviso, non nelle
opzioni di livello stesse.

Quando ftnchek si avvia, cerca le variabili d'ambiente e anche le preferenze
file. Qualsiasi opzione definita nell'ambiente o nel file delle preferenze viene utilizzata come
impostazioni predefinite al posto di quelle predefinite. Sono sovrascritti da qualsiasi riga di comando
opzioni. Vedere la sezione sulla modifica delle impostazioni predefinite per i dettagli sull'ambiente
opzioni e il file delle preferenze.

Quando si assegna un nome a un file di input, l'estensione è facoltativa. Se non viene data alcuna estensione,
ftnchek cercherà prima un file di progetto con estensione .prj, e lo userò se è
esiste. Se no, allora ftnchek cercherà un file sorgente Fortran con estensione .per
per sistemi VMS, .f per sistemi UNIX. È possibile assegnare più di un nome di file ftnchek,
ed elaborerà i moduli in tutti i file come se fossero in un unico file.

I caratteri jolly sono consentiti nella specifica dei nomi dei file sulla riga di comando per il VMS
e versioni MS-DOS, come ovviamente anche sotto UNIX e qualsiasi altro sistema che esegue
espansione con caratteri jolly nel processore dei comandi.

Se non viene fornito alcun nome di file, ftnchek leggerà l'input dallo standard input.

VERSIONI


Questa sezione fornisce una discussione più dettagliata di ftnchek opzioni della riga di comando. Opzioni
e i nomi dei file possono essere intercalati su una riga di comando. La maggior parte delle opzioni sono posizionali: ciascuna
l'opzione rimane attiva dal punto in cui viene incontrata fino a quando non viene sovrascritta da a
modifica successiva. Così, ad esempio, l'elenco potrebbe essere soppresso per alcuni file e non per
altri. Le eccezioni sono: il -intrinseco, -dimensione del puntatoree -dimensione parola impostazioni, che
non può essere modificato una volta avviata l'elaborazione dei file di input; il -argomenti, -Vettore,
- calltree, -Comune, -rif, -esterno, -riferimento, -Risorse, -ordinare, -vcge -volatile
opzioni, dove l'azione dipende solo dal valore dell'opzione dopo l'elaborazione di
file di input è finito; e il -includere impostazione, che è cumulativa.

I nomi delle opzioni nell'elenco seguente sono in ordine alfabetico.

-argomenti=stratagemma
Controlla gli avvisi sulle discrepanze tra gli argomenti dei sottoprogrammi effettivi e fittizi,
e anche sulle discrepanze tra il tipo di sottoprogramma previsto e quello effettivo. (Un effettivo
argomento è un argomento passato al sottoprogramma dal chiamante; un argomento fittizio è
un argomento ricevuto dal sottoprogramma.) Per impostazione predefinita, tutti gli avvisi sono attivati.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Dal momento che tutti questi
gli avvisi sono attivi per impostazione predefinita, includi una parola chiave preceduta da no- spegnere un
avviso particolare. Ci sono tre parole chiave speciali: contro tutti i per accendere tutte le
avvertimenti su argomenti, nessuna per spegnerli tutti, e Aiuto per stampare l'elenco di
tutte le parole chiave con una breve spiegazione di ciascuna. Se stratagemma è omesso, -argomenti
è equivalente -argomenti=tuttie -noargomenti è equivalente -argomenti=nessuno.
Le parole chiave di avviso con i relativi significati sono le seguenti:

serietà:
avvisa sull'uso incoerente di argomenti che sono array. Questi avvertimenti possono
essere ulteriormente controllato dal -Vettore opzione.

Digitare:
avvisa su argomenti fittizi di un tipo di dati diverso dagli argomenti effettivi.

tipo di funzione:
avvisa se l'invocazione presuppone che il valore di ritorno della funzione sia di tipo diverso
di quanto non sia in realtà. Avvisa anche se una funzione viene chiamata come subroutine, o
viceversa.

numero:
avvisare sull'invocazione di un sottoprogramma con un numero di argomenti diverso dal
sottoprogramma si aspetta.

Per compatibilità con le versioni precedenti di ftnchek, una forma numerica di questo
anche l'impostazione è accettata: il stratagemma è sostituito da un numero compreso tra 0 e 3. Un valore di
0 disattiva tutti gli avvisi, 1 si attiva solo numero, 2 accende tutti tranne numero,
e 3 attiva tutti gli avvisi.

Questa impostazione non si applica al controllo delle chiamate di funzioni intrinseche o
funzioni di istruzione, che possono essere disattivate solo dal -nessun controllo opzione.

Vedi anche: -Vettore, -biblioteca, -uso.

-matrice=stratagemma
Controlla il grado di rigore nella verifica dell'accordo tra effettivo e fittizio
argomenti del sottoprogramma che sono array. Gli avvisi controllati da questa impostazione sono
per costruzioni che potrebbero essere legittimamente utilizzate da un programmatore esperto,
ma che spesso indicano errori di programmazione. Per impostazione predefinita, tutti gli avvisi sono disattivati
on.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Dal momento che tutti questi
gli avvisi sono attivi per impostazione predefinita, includi una parola chiave preceduta da no- spegnere un
avviso particolare. Ci sono tre parole chiave speciali: contro tutti i per accendere tutte le
avvisi sugli argomenti dell'array, nessuna per spegnerli tutti, e Aiuto per stampare il
elenco di tutte le parole chiave con una breve spiegazione di ciascuna. Se stratagemma è omesso,
-Vettore è equivalente -array=tuttoe -noarray è equivalente -array=nessuno.
le parole chiave di avviso con i loro significati sono le seguenti:

dimensioni:
avvisa se gli argomenti differiscono nel numero di dimensioni o se l'effettivo
argomento è un elemento dell'array mentre l'argomento fittizio è un intero array.

Taglia:
avvisa se entrambi gli argomenti sono array, ma differiscono nel numero di elementi.

Per compatibilità con le versioni precedenti di ftnchek, una forma numerica di questo
anche l'impostazione è accettata: il stratagemma è sostituito da un numero compreso tra 0 e 3. Un valore di
0 disattiva tutti gli avvisi, 1 si attiva solo dimensioni, solo 2 accensioni Tagliae
3 attiva tutti gli avvisi.

Nota: viene sempre fornito un avviso indipendentemente da questa impostazione se l'argomento effettivo
è un array mentre l'argomento fittizio è una variabile scalare, o se l'effettivo
argomento è una variabile o un'espressione scalare mentre l'argomento fittizio è un array.
Questi casi sono raramente intenzionali. (Per disattivare anche questi avvisi, utilizzare
-argomenti=nessuna matrice.) Non viene mai dato alcun avviso se l'argomento effettivo è an
elemento array mentre l'argomento fittizio è una variabile scalare. A dimensione variabile
gli array e gli array dimensionati con 1 o asterisco corrispondono a qualsiasi numero di array
elementi. Non è possibile verificare se gli array multidimensionali concordano nella dimensione
di ogni dimensione separatamente.

Vedi anche: -argomenti, -biblioteca, -uso.

-breve
Seleziona un formato più breve per alcuni messaggi di avviso. Al momento, gli unici avvertimenti
controllati da questo flag sono quelli che vengono stampati alla fine dell'elaborazione ciascuno
sottoprogramma. Questi includono avvisi sulle variabili che sono impostate ma non utilizzate o
usato prima di set, nomi di variabili non conformi allo standard Fortran 77,
ecc. (Questi avvisi possono essere soppressi completamente a seconda di altri flag, come ad esempio
, il -uso or -f77 flag.) Nel formato predefinito ogni variabile è elencata su a
riga separata, insieme al numero di riga in cui è dichiarata la variabile, impostare o
utilizzato, a seconda della natura dell'avvertimento. Il formato più breve elenca semplicemente tutto
variabili a cui si applica l'avviso, con un massimo di 4 variabili per riga.

Vedi anche: -silenzioso.

-calltree=stratagemma
Cause ftnchek per stampare la struttura delle chiamate del programma completo.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Ci sono due speciali
parole chiave: nessuna per disattivare tutte le opzioni e Aiuto per stampare l'elenco di tutti i
parole chiave con una breve spiegazione di ciascuna. (La parola chiave contro tutti i accende tutti i
opzioni, ma normalmente non dovrebbe essere usato poiché dovrebbe essere un solo formato
specificato.) Se stratagemma è omesso, - calltree è equivalente -calltree=alberoe
-nocalltree è equivalente -calltree=nessuno. Per impostazione predefinita, non viene stampato alcun grafico delle chiamate.

Se viene invocata l'opzione -mkhtml ed tree è l'opzione calltree applicata, un file
denominata CallTree.html, verrà prodotta anche la raffigurazione dell'albero in formato HTML. Questo
è utile come punto di partenza per sfogliare i file HTML che descrivono ciascuno
componente del programma.

Le parole chiave che controllano quale formato viene utilizzato sono le seguenti:

albero:
produrre il grafico delle chiamate in formato albero.

riferimento:
produrre il grafico delle chiamate nel formato chi-chiama-chi (come -riferimento interruttore).

vcg:
produrre il grafico della chiamata in formato VCG (come -vcg interruttore).

Solo uno dei formati albero, riferimento, o vcg può essere specificato.

Le seguenti parole chiave controllano le opzioni che influiscono sull'output:

fesso:
sfoltire sottoalberi ripetuti (applicabile solo con albero). Questa è l'impostazione predefinita.

sorta:
ordina i bambini di ogni routine in ordine alfabetico. Questa è l'impostazione predefinita.

Vedi la discussione del -riferimento ed -vcg bandiere per i dettagli su questi
formati.

Nel albero formato, Il grafico della chiamata viene stampato a partire dal programma principale,
che è elencato sulla prima riga al margine sinistro. Allora sulle righe seguenti,
ogni routine chiamata dal programma principale è elencata, rientrata di alcuni spazi, seguita
dal sottoalbero a partire da quella routine.

Nella modalità predefinita, se una routine viene chiamata da più di un'altra routine, il suo
call subtree viene stampato solo la prima volta che viene incontrato Le chiamate successive danno solo
il nome della routine e l'avviso ``(vedi sopra)''. Per stampare il sottoalbero per
ogni occorrenza della routine, usa l'opzione senza prugne.

Nota che l'albero delle chiamate sarà incompleto se uno qualsiasi dei file di input è di progetto
file contenenti più di un modulo che sono stati creati in -biblioteca modalità. Vedi il
discussione dei file di progetto di seguito.

Aspetti tecnici: Ogni lista di routine richiamate da una data routine è stampata in
ordine alfabetico a meno che il nessun tipo l'opzione è data. Se più programmi principali
vengono trovati, l'albero delle chiamate di ciascuno viene stampato separatamente. Se nessun programma principale è
trovato, viene stampato un rapporto in tal senso e gli alberi di chiamata di qualsiasi livello superiore
vengono stampate le routine non di libreria. Questo flag controlla solo la stampa della chiamata
albero: ftnchek costruisce in ogni caso l'albero delle chiamate perché è usato per determinare
quali moduli della libreria verranno sottoposti a controllo incrociato. Vedi la discussione del -biblioteca
bandiera.

Per compatibilità con le versioni precedenti di ftnchek, una forma numerica di questo
anche l'impostazione è accettata: il stratagemma è sostituito da un numero compreso tra 0 e 15. Questo
il numero è formato da 1 per albero formato, 2 per riferimento formato, o 3 per vcg
formato, più 4 per senza prugnee 8 per nessun tipo.

Vedi anche: -rif, -biblioteca, -riferimento, -ordinare, -simbolo, -vcg.

-dai un'occhiata
Questo interruttore è fornito in modo che gli errori e i messaggi di avviso possano essere disattivati ​​quando
ftnchek viene utilizzato per scopi diversi dalla ricerca di bug, come fare dichiarazioni
o stampare l'albero delle chiamate. È posizionale, quindi dopo aver disattivato tutti i controlli,
gli assegni selezionati possono essere riattivati. L'effetto di -nessun controllo è mettere tutto
interruttori, impostazioni numeriche e impostazioni che controllano gli elenchi di avvisi ai loro
valori di turn-off, come se fossero stati tutti specificati con il prefisso -no. Interruttori
e impostazioni che specificano opzioni e modalità di funzionamento, piuttosto che controllare
avvisi, non sono interessati. Questi sono -colonne, -rif, -includere, -intrinseco,
-biblioteca, -elenco, -madecls, -novizio, -produzione, -dimensione del puntatore, -progetto, -silenzioso,
-riferimento, -Risorse, -ordinare, -fonte, -simbolo, -vcg, -versione, -dimensione parolae
-avvolgere. Predefinito = sì.

Gli errori di analisi (errori di sintassi dovuti a dichiarazioni non riconosciute o malformate) non lo sono
soppressa da questo interruttore, poiché i risultati potrebbero essere errati se ftnchek non ha
analizzato il programma correttamente.

Ci sono alcuni errori vari e messaggi di avviso che non sono controllati da
qualsiasi altro interruttore, quindi può essere disattivato solo da questo interruttore. Nota che usando
-dai un'occhiata i seguenti -nessun controllo ha solo l'effetto di trasformare questi avvertimenti speciali
riacceso e non ripristina tutti i controlli che aveva disattivato. Questi avvisi sono:

o Il modulo non contiene istruzioni eseguibili.

o In forma sorgente libera, spazio mancante dove lo spazio è richiesto (ad esempio tra a
parola chiave e un identificatore) o spazio presente dove non è consentito (ad esempio all'interno di
un identificatore).

o Specifica di lunghezza zero o negativa in una dichiarazione del tipo di dati del modulo
tipo*len.

o Operando/i non valido/i in un'espressione.

o Array assegnato a scalare.

o Mancata corrispondenza del tipo tra indice DO e limiti.

o Blocco comune non definito dichiarato nell'istruzione SAVE.

o Funzione intrinseca dichiarata esplicitamente con un tipo incompatibile.

o Funzione intrinseca sconosciuta dichiarata esplicitamente in un'istruzione INTRINSIC.

o La funzione intrinseca passata come argomento del sottoprogramma non è dichiarata in an
Dichiarazione INTRINSECA.

o Funzione intrinseca o funzione di istruzione richiamata in modo errato.

o La funzione non imposta il valore restituito prima dell'istruzione RETURN.

o Valore della costante del parametro non valutato (questo è ftnchekè colpa, ed è solo
informandoti del fatto).

o Il punto di ingresso di un sottoprogramma viene successivamente utilizzato come nome di un sottoprogramma diverso.

o Parola chiave sconosciuta utilizzata in un'istruzione I/O.

o Riferimento etichetta illegale (es. GOTO fa riferimento a un'istruzione non eseguibile; I/O
dichiarazione si riferisce a una dichiarazione senza formato).

Vedi anche: -errori.

-colonne=num
Imposta la lunghezza massima dell'istruzione su num colonne. (Oltre a questo viene ignorato.) Questo
viene fornita l'impostazione per consentire il controllo dei programmi che potrebbero violare il Fortran
limite standard di 72 colonne per la lunghezza di un'istruzione. Secondo il
standard, tutti i caratteri oltre la colonna 72 vengono ignorati. Se questa impostazione viene utilizzata quando
, il -f77=linea lunga l'opzione è attiva, verrà dato un avviso per qualsiasi riga in
quali caratteri oltre la colonna 72 vengono elaborati. Accensione = max = 132. Predefinito = 72.

Questa impostazione non sopprime gli avvisi sulla presenza di caratteri oltre
colonna 72. Per elaborare il codice con un testo di programma significativo oltre la colonna 72, usa questo
l'impostazione e assicurarsi che -f77 linea lunga l'opzione è disattivata. Per elaborare il codice con
numeri di sequenza nelle colonne da 73 a 80, lasciare l'impostazione delle colonne al valore predefinito
valorizzare e utilizzare il -pretty=no-long line bandiera.

Vedi anche: -f77, -bella.

-comune=stratagemma
Questa impostazione controlla la severità del controllo dei blocchi COMMON. Per impostazione predefinita, tutto
avvertenze tranne volatile sono accesi.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Poiché la maggior parte di questi
gli avvisi sono attivi per impostazione predefinita, includi una parola chiave preceduta da no- spegnere un
avviso particolare. Ci sono tre parole chiave speciali: contro tutti i per accendere tutte le
avvertimenti, nessuna per spegnerli tutti, e Aiuto per stampare l'elenco di tutte le parole chiave
con una breve spiegazione di ciascuno. Se stratagemma è omesso, -Comune è equivalente
-comune=dimensioni,esatto,lunghezza,tipoe -nocomune è equivalente -comune=nessuno.
Le parole chiave di avviso con i relativi significati sono le seguenti:

dimensioni:
gli array corrispondenti in ogni dichiarazione di un blocco devono concordare in dimensioni e
numero di dimensioni. Questa opzione ha effetto solo se usata insieme a
esattamente.

esattamente:
il confronto di due blocchi viene eseguito variabile per variabile anziché semplicemente
che richiedono un accordo tra le posizioni di stoccaggio corrispondenti. Usa questo se tutto
si suppone che le dichiarazioni di un dato blocco COMMON siano identiche, il che è a
buona pratica di programmazione.

lunghezza:
avvisa se diverse dichiarazioni dello stesso blocco non sono uguali in lunghezza totale.
Lo standard Fortran 77 richiede ogni blocco comune denominato, ma non comune vuoto,
essere della stessa lunghezza in tutti i moduli del programma.

Digitare:
in ogni dichiarazione di un dato blocco COMMON, le corrispondenti locazioni di memoria
(parole o byte) devono concordare nel tipo di dati. Se usato insieme a esattamente, Questo
richiederà che le variabili corrispondenti coincidano nel tipo di dati.

volatile:
Supponiamo che i blocchi COMMON siano volatili.

Molti programmatori Fortran presumono che le variabili, locali o in COMMON, siano
statico, cioè che una volta assegnato un valore, mantengono quel valore permanentemente fino a quando
assegnato un valore diverso dal programma. Tuttavia, in effetti il ​​Fortran 77
Lo standard non richiede che questo sia il caso. Le variabili locali possono diventare
indefinito tra le attivazioni di un modulo in cui sono dichiarati. Allo stesso modo,
I blocchi COMMON possono diventare indefiniti se nessun modulo in cui sono dichiarati è
attivo. (Il termine tecnico per entità con questo comportamento è ``automatico'', ma
ftnchek usa la parola ``volatile'' poiché è più chiara al non specialista.) Solo
Blocchi COMMON dichiarati in un'istruzione SAVE, o dichiarati nel programma principale o in a
Il sottoprogramma dei dati del blocco rimane definito finché il programma è in esecuzione. Variabili
e i blocchi COMMON che possono diventare indefiniti ad un certo punto sono chiamati volatili.

Se l' -comune=volatile la bandiera è accesa, ftnchek ti avviserà se trova un
blocco COMUNE volatile. Se, allo stesso tempo, il -usage=blocco-com-volatile opzione
è attivato (che è l'impostazione predefinita), ftnchek proverò a verificare se un tale blocco
può perdere il suo stato definito tra le attivazioni dei moduli in cui si trova
dichiarato. ftnchek non fa un ottimo lavoro in questo: la regola usata è vedere
se il blocco è dichiarato in due sottoalberi separati dell'albero delle chiamate. Per
esempio, questo sarebbe il caso se due moduli, entrambi chiamati dal programma principale,
condiviso un blocco COMMON volatile. Un blocco può anche diventare indefinito tra due
chiamate successive dello stesso sottoprogramma, ma ftnchek non è abbastanza intelligente da dirlo
se un sottoprogramma può essere chiamato più di una volta, quindi questo caso non viene verificato.

I -comune=volatile la bandiera non influisce sulla strada ftnchek controlla l'uso di local
variabili.

Per compatibilità con le versioni precedenti di ftnchek, una forma numerica di questo
anche l'impostazione è accettata: il stratagemma è sostituito da un numero compreso tra 0 e 3. Un valore di
0 disattiva tutti gli avvisi, 1 o più si attiva Digitare, 2 o più si accende
lunghezzae 3 si accende dimensioni ed esattamente anche. Il modulo numerico non può accendersi
, il volatile opzione.

Vedi anche: -biblioteca, -uso.

-riferimento incrociato=stratagemma
Stampa tabelle di riferimenti incrociati. Predefinito = nessuno.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Le parole chiave con
i loro significati sono i seguenti:

chiamate:
tabella elenca ogni sottoprogramma seguito da un elenco di routine che lo chiamano.
Questo elenco omette i moduli della libreria che non sono nell'albero delle chiamate del main
programma. L'elenco è in ordine alfabetico.

comune:
tabella elenca ogni blocco COMMON seguito da un elenco delle routine che accedono
esso. Queste routine elencate sono quelle in cui alcune variabili nel COMMON
si accede al blocco, non semplicemente a quelle routine che dichiarano il blocco. (A
scopri quali routine dichiarano un blocco COMMON ma non lo usano, vedi il
-uso bandiera.)

etichette:
tabella elenca ogni etichetta seguita da un elenco di tutti i riferimenti ad essa. Un'etichetta
il riferimento è indicato dal numero di riga e dal tipo di istruzione del referente
dichiarazione. L'elenco delle etichette è in ordine sequenziale. I riferimenti sono
elencati nell'ordine in cui vengono rilevati nel programma.

Vedi anche: - calltree, -riferimento, -ordinare, -simbolo, -vcg.

-dichiarare
Se questo flag è impostato, tutti gli identificatori il cui tipo di dati non è dichiarato in ogni modulo
sarà elencato. Questo flag è utile per aiutare a trovare nomi di variabili errati,
ecc. Lo stesso elenco verrà fornito se il modulo contiene un IMPLICIT NONE
dichiarazione. Predefinito = no.

Vedi anche: -seichar, -uso.

-divisione
Questa opzione viene fornita per aiutare gli utenti a individuare potenziali divisioni per zero problemi. Se
questo interruttore è selezionato, ogni divisione tranne una costante sarà contrassegnata. (Esso
si assume che l'utente sia abbastanza intelligente da non dividere per una costante che è
uguale a zero!) Default = no.

Vedi anche: -portabilità, -troncamento.

-errori=num
Imposta il numero massimo di messaggi di errore in una ``cascata''. Durante il controllo di
accordo degli argomenti del sottoprogramma, dichiarazioni di blocco comuni e così via,
a volte un singolo caso genererà una lunga serie di avvisi. Spesso questo semplicemente
indica una causa diversa da una mancata corrispondenza genuina articolo per articolo, ad esempio per
esempio una variabile mancante da un elenco. Quindi in questi casi ftnchek smette di stampare
gli avvisi dopo il raggiungimento del limite di cascata e il trailer ``etc...'' è
stampato per indicare che c'erano più errori non stampati. Se pensi che
è probabile che questi avvisi siano autentici, utilizza questa impostazione per visualizzarne altri.
Accensione = default = 3, max = 999. Un valore di 0 significa nessun limite.

Questa impostazione non stabilisce un limite complessivo al numero di messaggi di errore stampati,
solo il numero stampato in una qualsiasi cascata. La maggior parte dei tipi di avvisi ed errori
i messaggi non sono soggetti all'effetto a cascata e quindi non sono interessati da questo
collocamento. Per disattivare gli avvisi in generale, utilizzare il controllo degli avvisi individuali
opzioni o il -nessun controllo opzione.

Vedi anche: -dai un'occhiata.

-esterno
Cause ftnchek per segnalare se i sottoprogrammi richiamati dal programma non vengono mai
definito. Normalmente, se ftnchek viene eseguito su un programma completo, ciascuno
un sottoprogramma diverso dalle funzioni intrinseche dovrebbe essere definito da qualche parte. Giro
disattiva questo interruttore se vuoi solo controllare un sottoinsieme di file che fanno parte di a
programma completo più ampio. Gli argomenti del sottoprogramma verranno comunque verificati
correttezza. Predefinito = sì.

I -esterno la bandiera è ora sostituita da -utilizzo=ext-non definito opzione. Per il
per comodità, il -esterno la bandiera viene mantenuta, in modo che -non esterno è equivalente
a -usage=no-ext-non definito opzione. Il -esterno switch può essere ritirato alla fine.

Vedi anche: -biblioteca.

-f77=stratagemma
Usa questa impostazione per catturare estensioni di lingua che violano il Fortran 77
Standard. Tali estensioni possono impedire la portabilità del programma. Esempi
includere l'uso di caratteri di sottolineatura nei nomi delle variabili; nomi di variabili più lunghi di sei
caratteri; righe di istruzione più lunghe di 72 caratteri; e dichiarazioni non standard
come la struttura DO...ENDDO. ftnchek non riferisce sull'uso di
lettere minuscole. Per impostazione predefinita, tutti gli avvisi sono disattivati.

Questa impostazione fornisce un controllo dettagliato sugli avvisi sulle estensioni supportate
allo standard Fortran 77. (Ulteriori dettagli sulle estensioni stesse sono
indicato di seguito nella sezione sulle estensioni.) Il stratagemma consiste di parole chiave separate
da virgole o due punti. Ci sono tre parole chiave speciali: contro tutti i per accendere tutte le
avvisi sulle estensioni non standard, nessuna per spegnerli tutti, e Aiuto per stampare
l'elenco di tutte le parole chiave con una breve spiegazione di ciascuna. Se stratagemma è omesso,
-f77 è equivalente -f77=tuttoe -nof77 è equivalente -f77=nessuno. L'avviso
le parole chiave con il loro significato sono le seguenti:

tipo di accettazione:
Istruzioni ACCEPT e TYPE I/O.

limiti dell'array:
Espressioni che definiscono i limiti dell'array che contengono elementi o funzioni dell'array
Riferimenti.

assegnamento-stmt:
Istruzioni di assegnazione che coinvolgono array. In Fortran 90, un array può essere
assegnato a un altro array di forma compatibile, oppure è possibile assegnare uno scalare a
un array. Nessuno di questi incarichi è consentito in Fortran 77.

Un avviso correlato si verifica quando un array viene assegnato a uno scalare. Da questo
è illegale anche in Fortran 90, viene sempre avvertito indipendentemente dal
-f77 impostazione (a meno che tutti i controlli non siano disattivati ​​con il -nessun controllo bandiera).

attributo-decl:
Dichiarazioni di tipo nel nuovo stile basato sugli attributi Fortran 90. Questo stile di
dichiarazione si distingue per l'uso di due punti (::) tra i
elenco degli attributi e l'elenco delle variabili dichiarate. Anche questa opzione
controlla le avvertenze per l'uso della lunghezza o del tipo del Fortran 90 nel tipo
dichiarazioni. (Sebbene questi specificatori possano essere usati in non basati su attributi
dichiarazioni, sono controllati da questa opzione per evitare la proliferazione di
-f77 opzioni.)

array-automatico:
Array locali (non fittizi) con dimensioni variabili. Questi corrisponderebbero a
array la cui memoria dovrebbe essere allocata dinamicamente in fase di esecuzione.

backslash:
Unix backslash escape nelle stringhe. Questo avviso verrà dato solo se il
-source=unix-barra rovesciata l'impostazione è specificata per causare l'escape
interpretazione del backslash..

byte: Dichiarazione del tipo di dati BYTE.

caso-costruire:
Il costrutto SELECT CASE.

carattere:
Estensioni allo standard Fortran 77 per quanto riguarda i dati dei personaggi. In questo momento,
questo controlla solo gli avvertimenti sulle variabili carattere dichiarate con zero o
lunghezza negativa. In Fortran 77, tutte le variabili carattere devono essere positive
lunghezza. In Fortran 90, possono essere di lunghezza zero e dichiarazioni che
specificare lunghezze negative sono consentite, trasformandosi in zero per il dichiarato
lunghezza. Nota: poiché gli specificatori di lunghezza negativi possono indicare una programmazione
errore, l'avviso viene fornito anche se questa opzione è disattivata e
è soppresso solo dal -nessun controllo bandiera.

nome-sottoprog-comune:
Blocco comune e sottoprogramma con lo stesso nome.

nome-costrutto:
Uso di un nome-costrutto per etichettare un'istruzione di controllo.

continuazione:
Più di 19 linee di continuazione successive.

cpp: Direttive del preprocessore Unix C nel codice sorgente.

puntatore a cray:
Sintassi del ``Cray pointer''.

ciclo-uscita:
Le istruzioni CYCLE e EXIT.

d-commento:
Debug dei commenti che iniziano con D nel codice sorgente.

dec-scheda:
Codice sorgente in formato scheda in stile DEC Fortran. Questo avviso sarà dato solo
se l' -source=scheda dec l'impostazione è specificata per causare l'interpretazione delle schede
in questo stile.

fare la fine:
Estensioni del ciclo DO: etichetta dell'istruzione terminale omessa, END DO e WHILE.

doppio complesso:
Tipo di dati complessi a doppia precisione.

formato-dollaro:
Codice di controllo del simbolo del dollaro nelle istruzioni FORMAT.

formato-modifica-descr:
Descrittori di modifica non standard nelle istruzioni FORMAT.

funzione-noparen:
Definizione di funzione senza parentesi.

implicito-nessuno:
IMPLICIT NONE dichiarazione.

includere:
INCLUDERE dichiarazione.

commento in linea:
Commenti in linea che iniziano con un punto esclamativo.

lista-interna-io:
I/O diretto da elenco verso o da un file interno.

intrinseco:
Funzioni intrinseche non standard.

io-parole chiave
Parole chiave non standard utilizzate nelle istruzioni I/O. Questi si dividono in tre gruppi.
Il primo gruppo include parole chiave accettate in Fortran 90:

LETTURA SCRITTURA DEL PANNELLO D'AZIONE
DIMENSIONE POSIZIONE ANTICIPATA
DELIM LEGGI SCRIVI
EOR
Il secondo gruppo comprende le seguenti parole chiave VMS Fortran:

BLOCCO ESTENDI SOLO LETTURA
BUFFERCOUNT INITIALSIZE RECORDSIZE
CARRIAGECONTROL MAXREC RECORDTYPE
NOME FILE PREDEFINITO (in APERTO) CONDIVISO
DISP NOSPANBLOCK TIPO
SMALTIRE L'ORGANIZZAZIONE
(La parola chiave NAME è standard solo nell'istruzione INQUIRE.) Il terzo
gruppo è costituito dalla seguente parola chiave IBM/MVS:

NUM
Questo flag controlla anche un avviso sull'uso di ACCESS='APPEND', che è
accettato da alcuni compilatori. Il valore di 'APPEND' non è valido per nessun I/O
specificatore in Fortran 77 standard e in Fortran 90 'APPEND' dovrebbe essere usato
come valore dell'identificatore POSITION, non ACCESS.

linea lunga:
Dichiarazioni con codice significativo oltre 72 colonne. Questo avvertimento viene dato solo
se l' -colonne l'impostazione è stata utilizzata per aumentare la larghezza del campo dell'istruzione.

nome lungo:
Identificatori lunghi più di 6 caratteri.

misto-comune:
Dati misti di caratteri e non caratteri nel blocco COMMON.

espressione mista:
Combinazioni di tipi non standard nelle espressioni, ad esempio DOPPIA PRECISIONE
con COMPLEX, assegnando hollerith a interi, operazioni logiche su interi.

nome-dollaro:
Simbolo del dollaro utilizzato come carattere negli identificatori.

nome-sottolineatura:
Underscore usato come carattere negli identificatori.

Lista di nomi:
NAMELIST dichiarazione.

param-tipo-implicito:
Digitazione implicita di un parametro in base al tipo di dati del valore assegnato. Questo
l'avviso può verificarsi solo se la digitazione implicita dei parametri è stata attivata dal
-source=param-tipo-implicito opzione, o se l'istruzione PARAMETER è del
forma non standard senza parentesi. Se questa opzione è attivata, allora any
i casi in cui si verifica la digitazione implicita dei parametri verranno avvisati. Se
vuoi essere avvisato solo in quei casi in cui il tipo di dati implicito
differisce dal tipo predefinito, utilizzare -portability=param-tipo-implicito anziché.
Secondo lo standard Fortran 77, viene fornito il tipo di dati di un parametro
con le stesse regole di una variabile e, se necessario, una conversione di tipo è
fatto quando il valore è assegnato.

param-intrinseco:
Funzione intrinseca o elevamento a potenza di un reale utilizzato per definire il valore di a
PARAMETRO definizione.

param-noparen:
Istruzione PARAMETER senza parentesi. L'utente deve essere consapevole che il
la semantica di questa forma dell'enunciato differisce da quella dello standard
form: in questa form, il parametro prende il suo tipo di dati dal valore
assegnato, piuttosto che avere il suo tipo di dati predefinito basato sulla prima lettera
del nome del parametro. (È stata introdotta questa forma dell'istruzione PARAMETER
dal DEC prima che lo standard Fortran 77 fosse definito, e dovrebbe essere evitato.)

pointer:
Sintassi relativa al puntatore standard Fortran 90, inclusi POINTER, TARGET e
Dichiarazioni di tipo ALLOCATABLE, istruzioni ALLOCATE, DEALLOCATE e NULLIFY,
e l'assegnazione del puntatore usando =>.

quad-costante:
Costanti reali con precisione quadrupla, ad esempio della forma 1.23Q4.

virgolette:
Stringhe delimitate da virgolette anziché da apostrofi.

ripassa:
Operatori relazionali (di confronto) composti dalla punteggiatura, ovvero: < <= == /=
> >=.

punto e virgola:
Punto e virgola utilizzato come separatore di istruzioni.

ordine-dichiarazione:
Dichiarazioni fuori dalla sequenza prescritta dallo Standard. Il permesso
La sequenza è illustrata nella Tabella 1 nella sezione Interpretazione dell'output.

costante senza tipo:
Costanti senza tipo, ad esempio Z'19AF'.

tipo-dimensione:
Dichiarazioni di tipo che specificano una dimensione, ad esempio REAL*8.

formato-variabile:
Specifica di ripetizione variabile o dimensione del campo in FORMAT. Questi sono della forma
< espr >.

vms-io:
Obsoleto. Ora ha lo stesso significato di io-parole chiave parola chiave.

Vedi anche: -f90, -f95, -portabilità, -bella, Stile, -dimensione parola.

-f90=stratagemma
Questa impostazione fornisce un controllo dettagliato sugli avvisi sulle estensioni supportate
al Fortran 77 Standard che non sono stati adottati come parte del Fortran 90
Standard. Notare che ftnchek non supporta l'intero linguaggio Fortran 90.
Tuttavia, supporta alcune estensioni comuni a Fortran 77 che erano prevalenti
prima che Fortran 90 fosse definito. Alcuni di questi ampliamenti entrarono a far parte del Fortran
90 Standard, ma altri no. Il -f90 l'impostazione avverte solo di quest'ultimo.
Cioè, questa bandiera copre cose che non sono né legali Fortran 77 né legali
Fortran 90. Pertanto, gli avvisi controllati da questo flag sono fondamentalmente un sottoinsieme
degli avvisi controllati da -f77. Ci sono alcuni casi, descritti di seguito, in cui
le circostanze in cui viene dato l'avvertimento sono leggermente diverse per i due
bandiere.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Ce ne sono tre
parole chiave speciali: contro tutti i per attivare tutti gli avvisi sulle estensioni non standard,
nessuna per spegnerli tutti, e Aiuto per stampare l'elenco di tutte le parole chiave con a
breve spiegazione di ciascuno. Se stratagemma è omesso, -f90 è equivalente -f90=tuttoe
-nof90 è equivalente -f90=nessuno.

Le seguenti parole chiave hanno lo stesso significato per -f90 quanto a -f77. Il lettore è
fare riferimento alle spiegazioni sotto -f77.

tipo di accettazione doppio complesso param-noparen
backslash formato-dollaro puntatore a cray
byte formato-modifica-descr quad-costante
cpp funzione-noparen tipo-dimensione
d-commento nome-dollaro formato-variabile
dec-scheda param-tipo-implicito vms-io

Le parole chiave che differiscono un po' dalle corrispondenti -f77 le parole chiave sono come
segue.

continuazione:
Il limite al numero di righe di continuazione per un'istruzione in fonte fissa
la forma è la stessa, vale a dire 19, in Fortran 90 come in Fortran 77. Per fonte gratuita
il limite è di 39 righe di continuazione e una riga contenente una continuazione
mark non può essere altrimenti vuoto o contenere solo un commento.

intrinseco:
Questo è lo stesso di per -f77 ad eccezione delle funzioni intrinseche definite in
MIL-STD 1753, che sono tutti inclusi in Fortran 90, quindi non sono avvisati
di. (Vedere -intrinseco per un elenco.)

io-parole chiave:
Questo è lo stesso di per -f77 tranne che non vengono forniti avvisi per l'I/O
parole chiave standard in Fortran 90.

linea lunga:
Sebbene lo standard Fortran 90 consenta righe più lunghe di 72 caratteri in
modulo sorgente gratuito, questa restrizione si applica ancora al modulo sorgente fisso. In
fonte gratuita il limite di lunghezza della riga è di 132 caratteri e, a differenza di fisso
modulo, ftnchek non consente di aumentare tale limite.

espressione mista:
Questo è lo stesso di per -f77 tranne che per le espressioni che mescolano una precisione estesa
real con tipi di dati complessi, consentiti in Fortran 90.

ordine-dichiarazione:
Questo è simile al corrispondente -f77 avvertimento, ma si applica un po'
restrizioni più allentate sull'ordine di dichiarazione del Fortran 90 Standard. In
in particolare, Fortran 90 consente dichiarazioni DATA e funzione-istruzione
le definizioni devono essere mescolate con le dichiarazioni di specifica.

costante senza tipo:
In Fortran 90, costanti binarie, ottali ed esadecimali della forma B'ddd',
Sono consentiti rispettivamente O'ddd' e Z'ddd'. Qui 'ddd' rappresenta a
stringa di cifre. ftnchek riconosce queste forme, così come una variante di
la forma X'ddd' per una costante esadecimale e altre varianti in cui il
l'indicatore di base B, O, Z o X segue la stringa di cifre. Queste varianti erano
non adottato in Fortran 90, quindi solo loro vengono avvertiti quando questa bandiera è
acceso.

Vedi anche: -f77, -f95, -portabilità, -bella, Stile, -dimensione parola.

-f95=stratagemma
Questa impostazione fornisce un controllo dettagliato sugli avvisi sul Fortran 77 . standard
caratteristiche che sono state eliminate dallo standard Fortran 95. non mi piace il -f77 ed -f90
impostazioni, questi avvertimenti si applicano alla sintassi che è legale Fortran 77. Tuttavia, poiché
queste funzionalità sono state eliminate dallo Standard, è possibile che i programmi
che li contengono sarà inaccettabile per alcuni compilatori più recenti.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Ce ne sono tre
parole chiave speciali: contro tutti i per attivare tutti gli avvisi sulle estensioni non standard,
nessuna per spegnerli tutti, e Aiuto per stampare l'elenco di tutte le parole chiave con a
breve spiegazione di ciascuno. Se stratagemma è omesso, -f95 è equivalente -f95=tuttoe
-nof95 è equivalente -f95=nessuno. Le parole chiave di avviso con i loro significati sono come
segue.

vero fare:
Una variabile DO di qualsiasi tipo numerico reale.

pausa:
L'istruzione PAUSE.

assegnare:
L'istruzione ASSIGN, il GOTO assegnato o il formato assegnato.

h-modifica:
Il descrittore di modifica H in un formato.

C'è un'altra funzionalità di sintassi di Fortran 77 che è stata eliminata in Fortran 95, vale a dire
ramificazione a un ENDIF dall'esterno del blocco IF. Tuttavia, ftnchek non è in grado di
analizzare il flusso del programma e quindi non fornisce un avviso per questo.

Vedi anche: -f77, -f90, -portabilità, -bella, Stile, -dimensione parola.

-Aiuto
Stampa un elenco di tutte le opzioni della riga di comando con una breve descrizione di ciascuna
insieme al suo valore predefinito. Questo comando è identico nella funzione al ``?''
argomento, ed è fornito per comodità per quei sistemi in cui la domanda
mark ha un significato speciale per l'interprete dei comandi. Predefinito = no.

L'elenco della guida stampa anche il numero di versione e il livello di patch di ftnchek e
avviso di copyright.

Nota: i valori ``predefiniti'' stampati tra parentesi quadre nell'elenco della guida sono,
in senso stretto, non le impostazioni predefinite ma i valori correnti dopo qualsiasi
opzioni dell'ambiente e qualsiasi opzione della riga di comando che precede il -Aiuto opzione avere
stato elaborato.

Vedi anche: -novizio, -versionee Aiuto opzione di tutte le impostazioni che prendono un elenco di
parole chiave.

-identificatore-caratteri=stratagemma
Definire caratteri non alfanumerici che possono essere utilizzati negli identificatori. Per impostazione predefinita,
ftnchek accetta solo il simbolo del dollaro e il carattere di sottolineatura come caratteri non alfanumerici
nei nomi identificativi. I personaggi in stratagemma sostituire qualsiasi insieme di accettato
caratteri non alfanumerici era precedentemente in vigore. Quindi, se il simbolo del dollaro o
i caratteri di sottolineatura non sono inclusi nell'elenco, perdono il loro status di accettabili
caratteri.

Questa opzione è fornita per abilitare ftnchek per gestire file sorgente contenenti non
nomi identificativi standard che potrebbero essere necessari, ad esempio, per accedere a determinati
servizi del sistema operativo. Vedere la sezione su Limitazioni ed estensioni per il
trattamento degli identificatori contenenti questi caratteri nella tipizzazione implicita.

utilizzando -noidentifer-caratteri disattiva l'accettazione di caratteri non alfanumerici
interamente.

Vedi anche: -fonte.

-include=sentiero
Specifica una directory in cui cercare i file specificati dalle istruzioni INCLUDE.
A differenza di altre opzioni della riga di comando, questa impostazione è cumulativa; cioè, se lo è
dato più di una volta sulla riga di comando, tutte le directory così specificate sono
inseriti in una lista che verrà cercata nello stesso ordine in cui sono dati. Il
ordine in cui ftnchek cerca un file da includere è: il corrente
elenco; la directory specificata dalla variabile d'ambiente FTNCHEK_INCLUDE se presente;
le directory specificate da any -includere opzioni; la directory specificata da
variabile d'ambiente INCLUDE; e infine in una directory standard a livello di sistema
(/ usr / include per UNIX, SYS$LIBRARY per VMS e \include per MSDOS).

Vedi anche: -f77, -fonte.

-intrinseco=stratagemma
Controlla se ftnchek riconosce alcune funzioni intrinseche non standard come
intrinseco. Il stratagemma è costituito da parole chiave separate da virgole o due punti. Un po 'di
le parole chiave controllano se riconoscere determinati gruppi di funzioni e altri
le parole chiave controllano la sintassi prevista per invocare alcuni intrinseci non standard.
Includere una parola chiave per attivare il riconoscimento del corrispondente set di elementi intrinseci o
per consentire la sintassi corrispondente. Includi una parola chiave preceduta da no- per disattivare
quel riconoscimento.

Ci sono tre parole chiave speciali: contro tutti i attiva il riconoscimento di tutti i non standard
intrinseci (elencati di seguito) e accetta una delle due sintassi per quelle che hanno variazioni.
Usa il nessuna per disattivare il riconoscimento di tutti gli elementi intrinseci non standard eccetto quelli annotati
qui di seguito. Uso Aiuto per stampare l'elenco di tutte le parole chiave con una breve spiegazione di
ogni. Se stratagemma è omesso, -intrinseco è equivalente -intrinseco=tuttoe
-nointrinseco è equivalente -intrinseco=nessuno.

Le funzioni intrinseche non standard necessarie per supportare l'estensione non standard
i tipi di dati di precisione (doppio complesso e precisione quad) sono sempre riconosciuti.
Gli intrinseci per il tipo di dati double complex sono:

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIMAG ZEXP ZCOS
CDSIN
Gli elementi intrinseci per i tipi quad precision e quad complex sono:

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
Le parole chiave che controllano il riconoscimento di altre funzioni intrinseche non standard sono
come segue:

extra:
riconoscere i seguenti elementi intrinseci non standard comunemente disponibili (tutti tranne
EXIT e LOC sono definiti in MIL-STD 1753):

Miglior IBCLR IEOR ISHFTC
USCITA IBITS IOR LOC
IAND IBSET ISHFT NON

unix: riconosce queste comuni funzioni intrinseche specifiche di Unix:

INTERROMPI GMTIME LTIME SRAND
E IARGC O SISTEMA
GETARG IRAND RAND TEMPO
GETENV LSHIFT RSHIFT XOR

vms: riconosce queste comuni funzioni intrinseche specifiche del VMS:

DATA IDATA SECONDI ORA

ERRSNS HA ESEGUITO DIMENSIONI

iargc-nessun argomento:
specificare che IARGC può essere invocato senza argomenti.

iargc-one-argoment:
specificare che IARGC può essere invocato con un argomento.

rand-no-argoment:
specificare che RAND e IRAND possono essere invocati senza argomenti.

rand-one-argomentazione:
specificare che RAND e IRAND possono essere invocati con un argomento.

I nessun argomento ed un argomento le parole chiave funzionano come segue: attivare l'opzione
cause ftnchek accettare la sintassi corrispondente per l'invocazione della funzione,
senza escludere la possibilità della sintassi alternativa. Girando l'opzione
off fa sì che la sintassi corrispondente non venga accettata. Se entrambe le opzioni sono attivate
on at once (impostazione predefinita), viene accettata una delle due sintassi. Disattivare entrambe le opzioni
subito non avrebbe senso. Queste opzioni non hanno effetto se il riconoscimento di
Gli intrinseci di Unix sono stati disattivati.

Si noti che questa impostazione non controlla se vengono emessi avvisi non standard
su queste funzioni. Controlla se si presume che le funzioni siano
intrinseco o meno, che determina come viene verificato il loro utilizzo. Quando funziona in
uno di questi insiemi è incluso, le loro invocazioni saranno verificate in base al
regole per le funzioni intrinseche; altrimenti verranno controllati normalmente (utente-
scritto) funzioni esterne. Gli avvisi non standard sono controllati dal
-f77=intrinseco opzione.

Il valore predefinito di questa impostazione è equivalente a -intrinseco=tutto seguito da
-intrinseco=no-vms per la versione Unix, -intrinseco=no-unix per la versione VMS, e
-intrinseco=no-unix,no-vms per altre versioni.

Nota: nelle versioni di ftnchek prima del 2.10, il -intrinseco la bandiera ha preso un numero
argomento invece di un elenco di opzioni. Per il bene degli utenti che potrebbero aver scritto
script che invocano ftnchek in questo modo si accetta ancora la forma numerica. Il
forma numerica dell'impostazione è composta da tre cifre. La cifra delle unità seleziona il
insieme di funzioni intrinseche da supportare. La cifra 0 seleziona solo Fortran 77
intrinseci standard più quelli necessari per supportare la precisione estesa non standard
tipi di dati. La cifra 1 è equivalente a extra, 2 è equivalente a extra, unixe
3 è equivalente a extra, vms. La cifra delle decine di questa impostazione controlla la sintassi
della funzione intrinseca RAND, e la cifra delle centinaia controlla la sintassi della
funzione IARGC. Per queste cifre, specificare 0 per richiedere l'invocazione con no
argomento, 1 per richiedere un argomento e 2 per consentire entrambe le forme.

Vedi anche: -f77.

-biblioteca
Questa opzione viene utilizzata quando un numero di sottoprogrammi sono contenuti in un file, ma non
tutti sono utilizzati dall'applicazione. Normalmente, ftnchek ti avvisa se c'è
i sottoprogrammi sono definiti ma mai utilizzati. Questo interruttore sopprimerà questi avvisi.
Predefinito = no.

Questo interruttore controlla anche quali chiamate di sottoprogramma e dichiarazioni di blocco COMMON sono
controllato. Se un file viene letto con il -biblioteca flag attivo, il sottoprogramma chiama
e le dichiarazioni COMMON contenute in una routine in quel file verranno controllate solo se
quella routine si trova nell'albero delle chiamate del programma principale. D'altra parte, se il
-biblioteca l'interruttore è spento, quindi ftnchek controlla le chiamate di ogni routine da
ogni altra routine, indipendentemente dal fatto che quelle routine possano mai essere effettivamente
invocato in fase di esecuzione, e allo stesso modo tutte le dichiarazioni di blocco COMMON vengono confrontate per
accordo.

La differenza tra questo interruttore e il -usage=no-ext-inutilizzato opzione per
sottoprogrammi è che quest'ultimo sopprime solo l'avvertimento sulle routine in corso
dichiarato ma non utilizzato. Il -biblioteca l'interruttore va oltre ed esclude l'inutilizzato
routine elaborate mentre è in vigore da tutti i controlli incrociati degli argomenti e
Anche le dichiarazioni di blocco COMMON.

(Se non c'è un programma principale da nessuna parte nel set di file che ftnchek ha letto, quindi
che non c'è albero delle chiamate, allora ftnchek cercherà eventuali routine non di libreria
che non sono chiamati da nessun'altra routine, e usa questi come sostituti per il main
programma nella costruzione dell'albero delle chiamate e nel decidere cosa controllare. Se nessun tale top-
vengono trovate routine non di libreria di livello, quindi tutte le chiamate tra moduli e tutte le COMMON
dichiarazioni saranno verificate.)

Vedi anche: -argomenti, - calltree, -Comune, -esterno, -uso.

-elenco
Specifica che un elenco del programma Fortran deve essere stampato con la riga
numeri. Se ftnchek rileva un errore, il messaggio di errore segue la riga del programma
con un accento circonflesso ( ^ ) che specifica la posizione dell'errore. Se nessun elenco di fonti era
richiesto, ftnchek stamperà comunque qualsiasi riga contenente un errore, per aiutare il
utente nel determinare dove si è verificato l'errore. Predefinito = no.

Vedi anche: -produzione, \fB-simbolo, fB-silenzioso.

-makedcls=stratagemma
Preparare un file ben formattato di dichiarazioni di variabili, blocchi comuni e
liste namelist, per un'eventuale fusione nel codice sorgente. Le dichiarazioni sono
memorizzato in un file con lo stesso nome del codice sorgente, ma con l'estensione
cambiato in .dcl. Se non vengono scritte dichiarazioni nel file, viene eliminato in
ridurre l'ingombro dei file vuoti.

Se l'input proviene dallo standard input, invece di un file denominato, le dichiarazioni sono
scritto sull'output standard.

Le variabili sono dichiarate in ordine alfabetico all'interno di ciascuna classe di dichiarazione e
type, con prima le variabili intere, a causa del loro possibile utilizzo successivo in array
dimensioni.

Le istruzioni PARAMETER sono un'eccezione alla regola dell'ordine alfabetico, perché il
Lo standard Fortran 77 richiede che le espressioni che definiscono i valori dei parametri facciano riferimento
solo a costanti e nomi di parametri già definiti. Questo forza l'originale
l'ordine dei file di origine di tali istruzioni da conservare nei file di dichiarazione.

Dichiarazione esplicita di contro tutti i variabili è considerata una buona programmazione moderna
la pratica. Usando le opzioni del compilatore per rifiutare le variabili non dichiarate, errate
i nomi delle variabili (o nomi che si estendono oltre la colonna 72) possono essere rilevati in fase di compilazione.
Le dichiarazioni esplicite facilitano inoltre notevolmente la modifica della precisione in virgola mobile
con filtri come dtoq(1 litro), dtos(1 litro), fd2(1 litro), fs2d(1 litro), qtod(1L), e
stava in piedi(1L). Questi programmi sono in grado di modificare i tipi di virgola mobile esplicita
dichiarazioni di tipo, funzioni intrinseche e costanti, ma perché non lo fanno
effettuare una rigorosa analisi lessicale e grammaticale del codice sorgente Fortran,
non possono fornire dichiarazioni di tipo modificato per variabili non dichiarate. Predefinito
impostazione = 0, accensione = 1.

Varie opzioni per la forma del file delle dichiarazioni sono controllate dal stratagemma,
che consiste di parole chiave separate da virgole o due punti. Ci sono tre speciali
parole chiave: contro tutti i per attivare tutte le opzioni, nessuna per spegnerli tutti, e Aiuto a
stampa l'elenco di tutte le parole chiave con una breve spiegazione di ciascuna. Se stratagemma is
omesso, -madecls è equivalente -makedcls=dichiarazioni (cioè produrre il
file delle dichiarazioni utilizzando le opzioni predefinite), e -nomadecls è equivalente
-makedcls=nessuno.

Per compatibilità con le versioni precedenti di ftnchek, una forma numerica di questa impostazione
è accettato anche: il stratagemma è sostituito da un numero che è la somma dei numeri
tra parentesi accanto alle parole chiave nell'elenco seguente. Le parole chiave di avvertimento
con i loro significati sono i seguenti:

dichiarazioni (1)
Scrivere un file di dichiarazione. (Questo è implicito in una qualsiasi delle altre opzioni e
può essere omesso se vengono fornite altre opzioni.)

solo non dichiarato (2)
Per impostazione predefinita, tutte le variabili sono incluse nel file di dichiarazione. Con questo
opzione, includi solo non dichiarato variabili. Questa impostazione è utile se
desidera verificare la presenza di variabili non dichiarate, poiché i file sorgente Fortran con all
le variabili dichiarate correttamente non risulteranno in a .dcl file. Con questo
opzione, i blocchi comuni e gli elenchi di elenchi nomi non saranno inclusi nel
file di dichiarazione, poiché per loro natura non possono essere sommersi.

compatto (4)
Le dichiarazioni sono normalmente abbastanza stampate per allinearsi ordinatamente in comune
colonne, come nei file di dichiarazione emessi dal verificatore PFORT esteso,
fortuna(1L). Questo valore di opzione seleziona invece l'output compatto, senza colonna
allineamento.

usare-continuazione-linee (8)
Fa sì che le linee di continuazione vengano utilizzate ove consentito. L'impostazione predefinita è
iniziare una nuova dichiarazione su ogni riga. Questa opzione è appropriata da usare
insieme compatto.

parole chiave-minuscole (16)
Emetti le parole chiave Fortran in minuscolo, anziché in maiuscolo predefinito.

vars-e-consts-minuscolo (32)
Emetti variabili e costanti in minuscolo, invece del valore predefinito
maiuscolo. Le costanti della stringa di caratteri non sono interessate da questa opzione.

escludere-sftran3 (64)
Omettere dichiarazioni di variabili intere interne prodotte da SFTRAN3
preprocessore, xsf3(1L), come parte della traduzione di Fortran . strutturato
dichiarazioni al Fortran ordinario. Queste variabili hanno nomi di sei caratteri di
la forma NPRgg, NXdddd, N2gggge N3gggg, Dove d è una cifra decimale.
Perché sono invisibili nel codice sorgente SFTRAN3 e cambieranno se il
Il codice SFTRAN3 viene modificato, tali variabili non devono essere dichiarate esplicitamente.
Invece, dovrebbero semplicemente assumere il tipo di dati Fortran INTEGER predefinito basato
sulla loro lettera iniziale, N.

asterisco-commento (128)
Usa un asterisco come carattere di commento; l'impostazione predefinita è altrimenti 'C'.

commento-char-minuscolo (256)
Usa 'c' invece di 'C' o '*' come carattere di commento.

sopprimere-dimensioni-array (512)
Sopprime il dimensionamento degli array nelle dichiarazioni generate. Questa opzione
è per l'uso con codice privo di dichiarazioni di tipo, per consentire la dichiarazione
file da inserire senza modifiche nel codice. Dal momento che il codice avrà
già dichiarazioni dimensionali, dimensionando le variabili array nel tipo
le istruzioni del file di dichiarazione sono ridondanti. Questa opzione dovrebbe essere usata
solo in combinazione con l'opzione 2 = solo non dichiarato perché altrimenti qualsiasi
gli array che sono stati dimensionati in un'istruzione type perderanno il loro
dimensionamento.

free-form (1024)
Produrre dichiarazioni in forma libera. Questa modalità viene utilizzata automaticamente se
la sorgente di input è in formato libero. Usa questa opzione per produrre dichiarazioni in
forma libera anche se l'input è in forma fissa. Le dichiarazioni in forma libera sono
indentato solo 2 colonne invece di 6, usa il punto esclamativo come commento
carattere e indicare le linee di continuazione con una e commerciale alla fine del
linea da continuare.

I file di dichiarazione contengono commenti distintivi che segnano l'inizio e la fine di
dichiarazioni per ogni unità di programma, per facilitare l'uso delle macro dell'editor di testo per
unendo le dichiarazioni nel codice sorgente.

I ftnchek la distribuzione comprende un programma, dcl2inc, che elabora la dichiarazione
file per produrre file contenenti dichiarazioni di tutti i blocchi COMMON, in una forma
adatto per l'uso come file INCLUDE. Vedi il dcl2inc(1L) pagina man per i dettagli di
il suo utilizzo.

Vedi anche: -mkhtml.

-mkhtml=stratagemma
Produci documentazione HTML dal sorgente. Crea singoli file HTML da ftnchek
analisi e commenti al codice. Tutti i commenti immediatamente precedenti e successivi al
la definizione della funzione o della subroutine viene catturata nel file HTML. Nessuna riformattazione di
i commenti di origine vengono eseguiti in modo diverso dall'eliminazione dei caratteri di commento FORTRAN.
Inoltre, il file HTML elenca le variabili locali dichiarate, blocco comune
variabili utilizzate, funzioni e subroutine richiamate, utilizzo dell'unità di I/O e altro
informazioni su ciascun sottoprogramma. Di solito vorrai anche specificare
-call=albero per creare il file HTML radice CallTree.html. (Forse questo file dovrebbe
essere chiamato index.html.)

Varie opzioni per la forma dei file HTML sono controllate dal stratagemma, quale
è costituito da parole chiave separate da virgole o due punti. Ci sono tre speciali
parole chiave: contro tutti i per attivare tutte le opzioni, nessuna per spegnerli tutti, e Aiuto a
stampa l'elenco di tutte le parole chiave con una breve spiegazione di ciascuna. Se stratagemma is
omesso, -mkhtml è equivalente -mkhtml=documenti (cioè produrre il documento HTML
file utilizzando le opzioni predefinite), e -nomkhtmls è equivalente -mkhtml=nessuno.

Per semplicità, le opzioni per -mkhtml sono gli stessi di quelli per
-madecls tranne quelli che non sono applicabili. Allo stesso modo, una forma numerica di
è possibile utilizzare questa impostazione, formata dalla somma dei numeri tra parentesi nel
elenca sotto. Le parole chiave di avviso con i relativi significati sono le seguenti:

documenti (1)
Crea i documenti HTML. (Questo è implicito in una qualsiasi delle altre opzioni e
può essere omesso se vengono fornite altre opzioni.)

compatto (4)
Le dichiarazioni sono normalmente abbastanza stampate per allinearsi ordinatamente in comune
colonne. Questo valore di opzione seleziona invece l'output compatto, senza colonna
allineamento.

usare-continuazione-linee (8)
Fa sì che le righe di continuazione vengano utilizzate invece di iniziare una nuova dichiarazione
su ogni riga. Questa opzione è appropriata da usare insieme a compatto.

parole chiave-minuscole (16)
Emetti le parole chiave Fortran in minuscolo, anziché in maiuscolo predefinito.

vars-e-consts-minuscolo (32)
Emetti variabili e costanti in minuscolo, invece del valore predefinito
maiuscolo. Le costanti della stringa di caratteri non sono interessate da questa opzione.

escludere-sftran3 (64)
Omettere dichiarazioni di variabili intere interne prodotte da SFTRAN3
preprocessore, xsf3(1L). (Vedere -madecls per la discussione.)

sopprimere-dimensioni-array (512)
Sopprime il dimensionamento degli array nelle dichiarazioni generate. Questo è
normalmente indesiderabile, ma è disponibile se per qualche motivo non lo desideri
dimensioni dell'array da visualizzare nell'HTML.

free-form (1024)
Produci dichiarazioni di variabili in formato sorgente gratuito. Questa modalità è
utilizzato automaticamente se la sorgente di input è in formato libero. Ciò colpisce principalmente il
forma di linee di continuazione se utilizzate.

Vedi anche: - calltree, -madecls.

-novizio
Questo flag ha lo scopo di fornire un output più utile per i principianti. ne ha due
effetti:

(a) fornisce un messaggio aggiuntivo per indicare che una funzione che è utilizzata ma non
definito ovunque potrebbe essere un array che l'utente ha dimenticato di dichiarare in a
Istruzione DIMENSION (poiché la sintassi di un riferimento all'array è la stessa di quella
di un riferimento di funzione).

(b) modifica la forma dei messaggi di errore e delle avvertenze. Se la bandiera è girata
fuori da -novizio, questi messaggi sono stampati in uno stile più simile a UNIX
garza.

Predefinito = sì.

-uscita=Nome del file
Questa impostazione è fornita per comodità su sistemi che non consentono un facile
reindirizzamento dell'output dai programmi. Quando viene fornita questa impostazione, l'uscita che
normalmente visualizzato sullo schermo verrà inviato invece al file denominato. Nota,
tuttavia, che errori operativi di ftnchek stesso (ad esempio fuori dallo spazio o impossibile
file aperto) verrà comunque inviato allo schermo. L'estensione per il nome del file è
opzionale, e se non viene fornita alcuna estensione, l'estensione .LIS verrà utilizzato.

-dimensione puntatore=num
Specifica la dimensione di una variabile ``puntatore Cray'' da essere num byte. Predefinito = turno-
acceso = 4 byte.

La dimensione del puntatore viene utilizzata per informare gli avvisi di mancata corrispondenza di precisione che coinvolgono il puntatore
variabili, ad esempio quando a un puntatore viene assegnato un valore da un'allocazione
routine o passato come parametro di sottoprogramma.

Vedi anche: -f77, -portabilità, -troncamento, -dimensione parola.

-portabilità=stratagemma
ftnchek fornirà avvisi per una varietà di usi non portatili. Esempi inclusi
l'uso delle schede tranne che nei commenti o nelle stringhe interne, l'uso di Hollerith
costanti e l'equivalenza di variabili di diversi tipi di dati. Questa opzione
non produce avvisi per le estensioni supportate allo standard Fortran 77,
che possono anche causare problemi di portabilità. Per catturarli, usa il -f77 impostazione.
Per impostazione predefinita, tutti gli avvisi sono disattivati.

Questa impostazione fornisce un controllo dettagliato sugli avvisi sulla possibile portabilità
i problemi. Il stratagemma è costituito da parole chiave separate da virgole o due punti. Ci sono
tre parole chiave speciali: contro tutti i per attivare tutti gli avvisi sugli utilizzi non portatili,
nessuna per spegnerli tutti, e Aiuto per stampare l'elenco di tutte le parole chiave con a
breve spiegazione di ciascuno. Se stratagemma è omesso, -portabilità è equivalente
-portabilità=tuttoe -noportabilità è equivalente -portabilità=nessuna.
le parole chiave di avviso con i loro significati sono le seguenti:

backslash:
Carattere barra rovesciata nelle stringhe. Poiché alcuni compilatori trattano la barra rovesciata come
un carattere di escape, la sua presenza può causare problemi anche se viene utilizzato
in modo conforme agli standard.

allineamento comune:
Variabili di blocco COMMON non in ordine decrescente della dimensione di archiviazione. Alcuni
i compilatori richiedono questo ordinamento a causa dei requisiti di allineamento dell'archiviazione.

hollerit:
Costanti Hollerith (diverse dalle specifiche FORMAT). L'Hollerith
il tipo di dati è una caratteristica di Fortran IV che è stata eliminata nel Fortran 77
standard. Viene sostituito dal tipo di dati carattere. Conservare Hollerith
i dati in variabili di tipo numerico o logico non sono portabili a causa di
diverse dimensioni delle parole.

corda lunga:
Costanti, variabili o espressioni stringa di lunghezza superiore a 255 caratteri.

equivalenza mista:
Variabili di diversi tipi di dati equivalenti.

miste:
Variabili dichiarate con precisione predefinita utilizzate con variabili date esplicite
precisione, in espressioni, assegnazioni o come argomenti. Ad esempio, se a
la variabile dichiarata come REAL*8 viene trattata come equivalente a DOUBLE PRECISION.

vero fare:
Indice e limiti del ciclo DO non intero. Questi possono causare i risultati di un programma a
dipendono dalle caratteristiche hardware del particolare computer utilizzato.

param-tipo-implicito:
Digitazione implicita di un parametro dal tipo di dati del valore assegnato, se
differisce dal tipo predefinito. Questo avviso può verificarsi solo se implicito
la digitazione dei parametri è stata attivata dal -source=param-tipo-implicito
opzione, o se l'istruzione PARAMETER è della forma non standard senza
parentesi. Se questa opzione è attivata, tutte le istanze in cui implicito
si verifica la digitazione del parametro e dove il tipo implicito è diverso dal
tipo predefinito basato sulla prima lettera del nome del parametro, verrà avvisato
di. La digitazione implicita dei parametri può modificare la semantica delle istruzioni
dove viene utilizzato il parametro, causando problemi di portabilità.

linguetta: Schede nel codice sorgente. Le schede sono interpretate in modo diverso da diversi
compilatori. Questo avviso verrà dato una sola volta, alla fine del file.

Vedi anche: -f77, -f90, -f95, -bella, Stile, -dimensione parola.

-carino=stratagemma
Controlla alcuni messaggi relativi all'aspetto del codice sorgente. Questi avvertono
su cose che potrebbero rendere un programma meno leggibile o essere ingannevole per il lettore.
Per impostazione predefinita, tutti gli avvisi sono attivati.

Questa impostazione fornisce un controllo dettagliato sugli avvisi relativi all'aspetto. Il
stratagemma è costituito da parole chiave separate da virgole o due punti. Poiché tutti gli avvisi sono attivi
per impostazione predefinita, includi una parola chiave preceduta da no- per disattivare un particolare avviso.
Ci sono tre parole chiave speciali: contro tutti i per attivare tutti gli avvertimenti sull'inganno
apparenze, nessuna per spegnerli tutti, e Aiuto per stampare l'elenco di tutti i
parole chiave con una breve spiegazione di ciascuna. Se stratagemma è omesso, -bella is
equivalente -carino=tuttoe -non carina è equivalente -carino=nessuno.
le parole chiave di avviso con i loro significati sono le seguenti:

ritorno alternativo:
Un'istruzione RETURN ha una costante che specifica un punto di ritorno alternativo che
non è compreso tra 0 e il numero di argomenti fittizi che sono etichette. Questo è
legale e ha lo stesso effetto di un RESO senza ritorno alternativo
espressione, ma suggerisce che il programmatore intendeva utilizzare un'alternativa
etichetta di reso non fornita.

spazio-incastonato:
Spazio incorporato nei nomi delle variabili o negli operatori a più caratteri come **.

continuazione:
Segno di continuazione dopo una riga di commento.

linea lunga:
Righe (tranne i commenti) di larghezza superiore a 72 colonne (normalmente oltre 72 è
ignorato dal compilatore).

spazio-mancante:
Mancanza di spazio tra variabile e una parola chiave precedente.

multi-comune:
Blocco COMMON dichiarato in più istruzioni. Non viene dato alcun avviso se il
le istruzioni sono consecutive ad eccezione delle righe di commento.

lista-multiplo:
NAMELIST dichiarato in più dichiarazioni. Non viene dato alcun avviso se il
le istruzioni sono consecutive ad eccezione delle righe di commento.

parentesi:
Parentesi intorno a una variabile da sola. Come argomento del sottoprogramma, questo
rende l'argomento un'espressione, non modificabile dal sottoprogramma.

Nota che in formato sorgente gratuito, lo spazio extra e lo spazio mancante sono vietati dal
Fortran 90 Standard, e non sono semplici violazioni di stile. In questo caso le avvertenze
sono sostituiti da messaggi di errore di sintassi e possono essere disattivati ​​solo utilizzando
-nessun controllo.

Vedi anche: -f77, -portabilità, Stile.

-progetto=stratagemma
ftnchek creerà un file di progetto da ogni file sorgente che viene immesso mentre questo
l'opzione è attivata. Al file di progetto verrà assegnato lo stesso nome dell'input
file, ma con l'estensione .f or .per sostituito da .prj. (Se l'input proviene da
input standard, il file di progetto è denominato ftnchek.prj.) Predefinito = nessuno.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Ce ne sono tre
parole chiave speciali: contro tutti i per attivare tutte le opzioni, nessuna per spegnerli tutti, e
Aiuto per stampare l'elenco di tutte le parole chiave con una breve spiegazione di ciascuna. Se
stratagemma è omesso, -progetto è equivalente -progetto=tuttoe -noprogetto is
equivalente -progetto=nessuno. Le parole chiave con i loro significati sono le seguenti:

creare:
Produrre un file di progetto. L'impostazione predefinita è non produrre un file di progetto. Se
questa opzione non è attiva, le altre opzioni non hanno effetto.

trim-call:
Taglia la quantità di informazioni memorizzate nel file di progetto sul sottoprogramma
dichiarazioni e richiami. Questa è l'impostazione predefinita. Disattiva questa opzione solo in
situazioni rare. (Vedi discussione sotto.) La quantità di rifilatura varia
dipende da -biblioteca bandiera. Ulteriori informazioni vengono tagliate se quel flag è
acceso.

trim-comune:
Taglia il numero di dichiarazioni di blocco comuni memorizzate nel file di progetto.
Questa è l'impostazione predefinita. Disattiva questa opzione solo in rare situazioni. (Vedere
discussione di seguito.) Questa opzione non ha effetto se il -biblioteca la bandiera è girata
off: quando non è in modalità libreria, nessun taglio delle dichiarazioni di blocco comuni è
fatto indipendentemente da questa opzione.

Un file di progetto contiene un riepilogo delle informazioni dal file di origine, da utilizzare in
verifica dell'accordo tra gli usi FUNZIONE, SUBROUTINE e COMUNE in altri file.
Consente il controllo incrementale, che consente di risparmiare tempo ogni volta che si dispone di un ampio set di
file contenenti subroutine condivise, la maggior parte delle quali cambia raramente. puoi correre
ftnchek una volta su ogni file con il -progetto flag impostato, creando i file di progetto.
Di solito si imposta anche il -biblioteca ed -non esterno bandiere in questo momento, per
sopprimere i messaggi relativi alla coerenza con altri file. Solo messaggi di errore
relativo a ciascun file da solo verrà stampato in questo momento. Successivamente, corri
ftnchek senza questi flag su tutti i file di progetto insieme, per verificare la coerenza
tra i vari file. Tutti i messaggi interni ai singoli file verranno ora
essere omesso. Solo quando un file viene modificato sarà necessario creare un nuovo file di progetto
per esso.

Naturalmente, quando il -progetto l'opzione è attivata, ftnchek non leggerà il progetto
file come input.

Normalmente, le opzioni di ritaglio dovrebbero essere lasciate attive quando si intende creare un progetto
file per input futuri a ftnchek. Poiché il taglio è attivo per impostazione predefinita, questo significa
che semplicemente dando il comando -progetto senza elenco di opzioni è il raccomandato
modalità. Le opzioni di assetto sono fornite solo per comodità di chi lo desidera
utilizzare i file di progetto per scopi diversi dal controllo del programma con
ftnchek. Per utilizzare i file di progetto per lo scopo previsto, le opzioni di ritaglio dovrebbero
non essere spento.

I file di progetto contengono solo le informazioni necessarie per verificare l'accordo tra i file.
Ciò significa che un file di progetto non è di alcuna utilità se tutti i moduli del programma completo
sono contenuti in un unico file.

Una discussione più dettagliata è fornita nella sezione sull'utilizzo dei file di progetto.

-puro
Supponiamo che le funzioni siano ``pure'', cioè non avranno effetti collaterali modificando
i loro argomenti o variabili in un blocco COMMON. Quando questo flag è attivo,
ftnchek baserà la sua determinazione dello stato impostato e utilizzato degli argomenti effettivi
partendo dal presupposto che gli argomenti passati a una funzione non vengano modificati. Lo farà
emette anche un avviso se si trova una funzione che modifica uno qualsiasi dei suoi argomenti o qualsiasi
Variabili COMUNI. Predefinito = sì.

Quando questo flag è disattivato, verranno gestiti gli argomenti passati alle funzioni
allo stesso modo degli argomenti passati alle subroutine. Ciò significa che ftnchek
assumerà che gli argomenti possono essere modificati dalle funzioni. Nessun avviso sarà
dato se si scopre che una funzione ha effetti collaterali. Perché un controllo più rigoroso è
possibile se si presume che le funzioni siano pure, dovresti disattivare questo flag solo se
il tuo programma utilizza effettivamente funzioni con effetti collaterali.

-silenzioso
Questa opzione riduce la quantità di output relativa al normale funzionamento, in modo che
i messaggi di errore sono più evidenti. Questa opzione è fornita per comodità di
utenti che controllano grandi suite di file. L'output eliminato include il
i nomi dei file di progetto e il messaggio che segnala che non sono stati trovati errori di sintassi.
Elimina anche alcune righe vuote che normalmente sono incluse per chiarezza. (Alcuni
di questa uscita viene riattivata dal -elenco ed -simbolo opzioni.) Predefinito = no.

Nota: il modo per ricordare la differenza tra il -silenzioso ed -breve è che
-silenzioso non sopprime alcuna informazione relativa agli avvisi, mentre -breve fa.

Vedi anche: -breve.

-riferimento
Specifica che deve essere stampata una tabella chi-chiama-chi. Questa tabella elenca ogni sottoprogramma
seguito da un elenco delle routine che chiama. Questo interruttore è equivalente a
-calltree=riferimento. Predefinito = no.

L'elenco di riferimento omette le routine chiamate dai moduli della libreria non utilizzati. Così è
contiene le stesse informazioni del formato dell'albero delle chiamate, ovvero la gerarchia di
chiamate di sottoprogrammi, ma stampate in modo diverso. Questo stampa una prima ampiezza
attraversamento dell'albero delle chiamate considerando che -calltree=albero stampa una prima profondità
attraversamento.

Vedi anche: - calltree, -rif, -biblioteca, -ordinare, -simbolo, -vcg.

-Risorse
Stampa la quantità di risorse utilizzate da ftnchek nell'elaborazione del programma. Questo
lista può essere utile per analizzare le dimensioni e la complessità di un programma. Può
aiuta anche nella scelta di taglie più grandi per ftnchekle tabelle interne se lo sono anche loro
piccolo per analizzare un particolare programma. Predefinito = no.

In questo elenco, il termine ``dimensione del blocco'' è la dimensione dei blocchi di memoria
assegnato per memorizzare l'articolo in questione, in unità della dimensione di un articolo, non
necessariamente in byte. Quando lo spazio inizialmente allocato è pieno, più memoria
è allocato in blocchi di questa dimensione. Quella che segue è una spiegazione degli elementi
stampato:

Fonte Linee elaborati:
Numero totale di righe di codice, con totali separati per righe di rendiconto e
righe di commento. Le righe di commento includono anche le righe con 'C' o '*' nella colonna 1
come righe vuote e righe contenenti solo un commento in linea. Righe di dichiarazione
sono tutte le altre righe, incluse le righe che hanno un commento in linea dopo alcune
codice. Le righe di continuazione vengono conteggiate come righe separate. Linee incluse
i file vengono conteggiati ogni volta che il file viene incluso.

Totale eseguibile dichiarazioni:
Numero di istruzioni nel programma, diverse da specifiche, dati, istruzioni-
istruzioni di funzione, FORMAT, ENTRY e END.

Totale numero of moduli:
Un modulo è qualsiasi sottoprogramma esterno, inclusi il programma principale, le subroutine,
funzioni e unità di dati a blocchi. Questo conteggio è di moduli definiti all'interno del
sorgente, non moduli referenziati. Le funzioni di istruzione non sono incluse. UN
il sottoprogramma con più punti di ingresso viene conteggiato una sola volta.

Totale dichiarazione etichette definito
Numero di etichette allegate alle dichiarazioni (spesso chiamate numeri di dichiarazione). Il
viene fornito il conteggio totale delle etichette per l'intero programma, nonché il massimo
numero in ogni singolo sottoprogramma.

Max identificatore Nome caratteri:
Numero di caratteri utilizzati per memorizzare i nomi degli identificatori. Un identificatore è a
nome di variabile, sottoprogramma o blocco comune. I nomi locali sono quelli di local
variabili in un sottoprogramma, mentre i nomi globali si riferiscono al sottoprogramma e al comune
nomi di blocchi, nonché nomi di argomenti fittizi e nomi di variabili comuni. Effettivo
qui è incluso anche il testo dell'argomento (fino a 15 caratteri per ogni argomento).
Lo spazio utilizzato per i nomi locali non viene recuperato alla fine di ogni modulo, quindi
questo numero, come lo spazio globale, cresce finché non viene analizzato l'intero programma.
Sfortunatamente, questa cifra potrebbe includere del testo memorizzato più di una volta,
anche se viene utilizzata un'euristica che in molti casi eviterà duplicati.

Max token testo caratteri:
Un token è la più piccola unità sintattica del linguaggio FORTRAN al di sopra del livello
dei singoli personaggi. Ad esempio un token può essere un nome di variabile, a
costante numerica, una stringa di testo tra virgolette o un carattere di punteggiatura. Gettone
il testo viene memorizzato durante l'elaborazione di un modulo. Per motivi tecnici,
i token a carattere singolo non sono inclusi in questo totale. Articoli che non lo sono
rappresentati nella tabella dei simboli possono essere duplicati. Lo spazio per il testo del token è
recuperato alla fine di ogni modulo, quindi questa cifra rappresenta il massimo per
qualsiasi modulo.

Max locale simboli:
Questo è il maggior numero di voci nella tabella dei simboli locale per qualsiasi modulo.
Le voci della tabella dei simboli locali includono tutte le variabili e i parametri, blocco comune
nomi, funzioni istruzione, sottoprogrammi esterni e funzioni intrinseche
referenziato dal modulo. Le costanti letterali non sono memorizzate nel simbolo locale
tabella.

Max globale simboli:
Questoèil numero di voci nella tabella dei simboli globale alla fine di
in lavorazione. Le voci della tabella dei simboli globali includono sottoprogrammi esterni e comuni
nomi dei blocchi. Le funzioni intrinseche e le funzioni di istruzione non sono incluse.

Max numero of elenchi di token:
Un elenco di token è una sequenza di token che rappresentano l'argomento effettivo o fittizio
elenco di un sottoprogramma o elenco di variabili in un blocco comune o elenco nomi.
Pertanto questo numero rappresenta la somma maggiore di COMUNE, CHIAMATA, LISTA NOMINALI e
Dichiarazioni ENTRY e chiamate di funzioni per qualsiasi modulo. Lo spazio è
recuperato alla fine di ogni modulo.

Max token lista/albero spazio:
Questo è il maggior numero di token in tutti gli elenchi di token e alberi di token di
qualsiasi modulo. Quando si analizza un'espressione si forma un albero dei token: ogni
l'operando è una foglia dell'albero e gli operatori sono i nodi. quindi questo
numero è una misura della massima complessità di un singolo modulo. Per
esempio un modulo con molte espressioni aritmetiche lunghe avrà un alto
numero. Nota che a differenza del testo del token descritto sopra, il numero di token è
indipendente dalla lunghezza dei nomi delle variabili o delle costanti letterali nel
espressioni.

Numero of sottoprogramma invocazioni:
Questa è la somma su tutti i moduli del numero di istruzioni CALL e funzione
invocazioni (eccetto funzioni intrinseche e funzioni di istruzione).

Numero of comune bloccare dichiara:
Questa è la somma su tutti i moduli del numero di dichiarazioni di blocco comuni.
Cioè, viene conteggiata ogni dichiarazione di un blocco in un modulo diverso
separatamente. (Lo standard consente dichiarazioni multiple di un blocco all'interno del
stesso modulo; questi sono contati come una sola dichiarazione poiché sono
equivalente a una singola dichiarazione lunga.)

Numero of schieramento dim & param punti:
Questa è la somma su tutti i moduli del numero della dimensione dell'array e del parametro
stringhe di testo di definizione salvate per essere utilizzate dal -madecls opzione. La lunghezza di
le stringhe di testo non vengono conteggiate. Ogni dimensione di un array multidimensionale è
contati separatamente.

Questi numeri ovviamente non sono gli stessi quando i file di progetto vengono utilizzati al posto di
il codice sorgente originale. Anche i numeri per le entità globali possono essere diversi,
poiché alcune informazioni ridondanti vengono eliminate nei file di progetto.

-seichar
Uno degli obiettivi di ftnchek programma è quello di aiutare gli utenti a scrivere Fortran portable portatile
programmi. Una potenziale fonte di non portabilità è l'uso di nomi di variabili che
sono più lunghi di sei caratteri. Alcuni compilatori semplicemente ignorano i caratteri extra.
Questo comportamento potrebbe potenzialmente portare a considerare due diverse variabili come
lo stesso. Ad esempio, le variabili denominate AVERAGECOST e AVERAGEPRICE sono le stesse
nei primi sei caratteri. Se desideri rilevare tali possibili conflitti, usa
questa bandiera. Predefinito = no.

Usa il -f77=nomi lunghi se vuoi elencare contro tutti i variabili più lunghe di sei
caratteri, non solo quelle coppie che sono le stesse nei primi sei.

Vedi anche: -f77, -portabilità.

-ordinare
Specifica che verrà stampato un elenco ordinato di tutti i moduli utilizzati nel programma. Questo
l'elenco è in ordine ``prerequisito'', cioè ogni modulo viene stampato solo dopo tutte le
sono stati stampati i moduli da cui è chiamato. Questo è anche chiamato a
``ordinamento topologico'' dell'albero delle chiamate. Ogni modulo è elencato una sola volta. routine
che non sono nell'albero delle chiamate del programma principale vengono omesse. Se ce ne sono
cicli nel grafico delle chiamate (illegali in Fortran standard) verranno rilevati e
diagnosticato. Predefinito = no.

Vedi anche: - calltree, -rif, -riferimento, -simbolo, -vcg.

-sorgente=stratagemma
Questa impostazione controlla alcune opzioni sulla forma del codice sorgente Fortran.
I stratagemma è costituito da parole chiave separate da virgole o due punti. Ce ne sono tre
parole chiave speciali: contro tutti i per attivare tutte le opzioni, nessuna per spegnerli tutti, e
Aiuto per stampare l'elenco di tutte le parole chiave con una breve spiegazione di ciascuna. Se
stratagemma è omesso, -fonte è equivalente -sorgente=tuttoe -nessuna fonte è equivalente
a -source=nessuno.

Per compatibilità con le versioni precedenti di ftnchek, una forma numerica di questa impostazione
è accettato anche: il stratagemma è sostituito da un numero che è la somma dei numeri
tra parentesi accanto alle parole chiave nell'elenco seguente. (Il fisso ed "gratis"
le opzioni non hanno valori numerici.) Le parole chiave di avviso con i loro significati sono
come segue:

fisso:
Interpreta la fonte come forma fissa (con estensioni supportate come
punto esclamativo per i commenti). Le dichiarazioni devono essere nelle colonne da 7 a 72
(a meno che il -col è stata utilizzata l'impostazione per modificare questo), e gli spazi vuoti non lo sono
significativo contesto di carattere esterno (ma avvertito sotto il -bella
opzione). Questa è la modalità predefinita a meno che l'estensione del file di origine non sia .f90
or .F90. questa opzione non può essere data insieme a -source=gratuito.

"gratis": Interpreta la fonte come forma libera. Le dichiarazioni possono essere ovunque nelle colonne 1
a 132, i commenti possono iniziare solo con un punto esclamativo e gli spazi vuoti sono
richiesto in alcuni punti, ad esempio tra identificatori e parole chiave. Questo è
la modalità predefinita se l'estensione del file di origine è .f90 or .F90. Questa opzione
non può essere dato insieme a -source=fisso or -source=scheda dec

dec-scheda (1)
Accetta sorgenti formattate in tab in stile DEC. Una riga che inizia con una tabulazione iniziale
sarà trattato come una nuova riga di istruzione a meno che il carattere dopo la tabulazione non sia
una cifra diversa da zero, nel qual caso viene trattata come una linea di continuazione. Il
la colonna successiva dopo la tabulazione o il segno di continuazione viene presa come colonna 7. A
verrà dato avviso nel caso in cui la linea sia una continuazione, se
-f77=tab-dec è in vigore.

vms-include (2)
Accetta istruzioni INCLUDE in stile VMS. Questi seguono la normale sintassi, ma
con le seguenti caratteristiche aggiuntive: (1) l'estensione del file, se non data,
il valore predefinito è lo stesso di una normale estensione del file sorgente; e (2) l'opzione
/LIST o /NOLIST possono essere aggiunti al nome del file di inclusione, per controllare l'elenco
dei suoi contenuti.

unix-barra rovesciata (4)
Gestire gli escape della barra rovesciata in stile UNIX nelle stringhe di caratteri. La fuga
la sequenza che segue la barra rovesciata verrà valutata in base all'ANSI
standard per le stringhe in C: fino a tre cifre indicano un valore ottale, un x
indica l'inizio di una costante esadecimale, una qualsiasi delle lettere abfnrt
significa codici di controllo speciali e qualsiasi altro carattere (incluso newline)
indica il personaggio stesso. Quando questa opzione del codice sorgente è attiva, a
verrà dato un avviso se il -f77=barra rovesciata l'impostazione è specificata.

Il comportamento predefinito è trattare la barra rovesciata come qualsiasi altra normale
carattere, ma verrà generato un avviso sulla portabilità se il
-portabilità bandiera è impostata. A causa del fatto che alcuni compilatori trattano il
barra rovesciata in modo non standard, è possibile per la conformità allo standard
programmi non sono portabili se utilizzano il carattere barra rovesciata nelle stringhe.

Dal ftnchek non fa molto con la stringa interpretata, è raro
necessario per utilizzare questa opzione. È necessario per evitare spurie
avvertenze solo se (a) il programma da controllare utilizza la barra rovesciata per incorporare e
apostrofo o virgolette in una stringa invece di usare il meccanismo standard
di raddoppiare il delimitatore; (b) la barra rovesciata viene utilizzata per sfuggire alla fine del-
line per continuare una stringa su più righe di origine; o (c) a
La definizione PARAMETER utilizza una funzione stringa intrinseca come LEN con tale
una stringa come argomento e quel valore viene successivamente utilizzato per definire l'array
dimensioni, ecc.

param-tipo-implicito (8)
Digitazione implicita di un parametro in base al tipo di dati del valore assegnato. Alcuni
compilatori non standard possono consentire al tipo di dati del valore di sovrascrivere il
Fortran 77 tipo predefinito di un parametro basato sulla prima lettera di
il nome del parametro. Questa opzione si applica solo alle istruzioni PARAMETER del
forma standard che ha le parentesi. Un parametro che è stato esplicitamente
dichiarata in un'istruzione di tipo prima dell'istruzione PARAMETER non è interessata
da questa opzione. Verrà dato un avvertimento sotto il -f77=param-tipo-implicito
or -portability=param-tipo-implicito opzione.

Nota che questa tipizzazione implicita è trattata come equivalente a un tipo esplicito
dichiarazione per il parametro. Pertanto, se usi
-makedcls=solo-non dichiarato generare solo dichiarazioni di non dichiarato
variabili, questi parametri saranno non essere incluso.

dec-param-tipo-standard (16)
Seguire la regola Fortran 77 per la digitazione dei dati dei parametri in stile DEC Fortran.
Questi sono dichiarati utilizzando una forma non standard dell'istruzione PARAMETER che
manca parentesi. Secondo DEC Fortran, parametri definiti da questo modulo
dell'istruzione hanno il loro tipo di dati dato dal tipo di dati del valore
assegnato. Usa questa opzione per dire ftnchek non seguire questa regola ma
invece di usare la stessa regola delle istruzioni PARAMETER standard. Questo
L'opzione non si applica alle istruzioni PARAMETER del modulo standard.

Per impostazione predefinita, tutte queste opzioni del codice sorgente sono disattivate, ad eccezione di
vms-include opzione, che è attiva per impostazione predefinita nella versione VMS..

Vedi anche: -f77, -includere, -portabilità.

-stile=stratagemma
Fornisce avvisi particolarmente esigenti sulla programmazione obsoleta o antiquata
costruzioni. Questa opzione è utile per gli sforzi per seguire una programmazione moderna
stile. (La maggior parte delle cose di cui si lamenta con questa opzione sono vietate nel
F sottoinsieme linguaggio.) By predefinito contro tutti i avvertenze sono girato off.

I stratagemma è costituito da parole chiave separate da virgole o due punti. Ce ne sono tre
parole chiave speciali: contro tutti i per attivare tutte le opzioni, nessuna per spegnerli tutti, e
Aiuto per stampare l'elenco di tutte le parole chiave con una breve spiegazione di ciascuna. Se
stratagemma è omesso, Stile è equivalente -stile=tuttoe -nostile è equivalente
-stile=nessuno. Le parole chiave di avviso con i relativi significati sono le seguenti:

blocca se:
Protesta per l'istruzione IF aritmetica. Accetta blocco SE o logico SE (che
controlla una singola dichiarazione).

nome-costrutto:
Denunciare i costrutti di blocco senza nome: IF, DO e SELECT CASE. Notare che
se un nome di costrutto è presente nell'istruzione di apertura di un costrutto, allora
deve essere presente su tutte le altre istruzioni dei componenti (ELSE, END IF,
ecc.) del costrutto. In tal caso un nome di costrutto mancante su quelli
le istruzioni generano un errore di sintassi indipendentemente da questa opzione. La proposta
di questa opzione è quello di avvisare se il costrutto manca completamente dell'optional
nome.

distinto-fare:
Denuncia se due cicli DO condividono un'istruzione di terminazione comune.

fare-costruire:
Protesta se il terminatore di un ciclo DO è qualcosa di diverso da un END DO o
CONTINUA dichiarazione. Questo è il requisito affinché il ciclo soddisfi
la definizione Fortran 90 di un do-construct.

fare la fine:
Protesta se il terminatore di un ciclo DO è qualcosa di diverso da un END DO
dichiarazione. (Questa opzione ha la precedenza su fare-costruire opzione, essere pari
più severo.)

nome finale:
Reclamare l'assenza del nome del sottoprogramma su strutturato END
dichiarazioni.

formato-stmt:
Reclamare la presenza di istruzioni FORMAT. Solo le istruzioni FORMAT
stessi sono contrassegnati, non i riferimenti ad essi negli elenchi di I/O.

goto: lamenta la presenza di GOTO . incondizionato, calcolato o assegnato
dichiarazioni. Si lamentano anche dei resi alternativi (ma non delle etichette come
argomenti del sottoprogramma).

etichettato-stmt:
Reclamare la presenza di etichette (numeri) su dichiarazioni diverse da
FORMATO dichiarazioni. (Dal momento che le istruzioni FORMAT sono probabilmente convenienti e non
prontamente abusate, i reclami su di loro sono controllati dal separato
formato-stmt parola chiave.)

programma-stmt:
Reclamare l'assenza di una dichiarazione di PROGRAMMA in testa al principale
.

strutturato:
Lamentarsi dell'uso di una semplice istruzione END per terminare un sottoprogramma, piuttosto
di un'istruzione END strutturata (FINE PROGRAMMA, FINE SUBROUTINE, FINE FUNZIONE,
o DATI FINE BLOCCO).

Vedi anche: -f77, -f90, -f95, -bella, -portabilità.

-simbolo
Verrà stampata una tabella dei simboli per ogni modulo, che elenca tutti gli identificatori
menzionato nel modulo. Questa tabella fornisce il nome di ogni variabile, il suo tipo di dati,
e il numero di dimensioni per gli array. Un asterisco (*) indica che il
la variabile è stata digitata implicitamente, invece di essere nominata in un tipo esplicito
dichiarazione di dichiarazione. La tabella elenca anche tutti i sottoprogrammi richiamati dal modulo,
dichiarati tutti i blocchi COMMON, ecc. Default = no.

Inoltre, per ogni modulo, verrà stampata una tabella di etichette. La tabella elenca ogni etichetta
definito nel modulo; la riga su cui è definita detta etichetta di dichiarazione; e il
tipo di istruzione (eseguibile, formato o specifica). Le etichette sono elencate in
ordine sequenziale.

Viene stampata anche una tabella che descrive le unità di I/O utilizzate dal modulo, insieme a
informazioni su come vengono utilizzati: quali operazioni vengono eseguite, se il
l'accesso è sequenziale o diretto e se l'I/O è formattato o meno.

Vedi anche: - calltree, -rif, -elenco, -riferimento, -ordinare, -vcg.

-troncamento=stratagemma
Avvisa di possibili errori di troncamento (o arrotondamento). La maggior parte di questi sono legati a
aritmetica intera. Per impostazione predefinita, tutti gli avvisi sono attivati.

Questa impostazione fornisce un controllo dettagliato sugli avvisi relativi al possibile troncamento
errori. Il stratagemma è costituito da parole chiave separate da virgole o due punti. Dal momento che tutto
gli avvisi sono attivi per impostazione predefinita, includi una parola chiave preceduta da no- spegnere un
avviso particolare. Ci sono tre parole chiave speciali: contro tutti i per accendere tutte le
avvisi di troncamento, nessuna per spegnerli tutti, e Aiuto per stampare l'elenco di
tutte le parole chiave con una breve spiegazione di ciascuna. Se stratagemma è omesso, -troncamento
è equivalente -troncamento=tuttoe -noruncation è equivalente
-troncamento=nessuno. Le parole chiave di avviso con i relativi significati sono le seguenti:

int-div-esponente:
uso del risultato della divisione intera come esponente. Questo suggerisce che a
si intende il quoziente reale. Un esempio potrebbe essere scrivere X**(1/3) per valutare
la radice cubica di X. L'espressione corretta è X**(1./3.).

int-div-reale:
Conversione di un'espressione che implica una divisione intera in reale. Questo
suggerisce che si intende un quoziente reale.

int-div-zero:
divisione in un'espressione costante intera che restituisce un risultato pari a zero.

int-neg-potenza:
elevazione a potenza di un intero da un intero negativo (che restituisce zero a meno che
l'intero di base è 1 in grandezza). Questo suggerisce che una vera base è
previsto.

promozione:
conversione automatica di una quantità di precisione inferiore in una di maggiore
precisione. La perdita di precisione per le variabili reali in questo processo è
paragonabile al corrispondente declassamento. Non viene dato alcun avviso per la promozione
di quantità intere a reale poiché questo è normalmente esatto.

indice reale:
uso di un indice DO non intero in un ciclo con limiti interi. Un intero DO
l'indice con limiti reali viene sempre avvisato indipendentemente da questa impostazione.

pedice reale:
uso di un indice di array non intero.

figure significative:
specificazione eccessiva di una singola costante di precisione. Questo potrebbe indicare che un doppio
si intendeva la costante di precisione.

riduzione delle dimensioni:
conversione automatica di una quantità di maggiore precisione in una di minore precisione
dello stesso tipo. Questo avviso si verifica solo quando viene utilizzata una dimensione esplicita in
dichiarando il tipo di uno o entrambi gli operandi in un'assegnazione. Ad esempio, a
verrà emesso un avviso quando una variabile REAL*8 viene assegnata a una variabile REAL,
se è attiva la wordsize predefinita di 4. Viene emesso un avvertimento anche se a
long intero è assegnato a uno più corto, ad esempio, se un INTEGER
l'espressione viene assegnata a una variabile INTEGER*2. C'è un'eccezione a
quest'ultimo caso, vale a dire se il lato destro del compito è un piccolo
costante letterale (minore di 128). tipo-declassamento: conversione automatica di a
quantità di precisione maggiore a una di precisione inferiore di tipo diverso. Questo
l'avviso include la conversione di quantità reali in numeri interi, doppia precisione
a singola precisione reale e assegnazione di una stringa di caratteri più lunga a a
uno più corto.

Le avvertenze su promozione e retrocessione si applicano anche a costanti complesse,
considerando la precisione quella della parte reale o immaginaria. Avvertenze su
le promozioni e le retrocessioni vengono date solo quando la conversione avviene automaticamente,
ad esempio in espressioni di precisione mista o in una dichiarazione di assegnazione. Se intrinseco
funzioni come INT vengono utilizzate per eseguire la conversione, non viene fornito alcun avviso.

Vedi anche: -portabilità, -dimensione parola.

-uso=stratagemma
Avvisa di variabili non utilizzate o possibili non inizializzate, blocchi comuni non utilizzati,
etichette di istruzioni non definite o non utilizzate e sottoprogrammi non utilizzati o non definiti. Di
impostazione predefinita, tutti gli avvisi sono attivati.

Questa impostazione fornisce un controllo dettagliato sugli avvisi sul possibile utilizzo
errori. Il stratagemma è costituito da parole chiave separate da virgole o due punti. Dal momento che tutto
gli avvisi sono attivi per impostazione predefinita, includi una parola chiave preceduta da no- spegnere un
avviso particolare. Ci sono tre parole chiave speciali: contro tutti i per accendere tutte le
avvertenze sull'utilizzo, nessuna per spegnerli tutti, e Aiuto per stampare l'elenco di tutti
le parole chiave con una breve spiegazione di ciascuna. Se stratagemma è omesso, -uso is
equivalente -uso=tuttoe -nousage è equivalente -uso=nessuno. Queste
gli avvisi coprono quattro categorie principali di oggetti: argomenti fittizi del sottoprogramma, comuni
blocchi e variabili, sottoprogrammi e funzioni e variabili locali. Avvertenze
includere elementi non definiti, elementi multipli definiti, elementi non utilizzati, ecc. L'avvertimento
le parole chiave con il loro significato sono le seguenti:

arg-alias:
un argomento fittizio scalare è in realtà uguale a un altro ed è (o potrebbe essere)
modificati. Lo standard Fortran 77 (sezione 15.9.3.6) vieta la modifica di un
argomento che è alias con un altro.

arg-array-alias:
un argomento fittizio che è un array o un elemento di array è nello stesso array di
un altro e viene modificato. Questa bandiera è simile a arg-alias ma fornisce
controllo separato sugli argomenti dell'array. È più difficile dire se l'aliasing è
che si verifica nel caso degli array, quindi se ftnchek dà troppi falsi avvertimenti,
questo flag consente di disattivare quelli relativi all'array senza sopprimerli
gli avvisi per gli scalari.

arg-comune-alias:
un argomento fittizio scalare è uguale a una variabile comune nel sottoprogramma,
e uno dei due è modificato. Questo è proibito anche dallo standard Fortran 77.
Se il controllo comune non è esatto (vedere il -Comune impostazione), è più difficile
dire se si sta verificando l'aliasing, quindi l'avviso viene fornito se la variabile è
ovunque in un blocco comune dichiarato dal sottoprogramma.

arg-array-comune-alias:
un argomento fittizio che è un array o un elemento di array è nello stesso array di a
variabile comune, e l'una o l'altra viene modificata. Se il controllo comune non è esatto,
la variabile può essere ovunque in un blocco comune dichiarato da
sottoprogramma.

arg-const-modificato:
un sottoprogramma modifica un argomento che è una costante o un'espressione. Tale
un'azione potrebbe causare un comportamento anomalo del programma.

argomento-inutilizzato:
viene dichiarato un argomento fittizio ma non viene mai utilizzato. Questo è simile al
var-inutilizzato parola chiave descritta di seguito, ma si applica solo agli argomenti.

com-block-non utilizzato:
viene dichiarato un blocco comune ma nessuna delle variabili in esso contenute viene utilizzata da nessuno
sottoprogramma. Questo avviso viene soppresso se l'impostazione di rigore comune è
0.

com-block-volatile:
un blocco comune può perdere la definizione del suo contenuto se i blocchi comuni lo sono
volatile. Questa opzione ha effetto solo se il -comune=volatile la bandiera è dentro
effetto. Vedi la discussione del -Comune impostazione sopra.

com-var-set-non utilizzato:
a una variabile comune viene assegnato un valore, ma il suo valore non viene utilizzato da nessuno
sottoprogramma. Questo avviso viene soppresso se l'impostazione di rigore comune è
0.

com-var-non inizializzato:
il valore di una variabile comune viene utilizzato in alcuni sottoprogrammi, ma non viene impostato
in qualunque posto. Purtroppo, ftnchek non fa un'analisi sufficientemente approfondita di
la sequenza di chiamata per sapere quali routine vengono chiamate prima delle altre. Così
gli avvisi su questo tipo di errore verranno forniti solo nei casi in cui a
variabile viene utilizzata in alcune routine ma non impostata in nessun'altra routine. controllo
delle singole variabili COMMON avviene solo se il -Comune l'impostazione è 3
(variabile per accordo variabile). Questo avviso viene soppresso se il comune
l'impostazione del rigore è 0.

com-var-non utilizzato:
una variabile comune è dichiarata ma non utilizzata da alcun sottoprogramma. questo avvertimento
viene soppresso se l'impostazione di rigore comune è 0.

do-index-modificato:
una variabile che è l'indice di un ciclo DO viene modificata da qualche istruzione
all'interno della gamma del ciclo. Lo Standard consente a una variabile DO attiva di
essere modificato solo dal meccanismo di incremento dell'istruzione DO.

ext-multiplo-definito:
un esterno (un sottoprogramma o una funzione) è definito più di una volta. Definizione
di un mezzo esterno che fornisce il corpo del suo codice sorgente.

solo ext-dichiarato:
un nome è dichiarato in un'istruzione EXTERNAL in qualche modulo, ma non lo è
definito o utilizzato ovunque.

ext-indefinito:
un esterno viene utilizzato (invocato) ma non definito da nessuna parte. Questa opzione è
equivalente al -esterno bandiera. Se il sottoprogramma viene invocato più di
una volta, tali invocazioni verranno comunque controllate per verificarne la coerenza.

ext-inutilizzato:
un esterno è definito (il suo corpo del sottoprogramma è presente) ma non viene utilizzato.
Un sottoprogramma è considerato inutilizzato anche se viene invocato da qualche altro
sottoprogramma, se non può essere chiamato da alcun thread di esecuzione che inizia con
il programma principale. L'accordo degli argomenti del sottoprogramma con il suo
le invocazioni sono ancora controllate anche se questo avviso è disattivato. Se c'è
nessun programma principale, questo avviso viene emesso solo se il sottoprogramma non lo è
invocato ovunque. Questo avviso viene soppresso in modalità libreria, ma libreria
mode ha l'effetto aggiuntivo di sopprimere il controllo degli argomenti per non utilizzati
routine.

etichetta-non definita:
un'istruzione si riferisce a un'etichetta che non è stata definita.

etichetta-inutilizzata:
viene definita un'etichetta di istruzione, ma non viene mai menzionata.

var-set-non utilizzato:
a una variabile locale viene assegnato un valore, ma quel valore non viene utilizzato.

var-non inizializzato:
il valore di una variabile locale può essere utilizzato prima che venga assegnato. Qualche volta
ftnchek commette un errore negli avvisi sull'utilizzo delle variabili locali. Solitamente
pecca dal lato di dare un avvertimento dove non esiste alcun problema, ma in rari casi
casi potrebbe non avvertire dove esiste il problema. Vedi la sezione su
Bug per esempi. Se le variabili sono equivalenti, la regola usata da ftnchek
è che un riferimento a qualsiasi variabile implica lo stesso riferimento a tutte
variabili a cui è equivalente. Per gli array, la regola è che un riferimento a
qualsiasi elemento dell'array viene trattato come un riferimento a tutti gli elementi dell'array.

var-inutilizzato:
viene dichiarata una variabile locale (ad esempio, in una dichiarazione di tipo) ma non lo è
utilizzato nel modulo. Non si applica agli argomenti fittizi: avvertenze su di essi
sono controllati dalla parola chiave argomento-inutilizzato descritto sopra.

Nota: nelle versioni di ftnchek prima del 2.10, il -uso flag ha preso un argomento numerico
invece di un elenco di opzioni. Per il bene degli utenti che potrebbero aver scritto script
invocando ftnchek in questo modo si accetta ancora la forma numerica. Il numerico
l'impostazione è composta da tre cifre. La prima cifra (centinaia) controlla
avvisi sui sottoprogrammi (funzioni e sottoprogrammi), la seconda cifra (decine
place) avvisi su blocchi comuni e variabili comuni, e la terza cifra
(quelli posti) avvisi sulle variabili locali. Ogni cifra controlla gli avvisi
secondo la convenzione che un 1 significa avvisare di elementi e variabili non definiti
che vengono utilizzati prima dell'impostazione, un 2 indica gli elementi che non sono stati utilizzati e un 3 indica
avvisare su entrambi i tipi. Questi numeri sono ora convertiti nei valori appropriati
per le parole chiave sopra elencate, ad eccezione di com-block-volatile, che non è interessato
dall'argomento numerico.

Vedi anche: -Comune, -dichiarare, -esterno, -biblioteca.

-vcg
Produrre il grafico della chiamata sotto forma di descrizione del grafico VCG. Questa descrizione è
scritto in un file separato, con la stessa radice del file contenente il main
programma e suffisso .vcg. Questo file può essere dato direttamente a xvcg(1L) a
visualizzare il grafico delle chiamate. (Se l'input proviene dall'input standard, il grafico
la descrizione viene inviata allo standard output.) Questo interruttore è equivalente a
-calltree=vcg. Predefinito = no.

La descrizione del VCG così come è stata creata è più complessa del necessario. VCG consente grafici
e sottografi annidati: ogni subroutine viene creata come un sottografo annidato all'interno del suo
routine di chiamata. Ciò consente di visualizzare o riepilogare in modo interattivo i sottografi
Loro.

I -vcg opzione per ftnchek è stato scritto dal Dr. Philip Rubini di Cranfield
Università, Regno Unito.

xvcg è uno strumento di visualizzazione di grafici che funziona sotto il sistema X windows. è
disponibile gratuitamente da ftp.cs.uni-sb.de. È stato scritto da G. Sander del
Università del Saarland, Germania.

Vedi anche: - calltree, -rif, -riferimento, -ordinare.

-versione
Questa opzione fa sì che ftnchek per stampare una riga che fornisce il numero di versione, la data di rilascio,
e il livello di patch del programma. Se non viene fornito alcun file, esce. Se i file
sono dati, l'effetto di questa opzione è di includere il livello della patch (normalmente
omesso) nelle informazioni sulla versione stampate all'inizio dell'elaborazione. Predefinito =
no.

Vedi anche: -Aiuto.

-volatile
Supponiamo che i blocchi COMMON siano volatili. Predefinito = no.

Questa bandiera è sostituita da -comune=volatile, e non dovrebbe più essere utilizzato. Esso può
essere eliminato in una versione futura di ftnchek.

Vedi anche: -Comune, -uso.

-dimensione parola=num
Specifica la dimensione della parola predefinita da essere num byte. Questa è la dimensione di logica e
variabili numeriche a precisione singola a cui non vengono fornite precisioni esplicite.
(Le precisioni esplicite per le variabili non di carattere sono un'estensione del Fortran 77
Standard, e sono dati da dichiarazioni di tipo come REAL*8 X.) Doppia precisione
e le variabili complesse saranno il doppio di questo valore e le variabili complesse doppie quattro
volte. Le costanti con precisione quadrupla e i risultati delle funzioni intrinseche saranno quattro volte
questo valore. Nota che le variabili dichiarate come REAL*16 saranno considerate come quad
precisione solo se la dimensione della parola è di 4 byte. Default = accensione = 4 byte.

Il valore della dimensione della parola non ha importanza per il controllo di programmi conformi agli standard che
non dichiarare precisioni esplicite per variabili non di carattere o memorizzare Hollerith
dati in variabili. Anche questa impostazione non influisce sulla dimensione predefinita del carattere
variabili, che è sempre 1 byte. Si assume che anche le costanti di Hollerith occupino
1 byte per carattere.

La dimensione della parola viene utilizzata per determinare se si verifica un troncamento nell'assegnazione
istruzioni e per rilevare le discrepanze di precisione negli elenchi di argomenti dei sottoprogrammi e
liste di blocco comuni. Gli avvisi esatti che vengono emessi dipenderanno dallo stato
di altre bandiere. Sotto entrambi i -portabilità=dimensioni miste e la -nessuna parola bandiera,
qualsiasi combinazione di oggetti di precisione espliciti con quelli di default (espressioni di caratteri no
incluso) viene avvertito. Questo vale per le espressioni aritmetiche che contengono entrambi
tipi di oggetti e argomenti di sottoprogramma e variabili COMUNI. Sotto controllo
della -troncamento=retrocessione ed promozione opzioni, viene fornito un avviso per
assegnazione di un'espressione a una variabile più breve dello stesso tipo, o per
promozione di un valore di precisione inferiore a una precisione maggiore in un'aritmetica
espressione o una dichiarazione di assegnazione.

Dare una dimensione di parola pari a 0, o equivalentemente, usando -nessuna parola significa che nessun valore predefinito
si assumerà il valore. Ciò equivale a specificare -portabilità=dimensioni miste.
Usalo per trovare casi di combinazione di precisione predefinita e esplicita, ad esempio per contrassegnare
luoghi in cui REAL*8 è considerato equivalente a DOUBLE PRECISION.

Vedi anche: -dimensione del puntatore, -portabilità, -troncamento.

-avvolgere=col
Controlla il wrapping dei messaggi di errore. Messaggi di errore lunghi che sarebbero passati
la colonna specificata sarà suddivisa in righe separate tra le parole del
messaggio per una migliore leggibilità. Se spento con -ora, ogni errore separato
messaggio verrà stampato su una riga, lasciando al display il compito di avvolgere il
messaggio o troncare. Default = accensione = 79.

MUTEVOLE LA DEFAULT


ftnchek include due meccanismi per modificare i valori predefiniti di tutte le opzioni: by
definendo le variabili di ambiente o creando un file di preferenze. quando ftnchek si avvia,
cerca nel suo ambiente qualsiasi variabile i cui nomi siano composti dal prefisso
stringa FTNCHEK_ sulla versione in maiuscolo del nome dell'opzione. Se tale variabile è
trovato, il suo valore viene utilizzato per specificare l'impostazione predefinita per l'interruttore o l'impostazione corrispondente.
In caso di impostazioni (ad esempio, il -Comune impostazione di rigore) il valore di
la variabile di ambiente viene letta come il valore dell'impostazione predefinita. Nel caso di interruttori, il
l'opzione predefinita sarà considerata true o yes a meno che la variabile di ambiente non abbia il valore
0 o NO.

Nota che il nome della variabile d'ambiente deve essere costruito con l'opzione full-length
nome, che deve essere in maiuscolo. Ad esempio, per fare ftnchek stampa un elenco di fonti di
impostazione predefinita, imposta la variabile d'ambiente FTNCHEK_LIST su 1 o YES o qualcosa di diverso da 0 o
NO. I nomi FTNCHEK_LIS (non il nome completo dell'opzione) o ftnchek_list (minuscolo)
non essere riconosciuto.

Ecco alcuni esempi di come impostare le variabili di ambiente su vari sistemi. Per
semplicità, tutti gli esempi impostano il default -elenco passare a SI.

1. UNIX, shell Bourne: $ FTNCHEK_LIST=SI
$ esportazione FTNCHEK_LIST

2. UNIX, shell C: % setenv FTNCHEK_LIST YES

3. VAX/VMS: $ DEFINE FTNCHEK_LIST SI

4. MSDOS: $ SET FTNCHEK_LIST=SI

Dopo aver elaborato qualsiasi variabile d'ambiente, ftnchek cerca un file delle preferenze
contenente opzioni e impostazioni. Cercherà nel seguente ordine, usando solo il
primo file trovato: (1) .ftnchekrc nella directory corrente, (2) ftnchek.ini nella corrente
elenco, (3) .ftnchekrc nella home directory dell'utente, (4) ftnchek.ini dentro casa
directory. Se viene trovato un tale file, le opzioni in esso definite vengono utilizzate come predefinite in
al posto delle impostazioni predefinite integrate e sovrascrivendo le impostazioni predefinite impostate nell'ambiente..

Ogni opzione o impostazione nel file delle preferenze deve trovarsi su una riga separata. sono dati
nella stessa forma della riga di comando, tranne che senza il trattino iniziale. Le preferenze
il file può contenere righe vuote e commenti. I commenti vengono introdotti in qualsiasi punto di una riga
da uno spazio (spazio vuoto o tab) o dal carattere '#' e terminano entro la fine di
la linea.

Le opzioni della riga di comando sovrascrivono i valori predefiniti impostati nell'ambiente o nelle preferenze
file, nello stesso modo in cui sovrascrivono le impostazioni predefinite.

UTILIZZO PROGETTO FILE


Questa sezione contiene informazioni dettagliate su come utilizzare i file di progetto nel modo più efficace,
e come evitare alcune insidie.

Si possono dividere gli assegni ftnchek fa in due categorie, locale e globale. Locale
il controllo è limitato a una singola routine e rileva cose come non inizializzate
variabili, perdita involontaria di precisione nelle espressioni aritmetiche, ecc
il controllo può essere eseguito su ciascun sottoprogramma in modo indipendente. Inoltre, il controllo locale di a
non è necessario ripetere il sottoprogramma quando viene modificato un altro sottoprogramma. Globale
il controllo rileva cose come chiamare una subroutine con i tipi di argomento sbagliati, o
in disaccordo nelle dichiarazioni di blocco comuni. Richiede di guardare l'intero set di
sottoprogrammi che interagiscono tra loro.

Lo scopo dei file di progetto è di consentire ai passaggi di controllo locale e globale di
essere separato. Supponendo che ogni sottoprogramma sia nel proprio file sorgente, puoi eseguire
ftnchek una volta su ciascuno per eseguire il controllo locale sopprimendo il controllo globale. Poi
ftnchek può essere eseguito una volta su tutti i file di progetto insieme per eseguire il controllo globale. Il
il makefile di esempio di seguito mostra come automatizzare questa attività. Il target ``.f.prj'' si aggiorna a
file di progetto per un determinato file ogni volta che il file di origine cambia. L'informazione
necessario per il controllo globale viene salvato nel file di progetto. Il target ``check'' fa il
controllo globale combinato. Tipicamente ``make check'' ripeteva il ``ftnchek -project''
passare solo sui file sorgente modificati, quindi eseguire il controllo globale. Questo è ovviamente un grande
vantaggio per i programmi di grandi dimensioni, quando molti sottoprogrammi cambiano raramente, se non mai.

Quando si utilizzano file di progetto, è meglio posizionare ciascun sottoprogramma in un file sorgente separato.
Se ogni file sorgente può contenere più di un sottoprogramma, complica la definizione
del controllo ``locale'' e ``globale'' perché c'è un controllo tra moduli che è
contenuto all'interno di un file. ftnchek cerca di fare la cosa giusta in questo caso, ma ci sono
alcune complicazioni (descritte di seguito) dovute al compromesso tra evitare di rifare
controlla e preserva le informazioni sulla struttura del programma.

Normalmente, per eseguire il minor numero di controlli, i file di progetto dovrebbero essere creati con
, il -biblioteca flag attivo e ritaglio attivato. In questa modalità, le informazioni salvate
nel file di progetto è costituito da tutte le dichiarazioni di sottoprogramma, tutte le chiamate di sottoprogramma
non risolto da dichiarazioni nello stesso file e un'istanza di ciascun blocco COMMON
dichiarazione. Questa è la quantità minima di informazioni necessarie per verificare l'accordo tra
File.

Se il file sorgente contiene più di una routine, ci sono alcuni possibili problemi che
può derivare dalla creazione del file di progetto in modalità libreria, perché la gerarchia di chiamata
tra le routine definite all'interno del file viene perso. Inoltre, se le routine nel file make
uso di blocchi COMUNI condivisi con routine in altri file, non ci sarà
sufficienti informazioni salvate per il corretto controllo dello stato impostato e utilizzato dei blocchi COMUNI
e COMUNE variabili secondo il -uso collocamento. Pertanto, se si prevede di utilizzare
file di progetto quando -uso il controllo è attivato (che è la situazione predefinita) e se
più routine in un file di progetto condividono blocchi COMUNI con routine in altri file,
i file di progetto dovrebbero essere creati con il -biblioteca bandiera spenta. In questa modalità,
ftnchek salva, oltre alle informazioni sopra elencate, un richiamo di ogni sottoprogramma tramite
qualsiasi altro sottoprogramma nello stesso file e tutte le dichiarazioni di blocco COMMON. Ciò significa che
il file di progetto sarà più grande del necessario e che quando viene letto, ftnchek può
ripetere alcuni controlli inter-modulo già effettuati al momento della creazione del file di progetto. Se
ogni file di progetto contiene un solo modulo, non c'è perdita di informazioni nella creazione
i file di progetto in modalità libreria.

A causa della possibile perdita di informazioni che comporta la creazione di un file di progetto con il
-biblioteca flag in vigore, ogni volta che quel file di progetto viene letto in un secondo momento, verrà trattato
come file di libreria indipendentemente dall'impostazione corrente del -biblioteca bandiera. Dall'altra
mano, un file di progetto creato con la modalità libreria disattivata può essere letto in seguito in entrambi
modalità.

La discussione precedente presuppone che le opzioni di rifilatura del -progetto l'impostazione è
attivato quando viene creato il file di progetto. Questa è la situazione normale. Il senza finiture
opzioni di -progetto le impostazioni sono fornite nel caso in cui si desideri utilizzare i file di progetto
per scopi diversi dalla verifica del programma con ftnchek. Ad esempio, si potrebbe scrivere
uno script Perl per analizzare i file di progetto per informazioni su come i diversi
vengono chiamati i sottoprogrammi. Non dovresti usare il senza finiture opzioni per affrontare i problemi di
perdita di informazioni discusse sopra, poiché causano più informazioni del necessario per essere
immagazzinato. Questo rende i file di progetto più grandi e causa ftnchek per fare più lavoro più tardi quando
li legge per controllare il tuo programma completo. Normalmente, dovresti usare il -biblioteca
opzione per controllare la quantità di informazioni da memorizzare per un uso successivo da ftnchek nel controllare il tuo
.

Ecco un esempio di come usare UNIX make utility per creare automaticamente un nuovo
file di progetto ogni volta che viene modificato il file sorgente corrispondente e per controllare l'insieme di
file per coerenza. Aggiungi queste righe al tuo makefile. L'esempio assume che a
è stata definita la macro OBJS che elenca tutti i nomi dei file oggetto da collegare
insieme per formare il programma eseguibile completo. (In questo makefile, le righe rientrate
dovrebbero iniziare con una tabulazione, non con spazi.) Se un file sorgente contiene più routine
che condividono blocchi comuni tra loro, allora l'opzione no-com-\* dovrebbe essere rimossa
da NOGLOBAL e/o rilascia il flag -library.
# dire a make qual è il suffisso di un file di progetto
.SUFFISSI: .prj

# queste opzioni sopprimono i controlli globali.
NOGLOBAL=-utilizzo=no-ext-undefined,no-com-\*

# dice a make come creare un file .prj da un file .f
.f.prj:
ftnchek -progetto $(NOGLOBAL) -libreria $

# imposta la macro PRJS contenente i nomi dei file di progetto
PRJS= $(OBJS:.o=.prj)

# "make check" controllerà tutto ciò che è stato modificato.
verifica: $(PRJS)
$$(PRJS)

Quando un programma usa molte routine definite in un gran numero di file sorgente differenti in
directory diverse, può essere complicato specificare tutti i diversi file di progetto
necessario per controllare correttamente il programma. Per affrontare casi del genere, ftnchek permette progetto
file da concatenare in un unico file di grandi dimensioni. Questo singolo file può quindi essere assegnato a
ftnchek fornire le informazioni per verificare l'uso di una o tutte le routine
definito nei file di progetto combinati. Quando si utilizza un simile file di progetto ``libreria'',
può volere ftnchekrapporti di errore per documentare con precisione il nome del file in cui il
specifica funzione è definita. Se i vari file sorgente si trovano in più directory, an
il rapporto di errore che fornisce solo il nome del file potrebbe essere ambiguo e dovrebbe includere il
percorso del file. La soluzione è creare ciascuno dei singoli file di progetto da
fornendo il percorso completo del file sorgente. Quindi questo percorso completo apparirà nel
segnalazioni di errore. Ad esempio, supponiamo che tutti i file sorgente del sottoprogramma della libreria siano
nelle sottodirectory di una directory denominata /util/lib. Quindi i singoli file di progetto potrebbero
prima essere creato da un comando come
trova /util/lib -name '*.f' -exec ftnchek -project '{}' ';'
(Eventualmente verrebbero fornite altre opzioni a ftnchek come discusso sopra. Inoltre, questo passaggio
potrebbe essere gestito invece da una regola makefile rivista che fornirebbe la fonte completa
percorso del file anziché solo il nome locale durante l'invocazione ftnchek.) Quindi, concatena tutto
questi file di progetto manualmente.
find /util/lib -name '*.prj' -exec cat '{}' ';' > ourlib.prj
Quindi un file sorgente del programma può essere controllato usando il comando
ftnchek prog.f ... -lib ourlib.prj
e un messaggio di errore relativo a qualsiasi routine di libreria includerà il percorso completo del
file sorgente della routine.

Al momento, non esiste un'utilità di archiviazione come ar per gestire il contenuto di un concatenato
file di progetto come quello nell'illustrazione sopra. Se vengono apportate modifiche a uno dei
routine di libreria, l'unico modo per aggiornare il file di progetto combinato è concatenare tutto
nuovamente i singoli file di progetto. Una tale utilità sarebbe abbastanza facile da scrivere.
Qualcuno dovrebbe farlo e contribuire al ftnchek sforzo.

AN ESEMPIO


Il seguente semplice programma Fortran illustra i messaggi dati da ftnchek.
programma ha lo scopo di accettare una serie di punteggi dei test e quindi calcolare la media per il
serie.

C AUTORI: MIKE MYERS E LUCIA SPAGNUOLO
C DATA: 8 MAGGIO 1989

Variabili C:
PUNTEGGIO C -> una serie di punteggi dei test
C SUM -> somma dei punteggi del test
C COUNT -> contatore dei punteggi letti
CI -> contatore loop

FUNZIONE REALE COMPAV (PUNTEGGIO, CONTEGGIO)
SOMMA INTERA,CONTEGGIO,J,PUNTO(5)

FARE 30 I = 1,CONTA
SOMMA = SOMMA + PUNTEGGIO(I)
30 CONTINUA
COMPAV = SOMMA/CONTEGGIO
FINE

PROGRAMMA AVENUM
C
C PROGRAMMA PRINCIPALE
C
C AUTORE: LOIS BIGBIE
C DATA: 15 MAGGIO 1990
C
Variabili C:
C MAXNOS -> numero massimo di valori in ingresso
C NUMS -> un array di numeri
C COUNT -> numero esatto di valori di input
C AVG -> media restituita da COMPAV
CI -> contatore loop
C

PARAMETRO(MAXNOS=5)
INTERO I, CONTE
NUMERI REALI (MAXNOS), AVG
CONTA = 0
DO 80 I = 1,MAXNOS
LEGGI (5,*,END=100) NUM(I)
CONTA = CONTA + 1
80 CONTINUA
100 AVG = COMPAV (NUM, COUNT)
FINE

Il compilatore non fornisce messaggi di errore quando questo programma viene compilato. Eppure ecco cosa
succede quando viene eseguito:

$ corsa media
70
90
85

$

Quello che è successo? Perché il programma non ha fatto nulla? Quello che segue è l'output di
ftnchek quando viene utilizzato per eseguire il debug del programma precedente:

$ ftnchek -list -symtab media

FTNCHEK Versione 3.3 novembre 2004

File media.f:

1 C AUTORI: MIKE MYERS E LUCIA SPAGNUOLO
2C DATA: 8 MAGGIO 1989
3
4 C Variabili:
5 C PUNTEGGIO -> una serie di punteggi dei test
6 C SUM -> somma dei punteggi del test
7 C COUNT -> contatore dei punteggi letti
8 CI -> contatore loop
9
10 FUNZIONI REALI COMPAV (PUNTEGGIO, CONTEGGIO)
11 SOMMA INTERA,CONTEGGIO,J,PUNTO(5)
12
13 DO 30 I = 1,CONTEGGIO
14 SOMMA = SOMMA + PUNTEGGIO(I)
15 30 CONTINUA
16 COMPAV = SOMMA/CONTEGGIO
^
Avviso vicino alla riga 16 col 20: quoziente intero expr SUM/COUNT convertito in
di rose
17 FINE

Modulo COMPAV: func: real

variabili:

Nome Tipo Dim Nome Tipo Dim Nome Tipo Dim Nome Tipo Dim
COMPAV real COUNT intg I intg* J intg
PUNTEGGIO intg 1 SOMMA intg

* Variabile non dichiarata. Il tipo è stato definito implicitamente.

Avvertimento nel modulo COMPAV: Variabili dichiarate ma mai referenziate:
J dichiarato alla riga 11

Avviso nel modulo COMPAV: Le variabili possono essere utilizzate prima dell'impostazione:
SOMMA utilizzata alla riga 14
SOMMA impostata alla riga 14

Etichette di dichiarazione definite:

Etichetta linea StmtType
<30> 15 dirigenti

18
19
20 PROGRAMMA AVENUM
21
22 C PROGRAMMA PRINCIPALE
23
24 C AUTORE: LOIS BIGBIE
25C DATA: 15 MAGGIO 1990
26
27 C Variabili:
28 C MAXNOS -> numero massimo di valori in ingresso
29 C NUMS -> un array di numeri
30 C COUNT -> numero esatto di valori di input
31 C AVG -> media restituita da COMPAV
32 CI -> contatore loop
33
34
35 PARAMETRO(MAXNOS=5)
36 INTERO I, CONTE
37 NUMERI REALI (MAXNOS), AVG
38 CONTEGGIO = 0
39 DO 80 I = 1,MAXNOS
40 LEGGI (5,*,END=100) NUM(I)
41 CONTA = CONTA + 1
42 80 CONTINUA
43 100 MEDIA = COMPAV(NUM, CONTEGGIO)
44 FINE

Modulo AVENUM: prog

Sottoprogrammi esterni a cui si fa riferimento:

COMPAV: reale*

variabili:

Nome Tipo Dim Nome Tipo Dim Nome Tipo Dim Nome Tipo Dim
AVG real COUNT intg I intg MAXNOS intg*
NUMS reale 1

* Variabile non dichiarata. Il tipo è stato definito implicitamente.

Avviso nel modulo AVENUM: Variabili impostate ma mai utilizzate:
AVG impostato sulla riga 43

Operazioni di I/O:

ID unità Unità n. Modulo di accesso Riga operazione
5 SEQ FMTD LETTURA 40

Etichette di dichiarazione definite:

Linea etichetta StmtType Linea etichetta StmtType
<80> 42 dirigente <100> 43 dirigente

0 errori di sintassi rilevati nel file media.f
6 avvisi emessi nel file media.f

Avviso: mancata corrispondenza del tipo di dati dell'argomento COMPAV del sottoprogramma nella posizione 1:
Dummy arg SCORE nel modulo COMPAV riga 10 file media.f è di tipo intg
L'argomento effettivo NUMS nel modulo AVENUM riga 43 file media.f è di tipo real

Secondo ftnchek, il programma contiene variabili che possono essere utilizzate prima che lo siano
assegnato un valore iniziale e variabili che non sono necessarie. ftnchek avverte anche il
utente che un quoziente intero è stato convertito in un reale. Questo può aiutare l'utente in
intercettare un errore di arrotondamento non intenzionale. Dal momento che -simbolo bandiera è stata data, ftnchek stampe
fuori una tabella contenente gli identificatori dal modulo locale e il loro corrispondente tipo di dati
e numero di dimensioni. Infine, ftnchek avverte che la funzione COMPAV non è utilizzata
con il tipo appropriato di argomenti.

Con ftnchekaiuto, possiamo eseguire il debug del programma. Possiamo vedere che c'erano i seguenti
errori:

1. SUM e COUNT avrebbero dovuto essere convertiti in reali prima di eseguire la divisione.

2. SUM avrebbe dovuto essere inizializzato a 0 prima di entrare nel ciclo.

3. AVG non è mai stato stampato dopo essere stato calcolato.

4. NUMS avrebbe dovuto essere dichiarato INTEGER invece di REAL.

Vediamo anche che I, non J, avrebbe dovuto essere dichiarato INTEGER nella funzione COMPAV. Anche,
MAXNOS non è stato dichiarato come INTEGER, né COMPAV come REAL, nel programma AVENUM. Questi non lo sono
errori, ma possono indicare negligenza. Come è successo, il tipo predefinito di questi
le variabili coincidono con il tipo previsto.

Ecco il programma corretto e il suo output quando viene eseguito:

C AUTORI: MIKE MYERS E LUCIA SPAGNUOLO
C DATA: 8 MAGGIO 1989
C
Variabili C:
PUNTEGGIO C -> una serie di punteggi dei test
C SUM -> somma dei punteggi del test
C COUNT -> contatore dei punteggi letti
CI -> contatore loop
C
FUNZIONE REALE COMPAV (PUNTEGGIO, CONTEGGIO)
SOMMA INTERA,CONTE,I,PUNTO(5)
C
SOMMA = 0
FARE 30 I = 1,CONTA
SOMMA = SOMMA + PUNTEGGIO(I)
30 CONTINUA
COMPAV = FLOAT(SOMMA)/FLOAT(CONTEGGIO)
FINE
C
C
PROGRAMMA AVENUM
C
C PROGRAMMA PRINCIPALE
C
C AUTORE: LOIS BIGBIE
C DATA: 15 MAGGIO 1990
C
Variabili C:
C MAXNOS -> numero massimo di valori in ingresso
C NUMS -> un array di numeri
C COUNT -> numero esatto di valori di input
C AVG -> media restituita da COMPAV
CI -> contatore loop
C
C
INTERO MAXNOS
PARAMETRO(MAXNOS=5)
INTERO I, NUMS(MAXNOS), COUNT
REAL AVG, COMPAV
CONTA = 0
DO 80 I = 1,MAXNOS
LEGGI (5,*,END=100) NUM(I)
CONTA = CONTA + 1
80 CONTINUA
100 AVG = COMPAV (NUM, COUNT)
WRITE(6,*) 'MEDIA =',MEDIA
FINE
$ corsa media
70
90
85

MEDIA = 81.66666
$

Con ftnchekaiuto, il nostro programma è un successo!

INTERPRETARIATO LA USCITA


I messaggi dati da ftnchek includere non solo errori di sintassi ma anche avvisi e
messaggi informativi su cose che sono legali Fortran ma che possono indicare errori o
disattenzione. La maggior parte di questi messaggi può essere disattivata dalle opzioni della riga di comando. Quale
L'opzione controlla che ogni messaggio dipende dalla natura della condizione di cui viene avvisato.
Vedere le descrizioni dei flag della riga di comando nelle sezioni precedenti e dei singoli
messaggi di seguito. Ogni messaggio è preceduto da una parola o frase che indica la natura di
la condizione e la sua gravità.

``Errore'' indica un errore di sintassi. Il tipo più semplice di errori di sintassi sono tipografici
errori, ad esempio parentesi non bilanciate o errori di ortografia di una parola chiave. Questo tipo di
l'errore viene rilevato dal parser e appare con la descrizione ``parse error'' o ``syntax
errore'' (a seconda della versione del generatore di parser e se è GNU bisonte or
UNIX sì, sì). Questo tipo di messaggio di errore non può essere eliminato. Tieni presente che questo tipo di
errore spesso significa che ftnchek non ha interpretato correttamente l'affermazione in cui l'errore
si verifica, in modo da comprometterne le successive operazioni di controllo. Dovresti
eliminare tutti gli errori di sintassi prima di procedere all'interpretazione degli altri messaggi ftnchek
dà.

``Attenzione: sintassi non standard'' indica un'estensione di Fortran che ftnchek supporta
ma questo non è secondo lo standard Fortran 77. Le estensioni che ftnchek accetta
sono descritti nella sezione sulle estensioni di seguito. Un esempio è il DO...ENDDO
costruzione. Se un programma utilizza queste estensioni, verranno forniti avvisi in base a
specifiche sotto il -f77 collocamento. Il comportamento predefinito è di non fornire avvisi.

"Avviso" in altri casi indica una condizione sospetta ma che potrebbe esserlo o meno
un errore di programmazione. Spesso queste condizioni sono legali secondo lo standard. Alcuni sono
illegale ma non rientrano nella categoria degli errori di sintassi. Gli errori di utilizzo ne sono un esempio.
Si riferiscono alla possibilità che una variabile possa essere utilizzata prima che le sia stata assegnata una
valore (generalmente un errore), o che una variabile viene dichiarata ma mai utilizzata (innocuo ma
può indicare negligenza). La quantità di controllo degli errori di utilizzo è controllata dal
-uso flag, che specifica la quantità massima di controllo per impostazione predefinita.

Gli avvisi di troncamento coprono situazioni in cui la precisione può essere persa involontariamente, per
esempio quando un valore a doppia precisione viene assegnato a una variabile reale. Questi avvertimenti sono
controllato da -troncamento impostazione, che è attiva per impostazione predefinita.

``Uso non portatile'' avverte di alcune funzionalità che potrebbero non essere accettate da alcuni compilatori
anche se non è contrario allo standard Fortran 77, o può causare il programma
per eseguire in modo diverso su piattaforme diverse. Ad esempio, equivalendo reale e
le variabili intere sono di solito una pratica non portatile. L'uso di estensioni per il
il linguaggio standard è, ovviamente, un'altra fonte di non portabilità, ma questo viene gestito come
un caso separato. Per verificare la vera portabilità di un programma, sia il -portabilità e la
-f77 dovrebbero essere usate le bandiere. Entrambi sono disattivati ​​per impostazione predefinita. Il -dimensione parola l'impostazione è
fornito per controllare solo quegli usi non portatili che dipendono da una particolare macchina
dimensione delle parole.

``Aspetto forse fuorviante'' viene utilizzato per costruzioni legali che potrebbero non significare cosa
sembrano significare a prima vista. Ad esempio, Fortran è insensibile allo spazio vuoto,
spazio così estraneo all'interno dei nomi delle variabili o la mancanza di spazio tra una parola chiave e a
variabile può dare un'impressione sbagliata al lettore. Questi messaggi possono essere soppressi
spegnendo il -bella flag, che è attivo per impostazione predefinita.

Altri messaggi che vengono dati dopo che tutti i file sono stati elaborati e che hanno a che fare con
accordo tra i moduli, non usare la parola "avviso" ma generalmente rientra in questo
categoria. Gli esempi includono le discrepanze di tipo tra le variabili corrispondenti in diversi
Dichiarazioni di blocco COMMON o tra argomenti fittizi e effettivi di un sottoprogramma. Queste
gli avvisi sono controllati dal -Comune ed -argomenti impostazioni rispettivamente. Per impostazione predefinita
entrambi sono impostati per la massima severità di controllo.

Un altro gruppo di avvertenze su condizioni spesso innocue si riferisce a casi in cui
le proprietà dell'array di una variabile passata come argomento del sottoprogramma differiscono tra i due
routine. Ad esempio, un elemento dell'array potrebbe essere passato a una subroutine che si aspetta a
intero schieramento. Questa è una tecnica comunemente usata per elaborare singole righe o colonne di
array bidimensionali. Tuttavia, potrebbe anche indicare un errore di programmazione. Il -Vettore
l'impostazione consente all'utente di regolare il grado di rigore da utilizzare nel controllo di questo
tipo di accordo tra gli argomenti dell'array effettivi e fittizi. Per impostazione predefinita, il rigore è
massimo.

``Oops'' indica un problema tecnico, ovvero un bug in ftnchek o che è
risorse sono state superate.

I messaggi di errore di sintassi e gli avvisi includono il nome del file insieme al numero di riga e
numero di colonna. ftnchek ha due diverse opzioni per la comparsa di questi errori
messaggi. Se -novizio è in vigore, che è l'impostazione predefinita, i messaggi sono in uno stile
approssimazione all'inglese normale. (Nello stile predefinito, il nome del file non viene stampato nei messaggi
all'interno del corpo del programma se -elenco è in vigore.) L'altro stile di messaggi di errore
è selezionato dal -novizio opzione. In questo stile, l'aspetto dei messaggi è
simile a quello di UNIX garza .

ftnchek è ancora cieco ad alcuni tipi di errori di sintassi. I due più importanti sono
controllo dettagliato delle istruzioni FORMAT e quasi tutto ciò che ha a che fare con il controllo di
flusso di esecuzione tramite istruzioni IF, DO e GOTO: ovvero corretta nidificazione del controllo
strutture, corrispondenza di dichiarazioni di apertura come IF ... THEN con dichiarazioni di chiusura
come ENDIF e l'uso corretto delle etichette delle istruzioni (numeri). La maggior parte dei compilatori lo farà
cogliere questi errori. Vedere la sezione sulle limitazioni per una discussione più dettagliata.

If ftnchek ti dà un messaggio di errore di sintassi quando il compilatore non lo fa, potrebbe essere perché
il tuo programma contiene un'estensione al Fortran standard che è accettato dal compilatore
ma non da ftnchek. (Vedere la sezione Estensioni.) Su un sistema VAX/VMS, è possibile utilizzare
l'opzione del compilatore /STANDARD per far sì che il compilatore accetti solo Fortran standard. Sopra
la maggior parte dei sistemi UNIX o UNIX-like, questo può essere ottenuto impostando il flag -ansi.

Molti dei messaggi dati da ftnchek sono autoesplicativi. Quelli che hanno bisogno di un po'
ulteriori spiegazioni sono elencate di seguito in ordine alfabetico.

Uncommon bloccare NOME: dati Digitare mancata corrispondenza at posizione n
I n-esima variabile nel blocco COMMON differisce nel tipo di dati in due diversi
dichiarazioni del blocco COMMON. Per impostazione predefinita (-Comune livello di severità 3), ftnchek
è molto esigente riguardo ai blocchi COMMON: le variabili elencate in essi devono corrispondere esattamente
per tipo di dati e dimensioni dell'array. Cioè, la coppia legale di dichiarazioni in
diversi moduli:
COMUNE /COM1/ A,B
ed
COMUNE /COM1/ A(2)
causerà ftnchek dare avvertimenti a livello di severità 3. Queste due dichiarazioni
sono legali in Fortran poiché entrambi dichiarano due variabili reali. a rigore
livello 1 o 2, in questo esempio non verrebbe fornito alcun avviso, ma l'avviso sarebbe
dato se c'era una mancata corrispondenza del tipo di dati, ad esempio, se B fosse dichiarato INTEGER.
Controllato da -Comune impostazione.

Uncommon bloccare NOME ha lungo dati Digitare i seguenti corto dati Digitare
Alcuni compilatori richiedono l'allineamento di elementi multibyte in modo che ogni elemento inizi da
indirizzo che è un multiplo della dimensione dell'articolo. Pertanto, se un breve (ad es.
precisione reale) è seguito da un lungo (es. doppia precisione reale), il
quest'ultimo potrebbe non essere allineato correttamente. Controllato da -portabilità=allineamento-comune
opzione.

Uncommon bloccare NOME ha misto carattere ed non-personaggio variabili
Lo standard ANSI richiede che se una variabile in un blocco COMMON è di tipo
CHARACTER, allora anche tutte le altre variabili nello stesso blocco COMMON devono essere di tipo
CARATTERE. Controllato da -f77=misto-comune opzione.

Uncommon bloccare NOME: variando lunghezza
Nel -Comune impostando il livello 2, questo messaggio significa che un blocco COMMON è dichiarato a
hanno un numero diverso di parole in due diversi sottoprogrammi. Una parola è la quantità
di memoria occupata da un numero intero o variabile reale. Per -Comune livello di impostazione 3,
significa che le due dichiarazioni hanno un diverso numero di variabili, dove an
array di qualsiasi dimensione è considerato una variabile. Questo non è necessariamente un errore,
ma può indicare che una variabile manca da una delle liste. Notare che
secondo lo standard Fortran 77, è un errore per i blocchi COMMON denominati (ma
non vuoto COMUNE) per differire nel numero di parole nelle dichiarazioni in diverse
moduli. dato per -Comune impostazione 2 o 3.

Errore: Male formato logico/relazionale operatore or costante

Errore: Male formato di rose costante
L'analizzatore di sintassi ha trovato l'inizio di una delle parole speciali che iniziano e
terminare con un punto (ad es. .EQ.), o l'inizio di una costante numerica, ma non l'ha fatto
riuscire a trovare un oggetto completo di quel tipo.

Errore: non può be regolabile Taglia in modulo NOME
Una variabile carattere non può essere dichiarata con una dimensione che è un asterisco in
parentesi a meno che non sia un argomento fittizio, un parametro o il nome della funzione
definito nel modulo.

Errore: non può be dichiarata in RISPARMIA dichiarazione in modulo NOME
In un'istruzione SAVE possono essere dichiarati solo variabili locali e blocchi comuni.

Errore: Non sentiero a questo dichiarazione
ftnchek rileverà le istruzioni che vengono ignorate o ignorate perché non c'è
percorso prevedibile per la dichiarazione. Ad esempio, un'istruzione non numerata (a
istruzione senza un'etichetta di istruzione), che si verifica immediatamente dopo un'istruzione GOTO,
non può essere eseguito.

Errore: Analizza errore
Ciò significa che il parser, che analizza il programma Fortran in espressioni,
dichiarazioni, ecc., non è stato in grado di trovare un'interpretazione valida per alcune parti
di una dichiarazione nel programma. Se il tuo compilatore non riporta un errore di sintassi su
nello stesso posto, le spiegazioni più comuni sono: (1) uso di un'estensione ad ANSI
Fortran standard che non è riconosciuto da ftnchek, o (2) la dichiarazione richiede
più lungimirante di ftnchek utilizza (vedere la sezione sui bug).

NOTA: questo messaggio indica che l'istruzione interessata non viene interpretata.
Pertanto, è possibile che ftnchekla successiva elaborazione sarà errata, se
dipende da qualsiasi questione interessata da questa dichiarazione (dichiarazioni di tipo, ecc.).

Errore: Sintassi errore
È lo stesso di ``Error: Parse error'' (vedi sopra). Viene generato se il tuo
versione ftnchek è stato costruito usando UNIX sì, sì generatore di parser piuttosto che GNU
bisonte.

Identificatori quale sono non unico in prima di tutto sei caratteri
Avverte che due identificatori di lunghezza superiore a 6 caratteri non differiscono tra loro
primi 6 caratteri. Questo è per la portabilità: potrebbero non essere considerati distinti
da alcuni compilatori. Controllato da -seichar opzione.

Non portatile utilizzo: argomento precisione può non be correggere per intrinseco function
La precisione di un argomento passato a una funzione intrinseca potrebbe essere errata su
alcuni computer. Rilasciato quando una variabile numerica dichiarata con precisione esplicita
(es. REAL*8 X) viene passato a una specifica funzione intrinseca (es. DSQRT(X)).
Controllato da -portabilità=dimensioni miste ed -dimensione parola.

Non portatile utilizzo: carattere costante/variabile lunghezza supera 255
Alcuni compilatori non supportano stringhe di caratteri più lunghe di 255 caratteri.
Controllato da -portability=stringa lunga.

Non portatile utilizzo: Compila il contiene schede
ftnchek espande le schede per essere equivalenti agli spazi fino alla colonna successiva che è a
multiplo di 8. Alcuni compilatori trattano le schede in modo diverso ed è anche possibile che
i file inviati per posta elettronica avranno le schede convertite in spazi vuoti in qualche modo.
Pertanto i file contenenti schede potrebbero non essere compilati correttamente dopo essere stati
trasferito. ftnchek non dà questo messaggio se le schede si verificano solo all'interno dei commenti
o costanti di carattere. Controllato da -portabilità=tab.

Non portatile utilizzo: non intero DO loop limiti
Questo avviso viene fornito solo quando l'indice DO e i limiti non sono interi. Uso di
quantità non intere in un'istruzione DO possono causare errori imprevisti o diversi
risultati su macchine diverse, a causa degli effetti di arrotondamento. Controllato da
-portabilità=real-do.

Forse it is an schieramento quale Prima non dichiarata
Questo messaggio viene aggiunto agli avvisi relativi a una chiamata di funzione o ad un
mancata corrispondenza del tipo di argomento, per la quale esiste la possibilità che ciò che sembra essere a
la funzione è in realtà pensata per essere un array. Se il programmatore ha dimenticato di dimensionare
un array, i riferimenti all'array verranno interpretati come invocazioni di funzioni.
Questo messaggio verrà soppresso se il nome in questione appare in un ESTERNO o
Dichiarazione INTRINSECA. Controllato dal -novizio opzione.

Forse ingannevole aspetto: caratteri passato 72 colonne
Il programma è in elaborazione con la larghezza del campo di istruzione al suo valore standard
di 72 e alcuni caratteri non vuoti sono stati trovati oltre la colonna 72. In questo caso,
ftnchek non sta elaborando i caratteri oltre la colonna 72 e sta notificando l'utente
che l'affermazione potrebbe non avere il significato che sembra avere. Queste
i caratteri potrebbero essere considerati significativi dal programmatore, ma lo saranno
ignorato dal compilatore. Controllato da -bella=fila lunga.

Forse ingannevole aspetto: Uncommon bloccare dichiarata in Scopri di più di prima dichiarazione
Tali dichiarazioni multiple sono legali e hanno lo stesso effetto di una continuazione di
la dichiarazione originale del blocco. Questo avvertimento viene dato solo se i due
dichiarazioni sono separate da una o più dichiarazioni intermedie. Controllato da
-pretty=multiplo-comune.

Forse ingannevole aspetto: continuazione segue commento or vuoto linea
ftnchek emette questo messaggio di avviso per avvisare l'utente che una continuazione di a
affermazione è intervallata da commenti, rendendola facile da trascurare. Controllato da
-carino=continuazione.

Forse ingannevole aspetto: Estraneo parentesi
Avvisa delle parentesi che circondano una variabile da sola in un'espressione. Quando un
la variabile tra parentesi viene passata come argomento a un sottoprogramma, viene trattata come
un'espressione, non come una variabile il cui valore può essere modificato dalla routine chiamata.
Controllato da -pretty=parentesi.

sottoprogramma NOME: argomento dati Digitare mancata corrispondenza at posizione n
I sottoprogrammi n-esimo argomento effettivo (nella CALL o nell'uso di una funzione)
differisce per tipo di dati o precisione da n-esimo argomento fittizio (nella SUBROUTINE o
dichiarazione FUNZIONE). Ad esempio, se l'utente definisce un sottoprogramma con
SUBROUTINE SUBA(X)
VERO X
e altrove invoca SUBA by
CALL SUBA(2)
ftnchek rileverà l'errore. La ragione qui è che il numero 2 è intero,
non reale. L'utente avrebbe dovuto scrivere
CHIAMA SUBA(2.0)

Quando si controlla un argomento che è un sottoprogramma, ftnchek deve essere in grado di determinare
se si tratta di una funzione o di un sottoprogramma. Le regole usate da ftnchek per fare questo sono
come segue: Se il sottoprogramma, oltre a essere passato come argomento effettivo, è anche
invocato direttamente altrove nello stesso modulo, quindi il suo tipo è determinato da quello
utilizzo. In caso negativo, se il nome del sottoprogramma non compare in modo esplicito
dichiarazione di tipo, si presume che sia una subroutine; se viene digitato esplicitamente lo è
preso come una funzione. Pertanto, le subroutine passate come argomenti effettivi necessitano solo
essere dichiarato da un'istruzione EXTERNAL nel modulo chiamante, mentre le funzioni devono
essere anche digitato esplicitamente per evitare di generare questo messaggio di errore.
Controllato da -argomenti impostazione.

sottoprogramma NOME: argomento serietà mancata corrispondenza at posizione n
Simile alla situazione precedente, ma l'argomento fittizio del sottoprogramma differisce da
l'argomento effettivo corrispondente nel suo numero di dimensioni o numero di
elementi. Controllato da -Vettore insieme -argomenti e socievole.

sottoprogramma NOME: argomento mancata corrispondenza at posizione n
Un argomento fittizio di caratteri è più grande dell'argomento effettivo corrispondente o a
L'argomento fittizio di Hollerith è maggiore dell'argomento effettivo corrispondente.
Controllato da -argomenti impostazione.

sottoprogramma NOME: argomento uso mancata corrispondenza
ftnchek rileva un possibile conflitto tra il modo in cui un sottoprogramma utilizza un argomento
e il modo in cui l'argomento viene fornito al sottoprogramma. Il conflitto può
essere uno dei due tipi, come indicato di seguito.

Manichino arg is modificati, Reale arg is const or espr
Un argomento fittizio è un argomento come indicato in un'istruzione SUBROUTINE o FUNCTION e
utilizzato all'interno del sottoprogramma. Un argomento effettivo è un argomento passato a a
subroutine o funzione del chiamante. ftnchek sta dicendo che un argomento fittizio è
modificato dal sottoprogramma, implicando che il suo valore sia cambiato nella chiamata
modulo. L'argomento effettivo corrispondente non dovrebbe essere una costante o un'espressione,
ma piuttosto una variabile o un elemento di array a cui può essere legittimamente assegnato.
Controllato dal -usage=arg-const-modificato opzione.

Manichino arg utilizzato prima impostato, Reale arg non set
Qui un argomento fittizio può essere usato nel sottoprogramma prima di avere un valore assegnato
ad esso dal sottoprogramma. L'argomento effettivo corrispondente dovrebbe avere un valore
assegnatogli dal chiamante prima di richiamare il sottoprogramma. Controllato dal
-usage=var-non inizializzato opzione.

Questo avviso non è influenzato dal -argomenti impostazione.

sottoprogramma NOME invocato incoerente
Qui la mancata corrispondenza è tra il tipo di dati del sottoprogramma stesso come usato e come
definito. Ad esempio, se l'utente dichiara
INTERO FUNZIONE CONTEGGIO(A)
e invoca COUNT in un altro modulo come
N = CONTEGGIO(A)
senza dichiarare il suo tipo di dati, verrà impostato automaticamente sul tipo reale, in base al primo
lettera del suo nome. Il modulo chiamante avrebbe dovuto includere la dichiarazione
CONTEGGIO INTERI

dato per -argomenti impostazione 2 o 3.

sottoprogramma NOME: variando lunghezza argomento liste:
È stata trovata un'incoerenza tra il numero di argomenti fittizi (parametri)
ha un sottoprogramma e il numero di argomenti effettivi forniti in un'invocazione.
ftnchek tiene traccia di tutte le chiamate di sottoprogrammi (istruzioni CALL e
espressioni che utilizzano funzioni) e li confronta con le definizioni del
sottoprogrammi altrove nel codice sorgente. Il compilatore Fortran normalmente non lo fa
rilevare questo tipo di errore. dato per -argomenti impostazione 1 o 3.

Variabile non dichiarato. Tipologia ha stato implicitamente definito
Quando si stampa la tabella dei simboli per un modulo, ftnchek contrassegnerà con un asterisco all
identificatori che non sono digitati esplicitamente e mostreranno il tipo di dati che era
assegnato tramite tipizzazione implicita. Questo fornisce supporto per gli utenti che desiderano
dichiarare tutte le variabili come richiesto in Pascal o in altri linguaggi. Questo
messaggio appare solo quando il -simbolo l'opzione è in vigore. In alternativa, usa il
-dichiarare flag se vuoi ottenere un elenco di tutte le variabili non dichiarate.

Variabili dichiarata ma mai riferimento
Rileva tutti gli identificatori che sono stati dichiarati nel tuo programma ma non sono mai stati utilizzati,
sia per essere assegnato un valore o per avere accesso al loro valore. Variabili in COMUNE
sono esclusi. Controllato dal -usage=var-non utilizzato opzione.

Variabili set ma mai utilizzato
ftnchek avviserà l'utente quando a una variabile è stato assegnato un valore, ma il
variabile non viene utilizzata in altro modo nel programma. Di solito questo risulta da an
supervisione. Controllato dal -usage=var-set-non utilizzato opzione.

Variabili utilizzato prima set
Questo messaggio indica che un identificatore viene utilizzato per calcolare un valore prima del suo
inizializzazione. Tale utilizzo può portare al calcolo di un valore errato, poiché
il suo valore iniziale non è controllato. Controllato dal -usage=var-non inizializzato
opzione.

Variabili può be utilizzato prima set
Simile all'usato prima del set tranne che ftnchek non è in grado di determinarne lo stato
con certezza. ftnchek presuppone che una variabile possa essere utilizzata prima di set se la prima
l'utilizzo della variabile avviene prima nel testo del programma alla sua assegnazione.
Controllato dal -usage=var-non inizializzato opzione.

Attenzione: DO Index is non numero intero
Questo avviso viene fornito solo quando i limiti DO sono interi, ma l'indice DO non lo è.
Può indicare una mancata dichiarazione dell'indice come intero. Controllato da
-troncamento=real-do opzione.

Attenzione: numero intero quoziente espr ... convertito a di rose
Il quoziente di due interi risulta in un risultato di tipo intero, in cui il
la parte frazionaria viene eliminata. Se una tale espressione intera che coinvolge la divisione è
successivamente convertito in un tipo di dati reale, potrebbe essere stata una divisione di tipo reale
destinato. Controllato da -troncamento=int-div-real opzione.

Attenzione: Numero intero quoziente espr ... utilizzato in esponente
Il quoziente di due interi risulta in un risultato di tipo intero, in cui il
la parte frazionaria viene eliminata. Se tale espressione intera viene utilizzata come esponente,
è molto probabile che si intendesse una vera e propria divisione di tipo. Controllato da
-troncamento=int-div-esponente opzione.

Attenzione: NOME non set quando RITORNO incontrato
Il modo in cui le funzioni in Fortran restituiscono un valore è assegnando il valore a
nome della funzione. Questo messaggio indica che la funzione non è stata assegnata a
valore prima del punto in cui è stata trovata un'istruzione RETURN. Quindi è
possibile che la funzione possa restituire un valore indefinito.

Attenzione: non standard sintassi: regolabile Taglia non può be concatenato qui
Lo standard Fortran 77 (sezione 6.2.2) vieta la concatenazione di variabili carattere
la cui dimensione è un asterisco tra parentesi, tranne che in un'istruzione di assegnazione.
Controllato da -f77=espressione-mista.

Attenzione: non standard sintassi : significativa caratteri passato 72 colonne
Questo avviso è dato sotto il -f77=linea lunga impostazione se il -colonne l'impostazione ha
è stato utilizzato per aumentare la larghezza del campo dell'istruzione e un'istruzione ha un significato
testo del programma oltre la colonna 72. Standard Fortran ignora tutto il testo in quelle colonne,
ma alcuni compilatori no. Quindi il programma può essere trattato in modo diverso da
compilatori diversi.

Attenzione: non standard sintassi : dichiarazione su of ordine.
ftnchek rileverà le istruzioni che sono fuori dalla sequenza specificata per ANSI
standard Fortran 77. La tabella 1 illustra la sequenza consentita di istruzioni nel
lingua Fortran. Le affermazioni fuori luogo sono comunque interpretate da
ftnchek, per evitare ``cascate'' di messaggi di errore. Anche il contatore di sequenza è
rollback per evitare la ripetizione del messaggio di errore per un blocco simile
dichiarazioni. Controllato dal -f77=ordine-istruzione opzione.

-------------------------------------------------- ------
| | implicito
| parametro |-------
| | altre specifiche
formato |---------------|---------------------
e | | funzione-dichiarazione
entrata | dati |-------
| | eseguibile
-------------------------------------------------- ------

Tabella 1

Attenzione: Possibile divisione by zero
Questo messaggio viene stampato ovunque venga eseguita la divisione (tranne la divisione per a
costante). Usalo per individuare una divisione di runtime per zero problema. controllato
by -divisione opzione.

Attenzione: di rose troncato a intero
ftnchek ha rilevato un'istruzione di assegnazione che ha un'espressione reale sul
a destra, ma una variabile intera a sinistra. La parte frazionaria del valore reale
saranno persi. Se converti esplicitamente l'espressione reale in intero usando il
Funzione intrinseca INT o NINT, non verrà stampato alcun avviso. Un messaggio simile è
stampato se un'espressione a doppia precisione è assegnata a una singola precisione
variabile, ecc. Controllato da -troncamento=retrocessione opzione.

Attenzione: pedice is non numero intero
Poiché i pedici degli array sono normalmente quantità intere, l'uso di un non intero
espressione qui può segnalare un errore. Controllato da -troncamento=reale-pedice
opzione.

Attenzione: Sconosciuto intrinseco function
Questo messaggio avverte l'utente che un nome dichiarato in un'istruzione INTRINSIC è
sconosciuto a ftnchek. Probabilmente è una funzione intrinseca non standard, e quindi il
il programma non sarà portatile. La funzione sarà trattata da ftnchek come utente-
funzione definita. Questo avviso non viene soppresso da alcuna opzione, poiché influisce su
ftnchekL' analisi del programma. Tuttavia, se la funzione intrinseca è in uno dei
i set supportati di intrinseci non standard, è possibile utilizzare il -intrinseco impostazione
causare ftnchek per riconoscerlo.

LIMITAZIONI E ESTENSIONI


ftnchek accetta programmi ANSI standard Fortran-77 con alcune limitazioni minori e numerose
estensioni comuni.

Limiti:
Gli argomenti fittizi nelle funzioni di istruzione sono trattati come variabili ordinarie di
il programma. Cioè, il loro scopo è l'intero sottoprogramma, non solo l'istruzione
definizione della funzione.

Il controllo delle istruzioni FORMAT è lassista, tollerando i separatori mancanti (virgola,
ecc.) tra descrittori di formato nei luoghi in cui lo standard li richiede, e
permettendo .d campi sui descrittori che non dovrebbero averli. Avverte sotto
-f77=formato-modifica-descrizione sui tipi di descrittore non standard (come O) e supportati
estensioni.

Ci sono alcune estensioni sintattiche ed elementi Fortran 90 che ftnchek accetta
ma fa pochissimi controlli. Ad esempio, l'utilizzo del puntatore (se il
sintassi Cray non standard o la sintassi Fortran 90) non è selezionata se non per set
e stato utilizzato. Si spera che un giorno un controllo più approfondito sarà
implementato, ma per ora l'utente dovrebbe considerare l'accettazione di queste sintattiche
funzionalità semplicemente come comodità per consentire il controllo di altri aspetti del codice che
li contiene. Vedere la sezione Estensioni per informazioni specifiche su quali sono le funzionalità
accettato ma non completamente verificato.

Se un sottoprogramma fornito dall'utente ha lo stesso nome di uno degli intrinseci non standard
funzioni riconosciute da ftnchek, deve essere dichiarato in un'istruzione EXTERNAL in
qualsiasi routine che lo invoca. In caso contrario sarà soggetto al controllo normalmente
attribuito alla funzione intrinseca. Poiché gli intrinseci non standard non lo sono
standard, questa dichiarazione ESTERNA non è richiesta dallo standard Fortran 77.
Usando il -intrinseco=nessuno impostazione, riconoscimento della maggior parte degli elementi intrinseci non standard
(ad eccezione solo di quelli necessari per supportare il tipo di dati complessi doppi) possono essere trasformati
spento. Vedere gli elenchi delle funzioni intrinseche non standard supportate in
discussione del -intrinseco impostazione sopra.

Estensioni:
Tutte queste estensioni (eccetto i caratteri minuscoli) genereranno avvisi se
il pertinente -f77 l'opzione è impostata. Alcune delle estensioni elencate di seguito fanno parte di
lo standard Fortran-90. Questi sono indicati dalla notazione (F90).

Le tabulazioni sono consentite e tradotte in spazi equivalenti che corrispondono a tab
si ferma ogni 8 colonne. Lo standard non riconosce le schede. Nota che alcuni
i compilatori consentono le schede, ma le trattano in modo diverso. Il trattamento definito per DEC
FORTRAN può essere raggiunto utilizzando il -source=scheda dec impostazione.

Le stringhe possono essere delimitate da virgolette o apostrofi. Una sequenza di due
i caratteri delimitatori vengono interpretati come un singolo carattere delimitatore incorporato.
(F90)

Le stringhe possono contenere sequenze di escape con barra rovesciata in stile UNIX. Essi saranno
interpretato come tale se il -source=unix-barra rovesciata l'impostazione è data. Altrimenti il
il carattere barra rovesciata verrà trattato come un normale carattere di stampa.

Il codice sorgente può essere in formato libero Fortran 90 o in formato fisso tradizionale.
(F90)

Il punto e virgola è consentito come separatore di istruzioni. (F90)

I caratteri minuscoli sono consentiti e vengono convertiti internamente in maiuscolo
tranne che nelle stringhe di caratteri. Lo standard specifica solo le maiuscole, eccetto in
commenti e stringhe. (F90)

Le costanti di Hollerith sono consentite, in conformità con lo standard Fortran 77,
appendice C. Non dovrebbero essere usati nelle espressioni o confusi con il tipo di dati
PERSONAGGIO.

La lettera 'D' (maiuscola o minuscola) nella colonna 1 è trattata come l'inizio di a
commento. Non è possibile trattare tali righe come dichiarazioni anziché come commenti.

Le dichiarazioni possono essere più lunghe di 72 colonne a condizione che l'impostazione -colonne Prima
utilizzato per aumentare il limite. Secondo lo standard, tutto il testo dalle colonne 73
fino a 80 viene ignorato e nessuna riga può essere più lunga di 80 colonne.

I nomi delle variabili possono essere più lunghi di sei caratteri. Lo standard specifica sei come
il massimo. ftnchek consente nomi lunghi fino a 31 caratteri (F90).

I nomi delle variabili possono contenere trattini bassi e simboli del dollaro (o altri caratteri non alfabetici
caratteri come specificato da -identificatore-caratteri opzione). Questi personaggi sono sono
trattate allo stesso modo delle lettere alfabetiche. Il tipo predefinito per le variabili che iniziano
con questi personaggi è REALE. Nelle istruzioni di tipo IMPLICIT che specificano un intervallo di
caratteri, il simbolo del dollaro segue la Z ed è seguito dal carattere di sottolineatura. (Qualsiasi altro
i caratteri definiti dall'utente vengono trattati come il simbolo del dollaro.) Fortran 90
consente i caratteri di sottolineatura nei nomi delle variabili.

La versione UNIX tollera la presenza di direttive per il preprocessore, ovvero le righe
iniziando con il cancelletto (#). Questi sono trattati come commenti, ad eccezione di #line
direttive, che vengono interpretate e vengono utilizzate per impostare il numero di riga e la sorgente
nome file per avvisi e messaggi di errore. Nota che le direttive #include non lo sono
elaborato da ftnchek. I programmi che li utilizzano per includere i file sorgente dovrebbero essere
passato attraverso il preprocessore prima di essere immesso in ftnchek. Come indicato di seguito,
ftnchek elabora le istruzioni INCLUDE, che hanno una sintassi diversa. Un
programma opzionale, ftnpp(1L) (disponibile separatamente) fornisce pre-elaborazione che
gestisce correttamente i file INCLUDE.

La struttura di controllo Fortran 90 DO ... ENDDO è consentita. Il CICLO e l'USCITA
si accettano dichiarazioni Tutti questi possono avere un nome do-construct opzionale, ma
i nomi dei costrutti non vengono controllati per coerenza. (F90)

Il costrutto Fortran 90 SELECT CASE è accettato. (F90)

I nomi costrutti sono accettati anche su IF, THEN, ELSE, ENDIF e SELECT CASE
dichiarazioni. (F90)

Le dichiarazioni ACCEPT e TYPE (per i terminali I/O) sono consentite, con lo stesso
sintassi come PRINT.

La cosiddetta sintassi ``Cray pointer'' è tollerata. Non è lo stesso del
Istruzione Fortran 90 POINTER. Non c'è un vero controllo dell'affermazione altro
rispetto alla sintassi di base. La forma di questa affermazione è
PUNTATORE (pointer, punta) [,(pointer, punta)]
Alle variabili puntatore viene assegnato un tipo di dati INTEGER *4. Controllo dell'utilizzo di
le variabili pointee sono soppresse, poiché in pratica vi si accede indirettamente
tramite i puntatori.

Sono accettate le seguenti sintassi relative al puntatore Fortran 90: ALLOCATABLE,
istruzioni POINTER e TARGET e gli stessi attributi nelle dichiarazioni di tipo;
istruzioni eseguibili ALLOCATE, DEALLOCATE e NULLIFY; assegnazione del puntatore usando
=> operatore; e le funzioni intrinseche ASSEGNATE e ASSOCIATE. Poco semantico
il controllo delle variabili e delle operazioni del puntatore viene eseguito oltre l'impostazione e l'utilizzo di base
stato. Ad esempio, non è possibile verificare la presenza di errori come puntatori penzolanti,
o l'uso di array non allocati.

Le dichiarazioni possono avere un numero qualsiasi di righe di continuazione. Il Fortran 77 e il Fortran
90 standard consentono un massimo di 19 in forma di fonte fissa. Lo standard Fortran 90
consente un massimo di 39 in formato sorgente gratuito.

Operatori relazionali (di confronto) composti dalla punteggiatura, ovvero: < <= == /= > >=
sono ammessi. (F90)

Sono consentiti commenti in linea, che iniziano con un punto esclamativo. (F90)

NAMELIST I/O è supportato. La sintassi è la stessa di Fortran 90.

Le istruzioni FORMAT possono contenere un simbolo del dollaro per indicare la soppressione di
Restituzione. Un'espressione intera racchiusa tra parentesi angolari può essere utilizzata ovunque in a
Istruzione FORMAT in cui lo standard Fortran 77 consente una costante intera (tranne
per la lunghezza di una costante di Hollerith), per fornire un valore di runtime per una ripetizione
specifica o larghezza di campo.

Le parole chiave non standard sono consentite nelle istruzioni I/O, corrispondenti a quelle in VMS
Fortran.

L'istruzione IMPLICIT NONE è supportata. Il significato di questa affermazione è che
tutte le variabili devono avere i loro tipi di dati dichiarati in modo esplicito. Piuttosto che contrassegnare il
occorrenze di tali variabili con messaggi di errore di sintassi, ftnchek aspetta fino al
fine del modulo, quindi stampa un elenco di tutte le variabili non dichiarate, in quanto
fa per il -dichiarare opzione. (F90)

I tipi di dati INTEGER, REAL, COMPLEX e LOGICAL possono avere un facoltativo
specifica di precisione nelle dichiarazioni di tipo. Ad esempio, REAL*8 significa un 8 byte
tipo di dati a virgola mobile. Il tipo di dati REAL*8 non è necessariamente considerato
equivalente a DOPPIA PRECISIONE, a seconda del -dimensione parola collocamento. Il Fortran 77
Lo standard consente una specifica della lunghezza solo per i dati CHARACTER.

ftnchek supporta la specifica del tipo DOUBLE COMPLEX per una quantità complessa la cui
le parti reali e immaginarie sono a doppia precisione. Aritmetica mista che coinvolge
complesso a precisione singola con dati reali a precisione doppia, vietato ai sensi della
Standard, produce un doppio risultato complesso.

Sono accettate dichiarazioni di tipo combinato e inizializzatori simili a istruzioni dati.
Questi hanno la forma di una dichiarazione di tipo Fortran 77 standard, seguita da una barra
elenco delimitato di costanti come quello utilizzato in un'istruzione DATA. Un esempio di
la sintassi è
INTERO N / 100 /
Questa forma bastarda di dichiarazione di inizializzazione non è stata adottata in Fortran 90. Tale
le dichiarazioni devono essere scritte utilizzando il modulo standard descritto di seguito, che è
accettato da ftnchek.

C'è un supporto limitato per le dichiarazioni di tipo basate su attributi Fortran 90. Questo
stile di dichiarazione si distingue per l'uso di due punti (::) tra i
elenco degli attributi e l'elenco delle variabili dichiarate. Le funzionalità supportate potrebbero
essere adeguati per i programmatori alle prime armi, ma non sono ancora sufficienti per i professionisti
programmi Fortran 90 di qualità. Spero di aggiungere il supporto per ulteriori funzionalità in futuro
rilasci. Invito i volontari ad aiutare in questo compito. Vedere il file ToDo in
distribuzione del codice sorgente per i dettagli. Gli attributi attualmente accettati, inoltre
tutti i soliti tipi di dati, sono DIMENSION, EXTERNAL, INTRINSIC, PARAMETER e SAVE.
La nuova forma di dichiarazione permette anche l'assegnazione di valori alle variabili
dichiarato. Attualmente, il (LEN=valore) anche la forma per specificare la lunghezza dei caratteri è
accettato. Specifiche del tipo, utilizzando (KIND=valore) vengono analizzati ma non lo sono
elaborati: tutti i tipi sono trattati come tipo predefinito. Inoltre, c'è poco da controllare
di queste dichiarazioni oltre la sintassi di base.

Sono fornite molte funzioni intrinseche non standard comunemente trovate. Vedi il
discussione di -intrinseco per un elenco di funzioni e come controllare quali sono
riconosciuto.

Il controllo degli argomenti non è stretto per quegli intrinseci non standard che accettano array o
tipi di argomenti misti.

ftnchek consente l'istruzione INCLUDE, che provoca l'inclusione del testo del
dato file. La sintassi è
INCLUDERE 'Nome del file'
Questo è compatibile con Fortran 90. Se il -source=vms-include l'opzione è data,
ftnchek segue le convenzioni VMS rispetto a questa affermazione: assume a
estensione predefinita di .per se non viene fornita alcuna estensione di file e consente il
qualificatore /[NO]LIST dopo il nome del file, per controllare l'elenco degli inclusi
file. Non è disponibile alcun supporto per l'inclusione di moduli di testo VMS.

Nell'output diagnostico relativo agli elementi contenuti nei file di inclusione, la posizione di
l'errore è specificato sia dalla sua posizione nel file di inclusione che dalla posizione in
il file padre in cui è stato incluso il file.

ftnchek accetta istruzioni PARAMETER prive di parentesi. Questi saranno avvisati
circa se il -f77=param-noparent bandiera è data.

ftnchek accetta definizioni di PARAMETRI che coinvolgono funzioni intrinseche e
elevazione a potenza di un esponente non intero. Entrambi questi casi sono vietati da
il Fortran 77 Standard, e verrà avvisato se il -f77=param-intrinseco bandiera
viene data. Se il valore di una funzione intrinseca è una costante intera in fase di compilazione,
ftnchek lo valuterò. Ciò consente di verificare meglio se il parametro è utilizzato in
dichiarare le dimensioni degli array. Fortran 90 consente funzioni intrinseche in PARAMETER
definizioni.

Le funzioni intrinseche che vengono valutate sono:

ABS IABS DIM IDIM MAX
MAX0 MIN MIN0 SEGNO MOD
ISIGN LEN ICHAR INDICE

Le funzioni degli argomenti interi vengono valutate solo se gli argomenti sono interi
espressioni costanti. (Questi possono coinvolgere costanti intere, parametri e
funzioni intrinseche valutate.) La funzione LEN viene valutata se il suo argomento è
un'espressione che coinvolge solo costanti di carattere e variabili la cui lunghezza non è
regolabile. Le funzioni ICHAR e INDEX vengono valutate solo se gli argomenti sono
costanti caratteriali. ftnchek dà un avvertimento se ha bisogno del valore di alcuni
funzione intrinseca non valutata.

NUOVA CARATTERISTICHE


Ecco le modifiche dalla versione 3.2 alla versione 3.3:

1. Il front-end è stato riscritto per una prospettiva illimitata, eliminando il bug di vecchia data
che ha causato un'interpretazione errata di affermazioni la cui ambiguità non è stata risolta in
la prima riga.

2. il -mkhtml l'opzione è ora disponibile nella versione MS-DOS.

3. Aggiunto supporto per la sintassi relativa al puntatore Fortran 90: ALLOCATE, DEALLOCATE e NULLIFY
dichiarazioni; gli attributi ALLOCATABLE, POINTER e TARGET nelle dichiarazioni di tipo; il
operatore di assegnazione puntatore => e funzioni intrinseche ASSEGNATO e ASSOCIATO; e
dichiarazioni di array a forma differita. Al momento queste nuove funzionalità di sintassi sono accettate
ma non adeguatamente controllato. Questa funzione è stata aggiunta da Robert Landrito.

4. il -f77 ed -f90 pointer l'opzione che controlla gli avvisi sui ``puntatori Cray'' è stata
rinominato in puntatore a cray. -f77=puntatore l'opzione ora controlla invece gli avvisi per
codice contenente la sintassi relativa al puntatore Fortran 90.

5. Re-implementato -mkhtml elaborazione, quindi ora è molto più veloce sui file sorgente che contengono
molte routine.

6. Modificata la disposizione della directory di test in modo che non sia più necessario modificare
la distribuzione per eseguire la suite di test (check.bat) in MS-DOS.

7. Risolto bug nella lettura delle impostazioni numeriche sulla riga di comando quando si impostava il nome abbreviato in
Caratteri 3.

8. Risolto bug che causava un avviso spurio per un GOTO riferito a un'istruzione END etichettata
quando l'istruzione prima di END era un FORMAT.

9. Nuova bandiera -f77=carattere per controllare gli avvisi sulle estensioni al Fortran 77
tipo di dati carattere. Ad accompagnare questa nuova bandiera c'è il supporto per le regole Fortran 90 per
dichiarazioni di variabili di carattere che valutano zero o lunghezza negativa, consentendo
e trattando i valori di lunghezza negativi come zero.

10. Risolto bug minore nella stampa di commenti e righe vuote dopo l'ultima istruzione END
in -elenco modalità.

Usa ftnchek online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad