PROGRAM cg_iterate ! Tämä ohjelma ratkaisee tiheän lineaarisen yhtälöryhmän Ax=b ! liittogradienttialgoritmilla USE cg_precision, ONLY : prec USE cg_matrix, ONLY : init_mat, mult_mat USE cg_alg, ONLY : cg IMPLICIT NONE INTEGER :: n REAL(KIND=prec), ALLOCATABLE :: rhs(:), x(:) INTEGER :: allocstat, u, t1, t2 WRITE (*,*) 'Anna matriisin koko n' READ *, n CALL SYSTEM_CLOCK(count_rate=u) CALL SYSTEM_CLOCK(COUNT=t1) ALLOCATE (rhs(n), x(n), STAT=allocstat) IF (allocstat /= 0) STOP 'Muistinvaraus epäonistui!' CALL init_mat(n) rhs = 1 x = 0 CALL cg(n, rhs, x, 100, 1e-5_prec, mult_mat) CALL SYSTEM_CLOCK(COUNT=t2) WRITE (*,*) 'Koko: ', n, ' Aika: ', REAL(t2-t1)/u END PROGRAM cg_iterate