There are no foolproof receipes for situations like this. But I would
advise you to try it with another compiler. Chances are the program
will crash in a different way and that may help pinpoint the
underlying
cause.
Other things you can try (if you do not already) is:
- Use "implicit none" in every module and separate subprogram
- Put everything in a module to make sure the interfaces can be
checked
- Tools like valgrind or strace may help to tackle the problem
As the problem moves around when you introduce write statements, it is
likely to be an array bound violation or a pointer problem. Are you
using pointers in your program? That is one thing to watch out for:
deallocated memory that you still refer to.
Regards,
Arjen
I want to second Arjen's recommendations ( an argument mismatch
would be my bet, possibly caused by implicit typing ) , but would
also like to add that if all possible you should get a debugger
on any system that you develop on. I realize it might not be your
decision, but really the amount of effort that can be save by having
one makes it well worthwhile,
Ian
I would strongly recommend double-checking procedure interfaces. The
ifort -check all option takes care of bounds checks (and, depending on
the compiler version, uninitialized variable access), but it does not do
checking on implicit interfaces. That's the most likely source of
trashing memory that wouldn't be caught by the bounds checks.
I do have a debugger, it just took me more then a month to use it on a
module(sorry for being unclear).
just a small question what is an implicit typing?
thanks for the help
yair
[snip]
> just a small question what is an implicit typing?
> thanks for the help
> yair
It's based on first letter of variable name. A-H and O-Z default to real, I-N
are integer.
Therefore, God is real, unless declared integer, logical, character ;-)
Your query is like "My car won't start; what's wrong with it?"
You need to post at least one subroutine,
and to tell us how you have interfaced it.