Re: Issue from IVF 9.0 to IVF 10.1



"mecej4" ha scritto nel messaggio...

As has been pointed out already, you pass 13 arguments to a subroutine
which has been declared with 12. Real*8 arrays are passed where Integer*4
variables (possibly, this is scratch pad memory) are expected. While a
compiler following the Cdecl convention may produce an executable without
any complaints, it does not follow that the program will work correctly
and do what is expected.

The variable KEXIT is undefined, since the subroutine does not know that
it is the 13th argument. The same section of array A is used for the 3rd
and 4th arguments. Is that proper?

It is possible, but unlikely, that despite all these dubious practices the
program gave you the correct results. What you have seen are examples of
bugs that can go undetected for years. When, for some reason, the compiler
or compiler options change or the runtime library changes you may be
surprised by failure to work correctly and start suspecting that the
compiler or the runtime have bugs.

Well, the Fortran source code I'm dealing with has been written more than 15
years ago and it's still being maintained and expanded with those
development practices.
Those functions, which are mixing array and scalar values, and integer with
double ones in the same matrix, are handled in that strange way from more
than a dozen of years. This morning I talked about it with the author of
that code and he stated that such changes - in order to fix the errors
generated of a bit serious type checking - from those practices mean to
trash almost everything.

M


.



Relevant Pages

  • Re: variable scope in for loop
    ... >>practices in your code to correct for defects in the compiler. ... behave like the language standard says it should. ... it is technically wrong, but so is Microsoft, and I'd rather have standard ...
    (comp.lang.cpp)
  • Re: throw-away suffixes for integer constants
    ... Hmmm, other than violating decades of sound syntactic practices, nothing ... programmer to use it, so setting this standard is no different, other than ... short suffix that is discarded by the compiler, ... You could institute many other 'classes' of integer constants ...
    (comp.databases.pick)
  • Re: Why Ruby interpreter is writed in c (not in c++)?
    ... compiler. ... and good practices from the OOP paradigm? ... C++ would not necessarily make Ruby easier to code; C++ objects can never map directly onto Ruby objects. ...
    (comp.lang.ruby)
  • Re: include header in f90 file using compaq visual fortran
    ... messing up the compiler when it tried to include the C file, ... fortran INCLUDE statement? ... file that contains fortran source code? ... my qname at domain dot com ...
    (comp.lang.fortran)
  • Re: include header in f90 file using compaq visual fortran
    ... messing up the compiler when it tried to include the C file, ... Why are you including a C header file into your fortran program with a ... fortran INCLUDE statement? ... file that contains fortran source code? ...
    (comp.lang.fortran)