program vectors implicit none integer,parameter :: maxsize=10 integer :: maxnum=100 integer, dimension(maxsize) :: v1, v2 integer, dimension(maxsize,maxsize) :: m1 real, dimension(5) :: randomarray call random_seed() write (*, *) 'Generating vector 1...' call makeVector(v1) write(*,*) 'Generating vector 2...' call makeVector(v2) call printVector(v1, 1) call printVector(v2, 2) write(*,*) 'Generating matrix 1...' call makeMatrix(m1) write(*,*) 'Printing the matrix:' call printMatrix(m1) contains subroutine makeVector (v) implicit none integer, dimension (maxsize), intent(out) :: v integer i do i = 1, maxsize call random_number(randomarray) v(i) = int(randomarray(1)*maxnum) end do end subroutine subroutine printVector(v, whichone) implicit none integer, dimension(maxsize), intent(in) :: v integer, intent(in) :: whichone integer i write (*,*) 'V', whichone, ':', (v(i),i=1,maxsize) end subroutine subroutine makeMatrix(m) implicit none integer, dimension(maxsize,maxsize), intent(out) :: m integer i, j do i=1,maxsize do j = 1, maxsize call random_number(randomarray) m(i,j) = int(randomarray(1)*maxnum) end do end do end subroutine subroutine printMatrix(m) implicit none integer, dimension(maxsize,maxsize), intent(out) :: m integer i, j do i=1,maxsize write(*,*) (m1(i,j), j = 1,maxsize) end do end subroutine end program