InglésFrancésEspañol

Ad


icono de página de OnWorks

ftnchek - Online en la nube

Ejecute ftnchek en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando ftnchek que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


ftnchek - Comprobador de programas de Fortran 77

SINOPSIS


ftnchek [ -argumentos[=lista]] [ -formación[=lista]]
[ -[no]breve ] [ -árbol de llamadas[=lista]] [ -[no]comprobar ]
[ -columnas[=número]] [ -común[=lista]]
[ -[no]referencia cruzada[=lista]] [ -[no]declarar ]
[ -[no]división ] [ -errores[=número]] [ -[no]externo ]
[ -[no]f77[=lista]] [ -[no]f90[=lista]]
[ -[no]f95[=lista]] [ -[no]ayuda ]
[ -[no]caracteres identificadores[=lista]] [ -incluir =str ]
[ -intrínseco[=lista]] [ -[no]bibliotecas ] [ -[no]lista ]
[ -makedcls[=lista]] [ -mkhtml[=lista]]
[ -[no]principiante ] [ -salida =str ]
[ -tamaño de puntero[=número]] [ -[no]portabilidad[=lista]]
[ -[no]bastante[=lista]] [ -proyecto[=lista]]
[ -[no]puro ] [ -[no]tranquilo ] [ -[no]referencia ]
[ -[no]recursos ] [ -[no]seis caracteres ] [ -[no]sort ]
[ -Fuente[=lista]] [ -Estilo[=lista]] [ -[no]tabla simbólica ]
[ -[no]truncamiento[=lista]] [ -uso[=lista]]
[ -[no]vcg ] [ -[no]versión ] [ -[no]volátiles ]
[ -Tamaño de la palabra[=número]] [ -envoltura[=número]] [ archivos ... ]

DESCRIPCIÓN


ftnchek (abreviatura de Fortran checker) está diseñado para detectar ciertos errores en un Fortran
programa que un compilador no suele hacer. ftnchek no está destinado principalmente a detectar
errores de sintaxis. Su propósito es ayudar al usuario a encontrar errores semánticos. Semántico
Los errores son legales en el idioma de Fortran, pero son un desperdicio o pueden causar errores
operación. Por ejemplo, las variables que nunca se utilizan pueden indicar alguna omisión en el
programa; Las variables no inicializadas contienen basura que puede causar resultados incorrectos.
calculado; y las variables que no están declaradas pueden no tener el tipo deseado. ftnchek
está destinado a ayudar a los usuarios a depurar su programa Fortran. No está destinado
para detectar todos los errores de sintaxis. Ésta es la función del compilador. Antes de usar
ftnchek, el usuario debe verificar que el programa se compile correctamente.

Este documento primero resume cómo invocar ftnchek. Esa sección debe leerse antes
comenzando a usar ftnchek. Las secciones posteriores describen ftncheklas opciones con más detalle, proporcione
un ejemplo de su uso y explicar cómo interpretar la salida. Las secciones finales
mencionar las limitaciones y errores conocidos en ftnchek.

INVOCAR FTNCHEK


ftnchek se invoca a través de un comando de la forma:

$ ftnchek [-option -option ...] nombre de archivo [nombre de archivo ...]

Los corchetes indican algo que es opcional. Los paréntesis en sí no son
realmente mecanografiado. Aquí las opciones son conmutadores o configuraciones de la línea de comandos, que controlan la
funcionamiento del programa y la cantidad de información que se imprimirá. Si no
se especifica la opción, la acción predeterminada es imprimir mensajes de error, advertencias y
mensajes informativos, pero no la lista de programas o las tablas de símbolos.

Cada opción comienza con el carácter '-'. (En sistemas VAX / VMS o MS-DOS puede utilizar
ya sea '/' o '-'.) En aras de la conformidad con una convención cada vez más común,
las opciones también pueden comenzar con '-'. Las opciones se describen con mayor detalle en la siguiente
.

ftnchek Las opciones se dividen en dos categorías: conmutadores, que son verdaderos o falsos, y
configuraciones, que tienen un valor numérico o de cadena. El nombre de un conmutador tiene el prefijo 'no'
o 'no-' para apagarlo: p. ej. -no puro apagaría las advertencias sobre funciones impuras.
El prefijo 'no' también se puede usar con configuraciones numéricas, lo que tiene el efecto de apagar
las advertencias correspondientes. Las configuraciones que controlan las listas de advertencias tienen una sintaxis especial
se discute más adelante. Solo los primeros 3 caracteres del nombre de una opción (sin contar el '-')
debe proporcionarse. Se pueden usar dos puntos en lugar de un signo igual para números o cadenas
establecer asignaciones; sin embargo, mostramos solo el formulario de signo igual a continuación.

Los interruptores y ajustes que ftnchek reconoce actualmente se enumeran a continuación. Para cada
opción, el valor predeterminado es el que se utiliza si la opción no se especifica explícitamente, mientras que
encender es el valor utilizado si la opción se da sin asignarle un valor.

-argumentos =lista
Controle las advertencias sobre el tipo de subprograma y las discrepancias de argumentos. Predeterminado = encender
= todos.

-array =lista
Controle las advertencias al verificar los argumentos de matriz de subprogramas. Predeterminado = encender =
todas.

-breve Utilice un formato más corto para algunos mensajes de error. Predeterminado = no.

-calltree =lista
Genere una jerarquía de llamadas a subprogramas en uno de los 3 formatos: árbol de llamadas de texto, quién-llama-
who y VCG. Predeterminado = ninguno, encender = árbol, podar, ordenar.

Si -mkhtml se invoca la opción y árbol es la opción de árbol de llamadas aplicada, un archivo
llamado CallTree.html, se producirá representando el árbol en formato HTML.

-cheque Realice la comprobación. Predeterminado = sí.

-columnas =número
Establezca la longitud máxima de la línea en número columnas. (Más allá de esto se ignora). Encendido = máx. =
132. Predeterminado = 72.

-común =lista
Establece el grado de rigor en la verificación de bloques COMUNES. Predeterminado = encender = todo.

-crossref =lista
Imprima una lista de referencias cruzadas de llamadas a subprogramas, uso de etiquetas y / o bloque COMÚN
usar. Predeterminado = ninguno.

-declarar
Imprima una lista de todos los identificadores cuyo tipo de datos no se declara explícitamente. Defecto
= no.

-división
Advertir siempre que se realice la división (excepto la división por una constante). Predeterminado = no.

-errores =número
Establezca el número máximo de mensajes de error por cascada. Predeterminado = encender = 3.

-externo
Advertir si los subprogramas externos que se invocan nunca se definen. Predeterminado = sí.

-f77 =lista
Controle las advertencias específicas sobre las extensiones compatibles con Fortran 77 Standard.
Predeterminado = ninguno, encender = todos.

-f90 =lista
Controle las advertencias específicas sobre las extensiones compatibles con el estándar Fortran 77
que no fueron adoptados como parte del estándar Fortran 90. Predeterminado = ninguno, encendido
= todos.

-f95 =lista
Controle las advertencias específicas sobre las funciones estándar de Fortran 77 que se eliminaron de
el estándar Fortran 95. Predeterminado = ninguno, encender = todos.

-ayuda Imprimir resumen de comandos. Predeterminado = no.

-identifier-chars =lista
Defina caracteres no alfanuméricos que pueden usarse en identificadores. Predeterminado =
encender = signo de dólar y subrayado.

-incluir =camino
Defina un directorio para buscar archivos INCLUDE antes de buscar en todo el sistema.
directorio. Acumulativo. Predeterminado = encendido = ninguno.

-intrínseco =lista
Tratamiento de control de funciones intrínsecas no estándar. Predeterminado = todos excepto etc. para
Versión Unix, todos excepto UNIX para la versión VMS, todos excepto UNIX y etc. por otro
versiones. Encender = todo.

-biblioteca
Iniciar el modo de biblioteca: no advierte sobre subprogramas en el archivo que están definidos pero
nunca usado. Predeterminado = no.

-lista Lista de fuentes de impresión del programa. Predeterminado = no.

-makedcls =lista
Elaborar un archivo de declaraciones. los lista especifica opciones para el formato de este
expediente. Predeterminado = ninguno, encender = declaraciones.

-mkhtml =lista
Cree archivos de documentos HTML individuales a partir de análisis de ftnchek y comentarios de código.
Por lo general, también querrá especificar -call = árbol para crear el archivo HTML raíz
CallTree.html. Predeterminado = ninguno, encender = documentos.

-principiante
Proporcione resultados adecuados para usuarios novatos. Predeterminado = sí.

-salida =nombre de archivo
Envíe la salida al archivo dado. Por defecto y encendido envía la salida a la pantalla.
(La extensión de nombre de archivo predeterminada es .lis).

-pointersize =número
Establezca el tamaño de las variables de `` puntero Cray '' en número bytes. Mín = 1, máx. = 16.
Predeterminado = encender = 4

-portabilidad =lista
Advierte sobre usos no portátiles. Predeterminado = ninguno, encender = todos.

-pretty =lista
Dar advertencias por una apariencia posiblemente engañosa del código fuente. Predeterminado = turn-
encendido = todo.

-proyecto =lista
Cree un archivo de proyecto (vea la explicación a continuación). Predeterminado = no.

-puro Suponga que las funciones son puras, es decir, que no tienen efectos secundarios. Predeterminado = sí.

-tranquilo Produzca un resultado menos detallado. Predeterminado = no.

-referencia
Imprimir tabla de subprogramas referenciados por cada subprograma. Predeterminado = no.

-recursos
Imprime la cantidad de recursos utilizados para analizar el programa. Predeterminado = no.

-seis caracteres
Enumere cualquier nombre de variable que entre en conflicto con una longitud de 6 caracteres. Predeterminado = no.

-clasificar Imprime la lista de subprogramas ordenados en el orden de requisitos previos. Predeterminado = no.

-source =lista
Seleccione las opciones de formato de origen: forma fija o libre, DEC Fortran con formato de pestaña
líneas, instrucción INCLUDE de estilo VMS, secuencias de escape de barra invertida de estilo UNIX y
tipado implícito de parámetros. Predeterminado = ninguno, encender = todos.

-estilo =lista
Producir advertencias muy exigentes sobre programación obsoleta o pasada de moda.
construcciones. Predeterminado = ninguno, encender = todos.

-symtab
Imprima la tabla de símbolos y la tabla de etiquetas para cada subprograma. Predeterminado = no.

-truncamiento =lista
Compruebe la posible pérdida de precisión por truncamiento. Predeterminado = encender = todo.

-usage =lista
Controle las advertencias sobre variables no utilizadas o no inicializadas, bloques comunes, etc.
Predeterminado = encender = todo.

-vcg Producir formato VCG de gráfico de llamadas.

-versión
Imprimir número de versión. Predeterminado = no.

-volátil
Suponga que los bloques COMUNES pierden definición entre activaciones. Predeterminado = no. (Obsoleto.
Uso -común = volátil en lugar.)

-wordsize =número
Establezca el tamaño de palabra predeterminado para cantidades numéricas en número bytes. Predeterminado = encender =
4 bytes.

-wrap =número
Establecer la columna de salida en la que envolver los mensajes de error largos y las advertencias en la siguiente
línea. Si se establece en 0, apague la envoltura. Predeterminado = encender = 79.

Cuando se utiliza más de una opción, deben estar separadas por un espacio en blanco, excepto en
sistemas como VMS donde las opciones comienzan con una barra inclinada (/). No se pueden colocar espacios en blanco
alrededor del signo igual (=) en un entorno. ftnchek "?" producirá un resumen de comandos
enumerando todas las opciones y configuraciones.

Para configuraciones que toman una lista de palabras clave, a saber -argumentos, -formación, -árbol de llamadas, -común,
-referencia cruzada, -f77, -f90, -f95, -intrínseco, -makedcls, -mkhtml, -portabilidad, -bonita,
-proyecto, -Fuente, -Estilo, -truncamientoy -uso, la lista consta de palabras clave
separados por comas o dos puntos. Si se omite la lista de palabras clave, el efecto es establecer
la opción a su valor de activación (igual que `` todos '' en la mayoría de los casos). Además, si la lista es
omitido, el nombre de la configuración puede tener el prefijo no or nO- para desactivar todas las opciones
control S. Por ejemplo, -f77 activa todas las advertencias sobre construcciones no estándar, mientras que
-nof77 los apaga a todos. Tres palabras clave especiales son:

ayuda Imprima todas las palabras clave de opciones controladas por la configuración, con un breve
explicación de sus significados. Esta palabra clave no se puede incluir en una lista con otras
palabras clave

todos Configure todas las opciones. Esto activa todas las opciones controladas por la configuración.

ninguna Borrar todas las opciones. Esto desactiva todas las opciones controladas por la configuración.

Estas tres palabras clave especiales deben indicarse en su totalidad. Para todas las demás palabras clave, solo tantas
letras de la palabra clave que sean necesarias para identificarla sin ambigüedades, o
Se puede utilizar un patrón comodín. Incluir una palabra clave en la lista convierte el correspondiente
opción activada. Por ejemplo, -f77 = intrínseco activaría solo las advertencias sobre el uso de
funciones intrínsecas no estándar. Prefijo de una palabra clave por nO- desactiva su opción. Para
ejemplo, -pretty = no-long-line desactiva las advertencias sobre líneas que superan las 72 columnas en
longitud mientras deja en efecto todas las demás advertencias sobre apariencia engañosa. Si un
la configuración tiene predeterminada ninguna, puede activar todas las opciones excepto una o dos usando todos
primero. Por ejemplo, -f77 = todo, no incluido habilita advertencias sobre todas las extensiones no estándar
excepto las declaraciones INCLUDE. Si un ajuste tiene valores predeterminados todos, puedes desactivar todas las advertencias
excepto uno o dos usando ninguna primero. Por ejemplo, -truncamiento = ninguno, degradación giraría
desactivado todas las advertencias relacionadas con la precisión, excepto las degradaciones. Los patrones comodín contienen un
asterisco para representar cualquier cadena de caracteres. Si se utiliza un patrón comodín, todos los
las advertencias que lo coinciden se ven afectadas. Si nO- se antepone al patrón, todas las coincidencias
las advertencias están desactivadas; de lo contrario, todas están activadas. La longitud mínima inequívoca
La regla no se aplica a la coincidencia de comodines. Por ejemplo, use -uso = no- * var * apagar
todas las advertencias relacionadas con el uso de variables (tanto locales como comunes). (Los usuarios de Unix pueden necesitar
cite cualquier opción que contenga comodines para evitar que el shell intente
expandirlos.) Los comodines se reconocen solo en listas de palabras clave de advertencia, no en la parte superior
opciones de nivel en sí mismas.

Cuándo ftnchek arranca, busca variables de entorno y también preferencias
expediente. Cualquier opción definida en el entorno o en el archivo de preferencias se utiliza como
valores predeterminados en lugar de los valores predeterminados incorporados. Están anulados por cualquier línea de comando.
opciones. Consulte la sección sobre cómo cambiar los valores predeterminados para obtener detalles sobre el entorno.
opciones y el archivo de preferencias.

Al dar un nombre a un archivo de entrada, la extensión es opcional. Si no se da ninguna prórroga,
ftnchek primero buscará un archivo de proyecto con extensión .prj, y lo usaré si
existe. Si no entonces ftnchek buscará un archivo fuente de Fortran con la extensión .para
para sistemas VMS, .f para sistemas UNIX. Se puede asignar más de un nombre de archivo a ftnchek,
y procesará los módulos en todos los archivos como si estuvieran en un solo archivo.

Se permiten comodines en la especificación de nombres de archivo en la línea de comando para el VMS
y versiones MS-DOS, como también, por supuesto, bajo UNIX y cualquier otro sistema que funcione
Expansión de comodines en el procesador de comandos.

Si no se proporciona un nombre de archivo, ftnchek leerá la entrada de la entrada estándar.

CAMPUS


Esta sección proporciona una discusión más detallada de ftnchek opciones de la línea de comandos. Opciones
y los nombres de archivo se pueden intercalar en una línea de comando. La mayoría de las opciones son posicionales: cada
La opción permanece en efecto desde el punto en que se encuentra hasta que es anulada por un
cambio posterior. Así, por ejemplo, la lista puede suprimirse para algunos archivos y no para
otros. Las excepciones son: -intrínseco, -tamaño de punteroy -Tamaño de la palabra ajustes, que
no se puede cambiar una vez que se ha iniciado el procesamiento de archivos de entrada; los -argumentos, -formación,
-árbol de llamadas, -común, -referencia cruzada, -externo, -referencia, -recursos, -clasificar, -vcgy -volátil
opciones, donde la acción depende solo del valor de la opción después del procesamiento de
los archivos de entrada están terminados; y el -incluir ajuste, que es acumulativo.

Los nombres de las opciones de la siguiente lista están en orden alfabético.

-argumentos =lista
Controla las advertencias sobre discrepancias entre los argumentos de subprograma reales y ficticios,
y también sobre los desajustes entre el tipo de subprograma esperado y real. (Un real
argumento es un argumento que la persona que llama pasa al subprograma; un argumento ficticio es
un argumento recibido por el subprograma.) De forma predeterminada, todas las advertencias están activadas.

El lista consta de palabras clave separadas por comas o dos puntos. Dado que todos estos
las advertencias están activadas de forma predeterminada, incluya una palabra clave con el prefijo nO- para apagar un
advertencia particular. Hay tres palabras clave especiales: todos para encender todos los
advertencias sobre argumentos, ninguna para apagarlos todos, y ayuda para imprimir la lista de
todas las palabras clave con una breve explicación de cada una. Si lista se omite, -argumentos
es equivalente a -argumentos = todosy -sin argumentos es equivalente a -argumentos = ninguno.
Las palabras clave de advertencia con sus significados son las siguientes:

arreglo:
advierte sobre el uso inconsistente de argumentos que son matrices. Estas advertencias pueden
ser más controlado por el -formación .

tipo:
advierte sobre argumentos ficticios de un tipo de datos diferente de los argumentos reales.

tipo de función:
advertir si la invocación asume que el valor de retorno de la función es de un tipo diferente
de lo que realmente es. También advierte si una función se llama como subrutina, o
viceversa.

número:
advertir sobre la invocación de un subprograma con un número de argumentos diferente al
espera el subprograma.

Para compatibilidad con versiones anteriores de ftnchek, una forma numérica de este
también se acepta el ajuste: el lista se reemplaza por un número del 0 al 3. Un valor de
0 desactiva todas las advertencias, 1 activa solo número, 2 enciende todos excepto número,
y 3 activa todas las advertencias.

Esta configuración no se aplica a la comprobación de invocaciones de funciones intrínsecas o
funciones de instrucción, que solo pueden desactivarse mediante -sin verificación .

Ver también: -formación, -biblioteca, -uso.

-array =lista
Controla el grado de rigor en la verificación de la concordancia entre real y ficticio.
Argumentos de subprograma que son matrices. Las advertencias controladas por esta configuración son
para construcciones que podrían ser utilizadas legítimamente por un programador experto,
pero que a menudo indican errores de programación. De forma predeterminada, todas las advertencias se activan
en.

El lista consta de palabras clave separadas por comas o dos puntos. Dado que todos estos
las advertencias están activadas de forma predeterminada, incluya una palabra clave con el prefijo nO- para apagar un
advertencia particular. Hay tres palabras clave especiales: todos para encender todos los
advertencias sobre argumentos de matriz, ninguna para apagarlos todos, y ayuda para imprimir el
lista de todas las palabras clave con una breve explicación de cada una. Si lista se omite,
-formación es equivalente a -array = todoy -noarreglo es equivalente a -array = ninguno.
Las palabras clave de advertencia con sus significados son las siguientes:

dimensiones:
advertir si los argumentos difieren en su número de dimensiones, o si el
El argumento es un elemento de matriz, mientras que el argumento ficticio es una matriz completa.

tamaño:
advertir si ambos argumentos son matrices, pero difieren en el número de elementos.

Para compatibilidad con versiones anteriores de ftnchek, una forma numérica de este
también se acepta el ajuste: el lista se reemplaza por un número del 0 al 3. Un valor de
0 desactiva todas las advertencias, 1 activa solo dimensiones, 2 enciende solo tamañoy
3 activa todas las advertencias.

Nota: Siempre se da una advertencia independientemente de esta configuración si el argumento real
es una matriz mientras que el argumento ficticio es una variable escalar, o si el
El argumento es una variable o expresión escalar, mientras que el argumento ficticio es una matriz.
Estos casos rara vez son intencionales. (Para desactivar incluso estas advertencias, utilice
-argumentos = sin matriz.) Nunca se da ninguna advertencia si el argumento real es un
elemento de matriz mientras que el argumento ficticio es una variable escalar. De dimensión variable
matrices y matrices dimensionadas con 1 o asterisco coinciden con cualquier número de matriz
elementos. No se comprueba si las matrices multidimensionales coinciden en el tamaño
de cada dimensión por separado.

Ver también: -argumentos, -biblioteca, -uso.

-breve
Selecciona un formato más corto para algunos mensajes de advertencia. En la actualidad, las únicas advertencias
controlados por esta bandera son los que se imprimen al final del procesamiento cada
subprograma. Estos incluyen advertencias sobre las variables que se establecen pero no se utilizan o
utilizados antes del conjunto, nombres de variables que no se ajustan al estándar Fortran 77,
etc. (Estas advertencias pueden suprimirse por completo dependiendo de otras banderas, como
las -uso or -f77 banderas.) En el formato predeterminado, cada variable se enumera en un
línea separada, junto con el número de línea donde la variable se declara, establece o
utilizado, de acuerdo con la naturaleza de la advertencia. El formato más breve simplemente enumera todos
variables a las que se aplica la advertencia, con hasta 4 variables por línea.

Ver también: -tranquilo.

-calltree =lista
Causas ftnchek para imprimir la estructura de llamadas del programa completo.

El lista consta de palabras clave separadas por comas o dos puntos. Hay dos especiales
palabras clave: ninguna para desactivar todas las opciones, y ayuda para imprimir la lista de todos los
palabras clave con una breve explicación de cada una. (La palabra clave todos enciende todos los
opciones, pero normalmente no se deben usar ya que solo se debe usar un formato
especificado.) Si lista se omite, -árbol de llamadas es equivalente a -calltree = árboly
-nocalltree es equivalente a -calltree = ninguno. De forma predeterminada, no se imprime ningún gráfico de llamadas.

Si se invoca la opción -mkhtml y árbol es la opción de árbol de llamadas aplicada, un archivo
llamado CallTree.html, también se producirá representando el árbol en formato HTML. Esta
El archivo es útil como punto de partida para explorar los archivos HTML que describen cada
componente del programa.

Las palabras clave que controlan qué formato se utiliza son las siguientes:

árbol:
producir el gráfico de llamadas en formato de árbol.

referencia:
producir el gráfico de llamadas en formato de quién-llama-quién (igual que -referencia cambiar).

