program first INTEGER X,Y,Z INTEGER i, j, k, l INTEGER onedi(10) INTEGER twodi(20,10) INTEGER threedi(3, 5, 7) INTEGER fourdi(4, 5, 7, 11) REAL*4 onedf(10) REAL*4 twodf(20,10) REAL*4 threedf(3, 5, 7) REAL*4 fourdf(4, 5, 7, 11) DO i=1,10 onedi(i) = i ENDDO DO i=1,20 DO j=1,10 twodi(i,j) = i * j ENDDO ENDDO DO i=1,3 DO j=1,5 DO k=1,7 threedi(i,j,k) = i * j + k ENDDO ENDDO ENDDO DO i=1,3 DO j=1,5 DO k=1,7 DO m=1,11 fourdi(i,j,k,m) = i * j + k * m ENDDO ENDDO ENDDO ENDDO call oneif(onedi) call twoif(twodi) call threeif(threedi) call fourif(fourdi) DO i=1,10 onedf(i) = i ENDDO DO i=1,20 DO j=1,10 twodf(i,j) = i * j ENDDO ENDDO DO i=1,3 DO j=1,5 DO k=1,7 threedf(i,j,k) = i * j + k ENDDO ENDDO ENDDO DO i=1,3 DO j=1,5 DO k=1,7 DO m=1,11 fourdf(i,j,k,m) = i * j + k * m ENDDO ENDDO ENDDO ENDDO call oneff(onedf) call twoff(twodf) call threeff(threedf) call fourff(fourdf) call known(fourdf, m) END SUBROUTINE oneif (array1) INTEGER array1(*) array1(1) = 1 RETURN END SUBROUTINE twoif (array2) INTEGER array2(20, *) array2(1,1) = 11 RETURN END SUBROUTINE threeif (array3) INTEGER array3(3, 5, *) array3(1,1,1) = 111 RETURN END SUBROUTINE fourif (array4) INTEGER array4(4, 5, 7, *) array4(1,1,1,1) = 1111 RETURN END SUBROUTINE oneff (array1) REAL*4 array1(*) array1(1) = 1 RETURN END SUBROUTINE twoff (array2) REAL*4 array2(20, *) array2(1,1) = 11 RETURN END SUBROUTINE threeff (array3) REAL*4 array3(3, 5, *) array3(1,1,1) = 111 RETURN END SUBROUTINE fourff (array4) REAL*4 array4(4, 5, 7, *) array4(1,1,1,1) = 1111 RETURN END SUBROUTINE known (array4, i) INTEGER i REAL*4 array4(4, 5, 7, i) array4(1,1,1,1) = 1111 RETURN END