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		       
