domingo, 21 de noviembre de 2010

Problemas de compilación con Gfortran. (extra)

Hace un rato que estaba trabajando en el lenguaje de programación Fortran, me surgió un problema interesante el cual creo que vale la pena analizarlo, por si alguien mas le sucede lo mismo.

Bueno cuando según yo termine de escribir el código de mi programa, al querer compilarlo en la terminal utilizando el comando:

guillermo@guillermo-desktop:~$  gfortran  hola.f

Me aparecieron una lista de errores en el código, y siendo que el programa era bien sencillo (un típico “hola mundo” en Fortran). El error fue fue el siguiente:

Pantallazo

El código del programa contiene lo siguiente:

PROGRAM HOLA
   PRINT *, '¡Hola, mundo!'
END

En si al analizar el código, el programa anterior no recae en errores de sintaxis ni nada por el estilo. Esto también ocurría con cualquier otro código.

Al investigar acerca de este error, en los foros dedicados a Ubuntu, encontré que al parecer esto error se debe a las distintas versiones que existen de Fortran.

En este caso Fortran entre su muchas versiones, podemos encontrar las extensiones .f, .for, .f90, .f95. En Windows comúnmente es utilizada la extensión .for y en sistemas Unix es la extensión .f.

Volviendo al tema, se comentaba en los foros de Ubuntu, que un posible problema se debe a que el código aunque este bien escrito, muchas veces estemos utilizando una versión 90 o 95 de Fortran, lo que debemos hacer es  cambiar la extensión del archivo a .f90. Esto según ya que Fortran compila el código del archivo como código de fortran 77, que funciona un poco diferente a Fortran 90.

En dado caso que tampoco les llegue a funcionar lo anterior (como fue mi caso) hay que recurrir a las opciones de compilación de gfortran.

En este caso para compilar ese archivo debemos utilizar la siguiente instrucción :

–ffree-form

Añadiéndola a la instrucción para compilar nuestro código quedaría así:

guillermo@guillermo-desktop:~$  gfortran  –ffree-form  hola.f

y lo ejecutaríamos así:

guillermo@guillermo-desktop:~$ ./a.out

con esto se resolvería el problema de compilación , si es que les llega a ocurrir esto ;)

La siguiente captura muestra como si se resolvió el inconveniente ocurrido:

 

2

Ojala y les pueda servir de algo ;)

Referencias Recomendadas:

 http://ubuntuforums.org/showthread.php?t=1164769

http://gcc.gnu.org/wiki/GFortranUsage

http://www.file-extensions.org/

 

 

3 comentarios:

  1. Es cierto ami también me paso el mis error,pero al igual que tu también los resolví investigando, es cierto que como son diferentes fortrans hay que encontrar el compilador adecuado. En especial si tu fortran es del año 70 y lo quieres compilar con el compilador de fortran 95 creo.

    ResponderEliminar
  2. Si compañero, al parecer se trata de un conflicto entre las versiones, segun yo entendi, que es ms que nada esto se debe a los caracteres, no se si este en lo correcto, pero segun por ello suelen surgir ese tipo de problemas, habria que investigar un poco mas a fondo para aclarar este tipo de dudas que suelen surgir ;)

    ResponderEliminar
  3. yo tengo los mismos errores, me dijeron que entre cada renlon debe haber 7 espacios desde el inicio, no se por que pero es la unica forma para compilar desde ububtu en mi caso, gracias por el aporte

    ResponderEliminar