PROGRAM arraysum IMPLICIT NONE INTEGER :: i, N DOUBLE PRECISION, ALLOCATABLE :: X(:) DOUBLE PRECISION :: mysum PRINT *, 'Enter the number of elements in the vector (N >= 1)' READ *, N IF (N .LT. 1) THEN PRINT *, 'FATAL ERROR: N must be strictly positive!' STOP END IF ALLOCATE(X(N)) ! get the space I need CALL RANDOM_NUMBER(X) ! initialize X ! ! Compute the sum using a loop ! mysum = 0.0 DO i = 1, N mysum = mysum + X(i) END DO PRINT *, 'SUM = ', mysum, SUM(X) ! print both answers for comparison PRINT *, 'ERROR = ', mysum-SUM(X) DEALLOCATE(X) END PROGRAM arraysum