[ET Trac] [Einstein Toolkit] #1333: Fortran module in GRHydro_InterfacesM.h is nonsensical
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Tue Apr 23 08:59:40 CDT 2013
#1333: Fortran module in GRHydro_InterfacesM.h is nonsensical
------------------------------------+---------------------------------------
Reporter: rhaas | Owner:
Type: defect | Status: new
Priority: critical | Milestone: ET_2013_05
Component: EinsteinToolkit thorn | Version:
Resolution: | Keywords: GRHydro
------------------------------------+---------------------------------------
Changes (by eschnett):
* priority: major => critical
* milestone: => ET_2013_05
Comment:
It is not legal in Fortran to define the same module twice. The situation
is the same as defining two routines with the same name -- this is a
fundamental "don't". I am raising the severity of this. I also consider
this a blocker for the release.
I understand that people strive to structure Fortran code in a manner
similar to C code, but unfortunately that doesn't work. Instead of
defining stand-alone subroutines, and then declaring interfaces (and
repeating much code), it is far superior to define subroutines INSIDE a
module, and then using that module when the subroutine is to be called.
Include files should not be necessary at all for this.
The drawback of this is that Cactus cannot call subroutines that are
defined in a module, it only knows how to call stand-alone subroutines
(however, this can be changed). That is, all scheduled or externally
visible routines need to be stand-alone routines.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1333#comment:1>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list