Skip to content

Commit ce3a106

Browse files
authored
Merge pull request #474 from 14NGiestas/patch-3
Bug fix: Allocatable argument 'x' is not allocated #472
2 parents dd81cf5 + 04f293d commit ce3a106

File tree

3 files changed

+22
-22
lines changed

3 files changed

+22
-22
lines changed

src/stdlib_math.fypp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ module stdlib_math
5050
${t1}$, intent(in) :: end
5151
integer, intent(in) :: n
5252

53-
${t1}$ :: res(n)
53+
${t1}$ :: res(max(n, 0))
5454
end function ${RName}$
5555
#:endfor
5656

@@ -77,7 +77,7 @@ module stdlib_math
7777
${t1}$, intent(in) :: end
7878
integer, intent(in) :: n
7979

80-
real(dp) :: res(n)
80+
real(dp) :: res(max(n, 0))
8181
end function ${RName}$
8282
#:endfor
8383

@@ -127,7 +127,7 @@ module stdlib_math
127127
${t1}$, intent(in) :: end
128128
integer, intent(in) :: n
129129

130-
${t1}$ :: res(n)
130+
${t1}$ :: res(max(n, 0))
131131
end function ${RName}$
132132
#:endfor
133133
#! Integer support
@@ -159,7 +159,7 @@ module stdlib_math
159159
integer, intent(in) :: n
160160
${t1}$, intent(in) :: base
161161
! real(${k1}$) endpoints + real(${k1}$) base = real(${k1}$) result
162-
${t1}$ :: res(n)
162+
${t1}$ :: res(max(n, 0))
163163
end function ${RName}$
164164

165165
#:set RName = rname("logspace", 1, t1, k1, "n_cbase")
@@ -169,7 +169,7 @@ module stdlib_math
169169
integer, intent(in) :: n
170170
complex(${k1}$), intent(in) :: base
171171
! real(${k1}$) endpoints + complex(${k1}$) base = complex(${k1}$) result
172-
${t1}$ :: res(n)
172+
${t1}$ :: res(max(n, 0))
173173
end function ${RName}$
174174

175175
#:set RName = rname("logspace", 1, t1, k1, "n_ibase")
@@ -179,7 +179,7 @@ module stdlib_math
179179
integer, intent(in) :: n
180180
integer, intent(in) :: base
181181
! real(${k1}$) endpoints + integer base = real(${k1}$) result
182-
${t1}$ :: res(n)
182+
${t1}$ :: res(max(n, 0))
183183
end function ${RName}$
184184
#:endfor
185185
#! ========================================================
@@ -196,7 +196,7 @@ module stdlib_math
196196
integer, intent(in) :: n
197197
real(${k1}$), intent(in) :: base
198198
! complex(${k1}$) endpoints + real(${k1}$) base = complex(${k1}$) result
199-
${t1}$ :: res(n)
199+
${t1}$ :: res(max(n, 0))
200200
end function ${RName}$
201201

202202
#:set RName = rname("logspace", 1, t1, k1, "n_cbase")
@@ -206,7 +206,7 @@ module stdlib_math
206206
integer, intent(in) :: n
207207
complex(${k1}$), intent(in) :: base
208208
! complex(${k1}$) endpoints + complex(${k1}$) base = complex(${k1}$) result
209-
${t1}$ :: res(n)
209+
${t1}$ :: res(max(n, 0))
210210
end function ${RName}$
211211

212212
#:set RName = rname("logspace", 1, t1, k1, "n_ibase")
@@ -216,7 +216,7 @@ module stdlib_math
216216
integer, intent(in) :: n
217217
integer, intent(in) :: base
218218
! complex(${k1}$) endpoints + integer base = complex(${k1}$) result
219-
${t1}$ :: res(n)
219+
${t1}$ :: res(max(n, 0))
220220
end function ${RName}$
221221
#:endfor
222222
#! ========================================================
@@ -234,7 +234,7 @@ module stdlib_math
234234
integer, intent(in) :: n
235235
real(${k1}$), intent(in) :: base
236236
! integer endpoints + real(${k1}$) base = real(${k1}$) result
237-
real(${k1}$) :: res(n)
237+
real(${k1}$) :: res(max(n, 0))
238238
end function ${RName}$
239239

240240
#:set RName = rname("logspace", 1, "integer(int32)", "int32", "n_c" + str(k1) + "base")
@@ -244,7 +244,7 @@ module stdlib_math
244244
integer, intent(in) :: n
245245
complex(${k1}$), intent(in) :: base
246246
! integer endpoints + complex(${k1}$) base = complex(${k1}$) result
247-
complex(${k1}$) :: res(n)
247+
complex(${k1}$) :: res(max(n, 0))
248248
end function ${RName}$
249249
#:endfor
250250

@@ -255,7 +255,7 @@ module stdlib_math
255255
integer, intent(in) :: n
256256
integer, intent(in) :: base
257257
! integer endpoints + integer base = integer result
258-
integer :: res(n)
258+
integer :: res(max(n, 0))
259259
end function ${RName}$
260260

261261

src/stdlib_math_linspace.fypp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ contains
2525
${t1}$, intent(in) :: end
2626
integer, intent(in) :: n
2727

28-
${t1}$ :: res(n)
28+
${t1}$ :: res(max(n, 0))
2929

3030
integer :: i ! Looping index
3131
${t1}$ :: interval ! Difference between adjacent elements
@@ -65,8 +65,8 @@ contains
6565
#:set RName = rname("linspace_n", 1, t1, k1)
6666
module procedure ${RName}$
6767

68-
real(${k1}$) :: x(n) ! array of the real part of complex number
69-
real(${k1}$) :: y(n) ! array of the imaginary part of the complex number
68+
real(${k1}$) :: x(max(n, 0)) ! array of the real part of complex number
69+
real(${k1}$) :: y(max(n, 0)) ! array of the imaginary part of the complex number
7070

7171
x = linspace(start%re, end%re, n)
7272
y = linspace(start%im, end%im, n)
@@ -94,4 +94,4 @@ contains
9494
end procedure ${RName}$
9595
#:endfor
9696

97-
end submodule
97+
end submodule

src/stdlib_math_logspace.fypp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,21 @@ contains
4343
#:for k1, t1 in RC_KINDS_TYPES
4444
#:set RName = rname("logspace", 1, t1, k1, "n_rbase")
4545
module procedure ${RName}$
46-
${t1}$ :: exponents(n)
46+
${t1}$ :: exponents(max(n, 0))
4747
exponents = linspace(start, end, n)
4848
res = base ** exponents
4949
end procedure
5050

5151
#:set RName = rname("logspace", 1, t1, k1, "n_cbase")
5252
module procedure ${RName}$
53-
${t1}$ :: exponents(n)
53+
${t1}$ :: exponents(max(n, 0))
5454
exponents = linspace(start, end, n)
5555
res = base ** exponents
5656
end procedure
5757

5858
#:set RName = rname("logspace", 1, t1, k1, "n_ibase")
5959
module procedure ${RName}$
60-
${t1}$ :: exponents(n)
60+
${t1}$ :: exponents(max(n, 0))
6161
exponents = linspace(start, end, n)
6262
res = base ** exponents
6363
end procedure
@@ -69,22 +69,22 @@ contains
6969
#:for k1 in REAL_KINDS
7070
#:set RName = rname("logspace", 1, "integer(int32)", "int32", "n_r" + str(k1) + "base")
7171
module procedure ${RName}$
72-
integer :: exponents(n)
72+
integer :: exponents(max(n, 0))
7373
exponents = linspace(start, end, n)
7474
res = base ** exponents
7575
end procedure
7676

7777
#:set RName = rname("logspace", 1, "integer(int32)", "int32", "n_c" + str(k1) + "base")
7878
module procedure ${RName}$
79-
integer :: exponents(n)
79+
integer :: exponents(max(n, 0))
8080
exponents = linspace(start, end, n)
8181
res = base ** exponents
8282
end procedure
8383
#:endfor
8484

8585
#:set RName = rname("logspace", 1, "integer(int32)", "int32", "n_ibase")
8686
module procedure ${RName}$
87-
integer :: exponents(n)
87+
integer :: exponents(max(n, 0))
8888
exponents = linspace(start, end, n)
8989
res = base ** exponents
9090
end procedure

0 commit comments

Comments
 (0)