InglêsFrancêsEspanhol

Ad


favicon do OnWorks

ftnchek - Online na nuvem

Execute ftnchek no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando ftnchek que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


ftnchek - verificador de programa Fortran 77

SINOPSE


Ftnchek [ -argumentos[=Lista]] [ -variedade[=Lista]]
[ -[não]breve ] [ - árvore de chamada[=Lista]] [ -[não]verificar ]
[ -colunas[=Números]] [ -comum[=Lista]]
[ -[não]referência cruzada[=Lista]] [ -[não]declarar ]
[ -[não]divisão ] [ -erros[=Números]] [ -[não]externo ]
[ -[não]f77[=Lista]] [ -[não]f90[=Lista]]
[ -[não]f95[=Lista]] [ -[não]ajudar ]
[ -[não]caracteres-identificador[=Lista]] [ -include =str ]
[ -intrínseco[=Lista]] [ -[não]biblioteca ] [ -[não]Lista ]
[ -madecls[=Lista]] [ -mkhtml[=Lista]]
[ -[não]novato ] [ -output =str ]
[ -tamanho do ponteiro[=Números]] [ -[não]portabilidade[=Lista]]
[ -[não]bastante[=Lista]] [ -projeto[=Lista]]
[ -[não]puro ] [ -[não]calma ] [ -[não]referência ]
[ -[não]recursos ] [ -[não]seis caracteres ] [ -[não]tipo ]
[ -source[=Lista]] [ De estilo[=Lista]] [ -[não]tabulação de símbolos ]
[ -[não]truncamento[=Lista]] [ -uso[=Lista]]
[ -[não]vcg ] [ -[não]versão ] [ -[não]volátil ]
[ -tamanho da palavra[=Números]] [ -embrulho[=Números]] [ arquivos ... ]

DESCRIÇÃO


Ftnchek (abreviação de Fortran checker) é projetado para detectar certos erros em um Fortran
programa que um compilador geralmente não faz. Ftnchek não tem como objetivo principal detectar
erros de sintaxe. Seu objetivo é auxiliar o usuário a encontrar erros semânticos. Semântica
erros são legais na linguagem Fortran, mas são um desperdício ou podem causar erros
Operação. Por exemplo, variáveis ​​que nunca são usadas podem indicar alguma omissão no
programa; variáveis ​​não inicializadas contêm lixo que pode fazer com que resultados incorretos sejam
calculado; e as variáveis ​​que não são declaradas podem não ter o tipo pretendido. Ftnchek
destina-se a auxiliar os usuários na depuração de seu programa Fortran. Não se destina
para capturar todos os erros de sintaxe. Esta é a função do compilador. Antes de usar
Ftnchek, o usuário deve verificar se o programa é compilado corretamente.

Este documento primeiro resume como invocar Ftnchek. Essa seção deve ser lida antes
começando a usar Ftnchek. As seções posteriores descrevem Ftnchekopções de em mais detalhes, dê
um exemplo de seu uso e explica como interpretar a saída. As seções finais
mencionar as limitações e bugs conhecidos em Ftnchek.

INVOCAÇÃO FTNCHEK


Ftnchek é invocado por meio de um comando do formulário:

$ ftnchek [-opção -opção ...] nome do arquivo [nome do arquivo ...]

Os colchetes indicam algo que é opcional. Os colchetes em si não são
realmente digitado. Aqui, as opções são opções ou configurações de linha de comando, que controlam o
funcionamento do programa e a quantidade de informações que serão impressas. Se não
opção for especificada, a ação padrão é imprimir mensagens de erro, avisos e
mensagens informativas, mas não a lista de programas ou tabelas de símbolos.

Cada opção começa com o caractere '-'. (Em sistemas VAX / VMS ou MS-DOS, você pode usar
ou '/' ou '-'.) Por uma questão de conformidade com uma convenção cada vez mais comum,
as opções também podem começar com '-'. As opções são descritas com mais detalhes no próximo
seção.

Ftnchek as opções se enquadram em duas categorias: opções, que são verdadeiras ou falsas, e
configurações, que têm um valor numérico ou string. O nome de um switch é prefixado por 'não'
ou 'não-' para desligá-lo: por exemplo -nopuro desligaria os avisos sobre funções impuras.
O prefixo 'no' também pode ser usado com configurações numéricas, tendo o efeito de desligar
os avisos correspondentes. As configurações que controlam as listas de avisos têm uma sintaxe especial
discutido abaixo. Apenas os primeiros 3 caracteres de um nome de opção (sem contar o '-')
precisa ser fornecido. Os dois pontos podem ser usados ​​no lugar de um sinal de igual para numérico ou string
definir atribuições; no entanto, mostramos apenas a forma do sinal de igual abaixo.

As opções e configurações que Ftnchek atualmente reconhece estão listados abaixo. Para cada
opção, o padrão é o valor usado se a opção não for especificada explicitamente, enquanto o
turn-on é o valor usado se a opção for fornecida sem atribuir um valor a ela.

-argumentos =Lista
Avisos de controle sobre o tipo de subprograma e incompatibilidades de argumentos. Padrão = ligado
= tudo.

-array =Lista
Avisos de controle na verificação de argumentos de matriz de subprogramas. Padrão = liga =
todos.

-apresentação Use um formato mais curto para algumas mensagens de erro. Padrão = não.

-calltree =Lista
Produz hierarquia de chamada de subprograma em um dos 3 formatos: árvore de chamada de texto, quem-chama-
quem e VCG. Padrão = nenhum, ligar = árvore, podar, classificar.

Se o -mkhtml opção é invocada e árvore é a opção de árvore de chamada aplicada, um arquivo
chamado CallTree.html, será produzido representando a árvore em formato HTML.

-Verifica Execute a verificação. Padrão = sim.

-columns =Números
Defina o comprimento máximo da linha para Números colunas. (Além disso, é ignorado.) Ativar = máx =
132. Padrão = 72.

-common =Lista
Defina o grau de rigidez na verificação de blocos COMUNS. Padrão = ligado = tudo.

-crossref =Lista
Imprimir lista de referência cruzada de chamadas de subprograma, uso de etiqueta e / ou bloco COMUM
usar. Padrão = nenhum.

-declarar
Imprime uma lista de todos os identificadores cujo tipo de dados não é declarado explicitamente. Predefinição
= não.

-divisão
Avisa sempre que a divisão é feita (exceto a divisão por uma constante). Padrão = não.

-errors =Números
Defina o número máximo de mensagens de erro por cascata. Padrão = ligado = 3.

-externo
Avisa se os subprogramas externos invocados nunca são definidos. Padrão = sim.

-f77 =Lista
Controle avisos específicos sobre extensões com suporte para o Fortran 77 Standard.
Padrão = nenhum, ligado = tudo.

-f90 =Lista
Controlar avisos específicos sobre extensões com suporte para o padrão Fortran 77
que não foram adotados como parte do Fortran 90 Standard. Padrão = nenhum, ligado
= tudo.

-f95 =Lista
Controle os avisos específicos sobre os recursos padrão do Fortran 77 que foram excluídos do
o Fortran 95 Standard. Padrão = nenhum, ligado = tudo.

-Socorro Imprimir resumo do comando. Padrão = não.

-identifier-chars =Lista
Defina caracteres não alfanuméricos que podem ser usados ​​em identificadores. Padrão =
ligar = cifrão e sublinhado.

-include =caminho
Defina um diretório para pesquisar arquivos INCLUDE antes de pesquisar em todo o sistema
diretório. Cumulativo. Padrão = ligado = nenhum.

-intrínseco =Lista
Tratamento de controle de funções intrínsecas não padronizadas. Padrão = todos exceto vms para
Versão Unix, todos exceto unix para a versão VMS, todos exceto unix e vms para outro
versões. Ativar = tudo.

-biblioteca
Inicie o modo de biblioteca: não avise sobre subprogramas no arquivo que estão definidos, mas
nunca usado. Padrão = não.

-Lista Imprima a lista de fontes do programa. Padrão = não.

-makedcls =Lista
Prepare um arquivo de declarações. o Lista especifica opções para o formato deste
Arquivo. Padrão = nenhum, ativação = declarações.

-mkhtml =Lista
Crie arquivos de documentos HTML individuais a partir de análises ftnchek e comentários de código.
Normalmente, você também desejará especificar -call = árvore para criar o arquivo HTML raiz
CallTree.html. Padrão = nenhum, ativar = documentos.

-novato
Fornece resultados adequados para usuários novatos. Padrão = sim.

-output =nome do arquivo
Envie a saída para o arquivo fornecido. Padrão e ativado enviam a saída para a tela.
(A extensão de nome de arquivo padrão é .lis).

-pointersize =Números
Defina o tamanho das variáveis ​​de `` ponteiro Cray '' para Números bytes. Mín = 1, máx = 16.
Padrão = liga = 4

-portabilidade =Lista
Avise sobre usos não portáteis. Padrão = nenhum, ligado = tudo.

-pretty =Lista
Fornece avisos para possível aparência enganosa do código-fonte. Padrão = turn-
em = todos.

-projeto =Lista
Crie o arquivo do projeto (veja a explicação abaixo). Padrão = não.

-puro Assuma que as funções são puras, ou seja, não têm efeitos colaterais. Padrão = sim.

-quieto Produza uma saída menos detalhada. Padrão = não.

-referência
Imprimir tabela de subprogramas referenciados por cada subprograma. Padrão = não.

-Recursos
Imprimir quantidade de recursos usados ​​na análise do programa. Padrão = não.

-seis caracteres
Liste quaisquer nomes de variáveis ​​que entrem em conflito com o comprimento de 6 caracteres. Padrão = não.

-ordenar Imprime a lista de subprogramas classificados na ordem de pré-requisito. Padrão = não.

-source =Lista
Selecione as opções de formatação de origem: formato fixo ou livre, DEC Fortran formatado por guia
linhas, instrução INCLUDE no estilo VMS, sequências de escape com barra invertida no estilo UNIX e
tipagem implícita de parâmetros. Padrão = nenhum, ligado = tudo.

-style =Lista
Produza avisos extremamente exigentes sobre programação obsoleta ou antiquada
construções. Padrão = nenhum, ligado = tudo.

-symtab
Imprima a tabela de símbolos e a tabela de etiquetas para cada subprograma. Padrão = não.

-truncamento =Lista
Verifique a possível perda de precisão por truncamento. Padrão = ligado = tudo.

-usage =Lista
Avisos de controle sobre variáveis ​​não utilizadas ou não inicializadas, blocos comuns, etc.
Padrão = ligado = tudo.

-vcg Produza o formato VCG do gráfico de chamadas.

-versão
Imprimir o número da versão. Padrão = não.

-volátil
Suponha que os blocos COMUNS perdem a definição entre as ativações. Padrão = não. (Obsoleto.
Use -common = volátil em vez de.)

-wordsize =Números
Defina o tamanho de palavra padrão para quantidades numéricas para Números bytes. Padrão = liga =
4 bytes.

-wrap =Números
Defina a coluna de saída na qual envolver longas mensagens de erro e avisos para o próximo
linha. Se definido como 0, desative o empacotamento. Padrão = ligado = 79.

Quando mais de uma opção é usada, elas devem ser separadas por um espaço em branco, exceto em
sistemas como VMS onde as opções começam com barra (/). Nenhum espaço em branco pode ser colocado
em torno do sinal de igual (=) em uma configuração. ftnchek "?" irá produzir um resumo do comando
listando todas as opções e configurações.

Para configurações que usam uma lista de palavras-chave, a saber -argumentos, -variedade, - árvore de chamada, -comum,
-referência cruzada, -f77, -f90, -f95, -intrínseco, -madecls, -mkhtml, -portabilidade, -bonita,
-projeto, -source, De estilo, -truncamento e -uso, a lista consiste em palavras-chave
separados por vírgulas ou dois pontos. Se a lista de palavras-chave for omitida, o efeito é definir
a opção de seu valor de ativação (o mesmo que `` all '' na maioria dos casos). Além disso, se a lista for
omitido, o nome da configuração pode ser prefixado com não or no- desligar todas as opções
controles. Por exemplo, -f77 liga todos os avisos sobre construções fora do padrão, enquanto
-nof77 desliga todos eles. Três palavras-chave especiais são:

ajudar Imprima todas as palavras-chave da opção controladas pela configuração, com um breve
explicação de seus significados. Esta palavra-chave não pode ser fornecida em uma lista com outro
palavras-chave.

todos os Defina todas as opções. Isso ativa todas as opções controladas pela configuração.

Nenhum Limpe todas as opções. Isso desativa todas as opções controladas pela configuração.

Essas três palavras-chave especiais devem ser fornecidas por extenso. Para todas as outras palavras-chave, apenas algumas
letras da palavra-chave necessárias para identificá-la de forma inequívoca precisam ser fornecidas, ou um
O padrão curinga pode ser usado. Incluir uma palavra-chave na lista transforma o correspondente
opção ativada. Por exemplo, -f77 = intrínseco ligaria apenas os avisos sobre o uso de
funções intrínsecas não padronizadas. Prefixando uma palavra-chave por no- desativa sua opção. Para
exemplo, -pretty = sem linha longa desativa avisos sobre linhas que excedem 72 colunas em
comprimento, deixando todos os outros avisos sobre aparência enganosa em vigor. Se um
configuração tem padrão Nenhum, você pode ativar todas as opções, exceto uma ou duas, usando todos os
primeiro. Por exemplo, -f77 = tudo, não inclui permite avisos sobre todas as extensões não padronizadas
exceto instruções INCLUDE. Se uma configuração for padrão todos os, você pode desligar todos os avisos
exceto um ou dois usando Nenhum primeiro. Por exemplo, -truncamento = nenhum, rebaixamento viraria
desligar todos os avisos relacionados à precisão, exceto sobre rebaixamentos. Os padrões curinga contêm um
asterisco para representar qualquer sequência de caracteres. Se um padrão curinga for usado, todos os
os avisos que correspondem a ele são afetados. Se no- é prefixado ao padrão, todas as combinações
os avisos são desativados, caso contrário, todos eles são ativados. O comprimento mínimo inequívoco
regra não se aplica à correspondência de curinga. Por exemplo, use -usage = no- * var * desligar
todos os avisos relacionados ao uso de variável (local e comum). (Usuários Unix podem precisar
cite quaisquer opções que contenham curingas para evitar que o shell tente
expanda-os.) Os curingas são reconhecidos apenas em listas de palavras-chave de aviso, não no topo
opções de nível próprios.

Quando Ftnchek inicia, ele procura por variáveis ​​de ambiente e também por preferências
Arquivo. Quaisquer opções definidas no ambiente ou no arquivo de preferências são usadas como
padrões no lugar dos padrões internos. Eles são substituídos por qualquer linha de comando
opções. Consulte a seção sobre como alterar os padrões para obter detalhes sobre o ambiente
opções e o arquivo de preferências.

Ao dar o nome de um arquivo de entrada, a extensão é opcional. Se nenhuma extensão for fornecida,
Ftnchek procurará primeiro por um arquivo de projeto com extensão .prj, e vou usar isso se for
existe. Se não então Ftnchek irá procurar por um arquivo-fonte Fortran com a extensão .para
para sistemas VMS, .f para sistemas UNIX. Mais de um nome de arquivo pode ser dado a Ftnchek,
e irá processar os módulos em todos os arquivos como se estivessem em um único arquivo.

Curingas são permitidos na especificação de nomes de arquivos na linha de comando do VMS
e versões do MS-DOS, como também, é claro, no UNIX e qualquer outro sistema que execute
expansão de curinga no processador de comando.

Se nenhum nome de arquivo for fornecido, Ftnchek lerá a entrada da entrada padrão.

OPÇÕES


Esta seção fornece uma discussão mais detalhada sobre Ftnchek opções de linha de comando. Opções
e os nomes dos arquivos podem ser intercalados em uma linha de comando. A maioria das opções são posicionais: cada
opção permanece em vigor a partir do ponto em que é encontrada até que seja substituída por um
mudança posterior. Assim, por exemplo, a listagem pode ser suprimida para alguns arquivos e não para
outros. As exceções são: o -intrínseco, -tamanho do ponteiro e -tamanho da palavra configurações, que
não pode ser alterado depois de iniciado o processamento dos arquivos de entrada; a -argumentos, -variedade,
- árvore de chamada, -comum, -referência cruzada, -externo, -referência, -Recursos, -ordenar, -vcg e -volátil
opções, onde a ação depende apenas do valor da opção após o processamento de
arquivos de entrada terminados; e a -incluir configuração, que é cumulativa.

Os nomes das opções na lista a seguir estão em ordem alfabética.

-argumentos =Lista
Controla avisos sobre incompatibilidades entre os argumentos reais e fictícios do subprograma,
e também sobre incompatibilidades entre o tipo de subprograma esperado e real. (Um real
argumento é um argumento passado ao subprograma pelo chamador; um argumento fictício é
um argumento recebido pelo subprograma.) Por padrão, todos os avisos estão ativados.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Uma vez que todos estes
avisos estão ativados por padrão, incluem uma palavra-chave prefixada por no- desligar um
aviso particular. Existem três palavras-chave especiais: todos os para ligar todos os
avisos sobre argumentos, Nenhum para desligar todos eles, e ajudar para imprimir a lista de
todas as palavras-chave com uma breve explicação de cada uma. Se Lista é omitido, -argumentos
é equivalente a -arguments = all e - nenhum argumento é equivalente a -arguments = none.
As palavras-chave de aviso com seus significados são as seguintes:

disposição:
avisar sobre o uso inconsistente de argumentos que são matrizes. Esses avisos podem
ser posteriormente controlado pelo -variedade opção.

tipo:
avisa sobre argumentos fictícios de um tipo de dados diferente dos argumentos reais.

tipo de função:
avisa se a invocação assume que o valor de retorno da função é de um tipo diferente
do que realmente é. Também avisa se uma função é chamada como uma sub-rotina, ou
vice-versa.

número:
avisar sobre a invocação de um subprograma com um número diferente de argumentos do que o
subprograma espera.

Para compatibilidade com versões anteriores de Ftnchek, uma forma numérica deste
configuração também é aceita: o Lista é substituído por um número de 0 a 3. Um valor de
0 desativa todos os avisos, 1 ativa apenas número, 2 liga tudo exceto número,
e 3 ativa todos os avisos.

Esta configuração não se aplica à verificação de invocações de funções intrínsecas ou
funções de instrução, que só podem ser desligadas pelo -nocheck opção.

Veja também: -variedade, -biblioteca, -uso.

-array =Lista
Controla o grau de rigidez na verificação da concordância entre o real e o fictício
argumentos de subprograma que são matrizes. Os avisos controlados por esta configuração são
para construções que podem ser legitimamente usadas por um programador experiente,
mas isso geralmente indica erros de programação. Por padrão, todos os avisos são ativados
em.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Uma vez que todos estes
avisos estão ativados por padrão, incluem uma palavra-chave prefixada por no- desligar um
aviso particular. Existem três palavras-chave especiais: todos os para ligar todos os
avisos sobre argumentos de matriz, Nenhum para desligar todos eles, e ajudar para imprimir o
lista de todas as palavras-chave com uma breve explicação de cada uma. Se Lista é omitido,
-variedade é equivalente a -array = all e -noarray é equivalente a -array = nenhum. O
palavras-chave de aviso com seus significados são os seguintes:

dimensões:
avisar se os argumentos diferem em seu número de dimensões, ou se o real
argumento é um elemento da matriz, enquanto o argumento fictício é uma matriz inteira.

tamanho:
avisa se ambos os argumentos são matrizes, mas eles diferem no número de elementos.

Para compatibilidade com versões anteriores de Ftnchek, uma forma numérica deste
configuração também é aceita: o Lista é substituído por um número de 0 a 3. Um valor de
0 desativa todos os avisos, 1 ativa apenas dimensões, 2 liga apenas tamanho e
3 ativa todos os avisos.

Nota: Um aviso é sempre fornecido, independentemente desta configuração, se o argumento real
é uma matriz enquanto o argumento fictício é uma variável escalar, ou se o real
argumento é uma variável escalar ou expressão, enquanto o argumento fictício é uma matriz.
Esses casos raramente são intencionais. (Para desligar até mesmo esses avisos, use
-arguments = no-arrayness.) Nenhum aviso é dado se o argumento real for um
elemento da matriz enquanto o argumento fictício é uma variável escalar. Com dimensão variável
arrays e arrays dimensionados com 1 ou asterisco correspondem a qualquer número de array
elementos Não há verificação se as matrizes multidimensionais concordam no tamanho
de cada dimensão separadamente.

Veja também: -argumentos, -biblioteca, -uso.

-apresentação
Seleciona um formato mais curto para algumas mensagens de aviso. No momento, os únicos avisos
controlados por esta bandeira são aqueles que são impressos no final do processamento de cada
subprograma. Incluem avisos sobre variáveis ​​que são definidas, mas não usadas ou
usado antes de definir, nomes de variáveis ​​que não estão em conformidade com o padrão Fortran 77,
etc. (Esses avisos podem ser totalmente suprimidos dependendo de outros sinalizadores, como
que o -uso or -f77 sinalizadores.) No formato padrão, cada variável é listada em um
linha separada, junto com o número da linha onde a variável é declarada, definida ou
utilizado, de acordo com a natureza do aviso. O formato mais breve simplesmente lista todos
variáveis ​​às quais o aviso se aplica, com até 4 variáveis ​​por linha.

Veja também: -quieto.

-calltree =Lista
destaque Ftnchek para imprimir a estrutura de chamadas do programa completo.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Existem dois especiais
Palavras-chave: Nenhum para desligar todas as opções, e ajudar para imprimir a lista de todos os
palavras-chave com uma breve explicação de cada uma. (A palavra-chave todos os liga todos os
opções, mas normalmente não deve ser usado, uma vez que apenas um formato deve ser
especificado.) Se Lista é omitido, - árvore de chamada é equivalente a -calltree = tree e
-nocalltree é equivalente a -calltree = none. Por padrão, nenhum gráfico de chamada é impresso.

Se a opção -mkhtml for chamada e árvore é a opção de árvore de chamada aplicada, um arquivo
chamado CallTree.html, também será produzido representando a árvore em formato HTML. Esse
arquivo é útil como ponto de partida para navegar nos arquivos HTML que descrevem cada
componente do programa.

As palavras-chave que controlam qual formato é usado são as seguintes:

árvore:
produzir o gráfico de chamadas em formato de árvore.

referência:
produzir o gráfico de chamadas no formato quem-liga-quem (o mesmo que -referência trocar).

vcg:
produzir o gráfico de chamadas no formato VCG (o mesmo que -vcg trocar).

Apenas um dos formatos árvore, referênciaou vcg pode ser especificado.

As seguintes palavras-chave controlam as opções que afetam a saída:

ameixa seca:
podar subárvores repetidas (aplicável apenas com árvore) Este é o padrão.

tipo:
classifique os filhos de cada rotina em ordem alfabética. Este é o padrão.

Veja a discussão do -referência e -vcg sinalizadores para obter detalhes sobre estes
formatos.

Escolha árvore formato, o gráfico de chamadas é impresso a partir do programa principal,
que está listado na primeira linha na margem esquerda. Então, nas seguintes linhas,
cada rotina chamada pelo programa principal é listada, indentada com alguns espaços, seguida
pela subárvore começando nessa rotina.

No modo padrão, se uma rotina é chamada por mais de uma rotina, é
a subárvore de chamada é impressa apenas na primeira vez em que é encontrada. Mais tarde, as chamadas fornecem apenas
o nome da rotina e o aviso `` (veja acima) ''. Para ter a subárvore impressa para
cada ocorrência da rotina, use a opção sem poda.

Observe que a árvore de chamadas estará incompleta se algum dos arquivos de entrada for um projeto
arquivos contendo mais de um módulo que foram criados em -biblioteca modo. Veja o
discussão dos arquivos do projeto abaixo.

Pontos técnicos: Cada lista de rotinas chamadas por uma determinada rotina é impressa em
ordem alfabética, a menos que sem classificação opção é fornecida. Se vários programas principais
são encontrados, a árvore de chamada de cada um é impressa separadamente. Se nenhum programa principal for
encontrado, um relatório para esse efeito é impresso, e as árvores de chamada de qualquer nível superior
rotinas de não-biblioteca são impressas. Este sinalizador controla apenas a impressão da chamada
árvore: Ftnchek constrói a árvore de chamada em qualquer caso, porque é usada para determinar
quais módulos de biblioteca serão verificados. Veja a discussão do -biblioteca
bandeira.

Para compatibilidade com versões anteriores de Ftnchek, uma forma numérica deste
configuração também é aceita: o Lista é substituído por um número de 0 a 15. Este
número é formado a partir de 1 para árvore formato, 2 para referência formato, ou 3 para vcg
formato, mais 4 para sem podae 8 para sem classificação.

Veja também: -referência cruzada, -biblioteca, -referência, -ordenar, -symtab, -vcg.

-Verifica
Esta opção é fornecida para que erros e mensagens de aviso possam ser desligados quando
Ftnchek é usado para outros fins que não a localização de bugs, como fazer declarações
ou imprimindo a árvore de chamada. É posicional, então, depois de desligar todas as verificações,
as verificações selecionadas podem ser reativadas. O efeito de -nocheck é colocar tudo
interruptores, configurações numéricas e listas de controle de configurações de avisos para seus
valores de desligamento, como se todos tivessem sido especificados com o prefixo -no. Comuta
e configurações que especificam opções e modos de operação, em vez de controlar
avisos, não são afetados. Estes são -colunas, -referência cruzada, -incluir, -intrínseco,
-biblioteca, -Lista, -madecls, -novato, -saída, -tamanho do ponteiro, -projeto, -quieto,
-referência, -Recursos, -ordenar, -source, -symtab, -vcg, -versão, -tamanho da palavra e
-embrulho. Padrão = sim.

Erros de análise (erros de sintaxe devido a declarações não reconhecidas ou malformadas) não são
suprimido por esta opção, uma vez que os resultados podem ser incorretos se Ftnchek não tem
analisou o programa corretamente.

Existem alguns erros diversos e mensagens de aviso que não são controlados por
qualquer outra opção e, portanto, só pode ser desativada por essa opção. Observe que usando
-Verifica seguinte -nocheck só tem o efeito de transformar esses avisos especiais
de volta, e não restaura todas as verificações que desligou. Esses avisos são:

o Módulo não contém instruções executáveis.

o Na forma de fonte livre, falta espaço onde o espaço é necessário (por exemplo, entre um
palavra-chave e um identificador) ou espaço presente onde nenhum é permitido (por exemplo, dentro
um identificador).

o Especificação de comprimento zero ou negativo em uma declaração de tipo de dados do formulário
digite * len.

o Operando (s) inválido (s) em uma expressão.

o Array atribuído a escalar.

o Tipo de incompatibilidade entre o índice DO e os limites.

o Bloco comum indefinido declarado na instrução SAVE.

o Função intrínseca explicitamente declarada com um tipo incompatível.

o Função intrínseca desconhecida explicitamente declarada em uma instrução INTRINSIC.

o A função intrínseca passada como um argumento de subprograma não é declarada em um
Instrução INTRINSIC.

o Função intrínseca ou função de instrução invocada incorretamente.

o A função não define o valor de retorno antes da instrução RETURN.

o Valor constante do parâmetro não avaliado (isto é Ftncheké culpa, e é só
informá-lo do fato).

o O ponto de entrada de um subprograma é usado posteriormente como um nome de subprograma diferente.

o Palavra-chave desconhecida usada em uma instrução de E / S.

o Referência de rótulo ilegal (por exemplo, GOTO refere-se a uma instrução não executável; I / O
declaração refere-se a uma declaração sem formato).

Veja também: -erros.

-columns =Números
Defina o comprimento máximo do extrato como Números colunas. (Além disso, é ignorado.)
configuração é fornecida para permitir a verificação de programas que podem violar o Fortran
limite padrão de 72 colunas para o comprimento de uma declaração. De acordo com
padrão, todos os caracteres após a coluna 72 são ignorados. Se esta configuração for usada quando
que o -f77 = linha comprida opção estiver em vigor, um aviso será dado para todas as linhas em
quais caracteres após a coluna 72 são processados. Ativado = máx = 132. Padrão = 72.

Esta configuração não suprime os avisos sobre a presença de caracteres além
coluna 72. Para processar o código com texto de programa significativo além da coluna 72, use este
configuração e certifique-se de que -f77 espinhel opção está desativada. Para processar o código com
números de sequência nas colunas 73 a 80, deixe a configuração das colunas no padrão
valorizar e usar o -pretty = sem linha longa bandeira.

Veja também: -f77, -bonita.

-common =Lista
Esta configuração controla a rigidez da verificação de blocos COMUNS. Por padrão, todos
avisos exceto volátil estão ligados.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Uma vez que a maioria destes
avisos estão ativados por padrão, incluem uma palavra-chave prefixada por no- desligar um
aviso particular. Existem três palavras-chave especiais: todos os para ligar todos os
avisos, Nenhum para desligar todos eles, e ajudar para imprimir a lista de todas as palavras-chave
com uma breve explicação de cada um. Se Lista é omitido, -comum é equivalente a
-common = dimensões, exato, comprimento, tipo e -incomum é equivalente a -common = nenhum.
As palavras-chave de aviso com seus significados são as seguintes:

dimensões:
matrizes correspondentes em cada declaração de um bloco devem concordar em tamanho e
número de dimensões. Esta opção só tem efeito quando usada junto com
exato.

exato:
a comparação de dois blocos é feita variável a variável, em vez de simplesmente
exigindo acordo entre os locais de armazenamento correspondentes. Use isto se tudo
declarações de um determinado bloco COMMON devem ser idênticas, o que é um
boas práticas de programação.

comprimento:
avisa se diferentes declarações do mesmo bloco não são iguais em comprimento total.
O Fortran 77 Standard requer cada bloco comum nomeado, mas não comum em branco,
ter o mesmo comprimento em todos os módulos do programa.

tipo:
em cada declaração de um determinado bloco COMMON, localizações de memória correspondentes
(palavras ou bytes) deve concordar no tipo de dados. Se usado junto com exato, Este
exigirá que as variáveis ​​correspondentes concordem no tipo de dados.

volátil:
Suponha que os blocos COMUM são voláteis.

Muitos programadores Fortran assumem que as variáveis, sejam locais ou em COMUM, são
estático, ou seja, que uma vez atribuído um valor, eles retêm esse valor permanentemente até
atribuído um valor diferente pelo programa. No entanto, na verdade, o Fortran 77
O padrão não exige que seja esse o caso. Variáveis ​​locais podem se tornar
indefinido entre as ativações de um módulo em que são declarados. De forma similar,
Os blocos COMUNS podem se tornar indefinidos se nenhum módulo no qual eles são declarados for
ativo. (O termo técnico para entidades com este comportamento é `` automático '', mas
Ftnchek usa a palavra `` volátil '', uma vez que é mais clara para o não especialista.) Apenas
Blocos COMUNS declarados em uma instrução SAVE, ou declarados no programa principal ou em um
o subprograma de dados do bloco permanece definido enquanto o programa estiver em execução. Variáveis
e os blocos COMUNS que podem se tornar indefinidos em algum ponto são chamados de voláteis.

Se o -common = volátil sinalizador está ligado, Ftnchek irá avisá-lo se encontrar um
bloco COMUM volátil. Se, ao mesmo tempo, o -usage = com-block-volatile opção
está ligado (que é o padrão), Ftnchek tentará verificar se tal bloqueio
pode perder seu status definido entre as ativações dos módulos onde está
declarado. Ftnchek não faz um trabalho muito bom nisso: a regra usada é ver
se o bloco é declarado em duas subárvores separadas da árvore de chamada. Para
exemplo, seria o caso se dois módulos, ambos chamados a partir do programa principal,
compartilhou um bloco COMUM volátil. Um bloco também pode se tornar indefinido entre dois
chamadas sucessivas do mesmo subprograma, mas Ftnchek não é inteligente o suficiente para dizer
se um subprograma pode ser chamado mais de uma vez, portanto, este caso não é verificado.

A -common = volátil bandeira não afeta o caminho Ftnchek verifica o uso do local
variáveis.

Para compatibilidade com versões anteriores de Ftnchek, uma forma numérica deste
configuração também é aceita: o Lista é substituído por um número de 0 a 3. Um valor de
0 desativa todos os avisos, 1 ou mais ativa tipo, 2 ou mais liga
comprimento, e 3 liga dimensões e exato tb. A forma numérica não pode ser ativada
que o volátil opção.

Veja também: -biblioteca, -uso.

-crossref =Lista
Imprime tabelas de referência cruzada. Padrão = nenhum.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. As palavras-chave com
seus significados são os seguintes:

chamadas:
A tabela lista cada subprograma seguido por uma lista de rotinas que o chamam.
Esta lista omite módulos de biblioteca que não estão na árvore de chamada do principal
programa. A lista está em ordem alfabética.

comum:
tabela lista cada bloco COMUM seguido por uma lista das rotinas que acessam
isto. Essas rotinas listadas são aquelas em que algumas variáveis ​​no COMMON
bloco são acessados, não simplesmente aquelas rotinas que declaram o bloco. (Para
descobrir quais rotinas declaram um bloco COMUM, mas não o usam, consulte o
-uso bandeira.)

Labels:
A tabela lista cada rótulo seguido por uma lista de todas as referências a ele. Um rótulo
a referência é denotada pelo número da linha e tipo de instrução da referência
demonstração. A lista de rótulos está em ordem sequencial. As referências são
listados na ordem em que são encontrados no programa.

Veja também: - árvore de chamada, -referência, -ordenar, -symtab, -vcg.

-declarar
Se este sinalizador for definido, todos os identificadores cujo tipo de dados não é declarado em cada módulo
será listado. Este sinalizador é útil para ajudar a encontrar nomes de variáveis ​​com erros ortográficos,
etc. A mesma lista será fornecida se o módulo contiver um IMPLICIT NONE
demonstração. Padrão = não.

Veja também: -seis caracteres, -uso.

-divisão
Essa opção é fornecida para ajudar os usuários a identificar a divisão potencial por zero problemas. Se
esta opção é selecionada, todas as divisões, exceto por uma constante, serão sinalizadas. (Isto
assume-se que o usuário é inteligente o suficiente para não dividir por uma constante que é
igual a zero!) Padrão = não.

Veja também: -portabilidade, -truncamento.

-errors =Números
Defina o número máximo de mensagens de erro em uma `` cascata ''. Durante a verificação de
acordo de argumentos de subprograma, declarações de bloco comuns, e assim por diante,
às vezes, um único caso irá gerar uma longa sequência de avisos. Freqüentemente, isso simplesmente
indica alguma outra causa que não uma incompatibilidade item por item genuína, como para
exemplo, uma variável faltando em uma lista. Então, em tais casos Ftnchek para de imprimir
os avisos após o limite de cascata ser alcançado, e o trailer `` etc ... '' é
impresso para indicar que houve mais erros não impressos. Se você pensa que
esses avisos provavelmente são genuínos, use esta configuração para ver mais deles.
Ativado = padrão = 3, máx = 999. Um valor 0 significa sem limite.

Esta configuração não define um limite geral para o número de mensagens de erro impressas,
apenas o número impresso em qualquer cascata. A maioria dos tipos de avisos e erros
as mensagens não estão sujeitas ao efeito cascata e, portanto, não são afetadas por este
configuração. Para desligar os avisos em geral, use o controle de aviso individual
opções ou o -nocheck opção.

Veja também: -Verifica.

-externo
destaque Ftnchek para relatar se quaisquer subprogramas invocados pelo programa nunca são
definiram. Normalmente, se Ftnchek está sendo executado em um programa completo, cada
subprograma diferente das funções intrínsecas deve ser definido em algum lugar. Vez
desative esta opção se você quiser apenas verificar um subconjunto de arquivos que fazem parte de um
programa completo maior. Os argumentos do subprograma ainda serão verificados para
correção. Padrão = sim.

A -externo bandeira agora foi substituída pela -usage = ext-undefined opção. Para o
por conveniência, o -externo bandeira é mantida, de modo que -noexterno é equivalente
para -usage = no-ext-undefined opção. O -externo switch pode ser retirado eventualmente.

Veja também: -biblioteca.

-f77 =Lista
Use esta configuração para capturar extensões de linguagem que violam o Fortran 77
Padrão. Essas extensões podem fazer com que seu programa não seja portátil. Exemplos
incluem o uso de sublinhados em nomes de variáveis; nomes de variáveis ​​com mais de seis
personagens; linhas de declaração com mais de 72 caracteres; e declarações não padronizadas
como a estrutura DO ... ENDDO. Ftnchek não relata sobre o uso de
letras minúsculas. Por padrão, todos os avisos estão desligados.

Esta configuração fornece controle detalhado sobre os avisos sobre as extensões suportadas
de acordo com o padrão Fortran 77. (Mais detalhes sobre as próprias extensões são
fornecido abaixo na seção sobre Extensões.) Lista consiste em palavras-chave separadas
por vírgulas ou dois pontos. Existem três palavras-chave especiais: todos os para ligar todos os
avisos sobre extensões fora do padrão, Nenhum para desligar todos eles, e ajudar imprimir
a lista de todas as palavras-chave com uma breve explicação de cada uma. Se Lista é omitido,
-f77 é equivalente a -f77 = tudo e -nof77 é equivalente a -f77 = nenhum. O aviso
palavras-chave com seus significados são os seguintes:

aceitar:
Instruções ACCEPT e TYPE I / O.

limites de matriz:
Expressões que definem limites de array que contêm elementos ou função de array
referências.

tarefa-tarefa:
Declarações de atribuição envolvendo matrizes. No Fortran 90, uma matriz pode ser
atribuído a outra matriz de forma compatível, ou um escalar pode ser atribuído a
uma matriz. Nenhuma dessas atribuições é permitida no Fortran 77.

Um aviso relacionado ocorre quando uma matriz é atribuída a um escalar. Desde isso
é ilegal também no Fortran 90, é sempre avisado independentemente do
-f77 configuração (a menos que toda a verificação seja desativada com o -nocheck bandeira).

declínio baseado em atributo:
Digite as declarações no novo estilo baseado em atributos do Fortran 90. Este estilo de
declaração é distinguida pelo uso de dois pontos duplos (: :) entre os
lista de atributos e a lista de variáveis ​​declaradas. Esta opção também
controla os avisos para o uso de especificadores de comprimento ou tipo Fortran 90 no tipo
declarações. (Embora esses especificadores possam ser usados ​​em sistemas não baseados em atributos
declarações, eles são controlados por esta opção para evitar a proliferação de
-f77 opções.)

array automático:
Arrays locais (não fictícios) que têm tamanho variável. Estes corresponderiam a
matrizes cujo armazenamento teria que ser alocado dinamicamente em tempo de execução.

barra invertida:
Escape de barra invertida do Unix em strings. Este aviso será dado apenas se o
-source = unix-barra invertida configuração é especificada para causar o escape
interpretação da barra invertida ..

byte: Declaração de tipo de dados BYTE.

construção de caso:
A construção SELECT CASE.

personagem:
Extensões ao padrão Fortran 77 em relação aos dados de caracteres. Atualmente,
isso só controla avisos sobre variáveis ​​de caracteres declaradas com zero ou
comprimento negativo. No Fortran 77, todas as variáveis ​​de caractere devem ser positivas
comprimento. No Fortran 90, eles podem ter comprimento zero e declarações que
especificar comprimentos negativos são permitidos, transformando-se em zero para o
comprimento. Nota: porque especificadores de comprimento negativo podem indicar uma programação
erro, o aviso sobre eles é dado mesmo que esta opção esteja desligada, e
é suprimido apenas pelo -nocheck bandeira.

nome-subprog comum:
Bloco comum e subprograma com o mesmo nome.

nome-construção:
Uso de um nome de construção para rotular uma instrução de controle.

continuação:
Mais de 19 linhas de continuação sucessivas.

cpp: Diretivas de pré-processador Unix C no código-fonte.

apontador de cray:
Sintaxe do `` ponteiro Cray ''.

saída do ciclo:
As instruções CYCLE e EXIT.

d-comentário:
Comentários de depuração começando com D no código-fonte.

tab:
Código-fonte formatado por tab no estilo DEC Fortran. Este aviso será dado apenas
se o -source = dec-tab configuração é especificada para causar interpretação das guias
neste estilo.

fazer-e-fazer:
Extensões do loop DO: rótulo da instrução do terminal omitido, END DO e WHILE.

duplo complexo:
Tipo de dados complexo de precisão dupla.

formato cifrão:
Código de controle do cifrão nas instruções FORMAT.

formato-editar-descr:
Descritores de edição não padronizados em instruções FORMAT.

função-noparen:
Definição de função sem parênteses.

implícito-nenhum:
Instrução IMPLICIT NONE.

incluir:
Instrução INCLUDE.

comentário inline:
Comentários embutidos começando com um ponto de exclamação.

interno-lista-io:
E / S direcionada por lista de ou para um arquivo interno.

intrínseco:
Funções intrínsecas não padronizadas.

io-palavras-chave
Palavras-chave não padronizadas usadas em instruções de E / S. Estes se enquadram em três grupos.
O primeiro grupo inclui palavras-chave aceitas no Fortran 90:

LEITURA DO PAD DE AÇÃO
TAMANHO DA POSIÇÃO AVANÇADA
DELIM LER ESCREVER
EOR
O segundo grupo compreende as seguintes palavras-chave VMS Fortran:

BLOCKSIZE EXTENDSIZE SOMENTE LEITURA
BUFFERCOUNT INICIALISIZE RECORDSIZE
CARRIAGECONTROL MAXREC RECORDTYPE
NOME DO FILE PADRÃO (em ABERTO) COMPARTILHADO
DISP NOSPAN TIPO DE BLOCO
ELIMINAR ORGANIZAÇÃO
(A palavra-chave NAME é padrão apenas na instrução INQUIRE.) A terceira
grupo consiste na seguinte palavra-chave IBM / MVS:

NUM
Este sinalizador também controla um aviso sobre o uso de ACCESS = 'APPEND', que é
aceito por alguns compiladores. O valor de 'APPEND' não é válido para qualquer I / O
especificador no padrão Fortran 77, e no Fortran 90 'APPEND' deve ser usado
como um valor do especificador POSITION, não ACCESS.

espinhel:
Instruções com código significativo após 72 colunas. Este aviso é dado apenas
se o -colunas configuração foi usada para aumentar a largura do campo de instrução.

nome longo:
Identificadores com mais de 6 caracteres.

misto comum:
Dados de caracteres e não caracteres mistos no bloco COMUM.

Mixed-expr:
Combinações de tipo não padrão em expressões, por exemplo DOUBLE PRECISION
com COMPLEX, atribuindo hollerith a inteiros, operações lógicas em inteiros.

nome-sinal de dólar:
Sinal de dólar usado como um caractere em identificadores.

nome-sublinhado:
Sublinhado usado como um caractere em identificadores.

lista de nomes:
Declaração NAMELIST.

param-implícito-tipo:
Digitação implícita de um parâmetro pelo tipo de dados do valor atribuído. Esse
o aviso só pode ocorrer se a digitação de parâmetro implícita foi ativada pelo
-source = param-implicit-type opção, ou se a instrução PARAMETER é do
forma não padronizada sem parênteses. Se esta opção estiver ativada, então qualquer
instâncias onde ocorre a digitação de parâmetro implícito serão avisadas sobre. Se
você quer ser avisado apenas nos casos em que o tipo de dados implícito
difere do tipo padrão, use -portabilidade = param-implícito-tipo ao invés.
De acordo com o padrão Fortran 77, o tipo de dados de um parâmetro é fornecido
pelas mesmas regras que para uma variável e, se necessário, uma conversão de tipo é
feito quando o valor é atribuído.

param-intrínseco:
Função intrínseca ou exponenciação por um real usada para definir o valor de um
Definição de PARÂMETRO.

param-nopareno:
Instrução PARAMETER sem parênteses. O usuário deve estar ciente de que o
semântica desta forma de declaração difere daquela do padrão
formulário: neste formulário, o parâmetro obtém seu tipo de dados do valor
atribuído, em vez de ter seu tipo de dados padrão com base na primeira letra
do nome do parâmetro. (Esta forma da declaração PARAMETER foi introduzida
por DEC antes do padrão Fortran 77 ser definido e deve ser evitado.)

apontador:
Sintaxe relacionada a ponteiros padrão Fortran 90, incluindo POINTER, TARGET e
Declarações de tipo ALLOCATABLE, instruções ALLOCATE, DEALLOCATE e NULLIFY,
e atribuição de ponteiro usando =>.

constante quádrupla:
Constantes reais de precisão Quad, por exemplo, da forma 1.23Q4.

citação:
Strings delimitadas por aspas em vez de apóstrofos.

