Aleksandar Donev said:
> routine DOUBLE RHS(I), for INTEGER I. Why on earth would someone make the
> routine this way, instead of explicitly passing this function as an EXTERNAL
> argument?
I think it's just poor design. There may be extenuating circumstances
(the original machine might have been very slow with dummy procedures, or
the author might not have known about or liked dummy procedures), but
most likely just a design mistake. These things happen (and are more
obvious in retrospect than at the original time).
> My problem is that I always put functions in a MODULE, and in this case I
> can not do that because the module functions have a different name in the
> object file than a non-module procedure would. So I am just wondering where
> this design comes from and if there is any F90 way to handle it.
There is nothing non-F90 about it. The badness has not increased by moving
to F90, just conserved. You can
(a) rewrite the code to pass dummy procedures around instead of using RHS
or
(b) write a function that is not in a module.
Not much else you can do, really.
Cheers,
--
...........................Malcolm Cohen, NAG Ltd., Oxford, U.K.
([log in to unmask])
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp
|