        SUBROUTINE  MDU
     *     (EK,DMIN, V,L, HEAD,LAST,NEXT, MARK)                           OD 517
        INTEGER  EK, DMIN,  V(1), L(1),  HEAD(1), LAST(1), NEXT(1),       OD 518
     *     MARK(1),  TAG, VI,EVI,DVI, S,VS,ES, B,VB, ILP,ILPMAX,          OD 519
     *     BLP,BLPMAX                                                     OD 520
        EQUIVALENCE  (VS, ES)                                             OD 521
C                                                                         OD 522
C----INITIALIZE TAG                                                       OD 523
        TAG = MARK(EK) - LAST(EK)                                         OD 524
C                                                                         OD 525
C----FOR EACH VERTEX VI IN EK                                             OD 526
        I = EK                                                            OD 527
        ILPMAX = LAST(EK)                                                 OD 528
        IF (ILPMAX.LE.0)  GO TO 11                                        OD 529
        DO 10 ILP=1,ILPMAX                                                OD 530
          I = L(I)                                                        OD 531
          VI = V(I)                                                       OD 532
          IF (LAST(VI))  1, 10, 8                                         OD 533
C                                                                         OD 534
C------IF VI NEITHER PROTOTYPE NOR DUPLICATE VERTEX, THEN MERGE ELEMENTS  OD 535
C------TO COMPUTE DEGREE                                                  OD 536
   1        TAG = TAG + 1                                                 OD 537
            DVI = LAST(EK)                                                OD 538
C                                                                         OD 539
C--------FOR EACH VERTEX/ELEMENT VS/ES IN ELEMENT LIST OF VI              OD 540
            S = L(VI)                                                     OD 541
   2        S = L(S)                                                      OD 542
            IF (S.EQ.0)  GO TO 9                                          OD 543
              VS = V(S)                                                   OD 544
              IF (NEXT(VS).LT.0)  GO TO 3                                 OD 545
C                                                                         OD 546
C----------IF VS IS UNELIMINATED VERTEX, THEN TAG AND ADJUST DEGREE       OD 547
                MARK(VS) = TAG                                            OD 548
                DVI = DVI + 1                                             OD 549
                GO TO 5                                                   OD 550
C                                                                         OD 551
C----------IF ES IS ACTIVE ELEMENT, THEN EXPAND                           OD 552
C------------CHECK FOR OUTMATCHED VERTEX                                  OD 553
   3            IF (MARK(ES).LT.0)  GO TO 6                               OD 554
C                                                                         OD 555
C------------FOR EACH VERTEX VB IN ES                                     OD 556
                B = ES                                                    OD 557
                BLPMAX = LAST(ES)                                         OD 558
                DO 4 BLP=1,BLPMAX                                         OD 559
                  B = L(B)                                                OD 560
                  VB = V(B)                                               OD 561
C                                                                         OD 562
C--------------IF VB IS UNTAGGED, THEN TAG AND ADJUST DEGREE              OD 563
                  IF (MARK(VB).GE.TAG)  GO TO 4                           OD 564
                    MARK(VB) = TAG                                        OD 565
                    DVI = DVI + 1                                         OD 566
   4              CONTINUE                                                OD 567
C                                                                         OD 568
   5          GO TO 2                                                     OD 569
C                                                                         OD 570
C------ELSE IF VI IS OUTMATCHED VERTEX, THEN ADJUST OVERLAPS BUT DO NOT   OD 571
C------COMPUTE DEGREE                                                     OD 572
   6        LAST(VI) = 0                                                  OD 573
            MARK(ES) = MARK(ES) - 1                                       OD 574
   7        S = L(S)                                                      OD 575
            IF (S.EQ.0)  GO TO 10                                         OD 576
              ES = V(S)                                                   OD 577
              IF (MARK(ES).LT.0)  MARK(ES) = MARK(ES) - 1                 OD 578
              GO TO 7                                                     OD 579
C                                                                         OD 580
C------ELSE IF VI IS PROTOTYPE VERTEX, THEN CALCULATE DEGREE BY           OD 581
C------INCLUSION/EXCLUSION AND RESET OVERLAP COUNT                        OD 582
   8        EVI = LAST(VI)                                                OD 583
            DVI = LAST(EK) + LAST(EVI) + MARK(EVI)                        OD 584
            MARK(EVI) = 0                                                 OD 585
C                                                                         OD 586
C------INSERT VI IN APPROPRIATE DEGREE LIST                               OD 587
   9      NEXT(VI) = HEAD(DVI)                                            OD 588
          HEAD(DVI) = VI                                                  OD 589
          LAST(VI) = -DVI                                                 OD 590
          IF (NEXT(VI).GT.0)  LAST(NEXT(VI)) = VI                         OD 591
          IF (DVI.LT.DMIN)  DMIN = DVI                                    OD 592
C                                                                         OD 593
  10      CONTINUE                                                        OD 594
C                                                                         OD 595
  11    RETURN                                                            OD 596
        END                                                               OD 597