repetições:
Operadores relacionais (comparação) compostos de pontuação, a saber: <<= == / =
>> =.

ponto e vírgula:
Ponto e vírgula usado como separador de instrução.

ordem de declaração:
Declarações fora da sequência exigida pela Norma. O permitido
A sequência é ilustrada na Tabela 1 na seção Interpretação do resultado.

constante sem tipo:
Constantes sem tipo, por exemplo Z'19AF '.

tamanho-tipo:
Declarações de tipo especificando um tamanho, por exemplo REAL * 8.

formato de variável:
Especificação de repetição variável ou tamanho de campo em FORMAT. Estes são da forma
< expr >.

vms-io:
Obsoleto. Agora tem o mesmo significado que o io-palavras-chave palavra chave.

Veja também: -f90, -f95, -portabilidade, -bonita, De estilo, -tamanho da palavra.

-f90 =Lista
Esta configuração fornece controle detalhado sobre os avisos sobre as extensões suportadas
ao Padrão Fortran 77 que não foi adotado como parte do Fortran 90
Padrão. Observe que Ftnchek não suporta o idioma Fortran 90 completo.
No entanto, ele suporta algumas extensões comuns para Fortran 77 que eram predominantes
antes do Fortran 90 ser definido. Algumas dessas extensões tornaram-se parte do Fortran
90 Standard, mas outros não. o -f90 configuração avisa apenas sobre o último.
Ou seja, este sinalizador cobre coisas que não são legais Fortran 77 nem legais
Fortran 90. Portanto, os avisos controlados por este sinalizador são basicamente um subconjunto
dos avisos controlados por -f77. Existem alguns casos, descritos abaixo, onde
as circunstâncias em que o aviso é dado são ligeiramente diferentes para os dois
bandeiras.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Há três
palavras-chave especiais: todos os para ativar todos os avisos sobre extensões fora do padrão,
Nenhum para desligar todos eles, e ajudar para imprimir a lista de todas as palavras-chave com um
breve explicação de cada um. Se Lista é omitido, -f90 é equivalente a -f90 = tudo e
-nof90 é equivalente a -f90 = nenhum.

As seguintes palavras-chave têm significados idênticos para -f90 quanto a -f77. O leitor é
referiu-se às explicações em -f77.

aceitar duplo complexo param-nopareno
barra invertida formato cifrão apontador de cray
byte formato-editar-descr constante quádrupla
cpp função-noparen tamanho-tipo
d-comentário nome-sinal de dólar formato de variável
tab param-implícito-tipo vms-io

As palavras-chave que diferem um pouco das correspondentes -f77 palavras-chave são tão
Segue.

continuação:
O limite do número de linhas de continuação para uma declaração em fonte fixa
forma é a mesma, a saber, 19, em Fortran 90 e em Fortran 77. Para fonte gratuita
formar o limite é de 39 linhas de continuação, e uma linha contendo uma continuação
A marca não pode estar vazia ou conter apenas um comentário.

intrínseco:
Este é o mesmo que para -f77 exceto para as funções intrínsecas definidas em
MIL-STD 1753, que estão incluídos no Fortran 90 e, portanto, não são avisados
cerca de. (Ver -intrínseco para uma lista.)

io-palavras-chave:
Este é o mesmo que para -f77 exceto que nenhum aviso é dado para o I / O
palavras-chave que são padrão no Fortran 90.

espinhel:
Embora o Fortran 90 Standard permita linhas com mais de 72 caracteres em
forma de fonte livre, esta restrição ainda se aplica à forma de fonte fixa. No
de fonte livre, o limite de comprimento da linha é de 132 caracteres e, ao contrário do fixo
Formato, Ftnchek não permite que este limite seja aumentado.

Mixed-expr:
Este é o mesmo que para -f77 exceto para expressões que combinam precisão estendida
real com tipos de dados complexos, que são permitidos no Fortran 90.

ordem de declaração:
Isso é semelhante ao correspondente -f77 aviso, mas aplica-se um pouco
restrições mais flexíveis na ordem das declarações do Fortran 90 Standard. No
em particular, o Fortran 90 permite instruções DATA e funções de instrução
definições a serem misturadas com instruções de especificação.

constante sem tipo:
No Fortran 90, constantes binárias, octais e hexadecimais da forma B'ddd ',
O'ddd 'e Z'ddd', respectivamente, são permitidos. Aqui 'ddd' representa um
seqüência de dígitos. Ftnchek reconhece essas formas, bem como uma variante de
a forma X'ddd 'para uma constante hexadecimal e outras variantes em que o
o indicador de base B, O, Z ou X segue a sequência de dígitos. Essas variantes foram
não adotado no Fortran 90, então apenas eles são avisados ​​sobre quando esta bandeira é
ligadas.

Veja também: -f77, -f95, -portabilidade, -bonita, De estilo, -tamanho da palavra.

-f95 =Lista
Esta configuração fornece controle detalhado sobre os avisos sobre o Fortran 77 padrão
recursos que foram excluídos do Fortran 95 Standard. Ao contrário do -f77 e -f90
configurações, esses avisos se aplicam à sintaxe que é legal Fortran 77. No entanto, desde
esses recursos foram excluídos do padrão, é possível que os programas
contendo-os será inaceitável para alguns compiladores mais recentes.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Há três
palavras-chave especiais: todos os para ativar todos os avisos sobre extensões fora do padrão,
Nenhum para desligar todos eles, e ajudar para imprimir a lista de todas as palavras-chave com um
breve explicação de cada um. Se Lista é omitido, -f95 é equivalente a -f95 = tudo e
-nof95 é equivalente a -f95 = nenhum. As palavras-chave de aviso com seus significados são tão
Segue.

real-fazer:
Uma variável DO de qualquer tipo numérico real.

pausa:
A instrução PAUSE.

atribuir:
A instrução ASSIGN, GOTO atribuído ou formato atribuído.

h-editar:
O descritor de edição H em um formato.

Há um outro recurso de sintaxe do Fortran 77 que foi excluído do Fortran 95, a saber
ramificação para um ENDIF de fora do bloco IF. Contudo, Ftnchek é incapaz de
analisa o fluxo do programa e, portanto, não fornece um aviso para isso.

Veja também: -f77, -f90, -portabilidade, -bonita, De estilo, -tamanho da palavra.

-Socorro
Imprime uma lista de todas as opções de linha de comando com uma breve descrição de cada
junto com seu valor padrão. Este comando é idêntico em função ao ``? ''
argumento, e é fornecido como uma conveniência para os sistemas em que a questão
A marca tem um significado especial para o interpretador de comandos. Padrão = não.

A lista de ajuda também imprime o número da versão e o nível de patch do Ftnchek e de um
aviso de direitos autorais.

Nota: os valores `` padrão '' impressos entre colchetes na lista de ajuda são,
estritamente falando, não os padrões integrados, mas os valores atuais após qualquer
opções de ambiente e quaisquer opções de linha de comando anteriores ao -Socorro opção tem
foi processado.

Veja também: -novato, -versão e ajudar opção de todas as configurações que levam uma lista de
palavras-chave.

-identifier-chars =Lista
Defina caracteres não alfanuméricos que podem ser usados ​​em identificadores. Por padrão,
Ftnchek só aceita o cifrão e o sublinhado como caracteres não alfanuméricos
em nomes de identificadores. Os personagens do Lista substitua qualquer conjunto de aceito
caracteres não alfanuméricos estavam em vigor anteriormente. Assim, se o cifrão ou
sublinhados não são incluídos na lista, eles perdem seu status de aceitáveis
caracteres.

Esta opção é fornecida para habilitar Ftnchek para lidar com arquivos de origem contendo
nomes de identificadores padrão que podem ser necessários, por exemplo, para acessar certos
serviços de sistema operacional. Veja a seção Limitações e Extensões para o
tratamento de identificadores contendo esses caracteres na digitação implícita.

utilização -noidentifer-chars desativa a aceitação de caracteres não alfanuméricos
inteiramente.

Veja também: -source.

-include =caminho
Especifica um diretório a ser pesquisado para arquivos especificados por instruções INCLUDE.
Ao contrário de outras opções de linha de comando, essa configuração é cumulativa; isto é, se for
fornecido mais de uma vez na linha de comando, todos os diretórios assim especificados são
colocados em uma lista que será pesquisada na mesma ordem em que são fornecidos. o
ordem em que Ftnchek procura por um arquivo a ser incluído é: o atual
diretório; o diretório especificado pela variável de ambiente FTNCHEK_INCLUDE se houver;
os diretórios especificados por qualquer -incluir opções; o diretório especificado por
variável de ambiente INCLUDE; e, finalmente, em um diretório padrão para todo o sistema
(/ usr / include para UNIX, SYS $ LIBRARY para VMS e \ include para MSDOS).

Veja também: -f77, -source.

-intrínseco =Lista
Controla se Ftnchek reconhece certas funções intrínsecas não padronizadas como
intrínseco. o Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Alguns
as palavras-chave controlam o reconhecimento de certos grupos de funções e outros
palavras-chave controlam a sintaxe esperada para invocar alguns intrínsecos não padrão.
Inclua uma palavra-chave para ativar o reconhecimento do conjunto correspondente de intrínsecos ou
para permitir a sintaxe correspondente. Inclui uma palavra-chave prefixada por no- desligar
esse reconhecimento.

Existem três palavras-chave especiais: todos os ativa o reconhecimento de todos os fora do padrão
intrínsecos (listados abaixo) e aceita qualquer sintaxe para aqueles que têm variações.
Use Nenhum para desligar o reconhecimento de todos os intrínsecos não padronizados, exceto aqueles indicados
abaixo. Usar ajudar para imprimir a lista de todas as palavras-chave com uma breve explicação de
cada. Se Lista é omitido, -intrínseco é equivalente a -intrínseco = tudo e
-nointrínseco é equivalente a -intrínseco = nenhum.

As funções intrínsecas não padronizadas necessárias para dar suporte à extensão não padronizada
tipos de dados de precisão (duplo complexo e precisão quádrupla) são sempre reconhecidos.
Os intrínsecos para o tipo de dados duplo complexo são:

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIMAG ZEXP ZCOS
CDSIN
Os intrínsecos para os tipos de precisão quádrupla e complexos quádruplos são:

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
As palavras-chave que controlam o reconhecimento de outras funções intrínsecas não padronizadas são
como se segue:

extra:
reconhecer os seguintes intrínsecos não padronizados comumente disponíveis (todos exceto
SAÍDA e LOC são definidos em MIL-STD 1753):

BTEST IBCLR IEOR ISHFTC
SAIR IBITS IOR LOC
IAND IBSET ISHFT NÃO

unix: reconheça essas funções intrínsecas específicas do Unix:

ABOTAR GMTIME LTIME SRAND
E IARGC OU SISTEMA
GETARG IRAND RAND TEMPO
GETENV LSHIFT RSHIFT XOR

vms: reconheça essas funções intrínsecas específicas de VMS comuns:

DATA IDADA SEGUNDOS HORA

ERRSNS RAN SIZEOF

iargc-sem-argumento:
especificar que IARGC pode ser invocado sem argumentos.

iargc-um-argumento:
especificar que IARGC pode ser invocado com um argumento.

rand-sem-argument:
especificar que RAND e IRAND podem ser chamados sem argumentos.

argumento único:
especificar que RAND e IRAND podem ser chamados com um argumento.

A sem argumento e um argumento palavras-chave funcionam da seguinte maneira: ativando a opção
causas Ftnchek aceitar a sintaxe correspondente para invocação da função,
sem excluir a possibilidade da sintaxe alternativa. Virando a opção
off faz com que a sintaxe correspondente não seja aceita. Se ambas as opções estiverem ativadas
on de uma vez (o padrão), então qualquer sintaxe é aceita. Desativando ambas as opções
imediatamente não seria significativo. Essas opções não têm efeito se o reconhecimento de
O intrínseco do Unix foi desativado.

Observe que esta configuração não controla se os avisos não padrão são emitidos
sobre essas funções. Ele controla se as funções são consideradas
intrínseco ou não, que determina como seu uso é verificado. Quando funciona em
qualquer um desses conjuntos estão incluídos, suas invocações serão verificadas de acordo com o
regras para as funções intrínsecas; caso contrário, eles serão verificados normalmente (usuário-
escrito) funções externas. Os avisos não padrão são controlados pelo
-f77 = intrínseco opção.

O valor padrão desta configuração é equivalente a -intrínseco = tudo seguido
-intrinsic = no-vms para a versão Unix, -intrinsic = no-unix para a versão VMS, e
-intrinsic = no-unix, no-vms para outras versões.

Nota: nas versões de Ftnchek antes de 2.10, o -intrínseco bandeira tomou um numérico
argumento em vez de uma lista de opções. Para o bem dos usuários que podem ter escrito
scripts invocando Ftnchek desta forma, a forma numérica ainda é aceita. o
a forma numérica da configuração consiste em três dígitos. O dígito da unidade seleciona o
conjunto de funções intrínsecas a serem suportadas. O dígito 0 seleciona apenas Fortran 77
intrínsecos padrão mais aqueles necessários para suportar a precisão estendida não padrão
tipos de dados. O dígito 1 é equivalente a extra, 2 é equivalente a extra, unix e
3 é equivalente a extra, vms. As dezenas de dígitos desta configuração controlam a sintaxe
da função intrínseca RAND, e o dígito das centenas controla a sintaxe do
Função IARGC. Para esses dígitos, especifique 0 para exigir a invocação sem
argumento, 1 para exigir um argumento e 2 para permitir qualquer uma das formas.

Veja também: -f77.

-biblioteca
Esta opção é usada quando vários subprogramas estão contidos em um arquivo, mas não
todos eles são usados ​​pelo aplicativo. Normalmente, Ftnchek avisa você se houver
subprogramas são definidos, mas nunca usados. Essa opção suprimirá esses avisos.
Padrão = não.

Esta opção também controla quais chamadas de subprograma e declarações de bloco COMUM são
verificado. Se um arquivo for lido com o -biblioteca sinalizador em vigor, o subprograma chama
e declarações COMUNS contidas em uma rotina nesse arquivo serão verificadas somente se
essa rotina está na árvore de chamadas do programa principal. Por outro lado, se o
-biblioteca interruptor está desligado, então Ftnchek verifica as chamadas de cada rotina por
todas as outras rotinas, independentemente de essas rotinas poderem ser
invocado em tempo de execução, e da mesma forma todas as declarações de bloco COMUM são comparadas para
acordo.

A diferença entre este switch e o -usage = no-ext-unused opção para
subprogramas é que o último suprime apenas o aviso sobre rotinas sendo
declarado, mas não usado. o -biblioteca switch vai mais longe e exclui os não usados
rotinas processadas enquanto está em vigor a partir de todas as verificações cruzadas de argumentos e
Declarações de bloco COMUNS também.

(Se não houver programa principal em qualquer lugar no conjunto de arquivos que Ftnchek leu então
que não há árvore de chamada, então Ftnchek irá procurar por quaisquer rotinas não pertencentes à biblioteca
que não são chamados por nenhuma outra rotina, e use-os como substitutos para o principal
programa na construção da árvore de chamada e decidir o que verificar. Se não houver tal top-
rotinas de nível não-biblioteca são encontradas, então todas as chamadas entre módulos e todas as COMUNS
as declarações serão verificadas.)

Veja também: -argumentos, - árvore de chamada, -comum, -externo, -uso.

-Lista
Especifica que uma lista do programa Fortran deve ser impressa com linha
números. Se Ftnchek detecta um erro, a mensagem de erro segue a linha do programa
com um acento circunflexo (^) especificando a localização do erro. Se nenhuma lista de fontes era
Requeridos, Ftnchek ainda imprimirá qualquer linha que contenha um erro, para ajudar o
usuário ao determinar onde ocorreu o erro. Padrão = não.

Veja também: -saída, \ fB-symtab, fB-quieto.

-makedcls =Lista
Prepare um arquivo bem formatado de declarações de variáveis, blocos comuns e
listas de nomes, para possível fusão no código-fonte. As declarações são
armazenado em um arquivo com o mesmo nome do código-fonte, mas com a extensão
alterado para .dcl. Se nenhuma declaração for gravada no arquivo, ele será excluído para
reduza a desordem de arquivos vazios.

Se a entrada vier da entrada padrão, em vez de um arquivo nomeado, então as declarações são
gravado na saída padrão.

As variáveis ​​são declaradas em ordem alfabética dentro de cada classe de declaração e
tipo, com variáveis ​​inteiras primeiro, por causa de seu uso posterior possível na matriz
dimensões.

As instruções PARAMETER são uma exceção à regra de ordem alfabética, porque o
O Fortran 77 Standard requer que as expressões que definem os valores dos parâmetros se refiram
apenas para constantes e nomes de parâmetros já definidos. Isso força o original
a ordem do arquivo de origem de tais declarações a serem preservados nos arquivos de declaração.

Declaração explícita de todos os variáveis ​​é considerado uma boa programação moderna
prática. Ao usar opções do compilador para rejeitar variáveis ​​não declaradas, com erros ortográficos
nomes de variáveis ​​(ou nomes que ultrapassam a coluna 72) podem ser capturados em tempo de compilação.
As declarações explícitas também facilitam muito a alteração da precisão do ponto flutuante
com filtros como dtoq(1L), dtos(1L), fd2s(1L), fs2d(1L), qtod(1L), e
parou(1L). Esses programas são capazes de alterar os tipos de ponto flutuante explícito
declarações de tipo, funções intrínsecas e constantes, mas porque eles não
realizar análises lexicais e gramaticais rigorosas do código-fonte do Fortran,
eles não podem fornecer declarações de tipo modificado para variáveis ​​não declaradas. Predefinição
configuração = 0, ativação = 1.

Várias opções para a forma do arquivo de declarações são controladas pelo Lista,
que consiste em palavras-chave separadas por vírgulas ou dois pontos. São três especiais
Palavras-chave: todos os para ativar todas as opções, Nenhum para desligar todos eles, e ajudar para
imprima a lista de todas as palavras-chave com uma breve explicação de cada uma. Se Lista is
omitido, -madecls é equivalente a -makedcls = declarações (ou seja, produzir o
arquivo de declarações usando as opções padrão), e -nomakedcls é equivalente a
-makedcls = nenhum.

Para compatibilidade com versões anteriores de Ftnchek, uma forma numérica desta configuração
também é aceito: o Lista é substituído por um número que é a soma dos números
entre parênteses ao lado das palavras-chave na lista a seguir. As palavras-chave de aviso
com seus significados são os seguintes:

declarações (1)
Escreva um arquivo de declaração. (Isso está implícito em qualquer uma das outras opções, e
pode ser omitido se qualquer outra opção for fornecida.)

apenas não declarado (2)
Por padrão, todas as variáveis ​​são incluídas no arquivo de declaração. Com isso
opção, incluir apenas não declarado variáveis. Esta configuração é útil se você
deseja verificar se há variáveis ​​não declaradas, uma vez que os arquivos de origem do Fortran com todos
variáveis ​​devidamente declaradas não resultarão em um .dcl Arquivo. Com isso
opção, blocos comuns e listas de nomes não serão incluídos no
arquivo de declaração, uma vez que, por sua natureza, não podem ser não declaradas.

compacto (4)
As declarações são normalmente impressas para alinhar perfeitamente em comum
colunas, como na saída dos arquivos de declaração pelo Extended PFORT Verifier,
forte(1L). Este valor de opção seleciona saída compacta, sem coluna
alinhamento.

linhas de continuação de uso (8)
Faz com que as linhas de continuação sejam usadas onde permitido. O padrão é
comece uma nova declaração em cada linha. Esta opção é apropriada para usar
Juntamente com compacto.

palavras-chave em minúsculas (16)
Palavras-chave Fortran de saída em letras minúsculas, em vez das letras maiúsculas padrão.

vars-and-consts-minúsculas (32)
Variáveis ​​de saída e constantes em minúsculas, em vez do padrão
maiúsculas. As constantes da sequência de caracteres não são afetadas por esta opção.

excluir-sftran3 (64)
Omitir declarações de variáveis ​​inteiras internas produzidas pelo SFTRAN3
pré-processador, xsf3(1L), como parte da tradução do Fortran estruturado
declarações para Fortran comum. Essas variáveis ​​têm nomes de seis caracteres de
a forma NPRddd, NXdddd, N2dddd e N3dddd, Onde d é um dígito decimal.
Porque eles são invisíveis no código-fonte SFTRAN3, e irão mudar se o
O código SFTRAN3 é modificado, tais variáveis ​​não devem ser declaradas explicitamente.
Em vez disso, eles devem apenas assumir o tipo de dados Fortran INTEGER padrão com base
em sua carta inicial, N.

asterisco-comentário (128)
Use um asterisco como caractere de comentário; caso contrário, o padrão é 'C'.

comentário-caractere-minúsculo (256)
Use 'c' em vez de 'C' ou '*' como caractere de comentário.

suprimir-matrizes-dimensões (512)
Suprima o dimensionamento de matrizes nas declarações geradas. Esta opção
é para uso com código sem declarações de tipo, para permitir a declaração
arquivos a serem inseridos sem alteração no código. Já que o código terá
declarações de dimensão já, dimensionando as variáveis ​​de matriz no tipo
declarações do arquivo de declaração são redundantes. Esta opção deve ser usada
apenas em conjunto com a opção 2 = não declarado apenas porque caso contrário, qualquer
matrizes que foram dimensionadas em uma instrução de tipo perderão seus
dimensionamento.

de forma livre (1024)
Produza declarações em formato de fonte livre. Este modo é usado automaticamente se
a fonte de entrada é de formato livre. Use esta opção para produzir declarações em
forma livre, mesmo se a entrada for de forma fixa. As declarações de forma livre são
recuou apenas 2 colunas em vez de 6, use o ponto de exclamação como comentário
caractere e indicam as linhas de continuação por um E comercial no final do
linha a ser continuada.

Os arquivos de declaração contêm comentários distintos que marcam o início e o fim do
declarações para cada unidade de programa, para facilitar o uso de macros do editor de texto para
mesclar as declarações de volta no código-fonte.

A Ftnchek distribuição inclui um programa, dcl2inc, que processa a declaração
arquivos para produzir arquivos contendo declarações de todos os blocos COMUNS, em um formulário
adequado para uso como arquivos INCLUIR. Veja o dcl2inc(1L) página do manual para os detalhes de
seu uso.

Veja também: -mkhtml.

-mkhtml =Lista
Produza documentação HTML a partir da fonte. Cria arquivos HTML individuais de ftnchek
análise e comentários de código. Todos os comentários imediatamente anteriores e posteriores ao
definição de função ou sub-rotina são capturadas para o arquivo HTML. Sem reformatação de
os comentários da fonte são executados de forma diferente da remoção dos caracteres de comentário do FORTRAN.
Além disso, o arquivo HTML lista as variáveis ​​locais declaradas, bloco comum
variáveis ​​usadas, funções e sub-rotinas chamadas, uso da unidade de E / S e outros
informações sobre cada subprograma. Normalmente, você também desejará especificar
-call = árvore para criar o arquivo HTML raiz CallTree.html. (Talvez este arquivo deva
seja nomeado index.html.)

Várias opções para a forma dos arquivos HTML são controladas pelo Lista, o qual
consiste em palavras-chave separadas por vírgulas ou dois pontos. São três especiais
Palavras-chave: todos os para ativar todas as opções, Nenhum para desligar todos eles, e ajudar para
imprima a lista de todas as palavras-chave com uma breve explicação de cada uma. Se Lista is
omitido, -mkhtml é equivalente a -mkhtml = documentos (ou seja, produzir o documento HTML
arquivos usando as opções padrão) e -nomkhtmls é equivalente a -mkhtml = nenhum.

Para simplificar, as opções para -mkhtml são os mesmos que aqueles para
-madecls exceto para aqueles que são inaplicáveis. Da mesma forma, uma forma numérica de
esta configuração pode ser usada, formada como a soma dos números entre parênteses no
lista abaixo. As palavras-chave de aviso com seus significados são as seguintes:

INSTITUCIONAIS (1)
Crie os documentos HTML. (Isso está implícito em qualquer uma das outras opções, e
pode ser omitido se qualquer outra opção for fornecida.)

compacto (4)
As declarações são normalmente impressas para alinhar perfeitamente em comum
colunas. Este valor de opção seleciona saída compacta, sem coluna
alinhamento.

linhas de continuação de uso (8)
Faz com que as linhas de continuação sejam usadas em vez de iniciar uma nova declaração
em cada linha. Esta opção é apropriada para usar junto com compacto.

palavras-chave em minúsculas (16)
Palavras-chave Fortran de saída em letras minúsculas, em vez das letras maiúsculas padrão.

vars-and-consts-minúsculas (32)
Variáveis ​​de saída e constantes em minúsculas, em vez do padrão
maiúsculas. As constantes da sequência de caracteres não são afetadas por esta opção.

excluir-sftran3 (64)
Omitir declarações de variáveis ​​inteiras internas produzidas pelo SFTRAN3
pré-processador, xsf3(1L). (Ver -madecls para discussão.)

suprimir-matrizes-dimensões (512)
Suprima o dimensionamento de matrizes nas declarações geradas. Isto é
normalmente indesejável, mas está disponível se por algum motivo você não quiser
dimensões da matriz para aparecer no HTML.

de forma livre (1024)
Produza declarações de variáveis ​​em formato de código-fonte livre. Este modo é
usado automaticamente se a fonte de entrada for de formato livre. Isso afeta principalmente o
forma de linhas de continuação, se forem usadas.

Veja também: - árvore de chamada, -madecls.

-novato
Este sinalizador tem como objetivo fornecer resultados mais úteis para iniciantes. Tem dois
efeitos:

(a) fornece uma mensagem extra no sentido de que uma função que é usada, mas não
definido em qualquer lugar pode ser uma matriz que o usuário se esqueceu de declarar em um
Instrução DIMENSION (uma vez que a sintaxe de uma referência de array é a mesma que aquela
de uma referência de função).

(b) modifica a forma das mensagens de erro e avisos. Se a bandeira for virada
fora por -novato, essas mensagens são impressas em um estilo mais parecido com o UNIX
cotão.

Padrão = sim.

-output =nome do arquivo
Esta configuração é fornecida para conveniência em sistemas que não permitem fácil
redirecionamento da saída dos programas. Quando esta configuração é fornecida, a saída que
normalmente aparece na tela será enviado ao arquivo nomeado. Observação,
no entanto, que erros operacionais de Ftnchek em si (por exemplo, sem espaço ou não pode
arquivo aberto) ainda será enviado para a tela. A extensão do nome do arquivo é
opcional, e se nenhuma extensão for fornecida, a extensão .lis será usada.

-pointersize =Números
Especifica o tamanho de uma variável de `` ponteiro Cray '' a ser Números bytes. Padrão = turn-
em = 4 bytes.

O tamanho do ponteiro é usado para informar avisos de incompatibilidade de precisão envolvendo o ponteiro
variáveis, por exemplo, quando um ponteiro é atribuído a um valor de uma alocação
rotina, ou passado como um parâmetro de subprograma.

Veja também: -f77, -portabilidade, -truncamento, -tamanho da palavra.

-portabilidade =Lista
Ftnchek dará avisos para uma variedade de usos não portáteis. Exemplos incluem
o uso de tabulações, exceto em comentários ou strings internas, o uso de Hollerith
constantes e a equivalência de variáveis ​​de diferentes tipos de dados. Esta opção
não produz avisos para extensões com suporte para o padrão Fortran 77,
o que também pode causar problemas de portabilidade. Para pegá-los, use o -f77 criação.
Por padrão, todos os avisos estão desligados.

Esta configuração fornece controle detalhado sobre os avisos sobre possível portabilidade
problemas. O Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Há
três palavras-chave especiais: todos os para ativar todos os avisos sobre usos não portáteis,
Nenhum para desligar todos eles, e ajudar para imprimir a lista de todas as palavras-chave com um
breve explicação de cada um. Se Lista é omitido, -portabilidade é equivalente a
-portabilidade = tudo e -noportabilidade é equivalente a -portabilidade = nenhum. O
palavras-chave de aviso com seus significados são os seguintes:

barra invertida:
Caractere de barra invertida em strings. Uma vez que alguns compiladores tratam a barra invertida como
um caractere de escape, sua presença pode causar problemas, embora seja usado
em conformidade com os padrões.

alinhamento comum:
Variáveis ​​de bloco COMUNS não estão em ordem decrescente de tamanho de armazenamento. Algum
os compiladores exigem esse pedido por causa dos requisitos de alinhamento de armazenamento.

Hollerith:
Constantes de Hollerith (exceto dentro das especificações de FORMAT). The Hollerith
tipo de dados é um recurso do Fortran IV que foi excluído do Fortran 77
padrão. Ele é substituído pelo tipo de dados do caractere. Armazenando Hollerith
dados em variáveis ​​de tipo numérico ou lógico não são portáveis ​​devido a
diferentes tamanhos de palavras.

corda longa:
Constantes de string, variáveis ​​ou expressões com mais de 255 caracteres.

equivalência mista:
Variáveis ​​de diferentes tipos de dados equivalentes.

tamanho misto:
Variáveis ​​declaradas com precisão padrão usadas com variáveis ​​fornecidas de forma explícita
precisão, em expressões, atribuições ou como argumentos. Por exemplo, se um
variável declarada como REAL * 8 é tratada como equivalente a DOUBLE PRECISION.

real-fazer:
Índice e limites do loop DO não inteiro. Isso pode fazer com que os resultados de um programa sejam
dependem das características de hardware do computador específico usado.

param-implícito-tipo:
Digitação implícita de um parâmetro pelo tipo de dados do valor atribuído, se
difere do tipo padrão. Este aviso só pode ocorrer se implícito
a digitação do parâmetro foi ativada pelo -source = param-implicit-type
opção, ou se a instrução PARAMETER é de forma não padronizada, sem
parênteses. Se esta opção estiver ativada, então qualquer instância onde implícita
a digitação do parâmetro ocorre e onde o tipo implícito é diferente do
tipo padrão com base na primeira letra do nome do parâmetro, será avisado
cerca de. A tipagem implícita de parâmetros pode mudar a semântica das declarações
onde o parâmetro é usado, causando problemas de portabilidade.

aba: Abas no código-fonte. As guias são interpretadas de forma diferente por diferentes
compiladores. Este aviso será dado apenas uma vez, ao final do arquivo.

Veja também: -f77, -f90, -f95, -bonita, De estilo, -tamanho da palavra.

-pretty =Lista
Controla certas mensagens relacionadas à aparência do código-fonte. Estes avisam
sobre coisas que podem tornar um programa menos legível ou enganar o leitor.
Por padrão, todos os avisos estão ativados.

Essa configuração fornece controle detalhado sobre os avisos sobre a aparência. O
Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Uma vez que todos os avisos estão ativados
por padrão, inclua uma palavra-chave prefixada por no- para desligar um aviso específico.
Existem três palavras-chave especiais: todos os para ativar todos os avisos sobre enganos
aparências, Nenhum para desligar todos eles, e ajudar para imprimir a lista de todos os
palavras-chave com uma breve explicação de cada uma. Se Lista é omitido, -bonita is
equivalente a -pretty = all e -não é bonito é equivalente a -pretty = none. O
palavras-chave de aviso com seus significados são os seguintes:

retorno alternativo:
Uma instrução RETURN tem uma constante especificando um ponto de retorno alternativo que
não está entre 0 e o número de argumentos fictícios que são rótulos. Isto é
legal, e tem o mesmo efeito que um RETORNO sem retorno alternativo
expressão, mas sugere que o programador pretendia usar uma expressão alternativa
etiqueta de devolução que não é fornecida.

espaço embutido:
Espaço incorporado em nomes de variáveis ​​ou em operadores de vários caracteres, como **.

continuação:
Marca de continuação após uma linha de comentário.

espinhel:
Linhas (exceto comentários) com mais de 72 colunas de largura (além de 72 normalmente
ignorado pelo compilador).

falta-espaço:
Falta de espaço entre a variável e uma palavra-chave anterior.

múltiplo comum:
Bloco COMUM declarado em várias instruções. Nenhum aviso é dado se o
declarações são consecutivas, exceto para linhas de comentário.

lista de vários nomes:
NAMELIST declarado em várias instruções. Nenhum aviso é dado se o
declarações são consecutivas, exceto para linhas de comentário.

parênteses:
Parênteses em torno de uma variável por si só. Como um argumento de subprograma, este
torna o argumento uma expressão, não modificável pelo subprograma.

Observe que na forma de código-fonte livre, espaço extra e espaço em falta são proibidos pelo
Fortran 90 Standard, e não são meras violações de estilo. Neste caso, os avisos
são substituídos por mensagens de erro de sintaxe e podem ser desligados apenas usando
-nocheck.

Veja também: -f77, -portabilidade, De estilo.

-projeto =Lista
Ftnchek irá criar um arquivo de projeto de cada arquivo fonte que é inserido enquanto este
opção está ativada. O arquivo do projeto receberá o mesmo nome da entrada
arquivo, mas com a extensão .f or .para substituído por .prj. (Se a entrada for de
entrada padrão, o arquivo do projeto é nomeado ftnchek.prj.) Padrão = nenhum.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Há três
palavras-chave especiais: todos os para ativar todas as opções, Nenhum para desligar todos eles, e
ajudar para imprimir a lista de todas as palavras-chave com uma breve explicação de cada uma. Se
Lista é omitido, -projeto é equivalente a -project = all e -noprojeto is
equivalente a -projeto = nenhum. As palavras-chave com seus significados são as seguintes:

crio:
Produza um arquivo de projeto. O padrão é não produzir um arquivo de projeto. Se
esta opção não está ativada, as outras opções não têm efeito.

chamadas de corte:
Reduza a quantidade de informações armazenadas no arquivo de projeto sobre o subprograma
declarações e chamadas. Este é o padrão. Desative esta opção apenas em
situações raras. (Veja a discussão abaixo.) A quantidade de corte varia
dependendo do -biblioteca bandeira. Mais informações são cortadas se essa bandeira for
ligadas.

guarnição comum:
Corte o número de declarações de bloco comuns armazenadas no arquivo de projeto.
Este é o padrão. Desative esta opção apenas em situações raras. (Ver
discussão abaixo.) Esta opção não tem efeito se o -biblioteca bandeira está virada
desligado: quando não está no modo de biblioteca, nenhum corte de declarações de bloco comuns é
feito independentemente desta opção.

Um arquivo de projeto contém um resumo das informações do arquivo de origem, para uso em
verificar a concordância entre os usos FUNCTION, SUBROUTINE e COMMON em outros arquivos.
Ele permite a verificação incremental, o que economiza tempo sempre que você tem um grande conjunto de
arquivos contendo sub-rotinas compartilhadas, a maioria das quais raramente muda. Você pode correr
Ftnchek uma vez em cada arquivo com o -projeto conjunto de sinalizadores, criando os arquivos do projeto.
Normalmente, você também definiria o -biblioteca e -noexterno sinalizadores neste momento, para
suprimir mensagens relacionadas à consistência com outros arquivos. Apenas mensagens de erro
pertencente a cada arquivo por si só será impresso neste momento. Depois disso, corra
Ftnchek sem essas sinalizações em todos os arquivos do projeto juntos, para verificar a consistência
entre os diferentes arquivos. Todas as mensagens internas aos arquivos individuais serão agora
ser omitido. Somente quando um arquivo é alterado, um novo arquivo de projeto precisa ser feito
para isso.

Naturalmente, quando o -projeto opção está ativada, Ftnchek não vai ler o projeto
arquivos como entrada.

Normalmente, as opções de corte devem ser deixadas ativadas quando você pretende criar o projeto
arquivos para futura entrada para Ftnchek. Como o corte está ativado por padrão, isso significa
que simplesmente dar o comando -projeto sem lista de opções é o recomendado
modo. As opções de acabamento são fornecidas apenas como uma conveniência para aqueles que desejam
fazer uso de arquivos de projeto para outros fins que não a verificação do programa com
Ftnchek. Para usar arquivos de projeto para a finalidade pretendida, as opções de corte devem
não ser desligado.

Os arquivos de projeto contêm apenas as informações necessárias para verificar a concordância entre os arquivos.
Isso significa que um arquivo de projeto é inútil se todos os módulos do programa completo
estão contidos em um único arquivo.

Uma discussão mais detalhada é fornecida na seção Usando arquivos de projeto.

-puro
Assuma que as funções são `` puras '', ou seja, elas não terão efeitos colaterais ao modificar
seus argumentos ou variáveis ​​em um bloco COMUM. Quando este sinalizador estiver em vigor,
Ftnchek irá basear a sua determinação do estado definido e usado dos argumentos reais
na suposição de que os argumentos passados ​​para uma função não são alterados. Ele vai
também emite um aviso se uma função for encontrada para modificar qualquer um de seus argumentos ou qualquer
Variáveis ​​COMUNS. Padrão = sim.

Quando este sinalizador é desativado, os argumentos reais passados ​​para as funções serão tratados
da mesma forma que os argumentos reais são passados ​​para as sub-rotinas. Isso significa que Ftnchek
irá assumir que os argumentos podem ser modificados pelas funções. Nenhum aviso será
dado se uma função apresentar efeitos colaterais. Porque uma verificação mais rigorosa é
possível se as funções forem assumidas como puras, você deve desligar este sinalizador apenas se
seu programa realmente usa funções com efeitos colaterais.

-quieto
Esta opção reduz a quantidade de produção relacionada à operação normal, de modo que
as mensagens de erro são mais aparentes. Esta opção é fornecida para a conveniência de
usuários que verificam grandes conjuntos de arquivos. A saída eliminada inclui o
nomes de arquivos de projeto e a mensagem informando que nenhum erro de sintaxe foi encontrado.
Ele também elimina algumas linhas em branco que normalmente são incluídas para maior clareza. (Algum
desta saída é ligada novamente pelo -Lista e -symtab opções.) Padrão = não.

Nota: a maneira de lembrar a diferença entre o -quieto e -apresentação é a de que
-quieto não suprime nenhuma informação relacionada ao aviso, enquanto -apresentação faz.

Veja também: -apresentação.

-referência
Especifica que uma tabela quem-chama-quem seja impressa. Esta tabela lista cada subprograma
seguido por uma lista das rotinas que ele chama. Esta opção é equivalente a
-calltree = referência. Padrão = não.

A lista de referência omite rotinas chamadas por módulos de biblioteca não usados. Assim
contém as mesmas informações que para o formato de árvore de chamada, ou seja, a hierarquia de
chamadas de subprograma, mas impresso de uma maneira diferente. Isso imprime um primeiro em largura
travessia da árvore de chamada, enquanto -calltree = tree imprime uma profundidade em primeiro lugar
Travessia.

Veja também: - árvore de chamada, -referência cruzada, -biblioteca, -ordenar, -symtab, -vcg.

-Recursos
Imprime a quantidade de recursos usados ​​por Ftnchek no processamento do programa. Isto
A listagem pode ser útil na análise do tamanho e da complexidade de um programa. Pode
também ajudam na escolha de tamanhos maiores para Ftnchektabelas internas de se eles também forem
pequeno para analisar um programa específico. Padrão = não.

Nesta lista, o termo `` tamanho do bloco '' é o tamanho dos blocos de memória
alocados para armazenar o item em questão, em unidades do tamanho de um item, não
necessariamente em bytes. Quando o espaço inicialmente alocado é preenchido, mais memória
é alocado em blocos desse tamanho. A seguir está uma explicação dos itens
impresso:

fonte linhas processado:
Número total de linhas de código, com totais separados para linhas de declaração e
linhas de comentários. As linhas de comentário incluem linhas com 'C' ou '*' na coluna 1 também
como linhas em branco e linhas contendo apenas um comentário embutido. Linhas de declaração
são todas as outras linhas, incluindo linhas que têm um comentário embutido após algum
código. As linhas de continuação são contadas como linhas separadas. As linhas em incluem
os arquivos são contados sempre que o arquivo é incluído.

Total executável afirmações:
Número de declarações no programa, diferente de especificação, dados, declaração-
função, instruções FORMAT, ENTRY e END.

Total número of módulos:
Um módulo é qualquer subprograma externo, incluindo o programa principal, sub-rotinas,
funções e blocos de unidades de dados. Esta contagem é de módulos definidos dentro do
fonte, não módulos referenciados. As funções de instrução não estão incluídas. UMA
o subprograma com vários pontos de entrada é contado apenas uma vez.

Total afirmação Labels definido
Número de rótulos anexados às instruções (geralmente chamados de números de instrução). O
a contagem total de rótulos para todo o programa é fornecida, bem como o máximo
número em qualquer subprograma único.

Max identificador nome caracteres:
Número de caracteres usados ​​para armazenar nomes de identificadores. Um identificador é um
variável, subprograma ou nome de bloco comum. Nomes locais são aqueles de local
variáveis ​​em um subprograma, enquanto os nomes globais se referem ao subprograma e
nomes de blocos, bem como nomes de argumentos fictícios e nomes de variáveis ​​comuns. Real
o texto do argumento (até 15 caracteres para cada argumento) também está incluído aqui.
O espaço usado para nomes locais não é recuperado ao final de cada módulo, então
esse número, como o espaço global, cresce até que todo o programa seja analisado.
Infelizmente, esta figura pode incluir algum texto armazenado mais de uma vez,
embora seja usada uma heurística que evitará duplicatas em muitos casos.

Max token texto caracteres:
Um token é a menor unidade sintática da linguagem FORTRAN acima do nível
de personagens individuais. Por exemplo, um token pode ser um nome de variável, um
constante numérica, uma string de texto entre aspas ou um caractere de pontuação. Símbolo
o texto é armazenado enquanto um módulo está sendo processado. Por razões técnicas,
tokens de um caractere não estão incluídos neste total. Itens que não são
representado na tabela de símbolos pode ser duplicado. O espaço para o texto do token é
recuperado no final de cada módulo, portanto, esta figura representa o máximo para
qualquer módulo.

Max local símbolos:
Este é o maior número de entradas na tabela de símbolos local para qualquer módulo.
As entradas da tabela de símbolos locais incluem todas as variáveis ​​e parâmetros, bloco comum
nomes, funções de instrução, subprogramas externos e funções intrínsecas
referenciado pelo módulo. Constantes literais não são armazenadas no símbolo local
tabela.

Max global símbolos:
Este é o número de entradas na tabela de símbolos global no final de
em processamento. As entradas da tabela de símbolos globais incluem subprograma externo e comum
nomes de blocos. Funções intrínsecas e funções de instrução não estão incluídas.

Max número of listas de tokens:
Uma lista de tokens é uma sequência de tokens que representam o argumento real ou fictício
lista de um subprograma, ou a lista de variáveis ​​em um bloco comum ou lista de nomes.
Portanto, este número representa a maior soma de COMMON, CALL, NAMELIST e
Instruções ENTRY e invocações de função para qualquer módulo. O espaço é
recuperado no final de cada módulo.

Max token lista / árvore espaço:
Este é o maior número de tokens em todas as listas de tokens e árvores de tokens de
qualquer módulo. Uma árvore de token é formada ao analisar uma expressão: cada
operando é uma folha da árvore e os operadores são os nós. Portanto, este
o número é uma medida da complexidade máxima de um módulo individual. Por
exemplo, um módulo com muitas expressões aritméticas longas terá um alto
número. Observe que, ao contrário do texto de token descrito acima, o número de tokens é
independente do comprimento dos nomes das variáveis ​​ou constantes literais no
expressões.

Sessão of subprograma invocações:
Esta é a soma de todos os módulos do número de instruções e funções CALL
invocações (exceto funções intrínsecas e funções de instrução).

Sessão of comum quadra declinações:
Esta é a soma de todos os módulos do número de declarações de bloco comuns.
Ou seja, cada declaração de um bloco em um módulo diferente é contada
separadamente. (O padrão permite várias declarações de um bloco dentro do
mesmo módulo; estes são contados como apenas uma declaração, uma vez que são
equivalente a uma única declaração longa.)

Sessão of ordem escurecer & param pontos:
Esta é a soma de todos os módulos do número de dimensões e parâmetros da matriz
strings de texto de definição salvas para uso pelo -madecls opção. O comprimento do
as sequências de texto não são contadas. Cada dimensão de uma matriz multidimensional é
contados separadamente.

Esses números obviamente não são os mesmos quando os arquivos do projeto são usados ​​no lugar de
o código-fonte original. Até mesmo os números para entidades globais podem ser diferentes,
uma vez que algumas informações redundantes são eliminadas nos arquivos do projeto.

-seis caracteres
Um dos objetivos do Ftnchek programa é para ajudar os usuários a escrever Fortran portátil
programas. Uma fonte potencial de não portabilidade é o uso de nomes de variáveis ​​que
têm mais de seis caracteres. Alguns compiladores simplesmente ignoram os caracteres extras.
Este comportamento pode levar a duas variáveis ​​diferentes sendo consideradas como
o mesmo. Por exemplo, as variáveis ​​chamadas AVERAGECOST e AVERAGEPRICE são iguais
nos primeiros seis caracteres. Se você deseja detectar esses possíveis conflitos, use
esta bandeira. Padrão = não.

Use o -f77 = nomes longos se você quiser listar todos os variáveis ​​maiores que seis
caracteres, não apenas os pares que são iguais nos seis primeiros.

Veja também: -f77, -portabilidade.

-ordenar
Especifica que uma lista classificada de todos os módulos usados ​​no programa seja impressa. Isto
lista está na ordem de `` pré-requisito '', ou seja, cada módulo é impresso apenas após todos os
os módulos a partir dos quais é chamado foram impressos. Isso também é chamado de
`` tipo topológico '' da árvore de chamada. Cada módulo é listado apenas uma vez. Rotinas
que não estão na árvore de chamadas do programa principal são omitidos. Se houver algum
ciclos no gráfico de chamadas (ilegal no Fortran padrão) eles serão detectados e
diagnosticado. Padrão = não.

Veja também: - árvore de chamada, -referência cruzada, -referência, -symtab, -vcg.

-source =Lista
Esta configuração controla certas opções sobre a forma do código-fonte do Fortran.
A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Há três
palavras-chave especiais: todos os para ativar todas as opções, Nenhum para desligar todos eles, e
ajudar para imprimir a lista de todas as palavras-chave com uma breve explicação de cada uma. Se
Lista é omitido, -source é equivalente a -source = all e -sem fonte é equivalente
para -source = none.

Para compatibilidade com versões anteriores de Ftnchek, uma forma numérica desta configuração
também é aceito: o Lista é substituído por um número que é a soma dos números
entre parênteses ao lado das palavras-chave na lista a seguir. (O fixado e sem
opções não têm valores numéricos.) As palavras-chave de aviso com seus significados são
como se segue:

fixado:
Interprete a fonte como forma fixa (com extensões suportadas, como
ponto de exclamação para comentários). As declarações devem estar nas colunas 7 a 72
(a menos que o -cols configuração foi usada para mudar isso), e os espaços em branco não são
significativo fora do contexto do personagem (mas alertado sobre o -bonita
opção). Este é o modo padrão, a menos que a extensão do arquivo de origem seja .f90
or .F90. esta opção não pode ser fornecida junto com -source = free.

sem: Interpretar a fonte como forma livre. As declarações podem estar em qualquer lugar nas colunas 1
a 132, os comentários só podem começar com um ponto de exclamação e os espaços em branco são
exigido em alguns lugares, como entre identificadores e palavras-chave. Isto é
o modo padrão se a extensão do arquivo de origem for .f90 or .F90. Esta opção
não pode ser dado junto com -source = fixed or -source = dec-tab

tab (1)
Aceite a fonte formatada por guia no estilo DEC. Uma linha começando com uma guia inicial
será tratado como uma nova linha de instrução, a menos que o caractere após a guia seja
um dígito diferente de zero, caso em que é tratado como uma linha de continuação. O
a próxima coluna após a tabulação ou marca de continuação é considerada como coluna 7. A
aviso será dado no caso em que a linha é uma continuação, se
-f77 = dec-tab está em vigor.

vms-incluir (2)
Aceite as instruções INCLUDE no estilo VMS. Estes seguem a sintaxe normal, mas
com os seguintes recursos adicionais: (1) a extensão do arquivo, se não for fornecida,
o padrão é o mesmo de uma extensão de arquivo de origem normal; e (2) a opção
/ LIST ou / NOLIST pode ser acrescentado ao nome do arquivo de inclusão, para controlar a lista
de seu conteúdo.

barra invertida unix (4)
Lidar com escapes de barra invertida no estilo UNIX em cadeias de caracteres. A fuga
sequência após a barra invertida será avaliada de acordo com o ANSI
padrão para strings em C: até três dígitos significam um valor octal, um x
significa o início de uma constante hexadecimal, qualquer uma das letras abfnrt
significam códigos de controle especiais e qualquer outro caractere (incluindo nova linha)
significa o próprio personagem. Quando esta opção de código-fonte está em vigor, um
aviso será dado se o -f77 = barra invertida configuração é especificada.

O comportamento padrão é tratar a barra invertida como qualquer outro normal
personagem, mas um aviso sobre a portabilidade será gerado se o
-portabilidade bandeira está definida. Devido ao fato de que alguns compiladores tratam o
barra invertida de uma forma não padronizada, é possível para conformidade com o padrão
os programas não são portáveis ​​se usarem o caractere de barra invertida em strings.

Como Ftnchek não faz muito com a string interpretada, raramente é
necessário usar esta opção. É necessário para evitar espúrias
avisos apenas se (a) o programa que está sendo verificado usar barra invertida para incorporar um
apóstrofo ou aspas em uma string em vez de usar o mecanismo padrão
de dobrar o delimitador; (b) a barra invertida é usada para escapar do fim de
linha para continuar uma string em várias linhas de origem; ou (c) um
A definição de PARÂMETRO usa uma função de string intrínseca, como LEN com tal
uma string como argumento, e esse valor é usado posteriormente para definir o array
dimensões, etc.

param-implícito-tipo (8)
Digitação implícita de um parâmetro pelo tipo de dados do valor atribuído. Algum
compiladores não padrão podem permitir que o tipo de dados do valor substitua o
Tipo padrão do Fortran 77 de um parâmetro que se baseia na primeira letra de
o nome do parâmetro. Esta opção se aplica apenas a instruções PARAMETER do
formulário padrão que tem parênteses. Um parâmetro que foi explicitamente
declarado em uma declaração de tipo antes da declaração PARAMETER não é afetado
por esta opção. Um aviso será dado sob o -f77 = param-implícito-tipo
or -portabilidade = param-implícito-tipo opção.

Observe que esta tipagem implícita é tratada como equivalente a um tipo explícito
declaração para o parâmetro. Portanto, se você usar
-makedcls = não declarado apenas para gerar declarações apenas de não declarado
variáveis, esses parâmetros irão não ser incluido.

tipo padrão dec-param (16)
Siga a regra do Fortran 77 para a digitação de dados dos parâmetros do estilo DEC Fortran.
Estes são declarados usando uma forma não padronizada da instrução PARAMETER que
falta parênteses. De acordo com DEC Fortran, os parâmetros definidos por este formulário
da declaração tem seu tipo de dados dado pelo tipo de dados do valor
atribuído. Use esta opção para dizer Ftnchek não seguir esta regra, mas
em vez disso, use a mesma regra das instruções PARAMETER padrão. Isto
opção não se aplica a declarações PARAMETER da forma padrão.

Por padrão, todas essas opções de código-fonte estão desativadas, exceto para o
vms-incluir opção, que está ativada por padrão na versão VMS ..

Veja também: -f77, -incluir, -portabilidade.

-style =Lista
Fornece avisos extremamente exigentes sobre programação obsoleta ou antiquada
construções. Esta opção é útil para os esforços de seguir uma programação moderna
estilo. (A maioria das coisas reclamadas sob esta opção são proibidas no
F subconjunto língua.) By padrão todos os avisos e guarante que os mesmos estão virou-se fora.

A Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Há três
palavras-chave especiais: todos os para ativar todas as opções, Nenhum para desligar todos eles, e
ajudar para imprimir a lista de todas as palavras-chave com uma breve explicação de cada uma. Se
Lista é omitido, De estilo é equivalente a -style = all e -sem estilo é equivalente a
-style = nenhum. As palavras-chave de aviso com seus significados são as seguintes:

bloquear se:
Reclame sobre a declaração aritmética do IF. Aceite o bloco IF ou IF lógico (que
controla uma única instrução).

nome-construção:
Reclame sobre construções de bloco sem nome: IF, DO e SELECT CASE. Observe que
se um nome de construção estiver presente na declaração de abertura de uma construção, então
é necessário estar presente em todas as outras declarações do componente (ELSE, END IF,
etc.) da construção. Nesse caso, falta um nome de construção naqueles
instruções geram um erro de sintaxe, independentemente desta opção. O objetivo
desta opção é avisar se a construção carece completamente do opcional
nome.

distinto:
Reclame se dois loops DO compartilham uma instrução de terminador comum.

construir:
Reclame se o terminador de um loop DO for qualquer coisa diferente de um END DO ou
CONTINUE declaração. Este é o requisito para que o loop atenda
a definição do Fortran 90 de uma construção do.

fazer-e-fazer:
Reclame se o terminador de um loop DO for qualquer coisa diferente de um END DO
declaração. (Esta opção substitui o construir opção, ser igual
mais estrito.)

nome final:
Reclame sobre a ausência do nome do subprograma no END estruturado
afirmações.

formato-stmt:
Reclame da presença de declarações do FORMAT. Apenas as instruções FORMAT
eles próprios são sinalizados, não as referências a eles nas listas de E / S.

Goto: Reclamar sobre a presença de GOTO incondicional, calculado ou atribuído
afirmações. Também reclame sobre devoluções alternativas (mas não sobre rótulos como
argumentos do subprograma).

rotulado:
Reclame sobre a presença de rótulos (números) em outras declarações que não
Instruções FORMAT. (Uma vez que as declarações FORMAT são indiscutivelmente convenientes e não
prontamente abusadas, as reclamações sobre eles são controladas por
formato-stmt palavra-chave.)

programa-stmt:
Reclame sobre a ausência de uma declaração do PROGRAMA no cabeçalho do principal
.

extremidade estruturada:
Reclame sobre o uso de uma declaração END simples para encerrar um subprograma, em vez
do que uma instrução END estruturada (END PROGRAM, END SUBROUTINE, END FUNCTION,
ou END BLOCK DATA).

Veja também: -f77, -f90, -f95, -bonita, -portabilidade.

-symtab
Uma tabela de símbolos será impressa para cada módulo, listando todos os identificadores
mencionado no módulo. Esta tabela dá o nome de cada variável, seu tipo de dados,
e o número de dimensões para matrizes. Um asterisco (*) indica que o
variável foi digitada implicitamente, em vez de ser nomeada em um tipo explícito
declaração de declaração. A tabela também lista todos os subprogramas invocados pelo módulo,
todos os blocos COMUNS declarados, etc. Padrão = não.

Além disso, para cada módulo, uma tabela de etiquetas será impressa. A tabela lista cada rótulo
definido no módulo; a linha na qual o referido rótulo de declaração é definido; e a
tipo de instrução (executável, formato ou especificação). Os rótulos estão listados em
ordem sequencial.

Também é impressa uma tabela que descreve as unidades de E / S usadas pelo módulo, juntamente com
informações sobre como eles são usados: quais operações são realizadas, se o
o acesso é sequencial ou direto e se a E / S está formatada ou não.

Veja também: - árvore de chamada, -referência cruzada, -Lista, -referência, -ordenar, -vcg.

-truncamento =Lista
Avise sobre possíveis erros de truncamento (ou arredondamento). A maioria deles está relacionada a
aritmética inteira. Por padrão, todos os avisos estão ativados.

Esta configuração fornece controle detalhado sobre os avisos sobre possível truncamento
erros. O Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Já que todos
avisos estão ativados por padrão, incluem uma palavra-chave prefixada por no- desligar um
aviso particular. Existem três palavras-chave especiais: todos os para ligar todos os
avisos sobre truncamento, Nenhum para desligar todos eles, e ajudar para imprimir a lista de
todas as palavras-chave com uma breve explicação de cada uma. Se Lista é omitido, -truncamento
é equivalente a -truncation = all e -sem truncamento é equivalente a
-truncation = none. As palavras-chave de aviso com seus significados são as seguintes:

int-div-expoent:
uso do resultado da divisão inteira como um expoente. Isso sugere que um
o quociente real é pretendido. Um exemplo seria escrever X ** (1/3) para avaliar
a raiz cúbica de X. A expressão correta é X ** (1./3.).

int-div-real:
Conversão de uma expressão envolvendo uma divisão inteira em real. Isto
sugere que se pretende um quociente real.

int-div-zero:
divisão em uma expressão de constante inteira que produz um resultado zero.

poder int-neg:
exponenciação de um inteiro por um inteiro negativo (que resulta em zero, a menos
a base inteira é 1 em magnitude). Isso sugere que uma base real é
pretendido.

promoção:
conversão automática de uma quantidade de precisão inferior para uma de maior
precisão. A perda de precisão para variáveis ​​reais neste processo é
comparável ao rebaixamento correspondente. Nenhum aviso é dado para promoção
de quantidades inteiras para reais, visto que isso normalmente é exato.

índice real:
uso de um índice DO não inteiro em um loop com limites inteiros. Um inteiro DO
índice com limites reais é sempre avisado, independentemente desta configuração.

subscrito real:
uso de um subscrito de array não inteiro.

algarismos significativos:
especificação excessiva de uma única constante de precisão. Isso pode indicar que um duplo
constante de precisão foi pretendida.

rebaixamento de tamanho:
conversão automática de uma quantidade de maior precisão para uma de menor precisão
do mesmo tipo. Este aviso ocorre apenas quando um tamanho explícito é usado em
declarar o tipo de um ou de ambos os operandos em uma atribuição. Por exemplo, um
o aviso será emitido quando uma variável REAL * 8 for atribuída a uma variável REAL,
se o tamanho de palavra padrão de 4 estiver em vigor. Um aviso também é emitido se um
inteiro longo é atribuído a um mais curto, por exemplo, se um INTEGER
expression é atribuída a uma variável INTEGER * 2. Há uma exceção para
neste último caso, ou seja, se o lado direito da atribuição é um pequeno
constante literal (menos de 128). rebaixamento de tipo: conversão automática de um
quantidade de maior precisão para uma de menor precisão de tipo diferente. Isto
aviso inclui a conversão de quantidades reais em inteiros, precisão dupla
para precisão real simples, e atribuição de uma cadeia de caracteres mais longa a um
mais curto.

Os avisos sobre promoção e rebaixamento também se aplicam a constantes complexas,
considerando a precisão como sendo da parte real ou imaginária. Avisos sobre
promoções e rebaixamentos são dados apenas quando a conversão é feita automaticamente,
por exemplo, em expressões de precisão mista ou em uma instrução de atribuição. Se intrínseco
funções como INT são usadas para realizar a conversão, nenhum aviso é dado.

Veja também: -portabilidade, -tamanho da palavra.

-usage =Lista
Avisar sobre variáveis ​​não utilizadas ou possíveis não inicializadas, blocos comuns não utilizados,
rótulos de instruções indefinidas ou não utilizadas e subprogramas não utilizados ou indefinidos. Por
padrão, todos os avisos estão ativados.

Esta configuração fornece controle detalhado sobre os avisos sobre o possível uso
erros. O Lista consiste em palavras-chave separadas por vírgulas ou dois pontos. Já que todos
avisos estão ativados por padrão, incluem uma palavra-chave prefixada por no- desligar um
aviso particular. Existem três palavras-chave especiais: todos os para ligar todos os
avisos sobre o uso, Nenhum para desligar todos eles, e ajudar para imprimir a lista de todos
as palavras-chave com uma breve explicação de cada uma. Se Lista é omitido, -uso is
equivalente a -usage = all e -linguiça é equivalente a -usage = none. Estes
avisos cobrem quatro categorias principais de objetos: argumentos fictícios de subprograma, comuns
blocos e variáveis, subprogramas e funções e variáveis ​​locais. Avisos
incluem itens indefinidos, itens múltiplos definidos, itens não utilizados, etc. O aviso
palavras-chave com seus significados são os seguintes:

alias-arg:
um argumento dummy escalar é na verdade igual a outro e é (ou pode ser)
modificado. O padrão Fortran 77 (seção 15.9.3.6) proíbe a modificação de um
argumento que é apelidado de outro.

arg-array-alias:
um argumento fictício que é um array ou elemento de array está no mesmo array que
outro e é modificado. Esta bandeira é semelhante a alias-arg mas fornece
controle separado sobre os argumentos da matriz. É mais difícil dizer se o aliasing é
ocorrendo no caso de matrizes, então se Ftnchek dá muitos avisos falsos,
este sinalizador permite que aqueles relacionados ao array sejam desligados sem suprimir
os avisos para escalares.

arg-common-alias:
um argumento dummy escalar é o mesmo que uma variável comum no subprograma,
e qualquer um é modificado. Isso também é proibido pelo padrão Fortran 77.
Se a verificação comum não for exata (consulte o -comum configuração), é mais difícil
diga se o aliasing está ocorrendo, então o aviso é dado se a variável for
em qualquer lugar em um bloco comum que é declarado pelo subprograma.

arg-common-array-alias:
um argumento fictício que é um array ou elemento de array está no mesmo array que um
variável comum, e qualquer um é modificado. Se a verificação comum não for exata,
a variável pode estar em qualquer lugar em um bloco comum que é declarado pelo
subprograma.

arg-const-modificado:
um subprograma modifica um argumento que é uma constante ou uma expressão. Tal
uma ação pode causar um comportamento anômalo do programa.

argumento não usado:
um argumento fictício é declarado, mas nunca usado. Isso é semelhante ao
var-não usado palavra-chave descrita abaixo, mas se aplica apenas a argumentos.

com-block-não utilizado:
um bloco comum é declarado, mas nenhuma das variáveis ​​nele são usadas por qualquer
subprograma. Este aviso é suprimido se a configuração de rigidez comum for
0.

com-bloco-volátil:
um bloco comum pode perder a definição de seu conteúdo se blocos comuns forem
volátil. Esta opção só tem efeito se o -common = volátil bandeira está em
efeito. Veja a discussão do -comum configuração acima.

com-var-set-não utilizado:
uma variável comum recebe um valor, mas seu valor não é usado por nenhum
subprograma. Este aviso é suprimido se a configuração de rigidez comum for
0.

com-var-não inicializado:
o valor de uma variável comum é usado em algum subprograma, mas não é definido
qualquer lugar. Infelizmente, Ftnchek não faz uma análise completa o suficiente de
a sequência de chamada para saber quais rotinas são chamadas antes das outras. assim
avisos sobre este tipo de erro só serão dados nos casos em que um
variável é usada em alguma rotina, mas não é definida em nenhuma outra rotina. Verificando
de variáveis ​​COMUNS individuais é feito apenas se o -comum configuração é 3
(variável por concordância de variável). Este aviso é suprimido se o comum
configuração de rigidez é 0.

com-var-não utilizado:
uma variável comum é declarada, mas não é usada por nenhum subprograma. Este aviso
é suprimido se a configuração de rigidez comum for 0.

do-index-modificado:
uma variável que é o índice de um loop DO é modificada por alguma instrução
dentro do intervalo do loop. O padrão permite uma variável DO ativa para
ser modificado apenas pelo mecanismo de incrementação da instrução DO.

ext-multiplicação definida:
um externo (uma sub-rotina ou função) é definido mais de uma vez. Definição
de um meio externo fornecendo o corpo de seu código-fonte.

ext-declarado apenas:
um nome é declarado em uma instrução EXTERNAL em algum módulo, mas não é
definido ou usado em qualquer lugar.

ex-indefinido:
um externo é usado (invocado), mas não definido em qualquer lugar. Esta opção é
equivalente ao -externo bandeira. Se o subprograma for invocado mais de
uma vez, essas invocações ainda serão verificadas quanto à consistência.

ext-não utilizado:
um externo é definido (seu corpo de subprograma está presente), mas não é usado.
Um subprograma é considerado não utilizado, mesmo se for invocado por algum outro
subprograma, se não puder ser chamado de qualquer thread de execução começando com
o programa principal. A concordância dos argumentos do subprograma com seus
as invocações ainda são verificadas, mesmo se este aviso estiver desativado. Se houver
nenhum programa principal, então este aviso é emitido apenas se o subprograma não for
invocado em qualquer lugar. Este aviso é suprimido no modo de biblioteca, mas a biblioteca
modo tem o efeito adicional de suprimir a verificação de argumentos para não usados
rotinas.

rótulo-indefinido:
uma declaração se refere a um rótulo que não foi definido.

rótulo-não utilizado:
um rótulo de instrução é definido, mas nunca referido.

var-set-não utilizado:
uma variável local recebe um valor, mas esse valor não é usado.

var-não inicializado:
o valor de uma variável local pode ser usado antes de ser atribuído. Às vezes
Ftnchek comete um erro nos avisos sobre o uso de variáveis ​​locais. Geralmente
erra por avisar onde não existe problema, mas raramente
casos, ele pode deixar de avisar onde o problema existe. Veja a seção sobre
Bugs para exemplos. Se as variáveis ​​são equivalentes, a regra usada por Ftnchek
é que uma referência a qualquer variável implica a mesma referência a todos
variáveis ​​às quais é equivalente. Para matrizes, a regra é que uma referência a
qualquer elemento da matriz é tratado como uma referência a todos os elementos da matriz.

var-não usado:
uma variável local é declarada (por exemplo, em uma declaração de tipo), mas não é
usado no módulo. Não se aplica a argumentos fictícios: avisos sobre eles
são controlados pela palavra-chave argumento não usado descrito acima.

Nota: nas versões de Ftnchek antes de 2.10, o -uso bandeira recebeu um argumento numérico
em vez de uma lista de opções. Para o bem de usuários que podem ter escrito scripts
invocando Ftnchek desta forma, a forma numérica ainda é aceita. O numérico
configuração é composta por três dígitos. O primeiro dígito (casa das centenas) controla
avisos sobre subprogramas (funções e sub-rotinas), o segundo dígito (dezenas
local) avisos sobre blocos comuns e variáveis ​​comuns, e o terceiro dígito
(um lugar) avisos sobre variáveis ​​locais. Cada dígito controla os avisos
de acordo com a convenção que um 1 significa avisar sobre itens e variáveis ​​indefinidas
que são usados ​​antes de definir, um 2 significa avisar sobre itens que não são usados ​​e um 3 significa
avisar sobre os dois tipos. Esses números agora são convertidos para os valores apropriados
para as palavras-chave listadas acima, exceto para com-bloco-volátil, que não é afetado
pelo argumento numérico.

Veja também: -comum, -declarar, -externo, -biblioteca.

-vcg
Produza o gráfico de chamadas na forma de uma descrição de gráfico VCG. Esta descrição é
escrito em um arquivo separado, com o mesmo radical do arquivo que contém o principal
programa e sufixo .vcg. Este arquivo pode ser fornecido diretamente para xvcg(1L) para
visualize o gráfico de chamadas. (Se a entrada for da entrada padrão, o gráfico
a descrição é enviada para a saída padrão.) Esta opção é equivalente a
-calltree = vcg. Padrão = não.

