PROGRAM sommav_int IMPLICIT NONE INTEGER, PARAMETER :: LunVett=1000 REAL(8), DIMENSION(LunVett) :: a, b, c ! ! Inizializzazione CALL inizia ! ! Calcolo matrice C CALL addvet ! ! Stampa dei risultati CALL stampa ! STOP CONTAINS SUBROUTINE inizia IMPLICIT NONE INTEGER :: i REAL(8) :: v ! DO i = 1, LunVett a(i) = 1.0D0 + 1.0D0/i b(i) = 2.0D0 + 2.0D0/i c(i) = 0.0D0 END DO ! RETURN END SUBROUTINE inizia SUBROUTINE addvet IMPLICIT NONE INTEGER :: i ! ! Esiste una soluzione piu' elegante? DO i = 1, LunVett c(i) = a(i) + b(i) END DO ! RETURN END SUBROUTINE addvet SUBROUTINE stampa IMPLICIT NONE INTEGER :: i ! PRINT*,"I primi 10 elementi:" DO i = 1, 10 PRINT*,a(i), b(i), c(i) END DO ! PRINT*," . . ." PRINT*,"Gli ultimi 10 elementi:" DO i = LunVett-9, LunVett PRINT*,a(i), b(i), c(i) END DO ! RETURN END SUBROUTINE stampa END PROGRAM sommav_int