[This was sent to Robin earlier and is posted here in case any others are interested in modern Fortran.]
At 09:38 AM 10/03/2002 +1200, Robin Hankin wrote:
I work in computational fluid dynamics in 2D: I have a 200-by-200 array of fluid properties such as density and velocity and these evolve in time (the precise equations depend on the problem). Up to now, I've been using Fortran and the code is very very messy.
[...]
flux = ( r*right(u) + right(r)*u ) /2
[where right <- function(x){cbind(x[,-1],NA)} ]
Just to remind you, you can do this kind of thing in modern Fortran. Intrinsic vector and matrix operations have been available in the Fortran language for about ten years (since Fortran 90). In my experience, Fortran is usually much faster than R. It will probably be easier to port your code to modern Fortran than to C and its derivatives, and also less error prone. If the code is messy, why not clean it up? It is possible to write good code, and messy code, in any language. Some comparisons of Fortran and C++, and information on modern Fortran as a scientific programming language, can be found at http://www.cts.com.au/compare.html http://citeseer.nj.nec.com/cache/papers/cs/7409/http:zSzzSzwww.cs.colorado.eduzSz~zornzSzcs5535zSzFall-1995zSzprojectszSzwharton.pdf/wharton95should.pdf http://www.kcl.ac.uk/kis/support/cit/fortran/f90home.html http://www.ibiblio.org/pub/languages/fortran/ch1-2.html Whatever path you choose, good luck!
Michael Prager <Mike.Prager at noaa.gov> NOAA Center for Coastal Fisheries and Habitat Research Beaufort, North Carolina 28516 USA http://shrimp.ccfhrb.noaa.gov/~mprager/ Standard Disclaimers: * Opinions expressed here are personal and are not otherwise represented. * Any use of tradenames does not constitute a NOAA or NMFS endorsement. -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help 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-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._