Anthony Stone suggested: > Perhaps you could declare a(30,40,1)? Oliver Fuhrer replied: >that's not really an option. I am working in a 250'000 lines code where >changing the dimensionality of a field potentially impacts _a lot_ of lines to >change (switching (i,j) to (i,j,1) throughout the whole program). I am looking >for a way for p(:,:,1:1) to point to a(:,:) somehow. Well then, you could do it the other way around: Real,Target :: p(30,40,1) Real,Pointer :: a(:,:) a => a3(:,:,1) Or if sometimes you want p to point to a, and sometimes to something else Real,Target :: a3(30,40,1) Real,Pointer :: a(:,:),p(:,:,:) a => a3(:,:,1) p => a3 Both of these work in plain F90, no complicated F2008 feature required! Cheers. -- ................................Malcolm Cohen, Nihon NAG, Tokyo.