Fortran - Problema con argumentos de funciones en fortran 77

 
Vista:

Problema con argumentos de funciones en fortran 77

Publicado por Chechu (1 intervención) el 22/04/2009 02:29:51
Hola
Si alguien puede darme una solución a esto se lo agradecería muchísimo.
Veamos, tenía escrita una función, en fortran 77 (compilador g77), al hacer la gráfica detecté que en vez de que la función hace lo que debe (que vaya variando suavemente), vi que oscilando respecto al valor debería tomar, cuando el argumento varía muy poco, no sé si me explico bien, al final lo que descubrí es que en realidad dentro de la función, el argumento no es el que debiera exactamente, si no que sus ultimos decimales se modifican.

Por ejemplo

double precision funcion_ejemplo(r)
double precision r
funcion_ejemplo=r
return
end

si por ejemplo llamo a la funcion (declarando x e y ccomo double precision)

x=2.500001D0
y=funcion_ejemplo(x)

pues y en vez de valer 2.500001, a lo mejor vale 2.5000091, además este error que se comete se hace periódico, es por eso que la función va oscilando.
Alguien sabe por qué razón ocurre esto y como se puede solucionar? Yo creo que se debe a que en algún sitio hace una conversión de tipo de dato pero en principio creo que todo es double precision así que no me lo explico.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder