[ET Trac] [Einstein Toolkit] #165: Intel compiler complains wrongly about incompatible argument lists in Fortran
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Fri Dec 24 16:15:27 CST 2010
#165: Intel compiler complains wrongly about incompatible argument lists in
Fortran
----------------------+-----------------------------------------------------
Reporter: eschnett | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: Cactus | Version:
Keywords: |
----------------------+-----------------------------------------------------
On the CCT numrel workstations, the Intel compiler (with version and
options as defined in SimFactory) sometimes complains that argument lists
for calls in Fortran don't match. This usually happens to me in GRHydro.
The reason seems to be that the Intel compiler silently remembers the
prototype of every Fortran subroutine it encounters, and then compares
against this prototype (if it exists) when the subroutine is called. If a
subroutine's argument list changes, and if the caller is then recompiled
before the subroutine itself, then the compiler detects a mismatch
(because it compares to the old argument list) and aborts with an error.
The Intel compiler stores the argument lists together with module
information in the scratch directory. To solve this problem, one either
has to clean the configuration (make *-clean), or one has to manually
delete all outdated *.mod files belonging to this thorn (and possibly also
delete all *.o files of this thorn). A make *-clean is expensive, and the
manual solution requires in-depth knowledge of the problem.
Cactus should detect this problem and offer a solution, although I don't
know which. Maybe the solution could involve compiling files in a
different order by detecting the dependency between the caller and the
callee, and treating this in the same way as module definitions.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/165>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list