@@ -204,42 +204,41 @@ subroutine test_insert_at_array
204
204
integer , parameter :: first = - 100
205
205
integer , parameter :: last = 100
206
206
integer , parameter :: stride = 4
207
+ type (string_type) :: all_strings(first:last)
207
208
208
209
write (* ,* ) " test_insert_at_array: Starting work_list!"
210
+
211
+ do concurrent (j= first:last)
212
+ all_strings(j) = string_type( to_string(j) )
213
+ end do
209
214
210
- call work_list% insert_at( list_head, &
211
- & [ ( string_type( to_string(j) ), j = first, first + stride - 1 ) ] )
215
+ call work_list% insert_at( list_head, all_strings(first:first+ stride-1 ) )
212
216
213
217
call compare_list( work_list, first, first + stride, 5 )
214
218
215
- call work_list% insert_at( list_tail, &
216
- & [ ( string_type( to_string(j) ), j = last - stride, last - 1 ) ] )
219
+ call work_list% insert_at( list_tail, all_strings(last- stride:last-1 ) )
217
220
218
221
do i = first + stride, last - stride - 1 , stride
219
- call work_list% insert_at( fidx( i - first + 1 ), &
220
- & [ ( string_type( to_string(j) ), j = i, i + stride - 1 ) ] )
222
+ call work_list% insert_at( fidx( i - first + 1 ), all_strings(i:i+ stride-1 ) )
221
223
end do
222
224
223
- call work_list% insert_at( list_tail, [ to_string (last) ] )
225
+ call work_list% insert_at( list_tail, all_strings (last:last) )
224
226
225
227
call compare_list( work_list, first, last + 1 , 6 )
226
228
227
229
write (* ,* ) " test_insert_at_array: Starting reference_list!"
228
230
229
- call reference_list% insert_at( list_tail, &
230
- & [ ( string_type( to_string(j) ), j = last - stride + 1 , last ) ] )
231
+ call reference_list% insert_at( list_tail, all_strings (last- stride+1 :last) )
231
232
232
233
call compare_list( reference_list, last - stride + 1 , last + 1 , 7 )
233
234
234
- call reference_list% insert_at( list_head, &
235
- & [ ( string_type( to_string(j) ), j = first + 1 , first + stride ) ] )
235
+ call reference_list% insert_at( list_head, all_strings(first+1 :first+ stride) )
236
236
237
237
do i = last - stride, first + stride + 1 , - 1 * stride
238
- call reference_list% insert_at( bidx( last - i + 1 ), &
239
- & [ ( string_type( to_string(j) ), j = i - stride + 1 , i ) ] )
238
+ call reference_list% insert_at( bidx( last - i + 1 ), all_strings(i- stride+1 :i) )
240
239
end do
241
240
242
- call reference_list% insert_at( list_head, [ to_string (first) ] )
241
+ call reference_list% insert_at( list_head, all_strings (first:first) )
243
242
244
243
call compare_list( reference_list, first, last + 1 , 8 )
245
244
@@ -252,20 +251,25 @@ subroutine test_insert_at_list
252
251
integer , parameter :: first = - 100
253
252
integer , parameter :: last = 100
254
253
integer , parameter :: stride = 4
254
+ type (string_type) :: all_strings(first:last)
255
255
256
256
write (* ,* ) " test_insert_at_list: Starting work_list!"
257
+
258
+ do concurrent (j= first:last)
259
+ all_strings(j) = string_type( to_string(j) )
260
+ end do
257
261
258
262
call temp_list% clear()
259
263
do j = first, first + stride - 1
260
- call temp_list% insert_at( list_tail, string_type( to_string(j) ) )
264
+ call temp_list% insert_at( list_tail, all_strings(j ) )
261
265
end do
262
266
263
267
call work_list% insert_at(list_head, temp_list)
264
268
call compare_list( work_list, first, first + stride, 9 )
265
269
266
270
call temp_list% clear()
267
271
do j = last - 1 , last - stride, - 1
268
- call temp_list% insert_at( list_head, string_type( to_string(j) ) )
272
+ call temp_list% insert_at( list_head, all_strings(j ) )
269
273
end do
270
274
271
275
call work_list% insert_at(list_tail, temp_list)
@@ -280,7 +284,7 @@ subroutine test_insert_at_list
280
284
end do
281
285
282
286
call temp_list% clear()
283
- call temp_list% insert_at( list_head, to_string (last) )
287
+ call temp_list% insert_at( list_head, all_strings (last) )
284
288
call work_list% insert_at( list_tail, temp_list )
285
289
286
290
call compare_list( work_list, first, last + 1 , 10 )
0 commit comments