comp.lang.ada
 help / color / mirror / Atom feed
From: bv <bvoh@sdynamix.com>
Subject: F9X twister & ADA (was: n-dim'l vectors)
Date: 2000/04/06
Date: 2000-04-07T02:59:32+00:00	[thread overview]
Message-ID: <38ED4ECA.ADB698C9@sdynamix.com> (raw)
In-Reply-To: 38EA0440.1ECBC158@ncep.noaa.gov

Paul van Delst wrote:
> 
> nsavvinv2@my-deja.com wrote:
> > Can a function return an n-dimensional vector?
> 
> Sure - in f90 at least....dunno about f77. I got it to work for vectors
> by using INTERFACE blocks in the code that calls the function, e.g.
> 
> FUNCTION my_func ( x, y ) RESULT ( z )
> 
>   IMPLICIT NONE
>   INTEGER, INTENT( IN ), DIMENSION( : )         :: x, y
>   INTEGER,               DIMENSION( SIZE( x ) ) :: z
> 
>   z(:) = x(:) + y(:)   ! Assumes x and y are the same size
> 
>   RETURN
> 
> END FUNCTION my_func
> 
> and then in the calling program:
> 
> PROGRAM blah
> 
>   IMPLICIT NONE
> 
>   INTERFACE
> !   Interface body for my_func
>     FUNCTION my_func ( x, y ) RESULT ( z )
>       IMPLICIT NONE
>       INTEGER, INTENT( IN ), DIMENSION( : )         :: x, y
>       INTEGER,               DIMENSION( SIZE( x ) ) :: z
>     END FUNCTION my_func
>   END INTERFACE
> 
>   INTEGER, DIMENSION( 5 ) :: x = (/ -1,  1, -1,  1 /), &
>                              y = (/  1, -1,  1, -1 /)
> 
>   WRITE( *, '( 5i5 )' ) my_func( x, y )
> 
> END PROGRAM blah


What a slaughter of Fortran, showing every symptom of design by ignorant
and incompetent committee. What happened, where they too busy with
themselves to bother and learn from ADA?? If they did, they'd see
something along these lines:

	function normalize(v: in vector) return vector is
	vni: float;
	begin
	  vni := 1./norm(v)
	  return (v(x)*vni, v(y)*vni, v(z)*vni);
	end normalize;

--	somewhere in your code   
	u,v: vector;
		.
		.
		.
	u := normalize(v);

The difference speaks for itself!! My advise to Fortran committee is to
head F9X for the nearest trash bin and start raising funds to compensate
the vendors for costs incurred to implement their vision of language
abuse.

btw, note a duality of the ADA & F77 fcn. A similar extension for
returning user types couldn't be crafted? But one would have to be aware
of the prior art of course...

--
Dr.B.Voh
-----------------------------------------------
Modeling * Simulation * Analysis
http://www.sdynamix.com
-----------------------------------------------




       reply	other threads:[~2000-04-06  0:00 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <8cctts$ujr$1@nnrp1.deja.com>
     [not found] ` <38EA0440.1ECBC158@ncep.noaa.gov>
2000-04-06  0:00   ` bv [this message]
2000-04-06  0:00     ` F9X twister & ADA (was: n-dim'l vectors) Richard Maine
2000-04-07  0:00       ` Brian Rogoff
2000-04-08  0:00         ` Dick Hendrickson
2000-04-08  0:00           ` Richard Maine
2000-04-09  0:00             ` Gary Scott
2000-04-09  0:00               ` Richard Maine
2000-04-09  0:00           ` Geoff Bull
2000-04-09  0:00             ` Dick Hendrickson
2000-04-09  0:00               ` Robert Dewar
2000-04-09  0:00                 ` Gordon Sande
2000-04-09  0:00                   ` James Giles
2000-04-10  0:00                 ` tmoran
2000-04-15  0:00                 ` Aidan Skinner
2000-04-17  0:00                   ` Robert I. Eachus
2000-04-16  0:00                 ` Ken Garlington
2000-04-12  0:00               ` Robert I. Eachus
2000-04-10  0:00       ` bv
2000-04-10  0:00         ` James Van Buskirk
2000-04-11  0:00         ` James Giles
2000-04-11  0:00           ` Geoff Bull
2000-04-11  0:00             ` James Giles
2000-04-11  0:00               ` Larry Kilgallen
2000-04-11  0:00                 ` James Giles
2000-04-11  0:00                   ` Larry Kilgallen
2000-04-12  0:00                   ` Robert A Duff
2000-04-12  0:00               ` Geoff Bull
2000-04-12  0:00                 ` James Giles
2000-04-12  0:00                   ` Geoff Bull
2000-04-12  0:00                     ` James Giles
2000-04-12  0:00                       ` Geoff Bull
2000-04-12  0:00                         ` James Giles
2000-04-13  0:00                           ` Geoff Bull
2000-04-13  0:00                             ` Debugging (was: F9X twister & ADA) James Giles
2000-04-13  0:00                             ` F9X twister & ADA (was: n-dim'l vectors) James Giles
2000-04-14  0:00                               ` Geoff Bull
2000-04-12  0:00                         ` Marin D. Condic
2000-04-12  0:00                           ` James Giles
2000-04-12  0:00                           ` James Giles
2000-04-11  0:00           ` Dale Stanbrough
2000-04-11  0:00             ` James Giles
2000-04-12  0:00               ` Robert A Duff
2000-04-14  0:00           ` bv
2000-04-07  0:00     ` Erik Edelmann
2000-04-07  0:00       ` Robert Dewar
2000-04-07  0:00         ` Erik Edelmann
2000-04-07  0:00     ` Paul van Delst
2000-04-10  0:00       ` bv
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox