anchor.diff:       &   acc(1),acc(2),acc(3)
         end if
   cdebug      write(6,*) "From end of residu_f!"
  -cdebug      write(6,*) "btot:",(btot(idb),idb=1,neq)
  -cdebug      write(6,*) "b:",(b(idb),idb=1,neq)
  -cdebug      write(6,*) "bres:",(bres(idb),idb=1,neq)
  -cdebug      write(6,*) "deld:",(deld(idb),idb=1,neq)
  +cdebug      write(6,*) "bextern:",(bextern(idb),idb=1,neq)
  +cdebug      write(6,*) "bintern:",(bintern(idb),idb=1,neq)
  +cdebug      write(6,*) "bresid:",(bresid(idb),idb=1,neq)
  +cdebug      write(6,*) "dispvec:",(dispvec(idb),idb=1,neq)
   800   format(/,
        & '   WARNING!  Apparent divergence in iteration #',i5,'!',//)
   810   format(/,
  
positive.code:       end
  c
  c version
  c $Id: residu.f,v 1.2 2004/07/02 20:44:54 willic3 Exp $
  c
  c Generated automatically by Fortran77Mill on Wed May 21 14:15:03 2003
  c
  
negative.code:       logical debug,div(3)
  c
  cdebug      write(6,*) "Hello from residu_f!"
  cdebug      write(6,*) "bextern:",(bextern(idb),idb=1,neq)
  cdebug      write(6,*) "bintern:",(bintern(idb),idb=1,neq)
  cdebug      write(6,*) "bresid:",(bresid(idb),idb=1,neq)
  cdebug      write(6,*) "dispvec:",(dispvec(idb),idb=1,neq)
  c
        tmp(3)=zero
        debug=(idebug.eq.1).and.(idout.gt.1)
        if(debug) call printv(bresid,bextern,id,idx,neq,numnp,iout,idout,
       & kw)
        ftmp=dnrm2(neq,bresid,ione)
        do i=1,neq
          en=dispvec(i)*bresid(i)
          tmp(3)=tmp(3)+en*en
        end do
        if(nextflag.eq.izero) then
          call fill(bresid,zero,neq)
        else
          call dcopy(neq,bextern,ione,bresid,ione)
        end if
        call daxpy(neq,alpha,bintern,ione,bresid,ione)
        tmp(1)=dnrm2(neq,dispvec,ione)
        tmp(2)=dnrm2(neq,bresid,ione)
        tmp(3)=sqrt(tmp(3))
        if(iter.eq.1) then
          gi(1)=tmp(1)
  