| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=rp), | intent(inout) | :: | Ha(N) | |||
| integer(kind=ip), | intent(inout) | :: | Hj(N) | |||
| integer(kind=ip), | intent(inout) | :: | Hk(Nk) | |||
| integer(kind=ip), | intent(inout) | :: | N | |||
| integer(kind=ip), | intent(in) | :: | Nk | |||
| real(kind=rp), | intent(in) | :: | v | |||
| integer(kind=ip), | intent(in) | :: | jv | |||
| integer(kind=ip), | intent(out) | :: | hops |
subroutine Hinsert( Ha, Hj, Hk, N, Nk, v, jv, hops ) integer(ip), intent(in) :: Nk, jv real(rp), intent(in) :: v integer(ip), intent(inout) :: N integer(ip), intent(inout) :: Hj(N), Hk(Nk) real(rp), intent(inout) :: Ha(N) integer(ip), intent(out) :: hops !================================================================== ! Hinsert inserts (v,jv) into heap of length N-1 ! to make heap of length N. ! ! 03 Apr 2002: First version of Hinsert. ! 01 May 2002: Require N to be final length, not old length. ! Need Nk for length of Hk. ! 07 May 2002: Protect input parameters N, Nk. ! 07 May 2002: Current version of Hinsert. ! 12 Dec 2011: First f90 version. !================================================================== integer(ip) :: kk, Nkk, Nnew Nnew = N Nkk = Nk kk = Nnew Ha(Nnew) = v Hj(Nnew) = jv Hk(jv) = Nnew call Hup ( Ha, Hj, Hk, Nnew, Nkk, kk, hops ) end subroutine Hinsert