Newsgroups: comp.lang.fortran Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!batcomputer!munnari.oz.au!manuel!sserve!news From: rap@csadfa.cs.adfa.oz.au (Robert Pearson) Subject: Re: NAG Fortran 90 announcement Message-ID: <1991Jun25.233323.17684@sserve.cc.adfa.oz.au> Sender: news@sserve.cc.adfa.oz.au Organization: Australian Defence Force Academy, Canberra, Australia References: <26453@beta.gov> Date: Tue, 25 Jun 1991 23:33:23 GMT From article <26453@beta.gov>, by jlg@cochiti.lanl.gov (Jim Giles): > > The fact that C turns _all_ arrays (regardless of dimensionality) > into pointers in the procedure call mechanism means that C must > always assume that array parameters are mutually aliased and can't > optimize operations on them. > .. . On vector or massively parallel machines, > the presence of aliasing may mean factors of _hundreds_ in performance. > |> [...] I do not > |> know of a good way of expressing such things in Fortran (flameproof suit on) > I don't know that you should be flamed. You admitted you didn't know. > That's a far cry from the usual C bigot who claims he _does_ know and > then spouts a lot of false statements. As for linked lists in Fortran, > a lot of us have been doing them for years. Unfortunately, we've had > to either use non-standard extensions or we've had to pre-allocate > the maximum required memory. > J. Giles As I also put on my 'flame-proof suite' I have recently had a reaonable amount of experiance in C on a Convex. ( approx 19,000 lines mixed C FORTRAN) I chose C because the problem is essentially building a tree structure and C pointers make the job easier. The mixture of both is related to some existing subroutines which were considerably modified rather than rewriting them completely and also I found it preferable to call NAG and other machine 'veclib' from within fortran. As an aside writing fortran for vectors is much simpler. It is quite possible to write C that translates to vector; espescially if one writes it 'like' fortran and uses the alias array-args on the compiler. I have found some 'quirks'. I always use a local or Global simple integer as loop bounds. ( never in structures, pointers or passed as a paremeter) On earlier versions of the same compiler it was necessary to 'force' even the simplest loops with a consequential compiler warning. For those that are interested some code actually appears in IJHCS vol 2 1990 pp 85-100. Robert Pearson ISD: +61 6 268 8171 STD: (06) 268 8171 Dept. Computer Science Email: rap@csadfa.oz.au University College Aust. Defence Force Academy Canberra. ACT. 2600. AUSTRALIA Robert Pearson ISD: +61 6 268 8171 STD: (06) 268 8171 Dept. Computer Science Email: rap@csadfa.oz.au University College Aust. Defence Force Academy Canberra. ACT. 2600. AUSTRALIA