vcg:
producir el gráfico de llamadas en formato VCG (igual que -vcg cambiar).

Solo uno de los formatos árbol, referenciao vcg puede especificarse.

Las siguientes palabras clave controlan las opciones que afectan a la salida:

ciruela pasa:
podar subárboles repetidos (aplicable solo con árbol). Este es el predeterminado.

sort:
Clasifique a los niños de cada rutina en orden alfabético. Este es el predeterminado.

Vea la discusión de la -referencia y -vcg banderas para obtener detalles sobre estos
formatos.

árbol formato, el gráfico de llamadas se imprime a partir del programa principal,
que se enumera en la primera línea en el margen izquierdo. Luego, en las siguientes líneas,
cada rutina llamada por el programa principal se enumera, sangran algunos espacios, seguido
por el subárbol que comienza en esa rutina.

En el modo predeterminado, si una rutina es llamada por más de una rutina, su
El subárbol de la llamada se imprime solo la primera vez que se encuentra Las llamadas posteriores dan solo
el nombre de la rutina y el aviso `` (ver arriba) ''. Para tener el subárbol impreso para
cada ocurrencia de la rutina, use la opción no podar.

Tenga en cuenta que el árbol de llamadas estará incompleto si alguno de los archivos de entrada es un proyecto
archivos que contienen más de un módulo que se crearon en -biblioteca modo. Ver el
discusión de los archivos del proyecto a continuación.

Puntos técnicos: Cada lista de rutinas llamadas por una rutina dada se imprime en
orden alfabético a menos que el sin clasificar se da la opción. Si varios programas principales
se encuentran, el árbol de llamadas de cada uno se imprime por separado. Si no hay programa principal
encontrado, se imprime un informe a tal efecto, y los árboles de llamadas de cualquier nivel superior
se imprimen las rutinas que no son de biblioteca. Esta bandera solo controla la impresión de la llamada
árbol: ftnchek construye el árbol de llamadas en cualquier caso porque se utiliza para determinar
qué módulos de la biblioteca se verificarán de forma cruzada. Vea la discusión de la -biblioteca
bandera.

Para compatibilidad con versiones anteriores de ftnchek, una forma numérica de este
también se acepta el ajuste: el lista se reemplaza por un número del 0 al 15. Este
el número se forma a partir de 1 para árbol formato, 2 para referencia formato, o 3 para vcg
formato, más 4 para no podar, y 8 para sin clasificar.

Ver también: -referencia cruzada, -biblioteca, -referencia, -clasificar, -symtab, -vcg.

-cheque
Este interruptor se proporciona para que los mensajes de error y advertencia se puedan apagar cuando
ftnchek se utiliza para fines distintos a la búsqueda de errores, como hacer declaraciones
o imprimir el árbol de llamadas. Es posicional, por lo que después de desactivar todas las comprobaciones,
las comprobaciones seleccionadas se pueden volver a activar. El efecto de -sin verificación es poner todo
interruptores, configuraciones numéricas y configuraciones que controlan listas de advertencias a sus
valores de desactivación, como si todos hubieran sido especificados con el prefijo -no. Interruptores
y configuraciones que especifican opciones y modos de operación, en lugar de controlar
advertencias, no se ven afectadas. Estos son -columnas, -referencia cruzada, -incluir, -intrínseco,
-biblioteca, -lista, -makedcls, -principiante, -producción, -tamaño de puntero, -proyecto, -tranquilo,
-referencia, -recursos, -clasificar, -Fuente, -symtab, -vcg, -versión, -Tamaño de la palabray
-envoltura. Predeterminado = sí.

Los errores de análisis (errores de sintaxis debidos a declaraciones no reconocidas o mal formadas) no son
suprimido por este interruptor, ya que los resultados pueden ser incorrectos si ftnchek no tiene
analizó el programa correctamente.

Hay varios errores y mensajes de advertencia que no están controlados por
cualquier otro interruptor, por lo que solo se puede apagar con este interruptor. Tenga en cuenta que el uso de
-cheque siguiendo -sin verificación sólo tiene el efecto de convertir estas advertencias especiales
vuelve a encender y no restaura todas las comprobaciones que desactivó. Estas advertencias son:

o El módulo no contiene declaraciones ejecutables.

o En forma de fuente libre, falta espacio donde se requiere espacio (por ejemplo, entre un
palabra clave y un identificador) o espacio presente donde no se permite ninguno (p. ej.
un identificador).

o Especificación de longitud cero o negativa en una declaración de tipo de datos del formulario
escriba * len.

o Operandos no válidos en una expresión.

o Matriz asignada a escalar.

o Discrepancia de tipos entre el índice DO y los límites.

o Bloque común indefinido declarado en la instrucción SAVE.

o Función intrínseca declarada explícitamente con un tipo incompatible.

o Función intrínseca desconocida declarada explícitamente en una instrucción INTRINSIC.

o La función intrínseca pasada como un argumento de subprograma no se declara en un
Declaración INTRINSIC.

o Función intrínseca o función de declaración invocada incorrectamente.

o La función no establece el valor de retorno antes de la instrucción RETURN.

o Valor constante del parámetro no evaluado (esto es ftnchekes culpa, y es solo
informándole del hecho).

o El punto de entrada de un subprograma se utiliza posteriormente como un nombre de subprograma diferente.

o Palabra clave desconocida utilizada en una declaración de E / S.

o Referencia de etiqueta ilegal (por ejemplo, GOTO se refiere a una declaración no ejecutable; E / S
declaración se refiere a una declaración sin formato).

Ver también: -errores.

-columnas =número
Establezca la longitud máxima de la declaración en número columnas. (Más allá de esto se ignora).
La configuración se proporciona para permitir la verificación de programas que pueden violar el Fortran
límite estándar de 72 columnas para la longitud de una declaración. De acuerdo con la
estándar, todos los caracteres después de la columna 72 se ignoran. Si esta configuración se utiliza cuando
las -f77 = palangre opción está en efecto, se dará una advertencia para cualquier línea en
qué caracteres después de la columna 72 se procesan. Encendido = máx. = 132. Predeterminado = 72.

Esta configuración no suprime las advertencias sobre la presencia de personajes más allá
columna 72. Para procesar código con texto de programa significativo más allá de la columna 72, utilice este
ajuste y asegúrese de que el -f77 Linea larga la opción está desactivada. Para procesar código con
números de secuencia en las columnas 73 a 80, deje la configuración de las columnas en el valor predeterminado
valorar y utilizar el -pretty = no-long-line bandera.

Ver también: -f77, -bonita.

-común =lista
Esta configuración controla el rigor de la verificación de los bloques COMUNES. Por defecto, todos
advertencias excepto volátiles están encendidos

El lista consta de palabras clave separadas por comas o dos puntos. Dado que la mayoría de estos
las advertencias están activadas de forma predeterminada, incluya una palabra clave con el prefijo nO- para apagar un
advertencia particular. Hay tres palabras clave especiales: todos para encender todos los
advertencias ninguna para apagarlos todos, y ayuda para imprimir la lista de todas las palabras clave
con una breve explicación de cada uno. Si lista se omite, -común es equivalente a
-common = dimensiones, exacta, longitud, tipoy -no común es equivalente a -común = ninguno.
Las palabras clave de advertencia con sus significados son las siguientes:

dimensiones:
Las matrices correspondientes en cada declaración de un bloque deben coincidir en tamaño y
número de dimensiones. Esta opción solo tiene efecto cuando se usa junto con
exacto.

exacto:
la comparación de dos bloques se realiza variable por variable en lugar de simplemente
requiriendo acuerdo entre las ubicaciones de almacenamiento correspondientes. Use esto si todos
Se supone que las declaraciones de un bloque COMÚN dado son idénticas, lo cual es un
buenas prácticas de programación.

de largo:
advertir si diferentes declaraciones del mismo bloque no son iguales en longitud total.
El estándar Fortran 77 requiere cada bloque común con nombre, pero no el común en blanco,
tener la misma longitud en todos los módulos del programa.

tipo:
en cada declaración de un bloque COMÚN dado, las ubicaciones de memoria correspondientes
(palabras o bytes) deben coincidir en el tipo de datos. Si se usa junto con exacto, esta
requerirá que las variables correspondientes coincidan en el tipo de datos.

volátiles:
Suponga que los bloques COMUNES son volátiles.

Muchos programadores de Fortran asumen que las variables, ya sean locales o en COMÚN, son
estático, es decir, que una vez asignado un valor, retienen ese valor de forma permanente hasta
asignado un valor diferente por el programa. Sin embargo, de hecho, el Fortran 77
Standard no requiere que este sea el caso. Las variables locales pueden convertirse
indefinido entre activaciones de un módulo en el que se declaran. Similar,
Los bloques COMUNES pueden volverse indefinidos si ningún módulo en el que están declarados está
activo. (El término técnico para entidades con este comportamiento es `` automático '', pero
ftnchek usa la palabra `` volátil '' ya que es más clara para los no especialistas).
Bloques COMUNES declarados en una sentencia SAVE, o declarados en el programa principal o en un
El subprograma de datos de bloque permanece definido mientras el programa está en ejecución. Variables
y los bloques COMUNES que pueden volverse indefinidos en algún momento se denominan volátiles.

Si -común = volátil la bandera está encendida, ftnchek te advertirá si encuentra un
bloque COMÚN volátil. Si, al mismo tiempo, el -usage = com-block-volatile opción
está encendido (que es el predeterminado), ftnchek intentará comprobar si dicho bloque
puede perder su estado definido entre activaciones de los módulos donde se encuentra
declarado. ftnchek no hace un buen trabajo en esto: la regla utilizada es ver
si el bloque se declara en dos subárboles separados del árbol de llamadas. Para
Por ejemplo, este sería el caso si dos módulos, ambos llamados desde el programa principal,
compartió un bloque COMÚN volátil. Un bloque también puede quedar indefinido entre dos
sucesivas llamadas del mismo subprograma, pero ftnchek no es lo suficientemente inteligente para decir
si un subprograma se puede llamar más de una vez, por lo que este caso no se verifica.

El -común = volátil bandera no afecta el camino ftnchek comprueba el uso de local
variables.

Para compatibilidad con versiones anteriores de ftnchek, una forma numérica de este
también se acepta el ajuste: el lista se reemplaza por un número del 0 al 3. Un valor de
0 desactiva todas las advertencias, 1 o más activa tipo, 2 o más se enciende
de largoy 3 se enciende dimensiones y exacto además. La forma numérica no se puede encender
las volátiles .

Ver también: -biblioteca, -uso.

-crossref =lista
Imprime tablas de referencias cruzadas. Predeterminado = ninguno.

El lista consta de palabras clave separadas por comas o dos puntos. Las palabras clave con
sus significados son los siguientes:

llamadas:
La tabla enumera cada subprograma seguido de una lista de rutinas que lo llaman.
Este listado omite los módulos de la biblioteca que no están en el árbol de llamadas de la
programa. La lista está ordenada alfabéticamente.

común:
La tabla enumera cada bloque COMÚN seguido de una lista de las rutinas que acceden
eso. Estas rutinas enumeradas son aquellas en las que algunas variables en el COMÚN
se accede al bloque, no simplemente a las rutinas que declaran el bloque. (Para
averigüe qué rutinas declaran un bloque COMÚN pero no lo use, vea la
-uso bandera.)

etiquetas:
La tabla enumera cada etiqueta seguida de una lista de todas las referencias a ella. Una etiqueta
La referencia se denota por el número de línea y el tipo de declaración de la referencia.
declaración. La lista de etiquetas está en orden secuencial. Las referencias son
enumerados en el orden en que se encuentran en el programa.

Ver también: -árbol de llamadas, -referencia, -clasificar, -symtab, -vcg.

-declarar
Si se establece esta bandera, todos los identificadores cuyo tipo de datos no se declara en cada módulo
aparecerá en la lista. Esta bandera es útil para ayudar a encontrar nombres de variables mal escritos,
etc. Se proporcionará el mismo listado si el módulo contiene un NINGUNO IMPLÍCITO
declaración. Predeterminado = no.

Ver también: -seis caracteres, -uso.

-división
Este interruptor se proporciona para ayudar a los usuarios a detectar posibles divisiones entre cero problemas. Si
se selecciona este interruptor, se marcarán todas las divisiones excepto por una constante. (Eso
Se asume que el usuario es lo suficientemente inteligente como para no dividir por una constante que es
igual a cero!) Predeterminado = no.

Ver también: -portabilidad, -truncamiento.

-errores =número
Establezca el número máximo de mensajes de error en una `` cascada ''. Durante la comprobación de
acuerdo de argumentos de subprograma, declaraciones de bloque comunes, etc.
a veces, un solo caso generará una larga serie de advertencias. A menudo esto simplemente
indica alguna otra causa que no sea una discrepancia genuina artículo por artículo, como para
ejemplo, una variable que falta en una lista. Entonces en tales casos ftnchek deja de imprimir
las advertencias después de que se alcanza el límite de cascada, y el remolque `` etc ... '' es
impreso para indicar que hubo más errores no impresos. Si lo crees
Es probable que estas advertencias sean genuinas, use esta configuración para ver más.
Encendido = predeterminado = 3, máx. = 999. Un valor de 0 significa que no hay límite.

Esta configuración no establece un límite general en el número de mensajes de error impresos,
sólo el número impreso en una cascada. La mayoría de los tipos de advertencias y errores
Los mensajes no están sujetos al efecto cascada y, por lo tanto, no se ven afectados por este
configuración. Para desactivar las advertencias en general, utilice el control de advertencia individual
opciones o el -sin verificación .

Ver también: -cheque.

-externo
Causas ftnchek para informar si los subprogramas invocados por el programa nunca se
definido. Normalmente, si ftnchek se ejecuta en un programa completo, cada
un subprograma distinto de las funciones intrínsecas debe definirse en alguna parte. Girar
Apague este interruptor si solo desea verificar un subconjunto de archivos que forman parte de un
programa completo más grande. Se seguirán comprobando los argumentos del subprograma.
exactitud. Predeterminado = sí.

El -externo La bandera ahora es reemplazada por la -usage = ext-undefined opción. Para el
en aras de la conveniencia, el -externo se conserva la bandera, de modo que -noexterno es equivalente
a -usage = no-ext-undefined opción. La -externo el interruptor puede retirarse eventualmente.

Ver también: -biblioteca.

-f77 =lista
Utilice esta configuración para detectar extensiones de idioma que violen Fortran 77
Estándar. Estas extensiones pueden hacer que su programa no sea portátil. Ejemplos de
incluir el uso de guiones bajos en los nombres de las variables; nombres de variables de más de seis
caracteres; líneas de declaración de más de 72 caracteres; y declaraciones no estándar
como la estructura DO ... ENDDO. ftnchek no informa sobre el uso de
letras minusculas. De forma predeterminada, todas las advertencias están desactivadas.

Esta configuración proporciona un control detallado sobre las advertencias sobre las extensiones compatibles.
al estándar Fortran 77. (Más detalles sobre las extensiones en sí mismas son
que se indica a continuación en la sección sobre extensiones). lista consta de palabras clave separadas
por comas o dos puntos. Hay tres palabras clave especiales: todos para encender todos los
advertencias sobre extensiones no estándar, ninguna para apagarlos todos, y ayuda imprimir
la lista de todas las palabras clave con una breve explicación de cada una. Si lista se omite,
-f77 es equivalente a -f77 = todoy -nof77 es equivalente a -f77 = ninguno. La advertencia
Las palabras clave con sus significados son las siguientes:

aceptar-tipo:
Declaraciones ACCEPT y TYPE I / O.

límites de matriz:
Expresiones que definen límites de matriz que contienen funciones o elementos de matriz
Referencias.

asignación-stmt:
Declaraciones de asignación que involucran matrices. En Fortran 90, una matriz se puede
asignado a otra matriz de forma compatible, o se puede asignar un escalar a
una matriz. Ninguna de estas asignaciones está permitida en Fortran 77.

Se produce una advertencia relacionada cuando se asigna una matriz a un escalar. Desde esto
es ilegal también en Fortran 90, siempre se advierte independientemente de la
-f77 ajuste (a menos que todas las comprobaciones estén desactivadas con el -sin verificación bandera).

decl basado en atributos:
Escriba las declaraciones en el nuevo estilo basado en atributos de Fortran 90. Este estilo de
La declaración se distingue por el uso de dos puntos dobles (: :) entre los
lista de atributos y la lista de variables declaradas. Esta opción también
Controla las advertencias para el uso de Fortran 90 especificadores de longitud o tipo en el tipo.
declaraciones. (Aunque estos especificadores se pueden utilizar en
declaraciones, están controladas por esta opción para evitar la proliferación de
-f77 opciones.)

matriz-automática:
Matrices locales (no ficticias) que tienen tamaño variable. Estos corresponderían a
matrices cuyo almacenamiento tendría que asignarse dinámicamente en tiempo de ejecución.

barra invertida:
Escape de barra invertida de Unix en cadenas. Esta advertencia se dará solo si el
-source = unix-backslash se especifica el ajuste para provocar el escape
interpretación de la barra invertida ..

byte: Declaración del tipo de datos BYTE.

construcción de caso:
La construcción SELECT CASE.

personaje:
Extensiones al estándar Fortran 77 con respecto a los datos de los personajes. En el presente,
esto solo controla las advertencias sobre variables de caracteres declaradas con cero o
longitud negativa. En Fortran 77, todas las variables de carácter deben ser positivas.
largo. En Fortran 90, pueden ser de longitud cero y las declaraciones de que
especificar longitudes negativas, convirtiéndose en cero para la declarada
largo. Nota: debido a que los especificadores de longitud negativos pueden indicar una programación
error, la advertencia sobre ellos se da incluso si esta opción está desactivada, y
es suprimido solo por el -sin verificación bandera.

nombre-subprog-común:
Bloque común y subprograma con el mismo nombre.

nombre-constructo:
Uso de un nombre de construcción para etiquetar una declaración de control.

continuación:
Más de 19 líneas de continuación sucesivas.

cpp: Directivas del preprocesador Unix C en el código fuente.

cray-puntero:
Sintaxis de `` puntero Cray ''.

salida del ciclo:
Las declaraciones CYCLE y EXIT.

d-comentario:
Comentarios de depuración que comienzan con D en el código fuente.

dec-pestaña:
DEC Código fuente con formato de pestaña al estilo Fortran. Esta advertencia se dará solo
si el -source = dec-tab La configuración se especifica para provocar la interpretación de las pestañas
en este estilo.

hacer-enddo:
Extensiones de bucle DO: etiqueta de declaración de terminal omitida, END DO y WHILE.

doble complejo:
Tipo de datos complejo de doble precisión.

formato-dólares:
Código de control de signo de dólar en declaraciones FORMAT.

formato-editar-descr:
Descriptores de edición no estándar en declaraciones FORMAT.

función-noparen:
Definición de función sin paréntesis.

implícito-ninguno:
Declaración IMPLÍCITA NINGUNA.

incluir:
INCLUDE declaración.

comentario en línea:
Comentarios en línea que comienzan con un signo de exclamación.

lista-interna-io:
E / S dirigidas por listas hacia o desde un archivo interno.

intrínseco:
Funciones intrínsecas no estándar.

io-palabras clave
Palabras clave no estándar utilizadas en declaraciones de E / S. Estos se dividen en tres grupos.
El primer grupo incluye palabras clave que se aceptan en Fortran 90:

ACTION PAD LEERESCRIBIR
TAMAÑO DE POSICIÓN AVANZADA
DELIM LEER ESCRIBIR
EOR
El segundo grupo comprende las siguientes palabras clave de VMS Fortran:

TAMAÑO DE BLOQUE EXTENDER TAMAÑO SOLO LECTURA
TAMAÑO INICIAL DE BUFFERCOUNT TAMAÑO DE REGISTRO
TIPO DE REGISTRO CARRIAGECONTROL MAXREC
NOMBRE DE ARCHIVO PREDETERMINADO (en ABIERTO) COMPARTIDO
DISP TIPO NOSPANBLOCK
DESECHAR LA ORGANIZACIÓN
(La palabra clave NAME es estándar solo en la instrucción INQUIRE).
grupo consta de la siguiente palabra clave de IBM / MVS:

NUM
Esta bandera también controla una advertencia sobre el uso de ACCESS = 'APPEND', que es
aceptado por algunos compiladores. El valor de 'APPEND' no es válido para ninguna E / S
especificador en Fortran 77 estándar, y en Fortran 90 'APPEND' debe usarse
como valor del especificador POSITION, no ACCESS.

Linea larga:
Declaraciones con código significativo más allá de las 72 columnas. Esta advertencia se da solo
si el -columnas La configuración se ha utilizado para aumentar el ancho del campo de declaración.

nombre largo:
Identificadores de más de 6 caracteres.

mixto-común:
Datos de carácter y no carácter mezclados en el bloque COMÚN.

expr mixto:
Combinaciones de tipos no estándar en expresiones, por ejemplo DOBLE PRECISIÓN
con COMPLEX, asignando hollerith a enteros, operaciones lógicas sobre enteros.

nombre-dólares:
Signo de dólar utilizado como carácter en identificadores.

nombre-subrayado:
Guión bajo utilizado como carácter en identificadores.

lista de nombres:
Declaración NAMELIST.

param-tipo-implícito:
Tipificación implícita de un parámetro por el tipo de datos del valor asignado. Esta
La advertencia solo puede ocurrir si la escritura implícita de parámetros ha sido activada por el
-source = tipo-param-implícito opción, o si la instrucción PARAMETER es de la
forma no estándar sin paréntesis. Si esta opción está activada, cualquier
Se advertirá sobre las instancias en las que se produce la escritura de parámetros implícita. Si
desea que se le advierta solo en aquellos casos en los que el tipo de datos implícito
difiere del tipo predeterminado, utilice -portabilidad = param-tipo-implícito preferiblemente.
Según el estándar Fortran 77, el tipo de datos de un parámetro se da
por las mismas reglas que para una variable, y si es necesario una conversión de tipo es
hecho cuando se asigna el valor.

param-intrínseco:
Función intrínseca o exponenciación por un real utilizado para definir el valor de un
Definición de PARÁMETRO.

param-noparen:
Sentencia PARAMETER sin paréntesis. El usuario debe tener en cuenta que el
La semántica de esta forma del enunciado difiere de la del estándar.
formulario: en este formulario, el parámetro toma su tipo de datos del valor
asignado, en lugar de tener su tipo de datos predeterminado basado en la primera letra
del nombre del parámetro. (Esta forma de la declaración PARÁMETRO se introdujo
por DEC antes de que se definiera el estándar Fortran 77, y debe evitarse).

puntero:
Fortran 90 sintaxis estándar relacionada con punteros, incluidos POINTER, TARGET y
Declaraciones de tipo ALLOCATABLE, declaraciones ALLOCATE, DEALLOCATE y NULLIFY,
y asignación de puntero usando =>.

