programas - problemas resueltos de programación en fortran 95 pdf
Uso de las funciones de declaración Fortran (1)
C = 5.0*(F - 32.0)/9.0
es solo asignación a una variable C
, puede estar en cualquier lugar y se evalúa una vez cada vez que el flujo del programa llega a ella.
C(F) = 5.0*(F - 32.0)/9.0
es una función de declaración, y puede evaluarse cada vez que está en el alcance, por ejemplo, C(100)
que devuelve aproximadamente 37.8
.
De algún código
xx(i) = dx*i
f(a) = a*a
do i = 1, nx
x = xx(i)
print *, f(x)
end do
La f(x)
en la declaración de impresión se evalúa con cada nuevo valor de x
arroja un nuevo valor. El valor de x
también es el resultado de la evaluación de la función de declaración xx
en la línea anterior.
Pero las funciones de declaración están ahora (en Fortran 95) declaradas obsoletas. Es mejor utilizar las funciones internas en cualquier código nuevo. P.ej,
program p
implicit none
!declarations of variables x, i, nx, dx
do i = 1, nx
x = xx(i)
print *, f(x)
end do
contains
real function xx(i)
integer, intent(in) :: i
xx = dx*i
end function
real function f(a)
real, intent(in) :: a
f = a*a
end function
end program
Leí sobre funciones de declaración, como el ejemplo:
C(F) = 5.0*(F - 32.0)/9.0
¿No es esto lo mismo que:
C = 5.0*(F - 32.0)/9.0
es decir, sin la parte de la función, o tal vez me falta algo?
Si no son lo mismo, ¿cuándo necesito usar una función de declaración?