Skip to content

Commit 666bd51

Browse files
committed
Use tmp_array for allocation instead
1 parent fd426c7 commit 666bd51

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/stdlib_io_np_save.fypp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,10 @@ contains
149149
!> Name of the array to be added. A default name will be used if not provided.
150150
character(len=*), intent(in), optional :: name
151151

152-
integer :: i
152+
integer :: i, arr_size
153153
type(t_array_${t1[0]}$${k1}$_${rank}$) :: t_arr
154-
type(t_array_wrapper) :: wrapper
154+
type(t_array_wrapper), allocatable :: tmp_arrays(:)
155+
155156

156157
if (present(stat)) stat = 0
157158

@@ -177,16 +178,19 @@ contains
177178
return
178179
end if
179180

180-
do i = 1, size(arrays)
181+
arr_size = size(arrays)
182+
do i = 1, arr_size
181183
if (arrays(i)%array%name == t_arr%name) then
182184
if (present(stat)) stat = 1
183185
if (present(msg)) msg = "Array with the same name '"//t_arr%name//"' already exists."
184186
return
185187
end if
186188
end do
187189

188-
arrays = [arrays, wrapper]
189-
allocate(wrapper%array, source=t_arr)
190+
allocate(tmp_arrays(arr_size + 1))
191+
tmp_arrays(:arr_size) = arrays
192+
allocate(tmp_arrays(arr_size + 1)%array, source=t_arr)
193+
call move_alloc(tmp_arrays, arrays)
190194
end
191195
#:endfor
192196
#:endfor

0 commit comments

Comments
 (0)