cuádruple constante:
Constantes reales de precisión cuádruple, por ejemplo, de la forma 1.23Q4.

comillas:
Cadenas delimitadas por comillas en lugar de apóstrofos.

reubica:
Operadores relacionales (de comparación) compuestos de puntuación, a saber: <<= == / =
>> =.

punto y coma:
Se utiliza punto y coma como separador de declaraciones.

orden de declaración:
Declaraciones fuera de la secuencia exigida por la Norma. El permitido
La secuencia se ilustra en la Tabla 1 en la sección Interpretación del resultado.

constante sin tipo:
Constantes sin tipo, por ejemplo Z'19AF '.

tipo-tamaño:
Declaraciones de tipo que especifiquen un tamaño, por ejemplo REAL * 8.

formato variable:
Especificación de repetición variable o tamaño de campo en FORMATO. Estos son de la forma
< expr >.

vms-io:
Obsoleto. Ahora tiene el mismo significado que el io-palabras clave palabra clave.

Ver también: -f90, -f95, -portabilidad, -bonita, -Estilo, -Tamaño de la palabra.

-f90 =lista
Esta configuración proporciona un control detallado sobre las advertencias sobre las extensiones compatibles.
al estándar Fortran 77 que no fueron adoptados como parte del Fortran 90
Estándar. Tenga en cuenta que ftnchek no es compatible con el idioma completo de Fortran 90.
Sin embargo, admite algunas extensiones comunes de Fortran 77 que eran frecuentes
antes de que se definiera Fortran 90. Algunas de estas extensiones pasaron a formar parte del Fortran
90 Estándar, pero otros no. los -f90 la configuración advierte solo sobre este último.
Es decir, esta bandera cubre cosas que no son legales en Fortran 77 ni legales.
Fortran 90. Por lo tanto, las advertencias controladas por esta bandera son básicamente un subconjunto
de las advertencias controladas por -f77. Hay algunos casos, que se describen a continuación, en los que
las circunstancias en las que se da la advertencia son ligeramente diferentes para los dos
banderas.

El lista consta de palabras clave separadas por comas o dos puntos. Hay tres
palabras clave especiales: todos para activar todas las advertencias sobre extensiones no estándar,
ninguna para apagarlos todos, y ayuda para imprimir la lista de todas las palabras clave con un
breve explicación de cada uno. Si lista se omite, -f90 es equivalente a -f90 = todoy
-nof90 es equivalente a -f90 = ninguno.

Las siguientes palabras clave tienen significados idénticos para -f90 como para -f77. El lector es
referido a las explicaciones bajo -f77.

aceptar-tipo doble complejo param-noparen
barra invertida formato-dólares cray-puntero
byte formato-editar-descr cuádruple constante
cpp función-noparen tipo-tamaño
d-comentario nombre-dólares formato variable
dec-pestaña param-tipo-implícito vms-io

Las palabras clave que difieren algo de las correspondientes -f77 las palabras clave son como
de la siguiente manera.

continuación:
El límite en el número de líneas de continuación para una declaración en fuente fija
la forma es la misma, es decir, 19, en Fortran 90 que en Fortran 77. Para código fuente gratuito
forma el límite es 39 líneas de continuación, y una línea que contiene una continuación
de lo contrario, la marca no puede estar vacía o contener solo un comentario.

intrínseco:
Esto es lo mismo que para -f77 excepto por las funciones intrínsecas definidas en
MIL-STD 1753, que están todos incluidos en Fortran 90, por lo que no están advertidos
sobre. (Ver -intrínseco para una lista.)

io-palabras clave:
Esto es lo mismo que para -f77 excepto que no se dan advertencias para la E / S
palabras clave que son estándar en Fortran 90.

Linea larga:
Aunque el estándar Fortran 90 permite líneas de más de 72 caracteres en
forma de fuente libre, esta restricción todavía se aplica a la forma de fuente fija. En
fuente libre, el límite de longitud de la línea es de 132 caracteres, y a diferencia de lo fijo
formar, ftnchek no permite aumentar este límite.

expr mixto:
Esto es lo mismo que para -f77 excepto para expresiones que mezclan precisión extendida
real con tipos de datos complejos, que están permitidos en Fortran 90.

orden de declaración:
Esto es similar al correspondiente -f77 advertencia, pero aplica el algo
restricciones más flexibles en el orden de declaración del estándar Fortran 90. En
En particular, Fortran 90 permite declaraciones de DATOS y función de declaración
definiciones que se entremezclarán con declaraciones de especificación.

constante sin tipo:
En Fortran 90, constantes binarias, octales y hexadecimales de la forma B'ddd ',
O'ddd 'y Z'ddd', respectivamente, están permitidos. Aquí 'ddd' representa un
cadena de dígitos. ftnchek reconoce estas formas, así como una variante de
la forma X'ddd 'para una constante hexadecimal, y otras variantes en las que el
el indicador de base B, O, Z o X sigue a la cadena de dígitos. Estas variantes fueron
no adoptado en Fortran 90, por lo que solo se les advierte cuando esta bandera es
encendido.

Ver también: -f77, -f95, -portabilidad, -bonita, -Estilo, -Tamaño de la palabra.

-f95 =lista
Esta configuración proporciona un control detallado sobre las advertencias sobre Fortran 77 estándar
características que se eliminaron del estándar Fortran 95. A diferencia del -f77 y -f90
configuraciones, estas advertencias se aplican a la sintaxis que es legal Fortran 77. Sin embargo, dado que
Estas funciones han sido eliminadas del Estándar, es posible que los programas
contenerlos será inaceptable para algunos compiladores más nuevos.

El lista consta de palabras clave separadas por comas o dos puntos. Hay tres
palabras clave especiales: todos para activar todas las advertencias sobre extensiones no estándar,
ninguna para apagarlos todos, y ayuda para imprimir la lista de todas las palabras clave con un
breve explicación de cada uno. Si lista se omite, -f95 es equivalente a -f95 = todoy
-nof95 es equivalente a -f95 = ninguno. Las palabras clave de advertencia con sus significados son las
de la siguiente manera.

hacer de verdad:
Una variable DO de cualquier tipo numérico real.

pausa:
La declaración PAUSE.

asignar:
La instrucción ASSIGN, GOTO asignado o formato asignado.

h-editar:
El descriptor de edición H en un formato.

Hay otra característica de sintaxis de Fortran 77 que se eliminó en Fortran 95, a saber
bifurcando a un ENDIF desde fuera del bloque IF. Sin embargo, ftnchek es incapaz de
analizar el flujo del programa, por lo que no proporciona una advertencia para esto.

Ver también: -f77, -f90, -portabilidad, -bonita, -Estilo, -Tamaño de la palabra.

-ayuda
Imprime una lista de todas las opciones de la línea de comandos con una breve descripción de cada una.
junto con su valor predeterminado. Este comando es idéntico en función al ``? ''
argumento, y se proporciona como una conveniencia para aquellos sistemas en los que la pregunta
mark tiene un significado especial para el intérprete de comandos. Predeterminado = no.

La lista de ayuda también imprime el número de versión y el nivel de parche de ftnchek y
aviso de copyright.

Nota: los valores `` predeterminados '' impresos entre corchetes en la lista de ayuda son,
estrictamente hablando, no los valores predeterminados incorporados, sino los valores actuales después de cualquier
opciones de entorno y cualquier opción de línea de comandos que preceda al -ayuda opción tener
sido procesado.

Ver también: -principiante, -versióny ayuda opción de todas las configuraciones que toman una lista de
palabras clave

-identifier-chars =lista
Defina caracteres no alfanuméricos que pueden usarse en identificadores. Por defecto,
ftnchek solo acepta el signo de dólar y el subrayado como caracteres no alfanuméricos
en los nombres de los identificadores. Los personajes de la lista reemplace cualquier conjunto de aceptadas
Los caracteres no alfanuméricos estaban en vigor anteriormente. Por lo tanto, si el signo de dólar o
los guiones bajos no están incluidos en la lista, pierden su estado como aceptables
personajes.

Esta opción se proporciona para habilitar ftnchek para manejar archivos de origen que no contienen
nombres de identificadores estándar que pueden ser necesarios, por ejemplo, para acceder a ciertos
servicios del sistema operativo. Consulte la sección sobre limitaciones y extensiones para
tratamiento de los identificadores que contienen estos caracteres en escritura implícita.

Usar -noidentifer-caracteres desactiva la aceptación de caracteres no alfanuméricos
enteramente.

Ver también: -Fuente.

-incluir =camino
Especifica un directorio en el que se buscarán los archivos especificados por las sentencias INCLUDE.
A diferencia de otras opciones de la línea de comandos, esta configuración es acumulativa; es decir, si es
dado más de una vez en la línea de comando, todos los directorios así especificados son
colocados en una lista que se buscará en el mismo orden en que se dan. los
orden en que ftnchek busca un archivo para ser incluido es: el actual
directorio; el directorio especificado por la variable de entorno FTNCHEK_INCLUDE, si lo hay;
los directorios especificados por cualquier -incluir opciones; el directorio especificado por
variable de entorno INCLUDE; y finalmente en un directorio estándar de todo el sistema
(/ usr / include para UNIX, SYS $ LIBRARY para VMS e \ include para MSDOS).

Ver también: -f77, -Fuente.

-intrínseco =lista
Controla si ftnchek reconoce ciertas funciones intrínsecas no estándar como
intrínseco. los lista consta de palabras clave separadas por comas o dos puntos. Algunos de
las palabras clave controlan si reconocer ciertos grupos de funciones y otras
Las palabras clave controlan la sintaxis esperada para invocar algunos elementos intrínsecos no estándar.
Incluya una palabra clave para activar el reconocimiento del conjunto correspondiente de intrínsecos o
para permitir la sintaxis correspondiente. Incluya una palabra clave con el prefijo nO- apagar
ese reconocimiento.

Hay tres palabras clave especiales: todos activa el reconocimiento de todos los no estándar
intrínsecos (enumerados a continuación) y acepta cualquier sintaxis para aquellos que tienen variaciones.
Uso ninguna para desactivar el reconocimiento de todos los intrínsecos no estándar excepto los indicados
debajo. Usar ayuda para imprimir la lista de todas las palabras clave con una breve explicación de
cada. Si lista se omite, -intrínseco es equivalente a -intrínseco = todoy
-nointrínseco es equivalente a -intrínseco = ninguno.

Las funciones intrínsecas no estándar necesarias para admitir la extensión no estándar
Los tipos de datos de precisión (doble complejo y cuádruple precisión) siempre se reconocen.
Los intrínsecos para el tipo de datos de doble complejo son:

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIMAG ZEXP ZCOS
CDSIN
Los elementos intrínsecos para los tipos de cuádruple precisión y cuádruple complejo son:

CQABS QARCOS QEXT QNINT
CQCOS QARSIN QEXTD QPROD
CQEXP QATÁN 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
Las palabras clave que controlan el reconocimiento de otras funciones intrínsecas no estándar son
como sigue:

extra:
reconocer los siguientes elementos intrínsecos no estándar comúnmente disponibles (todos excepto
EXIT y LOC se definen en MIL-STD 1753):

MEJOR IBCLR IEOR ISHFTC
SALIDA IBITS IOR LOC
IAND IBSET ISHFT NO

UNIX: reconocer estas funciones intrínsecas comunes específicas de Unix:

ABORTAR GMTIME LTIME SRAND
Y IARGC O SISTEMA
OBTENER TIEMPO ALEATORIO DE IRANDA
GETENV MAYÚS IZQ MAYÚS DER XOR

etc.: reconocer estas funciones intrínsecas comunes específicas de VMS:

FECHA IDENTIFICAR SEGUNDOS HORA

ERRSNS RAN TAMAÑO DE

iargc-sin-argumento:
especificar que IARGC puede invocarse sin argumentos.

iargc-un-argumento:
especificar que IARGC puede invocarse con un argumento.

rand-sin-argumento:
especificar que RAND e IRAND pueden invocarse sin argumentos.

rand-un-argumento:
especificar que RAND e IRAND pueden invocarse con un argumento.

El sin argumento y un argumento las palabras clave funcionan de la siguiente manera: activar la opción
causas ftnchek aceptar la sintaxis correspondiente para la invocación de la función,
sin excluir la posibilidad de la sintaxis alternativa. Dando vuelta a la opción
off hace que no se acepte la sintaxis correspondiente. Si se giran ambas opciones
activado a la vez (el valor predeterminado), entonces se acepta cualquiera de las sintaxis. Desactivar ambas opciones
de una vez no tendría sentido. Estas opciones no tienen efecto si el reconocimiento de
Los intrínsecos de Unix se han desactivado.

Tenga en cuenta que esta configuración no controla si se emiten advertencias no estándar
sobre estas funciones. Controla si se supone que las funciones son
intrínseco o no, lo que determina cómo se verifica su uso. Cuando funciona en
cualquiera de estos conjuntos está incluido, sus invocaciones se comprobarán de acuerdo con el
reglas para las funciones intrínsecas; de lo contrario, se comprobarán con normalidad (usuario-
escritas) funciones externas. Las advertencias no estándar están controladas por el
-f77 = intrínseco .

El valor predeterminado de esta configuración es equivalente a -intrínseco = todo seguido por
-intrínseco = no-vms para la versión Unix, -intrínseco = no-unix para la versión VMS, y
-intrínseco = no-unix, no-vms para otras versiones.

Nota: en versiones de ftnchek antes de 2.10, el -intrínseco bandera tomó un numérico
argumento en lugar de una lista de opciones. Por el bien de los usuarios que pueden haber escrito
scripts invocando ftnchek de esta forma, se sigue aceptando la forma numérica. los
La forma numérica del ajuste consta de tres dígitos. El dígito de las unidades selecciona el
conjunto de funciones intrínsecas a soportar. El dígito 0 selecciona solo Fortran 77
intrínsecos estándar más los necesarios para soportar la precisión extendida no estándar
tipos de datos. El dígito 1 es equivalente a extra, 2 es equivalente a extra, unixy
3 es equivalente a extra, vms. El dígito de las decenas de esta configuración controla la sintaxis
de la función intrínseca RAND, y el dígito de las centenas controla la sintaxis de la
Función IARGC. Para estos dígitos, especifique 0 para requerir la invocación sin
argumento, 1 para requerir un argumento y 2 para permitir cualquier forma.

Ver también: -f77.

-biblioteca
Este modificador se usa cuando varios subprogramas están contenidos en un archivo, pero no
todos ellos son utilizados por la aplicación. Normalmente, ftnchek te advierte si alguno
los subprogramas se definen pero nunca se utilizan. Este interruptor suprimirá estas advertencias.
Predeterminado = no.

Este conmutador también controla qué llamadas de subprograma y declaraciones de bloque COMUNES son
comprobado. Si un archivo se lee con el -biblioteca bandera en efecto, el subprograma llama
y las declaraciones COMUNES contenidas en una rutina en ese archivo serán verificadas solo si
esa rutina está en el árbol de llamadas del programa principal. Por otro lado, si el
-biblioteca el interruptor está apagado, entonces ftnchek comprueba las llamadas de cada rutina por
cualquier otra rutina, independientemente de si esas rutinas alguna vez podrían ser
invocado en tiempo de ejecución, e igualmente todas las declaraciones de bloque COMUNES se comparan para
acuerdo.

La diferencia entre este interruptor y el -usage = no-ext-unused opción para
subprogramas es que este último suprime solo la advertencia sobre rutinas
declarado pero no utilizado. los -biblioteca el interruptor va más allá y excluye los no utilizados
rutinas procesadas mientras está en vigor a partir de todas las comprobaciones cruzadas de argumentos y
Declaraciones de bloque COMUNES también.

(Si no hay ningún programa principal en el conjunto de archivos que ftnchek ha leído, entonces
que no hay árbol de llamadas, entonces ftnchek buscará rutinas que no sean de biblioteca
que no son invocados por ninguna otra rutina, y utilícelos como sustitutos de los
programa para construir el árbol de llamadas y decidir qué verificar. Si no hay tal top-
se encuentran las rutinas de nivel que no son de biblioteca, luego todas las llamadas entre módulos y todas las
se comprobarán las declaraciones.)

Ver también: -argumentos, -árbol de llamadas, -común, -externo, -uso.

-lista
Especifica que una lista del programa Fortran se imprimirá con la línea
números. Si ftnchek detecta un error, el mensaje de error sigue la línea del programa
con un signo de intercalación (^) que especifica la ubicación del error. Si no se incluyó una lista de fuentes
solicitado, ftnchek seguirá imprimiendo cualquier línea que contenga un error, para ayudar al
usuario para determinar dónde ocurrió el error. Predeterminado = no.

Ver también: -producción, \ fB-symtab, fB-silencioso.

-makedcls =lista
Prepare un archivo cuidadosamente formateado de declaraciones de variables, bloques comunes y
listas de listas de nombres, para una posible fusión en el código fuente. Las declaraciones son
almacenado en un archivo con el mismo nombre que el código fuente, pero con la extensión
cambiado a .dcl. Si no se escriben declaraciones en el archivo, se elimina a
reducir el desorden de los archivos vacíos.

Si la entrada proviene de la entrada estándar, en lugar de un archivo con nombre, entonces las declaraciones son
escrito en salida estándar.

Las variables se declaran en orden alfabético dentro de cada clase de declaración y
tipo, con variables enteras primero, debido a su posible uso posterior en matriz
dimensiones.

Las sentencias PARAMETER son una excepción a la regla del orden alfabético, porque la
El estándar Fortran 77 requiere que las expresiones que definen los valores de los parámetros
solo para constantes y nombres de parámetros ya definidos. Esto obliga al original
orden del archivo fuente de dichas declaraciones que se conservarán en los archivos de declaración.

Declaración explícita de todos variables se considera una buena programación moderna
práctica. Mediante el uso de opciones del compilador para rechazar variables no declaradas, mal escrito
los nombres de variables (o nombres que se extienden más allá de la columna 72) se pueden capturar en tiempo de compilación.
Las declaraciones explícitas también facilitan enormemente el cambio de precisión de punto flotante
con filtros como dtoq(1 litro), dto(1 litro), fd2s(1 litro), fs2d(1 litro), qtod(1L) y
permaneció(1L). Estos programas son capaces de cambiar tipos de puntos flotantes explícitos.
declaraciones de tipo, funciones intrínsecas y constantes, pero porque no
llevar a cabo un análisis léxico y gramatical riguroso del código fuente de Fortran,
no pueden proporcionar declaraciones de tipo modificadas para variables no declaradas. Defecto
ajuste = 0, encendido = 1.

Varias opciones para la forma del archivo de declaraciones están controladas por el lista,
que consta de palabras clave separadas por comas o dos puntos. Hay tres especiales
palabras clave: todos para activar todas las opciones, ninguna para apagarlos todos, y ayuda a
imprima la lista de todas las palabras clave con una breve explicación de cada una. Si lista is
omitido, -makedcls es equivalente a -makedcls = declaraciones (es decir, producir el
archivo de declaraciones utilizando las opciones predeterminadas), y -nomakedcls es equivalente a
-makedcls = ninguno.

Para compatibilidad con versiones anteriores de ftnchek, una forma numérica de esta configuración
también se acepta: el lista se reemplaza por un número que es la suma de los números
entre paréntesis junto a las palabras clave en la siguiente lista. Las palabras clave de advertencia
con sus significados son los siguientes:

declaraciones (1):
Escribe un archivo de declaración. (Esto está implícito en cualquiera de las otras opciones, y
se puede omitir si se dan otras opciones).

solo no declarado (2):
De forma predeterminada, todas las variables se incluyen en el archivo de declaración. Con este
opción, incluir solo no declarado variables. Esta configuración es útil si
desea comprobar si hay variables no declaradas, ya que los archivos fuente de Fortran con todos
variables declaradas correctamente no darán lugar a una .dcl expediente. Con este
opción, los bloques comunes y las listas de listas de nombres no se incluirán en la
archivo de declaración, ya que por su naturaleza no pueden ser sin declarar.

compacto (4):
Las declaraciones suelen estar bastante impresas para alinearse perfectamente en común.
columnas, como en los archivos de declaración generados por Extended PFORT Verifier,
esfuerzo(1L). Este valor de opción selecciona en su lugar salida compacta, sin columna
alineación.

usar-líneas-de-continuación (8):
Hace que se utilicen líneas de continuación donde sea permitido. El valor predeterminado es
comience una nueva declaración en cada línea. Esta opción es apropiada para usar
Junto con compacto.

palabras clave en minúsculas (16):
Muestra las palabras clave de Fortran en minúsculas, en lugar de las mayúsculas predeterminadas.

vars-y-consts-minúsculas (32):
Variables de salida y constantes en minúsculas, en lugar de las predeterminadas
mayúsculas. Las constantes de cadena de caracteres no se ven afectadas por esta opción.

excluir-sftran3 (64):
Omitir declaraciones de variables enteras internas producidas por SFTRAN3
preprocesador xsf3(1L), como parte de la traducción de Fortran estructurado
declaraciones al Fortran ordinario. Estas variables tienen nombres de seis caracteres de
la forma NPRddd, NXdddd, N2ddddy N3dddd, Donde d es un dígito decimal.
Porque son invisibles en el código fuente SFTRAN3 y cambiarán si el
El código SFTRAN3 se modifica, tales variables no deben declararse explícitamente.
En su lugar, deberían asumir el tipo de datos INTEGER predeterminado de Fortran basado en
en su letra inicial, N.

comentario-asterisco (128):
Utilice un asterisco como carácter de comentario; de lo contrario, el valor predeterminado es 'C'.

comentario-char-minúscula (256):
Utilice 'c' en lugar de 'C' o '*' como carácter de comentario.

suprimir-dimensiones-de-matriz (512):
Suprima el dimensionamiento de matrices en las declaraciones generadas. Esta opción
es para usar con código que carece de declaraciones de tipo, para permitir la declaración
archivos que se insertarán sin cambios en el código. Dado que el código tendrá
declaraciones de dimensión ya, dimensionando las variables de matriz en el tipo
declaraciones del archivo de declaración es redundante. Esta opción debe usarse
solo en conjunto con la opción 2 = no declarado-solo porque de lo contrario cualquier
Las matrices que fueron dimensionadas en una declaración de tipo perderán su
dimensionamiento.

de forma libre (1024):
Produzca declaraciones en forma de fuente libre. Este modo se utiliza automáticamente si
la fuente de entrada es de forma libre. Utilice esta opción para producir declaraciones en
forma libre incluso si la entrada es de forma fija. Las declaraciones de forma libre son
sangrado solo 2 columnas en lugar de 6, use el signo de exclamación como comentario
carácter, e indican las líneas de continuación con un ampersand al final del
línea para continuar.

Los archivos de declaración contienen comentarios distintivos que marcan el inicio y el final de
declaraciones para cada unidad de programa, para facilitar el uso de macros de editor de texto para
fusionando las declaraciones de nuevo en el código fuente.

