2
* (n, ia,ja, max,v,l, head,last,next, mark,tag, flag)
4
c***********************************************************************
5
c mdi -- initialization
6
c***********************************************************************
7
integer ia(1), ja(1), v(1), l(1), head(1), last(1), next(1),
8
* mark(1), tag, flag, sfs, vi,dvi, vj
10
c----initialize degrees, element lists, and degree lists
17
c----create nonzero structure
18
c----for each nonzero entry a(vi,vj)
22
if (jmin.gt.jmax) go to 6
27
c------if a(vi,vj) is in strict lower triangle
28
c------check for previous occurrence of a(vj,vi)
31
if (kmax .eq. 0) go to 4
34
if (v(lvk).eq.vj) go to 5
36
c----for unentered entries a(vi,vj)
37
4 if (sfs.ge.max) go to 101
39
c------enter vj in element list for vi
40
mark(vi) = mark(vi) + 1
46
c------enter vi in element list for vj
47
mark(vj) = mark(vj) + 1
55
c----create degree lists and initialize mark vector
62
if (nextvi.gt.0) last(nextvi) = vi
67
c ** error- insufficient storage