File tree Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -149,9 +149,10 @@ contains
149
149
!> Name of the array to be added. A default name will be used if not provided.
150
150
character(len=*), intent(in), optional :: name
151
151
152
- integer :: i
152
+ integer :: i, arr_size
153
153
type(t_array_${t1[0]}$${k1}$_${rank}$) :: t_arr
154
- type(t_array_wrapper) :: wrapper
154
+ type(t_array_wrapper), allocatable :: tmp_arrays(:)
155
+
155
156
156
157
if (present(stat)) stat = 0
157
158
@@ -177,16 +178,19 @@ contains
177
178
return
178
179
end if
179
180
180
- do i = 1, size(arrays)
181
+ arr_size = size(arrays)
182
+ do i = 1, arr_size
181
183
if (arrays(i)%array%name == t_arr%name) then
182
184
if (present(stat)) stat = 1
183
185
if (present(msg)) msg = "Array with the same name '"//t_arr%name//"' already exists."
184
186
return
185
187
end if
186
188
end do
187
189
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)
190
194
end
191
195
#:endfor
192
196
#:endfor
You can’t perform that action at this time.
0 commit comments