El ftnchek la distribución incluye un programa, dcl2inc, que procesa la declaración
archivos para producir archivos que contienen declaraciones de todos los bloques COMUNES, en una forma
adecuado para su uso como archivos INCLUDE. Ver el dcl2inc(1L) página de manual para los detalles de
su uso.

Ver también: -mkhtml.

-mkhtml =lista
Produzca documentación HTML desde la fuente. Crea archivos HTML individuales a partir de ftnchek
análisis y comentarios de código. Todos los comentarios inmediatamente anteriores y posteriores al
la definición de función o subrutina se capturan en el archivo HTML. Sin reformatear
los comentarios de origen se realizan de forma distinta a la eliminación de los caracteres de comentario de FORTRAN.
Además, el archivo HTML enumera las variables locales declaradas, bloque común
variables utilizadas, funciones y subrutinas llamadas, uso de la unidad de E / S y otras
información sobre cada subprograma. Por lo general, también querrá especificar
-call = árbol para crear el archivo HTML raíz CallTree.html. (Quizás este archivo debería
llamarse index.html.)

Varias opciones para la forma de los archivos HTML son controladas por el lista, cual
consta de palabras clave separadas por comas o dos puntos. Hay tres especiales
palabras clave: todos para activar todas las opciones, ninguna para apagarlos todos, y ayuda a
imprima la lista de todas las palabras clave con una breve explicación de cada una. Si lista is
omitido, -mkhtml es equivalente a -mkhtml = documentos (es decir, producir el documento HTML
archivos usando las opciones predeterminadas), y -nomkhtmls es equivalente a -mkhtml = ninguno.

En aras de la simplicidad, las opciones para -mkhtml son los mismos que los de
-makedcls excepto aquellos que son inaplicables. Asimismo, una forma numérica de
Este ajuste se puede utilizar, formado como la suma de los números entre paréntesis en el
Listado abajo. Las palabras clave de advertencia con sus significados son las siguientes:

documentos (1):
Crea los documentos HTML. (Esto está implícito en cualquiera de las otras opciones, y
se puede omitir si se dan otras opciones).

compacto (4):
Las declaraciones suelen estar bastante impresas para alinearse perfectamente en común.
columnas. Este valor de opción selecciona en su lugar salida compacta, sin columna
alineación.

usar-líneas-de-continuación (8):
Hace que se utilicen líneas de continuación en lugar de comenzar una nueva declaración
en cada línea. Esta opción es apropiada para usar junto con compacto.

palabras clave en minúsculas (16):
Muestra las palabras clave de Fortran en minúsculas, en lugar de las mayúsculas predeterminadas.

vars-y-consts-minúsculas (32):
Variables de salida y constantes en minúsculas, en lugar de las predeterminadas
mayúsculas. Las constantes de cadena de caracteres no se ven afectadas por esta opción.

excluir-sftran3 (64):
Omitir declaraciones de variables enteras internas producidas por SFTRAN3
preprocesador xsf3(1L). (Ver -makedcls Para discusión.)

suprimir-dimensiones-de-matriz (512):
Suprima el dimensionamiento de matrices en las declaraciones generadas. Este es
normalmente indeseable, pero está disponible si por alguna razón no desea el
dimensiones de la matriz para que aparezcan en el HTML.

de forma libre (1024):
Produzca declaraciones de variables en forma de código fuente libre. Este modo es
se utiliza automáticamente si la fuente de entrada es de forma libre. Esto afecta principalmente a
forma de líneas de continuación si se utilizan.

Ver también: -árbol de llamadas, -makedcls.

-principiante
Esta bandera está destinada a proporcionar una salida más útil para los principiantes. Tiene dos
efectos:

(a) proporciona un mensaje adicional en el sentido de que una función que se utiliza pero no
definido en cualquier lugar podría ser una matriz que el usuario olvidó declarar en un
Instrucción DIMENSION (dado que la sintaxis de una referencia de matriz es la misma que la
de una referencia de función).

(b) modifica la forma de los mensajes de error y las advertencias. Si se gira la bandera
fuera por -novicio, estos mensajes se imprimen en un estilo más parecido a UNIX
hilas.

Predeterminado = sí.

-salida =nombre de archivo
Esta configuración se proporciona por conveniencia en sistemas que no permiten
redirección de la salida de los programas. Cuando se da este ajuste, la salida que
normalmente aparece en la pantalla se enviará en su lugar al archivo nombrado. Nota,
sin embargo, que los errores operativos de ftnchek en sí mismo (por ejemplo, sin espacio o no puede
archivo abierto) aún se enviarán a la pantalla. La extensión del nombre de archivo es
opcional, y si no se da ninguna extensión, la extensión .lis se utilizará.

-pointersize =número
Especifica el tamaño de una variable de `` puntero Cray '' que se número bytes. Predeterminado = turn-
encendido = 4 bytes.

El tamaño del puntero se utiliza para informar advertencias de discrepancia de precisión que involucran puntero
variables, por ejemplo, cuando a un puntero se le asigna un valor de una asignación
rutina, o pasado como un parámetro de subprograma.

Ver también: -f77, -portabilidad, -truncamiento, -Tamaño de la palabra.

-portabilidad =lista
ftnchek dará advertencias para una variedad de usos no portátiles. Ejemplos incluyen
el uso de pestañas excepto en comentarios o cadenas internas, el uso de Hollerith
constantes y la equivalencia de variables de diferentes tipos de datos. Esta opción
no produce advertencias para las extensiones compatibles con el estándar Fortran 77,
lo que también puede causar problemas de portabilidad. Para atraparlos, use el -f77 ajuste.
De forma predeterminada, todas las advertencias están desactivadas.

Esta configuración proporciona un control detallado sobre las advertencias sobre una posible portabilidad.
problemas. los lista consta de palabras clave separadas por comas o dos puntos. Existen
tres palabras clave especiales: todos para activar todas las advertencias sobre usos no portátiles,
ninguna para apagarlos todos, y ayuda para imprimir la lista de todas las palabras clave con un
breve explicación de cada uno. Si lista se omite, -portabilidad es equivalente a
-portabilidad = todosy -noportabilidad es equivalente a -portabilidad = ninguno.
Las palabras clave de advertencia con sus significados son las siguientes:

barra invertida:
Carácter de barra invertida en cadenas. Dado que algunos compiladores tratan la barra invertida como
un personaje de escape, su presencia puede causar problemas a pesar de que se utiliza
de forma conforme a las normas.

alineación común:
Las variables de bloque COMUNES no están en orden descendente de tamaño de almacenamiento. Algunos
Los compiladores requieren este orden debido a los requisitos de alineación del almacenamiento.

gritar:
Constantes de Hollerith (que no estén dentro de las especificaciones de FORMAT). El Hollerith
El tipo de datos es una característica de Fortran IV que se ha eliminado en Fortran 77
estándar. Es reemplazado por el tipo de datos de caracteres. Almacenamiento de Hollerith
Los datos en variables de un tipo de datos numérico o lógico no son portátiles debido a
diferentes tamaños de palabras.

cuerda larga:
Constantes de cadena, variables o expresiones de más de 255 caracteres de longitud.

equivalencia mixta:
Variables de diferentes tipos de datos equivalentes.

tamaño mixto:
Variables declaradas con precisión predeterminada utilizadas con variables dadas explícitamente
precisión, en expresiones, asignaciones o como argumentos. Por ejemplo, si un
La variable declarada como REAL * 8 se trata como equivalente a DOBLE PRECISIÓN.

hacer de verdad:
Límites e índices de bucle DO no enteros. Estos pueden hacer que los resultados de un programa
dependen de las características del hardware de la computadora particular utilizada.

param-tipo-implícito:
Tipificación implícita de un parámetro por el tipo de datos del valor asignado, si
difiere del tipo predeterminado. Esta advertencia solo puede ocurrir si está implícita
la escritura de parámetros ha sido activada por el -source = tipo-param-implícito
opción, o si la instrucción PARAMETER es de la forma no estándar sin
paréntesis. Si esta opción está activada, cualquier instancia en la que esté implícita
se produce la tipificación de parámetros y donde el tipo implícito es diferente del
tipo predeterminado basado en la primera letra del nombre del parámetro, será advertido
sobre. La escritura de parámetros implícita puede cambiar la semántica de las declaraciones
donde se utiliza el parámetro, causando problemas de portabilidad.

de la pestaña.: Pestañas en el código fuente. Las pestañas se interpretan de forma diferente por diferentes
compiladores. Esta advertencia se dará solo una vez, al final del archivo.

Ver también: -f77, -f90, -f95, -bonita, -Estilo, -Tamaño de la palabra.

-pretty =lista
Controla ciertos mensajes relacionados con la apariencia del código fuente. Estos advierten
sobre cosas que pueden hacer que un programa sea menos legible o engañoso para el lector.
De forma predeterminada, todas las advertencias están activadas.

Esta configuración proporciona un control detallado sobre las advertencias sobre la apariencia. los
lista consta de palabras clave separadas por comas o dos puntos. Dado que todas las advertencias están activadas
de forma predeterminada, incluya una palabra clave con el prefijo nO- para desactivar una advertencia en particular.
Hay tres palabras clave especiales: todos para activar todas las advertencias sobre engaños
apariciones, ninguna para apagarlos todos, y ayuda para imprimir la lista de todos los
palabras clave con una breve explicación de cada una. Si lista se omite, -bonita is
equivalente a -pretty = todoy -nobonito es equivalente a -pretty = ninguno.
Las palabras clave de advertencia con sus significados son las siguientes:

retorno alternativo:
Una instrucción RETURN tiene una constante que especifica un punto de retorno alternativo que
no está entre 0 y el número de argumentos ficticios que son etiquetas. Este es
legal, y tiene el mismo efecto que una DEVOLUCIÓN sin devolución alternativa
expresión, pero sugiere que el programador pretendía utilizar una expresión alternativa
etiqueta de devolución que no se proporciona.

espacio incrustado:
Espacio incrustado en nombres de variables o en operadores de varios caracteres como **.

continuación:
Marca de continuación después de una línea de comentario.

Linea larga:
Líneas (excepto comentarios) de más de 72 columnas de ancho (más de 72 es normalmente
ignorado por el compilador).

espacio perdido:
Falta de espacio entre la variable y una palabra clave anterior.

múltiple-común:
Bloque COMÚN declarado en múltiples declaraciones. No se da ninguna advertencia si el
Las declaraciones son consecutivas excepto por las líneas de comentarios.

lista de nombres múltiples:
NAMELIST declarado en varias declaraciones. No se da ninguna advertencia si el
Las declaraciones son consecutivas excepto por las líneas de comentarios.

paréntesis:
Paréntesis alrededor de una variable por sí misma. Como argumento de subprograma, este
convierte el argumento en una expresión, no modificable por el subprograma.

Tenga en cuenta que en el formato de código libre, el espacio adicional y el espacio faltante están prohibidos por el
Fortran 90 Standard, y no son meras violaciones de estilo. En este caso las advertencias
son reemplazados por mensajes de error de sintaxis y solo pueden desactivarse usando
-sin verificación.

Ver también: -f77, -portabilidad, -Estilo.

-proyecto =lista
ftnchek creará un archivo de proyecto a partir de cada archivo fuente que se ingrese mientras este
la opción está activada. El archivo del proyecto recibirá el mismo nombre que el de entrada.
archivo, pero con la extensión .f or .para reemplazado por .prj. (Si la entrada es de
entrada estándar, el archivo del proyecto se llama ftnchek.prj.) Predeterminado = ninguno.

El lista consta de palabras clave separadas por comas o dos puntos. Hay tres
palabras clave especiales: todos para activar todas las opciones, ninguna para apagarlos todos, y
ayuda para imprimir la lista de todas las palabras clave con una breve explicación de cada una. Si
lista se omite, -proyecto es equivalente a -proyecto = todoy -noproyecto is
equivalente a -proyecto = ninguno. Las palabras clave con sus significados son las siguientes:

Para crear:
Genere un archivo de proyecto. El valor predeterminado es no producir un archivo de proyecto. Si
esta opción no está activada, las otras opciones no tienen ningún efecto.

recortar llamadas:
Recorte la cantidad de información almacenada en el archivo del proyecto sobre el subprograma
declaraciones y convocatorias. Este es el predeterminado. Desactive esta opción solo en
situaciones raras. (Consulte la discusión a continuación). La cantidad de recorte varía
dependiendo de -biblioteca bandera. Se recorta más información si esa bandera está
encendido.

recortar-común:
Recorte el número de declaraciones de bloques comunes almacenadas en el archivo del proyecto.
Este es el predeterminado. Desactive esta opción solo en situaciones excepcionales. (Ver
discusión a continuación.) Esta opción no tiene ningún efecto si el -biblioteca la bandera está girada
apagado: cuando no está en modo biblioteca, no se recorta ninguna declaración de bloque común
hecho independientemente de esta opción.

Un archivo de proyecto contiene un resumen de la información del archivo de origen, para su uso en
comprobar la concordancia entre FUNCTION, SUBROUTINE y usos COMUNES en otros archivos.
Permite la verificación incremental, lo que ahorra tiempo siempre que tenga un gran conjunto de
archivos que contienen subrutinas compartidas, la mayoría de las cuales rara vez cambian. Tu puedes correr
ftnchek una vez en cada archivo con el -proyecto conjunto de banderas, creando los archivos del proyecto.
Por lo general, también establecería -biblioteca y -noexterno banderas en este momento, para
suprimir los mensajes relacionados con la coherencia con otros archivos. Solo mensajes de error
correspondiente a cada archivo por sí mismo se imprimirá en este momento. A partir de entonces, corre
ftnchek sin estas banderas en todos los archivos del proyecto juntos, para verificar la coherencia
entre los diferentes archivos. Todos los mensajes internos de los archivos individuales ahora
ser omitido. Solo cuando se modifica un archivo, será necesario crear un nuevo archivo de proyecto
para ello.

Naturalmente, cuando el -proyecto la opción está activada, ftnchek no leerá el proyecto
archivos como entrada.

Por lo general, las opciones de recorte deben dejarse activadas cuando desee crear un proyecto.
archivos para futuras aportaciones a ftnchek. Dado que el recorte está activado de forma predeterminada, esto significa
que simplemente dando la orden -proyecto sin lista de opciones es la recomendada
modo. Las opciones de ajuste se proporcionan solo como una conveniencia para aquellos que desean
hacer uso de los archivos del proyecto para fines distintos a comprobar el programa con
ftnchek. Para usar archivos de proyecto para su propósito previsto, las opciones de recorte deben
no se apague.

Los archivos de proyecto contienen solo la información necesaria para verificar la concordancia entre archivos.
Esto significa que un archivo de proyecto no sirve de nada si todos los módulos del programa completo
están contenidos en un solo archivo.

Se ofrece una discusión más detallada en la sección sobre Uso de archivos de proyecto.

-puro
Suponga que las funciones son `` puras '', es decir, que no tendrán efectos secundarios al modificar
sus argumentos o variables en un bloque COMÚN. Cuando esta bandera esté en vigor,
ftnchek basará su determinación del estado de conjunto y uso de los argumentos reales
en el supuesto de que los argumentos pasados ​​a una función no se modifiquen. Va a
también emite una advertencia si se encuentra que una función modifica alguno de sus argumentos o cualquier
Variables COMUNES. Predeterminado = sí.

Cuando esta bandera está desactivada, se manejarán los argumentos reales pasados ​​a las funciones
de la misma forma que los argumentos reales pasados ​​a las subrutinas. Esto significa que ftnchek
asumirá que los argumentos pueden ser modificados por las funciones. No habrá advertencias
dado si se encuentra que una función tiene efectos secundarios. Porque un control más estricto es
posible si se supone que las funciones son puras, debe desactivar esta bandera solo si
su programa realmente usa funciones con efectos secundarios.

-tranquilo
Esta opción reduce la cantidad de salida relacionada con el funcionamiento normal, de modo que
los mensajes de error son más evidentes. Esta opción se proporciona para la conveniencia de
usuarios que verifican grandes conjuntos de archivos. La salida eliminada incluye el
los nombres de los archivos del proyecto y el mensaje que informa que no se encontraron errores de sintaxis.
También elimina algunas líneas en blanco que normalmente se incluyen para mayor claridad. (Algunos
de esta salida se vuelve a activar -lista y -symtab opciones.) Predeterminado = no.

Nota: la forma de recordar la diferencia entre -tranquilo y -breve es que
-tranquilo no suprime ninguna información relacionada con las advertencias, mientras que -breve hace.

Ver también: -breve.

-referencia
Especifica que se imprima una tabla de quién llama a quién. Esta tabla enumera cada subprograma
seguido de una lista de las rutinas que llama. Este interruptor es equivalente a
-calltree = referencia. Predeterminado = no.

La lista de referencias omite rutinas llamadas por módulos de biblioteca no utilizados. Así es
contiene la misma información que para el formato de árbol de llamadas, es decir, la jerarquía de
llamadas a subprogramas, pero impresas de forma diferente. Esto imprime una amplitud primero
recorrido del árbol de llamadas mientras que -calltree = árbol imprime una profundidad primero
el recorrido.

Ver también: -árbol de llamadas, -referencia cruzada, -biblioteca, -clasificar, -symtab, -vcg.

-recursos
Imprime la cantidad de recursos utilizados por ftnchek en el procesamiento del programa. Esta
la lista puede ser útil para analizar el tamaño y la complejidad de un programa. Puede
también ayuda a elegir tamaños más grandes para ftnchektablas internas de si son demasiado
pequeño para analizar un programa en particular. Predeterminado = no.

En esta lista, el término `` tamaño de fragmento '' es el tamaño de los bloques de memoria
asignado para almacenar el artículo en cuestión, en unidades del tamaño de un artículo, no
necesariamente en bytes. Cuando se llena el espacio asignado inicialmente, más memoria
se asigna en trozos de este tamaño. La siguiente es una explicación de los elementos.
impreso:

Fuente líneas procesado:
Número total de líneas de código, con totales separados para líneas de extracto y
líneas de comentarios. Las líneas de comentario también incluyen líneas con 'C' o '*' en la columna 1
como líneas en blanco y líneas que contienen solo un comentario en línea. Líneas de declaración
son todas las demás líneas, incluidas las líneas que tienen un comentario en línea después de algunos
código. Las líneas de continuación se cuentan como líneas separadas. Líneas incluidas
los archivos se cuentan cada vez que se incluye el archivo.

Total ejecutable declaraciones:
Número de declaraciones en el programa, distintas de la especificación, datos, declaración-
función, FORMAT, ENTRY y END.

Total número of módulos:
Un módulo es cualquier subprograma externo, incluido el programa principal, subrutinas,
funciones y bloques de unidades de datos. Este recuento es de módulos definidos dentro del
fuente, no módulos referenciados. Las funciones de declaración no están incluidas. A
El subprograma con múltiples puntos de entrada solo se cuenta una vez.

Total ambiental etiquetas se define
Número de etiquetas adjuntas a las declaraciones (a menudo llamadas números de declaración). los
Se da el recuento total de etiquetas para todo el programa, así como el máximo
número en cualquier subprograma.

Max identificador nombre caracteres:
Número de caracteres utilizados para almacenar nombres de identificadores. Un identificador es un
variable, subprograma o nombre de bloque común. Los nombres locales son los de local
variables en un subprograma, mientras que los nombres globales se refieren a subprogramas y
nombres de bloque, así como nombres de argumentos ficticios y nombres de variables comunes. Real
El texto del argumento (hasta 15 caracteres para cada argumento) también se incluye aquí.
El espacio utilizado para los nombres locales no se recupera al final de cada módulo, por lo que
este número, como el espacio global, crece hasta que se analiza todo el programa.
Desafortunadamente, esta figura puede incluir texto almacenado más de una vez,
aunque se utiliza una heurística que evitará duplicados en muchos casos.

Max ficha texto caracteres:
Un token es la unidad sintáctica más pequeña del lenguaje FORTRAN por encima del nivel
de personajes individuales. Por ejemplo, un token puede ser un nombre de variable, un
constante numérica, una cadena de texto entre comillas o un carácter de puntuación. Simbólico
el texto se almacena mientras se procesa un módulo. Por razones técnicas,
Los tokens de un solo carácter no se incluyen en este total. Elementos que no son
representados en la tabla de símbolos se pueden duplicar. El espacio para el texto del token es
recuperado al final de cada módulo, por lo que esta cifra representa el máximo para
cualquier módulo.

Max local símbolos:
Este es el mayor número de entradas en la tabla de símbolos local para cualquier módulo.
Las entradas de la tabla de símbolos locales incluyen todas las variables y parámetros, bloque común
nombres, funciones de instrucción, subprogramas externos y funciones intrínsecas
referenciado por el módulo. Las constantes literales no se almacenan en el símbolo local
mesa.

Max global símbolos:
Este es el número de entradas en la tabla de símbolos global al final de
Procesando. Las entradas de la tabla de smbolos globales incluyen subprogramas externos y
nombres de bloque. Las funciones intrínsecas y las funciones de instrucción no están incluidas.

Max número of listas de token:
Una lista de tokens es una secuencia de tokens que representan el argumento real o ficticio.
lista de un subprograma, o la lista de variables en un bloque común o lista de nombres.
Por lo tanto, este número representa la mayor suma de COMMON, CALL, NAMELIST y
Declaraciones ENTRY e invocaciones de funciones para cualquier módulo. El espacio es
recuperado al final de cada módulo.

Max ficha lista / árbol espacio:
Este es el mayor número de tokens en todas las listas de tokens y árboles de tokens de
cualquier módulo. Se forma un árbol de tokens al analizar una expresión: cada
el operando es una hoja del árbol y los operadores son los nodos. Por lo tanto este
El número es una medida de la complejidad máxima de un módulo individual. Para
Por ejemplo, un módulo con muchas expresiones aritméticas largas tendrá un alto
número. Tenga en cuenta que, a diferencia del texto del token descrito anteriormente, el número de tokens es
independiente de la longitud de los nombres de variables o constantes literales en el
expresiones

Número of subprograma invocaciones:
Esta es la suma de todos los módulos del número de instrucciones CALL y función
invocaciones (excepto funciones intrínsecas y funciones de declaración).

Número of común bloquear decl:
Esta es la suma de todos los módulos del número de declaraciones de bloque comunes.
Es decir, se cuenta cada declaración de un bloque en un módulo diferente
por separado. (El estándar permite múltiples declaraciones de un bloque dentro del
mismo módulo; estos se cuentan como una sola declaración ya que son
equivalente a una sola declaración larga.)

Número of matriz oscuro & detener puntos:
Esta es la suma de todos los módulos del número de dimensión y parámetro de la matriz
cadenas de texto de definición guardadas para su uso por -makedcls opción. El largo de
las cadenas de texto no se cuentan. Cada dimensión de una matriz multidimensional es
contados por separado.

Obviamente, estos números no son los mismos cuando se utilizan archivos de proyecto en lugar de
el código fuente original. Incluso los números de entidades globales pueden ser diferentes,
ya que se elimina cierta información redundante en los archivos del proyecto.

-seis caracteres
Uno de los objetivos de la ftnchek programa es para ayudar a los usuarios a escribir Fortran portátil
programas. Una fuente potencial de no portabilidad es el uso de nombres de variables que
tienen más de seis caracteres. Algunos compiladores simplemente ignoran los caracteres adicionales.
Este comportamiento podría potencialmente llevar a que dos variables diferentes se consideren como
lo mismo. Por ejemplo, las variables llamadas AVERAGECOST y AVERAGEPRICE son las mismas
en los primeros seis caracteres. Si desea detectar estos posibles conflictos, utilice
esta bandera. Predeterminado = no.

Ingrese al -f77 = nombres-largos si quieres listar todos variables de más de seis
personajes, no solo los pares que son iguales en los primeros seis.

Ver también: -f77, -portabilidad.

-clasificar
Especifica que se imprima una lista ordenada de todos los módulos utilizados en el programa. Esta
La lista está en orden de `` prerrequisitos '', es decir, cada módulo se imprime solo después de
Se han impreso los módulos desde los que se llama. Esto también se llama
`` clasificación topológica '' del árbol de llamadas. Cada módulo se enumera solo una vez. Rutinas
que no están en el árbol de llamadas del programa principal se omiten. Si hay alguno
ciclos en el gráfico de llamadas (ilegal en Fortran estándar) serán detectados y
diagnosticado. Predeterminado = no.

Ver también: -árbol de llamadas, -referencia cruzada, -referencia, -symtab, -vcg.

-source =lista
Esta configuración controla ciertas opciones sobre la forma del código fuente de Fortran.
El lista consta de palabras clave separadas por comas o dos puntos. Hay tres
palabras clave especiales: todos para activar todas las opciones, ninguna para apagarlos todos, y
ayuda para imprimir la lista de todas las palabras clave con una breve explicación de cada una. Si
lista se omite, -Fuente es equivalente a -fuente = todoy -sin fuentes es equivalente
a -source = none.

Para compatibilidad con versiones anteriores de ftnchek, una forma numérica de esta configuración
también se acepta: el lista se reemplaza por un número que es la suma de los números
entre paréntesis junto a las palabras clave en la siguiente lista. (Los fijas y gratuita,
opciones no tienen valores numéricos.) Las palabras clave de advertencia con sus significados son
como sigue:

fijas:
Interprete la fuente como forma fija (con extensiones compatibles como
signo de exclamación para comentarios). Las declaraciones deben estar en las columnas 7 a 72
(a menos que el -columnas se ha utilizado para cambiar esto), y los espacios en blanco no se
contexto significativo del carácter externo (pero advertido sobre el -bonita
opción). Este es el modo predeterminado a menos que la extensión del archivo de origen sea .f90
or .F90. esta opción no se puede dar junto con -fuente = gratis.

gratuita,: Interprete la fuente como forma libre. Las declaraciones pueden estar en cualquier lugar de la columna 1
a 132, los comentarios solo pueden comenzar con un signo de exclamación y los espacios en blanco son
requerido en algunos lugares, como entre identificadores y palabras clave. Este es
el modo predeterminado si la extensión del archivo de origen es .f90 or .F90. Esta opción
no se puede dar junto con -source = fijo or -source = dec-tab

dec-pestaña (1):
Acepta la fuente con formato de pestaña estilo DEC. Una línea que comienza con una pestaña inicial
se tratará como una nueva línea de declaración a menos que el carácter después de la pestaña sea
un dígito distinto de cero, en cuyo caso se trata como una línea de continuación. los
la siguiente columna después de la tabulación o el signo de continuación se toma como columna 7. A
Se dará una advertencia en el caso de que la línea sea una continuación, si
-f77 = dec-tab está en efecto.

vms-incluir (2):
Acepte declaraciones INCLUDE de estilo VMS. Estos siguen la sintaxis normal, pero
con las siguientes características adicionales: (1) la extensión del archivo, si no se proporciona,
por defecto es la misma que una extensión de archivo fuente normal; y (2) la opción
/ LIST o / NOLIST se pueden agregar al nombre del archivo de inclusión, para controlar la lista
de su contenido.

barra invertida unix (4):
Maneja los escapes de barra invertida de estilo UNIX en cadenas de caracteres. El escape
La secuencia que sigue a la barra invertida se evaluará de acuerdo con ANSI.
estándar para cadenas en C: hasta tres dígitos significan un valor octal, una x
significa el comienzo de una constante hexadecimal, cualquiera de las letras abfnrt
significa códigos de control especiales y cualquier otro carácter (incluido el salto de línea)
significa el carácter en sí. Cuando esta opción de código fuente está en vigor,
Se dará una advertencia si el -f77 = barra invertida se especifica el ajuste.

El comportamiento predeterminado es tratar la barra invertida como cualquier otro normal
carácter, pero se generará una advertencia sobre la portabilidad si el
-portabilidad la bandera está puesta. Debido al hecho de que algunos compiladores tratan el
barra invertida de una manera no estándar, es posible
que los programas no sean portátiles si utilizan el carácter de barra invertida en cadenas.

Como ftnchek no hace mucho con la cadena interpretada, rara vez es
necesario para utilizar esta opción. Es necesario para evitar falsos
advertencias solo si (a) el programa que se está comprobando usa una barra invertida para incrustar una
apóstrofo o comillas en una cadena en lugar de utilizar el mecanismo estándar
de duplicar el delimitador; (b) la barra invertida se usa para escapar del final de
línea para continuar una cadena a través de múltiples líneas fuente; o (c) un
La definición de PARÁMETRO utiliza una función de cadena intrínseca como LEN con tal
una cadena como argumento, y ese valor se usa más tarde para definir la matriz
dimensiones, etc.

param-tipo-implícito (8):
Tipificación implícita de un parámetro por el tipo de datos del valor asignado. Algunos
Los compiladores no estándar pueden permitir que el tipo de datos del valor anule el
Fortran 77 tipo predeterminado de un parámetro que se basa en la primera letra de
el nombre del parámetro. Esta opción solo se aplica a las sentencias PARAMETER del
forma estándar que tiene paréntesis. Un parámetro que ha sido explícitamente
declarado en una declaración de tipo antes de la declaración PARAMETER no se ve afectado
por esta opción. Se dará una advertencia bajo el -f77 = tipo-param-implícito
or -portabilidad = param-tipo-implícito .

Tenga en cuenta que este tipo implícito se trata como equivalente a un tipo explícito
declaración para el parámetro. Por lo tanto, si usa
-makedcls = solo no declarado para generar declaraciones solo de no declaradas
variables, estos parámetros no ser incluido

dec-param-tipo-estándar (16):
Siga la regla de Fortran 77 para la tipificación de datos de los parámetros de estilo DEC Fortran.
Estos se declaran utilizando una forma no estándar de la declaración PARAMETER que
carece de paréntesis. Según DEC Fortran, los parámetros definidos por este formulario
de la declaración tienen su tipo de datos dado por el tipo de datos del valor
asignado. Utilice esta opción para contar ftnchek no seguir esta regla pero
en su lugar, utilizar la misma regla que para las sentencias PARAMETER estándar. Esta
La opción no se aplica a las sentencias PARAMETER de la forma estándar.

De forma predeterminada, todas estas opciones de código fuente están desactivadas, excepto la
vms-incluir opción, que está activada de forma predeterminada en la versión VMS.

Ver también: -f77, -incluir, -portabilidad.

-estilo =lista
Proporciona advertencias muy exigentes sobre programación obsoleta o pasada de moda.
construcciones. Esta opción es útil para los esfuerzos por seguir una programación moderna
estilo. (La mayoría de las cosas de las que se queja bajo esta opción están prohibidas en el
F subconjunto idioma.) By defecto todos advertencias en convertido apagado.

El lista consta de palabras clave separadas por comas o dos puntos. Hay tres
palabras clave especiales: todos para activar todas las opciones, ninguna para apagarlos todos, y
ayuda para imprimir la lista de todas las palabras clave con una breve explicación de cada una. Si
lista se omite, -Estilo es equivalente a -estilo = todoy -sin estilo es equivalente a
-estilo = ninguno. Las palabras clave de advertencia con sus significados son las siguientes:

bloquear-si:
Quejarse de la sentencia IF aritmética. Aceptar bloque IF o IF lógico (que
controla una sola declaración).

nombre-constructo:
Quejarse de construcciones de bloques sin nombre: SI, HACER y SELECCIONAR CASO. Tenga en cuenta que
si un nombre de construcción está presente en la declaración de apertura de una construcción, entonces
se requiere que esté presente en todas las demás declaraciones de componentes (ELSE, END IF,
etc.) del constructo. En ese caso, un nombre de construcción faltante en esos
declaraciones genera un error de sintaxis independientemente de esta opción. El propósito
de esta opción es para advertir si la construcción carece por completo de la opción
nombre.

distinto-hacer:
Reclame si dos bucles DO comparten una declaración de terminador común.

hacer-construir:
Quejarse si el terminador de un bucle DO no es un END DO o
Declaración CONTINUE. Este es el requisito para que el bucle cumpla
la definición de Fortran 90 de un hacer-construir.

hacer-enddo:
Quejarse si el terminador de un bucle DO no es un END DO
declaración. (Esta opción anula la hacer-construir opción, siendo parejo
más estricto.)

nombre-final:
Quejarse de la ausencia del nombre del subprograma en END estructurado
Declaraciones.

formato-stmt:
Quejarse de la presencia de declaraciones FORMAT. Solo las declaraciones FORMAT
ellos mismos están marcados, no las referencias a ellos en las listas de E / S.

Goto: Quejarse de la presencia de GOTO incondicional, calculado o asignado
declaraciones. También se quejan de devoluciones alternativas (pero no de etiquetas como
argumentos del subprograma).

etiquetado-stmt:
Quejarse de la presencia de etiquetas (números) en declaraciones que no sean
Declaraciones de FORMATO. (Dado que las declaraciones FORMAT son posiblemente convenientes y no
fácilmente abusados, las quejas sobre ellos son controladas por los
formato-stmt palabra clave.)

programa-stmt:
Quejarse de la ausencia de una declaración de PROGRAMA a la cabeza de la
.

final estructurado:
Quejarse del uso de una declaración END simple para finalizar un subprograma, en lugar de
que una sentencia END estructurada (END PROGRAM, END SUBROUTINE, END FUNCTION,
o END BLOCK DATA).

Ver también: -f77, -f90, -f95, -bonita, -portabilidad.

-symtab
Se imprimirá una tabla de símbolos para cada módulo, con una lista de todos los identificadores.
mencionado en el módulo. Esta tabla da el nombre de cada variable, su tipo de datos,
y el número de dimensiones de las matrices. Un asterisco (*) indica que el
La variable se ha escrito implícitamente, en lugar de ser nombrada en un tipo explícito.
Declaración. La tabla también enumera todos los subprogramas invocados por el módulo,
todos los bloques COMUNES declarados, etc. Predeterminado = no.

Además, para cada módulo, se imprimirá una tabla de etiquetas. La tabla enumera cada etiqueta
definido en el módulo; la línea en la que se define dicha etiqueta de declaración; y el
tipo de declaración (ejecutable, formato o especificación). Las etiquetas se enumeran en
orden secuencial.

También se imprime una tabla que describe las unidades de E / S utilizadas por el módulo, junto con
información sobre cómo se utilizan: qué operaciones se realizan, si
el acceso es secuencial o directo, y si la E / S está formateada o no.

Ver también: -árbol de llamadas, -referencia cruzada, -lista, -referencia, -clasificar, -vcg.

-truncamiento =lista
Advierte sobre posibles errores de truncamiento (o redondeo). La mayoría de estos están relacionados con
aritmética de enteros. De forma predeterminada, todas las advertencias están activadas.

Esta configuración proporciona un control detallado sobre las advertencias sobre un posible truncamiento
errores. los lista consta de palabras clave separadas por comas o dos puntos. Puesto que todos
las advertencias están activadas de forma predeterminada, incluya una palabra clave con el prefijo nO- para apagar un
advertencia particular. Hay tres palabras clave especiales: todos para encender todos los
advertencias sobre truncamiento, ninguna para apagarlos todos, y ayuda para imprimir la lista de
todas las palabras clave con una breve explicación de cada una. Si lista se omite, -truncamiento
es equivalente a -truncamiento = todoy -no truncamiento es equivalente a
-truncamiento = ninguno. Las palabras clave de advertencia con sus significados son las siguientes:

int-div-exponente:
uso del resultado de la división entera como exponente. Esto sugiere que un
se pretende el cociente real. Un ejemplo sería escribir X ** (1/3) para evaluar
la raíz cúbica de X. La expresión correcta es X ** (1./3.).

int-div-real:
Conversión de una expresión que implica una división entera en real. Esta
sugiere que se pretende un cociente real.

int-div-cero:
división en una expresión constante entera que produce un resultado de cero.

int-nega-poder:
exponenciación de un número entero por un número entero negativo (que produce cero a menos que
el entero base es 1 en magnitud). Esto sugiere que una base real es
destinado a.

promociones y:
conversión automática de una cantidad de precisión más baja a una de mayor
precisión. La pérdida de precisión de las variables reales en este proceso es
comparable a la correspondiente degradación. No se da ninguna advertencia para la promoción
de cantidades enteras a real ya que esto es normalmente exacto.

índice-real:
uso de un índice DO no entero en un bucle con límites enteros. Un entero DO
El índice con límites reales siempre se advierte independientemente de esta configuración.

subíndice real:
uso de un subíndice de matriz no entero.

personajes importantes:
sobreespecificar una única constante de precisión. Esto puede indicar que un doble
se pretendía constante de precisión.

tamaño-degradación:
conversión automática de una cantidad de mayor precisión a una de menor precisión
del mismo tipo. Esta advertencia solo ocurre cuando se usa un tamaño explícito en
declarando el tipo de uno o ambos operandos en una asignación. Por ejemplo, un
Se emitirá una advertencia cuando se asigne una variable REAL * 8 a una variable REAL,
si el tamaño de palabra predeterminado de 4 está en vigor. También se emite una advertencia si un
un entero largo se asigna a uno más corto, por ejemplo, si un entero
La expresión se asigna a una variable INTEGER * 2. Hay una excepción a
este último caso, es decir, si el lado derecho de la tarea es un pequeño
constante literal (menos de 128). degradación de tipo: conversión automática de un
cantidad de mayor precisión a una de menor precisión de tipo diferente. Esta
la advertencia incluye conversión de cantidades reales a números enteros, doble precisión
a precisión simple real, y la asignación de una cadena de caracteres más larga a un
uno más corto.

Las advertencias sobre ascensos y descensos también se aplican a constantes complejas,
considerando que la precisión es la de la parte real o imaginaria. Advertencias sobre
Las promociones y degradaciones se otorgan solo cuando la conversión se realiza automáticamente,
por ejemplo, en expresiones de precisión mixta o en una declaración de asignación. Si es intrínseco
funciones como INT se utilizan para realizar la conversión, no se da ninguna advertencia.

Ver también: -portabilidad, -Tamaño de la palabra.

-usage =lista
Advierte sobre variables no utilizadas o posibles no inicializadas, bloques comunes no utilizados,
etiquetas de instrucciones no definidas o no utilizadas y subprogramas no utilizados o indefinidos. Por
De forma predeterminada, todas las advertencias están activadas.

Esta configuración proporciona un control detallado sobre las advertencias sobre un posible uso
errores. los lista consta de palabras clave separadas por comas o dos puntos. Puesto que todos
las advertencias están activadas de forma predeterminada, incluya una palabra clave con el prefijo nO- para apagar un
advertencia particular. Hay tres palabras clave especiales: todos para encender todos los
advertencias sobre el uso, ninguna para apagarlos todos, y ayuda para imprimir la lista de todos
las palabras clave con una breve explicación de cada una. Si lista se omite, -uso is
equivalente a -uso = todoy -noso es equivalente a -usage = none. Estas
Las advertencias cubren cuatro categorías principales de objetos: argumentos ficticios de subprograma,
bloques y variables, subprogramas y funciones, y variables locales. Advertencias
incluir elementos indefinidos, elementos definidos multiplicado, elementos no utilizados, etc. La advertencia
Las palabras clave con sus significados son las siguientes:

alias-arg:
un argumento ficticio escalar es en realidad el mismo que otro y es (o puede ser)
modificado. El estándar Fortran 77 (sección 15.9.3.6) prohíbe modificar un
argumento que tiene un alias a otro.

alias-matriz-arg:
un argumento ficticio que es una matriz o un elemento de matriz está en la misma matriz que
otro y se modifica. Esta bandera es similar a alias-arg pero proporciona
control separado sobre los argumentos de la matriz. Es más difícil saber si el alias es
que ocurre en el caso de matrices, por lo que si ftnchek da demasiadas advertencias falsas,
esta bandera permite que las relacionadas con la matriz se apaguen sin suprimir
las advertencias para escalares.

arg-común-alias:
un argumento ficticio escalar es el mismo que una variable común en el subprograma,
y cualquiera de los dos se modifica. Esto también está prohibido por el estándar Fortran 77.
Si la comprobación común no es exacta (consulte el -común configuración), es más difícil
decir si se está produciendo el aliasing, por lo que se da la advertencia si la variable es
en cualquier lugar de un bloque común declarado por el subprograma.

alias-array-común-arg:
un argumento ficticio que es una matriz o un elemento de matriz está en la misma matriz que un
variable común, y cualquiera de las dos se modifica. Si la comprobación común no es exacta,
la variable puede estar en cualquier lugar de un bloque común declarado por el
subprograma.

arg-const-modificado:
un subprograma modifica un argumento que es una constante o una expresión. Tal
una acción podría provocar un comportamiento anómalo del programa.

arg-sin usar:
se declara un argumento ficticio pero nunca se utiliza. Esto es similar al
var-sin usar palabra clave que se describe a continuación, pero se aplica solo a los argumentos.

com-bloque-no utilizado:
se declara un bloque común, pero ninguna de las variables que contiene son utilizadas por ningún
subprograma. Esta advertencia se suprime si la configuración de rigurosidad común es
0.

com-block-volátil:
un bloque común puede perder la definición de su contenido si los bloques comunes son
volátil. Esta opción solo tiene efecto si el -común = volátil la bandera está en
efecto. Vea la discusión de la -común ajuste de arriba.

com-var-set-no utilizado:
a una variable común se le asigna un valor, pero su valor no es utilizado por ninguna
subprograma. Esta advertencia se suprime si la configuración de rigurosidad común es
0.

com-var-sin inicializar:
el valor de una variable común se usa en algún subprograma, pero no se establece
en cualquier sitio. Desafortunadamente, ftnchek no hace un análisis suficientemente completo de
la secuencia de llamada para saber qué rutinas se llaman antes que otras. Entonces
Las advertencias sobre este tipo de error solo se darán en los casos en los que un
La variable se usa en alguna rutina pero no se establece en ninguna otra rutina. Comprobación
de variables COMUNES individuales se hace solo si el -común el ajuste es 3
(variable por concordancia variable). Esta advertencia se suprime si el
El ajuste de rigor es 0.

com-var-sin usar:
se declara una variable común, pero ningún subprograma la utiliza. Esta advertencia
se suprime si la configuración de rigurosidad común es 0.

do-index-modificado:
una variable que es el índice de un bucle DO es modificada por alguna declaración
dentro del rango del bucle. El estándar permite que una variable de OD activa
ser modificado únicamente por el mecanismo de incremento de la declaración DO.

ext-multiply-definido:
un externo (una subrutina o función) se define más de una vez. Definición
de un medio externo que proporciona el cuerpo de su código fuente.

ext-declarado-only:
un nombre se declara en una declaración EXTERNA en algún módulo, pero no es
definido o utilizado en cualquier lugar.

ext-indefinido:
se usa (invoca) un externo pero no se define en ninguna parte. Esta opcion es
equivalente a la -externo bandera. Si el subprograma se invoca más de
una vez, se comprobará la coherencia de esas invocaciones.

ext-no utilizado:
se define un externo (el cuerpo de su subprograma está presente) pero no se utiliza.
Un subprograma se considera no utilizado incluso si es invocado por algún otro
subprograma, si no se puede llamar desde ningún hilo de ejecución que comience con
el programa principal. La concordancia de los argumentos del subprograma con su
Las invocaciones aún se verifican incluso si esta advertencia está desactivada. Si hay
no hay programa principal, entonces esta advertencia se emite solo si el subprograma no está
invocado en cualquier lugar. Esta advertencia se suprime en el modo de biblioteca, pero la biblioteca
El modo tiene el efecto adicional de suprimir la comprobación de argumentos para
rutinas.

etiqueta indefinida:
una declaración se refiere a una etiqueta que no se ha definido.

etiqueta sin usar:
se define una etiqueta de declaración, pero nunca se hace referencia a ella.

var-set-no utilizado:
a una variable local se le asigna un valor, pero ese valor no se utiliza.

var-no inicializado:
el valor de una variable local se puede utilizar antes de que se asigne. Algunas veces
ftnchek comete un error en las advertencias sobre el uso de variables locales. Generalmente
se equivoca en el lado de dar una advertencia donde no existe ningún problema, pero en raras ocasiones
casos en los que puede no advertir dónde existe el problema. Consulte la sección sobre
Errores por ejemplo. Si las variables son equivalentes, la regla utilizada por ftnchek
es que una referencia a cualquier variable implica la misma referencia a todos
variables a las que se equivale. Para matrices, la regla es que una referencia a
cualquier elemento de la matriz se trata como una referencia a todos los elementos de la matriz.

var-sin usar:
se declara una variable local (por ejemplo, en una declaración de tipo) pero no
utilizado en el módulo. No se aplica a argumentos ficticios: advertencias sobre ellos
están controlados por la palabra clave arg-sin usar descrito arriba.

Nota: en versiones de ftnchek antes de 2.10, el -uso bandera tomó un argumento numérico
en lugar de una lista de opciones. Por el bien de los usuarios que pueden haber escrito guiones
invocando ftnchek de esta forma, se sigue aceptando la forma numérica. El numérico
El ajuste se compone de tres dígitos. Los controles del primer dígito (lugar de las centenas)
advertencias sobre subprogramas (funciones y subrutinas), el segundo dígito (decenas
lugar) advertencias sobre bloques comunes y variables comunes, y el tercer dígito
(lugar de unos) advertencias sobre variables locales. Cada dígito controla las advertencias
de acuerdo con la convención de que un 1 significa advertir sobre elementos y variables indefinidos
que se utilizan antes de configurar, un 2 significa advertir sobre los elementos que no se utilizan, y un 3 significa
advertir sobre ambos tipos. Estos números ahora se convierten a los valores apropiados.
para las palabras clave mencionadas anteriormente, excepto para com-block-volátil, que no se ve afectado
por el argumento numérico.

Ver también: -común, -declarar, -externo, -biblioteca.

-vcg
Genere el gráfico de llamadas en forma de descripción de gráfico VCG. Esta descripción es
escrito en un archivo separado, con la misma raíz que el archivo que contiene el archivo principal
programa y sufijo .vcg. Este archivo se puede entregar directamente a xvcg(1L) a
visualizar el gráfico de llamadas. (Si la entrada es de la entrada estándar, entonces el gráfico
la descripción se envía a la salida estándar.) Este modificador es equivalente a
-calltree = vcg. Predeterminado = no.

La descripción de VCG tal como se creó es más compleja de lo necesario. VCG permite gráficos
y subgrafos anidados: cada subrutina se crea como un subgrafo anidado dentro de su
rutinas de llamadas. Esto le permite mostrar subgrafos de forma interactiva o resumir
de ellas.

El -vcg opción para ftnchek fue escrito por el Dr. Philip Rubini de Cranfield
Universidad, Reino Unido.

xvcg es una herramienta de visualización de gráficos que se ejecuta en el sistema X windows. Está
disponible gratuitamente en ftp.cs.uni-sb.de. Fue escrito por G. Sander del
Universidad de Saarland, Alemania.

Ver también: -árbol de llamadas, -referencia cruzada, -referencia, -clasificar.

-versión
Esta opción provoca ftnchek para imprimir una línea con el número de versión, la fecha de lanzamiento,
y nivel de parche del programa. Si no se proporcionan archivos, se cierra. Si archivos
se dan, el efecto de esta opción es incluir el nivel de parche (normalmente
omitido) en la información de versión impresa al inicio del procesamiento. Predeterminado =
No.

Ver también: -ayuda.

-volátil
Suponga que los bloques COMUNES son volátiles. Predeterminado = no.

Esta bandera es reemplazada por -común = volátily ya no debe utilizarse. Puede
ser eliminado en una versión futura de ftnchek.

Ver también: -común, -uso.

-wordsize =número
Especifica el tamaño de palabra predeterminado número bytes. Este es el tamaño de lógica y
variables numéricas de precisión simple que no reciben precisiones explícitas.
(Las precisiones explícitas para variables que no son caracteres son una extensión de Fortran 77
Estándar, y se dan mediante declaraciones de tipo como REAL * 8 X.) Doble precisión
y las variables complejas serán el doble de este valor, y las variables complejas dobles serán cuatro
veces. Las constantes de precisión cuádruple y los resultados de la función intrínseca serán cuatro veces
este valor. Tenga en cuenta que las variables declaradas como REAL * 16 se considerarán quad
precisión solo si el tamaño de la palabra es de 4 bytes. Predeterminado = encendido = 4 bytes.

El valor del tamaño de la palabra no importa para verificar los programas que cumplen con los estándares que
no declare precisiones explícitas para variables que no sean caracteres ni almacene Hollerith
datos en variables. Esta configuración tampoco afecta el tamaño predeterminado del carácter
variables, que siempre es de 1 byte. También se supone que las constantes de Hollerith ocupan
1 byte por carácter.

El tamaño de la palabra se utiliza para determinar si se produce un truncamiento en la asignación.
declaraciones, y para detectar discrepancias de precisión en las listas de argumentos del subprograma y
listas de bloqueo comunes. Las advertencias exactas que se emiten dependerán del estado
de otras banderas. Bajo tanto el -portabilidad = tamaño mixto y del tamaño actual bandera,
cualquier mezcla de objetos de precisión explícitos con predeterminados (expresiones de caracteres no
incluido) se advierte. Esto se aplica a las expresiones aritméticas que contienen tanto
tipos de objetos y para subprogramar argumentos y variables COMUNES. Bajo control
de las -truncamiento = degradación y promociones y opciones, se da una advertencia para
asignación de una expresión a una variable más corta del mismo tipo, o para
promoción de un valor de precisión más bajo a una precisión más alta en una aritmética
expresión o una declaración de asignación.

Dando un tamaño de palabra de 0, o equivalentemente, usando tamaño actual significa que no hay defecto
se asumirá el valor. Esto es equivalente a especificar -portabilidad = tamaño mixto.
Úselo para encontrar casos de mezcla de precisión predeterminada y explícita, por ejemplo, para marcar
lugares donde REAL * 8 se trata como equivalente a DOBLE PRECISIÓN.

Ver también: -tamaño de puntero, -portabilidad, -truncamiento.

-wrap =columna
Controla la envoltura de los mensajes de error. Mensajes de error largos que pasarían
la columna especificada se dividirá en líneas separadas entre las palabras del
mensaje para una mejor legibilidad. Si se apaga con -nieve, cada error por separado
El mensaje se imprimirá en una línea, dejándolo en la pantalla para envolver el
mensaje o truncarlo. Predeterminado = encender = 79.

CAMBIANDO EL REINO UNIDO INCUMPLIMIENTOS


ftnchek incluye dos mecanismos para cambiar los valores predeterminados de todas las opciones: por
definiendo variables de entorno o creando un archivo de preferencias. Cuando ftnchek pone en marcha,
busca en su entorno cualquier variable cuyos nombres estén compuestos anteponiendo el
cadena FTNCHEK_ en la versión en mayúsculas del nombre de la opción. Si tal variable es
encontrado, su valor se utiliza para especificar el valor predeterminado para el conmutador o configuración correspondiente.
En el caso de los ajustes (por ejemplo, el -común rigurosidad) el valor de la
La variable de entorno se lee como el valor de configuración predeterminado. En el caso de los interruptores,
el interruptor predeterminado se tomará como verdadero o sí a menos que la variable de entorno tenga el valor
0 o NO.

Tenga en cuenta que el nombre de la variable de entorno debe construirse con la opción de longitud completa
nombre, que debe estar en mayúsculas. Por ejemplo, para hacer ftnchek imprimir una lista de fuentes por
por defecto, establezca la variable de entorno FTNCHEK_LIST en 1 o YES o cualquier otra cosa que no sea 0 o
NO. Los nombres FTNCHEK_LIS (no el nombre completo de la opción) o ftnchek_list (minúsculas)
no ser reconocido.

A continuación, se muestran algunos ejemplos de cómo establecer variables de entorno en varios sistemas. Para
simplicidad, todos los ejemplos establecen el valor predeterminado -lista cambie a SÍ.

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

2. UNIX, shell C:% setenv FTNCHEK_LIST YES

3. VAX / VMS: $ DEFINE FTNCHEK_LIST YES

4. MSDOS: $ SET FTNCHEK_LIST = YES

Después de procesar las variables de entorno, ftnchek busca un archivo de preferencias
que contiene opciones y configuraciones. Buscará en el siguiente orden, utilizando solo el
primer archivo encontrado: (1) .ftnchekrc en el directorio actual, (2) ftnchek.ini en la corriente
directorio, (3) .ftnchekrc en el directorio de inicio del usuario, (4) ftnchek.ini en la casa
directorio. Si se encuentra un archivo de este tipo, las opciones definidas en él se utilizan por defecto en
lugar de los valores predeterminados incorporados y anulando los valores predeterminados establecidos en el entorno.

Cada opción o configuración en el archivo de preferencias debe estar en una línea separada. Se les da
en la misma forma que en la línea de comando, excepto sin el guión inicial. Las preferencias
El archivo puede contener comentarios y líneas en blanco. Los comentarios se introducen en cualquier punto de una línea.
por un carácter de espacio (en blanco o tabulador) o el carácter '#', y terminan al final de
la línea.

Las opciones de la línea de comandos anulan los valores predeterminados establecidos en el entorno o en las preferencias
archivo, de la misma manera que anulan los valores predeterminados incorporados.

USO PROYECTO ARCHIVOS


Esta sección contiene información detallada sobre cómo utilizar los archivos de proyecto de manera más eficaz,
y cómo evitar algunas trampas.

Uno puede dividir los cheques ftnchek lo hace en dos categorías, local y global. Local
la comprobación está restringida a una única rutina y detecta cosas como no inicializada
variables, pérdida no intencionada de precisión en expresiones aritméticas, etc. Este tipo de
La verificación se puede realizar en cada subprograma de forma independiente. Además, la verificación local de un
no es necesario repetir el subprograma cuando se cambia algún otro subprograma. Global
la comprobación detecta cosas como llamar a una subrutina con los tipos de argumentos incorrectos, o
desacuerdo en declaraciones de bloque comunes. Requiere mirar todo el conjunto de
subprogramas que interactúan entre sí.

El propósito de los archivos de proyecto es permitir que la verificación local y los pasos de verificación global
estar separados. Suponiendo que cada subprograma está en su propio archivo fuente, puede ejecutar
ftnchek una vez en cada uno para realizar la comprobación local mientras se suprime la comprobación global. Luego
ftnchek se puede ejecutar una vez en todos los archivos del proyecto juntos para realizar la comprobación global. los
El archivo MAKE de muestra a continuación muestra cómo automatizar esta tarea. El destino `` .f.prj '' actualiza un
archivo de proyecto para un archivo en particular cada vez que cambia el archivo de origen. La información
necesario para la verificación global se guarda en el archivo del proyecto. El objetivo de `` verificación '' hace el
comprobación global combinada. Normalmente, `` make check '' repetiría el `` ftnchek -project ''
sólo pise los archivos de origen modificados y luego realice la comprobación global. Obviamente, esto es un gran
ventaja para programas grandes, cuando muchos subprogramas rara vez cambian.

Cuando se utilizan archivos de proyecto, es mejor colocar cada subprograma en un archivo fuente independiente.
Si cada archivo fuente puede contener más de un subprograma, complica la definición
de verificación `` local '' y `` global '' porque hay alguna verificación entre módulos que es
contenido dentro de un archivo. ftnchek intenta hacer lo correcto en este caso, pero hay
algunas complicaciones (descritas a continuación) debido a la compensación entre evitar volver a hacer cruces
comprueba y conserva información sobre la estructura del programa.

Por lo general, para realizar la menor cantidad de verificación, los archivos de proyecto deben crearse con
las -biblioteca bandera en efecto y recorte activado. En este modo, la información guardada
en el archivo del proyecto consta de todas las declaraciones de subprograma, todas las invocaciones de subprograma
no resuelto por declaraciones en el mismo archivo, y una instancia de cada bloque COMÚN
declaración. Esta es la cantidad mínima de información necesaria para verificar el acuerdo entre
archivos.

Si el archivo de origen contiene más de una rutina, existen algunos problemas posibles que
puede surgir de la creación del archivo de proyecto en modo biblioteca, porque la jerarquía de llamadas
entre las rutinas definidas dentro del archivo se pierde. Además, si las rutinas en el archivo hacen
uso de bloques COMUNES que se comparten con rutinas en otros archivos, no habrá
suficiente información guardada para la verificación correcta del estado de armado y uso de los bloques COMUNES
y variables COMUNES según el -uso configuración. Por lo tanto, si planea usar
archivos de proyecto cuando -uso la comprobación está activada (que es la situación predeterminada), y si
múltiples rutinas en un archivo de proyecto comparten bloques COMUNES con rutinas en otros archivos,
los archivos del proyecto deben crearse con el -biblioteca bandera apagada. En este modo,
ftnchek guarda, además de la información enumerada anteriormente, una invocación de cada subprograma por
cualquier otro subprograma en el mismo archivo y todas las declaraciones de bloque COMUNES. Esto significa que
el archivo del proyecto será más grande de lo necesario, y cuando se lea, ftnchek podrían
Repita algunas comprobaciones entre módulos que ya hizo cuando se creó el archivo del proyecto. Si
cada archivo de proyecto contiene solo un módulo, no hay pérdida de información al crear
los archivos del proyecto en modo biblioteca.

Debido a la posible pérdida de información que conlleva la creación de un archivo de proyecto con la
-biblioteca marca en efecto, siempre que ese archivo de proyecto se lea más tarde, se tratará
como un archivo de biblioteca independientemente de la configuración actual de la -biblioteca bandera. En el otro
Por otro lado, un archivo de proyecto creado con el modo de biblioteca desactivado se puede leer más tarde en
modo.

La discusión anterior asume que las opciones de recorte de la -proyecto el ajuste es
se enciende cuando se crea el archivo de proyecto. Ésta es la situación normal. los sin recortar
opciones de la -proyecto La configuración se proporciona en caso de que uno quiera usar los archivos del proyecto.
para fines distintos a comprobar el programa con ftnchek. Por ejemplo, se podría escribir
un script en Perl para analizar los archivos del proyecto en busca de información sobre cómo los diferentes
se llaman subprogramas. No deberías usar el sin recortar opciones para hacer frente a los problemas de
pérdida de información discutida anteriormente, ya que causan más información de la necesaria para ser
almacenado. Esto agranda los archivos del proyecto y provoca ftnchek para hacer más trabajo más tarde cuando
los lee para comprobar su programa completo. Por lo general, debe utilizar el -biblioteca
opción para controlar cuánta información almacenar para su uso posterior por ftnchek en la comprobación de su
.

Aquí hay un ejemplo de cómo usar UNIX para lograr utilidad para crear automáticamente un nuevo
archivo de proyecto cada vez que se modifica el archivo fuente correspondiente, y para comprobar el conjunto de
archivos para mayor coherencia. Agregue estas líneas a su archivo MAKE. El ejemplo asume que un
Se ha definido la macro OBJS que enumera todos los nombres de los archivos de objeto que se vincularán
juntos para formar el programa ejecutable completo. (En este archivo MAKE, las líneas sangradas
cada uno debe comenzar con una pestaña, no con espacios en blanco.) Si algún archivo de origen contiene múltiples rutinas
que comparten bloques comunes entre ellos, entonces la opción no-com - \ * debe eliminarse
de NOGLOBAL y / o elimine el indicador -library.
# decirle qué es el sufijo de un archivo de proyecto
.SUFIJOS: .prj

# estas opciones suprimen las comprobaciones globales.
NOGLOBAL = -usage = no-ext-undefined, no-com - \ *

# decirle a make cómo crear un archivo .prj a partir de un archivo .f
.f.prj:
ftnchek -proyecto $ (NOGLOBAL) -library $

# configurar la macro PRJS que contenga los nombres de archivo del proyecto
PRJS = $ (OBJS: .o = .prj)

# "make check" comprobará todo lo que se haya cambiado.
cheque: $ (PRJS)
ftnchek $ (PRJS)

Cuando un programa usa muchas rutinas definidas en una gran cantidad de archivos fuente diferentes en
diferentes directorios, puede resultar engorroso especificar todos los archivos de proyecto diferentes
necesario para comprobar el programa correctamente. Para hacer frente a tales casos, ftnchek permite proyecto
archivos para concatenarlos en un solo archivo grande. Este único archivo se puede entregar a
ftnchek para proporcionar la información para verificar el uso de alguna o todas las rutinas
definido en los archivos de proyecto combinados. Al utilizar un archivo de proyecto de `` biblioteca '' de este tipo,
puede querer ftnchekinformes de error para documentar con precisión el nombre del archivo donde
se define la función específica. Si los distintos archivos de origen se encuentran en varios directorios,
El informe de error que proporciona solo el nombre del archivo puede ser ambiguo y, en su lugar, debe incluir el
ruta al archivo. La solución es crear cada uno de los archivos de proyecto individuales
dando la ruta completa al archivo fuente. Entonces esta ruta completa aparecerá en el
informes de errores. Por ejemplo, suponga que todos los archivos fuente del subprograma de biblioteca son
en subdirectorios de un directorio llamado / util / lib. Entonces los archivos de proyectos individuales
primero ser creado por un comando como
buscar / util / lib -name '* .f' -exec ftnchek -project '{}' ';'
(Posiblemente se proporcionarían otras opciones para ftnchek como se discutió anteriormente. Además, este paso
en su lugar, podría ser manejado por una regla de archivo MAKE revisada que proporcionaría la fuente completa
ruta del archivo en lugar de solo el nombre local al invocar ftnchek.) A continuación, concatenar todos los
estos archivos de proyecto manualmente.
buscar / util / lib -name '* .prj' -exec cat '{}' ';' > ourlib.prj
Luego, se puede verificar un archivo fuente de programa usando el comando
ftnchek prog.f ... -lib ourlib.prj
y un mensaje de error relacionado con cualquier rutina de la biblioteca incluirá la ruta completa a la
archivo fuente de la rutina.

En la actualidad, no existe una utilidad de archivo como ar para gestionar el contenido de un concatenado
archivo de proyecto como el de la ilustración de arriba. Si se realizan cambios en uno de los
rutinas de la biblioteca, la única forma de actualizar el archivo de proyecto combinado es concatenar todos
los archivos de proyectos individuales una vez más. Esta utilidad sería bastante fácil de escribir.
Alguien debería hacerlo y contribuir a la ftnchek esfuerzo.

AN EJEMPLO


El siguiente programa simple de Fortran ilustra los mensajes dados por ftnchek.
El programa está diseñado para aceptar una variedad de puntajes de pruebas y luego calcular el promedio para el
.

C AUTORES: MIKE MYERS Y LUCIA SPAGNUOLO
C FECHA: 8 DE MAYO DE 1989

Variables C:
PUNTUACIÓN C -> una variedad de puntuaciones de pruebas
C SUM -> suma de las puntuaciones de la prueba
C COUNT -> contador de puntuaciones leídas
CI -> contador de bucle

COMPAV FUNCIÓN REAL (PUNTUACIÓN, CUENTA)
SUMA INTEGRAL, CUENTA, J,PUNTAJE(5)

HACER 30 I = 1, CUENTA
SUMA = SUMA + PUNTUACIÓN (I)
30 CONTINUAR
COMPAV = SUMA / RECUENTO
FIN

PROGRAMA AVENUM
C
C PROGRAMA PRINCIPAL
C
C AUTOR: LOIS BIGBIE
C FECHA: 15 DE MAYO DE 1990
C
Variables C:
C MAXNOS -> número máximo de valores de entrada
C NUMS -> una matriz de números
C COUNT -> número exacto de valores de entrada
C AVG -> promedio devuelto por COMPAV
CI -> contador de bucle
C

PARÁMETRO (MAXNOS = 5)
INTEGER I, CUENTA
NÚMEROS REALES (MAXNOS), PROMEDIO
CONTAR = 0
HACER 80 I = 1, MAXNOS
LEER (5, *, FIN = 100) NÚMEROS (I)
CONTAR = CONTAR + 1
80 CONTINUAR
100 AVG = COMPAV (NÚMEROS, RECUENTO)
FIN

El compilador no da mensajes de error cuando se compila este programa. Sin embargo, esto es lo que
sucede cuando se ejecuta:

$ promedio de ejecución
70
90
85

$

¿Qué sucedió? ¿Por qué el programa no hizo nada? La siguiente es la salida de
ftnchek cuando se usa para depurar el programa anterior:

$ ftnchek -list -symtab promedio

FTNCHEK Versión 3.3 Noviembre de 2004

Promedio de archivo.f:

1 C AUTORES: MIKE MYERS Y LUCIA SPAGNUOLO
2 C FECHA: 8 DE MAYO DE 1989
3
4 Variables C:
5 PUNTUACIÓN C -> una variedad de puntuaciones de pruebas
6 C SUM -> suma de las puntuaciones de la prueba
7 C COUNT -> contador de puntuaciones leídas
8 CI -> contador de bucle
9
COMPAV DE 10 FUNCIONES REALES (PUNTUACIÓN, CUENTA)
11 SUMA INTEGRAL, CUENTA, J,PUNTAJE(5)
12
13 HAGA 30 I = 1, CUENTA
14 SUMA = SUMA + PUNTUACIÓN (I)
15 30 CONTINUAR
16 COMPAV = SUMA / RECUENTO
^
Advertencia cerca de la línea 16 col 20: cociente entero expr SUM / COUNT convertido a
real
17 END

Módulo COMPAV: func: real

Variables:

Nombre Tipo Dims Nombre Tipo Dims Nombre Tipo Dims Nombre Tipo Dims
CONTEO real COMPAV intg I intg * J intg
PUNTUACIÓN intg 1 SUM intg

* Variable no declarada. El tipo se ha definido implícitamente.

Advertencia en el módulo COMPAV: Variables declaradas pero nunca referenciadas:
J declaró en la línea 11

Advertencia en el módulo COMPAV: las variables se pueden utilizar antes de establecer:
SUM utilizado en la línea 14
SUM establecido en la línea 14

Etiquetas de declaración definidas:

Etiqueta de línea StmtType
<30> 15 ejecutivos

18
19
20 PROGRAMA AVENUM
21 C
22 C PROGRAMA PRINCIPAL
23 C
24 C AUTOR: LOIS BIGBIE
25 C FECHA: 15 DE MAYO DE 1990
26 C
27 Variables C:
28 C MAXNOS -> número máximo de valores de entrada
29 C NUMS -> una matriz de números
30 C COUNT -> número exacto de valores de entrada
31 C AVG -> promedio devuelto por COMPAV
32 CI -> contador de bucle
33 C
34
35 PARÁMETRO (MAXNOS = 5)
36 INTEGER I, CUENTA
37 NÚMEROS REALES (MAXNOS), PROMEDIO
38 RECUENTO = 0
39 DO 80 I = 1, MAXNOS
40 LEER (5, *, FIN = 100) NÚMEROS (I)
41 RECUENTO = RECUENTO + 1
42 80 CONTINUAR
43 AVG = COMPAV (NÚMEROS, RECUENTO)
44 END

Módulo AVENUM: prog

Subprogramas externos referenciados:

COMPAV: real *

Variables:

Nombre Tipo Dims Nombre Tipo Dims Nombre Tipo Dims Nombre Tipo Dims
AVG real COUNT intg I intg MAXNOS intg *
NUMS reales 1

* Variable no declarada. El tipo se ha definido implícitamente.

Advertencia en el módulo AVENUM: Variables establecidas pero nunca utilizadas:
AVG establecido en la línea 43

Operaciones de E / S:

ID de unidad Núm. De unidad Formulario de acceso Línea de operación
5 SEQ FMTD LEER 40

Etiquetas de declaración definidas:

Etiqueta Línea StmtType Etiqueta Línea StmtType
<80> 42 ejecutivos <100> 43 ejecutivos

0 errores de sintaxis detectados en el archivo average.f
6 advertencias emitidas en archivo promedio.f

Advertencia: el tipo de datos del argumento COMPAV del subprograma no coincide en la posición 1:
Dummy arg SCORE en el módulo COMPAV línea 10 file average.f es tipo intg
Actual arg NUMS en el módulo AVENUM línea 43 archivo average.f es de tipo real

Según la ftnchek, el programa contiene variables que se pueden utilizar antes de que sean
asignado un valor inicial, y variables que no son necesarias. ftnchek también advierte al
usuario que un cociente entero se ha convertido en real. Esto puede ayudar al usuario a
detectar un error de redondeo no intencionado. Desde el -symtab se le dio la bandera, ftnchek huellas dactilares
sacar una tabla que contiene identificadores del módulo local y su tipo de datos correspondiente
y número de dimensiones. Por fin, ftnchek advierte que no se utiliza la función COMPAV
con el tipo adecuado de argumentos.

Con ftnchekAyuda, podemos depurar el programa. Podemos ver que hubo los siguientes
errores:

1. SUM y COUNT deberían haberse convertido en reales antes de hacer la división.

2. SUM debería haberse inicializado a 0 antes de ingresar al ciclo.

3. AVG nunca se imprimió después de haber sido calculado.

4. NUMS debería haberse declarado INTEGER en lugar de REAL.

También vemos que I, no J, debería haber sido declarado INTEGER en la función COMPAV. También,
MAXNOS no fue declarado como INTEGER, ni COMPAV como REAL, en el programa AVENUM. Estos no son
errores, pero pueden indicar descuido. Como sucedió, el tipo predeterminado de estos
las variables coincidieron con el tipo previsto.

Aquí está el programa corregido y su salida cuando se ejecuta:

C AUTORES: MIKE MYERS Y LUCIA SPAGNUOLO
C FECHA: 8 DE MAYO DE 1989
C
Variables C:
PUNTUACIÓN C -> una variedad de puntuaciones de pruebas
C SUM -> suma de las puntuaciones de la prueba
C COUNT -> contador de puntuaciones leídas
CI -> contador de bucle
C
COMPAV FUNCIÓN REAL (PUNTUACIÓN, CUENTA)
SUMA INTEGRAL, CUENTA, I,PUNTAJE(5)
C
SUMA = 0
HACER 30 I = 1, CUENTA
SUMA = SUMA + PUNTUACIÓN (I)
30 CONTINUAR
COMPAV = FLOAT (SUM) / FLOAT (COUNT)
FIN
C
C
PROGRAMA AVENUM
C
C PROGRAMA PRINCIPAL
C
C AUTOR: LOIS BIGBIE
C FECHA: 15 DE MAYO DE 1990
C
Variables C:
C MAXNOS -> número máximo de valores de entrada
C NUMS -> una matriz de números
C COUNT -> número exacto de valores de entrada
C AVG -> promedio devuelto por COMPAV
CI -> contador de bucle
C
C
MAXNOS INTEGEROS
PARÁMETRO (MAXNOS = 5)
INTEGER I, NUMS (MAXNOS), COUNT
PROMEDIO REAL, COMPAV
CONTAR = 0
HACER 80 I = 1, MAXNOS
LEER (5, *, FIN = 100) NÚMEROS (I)
CONTAR = CONTAR + 1
80 CONTINUAR
100 AVG = COMPAV (NÚMEROS, RECUENTO)
ESCRIBIR (6, *) 'PROMEDIO =', PROMEDIO
FIN
$ promedio de ejecución
70
90
85

PROMEDIO = 81.66666
$

Con ftnchek¡Ayuda, nuestro programa es un éxito!

INTERPRETACIÓN EL REINO UNIDO SALIDA


Los mensajes dados por ftnchek incluir no solo errores de sintaxis, sino también advertencias y
mensajes informativos sobre cosas que son legales Fortran pero que pueden indicar errores o
descuido. La mayoría de estos mensajes se pueden desactivar mediante las opciones de la línea de comandos. Cual
La opción controla cada mensaje depende de la naturaleza de la condición sobre la que se advierte.
Consulte las descripciones de los indicadores de la línea de comandos en las secciones anteriores y de los
mensajes a continuación. Cada mensaje tiene como prefijo una palabra o frase que indica la naturaleza de
la condición y su gravedad.

`` Error '' significa un error de sintaxis. El tipo más simple de errores de sintaxis son tipográficos.
errores, por ejemplo, paréntesis desequilibrados o errores ortográficos de una palabra clave. Este tipo de
El analizador detecta el error y aparece con la descripción `` error de análisis '' o `` sintaxis
error '' (dependiendo de la versión del generador de analizador y si es GNU bisonte or
UNIX yacc). Este tipo de mensaje de error no se puede suprimir. Tenga en cuenta que este tipo de
error a menudo significa que ftnchek no ha interpretado correctamente la declaración donde el error
ocurre, por lo que sus operaciones de verificación posteriores se verán comprometidas. Debería
eliminar todos los errores de sintaxis antes de proceder a interpretar los otros mensajes ftnchek
da.

`` Advertencia: sintaxis no estándar '' indica una extensión de Fortran que ftnchek apoya
pero eso no está de acuerdo con el estándar Fortran 77. Las extensiones que ftnchek acepta
se describen en la sección de Extensiones a continuación. Un ejemplo es el DO ... ENDDO
construcción. Si un programa utiliza estas extensiones, se darán advertencias de acuerdo con
especificaciones bajo el -f77 ajuste. El comportamiento predeterminado es no dar advertencias.

`` Advertencia '' en otros casos significa una condición que es sospechosa pero que puede o no ser
un error de programación. Con frecuencia, estas condiciones son legales según la norma. Algunos son
ilegal, pero no se incluyen en el título de errores de sintaxis. Los errores de uso son un ejemplo.
Se refieren a la posibilidad de que una variable se pueda utilizar antes de que se le haya asignado un
valor (generalmente un error), o que una variable se declara pero nunca se usa (inofensivo pero
puede indicar descuido). La cantidad de verificación de errores de uso está controlada por el
-uso bandera, que especifica la cantidad máxima de comprobación de forma predeterminada.

Las advertencias de truncamiento cubren situaciones en las que la precisión puede perderse involuntariamente, por
ejemplo cuando se asigna un valor de doble precisión a una variable real. Estas advertencias son
controlado por el -truncamiento configuración, que está activada de forma predeterminada.

El `` uso no portátil '' advierte sobre algunas características que pueden no ser aceptadas por algunos compiladores
aunque no sea contrario al estándar Fortran 77, o que pueda causar que el programa
para funcionar de manera diferente en diferentes plataformas. Por ejemplo, equivalencias reales y
las variables enteras no suelen ser una práctica portátil. El uso de extensiones a la
El lenguaje estándar es, por supuesto, otra fuente de no portabilidad, pero esto se maneja como
un caso aparte. Para comprobar la verdadera portabilidad de un programa, tanto el -portabilidad y del
-f77 Deben utilizarse banderas. Ambos están desactivados de forma predeterminada. El -Tamaño de la palabra el escenario es
proporcionado para verificar solo aquellos usos no portátiles que dependen de una máquina en particular
Tamaño de la palabra.

La `` apariencia posiblemente engañosa '' se utiliza para construcciones legales que pueden no significar lo que
parecen significar a primera vista. Por ejemplo, Fortran es insensible al espacio en blanco,
espacio tan extraño dentro de los nombres de variables o la falta de espacio entre una palabra clave y una
variable puede transmitir una impresión errónea al lector. Estos mensajes se pueden suprimir
apagando el -bonita bandera, que está activada de forma predeterminada.

Otros mensajes que se dan después de que se procesan todos los archivos y que tienen que ver con
acuerdo entre módulos, no use la palabra `` advertencia '' pero generalmente caiga en eso
categoría. Los ejemplos incluyen discrepancias de tipos entre las variables correspondientes en diferentes
Declaraciones de bloque COMUNES, o entre argumentos ficticios y reales de un subprograma. Estos
las advertencias están controladas por el -común y -argumentos ajustes respectivamente. Por defecto
ambos se establecen para el máximo rigor de control.

Otro grupo de advertencias sobre afecciones que a menudo son inofensivas se refieren a casos en los que
las propiedades de matriz de una variable pasada como un argumento de subprograma difieren entre los dos
rutinas. Por ejemplo, un elemento de matriz puede pasarse a una subrutina que espera una
conjunto completo. Ésta es una técnica de uso común para procesar filas o columnas individuales de
matrices bidimensionales. Sin embargo, también podría indicar un error de programación. El -formación
La configuración permite al usuario ajustar el grado de rigor que se utilizará para verificar este
tipo de acuerdo entre los argumentos de matriz reales y ficticios. Por defecto, el rigor es
máximo.

`` Vaya '' indica un problema técnico, es decir, un error en ftnchek o que es
se han excedido los recursos.

Los mensajes de error de sintaxis y las advertencias incluyen el nombre del archivo junto con el número de línea y
número de columna. ftnchek tiene dos opciones diferentes para la aparición de estos errores
mensajes. Si -principiante está en efecto, que es el valor predeterminado, los mensajes están en un estilo
aproximándose al inglés normal. (En el estilo predeterminado, el nombre del archivo no se imprime en los mensajes
dentro del cuerpo del programa si -lista está en efecto). El otro estilo de mensajes de error
es seleccionado por el -novicio opción. En este estilo, la apariencia de los mensajes es
similar al de UNIX hilas .

ftnchek todavía está ciego a algunos tipos de errores de sintaxis. Los dos más importantes son
comprobación detallada de las declaraciones FORMAT, y casi cualquier cosa que tenga que ver con el control de
flujo de ejecución por medio de declaraciones IF, DO y GOTO: a saber, anidamiento correcto del control
estructuras, emparejamiento de declaraciones de apertura como SI ... ENTONCES con declaraciones de cierre
como ENDIF, y el uso adecuado de etiquetas de instrucciones (números). La mayoría de los compiladores
detectar estos errores. Consulte la sección sobre Limitaciones para una discusión más detallada.

If ftnchek le da un mensaje de error de sintaxis cuando el compilador no lo hace, puede ser porque
su programa contiene una extensión de Fortran estándar que es aceptada por el compilador
pero no por ftnchek. (Consulte la sección sobre extensiones). En un sistema VAX / VMS, puede usar
la opción del compilador / ESTÁNDAR para hacer que el compilador acepte solo Fortran estándar. Sobre
la mayoría de los sistemas UNIX o similares a UNIX, esto se puede lograr estableciendo la bandera -ansi.

Muchos de los mensajes dados por ftnchek son autoexplicativos. Los que necesitan algo
Las explicaciones adicionales se enumeran a continuación en orden alfabético.

Algunos bloquear NOMBRE: datos tipo desajuste at posición n
El n-th variable en el bloque COMÚN difiere en el tipo de datos en dos diferentes
declaraciones del bloque COMÚN. Por defecto (-común nivel de rigor 3), ftnchek
es muy exigente con los bloques COMUNES: las variables enumeradas en ellos deben coincidir exactamente
por tipo de datos y dimensiones de la matriz. Es decir, el par legal de declaraciones en
diferentes módulos:
COMÚN / COM1 / A, B
y
COMÚN / COM1 / A(2)
causará ftnchek dar advertencias en el nivel de rigor 3. Estas dos declaraciones
son legales en Fortran ya que ambos declaran dos variables reales. En rigor
nivel 1 o 2, no se daría ninguna advertencia en este ejemplo, pero la advertencia sería
dado si hubo una discrepancia en el tipo de datos, por ejemplo, si B se declaró INTEGER.
Controlado por -común ajuste.

Algunos bloquear NOMBRE tiene Corto datos tipo siguiendo Corto datos tipo
Algunos compiladores requieren la alineación de elementos de varios bytes para que cada elemento comience en un
dirección que es un múltiplo del tamaño del artículo. Por tanto, si un corto (p. Ej.
precisión real) es seguido por un elemento largo (por ejemplo, doble precisión real), el
Este último puede no estar alineado correctamente. Controlado por -portabilidad = alineación común
.

Algunos bloquear NOMBRE tiene mezclado personaje y sin carácter las variables
El estándar ANSI requiere que si alguna variable en un bloque COMÚN es de tipo
CHARACTER, entonces todas las demás variables en el mismo bloque COMÚN también deben ser de tipo
PERSONAJE. Controlado por -f77 = mixto-común .

Algunos bloquear NOMBRE: variar de largo
-común nivel de configuración 2, este mensaje significa que se declara un bloque COMÚN para
tienen diferentes números de palabras en dos subprogramas diferentes. Una palabra es la cantidad
de almacenamiento ocupado por una variable entera o real. Para -común nivel de ajuste 3,
significa que las dos declaraciones tienen diferentes números de variables, donde un
una matriz de cualquier tamaño se considera una variable. Esto no es necesariamente un error,
pero puede indicar que falta una variable en una de las listas. Tenga en cuenta que
de acuerdo con el estándar Fortran 77, es un error para bloques COMUNES nombrados (pero
no en blanco COMÚN) para diferir en el número de palabras en declaraciones en diferentes
módulos. Dado por -común ajuste 2 o 3.

Error: Mal formado lógico / relacional operador or constante

Error: Mal formado real constante
El analizador de sintaxis ha encontrado el comienzo de una de las palabras especiales que comienzan y
terminar con un punto (por ejemplo, .EQ.), o el comienzo de una constante numérica, pero no
Lograr encontrar un artículo completo de ese tipo.

Error: no puede be ajustable tamaño in módulo NOMBRE
No se puede declarar una variable de carácter con un tamaño que sea un asterisco en
paréntesis a menos que sea un argumento ficticio, un parámetro o el nombre de la función
definido en el módulo.

Error: no puede be declaró in SAVE ambiental in módulo NOMBRE
Solo las variables locales y los bloques comunes se pueden declarar en una instrucción SAVE.

Error: No camino a así ambiental
ftnchek detectará declaraciones que se ignoran o se pasan por alto porque no hay
ruta previsible a la declaración. Por ejemplo, una declaración no numerada (un
declaración sin una etiqueta de declaración), que se produce inmediatamente después de una declaración GOTO,
posiblemente no se puede ejecutar.

Error: Analizar error
Esto significa que el analizador, que analiza el programa Fortran en expresiones,
declaraciones, etc., no ha podido encontrar una interpretación válida para una parte
de una declaración en el programa. Si su compilador no informa un error de sintaxis en
En el mismo lugar, las explicaciones más comunes son: (1) uso de una extensión de ANSI
Fortran estándar que no es reconocido por ftnchek, o (2) la declaración requiere
más anticipada que ftnchek usos (consulte la sección sobre errores).

NOTA: Este mensaje significa que la declaración afectada no se interpreta.
Por tanto, es posible que ftnchekEl procesamiento posterior será erróneo, si
depende de cualquier asunto afectado por esta declaración (declaraciones de tipo, etc.).

Error: Sintaxis error
Esto es lo mismo que `` Error: error de análisis '' (ver arriba). Se genera si tu
versión de ftnchek fue construido usando UNIX yacc generador de analizador sintáctico en lugar de GNU
bisonte.

Identificadores que en no único in la primera seis caracteres
Advierte que dos identificadores de más de 6 caracteres no difieren en el
primeros 6 caracteres. Esto es por portabilidad: es posible que no se consideren distintos
por algunos compiladores. Controlado por -seis caracteres .

No portátil uso: argumento precisión podrían no be correcta para intrínseco función
La precisión de un argumento pasado a una función intrínseca puede ser incorrecta en
unas computadoras. Emitido cuando una variable numérica declarada con precisión explícita
(por ejemplo, REAL * 8 X) se pasa a una función intrínseca específica (por ejemplo, DSQRT (X)).
Controlado por -portabilidad = tamaño mixto y -Tamaño de la palabra.

No portátil uso: personaje la variable constante de largo excede 255
Algunos compiladores no admiten cadenas de caracteres de más de 255 caracteres.
Controlado por -portabilidad = cadena larga.

No portátil uso: Archive contiene fichas
ftnchek expande las pestañas para que sean equivalentes a espacios hasta la siguiente columna, que es una
múltiplo de 8. Algunos compiladores tratan las pestañas de manera diferente, y también es posible que
los archivos enviados por correo electrónico tendrán las pestañas convertidas a espacios en blanco de alguna manera.
Por lo tanto, es posible que los archivos que contienen pestañas no se compilen correctamente después de ser
transferido. ftnchek no da este mensaje si las pestañas solo aparecen dentro de los comentarios
o constantes de caracteres. Controlado por -portabilidad = pestaña.

No portátil uso: no entero DO loops límites
Esta advertencia solo se da cuando el índice DO y los límites no son enteros. Uso de
Cantidades no enteras en una declaración DO pueden causar errores inesperados o diferentes
resultados en diferentes máquinas, debido a efectos de redondeo. Controlado por
-portabilidad = real-do.

Probablemente it is an matriz que fue no declaró
Este mensaje se adjunta a las advertencias relacionadas con la invocación de una función o
desajuste de tipo de argumento, por lo que existe la posibilidad de que lo que parece ser un
En realidad, la función está destinada a ser una matriz. Si el programador olvidó dimensionar
una matriz, las referencias a la matriz se interpretarán como invocaciones de funciones.
Este mensaje se suprimirá si el nombre en cuestión aparece en un EXTERNO o
Declaración INTRINSIC. Controlado por el -principiante .

Probablemente engañoso apariencia: personajes pasado 72 columnas
El programa se está procesando con el ancho del campo de declaración en su valor estándar
de 72, y se han encontrado algunos caracteres que no están en blanco más allá de la columna 72. En este caso,
ftnchek no procesa los caracteres más allá de la columna 72 y notifica al usuario
que la declaración puede no tener el significado que parece tener. Estos
El programador puede pretender que los caracteres sean significativos, pero serán
ignorado por el compilador. Controlado por -pretty = long-line.

Probablemente engañoso apariencia: Algunos bloquear declaró in más, que una ambiental
Tales declaraciones múltiples son legales y tienen el mismo efecto que una continuación de
la declaración original del bloque. Esta advertencia solo se da si los dos
las declaraciones están separadas por una o más declaraciones intermedias. Controlado por
-pretty = multiple-common.

Probablemente engañoso apariencia: Continuación siguiente comentario or en blanco línea
ftnchek emite este mensaje de advertencia para alertar al usuario de que una continuación de un
La declaración está intercalada con comentarios, por lo que es fácil pasarla por alto. Controlado por
-pretty = continuación.

Probablemente engañoso apariencia: Extraño paréntesis
Advierte sobre los paréntesis que rodean una variable por sí misma en una expresión. Cuando un
La variable entre paréntesis se pasa como un argumento a un subprograma, se trata como
una expresión, no como una variable cuyo valor pueda ser modificado por la rutina llamada.
Controlado por -pretty = paréntesis.

Subprograma NOMBRE: argumento datos tipo desajuste at posición n
El subprograma n-ésimo argumento real (en la CALL o el uso de una función)
difiere en el tipo de datos o la precisión de la n-th argumento ficticio (en la SUBRUTINA o
Declaración de FUNCIÓN). Por ejemplo, si el usuario define un subprograma por
SUBROUTINA SUBA (X)
REAL X
y en otros lugares invoca SUBA por
LLAMENOS SUBA(2)
ftnchek detectará el error. La razón aquí es que el número 2 es un número entero,
irreal. El usuario debería haber escrito
LLAMAR SUBA (2.0)

Al verificar un argumento que es un subprograma, ftnchek debe poder determinar
ya sea una función o una subrutina. Las reglas utilizadas por ftnchek para hacer esto son
de la siguiente manera: Si el subprograma, además de pasar como un argumento real, también se
invocado directamente en otra parte del mismo módulo, entonces su tipo está determinado por ese
uso. De lo contrario, si el nombre del subprograma no aparece en un
declaración de tipo, se supone que es una subrutina; si se escribe explícitamente es
tomado como una función. Por lo tanto, las subrutinas pasadas como argumentos reales solo necesitan
ser declarado por una declaración EXTERNA en el módulo de llamada, mientras que las funciones deben
también debe escribirse explícitamente para evitar generar este mensaje de error.
Controlado por -argumentos ajuste.

Subprograma NOMBRE: argumento arreglo desajuste at posición n
Similar a la situación anterior, pero el argumento ficticio del subprograma difiere de
el argumento real correspondiente en su número de dimensiones o número de
elementos. Controlado por -formación Junto con -argumentos configuración.

Subprograma NOMBRE: argumento desajuste at posición n
Un argumento ficticio de carácter es más grande que el argumento real correspondiente, o un
El argumento ficticio de Hollerith es más grande que el argumento real correspondiente.
Controlado por -argumentos ajuste.

Subprograma NOMBRE: argumento personal desajuste
ftnchek detecta un posible conflicto entre la forma en que un subprograma usa un argumento
y la forma en que se suministra el argumento al subprograma. El conflicto puede
ser uno de los dos tipos, como se describe a continuación.

Tonto arg is modificado, Real arg is const or expr
Un argumento ficticio es un argumento como se nombra en una instrucción SUBROUTINE o FUNCTION y
utilizado dentro del subprograma. Un argumento real es un argumento que se pasa a un
subrutina o función de la persona que llama. ftnchek está diciendo que un argumento ficticio es
modificado por el subprograma, lo que implica que su valor se cambia en la llamada
módulo. El argumento real correspondiente no debe ser una constante o expresión,
sino más bien una variable o un elemento de matriz al que se puede asignar legítimamente.
Controlado por el -usage = arg-const-modified .

Tonto arg usado antes conjunto, Real arg no set
Aquí se puede usar un argumento ficticio en el subprograma antes de tener un valor asignado
a él por el subprograma. El argumento real correspondiente debe tener un valor
que le asigna la persona que llama antes de invocar el subprograma. Controlado por el
-usage = var-uninitialized .

Esta advertencia no se ve afectada por la -argumentos ajuste.

Subprograma NOMBRE invocado inconsistentemente
Aquí la discrepancia es entre el tipo de datos del subprograma en sí como se usa y como
definido. Por ejemplo, si el usuario declara
RECUENTO DE FUNCIONES INTEGER (A)
e invoca COUNT en otro módulo como
N = CONTAR (A)
sin declarar su tipo de datos, por defecto será el tipo real, basado en el primer
letra de su nombre. El módulo de llamada debería haber incluido la declaración
RECUENTO ENTERO

Dado por -argumentos ajuste 2 o 3.

Subprograma NOMBRE: variar de largo argumento liza:
Se ha encontrado una inconsistencia entre el número de argumentos ficticios (parámetros)
que tiene un subprograma y el número de argumentos reales que se le dan en una invocación.
ftnchek realiza un seguimiento de todas las invocaciones de subprogramas (declaraciones CALL y
expresiones que utilizan funciones) y las compara con las definiciones de
subprogramas en otras partes del código fuente. El compilador de Fortran normalmente no
detectar este tipo de error. Dado por -argumentos ajuste 1 o 3.

Variable no declarado. Tipo de Propiedad tiene esto implícitamente se define
Al imprimir la tabla de símbolos de un módulo, ftnchek marcará con un asterisco todo
identificadores que no se escriben explícitamente y mostrarán el tipo de datos que se
asignado mediante escritura implícita. Esto proporciona soporte a los usuarios que deseen
declare todas las variables como se requiere en Pascal o algunos otros lenguajes. Esta
El mensaje aparece solo cuando el -symtab La opción está en vigor. Alternativamente, use el
-declarar marque si desea obtener una lista de todas las variables no declaradas.

Variables declaró pero nunca referencia
Detecta los identificadores que se declararon en su programa pero que nunca se utilizaron,
ya sea para que se le asigne un valor o para que se acceda a su valor. Variables en COMÚN
están excluidos. Controlado por el -usage = var-unused .

Variables set pero nunca usado
ftnchek notificará al usuario cuando a una variable se le haya asignado un valor, pero el
La variable no se usa de otra manera en el programa. Por lo general, esto es el resultado de una
vigilancia. Controlado por el -usage = var-set-unused .

Variables usado antes set
Este mensaje indica que se utiliza un identificador para calcular un valor antes de su
inicialización. Dicho uso puede dar lugar a que se calcule un valor incorrecto, ya que
su valor inicial no está controlado. Controlado por el -usage = var-uninitialized
.

Variables podrían be usado antes set
Similar al usado antes del conjunto excepto que ftnchek no puede determinar su estado
con certeza. ftnchek asume que se puede usar una variable antes de establecer si la primera
el uso de la variable ocurre antes en el texto del programa a su asignación.
Controlado por el -usage = var-uninitialized .

Advertencia: DO índice is no entero
Esta advertencia solo se da cuando los límites DO son enteros, pero el índice DO no lo es.
Puede indicar un error al declarar que el índice es un número entero. Controlado por
-truncamiento = real-do .

Advertencia: entero cociente expr ... convertido a real
El cociente de dos enteros da como resultado un resultado de tipo entero, en el que el
se deja caer la parte fraccionaria. Si tal expresión entera que involucra división es
más tarde convertido a un tipo de datos real, puede ser que una división de tipo real haya sido
destinado a. Controlado por -truncamiento = int-div-real .

Advertencia: Entero cociente expr ... usado in exponente
El cociente de dos enteros da como resultado un resultado de tipo entero, en el que el
se deja caer la parte fraccionaria. Si dicha expresión entera se usa como exponente,
es muy probable que se pretendiera realizar una división de tipos real. Controlado por
-truncamiento = int-div-exponent .

Advertencia: NOMBRE no set cuando DEVOLUCION encontrado
La forma en que las funciones en Fortran devuelven un valor es asignando el valor a la
nombre de la función. Este mensaje indica que a la función no se le asignó un
valor antes del punto donde se encontró una instrucción RETURN. Por tanto, es
posible que la función pueda devolver un valor indefinido.

Advertencia: No estándar sintaxis: ajustable tamaño no puede be concatenados esta página
El estándar Fortran 77 (sección 6.2.2) prohíbe la concatenación de variables de caracteres
cuyo tamaño es un asterisco entre paréntesis, excepto en una instrucción de asignación.
Controlado por -f77 = expr-mixto.

Advertencia: No estándar sintaxis : importante personajes pasado 72 columnas
Esta advertencia se da bajo el -f77 = palangre ajuste si el -columnas el escenario tiene
se ha utilizado para aumentar el ancho del campo de declaración, y una declaración tiene significado
el texto del programa más allá de la columna 72. Standard Fortran ignora todo el texto en esas columnas,
pero algunos compiladores no. Por lo tanto, el programa puede ser tratado de manera diferente por
diferentes compiladores.

Advertencia: No estándar sintaxis : Posicionamiento salir of orden.
ftnchek detectará declaraciones que están fuera de la secuencia especificada para ANSI
estándar Fortran 77. La Tabla 1 ilustra la secuencia permitida de declaraciones en el
Lengua de Fortran. Sin embargo, las declaraciones que están fuera de orden son interpretadas por
ftnchek, para evitar `` cascadas '' de mensajes de error. El contador de secuencia también es
revertido para evitar la repetición del mensaje de error para un bloque de similar
declaraciones. Controlado por el -f77 = orden-sentencia .

-------------------------------------------------- ------
| | implícito
| parámetro | ---------------------
| | otra especificación
formato | --------------- | ---------------------
y | | función-declaración
entrada | datos | ---------------------
| | ejecutable
-------------------------------------------------- ------

Tabla 1

Advertencia: Posibles división by cero
Este mensaje se imprime donde se realiza la división (excepto la división por un
constante). Úselo para ayudar a localizar un problema de división por cero en tiempo de ejecución. Revisado
by -división .

Advertencia: real truncado a ingles
ftnchek ha detectado una declaración de asignación que tiene una expresión real en el
derecha, pero una variable entera a la izquierda. La parte fraccionaria del valor real
se perderá. Si convierte explícitamente la expresión real en un número entero utilizando el
Función intrínseca INT o NINT, no se imprimirá ninguna advertencia. Un mensaje similar es
se imprime si se asigna una expresión de precisión doble a una precisión simple
variable, etc. Controlado por -truncamiento = degradación .

Advertencia: subíndice is no entero
Dado que los subíndices de matriz son normalmente cantidades enteras, el uso de un número no entero
expresión aquí puede indicar un error. Controlado por -truncamiento = subíndice real
.

Advertencia: Desconocido intrínseco función
Este mensaje advierte al usuario que un nombre declarado en una declaración INTRINSIC es
desconocido para ftnchek. Probablemente sea una función intrínseca no estándar, por lo que la
El programa no será portátil. La función será tratada por ftnchek como usuario
función definida. Esta advertencia no es suprimida por ninguna opción, ya que afecta
ftnchekAnálisis del programa. Sin embargo, si la función intrínseca está en uno de los
los conjuntos admitidos de intrínsecos no estándar, puede utilizar el -intrínseco el establecimiento de
porque ftnchek para reconocerlo.

LIMITACIONES Y AMPLIACIONES


ftnchek acepta los programas estándar ANSI Fortran-77 con algunas limitaciones menores y numerosas
extensiones comunes.

Limitaciones:
Los argumentos ficticios en las funciones de instrucción se tratan como variables ordinarias de
el programa. Es decir, su alcance es el subprograma completo, no solo el enunciado
definición de función.

La comprobación de las declaraciones FORMAT es laxa, tolerando la falta de separadores (coma,
etc.) entre descriptores de formato en lugares donde la Norma los requiera, y
logrará una rápida implementación .d campos en descriptores que no deberían tenerlos. Advierte bajo
-f77 = formato-editar-descr sobre los tipos de descriptores no estándar (como O), y admitidos
extensiones.

Hay algunas extensiones sintácticas y elementos Fortran 90 que ftnchek acepta
pero realiza muy pocas comprobaciones. Por ejemplo, el uso del puntero (si el
la sintaxis de Cray no estándar o la sintaxis de Fortran 90) no se comprueba excepto para el conjunto
y estado usado. Se espera que algún día se realicen controles más exhaustivos.
implementado, pero por ahora el usuario debe considerar la aceptación de estos sintácticos
características simplemente como una conveniencia para permitir la verificación de otros aspectos del código que
los contiene. Consulte la sección Extensiones para obtener información específica sobre las funciones
aceptado pero no completamente verificado.

Si un subprograma proporcionado por el usuario tiene el mismo nombre que uno de los
funciones reconocidas por ftnchek, debe declararse en una declaración EXTERNA en
cualquier rutina que lo invoca. De lo contrario, estará sujeto a la verificación normalmente.
dado a la función intrínseca. Dado que los intrínsecos no estándar no son
estándar, esta declaración EXTERNA no es requerida por el estándar Fortran 77.
Usando el -intrínseco = ninguno entorno, reconocimiento de la mayoría de los intrínsecos no estándar
(excepto solo los necesarios para admitir el tipo de datos complejo doble) se puede convertir
apagado. Consulte las listas de funciones intrínsecas no estándar admitidas en la sección
discusión de la -intrínseco ajuste de arriba.

Prórrogas de tiempo para presentar declaraciones de impuestos:
Todas estas extensiones (excepto los caracteres en minúscula) generarán advertencias si
lo relevante -f77 La opción está configurada. Algunas de las extensiones que se enumeran a continuación son parte de
el estándar Fortran-90. Estos se indican mediante la notación (F90).

Se permiten tabulaciones y se traducen a espacios en blanco equivalentes que corresponden a tabulaciones.
se detiene cada 8 columnas. El estándar no reconoce pestañas. Tenga en cuenta que algunos
Los compiladores permiten pestañas, pero las tratan de manera diferente. El tratamiento definido para DEC
FORTRAN se puede lograr usando el -source = dec-tab ajuste.

Las cadenas pueden estar delimitadas por comillas o apóstrofos. Una secuencia de dos
Los caracteres delimitadores se interpretan como un solo carácter delimitador incrustado.
(F90)

Las cadenas pueden contener secuencias de escape de barra invertida de estilo UNIX. Ellos estarán
interpretado como tal si el -source = unix-backslash se da el ajuste. De lo contrario, el
El carácter de barra invertida se tratará como un carácter de impresión normal.

El código fuente puede estar en formato libre Fortran 90 o en formato fijo tradicional.
(F90)

Se permite un punto y coma como separador de instrucciones. (F90)

Los caracteres en minúscula están permitidos y se convierten internamente en mayúsculas.
excepto en cadenas de caracteres. El estándar especifica solo mayúsculas, excepto en
comentarios y cadenas. (F90)

Las constantes de Hollerith están permitidas, de acuerdo con el estándar Fortran 77,
apéndice C. No deben usarse en expresiones ni confundirse con el tipo de datos
PERSONAJE.

La letra 'D' (mayúscula o minúscula) en la columna 1 se trata como el comienzo de una
comentario. No existe la opción de tratar estas líneas como declaraciones en lugar de comentarios.

Las declaraciones pueden tener más de 72 columnas siempre que la configuración -columnas fue
utilizado para aumentar el límite. Según el estándar, todo el texto de las columnas 73
a 80 se ignora y ninguna línea puede tener más de 80 columnas.

Los nombres de las variables pueden tener más de seis caracteres. El estándar especifica seis como
el maximo. ftnchek permite nombres de hasta 31 caracteres (F90).

Los nombres de las variables pueden contener guiones bajos y signos de dólar (u otros
caracteres según lo especificado por el -caracteres-identificadores opción). Estos personajes son
tratados de la misma manera que las letras alfabéticas. El tipo predeterminado para las variables que comienzan
con estos personajes es REAL. En declaraciones de tipo IMPLICIT que especifican un rango de
caracteres, el signo de dólar sigue a Z y va seguido de un guión bajo. (Cualquier otro
los caracteres definidos por el usuario se tratan igual que el signo de dólar.) Fortran 90
permite guiones bajos en nombres de variables.

La versión UNIX tolera la presencia de directivas de preprocesador, a saber, líneas
comenzando con el signo de libra (#). Estos se tratan como comentarios, a excepción de #line
directivas, que se interpretan y se utilizan para establecer el número de línea y la fuente
nombre de archivo para advertencias y mensajes de error. Tenga en cuenta que las directivas #include no son
procesado por ftnchek. Los programas que los utilizan para incluir archivos de origen deben
Pasó por el preprocesador antes de ser ingresado a ftnchek. Como se señala a continuación,
ftnchek procesa sentencias INCLUDE, que tienen una sintaxis diferente. Un
programa opcional, ftnpp(1L) (disponible por separado) proporciona un preprocesamiento que
maneja correctamente los archivos INCLUDE.

Se permite la estructura de control Fortran 90 DO ... ENDDO. El CICLO y SALIDA
Se aceptan declaraciones. Todos estos pueden tener un nombre de construcción opcional, pero
no se comprueba la coherencia de los nombres de construcción. (F90)

Se acepta la construcción Fortran 90 SELECT CASE. (F90)

Los nombres de construcción también se aceptan en IF, THEN, ELSE, ENDIF y SELECT CASE
declaraciones. (F90)

Se permiten las sentencias ACCEPT y TYPE (para E / S de terminal), con el mismo
sintaxis como PRINT.

Se tolera la sintaxis denominada `` puntero Cray ''. No es lo mismo que el
Declaración de Fortran 90 POINTER. No hay una verificación real de la declaración de otros
que la sintaxis básica. La forma de esta declaración es
PUNTERO (puntero, pointee) [, (puntero, pointee)]
A las variables de puntero se les asigna un tipo de datos de INTEGER * 4. Comprobación de uso de
las variables apuntadas se suprimen, ya que en la práctica se accede a ellas de forma indirecta
a través de los punteros.

Se aceptan las siguientes sintaxis relacionadas con el puntero Fortran 90: ALLOCATABLE,
Declaraciones POINTER y TARGET y los mismos atributos en declaraciones de tipo;
ALLOCATE, DEALLOCATE y NULLIFY sentencias ejecutables; asignación de puntero usando
=> operador; y las funciones intrínsecas ASIGNADAS y ASOCIADAS. Poco semántico
la verificación de las variables y operaciones del puntero se realiza más allá del conjunto básico y se usa
estado. Por ejemplo, no se comprueban errores como punteros colgantes,
o el uso de matrices no asignadas.

Las declaraciones pueden tener cualquier número de líneas de continuación. El Fortran 77 y Fortran
90 estándares permiten un máximo de 19 en forma de fuente fija. El estándar Fortran 90
permite un máximo de 39 en formato de fuente libre.

Operadores relacionales (de comparación) compuestos de puntuación, a saber: <<= == / =>> =
están permitidos. (F90)

Se permiten comentarios en línea que comiencen con un signo de exclamación. (F90)

Se admite E / S NAMELIST. La sintaxis es la misma que en Fortran 90.

Las declaraciones FORMAT pueden contener un signo de dólar para indicar la supresión del transporte.
regreso. Una expresión entera encerrada entre corchetes angulares se puede usar en cualquier lugar de una
Declaración FORMAT donde el estándar Fortran 77 permite una constante entera (excepto
para la longitud de una constante de Hollerith), para proporcionar un valor de tiempo de ejecución para una repetición
especificación o ancho de campo.

Se permiten palabras clave no estándar en las declaraciones de E / S, correspondientes a las de VMS
Fortrán.

Se admite la instrucción IMPLICIT NONE. El significado de esta declaración es que
todas las variables deben tener sus tipos de datos declarados explícitamente. En lugar de marcar el
apariciones de tales variables con mensajes de error de sintaxis, ftnchek espera hasta el
final del módulo, y luego imprime una lista de todas las variables no declaradas, ya que
hace por el -declarar opción. (F90)

Los tipos de datos INTEGER, REAL, COMPLEX y LOGICAL pueden tener un
especificación de precisión en declaraciones de tipo. Por ejemplo, REAL * 8 significa 8 bytes
tipo de datos de coma flotante. El tipo de datos REAL * 8 no se considera necesariamente
equivalente a DOBLE PRECISIÓN, dependiendo de la -Tamaño de la palabra ajuste. El Fortran 77
Estándar permite una especificación de longitud solo para datos de CARÁCTER.

ftnchek admite la especificación de tipo DOBLE COMPLEJO para una cantidad compleja cuyo
las partes reales e imaginarias son de doble precisión. Aritmética de modo mixto que implica
Complejo de precisión simple con datos reales de doble precisión, prohibido bajo la
Estándar, produce un resultado de doble complejo.

Se aceptan declaraciones de tipo combinadas e inicializadores similares a declaraciones de datos.
Estos tienen la forma de una declaración de tipo Fortran 77 estándar, seguida de una barra
lista delimitada de constantes como la que se usa en una declaración DATA. Un ejemplo del
la sintaxis es
ENTERO N/100/
Esta forma bastarda de declaración inicializadora no fue adoptada en Fortran 90. Tal
Las declaraciones deben escribirse utilizando el formulario estándar que se describe a continuación, que es
aceptado por ftnchek.

Hay soporte limitado para declaraciones de tipo basadas en atributos de Fortran 90. Esta
El estilo de declaración se distingue por el uso de dos puntos dobles (: :) entre los
lista de atributos y la lista de variables declaradas. Las funciones admitidas pueden
Ser adecuados para programadores novatos, pero aún no son suficientes para profesionales.
programas de calidad Fortran 90. Espero agregar soporte para más funciones en el futuro
lanzamientos. Invito a voluntarios para que ayuden en esta tarea. Vea el archivo ToDo en el
distribución del código fuente para obtener más detalles. Los atributos actualmente aceptados, además
todos los tipos de datos habituales son DIMENSION, EXTERNAL, INTRINSIC, PARAMETER y SAVE.
La nueva forma de declaración también permite la asignación de valores a las variables.
declarado. En la actualidad, el (LEN =valor) La forma de especificar la longitud de los caracteres también es
aceptado. Especificaciones amables, usando (KIND =valor) se analizan pero no
procesado: todo tipo se trata como tipo predeterminado. Además, hay pocas comprobaciones
de estas declaraciones más allá de la sintaxis básica.

Se proporcionan muchas funciones intrínsecas no estándar que se encuentran comúnmente. Ver el
discusión de -intrínseco para obtener una lista de funciones y cómo controlar cuáles son
Reconocido.

La verificación de argumentos no es estricta para aquellos intrínsecos no estándar que toman matrices o
tipos de argumentos mixtos.

ftnchek permite la declaración INCLUDE, que provoca la inclusión del texto de la
archivo dado. La sintaxis es
INCLUYE 'nombre de archivo'
Esto es compatible con Fortran 90. Si el -source = vms-include se da la opción,
ftnchek sigue las convenciones de VMS con respecto a esta declaración: asume un
extensión predeterminada de .para si no se proporciona una extensión de nombre de archivo, y permite
calificador / [NO] LISTA después del nombre de archivo, para controlar la lista de los incluidos
Archivo. No hay soporte para incluir módulos de texto VMS.

En la salida de diagnóstico relacionada con los elementos contenidos en los archivos de inclusión, la ubicación de
el error se especifica tanto por su ubicación en el archivo de inclusión como por la ubicación en
el archivo principal donde se incluyó el archivo.

ftnchek acepta declaraciones PARAMETER que carecen de paréntesis. Estos serán advertidos
sobre si el -f77 = param-noparen se da la bandera.

ftnchek acepta definiciones de PARÁMETROS que involucran funciones intrínsecas y
exponenciación por un exponente no entero. Ambos casos están prohibidos por
el Fortran 77 Standard, y se le advertirá si el -f77 = param-intrínseco bandera
es dado. Si el valor de una función intrínseca es una constante entera en tiempo de compilación,
ftnchek lo evaluará. Esto permite comprobar mejor si el parámetro se utiliza en
declarando tamaños de matriz. Fortran 90 permite funciones intrínsecas en PARÁMETRO
definiciones.

Las funciones intrínsecas que se evalúan son:

ABS IABS DIM IDIM MAX
MAX0 MIN MIN0 MOD SIGNO
ÍNDICE ISIGN LEN ICHAR

Las funciones de los argumentos enteros se evalúan solo si los argumentos son enteros
Expresiones constantes. (Estos pueden involucrar constantes enteras, parámetros y
funciones intrínsecas evaluadas.) La función LEN se evalúa si su argumento es
una expresión que incluye solo constantes de caracteres y variables cuya longitud no es
ajustable. Las funciones ICHAR e INDEX se evalúan solo si los argumentos son
constantes de caracteres. ftnchek da una advertencia si necesita el valor de alguna
función intrínseca que no se evalúa.

NUEVO CATEGORIAS


Estos son los cambios de la versión 3.2 a la versión 3.3:

1. El front-end se ha reescrito para una búsqueda anticipada ilimitada, eliminando el error de larga data
que provocó una interpretación incorrecta de declaraciones cuya ambigüedad no se resolvió en
la primera línea.

2. los -mkhtml La opción ahora está disponible en la versión MS-DOS.

3. Se agregó soporte para la sintaxis relacionada con el puntero Fortran 90: ALLOCATE, DEALLOCATE y NULLIFY
declaraciones; los atributos ALLOCATABLE, POINTER y TARGET en declaraciones de tipo; el
operador de asignación de puntero => y funciones intrínsecas ASIGNADAS y ASOCIADAS; y
declaraciones de matriz de forma diferida. Actualmente se aceptan estas nuevas características de sintaxis
pero no comprobado correctamente. Esta función fue agregada por Robert Landrito.

4. los -f77 y -f90 puntero La opción que controla las advertencias sobre los `` punteros Cray '' ha sido
renombrado a cray-puntero. -f77 = puntero La opción ahora controla las advertencias para
código que contiene la sintaxis relacionada con el puntero Fortran 90.

5. Reaplicado -mkhtml procesamiento, por lo que ahora es mucho más rápido en archivos de origen que contienen
muchas rutinas.

6. Se modificó la disposición del directorio de prueba para que ya no sea necesario modificarlo.
la distribución para ejecutar el conjunto de pruebas (comprobar.bat) bajo MS-DOS.

7. Se corrigió un error al leer la configuración numérica en la línea de comando al configurar el nombre abreviado como
Personajes 3.

8. Se corrigió el error que causaba una advertencia falsa para un GOTO que se refería a una declaración END etiquetada
cuando la instrucción antes de END era un FORMATO.

9. Nueva bandera -f77 = personaje para controlar las advertencias sobre las extensiones del Fortran 77
tipo de datos de carácter. Esta nueva bandera es compatible con las reglas de Fortran 90 para
declaraciones de variables de caracteres que se evalúan a una longitud cero o negativa, lo que permite
ellos y tratar los valores de longitud negativos como cero.

10. Se corrigió un error menor en la impresión de comentarios y líneas en blanco después de la última declaración END.
in -lista modo.

Use ftnchek en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

  • 1
    Soportes
    Soportes
    Brackets es un programa gratuito y moderno de código abierto
    editor de texto hecho especialmente para Web
    Desarrollo. Escrito en HTML, CSS y
    JavaScript con herramientas visuales enfocadas y
    preparar...
    Descargar Brackets
  • 2
    Compilador pascal gratis
    Compilador pascal gratis
    Un compilador Pascal de 32/64/16 bits para
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, Gameboy
    Avance, Nintendo NDS y DOS;
    semánticamente compatible con...
    Descargar Compilador Pascal Gratis
  • 3
    Información sobre Canon EOS DIGITAL
    Información sobre Canon EOS DIGITAL
    Canon no tiene contador de obturadores
    incluido en la información EXIF ​​de un
    archivo de imagen, a diferencia de Nikon y
    Pentax. No hay ningún canon oficial basado
    solicitud ...
    Descargar Canon EOS DIGITAL Información
  • 4
    REFIENDO
    REFIENDO
    rEFInd es una bifurcación de la bota rEFIt
    gerente. Como rEFIt, rEFInd puede
    detectar automáticamente su arranque EFI instalado
    cargadores y presenta una bonita GUI
    menú de opción de arranque ...
    Descargar reencontrar
  • 5
    ExpressLuke GSI
    ExpressLuke GSI
    Esta página de descarga de SourceForge fue para
    otorgar a los usuarios descargar mi fuente construida
    GSI, basado en el gran phhusson
    trabaja. Construyo Android Pie y
    Android 1 ...
    Descargar ExpressLuke GSI
  • 6
    Lanzador de música
    Lanzador de música
    Music Caster es un reproductor de música de bandeja
    que te permite transmitir tu música local a un
    Dispositivo Google Cast. En la primera carrera
    tendrá que hacer clic en la flecha en su
    tas ...
    Descargar Music Caster
  • Más "

Comandos de Linux

Ad