PROGRAM taulukko IMPLICIT NONE INTEGER,PARAMETER :: n = 5 REAL, DIMENSION(n) :: t REAL, DIMENSION(n,n) :: x, y, z INTEGER :: i t = (/ (10.0*i/(n-1)-5.0, i = 0, n-1) /) DO i = 1,n x(i,1:n) = t y(1:n,i) = t END DO CALL f(x,y,z) WRITE(*,*) z CONTAINS SUBROUTINE f(x,y,z) IMPLICIT NONE REAL, DIMENSION(:,:) :: x, y, z IF ( ANY(SHAPE(x) /= SHAPE(y)) .OR. & ANY(SHAPE(x) /= SHAPE(z)) ) THEN WRITE(*,*) 'Argumentit eivät ole samanmuotoisia' STOP ELSE z = SIN(SQRT(x**2 + y**2)) END IF END SUBROUTINE f END PROGRAM taulukko