[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
 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