|
|
@ -31,8 +31,8 @@
|
|
|
|
! File: imsrx.f90
|
|
|
|
! File: imsrx.f90
|
|
|
|
! Subroutine:
|
|
|
|
! Subroutine:
|
|
|
|
! Parameters:
|
|
|
|
! Parameters:
|
|
|
|
subroutine imsrx(n,x,indx)
|
|
|
|
subroutine imsrx(n,x,indx,flag)
|
|
|
|
integer :: n
|
|
|
|
integer :: n, flag
|
|
|
|
integer :: x(n)
|
|
|
|
integer :: x(n)
|
|
|
|
integer :: indx(n)
|
|
|
|
integer :: indx(n)
|
|
|
|
|
|
|
|
|
|
|
@ -48,7 +48,9 @@ subroutine imsrx(n,x,indx)
|
|
|
|
|
|
|
|
|
|
|
|
if (n==0) return
|
|
|
|
if (n==0) return
|
|
|
|
if (n==1) then
|
|
|
|
if (n==1) then
|
|
|
|
indx(1) = 1
|
|
|
|
if (flag == 0) then
|
|
|
|
|
|
|
|
indx(1) = 1
|
|
|
|
|
|
|
|
endif
|
|
|
|
return
|
|
|
|
return
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
@ -58,10 +60,11 @@ subroutine imsrx(n,x,indx)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
do k=1,n
|
|
|
|
if (flag == 0) then
|
|
|
|
indx(k) = k
|
|
|
|
do k=1,n
|
|
|
|
enddo
|
|
|
|
indx(k) = k
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
end if
|
|
|
|
call mrgsrt(n,x,iaux,iret)
|
|
|
|
call mrgsrt(n,x,iaux,iret)
|
|
|
|
|
|
|
|
|
|
|
|
if (iret /= 1) then
|
|
|
|
if (iret /= 1) then
|
|
|
|