Fortran vs C, easing using Fortran
Kurt Hornik
Kurt.Hornik@ci.tuwien.ac.at
Mon, 12 Apr 1999 08:20:18 +0200 (CEST)
>>>>> Prof Brian D Ripley writes:
> On 10 Apr 1999, Douglas Bates wrote:
>> >>>>> "Ross" == Ross Ihaka <ihaka@stat.auckland.ac.nz> writes:
>>
Ross> To follow up the "eigen" issue. What should our position on
Ross> translating Fortran into C be? Should we leave as much code
Ross> as possible in Fortran or should we move it to C as much as
Ross> possible?
>>
>> I can think of three different sets of circumstances:
>> a) creating new code: This one is obvious, just say "no" to Fortran.
>> b) enhancing existing code: For something small do the automatic
>> translation to C with f2c then modify the C sources and regard
>> those as the definitive version. For a big Fortran routine, try
>> to write a C wrapper around it and make modifications in the
>> wrapper.
>> c) using established code without modification (e.g. Eispack, Linpack):
>> Regard the Fortran sources as the definitive version and don't
>> translate.
>>
>> Now that g77 is available and reasonably stable, a lot of the
>> motivation for using f2c is gone. There are still the messy linkage
>> issues when calling Fortran from C but most of those are now resolved
>> by the configure script. Passing character strings, etc. will
>> continue to be problematic but most of the legacy Fortran code we
>> would use will be strictly numerical routines with, we hope,
>> comparatively simple calling sequences. (Lapack is an exception in
>> that it uses strings to declare options but we aren't using Lapack.)
> [A long reply: I am much-bitten here!]
> ...
> I think in R we can do better than at present, if only I knew exactly
> how. One idea is to have (effectively) a `hints' file that configure
> uses to add a base set of libraries to FLIBS, but on Solaris at least,
> using the Fortran command (f77 or g77) to link a dynamic library does
> the job. For linking with ld the base FLIBS would need to be
> -lF77 -lM77 -lV77 -lsunmath -lm
> _if_ f77 is used. How viable is `use FC to link' on other platforms?
Are you suggesting using the Fortran compiler as SHLIBLD?
Please help me understanding this a bit more. The above `-lF77 ...'
would be the default FLIBS to use when compiling/linking Fortran?
Short term fix should be to use platform-specific overrides in basic
configure. Another idea is to have configure scripts supported for add
ons.
(If I fully understood the problem, I think I could fix it ...)
=k
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._