There is no equivalent to the equivalence. :-) In fact, FORTRAN and COBOL
(redefine) are the only languages I can think of that offer this. (And a
good thing too - it was always a problem - both for programmers and
compilers.)
If you want a custom structure, then you'll need to load it into that in the
first place, or transfer the information from the X array to the Y array of
structures yourself.
It's easy to create an array of a structured item. You can either use a
Private Type and fill the items yourself, or use a Class module and
encapsulate the filling of the items in the class.
Look at what you get if you pass X(I) to a variant parameter of a sub - it's
likely that you'll get a single-dimension array (being the second
dimension). Your class could work through this and set the individual
items.