/* extnam.f -- translated by f2c (version of 3 February 1990  3:36:42).
   You must link the resulting object file with the libraries:
	-lF77 -lI77 -lm -lc   (in that order)
*/

#include "f2c.h"

/* Common Block Declarations */

struct {
    integer ielmnt, isbckt, nsbckt, iunsat, nunsat, itemps, numtem, isens, 
	    nsens, ifour, nfour, ifield, icode, idelim, icolum, insize, 
	    junode, lsbkpt, numbkp, iorder, jmnode, iur, iuc, ilc, ilr, 
	    numoff, isr, nmoffc, iseq, iseq1, neqn, nodevs, ndiag, iswap, 
	    iequa, macins, lvnim1, lx0, lvn, lynl, lyu, lyl, lx1, lx2, lx3, 
	    lx4, lx5, lx6, lx7, ld0, ld1, ltd, imynl, imvn, lcvn, nsnod, 
	    nsmat, nsval, icnod, icmat, icval, loutpt, lpol, lzer, irswpf, 
	    irswpr, icswpf, icswpr, irpt, jcpt, irowno, jcolno, nttbr, nttar, 
	    lvntmp;
} tabinf_;

#define tabinf_1 tabinf_

struct {
    doublereal value[200000];
} blank_;

#define blank_1 blank_

/* Table of constant values */

static integer c__1 = 1;

/*<       subroutine extnam(aname,index) >*/
/* Subroutine */ int extnam_(aname, index)
doublereal *aname;
integer *index;
{
    /* System generated locals */
    integer i_1;

    /* Local variables */
    static doublereal anam;
    extern integer xxor_();
#define nodplc ((integer *)&blank_1)
#define cvalue ((complex *)&blank_1)
    extern /* Subroutine */ int extmem_();

/*<       implicit double precision (a-h,o-z) >*/

/*     this routine adds 'aname' to the list of 'unsatisfied' names (that 
*/
/* is, names which can only be resolved after subcircuit expansion). */

/* spice version 2g.6  sccsid=tabinf 3/15/83 */
/*<       common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem, >*/
/*<      1   isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize, >*/
/*<      2   junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr, >*/
/*<      3   nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1, >*/
/*<      4   lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd, >*/
/*<      5   imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval, >*/
/*<      6   loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt, >*/
/*<      7   irowno,jcolno,nttbr,nttar,lvntmp >*/
/* spice version 2g.6  sccsid=blank 3/15/83 */
/*<       common /blank/ value(200000) >*/
/*<       integer nodplc(64) >*/
/*<       complex cvalue(32) >*/
/*<       equivalence (value(1),nodplc(1),cvalue(1)) >*/
/*<       integer xxor >*/


/*<       anam=aname >*/
    anam = *aname;
/*<       if (nunsat.eq.0) go to 20 >*/
    if (tabinf_1.nunsat == 0) {
	goto L20;
    }
/*<       do 10 index=1,nunsat >*/
    i_1 = tabinf_1.nunsat;
    for (*index = 1; *index <= i_1; ++(*index)) {
/*<       if (xxor(anam,value(iunsat+index)).eq.0) go to 30 >*/
	if (xxor_(&anam, &blank_1.value[tabinf_1.iunsat + *index - 1]) == 0) {

	    goto L30;
	}
/*<    10 continue >*/
/* L10: */
    }

/*<    20 call extmem(iunsat,1) >*/
L20:
    extmem_(&tabinf_1.iunsat, &c__1);
/*<       nunsat=nunsat+1 >*/
    ++tabinf_1.nunsat;
/*<       index=nunsat >*/
    *index = tabinf_1.nunsat;
/*<       value(iunsat+index)=anam >*/
    blank_1.value[tabinf_1.iunsat + *index - 1] = anam;
/*<    30 return >*/
L30:
    return 0;
/*<       end >*/
} /* extnam_ */

#undef cvalue
#undef nodplc


