PDA

View Full Version : [Fortran] Functions Calling in Subroutines


Raghnar
Jan5-11, 03:44 AM
There are some caveat in fortran 77 while calling functions inside subroutines?
I have some weird errors while calling a function inside a subroutine, e.g. Segmentation Fault while using/writing the argument of the function (but not sooner, I can still do an "Hallo World"!) or starting a do loop.
The function receive a Complex and an integer argument. printing the first complex variable get you 0 whatever the input is, printing the integer variable goes in segmentation fault... there are some memory usage issues, but I don't really know where to look...
This is only inside a subroutine, before calling the subroutin everything works just fine.

Any suggestions?

jtbell
Jan5-11, 09:25 AM
Can you post a short but complete (compilable) program that illustrates the problem?

Raghnar
Jan5-11, 09:33 AM
I will try to reproduce the program in a short version, seeing if the problem is still there... The one which I use is far too complicated

AlephZero
Jan5-11, 04:03 PM
Make sure your function is defined as the correct type of variable, inside the subroutine where you call it.

complex function c(x,y)
real x, y
... do some calculations
c = something
return
end

subroutine s
real x, y
complex z
complex c
...
z = c(x,y)
...
end

If you omit the "complex c" statment inside the subroutine, the compiler will assume that function c returns a REAL value. That certainly won't work properly, and may give you segementation faults etc.

Raghnar
Jan6-11, 04:44 AM
That was the problem, thank you!! :)