@@ -61,51 +61,51 @@ module test_linalg_pivoting_qr
6161 call check(error,state%ok(),state%print())
6262 if (allocated(error)) return
6363
64- ! Check solution
65- call check(error, all(abs(a(:, pivots)-matmul(q,r))<tol), 'converged solution (full)')
66- if (allocated(error)) return
67-
68- ! ! 2) QR factorization with reduced matrices
69- ! call qr(a, qred, rred, pivots, err=state)
70- !
71- ! ! Check return code
72- ! call check(error,state%ok(),state%print())
64+ ! ! Check solution
65+ ! call check(error, all(abs(a(:, pivots)-matmul(q,r))<tol), 'converged solution (full)')
7366 ! if (allocated(error)) return
7467 !
68+ ! 2) QR factorization with reduced matrices
69+ call qr(a, qred, rred, pivots, err=state)
70+
71+ ! Check return code
72+ call check(error,state%ok(),state%print())
73+ if (allocated(error)) return
74+ !
7575 ! ! Check solution
7676 ! call check(error, all(abs(a(:, pivots)-matmul(qred,rred))<tol), 'converged solution (reduced)')
7777 ! if (allocated(error)) return
7878 !
79- ! ! 3) overwrite A
80- ! call qr(a, qred, rred, pivots, overwrite_a=.true., err=state)
81- !
82- ! ! Check return code
83- ! call check(error,state%ok(),state%print())
84- ! if (allocated(error)) return
79+ ! 3) overwrite A
80+ call qr(a, qred, rred, pivots, overwrite_a=.true., err=state)
81+
82+ ! Check return code
83+ call check(error,state%ok(),state%print())
84+ if (allocated(error)) return
8585 !
8686 ! ! Check solution
8787 ! call check(error, all(abs(aorig(:, pivots)-matmul(qred,rred))<tol), 'converged solution (overwrite A)')
8888 ! if (allocated(error)) return
8989 !
90- ! ! 4) External storage option
91- ! a = aorig
92- ! call qr_space(a, lwork, pivoting=.true.)
93- ! allocate(work(lwork))
94- ! call qr(a, q, r, pivots, storage=work, err=state)
95- !
96- ! ! Check return code
97- ! call check(error,state%ok(),state%print())
98- ! if (allocated(error)) return
90+ ! 4) External storage option
91+ a = aorig
92+ call qr_space(a, lwork, pivoting=.true.)
93+ allocate(work(lwork))
94+ call qr(a, q, r, pivots, storage=work, err=state)
95+
96+ ! Check return code
97+ call check(error,state%ok(),state%print())
98+ if (allocated(error)) return
9999 !
100100 ! ! Check solution
101101 ! call check(error, all(abs(a(:, pivots)-matmul(q,r))<tol), 'converged solution (external storage)')
102102 ! if (allocated(error)) return
103103 !
104- ! ! Check that an invalid problem size returns an error
105- ! a = aorig
106- ! call qr(a, qerr, rerr, pivots, err=state)
107- ! call check(error,state%error(),'invalid matrix sizes')
108- ! if (allocated(error)) return
104+ ! Check that an invalid problem size returns an error
105+ a = aorig
106+ call qr(a, qerr, rerr, pivots, err=state)
107+ call check(error,state%error(),'invalid matrix sizes')
108+ if (allocated(error)) return
109109 end subroutine test_pivoting_qr_random_tall_matrix_${ri}$
110110
111111 subroutine test_pivoting_qr_random_rank_deficient_${ri}$(error)
0 commit comments