test_unirnk Subroutine

subroutine test_unirnk()

Arguments

None

Contents

Source Code


Variables

Type Visibility Attributes Name Initial
integer, public, allocatable :: irngt(:)
integer, public :: nuni
integer, public, allocatable :: xvalt(:)

Source Code

subroutine test_unirnk()
integer,allocatable :: xvalt(:)
integer,allocatable :: irngt(:)
integer :: nuni
   call unit_check_start('unirnk', '-library orderpack') ! start tests
   xvalt=[10,5,7,1,4,5,6,8,9,10,1]
   if(allocated(irngt))deallocate(irngt)
   allocate(irngt(size(xvalt)))
   call unirnk(xvalt,irngt,nuni)
   call unit_check('unirnk',nuni.eq.8,'number of indices. got',nuni,'expected',8)
   call unit_check('unirnk',all(irngt(:nuni) .eq.  [ 4,5,2,7,3,8,9,1 ]) ,'returned indices')
   call unit_check('unirnk',all(xvalt(irngt(:nuni)) .eq.  [ 1,4,5,6,7,8,9,10 ]) ,'sorted data')
   call unit_check_done('unirnk',msg='test completed')
end subroutine test_unirnk