A descrição VCG conforme criada é mais complexa do que o necessário. VCG permite gráficos
e subgráficos aninhados: cada sub-rotina é criada como um subgráfico aninhado dentro de seu
rotinas de chamada. Isso permite que você exiba subgráficos interativamente ou resuma
Eles.

A -vcg opção para Ftnchek foi escrito pelo Dr. Philip Rubini de Cranfield
Universidade, Reino Unido.

xvcg é uma ferramenta de visualização de gráfico que roda no sistema X windows. Isto é
disponível gratuitamente em ftp.cs.uni-sb.de. Foi escrito por G. Sander da
Universidade de Saarland, Alemanha.

Veja também: - árvore de chamada, -referência cruzada, -referência, -ordenar.

-versão
Esta opção causa Ftnchek para imprimir uma linha com o número da versão, data de lançamento,
e nível de patch do programa. Se nenhum arquivo for fornecido, ele será encerrado. Se arquivos
são fornecidos, o efeito desta opção é incluir o nível do patch (normalmente
omitido) na informação da versão impressa no início do processamento. Padrão =
n.

Veja também: -Socorro.

-volátil
Suponha que os blocos COMUM são voláteis. Padrão = não.

Esta bandeira foi substituída por -common = volátil, e não deve mais ser usado. Pode
ser eliminado em uma versão futura de Ftnchek.

Veja também: -comum, -uso.

-wordsize =Números
Especifica o tamanho padrão da palavra a ser Números bytes. Este é o tamanho do lógico e
variáveis ​​numéricas de precisão única que não recebem precisões explícitas.
(Precisões explícitas para variáveis ​​sem caracteres são uma extensão do Fortran 77
Padrão, e são fornecidos por declarações de tipo como REAL * 8 X.) Dupla precisão
e as variáveis ​​complexas terão o dobro desse valor, e as variáveis ​​complexas duplas quatro
vezes. Constantes de precisão quádrupla e resultados de função intrínseca serão quatro vezes
este valor. Observe que as variáveis ​​declaradas como REAL * 16 serão consideradas como quad
precisão apenas se o tamanho da palavra for 4 bytes. Padrão = ligado = 4 bytes.

O valor do tamanho da palavra não importa para a verificação de programas em conformidade com o padrão que
não declare precisões explícitas para variáveis ​​sem caracteres ou armazene Hollerith
dados em variáveis. Esta configuração também não afeta o tamanho padrão do caractere
variáveis, que é sempre 1 byte. Constantes de Hollerith também são assumidas para ocupar
1 byte por caractere.

O tamanho da palavra é usado para determinar se ocorre truncamento na atribuição
declarações, e para capturar incompatibilidades de precisão nas listas de argumentos do subprograma e
listas de bloqueio comuns. Os avisos exatos emitidos dependerão do status
de outras bandeiras. Sob ambos os -portabilidade = tamanho misto e os votos de -nowordsize bandeira,
qualquer combinação de objetos de precisão explícitos e padrão (expressões de caracteres não
incluído) é avisado sobre. Isso se aplica a expressões aritméticas contendo ambos
tipos de objetos e para argumentos de subprogramas e variáveis ​​COMUNS. Sob controle
da -truncation = rebaixamento e promoção opções, um aviso é dado para
atribuição de uma expressão a uma variável mais curta do mesmo tipo, ou para
promoção de um valor de precisão inferior para uma precisão superior em uma aritmética
expressão ou uma declaração de atribuição.

Dando um tamanho de palavra de 0, ou equivalente, usando -nowordsize significa que nenhum padrão
valor será assumido. Isso é equivalente a especificar -portabilidade = tamanho misto.
Use-o para encontrar casos de mistura de precisão padrão e explícita, por exemplo, para sinalizar
locais onde REAL * 8 é tratado como equivalente a DOUBLE PRECISION.

Veja também: -tamanho do ponteiro, -portabilidade, -truncamento.

-wrap =col
Controla o agrupamento de mensagens de erro. Longas mensagens de erro que passariam
a coluna especificada será dividida em linhas separadas entre as palavras do
mensagem para melhor legibilidade. Se desligado com -nada, cada erro separado
mensagem será impressa em uma linha, deixando para o display envolver o
mensagem ou truncá-la. Padrão = ligado = 79.

MUDANDO A PADRÕES


Ftnchek inclui dois mecanismos para alterar os valores padrão de todas as opções: por
definindo variáveis ​​de ambiente ou criando um arquivo de preferências. Quando Ftnchek começa,
ele procura em seu ambiente por quaisquer variáveis ​​cujos nomes são compostos prefixando o
string FTNCHEK_ na versão em maiúsculas do nome da opção. Se tal variável for
encontrado, seu valor é usado para especificar o padrão para a opção ou configuração correspondente.
No caso de configurações (por exemplo, o -comum definição de rigidez) o valor do
a variável de ambiente é lida como o valor de configuração padrão. No caso de interruptores, o
a opção padrão será considerada verdadeira ou sim, a menos que a variável de ambiente tenha o valor
0 ou NÃO.

Observe que o nome da variável de ambiente deve ser construído com a opção de comprimento total
nome, que deve estar em maiúsculas. Por exemplo, para fazer Ftnchek imprimir uma lista de fontes por
padrão, defina a variável de ambiente FTNCHEK_LIST para 1 ou YES ou qualquer coisa diferente de 0 ou
NÃO. Os nomes FTNCHEK_LIS (não o nome completo da opção) ou ftnchek_list (minúsculas) seriam
não ser reconhecido.

Aqui estão alguns exemplos de como definir variáveis ​​de ambiente em vários sistemas. Por
simplicidade, todos os exemplos definem o padrão -Lista mude para SIM.

1. UNIX, shell Bourne: $ FTNCHEK_LIST = YES
$ exportação FTNCHEK_LIST

2. UNIX, C shell:% setenv FTNCHEK_LIST YES

3. VAX / VMS: $ DEFINE FTNCHEK_LIST SIM

4. MSDOS: $ SET FTNCHEK_LIST = YES

Depois de processar quaisquer variáveis ​​de ambiente, ftnchek procura um arquivo de preferências
contendo opções e configurações. Ele pesquisará na seguinte ordem, usando apenas o
primeiro arquivo encontrado: (1) .ftnchekrc no diretório atual, (2) ftnchek.ini na corrente
diretório, (3) .ftnchekrc no diretório inicial do usuário, (4) ftnchek.ini em casa
diretório. Se tal arquivo for encontrado, as opções definidas nele são usadas como padrão em
lugar dos padrões integrados e substituindo quaisquer padrões definidos no ambiente.

Cada opção ou configuração no arquivo de preferências deve estar em uma linha separada. Eles são dados
da mesma forma que na linha de comando, exceto sem o traço inicial. As preferências
o arquivo pode conter linhas em branco e comentários. Os comentários são introduzidos em qualquer ponto de uma linha
por um caractere de espaço (em branco ou tabulação) ou o caractere '#', e são encerrados no final de
a linha.

As opções de linha de comando substituem os padrões definidos no ambiente ou nas preferências
arquivo, da mesma forma que substituem os padrões integrados.

USANDO PROJETO ARQUIVOS


Esta seção contém informações detalhadas sobre como usar arquivos de projeto de forma mais eficaz,
e como evitar algumas armadilhas.

Pode-se dividir os cheques Ftnchek faz em duas categorias, local e global. Local
a verificação é restrita a uma única rotina e captura coisas como não inicializadas
variáveis, perda não intencional de precisão em expressões aritméticas, etc.
a verificação pode ser feita em cada subprograma independentemente. Além disso, a verificação local de um
o subprograma não precisa ser repetido quando algum outro subprograma é alterado. Global
a verificação captura coisas como chamar uma sub-rotina com os tipos de argumento errados, ou
discordando das declarações de bloqueio comuns. Requer olhar para todo o conjunto de
subprogramas interagindo uns com os outros.

O objetivo dos arquivos de projeto é permitir as etapas de verificação local e global para
ser separado. Supondo que cada subprograma esteja em seu próprio arquivo de origem, você pode executar
Ftnchek uma vez em cada um para fazer a verificação local enquanto suprime a verificação global. Então
Ftnchek pode ser executado uma vez em todos os arquivos do projeto juntos para fazer a verificação global. O
o makefile de amostra abaixo mostra como automatizar essa tarefa. O alvo `` .f.prj '' atualiza um
arquivo de projeto para um arquivo específico sempre que o arquivo de origem for alterado. A informação
necessário para a verificação global é salvo no arquivo de projeto. O alvo `` check '' faz o
verificação global combinada. Normalmente `` make check '' repetiria o `` ftnchek -projeto ''
avance apenas nos arquivos de origem alterados e, em seguida, faça a verificação global. Este é obviamente um grande
vantagem para programas grandes, quando muitos subprogramas raramente ou nunca mudam.

É melhor, ao usar arquivos de projeto, colocar cada subprograma em um arquivo de origem separado.
Se cada arquivo de origem pode conter mais de um subprograma, isso complica a definição
de verificação `` local '' e `` global '' porque há alguma verificação entre os módulos que é
contido em um arquivo. Ftnchek tenta fazer a coisa certa neste caso, mas há
algumas complicações (descritas abaixo) devido ao trade-off entre evitar refazer
verifica e preserva informações sobre a estrutura do programa.

Normalmente, para fazer o mínimo de verificação, os arquivos do projeto devem ser criados com
que o -biblioteca sinalizador em vigor e corte ativado. Neste modo, as informações salvas
no arquivo do projeto consiste em todas as declarações de subprograma, todas as invocações de subprograma
não resolvido por declarações no mesmo arquivo, e uma instância de cada bloco COMUM
declaração. Esta é a quantidade mínima de informações necessária para verificar a concordância entre
arquivos.

Se o arquivo de origem contém mais de uma rotina, existem alguns problemas possíveis que
pode surgir da criação do arquivo de projeto no modo de biblioteca, porque a hierarquia de chamada
entre as rotinas definidas no arquivo é perdida. Além disso, se as rotinas no arquivo tornam
uso de blocos COMUNS que são compartilhados com rotinas em outros arquivos, não haverá
informações suficientes salvas para a verificação correta do status definido e usado dos blocos COMUNS
e variáveis ​​COMUNS de acordo com o -uso contexto. Portanto, se você planeja usar
arquivos de projeto quando -uso a verificação está ativada (que é a situação padrão), e se
várias rotinas em um arquivo de projeto compartilham blocos COMUNS com rotinas em outros arquivos,
os arquivos do projeto devem ser criados com o -biblioteca bandeira desligada. Neste modo,
Ftnchek salva, além das informações listadas acima, uma invocação de cada subprograma por
qualquer outro subprograma no mesmo arquivo e todas as declarações de bloco COMUM. Isso significa que
o arquivo do projeto será maior do que o necessário, e quando for lido, Ftnchek pode
repita algumas verificações entre os módulos já feitas quando o arquivo de projeto foi criado. Se
cada arquivo de projeto contém apenas um módulo, não há perda de informações na criação
os arquivos do projeto no modo de biblioteca.

Devido à possível perda de informações decorrente da criação de um arquivo de projeto com o
-biblioteca sinalizador em vigor, sempre que o arquivo de projeto for lido posteriormente, ele será tratado
como um arquivo de biblioteca, independentemente da configuração atual do -biblioteca bandeira. No outro
Por outro lado, um arquivo de projeto criado com o modo de biblioteca desativado pode ser lido posteriormente em qualquer
modo.

A discussão anterior assume que as opções de corte do -projeto configuração são
ligado quando o arquivo de projeto é criado. Esta é a situação normal. O sem corte
opções do -projeto configuração são fornecidos no caso de alguém querer usar os arquivos do projeto
para fins diferentes de verificar o programa com Ftnchek. Por exemplo, pode-se escrever
um script Perl para analisar os arquivos do projeto para obter informações sobre como os diferentes
subprogramas são chamados. Você não deve usar o sem corte opções para lidar com as questões de
perda de informações discutida acima, uma vez que causam mais informações do que o necessário para ser
armazenado. Isso torna os arquivos do projeto maiores e faz com que Ftnchek para fazer mais trabalho depois, quando
ele os lê para verificar seu programa completo. Normalmente, você deve usar o -biblioteca
opção de controlar quanta informação armazenar para uso posterior por Ftnchek em verificar o seu
.

Aqui está um exemplo de como usar o UNIX fazer utilitário para criar automaticamente um novo
arquivo de projeto cada vez que o arquivo de origem correspondente é alterado, e para verificar o conjunto de
arquivos para consistência. Adicione essas linhas ao seu makefile. O exemplo assume que um
macro OBJS foi definido que lista todos os nomes de arquivos objeto a serem vinculados
juntos para formar o programa executável completo. (Neste makefile, as linhas indentadas
cada um deve começar com uma guia, não em branco.) Se algum arquivo de origem contiver várias rotinas
que compartilham blocos comuns entre si, a opção no-com - \ * deve ser removida
de NOGLOBAL e / ou elimine o sinalizador -library.
# diga ao make o que é um sufixo de arquivo de projeto
.SUFIXOS: .prj

# essas opções suprimem verificações globais.
NOGLOBAL = -usage = no-ext-undefined, no-com - \ *

# diga ao make como criar um arquivo .prj a partir de um arquivo .f
.f.prj:
ftnchek -project $ (NOGLOBAL) -library $

# configurar macro PRJS contendo nomes de arquivos de projeto
PRJS = $ (OBJS: .o = .prj)

# "make check" irá verificar tudo o que foi alterado.
cheque: $ (PRJS)
ftnchek $ (PRJS)

Quando um programa usa muitas rotinas definidas em um grande número de arquivos de origem diferentes em
diretórios diferentes, pode ser complicado especificar todos os arquivos de projeto diferentes
necessário para verificar o programa corretamente. Para lidar com esses casos, Ftnchek permite projeto
arquivos a serem concatenados em um único arquivo grande. Este único arquivo pode então ser dado a
Ftnchek fornecer as informações para verificar o uso de qualquer uma ou todas as rotinas
definido nos arquivos de projeto combinados. Ao usar um arquivo de projeto de `` biblioteca '', você
talvez queira Ftnchekrelatórios de erros para documentar precisamente o nome do arquivo onde o
função específica é definida. Se os vários arquivos de origem estiverem em vários diretórios, um
relatório de erro que fornece apenas o nome do arquivo pode ser ambíguo e, em vez disso, deve incluir o
caminho para o arquivo. A solução é criar cada um dos arquivos de projeto individuais por
fornecendo o caminho completo para o arquivo de origem. Então, este caminho completo aparecerá no
relatórios de erros. Por exemplo, suponha que todos os arquivos de origem do subprograma da biblioteca sejam
em subdiretórios de um diretório denominado / util / lib. Então, os arquivos de projeto individuais podem
primeiro ser criado por um comando como
find / util / lib -name '* .f' -exec ftnchek -project '{}' ';'
(Possivelmente, outras opções seriam fornecidas para Ftnchek como discutido acima. Além disso, esta etapa
poderia ser tratada em vez de uma regra de makefile revisada que forneceria a fonte completa
caminho do arquivo em vez de apenas o nome local ao invocar Ftnchek.) Em seguida, concatene todos os
esses arquivos de projeto manualmente.
find / util / lib -name '* .prj' -exec cat '{}' ';' > ourlib.prj
Em seguida, um arquivo-fonte do programa pode ser verificado usando o comando
ftnchek prog.f ... -lib nossalib.prj
e uma mensagem de erro relacionada a qualquer rotina de biblioteca incluirá o caminho completo para o
arquivo fonte da rotina.

No momento, não há nenhum utilitário de arquivo como ar para gerenciar o conteúdo de um concatenado
arquivo de projeto como o da ilustração acima. Se forem feitas alterações em um dos
rotinas de biblioteca, a única maneira de atualizar o arquivo de projeto combinado é concatenar todos
os arquivos de projeto individuais mais uma vez. Esse utilitário seria muito fácil de escrever.
Alguém deveria fazer isso e contribuir com o Ftnchek esforço.

AN EXEMPLO


O seguinte programa Fortran simples ilustra as mensagens fornecidas por Ftnchek. O
programa se destina a aceitar uma série de pontuações de teste e, em seguida, calcular a média para o
série.

C AUTORES: MIKE MYERS E LUCIA SPAGNUOLO
C DATA: 8 DE MAIO DE 1989

Variáveis ​​C:
C SCORE -> uma série de pontuações de teste
C SUM -> soma das pontuações do teste
C COUNT -> contador de pontuações lidas
CI -> contador de loop

COMPAV DE FUNÇÕES REAIS (PONTUAÇÃO, CONTAGEM)
INTEGER SUM, COUNT, J,PONTO(5)

DO 30 I = 1, CONTAGEM
SOMA = SOMA + PONTUAÇÃO (I)
30 CONTINUAR
COMPAV = SUM / COUNT
END

AVÊNIO DO PROGRAMA
C
C PROGRAMA PRINCIPAL
C
C AUTOR: LOIS BIGBIE
C DATA: 15 DE MAIO DE 1990
C
Variáveis ​​C:
C MAXNOS -> número máximo de valores de entrada
C NUMS -> uma matriz de números
C COUNT -> número exato de valores de entrada
C AVG -> média retornada pela COMPAV
CI -> contador de loop
C

PARÂMETRO (MAXNOS = 5)
INTEIRO I, COUNT
REAL NUMS (MAXNOS), AVG
CONTAGEM = 0
DO 80 I = 1, MAXNOS
LEIA (5, *, END = 100) NUMS (I)
CONTAGEM = CONTAGEM + 1
80 CONTINUAR
100 AVG = COMPAV (NUMS, COUNT)
END

O compilador não fornece mensagens de erro quando este programa é compilado. No entanto, aqui está o que
acontece quando é executado:

$ corrida média
70
90
85

$

O que aconteceu? Por que o programa não fez nada? A seguir está o resultado de
Ftnchek quando é usado para depurar o programa acima:

$ ftnchek -list -symtab média

FTNCHEK Versão 3.3 novembro de 2004

Média do arquivo.f:

1 C AUTORES: MIKE MYERS E LUCIA SPAGNUOLO
2 C DATA: 8 DE MAIO DE 1989
3
4 Variáveis ​​C:
5 C SCORE -> uma série de pontuações de teste
6 C SUM -> soma das pontuações do teste
7 C COUNT -> contador de pontuações lidas
8 CI -> contador de loop
9
10 COMPAV DE FUNÇÕES REAIS (PONTUAÇÃO, CONTAGEM)
11 INTEGER SUM, COUNT, J,PONTO(5)
12
13 DO 30 I = 1, CONTAGEM
14 SOMA = SOMA + PONTUAÇÃO (I)
15 30 CONTINUAR
16 COMPAV = SUM / COUNT
^
Aviso próximo à linha 16 col 20: quociente inteiro expr SUM / COUNT convertido para
reais
17 END

Módulo COMPAV: func: real

Variáveis:

Nome Tipo Dims Nome Tipo Dims Nome Tipo Dims Nome Tipo Dims
COMPAV real COUNT intg I intg * J intg
PONTUAÇÃO intg 1 SUM intg

* Variável não declarada. O tipo foi definido implicitamente.

Aviso no módulo COMPAV: Variáveis ​​declaradas mas nunca referenciadas:
J declarou na linha 11

Aviso no módulo COMPAV: Variáveis ​​podem ser usadas antes de serem definidas:
SUM usado na linha 14
SUM definido na linha 14

Rótulos de declaração definidos:

Tipo de linha de rótulo
<30> 15 executivos

18
19
20 AVÊNIO DO PROGRAMA
21 C
22 C PROGRAMA PRINCIPAL
23 C
24 C AUTOR: LOIS BIGBIE
25 C DATA: 15 DE MAIO DE 1990
26 C
27 Variáveis ​​C:
28 C MAXNOS -> número máximo de valores de entrada
29 C NUMS -> uma matriz de números
30 C COUNT -> número exato de valores de entrada
31 C AVG -> média retornada pela COMPAV
32 CI -> contador de loop
33 C
34
35 PARÂMETRO (MAXNOS = 5)
36 INTEIRO I, CONTAGEM
37 NUMS REAIS (MAXNOS), AVG
38 CONTAGEM = 0
39 DO 80 I = 1, MAXNOS
40 LEITURA (5, *, END = 100) NUMS (I)
41 CONTAGEM = CONTAGEM + 1
42 80 CONTINUAR
43 100 AVG = COMPAV (NUMS, COUNT)
44 END

Módulo AVENUM: prog

Subprogramas externos referenciados:

COMPAV: real *

Variáveis:

Nome Tipo Dims Nome Tipo Dims Nome Tipo Dims Nome Tipo Dims
AVG real COUNT intg I intg MAXNOS intg *
NUMS reais 1

* Variável não declarada. O tipo foi definido implicitamente.

Aviso no módulo AVENUM: Variáveis ​​definidas, mas nunca usadas:
AVG definido na linha 43

Operações de I / O:

Unidade de ID da Unidade No. Linha de Operação do Formulário de Acesso
5 SEQ FMTD LEIA 40

Rótulos de declaração definidos:

Rótulo Linha StmtType Rótulo Linha StmtType
<80> 42 exec <100> 43 exec

0 erros de sintaxe detectados no arquivo average.f
6 avisos emitidos no arquivo average.f

Aviso: incompatibilidade de tipo de dados do argumento COMPAV do subprograma na posição 1:
Dummy arg SCORE no módulo COMPAV linha 10 arquivo average.f é do tipo intg
Arg NUMS real no módulo AVENUM linha 43 arquivo média.f é do tipo real

De acordo com o Ftnchek, o programa contém variáveis ​​que podem ser usadas antes de serem
atribuído um valor inicial e variáveis ​​que não são necessárias. Ftnchek também avisa o
usuário que um quociente inteiro foi convertido em um real. Isso pode ajudar o usuário em
captura de um erro de arredondamento não intencional. Desde o -symtab bandeira foi dada, Ftnchek impressões
uma tabela contendo identificadores do módulo local e seus tipos de dados correspondentes
e número de dimensões. Finalmente, Ftnchek avisa que a função COMPAV não é usada
com o tipo adequado de argumentos.

Com o Ftnchekajuda, podemos depurar o programa. Podemos ver que havia o seguinte
erros:

1. SUM e COUNT devem ter sido convertidos para reais antes de fazer a divisão.

2. SUM deve ter sido inicializado em 0 antes de entrar no loop.

3. AVG nunca foi impresso após ser calculado.

4. NUMS deveria ter sido declarado INTEGER em vez de REAL.

