Integer lists consist of a sequence of strings separated by commas:
Each of the strn1, strn2, … can assume one of the following three forms:
a single integer or algebraic expression
two integer expressions separated by a colon, viz
gets expanded into
low, low+1, low+2, ... high
Three integer expressions separated by colons, viz
gets expanded into:
low, low+step, low+2*step, ... high
(Extension, not always applicable). The dup tag:
duplicates the entire list to this point, and # is added to the duplicate elements. The list up to the current point doubles in size. dup can appear anywhere in the list.
(Extension, not always applicable). The seq tag
can be appended to the list. seq=# replicates the existing list, shifting each element in the new list by a constant that makes the first element #. The size of the list doubles.
# itself can a single number or an integer list. If it is a list of n elements, the original list is replicated n times.
Each replication is shifted by a constant so that the first element is the current element in #. The final list is then n+1 - fold larger in size than the original list.
5+1 becomes a single number, 6. 5+1:8+2 becomes a sequence of numbers, 6 7 8 9 10 5+1:8+2:2 becomes a sequence of numbers, 6 8 10 1:4,7:11 becomes the sequence 1 2 3 4 7 8 9 10 11 5,6,dup=16,8 becomes the sequence 5 6 21 22 8 5,6,8,seq=9 becomes the sequence 5 6 8 14 15 17 7:9:2,seq=9,18 becomes the sequence 7 9 16 18 25 27
Note: slatsm/mkilst.f contains the source code for generating integer lists.