[comp.lang.fortran] Fortran-8X SHIFT intrinsics

mccalpin@loligo (John McCalpin) (01/05/89)

The Fortran-8X proposed standard has some nice intrinsics for manipulating
conformant array sections.  In particular, the CSHIFT and EOSHIFT intrinsics
are available for circular and end-off shifts, respectively.  These two
operators are easiest to implement on vector machines using a series of
one-dimensional operations, but take a bit more work to collapse into
multi-dimensional operations. 

My codes are characterized by a great many shift operations for which I
don't care what gets shifted in the other side, since I won't use it anyway.
I keep borders in my arrays and only operate on interior values.  
Therefore I would like to see another intrinsic, which I call USHIFT
(Undefined SHIFT), which can shift in whatever it wants.  In particular,
a helical shift can be implemented by treating the multi-dimensional
array as a 1-d array and shifting the 1-d array as a whole.

Does this sound like a generally useful addition?  I know that it would
improve performance substantially on CDC/ETA machines relative to 
CSHIFT or EOSHIFT, but I don't know if anyone else would use it.

John D. McCalpin	Supercomputer Computations Research Institute
mccalpin@masig1.ocean.fsu.edu		mccalpin@fsu (BITNET or MFENET)