#                                        Ren-Cang Li, June 1, 1996
#                                        na.rcli@na-net.ornl.gov

c7fixed:=proc(x:vector,c7)
    local fvect, F7, niter, err, myeps, i, j;
    fvect:=vector(7): F7:=matrix(7,7): niter:=0:
    #
    err:=1: niter:=0: myeps:=10^(-Digits+20):
    #
    while err > myeps and niter <= 100 do
        niter:=niter+1:
        for i from 1 to 7 do
            fvect[i]:=subs(c[1]=x[1],c[2]=x[2],c[3]=x[3],c[4]=x[4],
                           c[5]=x[5],c[6]=x[6],c[7]=c7,c[8]=x[7],f[i]):
            for j from 1 to 6 do
                F7[i,j]:=subs(c[1]=x[1],c[2]=x[2],c[3]=x[3],c[4]=x[4],
                           c[5]=x[5],c[6]=x[6],c[7]=c7,c[8]=x[7],g[i][j]):
            od:
        od: 
        #
        for i from 1 to 7 do
            F7[i,7]:=subs(c[1]=x[1],c[2]=x[2],c[3]=x[3],c[4]=x[4],
                          c[5]=x[5],c[6]=x[6],c[7]=c7,c[8]=x[7],g[i][8]):
        od:
        err:=norm(fvect): 
        x:= evalm(x-inverse(F7) &* fvect):
    od:
    if niter>100 then
       print(`In c7fixed: Over 100 iterations`):
    fi:
end:
