Características redundantes

Anuncio
&DUDFWHUtVWLFDV
UHGXQGDQWHV
FRQUHVSHFWRD
)RUWUDQ
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Contenidos del Curso
1.- Introducción
2.- Código fuente, tipos y estructuras de control
3.- Procedimientos y Módulos
4.- Proceso de vectores
5.- Punteros
6.- Nuevas características de entrada/salida
7.- Procedimientos intrínsecos
&DUDFWHUtVWLFDVUHGXQGDQWHV
9.- Desarrollos futuros
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
&DUDFWHUtVWLFDVUHGXQGDQWHV
ËQGLFH
m
m
m
m
m
8.1
8.2
8.3
8.4
8.5
-
Forma del código fuente
Datos
Control
Procedimientos
Entrada/ Salida
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Características Redundantes
m
Fortran90 incluye características redundantes
(deprecated) que se pueden seguir usando
puesto que no está previsto que desaparezcan
en la siguiente revisión, pero se desaconseja
su utilización en programas nuevos puesto que
en el futuro sí es posible que desaparezcan
m
Estas características redundantes se clasifican
dentro de 5 categorías: forma del código
fuente, datos, control, procedimientos y E/ S
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Forma del código fuente
m
El formato fijo, que estaba basado en el
aspecto de una tarjeta perforada ha sido
sustituido por el formato libre y éste debería
usarse en los programas nuevos. Es posible
hacer modificaciones sencillas al formato fijo
para producir código que es legal tanto en
formato libre como fijo
m
Se recomienda la utilización de módulos en
lugar de usar líneas INCLUDE. Esta directiva se
utilizaba para incluir ficheros texto en un lugar
específico
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Datos
m
Fortran 77 tiene dos formas de variables y
constantes reales: real y double precision. Han sido
sustituidas por el concepto de tipos de datos
parametrizados que dan mayor portabilidad
numérica. No debería usarse double precision en
programas nuevos
m
El peligroso concepto de tipo implícito y la
sentencia IMPLICIT no deberían usarse. Se
aconseja el uso de implicit none
m
Se recomienda el uso de la nueva forma de
declarar variables usando dos puntos (::) entre el
tipo y la lista de variables. Asimismo se recomienda
usar los atributos parameter, dimension, etc. en la
declaración más que en forma de sentencias
m
Generalmente no se necesita la sentencia DATA
puesto que las variables pueden ser inicializadas en
una sentencia de declaración
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Datos
m
Los bloques COMMON y BLOCK DATA no deberían
usarse puesto que el uso de módulos elimina la
necesidad de su utilización. De forma análoga, la
sentencia EQUIVALENCE ha dejado de ser
necesaria por la introducción de los módulos,
manejo dinámico de memoria, punteros y la
función intrínseca transfer
m
Se recomienda no utilizar nunca el atributo
SEQUENCE
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Control
m
Características obsoletas de F77 son:
• Sentencia if aritmética
• Terminación compartida de un do. Terminación de
un do en una sentencia diferente de continue o end
do
• Variables do y de control de expresiones de tipo real
o double precision
• Sentencias assign y GO TO asignados
• Saltos hacia un end if desde fuera de un bloque if
• return alternado
• Sentencia pause
m
m
m
Estas características no deberían usarse en códigos
nuevos o revisados. Pueden reemplazarse por
sentencias if, do, case, exit y cycle
Con la introducción de modernas estructuras de
control y de especificaciones de cadenas de
caracteres la necesidad de etiquetas es redundante
El constructo do y las sentencias exit y cycle
sustituyen el uso de la sentencia continue al final
de un bucle do
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Control
m
Las sentencias GO TO y GO TO calculados deberían
sustituirse por los constructos if, do y case y las
sentencias exit y cycle
m
Se puede utilizar el bucle do combinado con la
sentencia exit como forma equivalente a los bucles
do while
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Procedimientos
m
Las funciones intrínsecas con nombres
específicos para diferentes tipos de datos se
han sustituido por versiones genéricas. Aún se
necesitan nombres específicos cuando una
función intrínseca se utiliza como parámetro
actual en una llamada
m
La sentencia ENTRY permite que un
procedimiento tenga más de un punto de
entrada. En F90 es innecesaria puesto que en
un módulo cada punto de entrada se convierte
en un procedimiento de módulo
m
La utilización de procedimientos de módulo y
procedimientos internos hacen innecesarios los
procedimientos externos. Los procedimientos
externos y la sentencia external son
redundantes en F90
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Entrada / Salida
m
Los especificadores de formato asignados
deberían sustituirse por especificaciones de
cadenas de caracteres
m
Los
especificadores end, EOR y ERR se
utilizan cuando ocurren condiciones anómalas
en entrada/salida. Se recomienda el uso de
IOSTAT en lugar de éstos
m
La entrada/salida usando ‘Namelist’ es una
característica mal diseñada y se desaconseja
su utilización
m
Se desaconseja la utilización de 6 descriptores
de edición: D, BN, BZ, P, G y X
m
El descriptor de edición D se sustituye por el E
y los BN y BZ por el especificador BLANK
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Entrada / Salida
m
El descriptor de edición P permite que los
datos numéricos se escalen tanto al hacer
entrada o salida. Esto podría conducir a
confusión y por tanto se desaconseja
m
El descriptor de edición G es un descriptor
generalizado que se puede utilizar al leer o
escribir valores de cualquier tipo intrínseco. Se
aconseja la utilización de los descritptores I, E,
EN, F, L o A puesto que a través de éstos se
comprueba que los tipos de datos son los
correctos
m
El descritptor de edición X tiene el mismo
efecto que el TR y se recomienda el uso de
este último
+HUUDPLHQWDV\/HQJXDMHVGH3URJUDPDFLyQ
)RUWUDQ
Descargar