Também vemos que I, não J, deveria ter sido declarado INTEGER na função COMPAV. Além disso,
MAXNOS não foi declarado como INTEGER, nem COMPAV como REAL, no programa AVENUM. Estes não são
erros, mas podem indicar descuido. Por acaso, o tipo padrão desses
variáveis ​​coincidiram com o tipo pretendido.

Aqui está o programa corrigido e sua saída quando executado:

C AUTORES: MIKE MYERS E LUCIA SPAGNUOLO
C DATA: 8 DE MAIO DE 1989
C
Variáveis ​​C:
C SCORE -> uma série de pontuações de teste
C SUM -> soma das pontuações do teste
C COUNT -> contador de pontuações lidas
CI -> contador de loop
C
COMPAV DE FUNÇÕES REAIS (PONTUAÇÃO, CONTAGEM)
INTEGER SUM, COUNT, I,PONTO(5)
C
SOMA = 0
DO 30 I = 1, CONTAGEM
SOMA = SOMA + PONTUAÇÃO (I)
30 CONTINUAR
COMPAV = FLUTUANTE (SOMA) / FLUTUANTE (CONTAGEM)
END
C
C
AVÊNIO DO PROGRAMA
C
C PROGRAMA PRINCIPAL
C
C AUTOR: LOIS BIGBIE
C DATA: 15 DE MAIO DE 1990
C
Variáveis ​​C:
C MAXNOS -> número máximo de valores de entrada
C NUMS -> uma matriz de números
C COUNT -> número exato de valores de entrada
C AVG -> média retornada pela COMPAV
CI -> contador de loop
C
C
INTEIRO MAXNOS
PARÂMETRO (MAXNOS = 5)
INTEGER I, NUMS (MAXNOS), COUNT
REAL AVG, COMPAV
CONTAGEM = 0
DO 80 I = 1, MAXNOS
LEIA (5, *, END = 100) NUMS (I)
CONTAGEM = CONTAGEM + 1
80 CONTINUAR
100 AVG = COMPAV (NUMS, COUNT)
WRITE (6, *) 'AVERAGE =', AVG
END
$ corrida média
70
90
85

MÉDIA = 81.66666
$

Com o Ftnchekajuda, nosso programa é um sucesso!

INTERPRETANDO A SAÍDA


As mensagens dadas por Ftnchek incluem não apenas erros de sintaxe, mas também avisos e
mensagens informativas sobre coisas que são Fortran legais, mas que podem indicar erros ou
descuido. A maioria dessas mensagens pode ser desativada por opções de linha de comando. Que
A opção controla cada mensagem depende da natureza da condição sobre a qual está sendo avisado.
Veja as descrições dos sinalizadores de linha de comando nas seções anteriores e de
mensagens abaixo. Cada mensagem é prefixada com uma palavra ou frase indicando a natureza do
a condição e sua gravidade.

`` Erro '' significa um erro de sintaxe. O tipo mais simples de erros de sintaxe são os tipográficos
erros, por exemplo, parênteses não balanceados ou erro ortográfico de uma palavra-chave. Esse tipo de
o erro é capturado pelo analisador e aparece com a descrição `` erro de análise '' ou `` sintaxe
erro '' (dependendo da versão do gerador de analisador e se é GNU bisão or
UNIX yacc) Este tipo de mensagem de erro não pode ser suprimido. Esteja ciente de que este tipo de
erro muitas vezes significa que Ftnchek não interpretou corretamente a declaração em que o erro
ocorrer, de forma que suas operações de verificação subsequentes sejam comprometidas. Você deve
elimine todos os erros de sintaxe antes de continuar a interpretar as outras mensagens Ftnchek
dá.

`` Aviso: sintaxe fora do padrão '' indica uma extensão para Fortran que Ftnchek suporta
mas isso não está de acordo com o padrão Fortran 77. As extensões que Ftnchek aceita
são descritos na seção sobre Extensões abaixo. Um exemplo é o DO ... ENDDO
construção. Se um programa usa essas extensões, os avisos serão dados de acordo com
especificações sob o -f77 contexto. O comportamento padrão é não dar avisos.

`` Advertência '' em outros casos significa uma condição que é suspeita, mas que pode ou não ser
um erro de programação. Freqüentemente, essas condições são legais de acordo com a norma. Alguns são
ilegal, mas não se enquadra no título de erros de sintaxe. Erros de uso são um exemplo.
Referem-se à possibilidade de que uma variável pode ser usada antes de ter sido atribuída a um
valor (geralmente um erro), ou que uma variável é declarada, mas nunca usada (inofensiva, mas
pode indicar descuido). A quantidade de verificação de erros de uso é controlada pelo
-uso sinalizador, que especifica a quantidade máxima de verificação por padrão.

Os avisos de truncamento cobrem situações em que a precisão pode ser perdida involuntariamente, por
exemplo quando um valor de precisão dupla é atribuído a uma variável real. Esses avisos são
controlado pelo -truncamento configuração, que está ativada por padrão.

`` Uso não portável '' avisa sobre alguns recursos que podem não ser aceitos por alguns compiladores
mesmo que não seja contrário ao padrão Fortran 77, ou que possa fazer com que o programa
para ter um desempenho diferente em diferentes plataformas. Por exemplo, equivalência real e
variáveis ​​inteiras geralmente são uma prática não portátil. O uso de extensões para o
linguagem padrão é, obviamente, outra fonte de não portabilidade, mas isso é tratado como
um caso separado. Para verificar a verdadeira portabilidade de um programa, tanto o -portabilidade e os votos de
-f77 sinalizadores devem ser usados. Ambos estão desligados por padrão. O -tamanho da palavra configuração é
fornecido para verificar apenas os usos não portáteis que dependem de uma máquina específica
tamanho das palavras.

`` Possivelmente aparência enganosa '' é usada para construções legais que podem não significar o que
eles parecem significar à primeira vista. Por exemplo, Fortran é insensível a espaços em branco,
espaço estranho dentro de nomes de variáveis ​​ou a falta de espaço entre uma palavra-chave e um
variável pode transmitir a impressão errada ao leitor. Essas mensagens podem ser suprimidas
desligando o -bonita sinalizador, que está ativado por padrão.

Outras mensagens que são fornecidas depois que todos os arquivos são processados ​​e relacionadas com
acordo entre os módulos, não use a palavra `` aviso '', mas geralmente caem
categoria. Os exemplos incluem incompatibilidades de tipo entre variáveis ​​correspondentes em diferentes
Declarações de bloco COMUNS ou entre argumentos fictícios e reais de um subprograma. Esses
os avisos são controlados pelo -comum e -argumentos configurações respectivamente. Por padrão
ambos são definidos para o máximo rigor de verificação.

Outro grupo de avisos sobre condições que muitas vezes são inofensivas referem-se a casos em que
as propriedades do array de uma variável passada como um argumento de subprograma diferem entre os dois
rotinas. Por exemplo, um elemento de matriz pode ser passado para uma sub-rotina que espera um
matriz inteira. Esta é uma técnica comumente usada para processar linhas ou colunas únicas de
matrizes bidimensionais. No entanto, também pode indicar um erro de programação. O -variedade
configuração permite ao usuário ajustar o grau de rigidez a ser usado na verificação deste
tipo de acordo entre os argumentos de array reais e fictícios. Por padrão, a rigidez é
máximo.

`` Oops '' indica um problema técnico, significando um bug no Ftnchek ou que é
recursos foram excedidos.

As mensagens de erro de sintaxe e avisos incluem o nome do arquivo junto com o número da linha e
número da coluna. Ftnchek tem duas opções diferentes para o aparecimento desses erros
mensagens. Se -novato está em vigor, que é o padrão, as mensagens estão em um estilo
aproximando o inglês normal. (No estilo padrão, o nome do arquivo não é impresso nas mensagens
dentro do corpo do programa se -Lista está em vigor.) O outro estilo de mensagens de erro
é selecionado pelo -novato opção. Neste estilo, a aparência das mensagens é
semelhante ao do UNIX cotão .

Ftnchek ainda está cego para alguns tipos de erros de sintaxe. Os dois mais importantes são
verificação detalhada de instruções FORMAT e quase tudo a ver com controle de
fluxo de execução por meio de instruções IF, DO e GOTO: a saber, aninhamento correto de controle
estruturas, correspondência de declarações de abertura, como IF ... THEN com declarações de fechamento
como ENDIF, e o uso adequado de rótulos de instrução (números). A maioria dos compiladores irá
detectar esses erros. Consulte a seção sobre Limitações para uma discussão mais detalhada.

If Ftnchek fornece uma mensagem de erro de sintaxe quando o compilador não, pode ser porque
o seu programa contém uma extensão para o Fortran padrão que é aceite pelo compilador
mas não por Ftnchek. (Consulte a seção sobre Extensões.) Em um sistema VAX / VMS, você pode usar
a opção / STANDARD do compilador para fazer com que o compilador aceite apenas o Fortran padrão. Sobre
a maioria dos sistemas UNIX ou semelhantes a UNIX, isso pode ser feito definindo o sinalizador -ansi.

Muitas das mensagens dadas por Ftnchek são autoexplicativos. Aqueles que precisam de algum
explicações adicionais estão listadas abaixo em ordem alfabética.

comum quadra NOME: dados, tipo incompatibilidade at posição n
A n-a variável no bloco COMMON difere no tipo de dados em dois diferentes
declarações do bloco COMMON. Por padrão (-comum nível de rigidez 3), Ftnchek
é muito exigente quanto aos blocos COMUNS: as variáveis ​​listadas neles devem corresponder exatamente
por tipo de dados e dimensões da matriz. Ou seja, o par legal de declarações em
módulos diferentes:
COMUM / COM1 / A, B
e
COMUM / COM1 / A(2)
vai causar Ftnchek para dar avisos no nível de rigidez 3. Estas duas declarações
são legais em Fortran, uma vez que ambos declaram duas variáveis ​​reais. Com rigor
nível 1 ou 2, nenhum aviso seria dado neste exemplo, mas o aviso seria
dado se houver uma incompatibilidade de tipo de dados, por exemplo, se B for declarado INTEGER.
Controlado por -comum criação.

comum quadra NOME tem longo dados, tipo seguinte baixo dados, tipo
Alguns compiladores requerem o alinhamento de itens multibyte para que cada item comece em um
endereço que é um múltiplo do tamanho do item. Assim, se um curto (por exemplo, único
item de precisão real) é seguido por um item longo (por exemplo, real de dupla precisão), o
Este último pode não estar alinhado corretamente. Controlado por -portabilidade = alinhamento comum
opção.

comum quadra NOME tem misto personagem e não personagem variáveis
O padrão ANSI exige que, se alguma variável em um bloco COMUM for do tipo
CHARACTER, então todas as outras variáveis ​​no mesmo bloco COMUM também devem ser do tipo
PERSONAGEM. Controlado por -f77 = misto-comum opção.

comum quadra NOME: variando comprimento
Escolha -comum configurando o nível 2, esta mensagem significa que um bloco COMUM foi declarado para
têm diferentes números de palavras em dois subprogramas diferentes. Uma palavra é a quantidade
de armazenamento ocupado por um inteiro ou variável real. Por -comum configuração de nível 3,
isso significa que as duas declarações têm números diferentes de variáveis, onde um
array de qualquer tamanho é considerado uma variável. Isso não é necessariamente um erro,
mas pode indicar que uma variável está faltando em uma das listas. Observe que
de acordo com o padrão Fortran 77, é um erro para blocos COMUM nomeados (mas
não em branco COMUM) para diferir em número de palavras em declarações em diferentes
módulos. Dado por -comum configuração 2 ou 3.

Erro: Seriamente formado lógico / relacional operador or constante

Erro: Seriamente formado reais constante
O analisador de sintaxe encontrou o início de uma das palavras especiais que começam e
terminar com um ponto final (por exemplo, .EQ.), ou o início de uma constante numérica, mas não
ter sucesso em encontrar um item completo desse tipo.

Erro: não podes be ajustável tamanho in módulo NOME
Uma variável de caractere não pode ser declarada com um tamanho que seja um asterisco em
parênteses, a menos que seja um argumento fictício, um parâmetro ou o nome da função
definido no módulo.

Erro: não podes be Declarado in SAVE afirmação in módulo NOME
Apenas variáveis ​​locais e blocos comuns podem ser declarados em uma instrução SAVE.

Erro: Não caminho para isto afirmação
Ftnchek irá detectar instruções que são ignoradas ou contornadas porque não há
rota previsível para a declaração. Por exemplo, uma declaração não numerada (a
declaração sem um rótulo de declaração), ocorrendo imediatamente após uma declaração GOTO,
não pode ser executado.

Erro: Analisar erro
Isso significa que o analisador, que analisa o programa Fortran em expressões,
declarações, etc., não foi capaz de encontrar uma interpretação válida para alguma parte
de uma declaração no programa. Se o seu compilador não relatar um erro de sintaxe em
no mesmo lugar, as explicações mais comuns são: (1) uso de uma extensão para ANSI
Fortran padrão que não é reconhecido por Ftnchek, ou (2) a declaração requer
mais à frente do que Ftnchek usa (veja a seção sobre Bugs).

NOTA: Esta mensagem significa que a declaração afetada não foi interpretada.
Portanto, é possível que Ftncheko processamento subsequente de será um erro, se
depende de quaisquer assuntos afetados por esta declaração (declarações de tipo, etc.).

Erro: Sintaxe erro
É o mesmo que `` Erro: Erro de análise '' (veja acima). É gerado se o seu
versão do Ftnchek foi construído usando o UNIX yacc gerador de analisador em vez de GNU
bisão.

Identificadores qual e guarante que os mesmos estão não único in primeiro seis tanques
Avisa que dois identificadores com mais de 6 caracteres não diferem no
primeiros 6 caracteres. Isso é para portabilidade: eles não podem ser considerados distintos
por alguns compiladores. Controlado por -seis caracteres opção.

Não portável uso: argumento precisão pode não be correta para intrínseco função
A precisão de um argumento passado para uma função intrínseca pode estar incorreta em
alguns computadores. Emitido quando uma variável numérica é declarada com precisão explícita
(por exemplo, REAL * 8 X) é passado para uma função intrínseca específica (por exemplo, DSQRT (X)).
Controlado por -portabilidade = tamanho misto e -tamanho da palavra.

Não portável uso: personagem constante / variável comprimento excede 255
Alguns compiladores não oferecem suporte a cadeias de caracteres com mais de 255 caracteres de comprimento.
Controlado por -portabilidade = string longa.

Não portável uso: Envie o contém guias
Ftnchek expande tabulações para serem equivalentes a espaços até a próxima coluna que é um
múltiplo de 8. Alguns compiladores tratam as guias de maneira diferente, e também é possível que
os arquivos enviados por correio eletrônico terão as abas convertidas em espaços em branco de alguma forma.
Portanto, os arquivos que contêm guias podem não ser compilados corretamente após serem
transferido. Ftnchek não fornece esta mensagem se as abas ocorrerem apenas nos comentários
ou constantes de caracteres. Controlado por -portabilidade = guia.

Não portável uso: não inteiro DO laço Limites
Este aviso é dado apenas quando o índice DO e limites não são inteiros. Uso de
quantidades não inteiras em uma instrução DO podem causar erros inesperados ou
resultados em máquinas diferentes, devido aos efeitos de arredondamento. Controlado por
-portabilidade = real-fazer.

Possivelmente it is an ordem qual foi não Declarado
Esta mensagem é anexada a avisos relacionados a uma chamada de função ou a um
incompatibilidade de tipo de argumento, para a qual existe a possibilidade de que o que parece ser um
função é na verdade um array. Se o programador esqueceu de dimensionar
uma matriz, as referências à matriz serão interpretadas como invocações de função.
Esta mensagem será suprimida se o nome em questão aparecer em EXTERNO ou
Instrução INTRINSIC. Controlado pelo -novato opção.

Possivelmente enganosa aparência: caracteres passado 72 colunas
O programa está sendo processado com a largura do campo de instrução em seu valor padrão
de 72, e alguns caracteres não vazios foram encontrados após a coluna 72. Neste caso,
Ftnchek não está processando os caracteres após a coluna 72 e está notificando o usuário
que a declaração pode não ter o significado que parece ter. Esses
caracteres podem ser pretendidos pelo programador como significativos, mas eles serão
ignorado pelo compilador. Controlado por -pretty = long-line.

Possivelmente enganosa aparência: comum quadra Declarado in mais do que um afirmação
Essas declarações múltiplas são legais e têm o mesmo efeito que uma continuação de
a declaração original do bloco. Este aviso só é dado se os dois
as declarações são separadas por uma ou mais declarações intermediárias. Controlado por
-pretty = multiple-common.

Possivelmente enganosa aparência: Continuação segue comentar or em branco linha
Ftnchek emite esta mensagem de aviso para alertar o usuário de que a continuação de um
declaração é intercalada com comentários, tornando-a fácil de ignorar. Controlado por
-pretty = continuation.

Possivelmente enganosa aparência: Estranho parênteses
Avisa sobre parênteses ao redor de uma variável sozinha em uma expressão. Quando um
variável entre parênteses é passada como um argumento para um subprograma, ela é tratada como
uma expressão, não como uma variável cujo valor pode ser modificado pela rotina chamada.
Controlado por -pretty = parênteses.

Subprograma NOME: argumento dados, tipo incompatibilidade at posição n
O subprograma n-ésimo argumento real (no CALL ou no uso de uma função)
difere em tipo de dados ou precisão do n-ésimo argumento fictício (na SUBROUTINA ou
Declaração FUNCTION). Por exemplo, se o usuário define um subprograma por
SUBROUTINA SUBA (X)
X REAL
e em outro lugar invoca SUBA por
CHAMADA SUBA(2)
Ftnchek irá detectar o erro. O motivo aqui é que o número 2 é inteiro,
irreal. O usuário deveria ter escrito
CALL SUBA (2.0)

Ao verificar um argumento que é um subprograma, Ftnchek deve ser capaz de determinar
se é uma função ou uma sub-rotina. As regras usadas por Ftnchek para fazer isso são
da seguinte forma: Se o subprograma, além de ser passado como um argumento real, também é
chamado diretamente em outro lugar no mesmo módulo, então seu tipo é determinado por aquele
uso. Se não, então se o nome do subprograma não aparecer em um explícito
declaração de tipo, presume-se que seja uma sub-rotina; se for explicitamente digitado, é
tomada como uma função. Portanto, as sub-rotinas passadas como argumentos reais precisam apenas
ser declarada por uma instrução EXTERNAL no módulo de chamada, enquanto as funções devem
também deve ser digitado explicitamente para evitar a geração dessa mensagem de erro.
Controlado por -argumentos criação.

Subprograma NOME: argumento disposição incompatibilidade at posição n
Semelhante à situação anterior, mas o argumento fictício do subprograma difere de
o argumento real correspondente em seu número de dimensões ou número de
elementos Controlado por -variedade Juntamente com -argumentos configurações.

Subprograma NOME: argumento incompatibilidade at posição n
Um argumento fictício de caractere é maior do que o argumento real correspondente, ou um
O argumento fictício de Hollerith é maior do que o argumento real correspondente.
Controlado por -argumentos criação.

Subprograma NOME: argumento uso incompatibilidade
Ftnchek detecta um possível conflito entre a forma como um subprograma usa um argumento
e a maneira como o argumento é fornecido ao subprograma. O conflito pode
ser um dos dois tipos, conforme descrito abaixo.

manequim arg is modificado, Real arg is const or expr
Um argumento fictício é um argumento nomeado em uma instrução SUBROUTINE ou FUNCTION e
usado dentro do subprograma. Um argumento real é um argumento passado para um
sub-rotina ou função pelo chamador. Ftnchek está dizendo que um argumento fictício é
modificado pelo subprograma, o que implica que seu valor é alterado na chamada
módulo. O argumento real correspondente não deve ser uma constante ou expressão,
mas sim uma variável ou elemento de array ao qual pode ser atribuído legitimamente.
Controlado pelo -usage = arg-const -modified opção.

manequim arg usava antes conjunto, Real arg não conjunto
Aqui, um argumento fictício pode ser usado no subprograma antes de ter um valor atribuído
a ele pelo subprograma. O argumento real correspondente deve ter um valor
atribuído a ele pelo chamador antes de invocar o subprograma. Controlado pelo
-usage = var-uninitialized opção.

Este aviso não é afetado pelo -argumentos criação.

Subprograma NOME invocado inconsistente
Aqui, a incompatibilidade é entre o tipo de dados do próprio subprograma usado e como
definiram. Por exemplo, se o usuário declara
CONTAGEM DE FUNÇÃO INTEIRA (A)
e invoca COUNT em outro módulo como
N = CONTAR (A)
sem declarar seu tipo de dados, ele será padronizado para o tipo real, com base no primeiro
letra de seu nome. O módulo de chamada deve ter incluído a declaração
CONTAGEM DE INTEIROS

Dado por -argumentos configuração 2 ou 3.

Subprograma NOME: variando comprimento argumento listas:
Foi encontrada uma inconsistência entre o número de argumentos fictícios (parâmetros)
um subprograma tem e o número de argumentos reais dados a ele em uma invocação.
Ftnchek mantém o controle de todas as invocações de subprogramas (instruções CALL e
expressões usando funções) e os compara com as definições do
subprogramas em outras partes do código-fonte. O compilador Fortran normalmente não
pegar esse tipo de erro. Dado por -argumentos configuração 1 ou 3.

Variável não declarado. Formato tem sido implicitamente definido
Ao imprimir a tabela de símbolos para um módulo, Ftnchek irá sinalizar com um asterisco tudo
identificadores que não são explicitamente digitados e mostrarão o tipo de dados que foi
atribuído por meio de digitação implícita. Isso fornece suporte para usuários que desejam
declare todas as variáveis ​​conforme exigido em Pascal ou em algumas outras linguagens. Isto
mensagem aparece apenas quando o -symtab opção está em vigor. Alternativamente, use o
-declarar sinalize se você deseja obter uma lista de todas as variáveis ​​não declaradas.

Variáveis Declarado mas a nunca referenciada
Detecta todos os identificadores que foram declarados em seu programa, mas nunca foram usados,
para receber um valor ou para ter seu valor acessado. Variáveis ​​em COMUM
estão excluídos. Controlado pelo -usage = var-unused opção.

Variáveis conjunto mas a nunca usava
Ftnchek notificará o usuário quando um valor for atribuído a uma variável, mas o
variável não é usada de outra forma no programa. Normalmente, isso resulta de um
supervisão. Controlado pelo -usage = var-set-unused opção.

