Herramientas de usuario

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
tutorial_de_compilacion_en_fortran [2025/02/27 19:02] perontutorial_de_compilacion_en_fortran [2026/04/21 16:09] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
-=====Tutorial de Compilación en FORTRAN======+=====Tutorial de Compilación en Fortran======
  
  
Línea 8: Línea 8:
  
  
-Existen varias convenciones para usar el compilador de FORTRAN. Estas son:+Existen varias convenciones para usar el compilador de Fortran. Estas son:
  
   - El nombre del fichero que contiene el código fuente en fortran debe terminar con ''.f''   - El nombre del fichero que contiene el código fuente en fortran debe terminar con ''.f''
-  - El compilador se invoca con ''f77''.+  - El compilador se invoca con ''gfortran'' o ''f95''.
   - El compilador tiene varias opciones disponibles (**-c**, **-o**, **-p**, **-S**)   - El compilador tiene varias opciones disponibles (**-c**, **-o**, **-p**, **-S**)
   - Se hacen preconexiones para //stdin// y //stdout//   - Se hacen preconexiones para //stdin// y //stdout//
  
-Este es el ejemplo [[hola.f]] de código fuente de fortran que se utilizará:+Este es el ejemplo [[hola.f]] de código fuente de Fortran que se utilizará:
  
  
-<code fortran>+<file fortran hola.f>
       program llamando       program llamando
       write(6,100)       write(6,100)
-100   format (' Hola desde main!',/)+100   format (' Hola desde rutina main!',/)
       write(6,110)       write(6,110)
 110   format(' Llamando a subrutina1!',/) 110   format(' Llamando a subrutina1!',/)
Línea 43: Línea 43:
 210   format(t20,' Hola desde subrutina2!',/) 210   format(t20,' Hola desde subrutina2!',/)
       end       end
-</code>+</file>
  
  
-===  Compilando un programa===+===  Compilar un programa===
  
 Para compilar el programa ''hola.f'' en un programa ejecutable, invoque el compilador de Fortran con: Para compilar el programa ''hola.f'' en un programa ejecutable, invoque el compilador de Fortran con:
  
-<code bash>f77 hola.f</code>+<code bash> 
 +gfortran hola.f 
 +</code>
  
-Si no provee opciones, f77 aceptará código fuente FORTRAN o programas en lenguaje ensamblador que sigan las convenciones delineadas anteriormente. Compilará, ensamblará, y cargará dichos programas produciendo un ejecutable denominado convencionalmente ''a.out'' (lo que significa "salida de ensamblador"). El compilador f77 da como salida el código objeto en ficheros con el nombre del fichero de base, pero recurriendo a la extensión ''.o''.+Si no provee opciones, gfortran aceptará código fuente Fortran o programas en lenguaje ensamblador que sigan las convenciones delineadas anteriormente. Compilará, ensamblará, y cargará dichos programas produciendo un ejecutable denominado convencionalmente ''a.out'' (lo que significa "salida de ensamblador"). El compilador gfortran da como salida el código objeto en ficheros con el nombre del fichero de base, pero recurriendo a la extensión ''.o''.
  
  
-<ocde bash> +<code bash> 
-f77 hola.f +gfortran hola.f 
-$ a.out +./a.out 
-Hola desde main!+Hola desde rutina main!
  
 Llamando a subrutina1! Llamando a subrutina1!
Línea 82: Línea 84:
 |otro |Leer y ejecutar | |otro |Leer y ejecutar |
  
->No le será necesario cambiar los permisos con //chmod//, debido a que el compilador f77 otorgará el permiso de ejecución automáticamente.+>No le será necesario cambiar los permisos con //chmod//, debido a que el compilador gfortran otorgará el permiso de ejecución automáticamente.
  
  
Línea 94: Línea 96:
 <code bash> <code bash>
 $ mv a.out hola $ mv a.out hola
-$ hola +./hola 
-Hola desde main!+Hola desde rutina main!
  
 Llamando a subrutina1! Llamando a subrutina1!
Línea 116: Línea 118:
 ===  Otorgar nombre al fichero de salida=== ===  Otorgar nombre al fichero de salida===
  
-Es posible otorgarle al compilador de Fortran un nombre para fichero de salida, en lugar de hacerlo por defecto a ''a.out'' por defecto, usando la opción **-o**.+Es posible otorgarle al compilador gfortran un nombre para fichero de salida, en lugar de hacerlo por defecto a ''a.out'' por defecto, usando la opción **-o**.
  
