Skip to content

Commit e69e767

Browse files
committed
qr workspace: make a intent(in)
1 parent e3db36d commit e69e767

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/stdlib_linalg.fypp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ module stdlib_linalg
503503
#:for rk,rt,ri in RC_KINDS_TYPES
504504
pure module subroutine get_qr_${ri}$_workspace(a,lwork,err)
505505
!> Input matrix a[m,n]
506-
${rt}$, intent(inout), target :: a(:,:)
506+
${rt}$, intent(in), target :: a(:,:)
507507
!> Minimum workspace size for both operations
508508
integer(ilp), intent(out) :: lwork
509509
!> State return flag. Returns an error if the query failed

src/stdlib_linalg_qr.fypp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,26 +93,26 @@ submodule (stdlib_linalg) stdlib_linalg_qr
9393
! Get workspace size for QR operations
9494
pure module subroutine get_qr_${ri}$_workspace(a,lwork,err)
9595
!> Input matrix a[m,n]
96-
${rt}$, intent(inout), target :: a(:,:)
96+
${rt}$, intent(in), target :: a(:,:)
9797
!> Minimum workspace size for both operations
9898
integer(ilp), intent(out) :: lwork
9999
!> State return flag. Returns an error if the query failed
100100
type(linalg_state_type), optional, intent(out) :: err
101101

102102
integer(ilp) :: m,n,k,info,lwork_qr,lwork_ord
103-
${rt}$ :: work_dummy(1),tau_dummy(1)
103+
${rt}$ :: work_dummy(1),tau_dummy(1),a_dummy(1,1)
104104
type(linalg_state_type) :: err0
105105

106106
lwork = -1_ilp
107107

108108
!> Problem sizes
109109
m = size(a,1,kind=ilp)
110110
n = size(a,2,kind=ilp)
111-
k = min(m,n)
111+
k = min(m,n)
112112

113113
! QR space
114114
lwork_qr = -1_ilp
115-
call geqrf(m,n,a,m,tau_dummy,work_dummy,lwork_qr,info)
115+
call geqrf(m,n,a_dummy,m,tau_dummy,work_dummy,lwork_qr,info)
116116
call handle_geqrf_info(info,m,n,lwork_qr,err0)
117117
if (err0%error()) then
118118
call linalg_error_handling(err0,err)
@@ -123,7 +123,7 @@ submodule (stdlib_linalg) stdlib_linalg_qr
123123
! Ordering space (for full factorization)
124124
lwork_ord = -1_ilp
125125
call #{if rt.startswith('complex')}# ungqr #{else}# orgqr #{endif}# &
126-
(m,m,k,a,m,tau_dummy,work_dummy,lwork_ord,info)
126+
(m,m,k,a_dummy,m,tau_dummy,work_dummy,lwork_ord,info)
127127
call handle_orgqr_info(info,m,n,k,lwork_ord,err0)
128128
if (err0%error()) then
129129
call linalg_error_handling(err0,err)

0 commit comments

Comments
 (0)