I have the same problem. I don't know what to do with it. I have used Intel compilers under linux - icc, icpc and ifort with mkl. And this appears. Is this problem doe to ifort?
I remember hearing the some compiler was stricter than necessary in requiring also the target to be contiguous. Juha took these into use but unfortunately he is an holiday now. Perhaps you could look at this old script below. I guess one could totally remove the contiguous flags, it is just there fore some performance bonus.
The bottom line seems to be that the intel compilers seem to be over-cautious, but perhaps in a sensible way. The intel compilers throw an error if a pointer is assigned to a target that is within a structure and not declared contiguous. According to the standard, the user should ensure that the target is contiguous if the pointee is declared contiguous. In our case the target is not declared contiguous, but that doesn't mean that it isn't contiguous - that is not known until run time. But it seems to me that the code would be safer if the targets in these cases are declared contiguous. Is there a reason that we cannot declare them as contiguous in the code? I've no idea what happens if a pointer with the contiguous property gets pointed at a target that is not contiguous at run time. Could it end up pointing at garbage without throwing an error?
I'd be very interested to hear what Juha, Peter or Thomas think about this. I'm no expert on such compiler subtleties.
For now I'll try the script linked by Peter and Thomas, which appears to remove the CONTIGUOUS statements with sed.