Skip to content

Commit 48c734e

Browse files
committed
Fixed allocation from source for complex types.
1 parent 4dc860b commit 48c734e

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/stdlib_specialmatrices.fypp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,23 @@ module stdlib_specialmatrices
1616
public :: dense, transpose, hermitian
1717
public :: operator(*), operator(+), operator(-)
1818

19+
real(sp), parameter :: zero_sp = 0._sp
20+
real(sp), parameter :: one_sp = 1._sp
21+
real(dp), parameter :: zero_dp = 0._dp
22+
real(dp), parameter :: one_dp = 1._dp
23+
real(xdp), parameter :: zero_xdp = 0._xdp
24+
real(xdp), parameter :: one_xdp = 1._xdp
25+
real(qp), parameter :: zero_qp = 0._qp
26+
real(qp), parameter :: one_qp = 1._qp
27+
complex(sp), parameter :: zero_csp = (0._sp,0._sp)
28+
complex(sp), parameter :: one_csp = (1._sp,1._sp)
29+
complex(dp), parameter :: zero_cdp = (0._dp,0._dp)
30+
complex(dp), parameter :: one_cdp = (1._dp,1._dp)
31+
complex(xdp), parameter :: zero_cxdp = (0._xdp,0._xdp)
32+
complex(xdp), parameter :: one_cxdp = (1._xdp,1._xdp)
33+
complex(qp), parameter :: zero_cqp = (0._qp,0._qp)
34+
complex(qp), parameter :: one_cqp = (1._qp,1._qp)
35+
1936
!--------------------------------------
2037
!----- ------
2138
!----- TYPE DEFINITIONS ------

src/stdlib_specialmatrices_tridiagonal.fypp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,11 @@ submodule (stdlib_specialmatrices) tridiagonal_matrices
120120
integer(ilp) :: i
121121

122122
associate (n => A%n)
123-
allocate(B(n, n)) ; B = 0.0_${k1}$
123+
#:if t1.startswith('complex')
124+
allocate(B(n, n), source=zero_c${k1}$)
125+
#:else
126+
allocate(B(n, n), source=zero_${k1}$)
127+
#:endif
124128
B(1, 1) = A%dv(1) ; B(1, 2) = A%du(1)
125129
do concurrent (i=2:n-1)
126130
B(i, i-1) = A%dl(i-1)

0 commit comments

Comments
 (0)