Type, DIMENSION( : ) :: paramName ! One dimensional array Type, DIMENSION( : , : ) :: paramName ! Two dimensional array And so on... |
SUBROUTINE FuncWithMatrixParam( A )
IMPLICIT NONE
REAL, DIMENSION( : ) :: A
integer i, j
DO i = 1, SIZE(A) !! # elements in A
print *, A(i),
END DO
print *
END
|
Recall that an interface is used to declare a function
Syntax to declare a function with an array parameter:
INTERFACE
SUBROUTINE FuncWithMatrixParam( A )
REAL, DIMENSION( : ) :: A
END SUBROUTINE
END INTERFACE
|
Example Program:
SUBROUTINE FuncWithMatrixParam( A )
IMPLICIT NONE
REAL, DIMENSION( : ) :: A
integer i
print *, "Number of elements = ", SIZE(A)
print *
DO i = 1, SIZE(A)
print *, A(i)
END DO
print *
END
! ============================================================
PROGRAM Main
REAL, DIMENSION(3) :: A = (/ 111, 222, 333 /)
integer i
INTERFACE
SUBROUTINE FuncWithMatrixParam( A )
REAL, DIMENSION( : ) :: A
END SUBROUTINE
END INTERFACE
CALL FuncWithMatrixParam( A )
END
|
SUBROUTINE FuncWithMatrixParam( A )
IMPLICIT NONE
REAL, DIMENSION( : , : ) :: A
integer i, j
DO i = 1, SIZE(A,1) !! # rows in A
DO j = 1, SIZE(A,2) !! # columns in A
print *, A(i,j)
END DO
print *
END
|
Example Program:
SUBROUTINE FuncWithMatrixParam( A )
IMPLICIT NONE
REAL, DIMENSION( : , : ) :: A
integer i, j
DO i = 1, SIZE(A,1)
DO j = 1, SIZE(A,2)
print *, A(i,j)
END DO
END DO
print *
END
! ============================================================
PROGRAM Main
REAL, DIMENSION(2,3) :: A
DATA A/ 1, 2, 3, 4, 5, 6/
integer i
INTERFACE
SUBROUTINE FuncWithMatrixParam( A )
REAL, DIMENSION( : , : ) :: A
END SUBROUTINE
END INTERFACE
CALL FuncWithMatrixParam( A )
END
|