A structure is a defined block of related variables, a feature common to many languages. I am not sure about Fortran structure specifically, but it appears that you have structure called "pixel" that allows you to define specific instances of a pixel with the characteristics of cl, rw, x and y. Somewhere in the code there will be a statement that instantiates a pixel instance, eg something like "myPixel pixel.....". "myPixel" is then the name of your pixel instance, and the pixel members for "myPixel" will likely be identified as "myPixel.cl", "myPixel.rw", myPixel.x" and "myPixel.y". For example, "myPixel.x = 100" and "myPixel.y = 200" will establish the x-y coordinates for the "myPixel" pixel.

Staff: Mentor

..thought C would help. :)

In English, not computer, the FORTRAN code means the following:
cl occupies the exact same memory location as does x
rw does the same with y
cl, rw, x, and y are all signed integers - 32 bit int -- what INTEGER*4 means.

Your array does not seem to do all that - ie., overlap memory. I'm assuming INTEGER pixel(4) creates four elements in vector of 32 bit signed ints.

Yes, the array method does not physically overlap in memory the elements cl with x, and rw with y. cammo12, that is what the union does in your original code.
Without structures or unions this can be achieved in FORTRAN by using "equivalence". However, equivalence will not work with members from the same array. So if this type of union is required then two arrays will have to be created: