Skip to content

Commit 1510bc0

Browse files
committed
Allowed subscripting the last index of array.
1 parent 81df769 commit 1510bc0

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/functional.f90

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3629,7 +3629,7 @@ pure function subscript_i1(x, ind) result(subscript)
36293629
integer(i1), dimension(:), allocatable :: subscript
36303630
integer(i1), dimension(:), allocatable :: indices
36313631
integer :: i
3632-
indices = pack(ind, ind > 0 .and. ind < size(x))
3632+
indices = pack(ind, ind > 0 .and. ind <= size(x))
36333633
allocate(subscript(size(indices)))
36343634
do concurrent(i = 1:size(indices))
36353635
subscript(i) = x(indices(i))
@@ -3646,7 +3646,7 @@ pure function subscript_i2(x, ind) result(subscript)
36463646
integer(i2), dimension(:), allocatable :: subscript
36473647
integer(i2), dimension(:), allocatable :: indices
36483648
integer :: i
3649-
indices = pack(ind, ind > 0 .and. ind < size(x))
3649+
indices = pack(ind, ind > 0 .and. ind <= size(x))
36503650
allocate(subscript(size(indices)))
36513651
do concurrent(i = 1:size(indices))
36523652
subscript(i) = x(indices(i))
@@ -3663,7 +3663,7 @@ pure function subscript_i4(x, ind) result(subscript)
36633663
integer(i4), dimension(:), allocatable :: subscript
36643664
integer(i4), dimension(:), allocatable :: indices
36653665
integer :: i
3666-
indices = pack(ind, ind > 0 .and. ind < size(x))
3666+
indices = pack(ind, ind > 0 .and. ind <= size(x))
36673667
allocate(subscript(size(indices)))
36683668
do concurrent(i = 1:size(indices))
36693669
subscript(i) = x(indices(i))
@@ -3680,7 +3680,7 @@ pure function subscript_i8(x, ind) result(subscript)
36803680
integer(i8), dimension(:), allocatable :: subscript
36813681
integer(i8), dimension(:), allocatable :: indices
36823682
integer :: i
3683-
indices = pack(ind, ind > 0 .and. ind < size(x))
3683+
indices = pack(ind, ind > 0 .and. ind <= size(x))
36843684
allocate(subscript(size(indices)))
36853685
do concurrent(i = 1:size(indices))
36863686
subscript(i) = x(indices(i))
@@ -3697,7 +3697,7 @@ pure function subscript_r4(x, ind) result(subscript)
36973697
real(r4), dimension(:), allocatable :: subscript
36983698
integer(i4), dimension(:), allocatable :: indices
36993699
integer :: i
3700-
indices = pack(ind, ind > 0 .and. ind < size(x))
3700+
indices = pack(ind, ind > 0 .and. ind <= size(x))
37013701
allocate(subscript(size(indices)))
37023702
do concurrent(i = 1:size(indices))
37033703
subscript(i) = x(indices(i))
@@ -3714,7 +3714,7 @@ pure function subscript_r8(x, ind) result(subscript)
37143714
real(r8), dimension(:), allocatable :: subscript
37153715
integer(i4), dimension(:), allocatable :: indices
37163716
integer :: i
3717-
indices = pack(ind, ind > 0 .and. ind < size(x))
3717+
indices = pack(ind, ind > 0 .and. ind <= size(x))
37183718
allocate(subscript(size(indices)))
37193719
do concurrent(i = 1:size(indices))
37203720
subscript(i) = x(indices(i))
@@ -3731,7 +3731,7 @@ pure function subscript_r16(x, ind) result(subscript)
37313731
real(r16), dimension(:), allocatable :: subscript
37323732
integer(i4), dimension(:), allocatable :: indices
37333733
integer :: i
3734-
indices = pack(ind, ind > 0 .and. ind < size(x))
3734+
indices = pack(ind, ind > 0 .and. ind <= size(x))
37353735
allocate(subscript(size(indices)))
37363736
do concurrent(i = 1:size(indices))
37373737
subscript(i) = x(indices(i))
@@ -3748,7 +3748,7 @@ pure function subscript_c4(x, ind) result(subscript)
37483748
complex(r4), dimension(:), allocatable :: subscript
37493749
integer(i4), dimension(:), allocatable :: indices
37503750
integer :: i
3751-
indices = pack(ind, ind > 0 .and. ind < size(x))
3751+
indices = pack(ind, ind > 0 .and. ind <= size(x))
37523752
allocate(subscript(size(indices)))
37533753
do concurrent(i = 1:size(indices))
37543754
subscript(i) = x(indices(i))
@@ -3765,7 +3765,7 @@ pure function subscript_c8(x, ind) result(subscript)
37653765
complex(r8), dimension(:), allocatable :: subscript
37663766
integer(i4), dimension(:), allocatable :: indices
37673767
integer :: i
3768-
indices = pack(ind, ind > 0 .and. ind < size(x))
3768+
indices = pack(ind, ind > 0 .and. ind <= size(x))
37693769
allocate(subscript(size(indices)))
37703770
do concurrent(i = 1:size(indices))
37713771
subscript(i) = x(indices(i))
@@ -3782,7 +3782,7 @@ pure function subscript_c16(x, ind) result(subscript)
37823782
complex(r16), dimension(:), allocatable :: subscript
37833783
integer(i4), dimension(:), allocatable :: indices
37843784
integer :: i
3785-
indices = pack(ind, ind > 0 .and. ind < size(x))
3785+
indices = pack(ind, ind > 0 .and. ind <= size(x))
37863786
allocate(subscript(size(indices)))
37873787
do concurrent(i = 1:size(indices))
37883788
subscript(i) = x(indices(i))

0 commit comments

Comments
 (0)