Variáveis usava antes conjunto
Esta mensagem indica que um identificador é usado para calcular um valor antes de seu
inicialização. Tal uso pode levar ao cálculo de um valor incorreto, uma vez que
seu valor inicial não é controlado. Controlado pelo -usage = var-uninitialized
opção.

Variáveis pode be usava antes conjunto
Semelhante ao usado antes de definir, exceto que Ftnchek não é capaz de determinar seu status
com certeza. Ftnchek assume que uma variável pode ser usada antes de definir se o primeiro
o uso da variável ocorre antes no texto do programa para sua atribuição.
Controlado pelo -usage = var-uninitialized opção.

Atenção: DO índice is não número inteiro
Este aviso é dado apenas quando os limites DO são inteiros, mas o índice DO não é.
Isso pode indicar uma falha ao declarar o índice como um inteiro. Controlado por
-truncation = real-do opção.

Atenção: número inteiro quociente expr ... convertido para reais
O quociente de dois inteiros resulta em um resultado do tipo inteiro, no qual o
parte fracionária é descartada. Se tal expressão inteira envolvendo divisão for
posteriormente convertido para um tipo de dados real, pode ser que uma divisão de tipo real tenha sido
pretendido. Controlado por -truncation = int-div-real opção.

Atenção: Número inteiro quociente expr ... usava in expoente
O quociente de dois inteiros resulta em um resultado do tipo inteiro, no qual o
parte fracionária é descartada. Se tal expressão inteira for usada como expoente,
é bem provável que se pretendesse uma divisão de tipo real. Controlado por
-truncation = int-div-expoent opção.

Atenção: NOME não conjunto quando RETORNO encontrado
A forma como as funções em Fortran retornam um valor é atribuindo o valor ao
nome da função. Esta mensagem indica que a função não foi atribuída a um
valor antes do ponto onde uma instrução RETURN foi encontrada. Portanto, é
possível que a função possa retornar um valor indefinido.

Atenção: Fora do padrão sintaxe: ajustável tamanho não podes be concatenado SUA PARTICIPAÇÃO FAZ A DIFERENÇA
O Fortran 77 Standard (seção 6.2.2) proíbe a concatenação de variáveis ​​de caracteres
cujo tamanho é um asterisco entre parênteses, exceto em uma instrução de atribuição.
Controlado por -f77 = expr-mista.

Atenção: Fora do padrão sintaxe : periodo caracteres passado 72 colunas
Este aviso é dado sob o -f77 = linha comprida configuração se o -colunas configuração tem
foi usado para aumentar a largura do campo da instrução, e uma instrução tem
texto do programa além da coluna 72. Fortran padrão ignora todo o texto nessas colunas,
mas alguns compiladores não. Assim, o programa pode ser tratado de forma diferente por
compiladores diferentes.

Atenção: Fora do padrão sintaxe : Declaração Fora of ordem.
Ftnchek irá detectar instruções que estão fora da sequência especificada para ANSI
padrão Fortran 77. A Tabela 1 ilustra a sequência permitida de declarações no
Linguagem Fortran. As declarações que estão fora de ordem são, no entanto, interpretadas por
Ftnchek, para prevenir `` cascatas '' de mensagens de erro. O contador de sequência também é
revertido para evitar a repetição da mensagem de erro para um bloco de
afirmações. Controlado pelo -f77 = ordem da instrução opção.

-------------------------------------------------- ------
| | implícito
| parâmetro | ---------------------
| | outra especificação
formato | --------------- | ---------------------
e | | função-declaração
entrada | dados | ---------------------
| | executável
-------------------------------------------------- ------

tabela 1

Atenção: Possiveis divisão by zero
Esta mensagem é impressa sempre que a divisão é feita (exceto a divisão por um
constante). Use-o para ajudar a localizar um problema de divisão de tempo de execução por zero. Controlada
by -divisão opção.

Atenção: reais truncado para intg
Ftnchek detectou uma declaração de atribuição que tem uma expressão real no
direita, mas uma variável inteira à esquerda. A parte fracionária do valor real
será perdido. Se você converter explicitamente a expressão real em inteiro usando o
INT ou NINT função intrínseca, nenhum aviso será impresso. Uma mensagem semelhante é
impresso se uma expressão de dupla precisão for atribuída a uma única precisão
variável, etc. Controlado por -truncation = rebaixamento opção.

Atenção: subscrito is não número inteiro
Uma vez que os subscritos da matriz são normalmente quantidades inteiras, o uso de um número não inteiro
expressão aqui pode indicar um erro. Controlado por -truncation = real-subscrito
opção.

Atenção: Desconhecido intrínseco função
Esta mensagem avisa o usuário que um nome declarado em uma instrução INTRINSIC é
desconhecido para Ftnchek. Provavelmente é uma função intrínseca não padronizada, e assim o
programa não será portátil. A função será tratada por Ftnchek como um usuário-
função definida. Este aviso não é suprimido por nenhuma opção, uma vez que afeta
Ftnchekanálise do programa. No entanto, se a função intrínseca estiver em um dos
os conjuntos suportados de intrínsecos não padrão, você pode usar o -intrínseco configuração para
causa Ftnchek para reconhecê-lo.

LIMITAÇÕES E EXTENSÕES


Ftnchek aceita programas Fortran-77 do padrão ANSI com algumas limitações menores e vários
extensões comuns.

Limitações:
Os argumentos fictícios em funções de instrução são tratados como variáveis ​​comuns de
o programa. Ou seja, seu escopo é todo o subprograma, não apenas a instrução
definição de função.

A verificação das instruções FORMAT é frouxa, tolerando separadores ausentes (vírgula,
etc.) entre descritores de formato em locais onde o Padrão os exige, e
permitindo .d campos em descritores que não deveriam tê-los. Ele avisa sob
-f77 = format-edit-descr sobre tipos de descritores não padronizados (como O) e com suporte
extensões.

Existem algumas extensões sintáticas e elementos Fortran 90 que Ftnchek aceita
mas faz muito pouca verificação. Por exemplo, o uso do ponteiro (se o
sintaxe não padrão do Cray ou sintaxe do Fortran 90) não é verificada, exceto para definir
e status usado. Espera-se que algum dia uma verificação mais completa seja
implementado, mas por enquanto o usuário deve considerar a aceitação dessas sintaxes
recursos simplesmente como uma conveniência para permitir a verificação de outros aspectos do código que
os contém. Consulte a seção Extensões para obter detalhes sobre quais recursos são
aceito, mas não totalmente verificado.

Se um subprograma fornecido pelo usuário tiver o mesmo nome de um dos subprogramas intrínsecos não padrão
funções reconhecidas por Ftnchek, deve ser declarado em uma instrução EXTERNAL em
qualquer rotina que o invoque. Caso contrário, estará sujeito à verificação normalmente
dado à função intrínseca. Uma vez que os intrínsecos não padronizados não são
padrão, esta declaração EXTERNA não é exigida pelo Padrão Fortran 77.
Com o -intrínseco = nenhum configuração, reconhecimento da maioria dos intrínsecos não padronizados
(exceto aqueles necessários para suportar o tipo de dados duplo complexo) podem ser transformados
fora. Veja as listas de funções intrínsecas não padronizadas com suporte no
discussão do -intrínseco configuração acima.

Extensões:
Todas essas extensões (exceto caracteres minúsculos) irão gerar avisos se
o relevante -f77 opção está definida. Algumas das extensões listadas abaixo fazem parte de
o padrão Fortran-90. Eles são indicados pela notação (F90).

As guias são permitidas e traduzidas em espaços em branco equivalentes que correspondem à guia
pára a cada 8 colunas. O padrão não reconhece guias. Observe que alguns
compiladores permitem abas, mas as tratam de maneira diferente. O tratamento definido para DEC
FORTRAN pode ser alcançado usando o -source = dec-tab criação.

As strings podem ser delimitadas por aspas ou apóstrofos. Uma sequência de dois
caracteres delimitadores são interpretados como um único caractere delimitador incorporado.
(F90)

Strings podem conter sequências de escape de barra invertida no estilo UNIX. Eles serão
interpretado como tal se o -source = unix-barra invertida configuração é fornecida. Caso contrário, o
o caractere de barra invertida será tratado como um caractere de impressão normal.

O código-fonte pode estar no formato livre Fortran 90 ou no formato fixo tradicional.
(F90)

Um ponto-e-vírgula é permitido como separador de instrução. (F90)

Caracteres minúsculos são permitidos e são convertidos internamente em maiúsculas
exceto em cadeias de caracteres. O padrão especifica maiúsculas apenas, exceto em
comentários e strings. (F90)

Constantes de Hollerith são permitidas, de acordo com o Padrão Fortran 77,
apêndice C. Eles não devem ser usados ​​em expressões ou confundidos com o tipo de dados
PERSONAGEM.

A letra 'D' (maiúscula ou minúscula) na coluna 1 é tratada como o início de um
Comente. Não há opção de tratar essas linhas como declarações em vez de comentários.

As declarações podem ter mais de 72 colunas, desde que a configuração -colunas foi
usado para aumentar o limite. De acordo com o padrão, todo o texto das colunas 73
a 80 é ignorado e nenhuma linha pode ter mais de 80 colunas.

Os nomes das variáveis ​​podem ter mais de seis caracteres. O padrão especifica seis como
o máximo. Ftnchek permite nomes com até 31 caracteres (F90).

Os nomes das variáveis ​​podem conter sublinhados e cifrões (ou outros caracteres não alfabéticos
caracteres conforme especificado pelo -identificador-caracteres opção). Esses personagens são
tratado da mesma forma que letras alfabéticas. O tipo padrão para variáveis ​​começando
com esses personagens é REAL. Em declarações de tipo IMPLICIT especificando um intervalo de
caracteres, o cifrão segue Z e é seguido por sublinhado. (Qualquer outro
os caracteres definidos pelo usuário são tratados da mesma forma que o cifrão.) Fortran 90
permite sublinhados em nomes de variáveis.

A versão UNIX tolera a presença de diretivas de pré-processador, ou seja, linhas
começando com o sinal de sustenido (#). Estes são tratados como comentários, exceto para #line
diretivas, que são interpretadas e usadas para definir o número da linha e a fonte
nome do arquivo para avisos e mensagens de erro. Observe que as diretivas #include não são
processado por Ftnchek. Programas que os usam para incluir arquivos de origem devem ser
passou pelo pré-processador antes de ser inserido no Ftnchek. Conforme observado abaixo,
Ftnchek processa instruções INCLUDE, que possuem uma sintaxe diferente. Um
programa opcional, ftnpp(1L) (disponível separadamente) fornece pré-processamento que
lida adequadamente com arquivos INCLUIR.

A estrutura de controle Fortran 90 DO ... ENDDO é permitida. O CICLO e SAÍDA
declarações são aceitas. Todos estes podem ter um nome opcional do-construct, mas
nomes de construção não são verificados quanto à consistência. (F90)

A construção Fortran 90 SELECT CASE é aceita. (F90)

Nomes de construção também são aceitos em IF, THEN, ELSE, ENDIF e SELECT CASE
afirmações. (F90)

As declarações ACCEPT e TYPE (para terminal I / O) são permitidas, com o mesmo
sintaxe como PRINT.

A assim chamada sintaxe de `` ponteiro Cray '' é tolerada. Não é o mesmo que o
Instrução Fortran 90 POINTER. Não há verificação real da declaração de outro
do que a sintaxe básica. A forma desta declaração é
PONTEIRO (apontador, ponta) [, (apontador, ponta)]
As variáveis ​​de ponteiro são atribuídas a um tipo de dados INTEGER * 4. Verificação de uso de
as variáveis ​​de ponta são suprimidas, uma vez que na prática são acessadas indiretamente
através dos ponteiros.

As seguintes sintaxes relacionadas ao ponteiro Fortran 90 são aceitas: ALLOCATABLE,
Instruções POINTER e TARGET e os mesmos atributos em declarações de tipo;
Instruções executáveis ​​ALLOCATE, DEALLOCATE e NULLIFY; atribuição de ponteiro usando
=> operador; e as funções intrínsecas ALLOCATED e ASSOCIATED. Pouco semântico
verificação de variáveis ​​de ponteiro e operações é feita além do conjunto básico e usado
status. Por exemplo, não há verificação de erros como ponteiros pendentes,
ou uso de matrizes não alocadas.

As instruções podem ter qualquer número de linhas de continuação. O Fortran 77 e Fortran
90 padrões permitem um máximo de 19 na forma de fonte fixa. O padrão Fortran 90
permite um máximo de 39 na forma de código-fonte livre.

Operadores relacionais (comparação) compostos de pontuação, a saber: <<= == / =>> =
são autorizadas. (F90)

Comentários embutidos, começando com um ponto de exclamação, são permitidos. (F90)

NAMELIST I / O é compatível. A sintaxe é a mesma do Fortran 90.

As instruções FORMAT podem conter um cifrão para indicar a supressão do transporte
Retorna. Uma expressão inteira entre colchetes angulares pode ser usada em qualquer lugar em um
Instrução FORMAT onde o Fortran 77 Standard permite uma constante inteira (exceto
para o comprimento de uma constante de Hollerith), para fornecer um valor de tempo de execução para uma repetição
especificação ou largura do campo.

Palavras-chave fora do padrão são permitidas em declarações de E / S, correspondentes às do VMS
Fortran.

A instrução IMPLICIT NONE é suportada. O significado desta declaração é que
todas as variáveis ​​devem ter seus tipos de dados declarados explicitamente. Em vez de sinalizar o
ocorrências de tais variáveis ​​com mensagens de erro de sintaxe, Ftnchek espera até o
final do módulo e, em seguida, imprime uma lista de todas as variáveis ​​não declaradas, pois
faz para o -declarar opção. (F90)

Os tipos de dados INTEGER, REAL, COMPLEX e LOGICAL podem ter um opcional
especificação de precisão em declarações de tipo. Por exemplo, REAL * 8 significa um 8 bytes
tipo de dados de ponto flutuante. O tipo de dados REAL * 8 não é necessariamente considerado
equivalente a DOUBLE PRECISION, dependendo do -tamanho da palavra contexto. The Fortran 77
Padrão permite uma especificação de comprimento apenas para dados CHARACTER.

Ftnchek suporta a especificação de tipo DOUBLE COMPLEX para uma quantidade complexa cuja
as partes reais e imaginárias têm precisão dupla. Aritmética de modo misto envolvendo
complexo de precisão única com dados reais de precisão dupla, proibido pelo
Padrão, produz um resultado de complexo duplo.

Declarações de tipo combinadas e inicializadores semelhantes a instruções de dados são aceitos.
Eles têm a forma de uma declaração de tipo Fortran 77 padrão, seguida por uma barra
lista delimitada de constantes como a usada em uma instrução DATA. Um exemplo do
sintaxe é
INTEIRO N / 100 /
Essa forma bastarda de declaração de inicialização não foi adotada no Fortran 90. Tal
declarações devem ser escritas usando o formulário padrão descrito abaixo, que é
aceito por Ftnchek.

Há suporte limitado para declarações de tipo baseadas em atributos do Fortran 90. Isto
estilo de declaração é distinguido pelo uso de dois pontos duplos (: :) entre os
lista de atributos e a lista de variáveis ​​declaradas. Os recursos suportados podem
ser adequados para programadores novatos, mas ainda não são suficientes para profissionais
programas Fortran 90 de qualidade. Espero adicionar suporte para mais recursos no futuro
lançamentos. Convido voluntários para ajudar nesta tarefa. Veja o arquivo ToDo no
distribuição do código-fonte para detalhes. Os atributos atualmente aceitos, além de
todos os tipos de dados usuais são DIMENSION, EXTERNAL, INTRINSIC, PARAMETER e SAVE.
A nova forma de declaração também permite a atribuição de valores às variáveis
declarado. No momento, o (LEN =valor) forma de especificar comprimentos de caracteres também é
aceitaram. Especificações de tipo, usando (KIND =valor) são analisados, mas não são
processado: todos os tipos são tratados como tipo padrão. Além disso, há pouca verificação
dessas declarações além da sintaxe básica.

Muitas funções intrínsecas não padronizadas comumente encontradas são fornecidas. Veja o
discussão de -intrínseco para obter uma lista de funções e como controlar quais são
reconhecido.

A verificação de argumentos não é rígida para aqueles intrínsecos não padronizados que usam matrizes ou
tipos de argumento mistos.

Ftnchek permite a instrução INCLUDE, o que provoca a inclusão do texto do
determinado arquivo. A sintaxe é
INCLUIR 'nome do arquivo'
Isso é compatível com Fortran 90. Se o -source = vms-include opção é dada,
Ftnchek segue as convenções do VMS com relação a esta declaração: ele assume um
extensão padrão de .para se nenhuma extensão de nome de arquivo for fornecida e permite o
qualificador / [NO] LIST após o nome do arquivo, para controlar a listagem dos
Arquivo. Não há suporte para incluir módulos de texto VMS.

Na saída de diagnóstico relativa a itens contidos em arquivos de inclusão, a localização de
o erro é especificado por sua localização no arquivo de inclusão e pela localização em
o arquivo principal em que o arquivo foi incluído.

Ftnchek aceita instruções PARAMETER sem parênteses. Estes serão avisados
sobre se o -f77 = param-noparen bandeira é dada.

Ftnchek aceita definições de PARÂMETRO que envolvem funções intrínsecas e
exponenciação por um expoente não inteiro. Ambos os casos são proibidos por
o Fortran 77 Standard, e será avisado se o -f77 = param-intrínseco bandeira
é dada. Se um valor de função intrínseca é uma constante inteira de tempo de compilação,
Ftnchek irá avaliá-lo. Isso permite verificar melhor se o parâmetro é usado em
declarando tamanhos de array. Fortran 90 permite funções intrínsecas em PARÂMETRO
definições.

As funções intrínsecas avaliadas são:

ABS IABS DIM IDIM MAX
SINAL DE MOD MÁX0 MIN MÍN0
ÍNDICE ISIGN Len ICHAR

As funções de argumentos inteiros são avaliadas apenas se os argumentos forem inteiros
expressões constantes. (Isso pode envolver constantes inteiras, parâmetros e
avaliadas funções intrínsecas.) A função LEN é avaliada se seu argumento for
uma expressão envolvendo apenas constantes de caracteres e variáveis ​​cujo comprimento não é
ajustável. As funções ICHAR e INDEX são avaliadas apenas se os argumentos forem
constantes de caracteres. Ftnchek dá um aviso se precisa do valor de algum
função intrínseca que não é avaliada.

NOVAS CARATERÍSTICAS


Aqui estão as mudanças da versão 3.2 para a versão 3.3:

1. O front-end foi reescrito para visualização ilimitada à frente, eliminando o bug de longa data
que causou interpretação incorreta de declarações cuja ambiguidade não foi resolvida em
a primeira linha.

2. A -mkhtml opção agora está disponível na versão MS-DOS.

3. Adicionado suporte para sintaxe relacionada a ponteiros Fortran 90: ALLOCATE, DEALLOCATE e NULLIFY
afirmações; os atributos ALLOCATABLE, POINTER e TARGET nas declarações de tipo; a
operador de atribuição de ponteiro => e funções intrínsecas ALLOCATED e ASSOCIATED; e
declarações de matriz de forma diferida. No momento, esses novos recursos de sintaxe são aceitos
mas não devidamente verificado. Este recurso foi adicionado por Robert Landrito.

4. A -f77 e -f90 apontador opção que controla avisos sobre `` ponteiros Cray '' foi
renomeado para apontador de cray. O -f77 = ponteiro opção agora controla avisos para
código contendo sintaxe relacionada ao ponteiro Fortran 90.

5. Reimplementado -mkhtml processamento, então agora é muito mais rápido em arquivos de origem contendo
muitas rotinas.

6. Mudou a organização do diretório de teste para que não haja mais necessidade de modificar
a distribuição para executar o conjunto de testes (verificar.bat) em MS-DOS.

7. Corrigido bug na leitura de configurações numéricas na linha de comando ao definir o nome abreviado para
Caracteres 3.

8. Corrigido bug que causava aviso falso para um GOTO referindo-se a uma declaração END rotulada
quando a instrução antes de END era um FORMAT.

9. Nova bandeira -f77 = personagem para controlar avisos sobre extensões para o Fortran 77
tipo de dados de caractere. Acompanhando esta nova bandeira está o suporte para regras Fortran 90 para
declarações de variáveis ​​de caracteres que avaliam como comprimento zero ou negativo, permitindo
e tratando os valores de comprimento negativos como zero.

10. Corrigido pequeno bug na impressão de comentários e linhas em branco após a última declaração END
in -Lista modo.

Use ftnchek online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    Suportes
    Suportes
    Brackets é um software de código aberto moderno e gratuito
    editor de texto feito especialmente para Web
    Desenvolvimento. Escrito em HTML, CSS e
    JavaScript com ferramentas visuais focadas e
    prepara...
    Baixe os suportes
  • 2
    Compilador pascal gratuito
    Compilador pascal gratuito
    Um compilador Pascal de 32/64/16 bits para
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, Game Boy
    Advance, Nintendo NDS e DOS;
    compatível semanticamente com...
    Baixe o Compilador Pascal Gratuito
  • 3
    Informações Canon EOS DIGITAL
    Informações Canon EOS DIGITAL
    Canon não tem contagem de obturador
    incluído na informação EXIF ​​de um
    arquivo de imagem, ao contrário de Nikon e
    Pentax. Não há nenhuma base oficial da Canon
    aplicativo ...
    Baixe informações da Canon EOS DIGITAL
  • 4
    rEFInd
    rEFInd
    rEFInd é um fork do boot rEFIt
    Gerente. Como o rEFIt, o rEFInd pode
    detectar automaticamente sua inicialização EFI instalada
    carregadores e apresenta uma bela GUI
    menu da opção de inicialização ...
    Baixar rEFInd
  • 5
    Express Luke GSI
    Express Luke GSI
    Esta página de download do SourceForge era para
    conceder aos usuários o download da minha fonte construída
    GSIs, baseados na grande teoria de Phhusson
    trabalhos. Eu construo o Android Pie e
    Android 1 ...
    Baixar ExpressLuke GSI
  • 6
    Caster de música
    Caster de música
    Music Caster é um reprodutor de música de bandeja
    que permite que você transmita sua música local para um
    Dispositivo Google Cast. Na primeira corrida,
    você precisará clicar na seta em seu
    tas ...
    Baixar Music Caster
  • Mais "

Comandos Linux

Ad