in parallel program i'm writing, defined lot of multidimensional allocatable arrays (actually 1d, 2d or 3d) allocated negative lower bounds during execution. reason why did each process handles, in 2d example, 14 14 a matrix , shares overlap of 2 layers four neighboring processes, matrix allocated bounds (-1:12,-1:12) , "internal" part of matrix corresponds indices 1 10 . (italic represent choice/input dependency). the problem in doing didn't realize have been impossible rely on this fortran2003 feature , making impossible call mysub(a(:,i),...) in caller unit , refer dummy counterpart of a in subroutine using actual bounds ( -1 , 12 ), since a(:,i) expression, , not variable. the problem solved if pass whole array a subroutine, explained in previous linked answer , force me write "bigger" , less universal subroutine, which, on contrary, meant act on one-dimensional subarrays. is possible pass subarray of allocatable array (e.g. a(:,1)...