PROGRAM MAIN USE double USE Lapack IMPLICIT NONE REAL(KIND=dp), DIMENSION(5, 5) :: A = 0.0_dp REAL(KIND=dp), DIMENSION(5) :: Z INTEGER :: I, N DO N = 1,10 CALL RANDOM_NUMBER(Z) DO I = 1,5 A(:, I) = A(:, I) + Z*Z(I) END DO END DO WRITE (*,'(5(1X,5F10.6/))') A CALL CHOLESKY(A) DO I = 1,5 A(:I-1,I) = 0.0 END DO WRITE (*, '(5(1X,5F10.6/))') A WRITE (*, '(5(1X,5F10.6/))') MATMUL(A, TRANSPOSE(A)) END PROGRAM MAIN