[comp.lang.fortran] Query: Complex data storage in new

hirchert@uxe.cso.uiuc.edu (08/31/88)

>For the record what constraints are imposed by the new standard
>for the storing of complex data?  Can a complex vector be stored
>as separate vectors or must the real and complex coefficients be
>stored contiguously?

One of the design constraints in the development of the draft Fortran 8x
standard was that it be upwards compatible with FORTRAN 77.  This means that
variables of the default COMPLEX types which are either equivalenced to
another type or in COMMON must be stored with real and imaginary parts
interleaved.  Proposals currently under consideration by X3J3 would extend
that requirement to nondefault COMPLEX types in the same storage association
contexts.  If your variables are not storage associated (and if your compiler
vendor is willing to support more than one way to store complex variables),
then storing the real and imaginary parts in separate vectors becomes possible.

>-- 
>Steve (really "D. E.") Stevenson           steve@hubcap.clemson.edu
>Department of Computer Science,            (803)656-5880.mabell
>Clemson University, Clemson, SC 29634-1906

Kurt W. Hirchert     hirchert@ncsa.uiuc.edu
National Center for Supercomputing Applications

fpst@hubcap.UUCP (Steve Stevenson) (08/31/88)

From article <50500071@uxe.cso.uiuc.edu>, by hirchert@uxe.cso.uiuc.edu:
>>... what constraints are imposed (by X3J3) for the storing of complex data?
> ...upwards compatible with FORTRAN 77.  ... COMPLEX types which are
> either equivalenced to another type or in COMMON must be stored
> with real and imaginary parts interleaved.  Proposals [might] extend
> that requirement to nondefault COMPLEX types ....


That requirement might be a killer for performance on many of the newer
types of machines.  For example, the T-series hypercube would be reduced
to a scalar machine.  Surely there is a better way than to dictate a
second generation constraint to a N>4-th generation solution.

I guess that brings up the point of why --- in light of software
--- engineering we still encourage EQUIVALENCEing.  I realize that
storage optimization is a very necessary requirement.  Just seems that
this way is outmoded.
-- 
Steve Stevenson                            fpst@hubcap.clemson.edu
(aka D. E. Stevenson),                     fpst@prism.clemson.csnet
Department of Computer Science,            comp.parallel
Clemson University, Clemson, SC 29634-1906 (803)656-5880.mabell