PROGRAM taulukkofunktio IMPLICIT NONE INTEGER, PARAMETER :: n = 5 REAL, DIMENSION(n,n) :: x, y REAL, DIMENSION(n) :: t 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 WRITE(*,*) f(x,y) CONTAINS FUNCTION f(x,y) RESULT(z) IMPLICIT NONE REAL, DIMENSION(:,:) :: x,y REAL, DIMENSION(SIZE(x,1),SIZE(x,2)) :: z IF ( ANY(SHAPE(x) /= SHAPE(y)) ) THEN WRITE(*,*) 'Argumentit eivät ole samanmuotoisia' STOP ELSE z = SIN(SQRT(x**2 + y**2)) END IF END FUNCTION f END PROGRAM taulukkofunktio