-La opción **-o** solicita al compilador f77 que le informe al editor de enlaces el uso de un nombre distintivo para la salida.+La opción **-o** solicita al compilador gfortran que le informe al editor de enlaces el uso de un nombre distintivo para la salida.
  
-No es necesario que la opción **-o** aparezca después del comando f77. El nombre de archivo que aparece después de -o será el nombre del fichero de salida. Por ejemplo, ''f77 fuente -o salida'' es lo mismo que ''f77 -o salida fuente''-+No es necesario que la opción **-o** aparezca después del comando gfortran. El nombre de archivo que aparece después de -o será el nombre del fichero de salida. Por ejemplo, ''gfortran fuente -o salida'' es lo mismo que ''gfortran -o salida fuente''-
  
  
 <code bash> <code bash>
-f77 -o hola.f +gfortran -o hola.f 
-$ hola +./hola 
-Hola desde main!+Hola desde rutina main!
  
 Llamando a subrutina1! Llamando a subrutina1!
Línea 146: Línea 148:
 === Producir un listado de Ensamblador === === Producir un listado de Ensamblador ===
  
-Esta opción hace que f77 compile programas de Fortran y disponga los programas de código ensamblador en un ficherode  extensión ''.s''.+Esta opción hace que gfortran compile programas de Fortran y disponga los programas de código ensamblador en un ficherode  extensión ''.s''.
  
 Por ejemplo Por ejemplo
  
 <code bash> <code bash>
-$f77 -S  hola.f +gfortran -S  hola.f 
-$ls -c+$ ls -c
 ejemplo.f         hola      hex.c     octal.c ejemplo.f         hola      hex.c     octal.c
 hola.c            hola.s    multiplo.c hola.c            hola.s    multiplo.c
Línea 170: Línea 172:
 Para compilar los tres ficheros del ejemplo anterior (sin producir aún un ejecutable), deberá utilizar el siguiente comando: Para compilar los tres ficheros del ejemplo anterior (sin producir aún un ejecutable), deberá utilizar el siguiente comando:
  
-<code bash>f77 -c main.f sub1.f sub2.f</code>+<code bash>gfortran -c main.f sub1.f sub2.f</code>
  
-La opción **-c** compila, pero no carga los ficheros de código objeto. Esta opción hace que f77 compile y/o ensable los programas de código fuente, pero deje los programas de código objeto correspondiente con la extensión de fichero ''.o''.+La opción **-c** compila, pero no carga los ficheros de código objeto. Esta opción hace que gfortran compile y/o ensable los programas de código fuente, pero deje los programas de código objeto correspondiente con la extensión de fichero ''.o''.
  
 Como vemos, el resultado será: Como vemos, el resultado será:
Línea 178: Línea 180:
  
 <code bash> <code bash>
-f77 -c main.f sub1.f sub2.f+gfortran -c main.f sub1.f sub2.f
 main.f: main.f:
      MAIN: llamando:      MAIN: llamando:
Línea 193: Línea 195:
 </code> </code>
  
-La opción **-c** provoca que el sistema de compilación suprima la fase de edición de enlace. Esto produce un fichero o ficheros objeto, en este ejemplo, ''main.o'', ''sub1.o'' y ''sub2.o'') que podrán ser enlazados posteriormente ingresando ''f77'' (sin opciones).+La opción **-c** provoca que el sistema de compilación suprima la fase de edición de enlace. Esto produce un fichero o ficheros objeto, en este ejemplo, ''main.o'', ''sub1.o'' y ''sub2.o'') que podrán ser enlazados posteriormente ingresando ''gfortran'' o ''f95'' (sin opciones).
  
  
-=== Compiladno ficheros objeto para producir un módulo ejecutable===+=== Compilar ficheros objeto para producir un módulo ejecutable===
  
 El comando para producir un módulo ejecutable a partir de varios ficheros objeto en este caso sería: El comando para producir un módulo ejecutable a partir de varios ficheros objeto en este caso sería:
  
 <code bash> <code bash>
-f77 main.o sub1.o sub2.o+gfortran main.o sub1.o sub2.o
 $ ls -C $ ls -C
 main.o sub1.o sub2.o a.out main.o sub1.o sub2.o a.out
 $ $
 </code> </code>
 +
 +__Ver También__: [[Tutorial de Compilación en COBOL]]

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información