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

Cómo definir funciones en Fortran

En Fortran, una función (function) es un bloque de código que realiza un cálculo y devuelve un valor. Las funciones son muy útiles para realizar operaciones repetitivas o cálculos específicos, y se pueden invocar en cualquier parte del programa. A diferencia de las subrutinas (subroutine), las funciones siempre devuelven un valor que puede ser asignado a una variable o utilizado directamente en expresiones.

¿Cómo definir una función en Fortran?

Una función en Fortran se define con la palabra clave function, seguida del nombre de la función y los argumentos entre paréntesis. El valor de retorno de la función se asigna a su propio nombre, y la función termina con la palabra clave end function.

Sintaxis básica de function:

function nombre_funcion(arg1, arg2, ...)
   ! Declaraciones de variables
   ! Cuerpo de la función
   nombre_funcion = valor  ! Asignación del valor de retorno
end function nombre_funcion

Para llamar a una función:

resultado = nombre_funcion(arg1, arg2, ...)

Ejemplos de uso de function en Fortran

Ejemplo 1: Función para sumar dos números

program ejemplo_funcion
  real :: resultado

  resultado = sumar(5.0, 3.0)
  print *, "La suma es:", resultado

contains
  function sumar(a, b)
    real :: sumar
    real, intent(in) :: a, b
    sumar = a + b
  end function sumar
end program ejemplo_funcion

Salida:

La suma es: 8.0

Ejemplo 2: Función que calcula el cuadrado de un número

program cuadrado_numero
  real :: num, resultado

  num = 4.0
  resultado = cuadrado(num)
  print *, "El cuadrado de", num, "es:", resultado

contains
  function cuadrado(x)
    real :: cuadrado
    real, intent(in) :: x
    cuadrado = x * x
  end function cuadrado
end program cuadrado_numero

Salida:

El cuadrado de 4.0 es: 16.0

Ejemplo 3: Función para calcular el área de un círculo

program area_circulo
  real :: radio, area

  radio = 3.0
  area = calcular_area(radio)
  print *, "El área del círculo es:", area

contains
  function calcular_area(r)
    real :: calcular_area
    real, intent(in) :: r
    real :: pi
    pi = 3.14159
    calcular_area = pi * r * r
  end function calcular_area
end program area_circulo

Salida:

El área del círculo es: 28.27431

Diferencia entre function y subroutine

  • Function: Devuelve un valor directamente, y se puede utilizar en expresiones o asignaciones.
  • Subroutine: No devuelve un valor directamente, pero puede modificar sus argumentos.

Referencia oficial

Para más detalles sobre el uso de funciones en Fortran, consulta la documentación oficial de Fortran.

Etiquetas:
fortran
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer