REAL :: n=10, list(n) list = ( 90, 47, 58, 29, 22, 32, 55, 5, 55, 73 ) WRITE(Format='i1, (i6)') 0, list DO i = 1, n-1 ALIAS(list,1, diff,n-i) ! rename list(1 ... n-i) with diff diff = list($+1) - diff ! $ is the running left hand array index WRITE(Format='i1, (i6)') i, diff ENDDO END