Given a Subprogram that gets called millions of times,
we know that there is (CPU) overhead for subprogram linkage.
My question is, independent of compilers,
which is more efficient in practice:
passing a list of (say 3 to 10) arguments
to a subprogram's corresponding parameters,
OR using a Module and companion USE statement,
OR use named COMMON?
Global variables are *always* a bad idea.
Never pass function arguments through modules or common storage.
There is almost nothing
that modern computers do faster than [subprogram] calls.
You won't be able to measure the time that your function
spends on subprogram calls unless the subprogram does nothing.
A good optimizing compiler can "inline" lightweight
subprograms if the definition is visible at compile time --
if the subprogram is defined in the same source file
or in a module used by your program.
If your subprogram has more than a few arguments,
you probably have a design problem.
If some of the arguments can be grouped into larger objects,
create a derived type which contains them
and pass an object of that type to the function
instead of the separate arguments.
.
Re: call by reference ... It specifies the semantics of subprogram calls, ... > of pass by reference, but that can also be implemented with value-result ...Fortran compilers exist, I believe, ... Is the behavior of similar code in FORTRAN really undefined? ... (comp.lang.java.programmer)
Re: Help needed for a sorting code in the literature ... John E. Hadstate wrote: ... >>and yet have a subprogram such that one could simply call ... >>I would regard it as an inconvenience for the programmers.... current compilers of certain PLs emit intermediate codes ... (sci.crypt)
Re: More odd code that seems to work ... > Why aren't arguments specified in the EXTERNAL statement?... I think a better way to look at it is that the f77 language standard... If the dummy subprogram is never called, then I do not know if the ... information to diagnose argument mismatches at compile time.... (comp.lang.fortran)
Re: fortran question ... The array contains many different unrelated variables, ... Within the subprogram, a lengthy Equivalence ... variable of the derived type around: ...subroutine my_subroutine ... (comp.lang.fortran)