anchor.diff:  
       joc = 0
       DO ic = Nstop, Neqns
  -       Temp(1:Nstop,1:36) = 0.0D0
  -       ks = Xlnzr(ic)
  -       ke = Xlnzr(ic+1) - 1
  -       DO k = ks, ke
  -          jj = Colno(k)
  -          Temp(:,jj) = Zln(:,k)
  -          Indx(jj) = ic
  -       ENDDO
  -       DO k = ks, ke
  -          jj = Colno(k)
  -          CALL INV66(Zln(1,k),Temp,Diag(1,jj))
  -       ENDDO
  -
  -       DO k = ks, ke
  -          jj = Colno(k)
  -          Diag(1,ic) = Diag(1,ic) - Temp(jj,1)*Zln(1,k) - Temp(jj,4)*Zln(4,k) - Temp(jj,7)*Zln(7,k)
  -          Diag(2,ic) = Diag(2,ic) - Temp(jj,1)*Zln(2,k) - Temp(jj,4)*Zln(5,k) - Temp(jj,7)*Zln(8,k)
  -          Diag(3,ic) = Diag(3,ic) - Temp(jj,2)*Zln(2,k) - Temp(jj,5)*Zln(5,k) - Temp(jj,8)*Zln(8,k)
  -          Diag(4,ic) = Diag(4,ic) - Temp(jj,1)*Zln(3,k) - Temp(jj,4)*Zln(6,k) - Temp(jj,7)*Zln(9,k)
  -          Diag(5,ic) = Diag(5,ic) - Temp(jj,2)*Zln(3,k) - Temp(jj,5)*Zln(6,k) - Temp(jj,8)*Zln(9,k)
  -          Diag(6,ic) = Diag(6,ic) - Temp(jj,3)*Zln(3,k) - Temp(jj,6)*Zln(6,k) - Temp(jj,9)*Zln(9,k)
  -       ENDDO
  -       DO jc = Nstop, ic - 1
  -          joc = joc + 1
  -          j1 = Xlnzr(jc)
  -          j2 = Xlnzr(jc+1)
  -          DO jj = Xlnzr(jc), Xlnzr(jc+1) - 1
  -             j = Colno(jj)
  -             IF ( Indx(j)==ic ) THEN
  -                Dsln(1,joc) = Dsln(1,joc) - Temp(j,1)*Zln(1,jj)&
  -                     - Temp(j,4)*Zln(4,jj) - Temp(j,7)&
  -                     *Zln(7,jj)
  -                Dsln(2,joc) = Dsln(2,joc) - Temp(j,2)*Zln(1,jj)&
  -                     - Temp(j,5)*Zln(4,jj) - Temp(j,8)&
  -                     *Zln(7,jj)
  -                Dsln(3,joc) = Dsln(3,joc) - Temp(j,3)*Zln(1,jj)&
  -                     - Temp(j,6)*Zln(4,jj) - Temp(j,9)&
  -                     *Zln(7,jj)
  -                Dsln(4,joc) = Dsln(4,joc) - Temp(j,1)*Zln(2,jj)&
  -                     - Temp(j,4)*Zln(5,jj) - Temp(j,7)&
  -                     *Zln(8,jj)
  -                Dsln(5,joc) = Dsln(5,joc) - Temp(j,2)*Zln(2,jj)&
  -                     - Temp(j,5)*Zln(5,jj) - Temp(j,8)&
  -                     *Zln(8,jj)
  -                Dsln(6,joc) = Dsln(6,joc) - Temp(j,3)*Zln(2,jj)&
  -                     - Temp(j,6)*Zln(5,jj) - Temp(j,9)&
  -                     *Zln(8,jj)
  -                Dsln(7,joc) = Dsln(7,joc) - Temp(j,1)*Zln(3,jj)&
  -                     - Temp(j,4)*Zln(6,jj) - Temp(j,7)&
  -                     *Zln(9,jj)
  -                Dsln(8,joc) = Dsln(8,joc) - Temp(j,2)*Zln(3,jj)&
  -                     - Temp(j,5)*Zln(6,jj) - Temp(j,8)&
  -                     *Zln(9,jj)
  -                Dsln(9,joc) = Dsln(9,joc) - Temp(j,3)*Zln(3,jj)&
  -                     - Temp(j,6)*Zln(6,jj) - Temp(j,9)&
  -                     *Zln(9,jj)
  -             ENDIF
  -          ENDDO
  -       ENDDO
  +      Temp(1:Nstop,1:36) = 0.0D0
  +      ks = Xlnzr(ic)
  +      ke = Xlnzr(ic+1) - 1
  +      DO k = ks, ke
  +        jj = Colno(k)
  +        Temp(:,jj) = Zln(:,k)
  +        Indx(jj) = ic
  +      ENDDO
  +      DO k = ks, ke
  +        jj = Colno(k)
  +        CALL INV66(Zln(1,k),Temp,Diag(1,jj))
  +      ENDDO
  +
  +      DO k = ks, ke
  +        jj = Colno(k)
  +        Diag(1,ic) = Diag(1,ic) - Temp(jj,1)*Zln(1,k) - Temp(jj,4)*Zln(4,k) - Temp(jj,7)*Zln(7,k)
  +        Diag(2,ic) = Diag(2,ic) - Temp(jj,1)*Zln(2,k) - Temp(jj,4)*Zln(5,k) - Temp(jj,7)*Zln(8,k)
  +        Diag(3,ic) = Diag(3,ic) - Temp(jj,2)*Zln(2,k) - Temp(jj,5)*Zln(5,k) - Temp(jj,8)*Zln(8,k)
  +        Diag(4,ic) = Diag(4,ic) - Temp(jj,1)*Zln(3,k) - Temp(jj,4)*Zln(6,k) - Temp(jj,7)*Zln(9,k)
  +        Diag(5,ic) = Diag(5,ic) - Temp(jj,2)*Zln(3,k) - Temp(jj,5)*Zln(6,k) - Temp(jj,8)*Zln(9,k)
  +        Diag(6,ic) = Diag(6,ic) - Temp(jj,3)*Zln(3,k) - Temp(jj,6)*Zln(6,k) - Temp(jj,9)*Zln(9,k)
  +      ENDDO
  +      DO jc = Nstop, ic - 1
  +        joc = joc + 1
  +        j1 = Xlnzr(jc)
  +        j2 = Xlnzr(jc+1)
  +        DO jj = Xlnzr(jc), Xlnzr(jc+1) - 1
  +          j = Colno(jj)
  +          IF ( Indx(j)==ic ) THEN
  +            Dsln(1,joc) = Dsln(1,joc) - Temp(j,1)*Zln(1,jj) - Temp(j,4)*Zln(4,jj) - Temp(j,7)*Zln(7,jj)
  +            Dsln(2,joc) = Dsln(2,joc) - Temp(j,2)*Zln(1,jj) - Temp(j,5)*Zln(4,jj) - Temp(j,8)*Zln(7,jj)
  +            Dsln(3,joc) = Dsln(3,joc) - Temp(j,3)*Zln(1,jj) - Temp(j,6)*Zln(4,jj) - Temp(j,9)*Zln(7,jj)
  +
  +            Dsln(4,joc) = Dsln(4,joc) - Temp(j,1)*Zln(2,jj) - Temp(j,4)*Zln(5,jj) - Temp(j,7)*Zln(8,jj)
  +            Dsln(5,joc) = Dsln(5,joc) - Temp(j,2)*Zln(2,jj) - Temp(j,5)*Zln(5,jj) - Temp(j,8)*Zln(8,jj)
  +            Dsln(6,joc) = Dsln(6,joc) - Temp(j,3)*Zln(2,jj) - Temp(j,6)*Zln(5,jj) - Temp(j,9)*Zln(8,jj)
  +
  +            Dsln(7,joc) = Dsln(7,joc) - Temp(j,1)*Zln(3,jj) - Temp(j,4)*Zln(6,jj) - Temp(j,7)*Zln(9,jj)
  +            Dsln(8,joc) = Dsln(8,joc) - Temp(j,2)*Zln(3,jj) - Temp(j,5)*Zln(6,jj) - Temp(j,8)*Zln(9,jj)
  +            Dsln(9,joc) = Dsln(9,joc) - Temp(j,3)*Zln(3,jj) - Temp(j,6)*Zln(6,jj) - Temp(j,9)*Zln(9,jj)
  +          ENDIF
  +        ENDDO
  +      ENDDO
       ENDDO
     END SUBROUTINE S6UM2
   
  
positive.code:     !
      ALLOCATE (ZPIv(NEQns),STAT=IERror)
      IF ( IERror/=0 ) STOP "ALLOCATION ERROR, zpiv: SUB. matini"
      !ialoc = ialoc + neqns
      CALL ZPIVOT(NEQns,neqnsz,NTTbr,JCOl,IROw,ZPIv,ir1)
      IF ( ir1/=0 ) THEN
         Ir = ir1
         RETURN
      ENDIF
  
      !
  
negative.code: 200 nump1 = num + 1
      IF ( nump1>search ) search = nump1
      DO j = search, Neqns
        node = Perm(j)
        IF ( Marker(node)>=0 ) THEN
          ndeg = Deg(node)
          IF ( ndeg<=thresh ) GOTO 300
          IF ( ndeg<mindeg ) mindeg = ndeg
        ENDIF
      ENDDO
      GOTO 100
  
  