Volver a la página principal
martes 15 octubre 2024
8

Cómo usar subrutinas en Fortran

En Fortran, una subrutina es un bloque de código que realiza una tarea específica y puede ser llamada desde cualquier parte del programa. Las subrutinas permiten modularizar el código, haciéndolo más claro, reutilizable y fácil de mantener. A diferencia de las funciones, las subrutinas no devuelven un valor directamente, sino que pueden modificar sus parámetros de entrada.

¿Cómo definir una subroutine en Fortran?

La estructura de una subrutina en Fortran incluye la declaración de la subrutina con la palabra clave subroutine, seguida del nombre y de los argumentos, y termina con la palabra clave end subroutine.

Sintaxis básica:

subroutine nombre_subrutina(arg1, arg2, ...)
   ! Cuerpo de la subrutina
end subroutine nombre_subrutina
  • nombre_subrutina: Es el nombre de la subrutina.
  • arg1, arg2, ...: Son los argumentos (opcional), que pueden ser variables de entrada, salida o ambas.

Para llamar a una subrutina:

call nombre_subrutina(arg1, arg2, ...)

Ejemplos de uso de subroutine en Fortran

Ejemplo 1: Subrutina simple que imprime un mensaje

program ejemplo_subrutina
  call mensaje_bienvenida
contains
  subroutine mensaje_bienvenida
     print *, "Bienvenido a Fortran"
  end subroutine mensaje_bienvenida
end program ejemplo_subrutina

Salida:

Bienvenido a Fortran

Ejemplo 2: Subrutina con parámetros de entrada

program suma_valores
  real :: a, b, resultado

  a = 5.0
  b = 3.0
  call sumar(a, b, resultado)
  print *, "La suma de", a, "y", b, "es:", resultado

contains
  subroutine sumar(x, y, res)
    real, intent(in) :: x, y
    real, intent(out) :: res
    res = x + y
  end subroutine sumar
end program suma_valores

Salida:

La suma de 5.0 y 3.0 es: 8.0
  • intent(in): Indica que el parámetro es de solo entrada.
  • intent(out): Indica que el parámetro es de solo salida.

Ejemplo 3: Subrutina que modifica varios parámetros

program operaciones
  real :: num1, num2, suma, producto

  num1 = 2.0
  num2 = 4.0
  call calcular(num1, num2, suma, producto)
  print *, "Suma:", suma, ", Producto:", producto

contains
  subroutine calcular(x, y, sum, prod)
    real, intent(in) :: x, y
    real, intent(out) :: sum, prod
    sum = x + y
    prod = x * y
  end subroutine calcular
end program operaciones

Salida:

Suma: 6.0 , Producto: 8.0

Referencia oficial

Para más detalles, consulta la documentación oficial de Fortran.

Etiquetas:
fortran
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer