remove Interface

public interface remove

Contents


Module Procedures

private subroutine remove_c(list, place)

NAME

remove(3f) - [M_list] remove entry from an allocatable array at
             specified position
(LICENSE:PD)

SYNOPSIS

subroutine remove(list,place)

character(len=:)|doubleprecision|real|integer,intent(inout) :: list(:)
integer, intent(out) :: PLACE

DESCRIPTION

Remove a value from an allocatable array at the specified index.
The array is assumed to be sorted in descending order. It may be of
type CHARACTER, DOUBLEPRECISION, REAL, or INTEGER.

OPTIONS

list    is the list array.
PLACE   is the subscript for the entry that should be removed

EXAMPLES

Sample program

 program demo_remove
 use M_sort, only : sort_shell
 use M_list, only : locate, remove
 implicit none
 character(len=:),allocatable :: arr(:)
 integer                       :: i
 integer                       :: end

 arr=[character(len=20) :: '','ZZZ','Z','aaa','b','b','ab','bb','xxx' ]
 ! make sure sorted in descending order
 call sort_shell(arr,order='d')

 end=size(arr)
 write(*,'("SIZE=",i0,1x,*(a,","))')end,(trim(arr(i)),i=1,end)
 call remove(arr,1)
 end=size(arr)
 write(*,'("SIZE=",i0,1x,*(a,","))')end,(trim(arr(i)),i=1,end)
 call remove(arr,4)
 end=size(arr)
 write(*,'("SIZE=",i0,1x,*(a,","))')end,(trim(arr(i)),i=1,end)

 end program demo_remove

Results

   > SIZE=9 xxx,bb,b,b,ab,aaa,ZZZ,Z,,
   > SIZE=8 bb,b,b,ab,aaa,ZZZ,Z,,
   > SIZE=7 bb,b,b,aaa,ZZZ,Z,,

AUTHOR

1989,2017 John S. Urban

LICENSE

Public Domain

Arguments

Type IntentOptional Attributes Name
character(len=:), allocatable :: list(:)
integer, intent(in) :: place

private subroutine remove_d(list, place)

Arguments

Type IntentOptional Attributes Name
doubleprecision, allocatable :: list(:)
integer, intent(in) :: place

private subroutine remove_r(list, place)

Arguments

Type IntentOptional Attributes Name
real, allocatable :: list(:)
integer, intent(in) :: place

private subroutine remove_i(list, place)

Arguments

Type IntentOptional Attributes Name
integer, allocatable :: list(:)
integer, intent(in) :: place

private subroutine remove_l(list, place)

Arguments

Type IntentOptional Attributes Name
logical, allocatable :: list(:)
integer, intent(in) :: place