Dear Prof. Rohlf, last time I did by mistake post an email to the CLASSIFIATION list which was inteneded to be a private email. I hope you will not be too upset with me. It was really a mistake and I'm very sorry about this. Now, I think I have found that problem with the infinite loop in your Fortran code of DSLK: After label 400 there is a call of subroutine MDIS2 which determines a heap array HEAP(NHEAP). Sometimes NHEAP will be zero. However, after calling MDIS2 the content of NHEAP is tested for NHEAP .LT. 0, which can never happen. Since NHEAP can be zero after MDIS2, it must be prevented from entering the code which contains the subroutine calls DRHEAP and DLHEAP. Therefore, when I replace this test by the test for .EQ. 0, your subroutine will run. Sorry for not getting back to your earlier on this issue since I had a number of other things to do. With kind regards, Wolfgang Hartmann