Yeah but I have found that GL_INTENSITY, GL_ALPHA and such are deprecated: http://www.opengl.org/wiki/Image_Format
(at the bottom of the page: legacy formats)
They seem also to produce vec4 in shader:
"When a GL_RED format is sampled in a shader, the resulting vec4 is (Red, 0, 0, 1). When a GL_INTENSITY format is sampled, the resulting vec4 is (I, I, I, I) ...."
So my question is if you need only one channel (2d int array) for data, should you store it into the texture or is there some better way for core profile OpenGL? As single channel texture formats are deprecated it seems that there is a way you should do it, but I can't seem to find how as all tutorials are quite old on the subject.