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)