test_indmed Subroutine

subroutine test_indmed()

Arguments

None

Contents

Source Code


Variables

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: cdont(:)
real(kind=dp), public, allocatable :: ddont(:)
integer, public, allocatable :: idont(:)
integer, public :: ii
real, public, allocatable :: xdont(:)

Source Code

subroutine test_indmed
use M_orderpack__indmed, only : indmed
implicit none
real,allocatable :: xdont(:)
real(kind=dp),allocatable :: ddont(:)
integer,allocatable :: idont(:)
character(len=:),allocatable :: cdont(:)
integer :: ii
   call unit_check_start('indmed', '-library orderpack') ! start tests

   xdont=[80.0,70.0,20.0,10.0,1000.0]
   call indmed(xdont,ii)
   call unit_check('indmed', ii.eq.2.and.xdont(ii).eq.70.0, 'real median',ii,xdont(ii))
   !
   idont=[11, 22, 33, 44, 55, 66, 77, 88]
   call indmed(idont,ii)
   call unit_check('indmed', ii.eq.4.and.idont(ii).eq.44, 'integer median',ii,idont(ii))
   !
   ddont=[11.0d0,77.0d0,22.0d0,66.0d0,33.0d0,88.0d0]
   call indmed(ddont,ii)
   call unit_check('indmed', ii.eq.5.and.ddont(ii).eq.33.0d0, 'doubleprecision median',ii,ddont(ii))
   !
   cdont=[character(len=20) :: 'apple','bee','cherry','duck','elephant','finger','goose','h','insect','j']
   call indmed(cdont,ii)
   call unit_check('indmed', ii.eq.5.and.cdont(ii).eq.'elephant', 'character median',ii,cdont(ii))
   !
   call unit_check_done('indmed',msg='test completed')
end subroutine test_indmed