/* dmpmat.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 atime, aprog[3], adate, atitle[10], defl, defw, defad, defas, 
	    rstats[50];
    integer iwidth, lwidth, nopage;
} miscel_;

#define miscel_1 miscel_

struct {
    doublereal achar, afield[15], oldlin[15];
    integer kntrc, kntlim;
} line_;

#define line_1 line_

struct {
    integer locate[50], jelcnt[50], nunods, ncnods, numnod, nstop, nut, nlt, 
	    nxtrm, ndist, ntlin, ibr, numvs, numalt, numcyc;
} cirdat_;

#define cirdat_1 cirdat_

struct {
    doublereal vto, beta, gamma, phi, phib, cox, xnsub, xnfs, xd, xj, xld, 
	    xlamda, uo, uexp, vbp, utra, vmax, xneff, xl, xw, vbi, von, vdsat,
	     qspof, beta0, beta1, cdrain, xqco, xqc, fnarrw, fshort;
    integer lev;
} mosarg_;

#define mosarg_1 mosarg_

struct {
    doublereal omega, time, delta, delold[7], ag[7], vt, xni, egfet, xmu, 
	    sfactr;
    integer mode, modedc, icalc, initf, method, iord, maxord, noncon, iterno, 
	    itemno, nosolv, modac, ipiv, ivmflg, ipostp, iscrch, iofile;
} status_;

#define status_1 status_

struct {
    integer iprnta, iprntl, iprntm, iprntn, iprnto, limtim, limpts, lvlcod, 
	    lvltim, itl1, itl2, itl3, itl4, itl5, itl6, igoof, nogo, keof;
} flags_;

#define flags_1 flags_

struct {
    doublereal twopi, xlog2, xlog10, root2, rad, boltz, charge, ctok, gmin, 
	    reltol, abstol, vntol, trtol, chgtol, eps0, epssil, epsox, pivtol,
	     pivrel;
} knstnt_;

#define knstnt_1 knstnt_

struct {
    doublereal cpyknt;
    integer istack[1], lorg, icore, maxcor, maxuse, memavl, ldval, numblk, 
	    loctab, ltab, ifwa, nwoff, ntab, maxmem, memerr, nwd4, nwd8, 
	    nwd16;
} memmgr_;

#define memmgr_1 memmgr_

struct {
    doublereal tcstar[2], tcstop[2], tcincr[2];
    integer icvflg, itcelm[2], kssop, kinel, kidin, kovar, kidout;
} dc_;

#define dc_1 dc_

struct {
    doublereal fstart, fstop, fincr, skw2, refprl, spw2;
    integer jacflg, idfreq, inoise, nosprt, nosout, nosin, idist, idprt;
} ac_;

#define ac_1 ac_

struct {
    doublereal tstep, tstop, tstart, delmax, tdmax, forfre;
    integer jtrflg;
} tran_;

#define tran_1 tran_

struct {
    doublereal xincr, string[15], xstart, yvar[8];
    integer itab[8], itype[8], ilogy[8], npoint, numout, kntr, numdgt;
} outinf_;

#define outinf_1 outinf_

struct {
    integer maxtim, itime, icost;
} cje_;

#define cje_1 cje_

struct {
    integer idebug[20];
} debug_;

#define debug_1 debug_

struct {
    doublereal value[200000];
} blank_;

#define blank_1 blank_

/* Table of constant values */

static integer c__1 = 1;

/*<       subroutine dmpmat(anam) >*/
/* Subroutine */ int dmpmat_(anam)
doublereal *anam;
{
    /* Format strings */
    static char fmt_10[] = "(\0020*debug*:  dmpmt called by \002,a8,/,\002 *\
debug*:  mode, mdc, time, delta, icalc, itr#, initf,\002,\002 piv, ord, ncon\
, igoof, nogo =\002,/,\002 *debug*:  \002,2i5,1p2d10.2,8i5)";
    static char fmt_16[] = "(\002 *debug*:  nstop, nttbr, size(irpt) = \002,\
3i6,/,\002 *debug*:   index  irpt  irow  jcol  jcpt       value\002,10x,\002\
 index  irpt  irow  jcol  jcpt       value\002)";
    static char fmt_26[] = 
	    "(\002 *debug*:  \002,5i6,1pd12.4,10x,5i6,1pd12.4)";
    static char fmt_71[] = "(\002 *debug*:  irswpf = \002,18i6)";
    static char fmt_76[] = "(\002 *debug*:  irswpr = \002,18i6)";
    static char fmt_81[] = "(\002 *debug*:  icswpf = \002,18i6)";
    static char fmt_86[] = "(\002 *debug*:  icswpr = \002,18i6)";

    /* System generated locals */
    integer i_1;

    /* Builtin functions */
    integer s_wsfe(), do_fio(), e_wsfe();

    /* Local variables */
    static integer i, j, irpts, istop;
#define nodplc ((integer *)&blank_1)
#define cvalue ((complex *)&blank_1)
    extern /* Subroutine */ int dmpmem_(), sizmem_();

    /* Fortran I/O blocks */
    static cilist io__3 = { 0, 0, 0, fmt_10, 0 };
    static cilist io__5 = { 0, 0, 0, fmt_16, 0 };
    static cilist io__9 = { 0, 0, 0, fmt_26, 0 };
    static cilist io__10 = { 0, 0, 0, fmt_71, 0 };
    static cilist io__11 = { 0, 0, 0, fmt_76, 0 };
    static cilist io__12 = { 0, 0, 0, fmt_81, 0 };
    static cilist io__13 = { 0, 0, 0, fmt_86, 0 };


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

/*      this routine dumps out the matrix and associated pointers. */

/* 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=miscel 3/15/83 */
/*<       common /miscel/ atime,aprog(3),adate,atitle(10),defl,defw,defad, >*/
/*<      1  defas,rstats(50),iwidth,lwidth,nopage >*/
/* spice version 2g.6  sccsid=line 3/15/83 */
/*<       common /line/ achar,afield(15),oldlin(15),kntrc,kntlim >*/
/* spice version 2g.6  sccsid=cirdat 3/15/83 */
/*<       common /cirdat/ locate(50),jelcnt(50),nunods,ncnods,numnod,nstop, >*/
/*<      1   nut,nlt,nxtrm,ndist,ntlin,ibr,numvs,numalt,numcyc >*/
/* spice version 2g.6  sccsid=mosarg 3/15/83 */
/*<       common /mosarg/ vto,beta,gamma,phi,phib,cox,xnsub,xnfs,xd,xj,xld, >*/
/*<      1   xlamda,uo,uexp,vbp,utra,vmax,xneff,xl,xw,vbi,von,vdsat,qspof, >*/
/*<      2   beta0,beta1,cdrain,xqco,xqc,fnarrw,fshort,lev >*/
/* spice version 2g.6  sccsid=status 3/15/83 */
/*<       common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet, >*/
/*<      1   xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon, >*/
/*<      2   iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile >*/
/* spice version 2g.6  sccsid=flags 3/15/83 */
/*<       common /flags/ iprnta,iprntl,iprntm,iprntn,iprnto,limtim,limpts, >*/
/*<      1   lvlcod,lvltim,itl1,itl2,itl3,itl4,itl5,itl6,igoof,nogo,keof >*/
/* spice version 2g.6  sccsid=knstnt 3/15/83 */
/*<       common /knstnt/ twopi,xlog2,xlog10,root2,rad,boltz,charge,ctok, >*/
/*<      1   gmin,reltol,abstol,vntol,trtol,chgtol,eps0,epssil,epsox, >*/
/*<      2   pivtol,pivrel >*/
/* spice version 2g.6  sccsid=memmgr 3/15/83 */
/*<       common /memmgr/ cpyknt,istack(1),lorg,icore,maxcor,maxuse,memavl, >*/
/*<      1   ldval,numblk,loctab,ltab,ifwa,nwoff,ntab,maxmem,memerr,nwd4, >*/
/*<      2   nwd8,nwd16 >*/
/* spice version 2g.6  sccsid=dc 3/15/83 */
/*<       common /dc/ tcstar(2),tcstop(2),tcincr(2),icvflg,itcelm(2),kssop, >*/
/*<      1   kinel,kidin,kovar,kidout >*/
/* spice version 2g.6  sccsid=ac 3/15/83 */
/*<       common /ac/ fstart,fstop,fincr,skw2,refprl,spw2,jacflg,idfreq, >*/
/*<      1   inoise,nosprt,nosout,nosin,idist,idprt >*/
/* spice version 2g.6  sccsid=tran 3/15/83 */
/*<       common /tran/ tstep,tstop,tstart,delmax,tdmax,forfre,jtrflg >*/
/* spice version 2g.6  sccsid=outinf 3/15/83 */
/*<       common /outinf/ xincr,string(15),xstart,yvar(8),itab(8),itype(8), >*/
/*<      1   ilogy(8),npoint,numout,kntr,numdgt >*/
/* spice version 2g.6  sccsid=cje 3/15/83 */
/*<       common /cje/ maxtim,itime,icost >*/
/* spice version 2g.6  sccsid=debug 3/15/83 */
/*<       common/debug/ idebug(20) >*/
/* 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)) >*/


/*<       write (iofile,10) anam,mode,modedc, >*/
/*<      1 time,delta,icalc,iterno,initf,ipiv,iord,noncon,igoof,nogo >*/
    io__3.ciunit = status_1.iofile;
    s_wsfe(&io__3);
    do_fio(&c__1, (char *)&(*anam), (ftnlen)sizeof(doublereal));
    do_fio(&c__1, (char *)&status_1.mode, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&status_1.modedc, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&status_1.time, (ftnlen)sizeof(doublereal));
    do_fio(&c__1, (char *)&status_1.delta, (ftnlen)sizeof(doublereal));
    do_fio(&c__1, (char *)&status_1.icalc, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&status_1.iterno, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&status_1.initf, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&status_1.ipiv, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&status_1.iord, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&status_1.noncon, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&flags_1.igoof, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&flags_1.nogo, (ftnlen)sizeof(integer));
    e_wsfe();
/*<    10 format('0*debug*:  dmpmt called by ',a8,/, >*/
/*<      1   ' *debug*:  mode, mdc, time, delta, icalc, itr#, initf,', >*/
/*<      2             ' piv, ord, ncon, igoof, nogo =',/, >*/
/*<      3   ' *debug*:  ',2i5,1p2d10.2,8i5) >*/
/*<       call dmpmem(5hdmpmt) >*/
    dmpmem_("dmpmt", 5L);

/*  dump out the *whole* thing */

/*<       call sizmem(irpt,irpts) >*/
    sizmem_(&tabinf_1.irpt, &irpts);
/*<       write (iofile,16) nstop,nttbr,irpts >*/
    io__5.ciunit = status_1.iofile;
    s_wsfe(&io__5);
    do_fio(&c__1, (char *)&cirdat_1.nstop, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&tabinf_1.nttbr, (ftnlen)sizeof(integer));
    do_fio(&c__1, (char *)&irpts, (ftnlen)sizeof(integer));
    e_wsfe();
/*<    16 format(' *debug*:  nstop, nttbr, size(irpt) = ',3i6,/, >*/
/*<      1   ' *debug*:   index  irpt  irow  jcol  jcpt       value', >*/
/*<      2          10x,' index  irpt  irow  jcol  jcpt       value') >*/
/*<       j=(irpts+1)/2 >*/
    j = (irpts + 1) / 2;
/*<       istop=j >*/
    istop = j;
/*<       do 30 i=1,istop >*/
    i_1 = istop;
    for (i = 1; i <= i_1; ++i) {
/*<       j=j+1 >*/
	++j;
/*<       write (iofile,26) >*/
/*<      1   i,nodplc(irpt+i),nodplc(irowno+i),nodplc(jcolno+i), >*/
/*<      2   nodplc(jcpt+i),value(lvn+i), >*/
/*<      3   j,nodplc(irpt+j),nodplc(irowno+j),nodplc(jcolno+j), >*/
/*<      4   nodplc(jcpt+j),value(lvn+j) >*/
	io__9.ciunit = status_1.iofile;
	s_wsfe(&io__9);
	do_fio(&c__1, (char *)&i, (ftnlen)sizeof(integer));
	do_fio(&c__1, (char *)&nodplc[tabinf_1.irpt + i - 1], (ftnlen)sizeof(
		integer));
	do_fio(&c__1, (char *)&nodplc[tabinf_1.irowno + i - 1], (ftnlen)
		sizeof(integer));
	do_fio(&c__1, (char *)&nodplc[tabinf_1.jcolno + i - 1], (ftnlen)
		sizeof(integer));
	do_fio(&c__1, (char *)&nodplc[tabinf_1.jcpt + i - 1], (ftnlen)sizeof(
		integer));
	do_fio(&c__1, (char *)&blank_1.value[tabinf_1.lvn + i - 1], (ftnlen)
		sizeof(doublereal));
	do_fio(&c__1, (char *)&j, (ftnlen)sizeof(integer));
	do_fio(&c__1, (char *)&nodplc[tabinf_1.irpt + j - 1], (ftnlen)sizeof(
		integer));
	do_fio(&c__1, (char *)&nodplc[tabinf_1.irowno + j - 1], (ftnlen)
		sizeof(integer));
	do_fio(&c__1, (char *)&nodplc[tabinf_1.jcolno + j - 1], (ftnlen)
		sizeof(integer));
	do_fio(&c__1, (char *)&nodplc[tabinf_1.jcpt + j - 1], (ftnlen)sizeof(
		integer));
	do_fio(&c__1, (char *)&blank_1.value[tabinf_1.lvn + j - 1], (ftnlen)
		sizeof(doublereal));
	e_wsfe();
/*<    26 format(' *debug*:  ',5i6,1pd12.4,10x,5i6,1pd12.4) >*/
/*<    30 continue >*/
/* L30: */
    }
/* c 51 format(" *debug*:  irpt   = ",18i6) */
/* c    write (iofile,56) (nodplc(irowno+i),i=1,irpts) */
/* c 56 format(" *debug*:  irowno = ",18i6) */
/* c    write (iofile,61) (nodplc(jcolno+i),i=1,irpts) */
/* c 61 format(" *debug*:  jcolno = ",18i6) */
/* c    write (iofile,66) (nodplc(jcpt  +i),i=1,irpts) */
/* c 66 format(" *debug*:  jcpt   = ",18i6) */
/*<       write (iofile,71) (nodplc(irswpf+i),i=1,nstop) >*/
    io__10.ciunit = status_1.iofile;
    s_wsfe(&io__10);
    i_1 = cirdat_1.nstop;
    for (i = 1; i <= i_1; ++i) {
	do_fio(&c__1, (char *)&nodplc[tabinf_1.irswpf + i - 1], (ftnlen)
		sizeof(integer));
    }
    e_wsfe();
/*<    71 format(' *debug*:  irswpf = ',18i6) >*/
/*<       write (iofile,76) (nodplc(irswpr+i),i=1,nstop) >*/
    io__11.ciunit = status_1.iofile;
    s_wsfe(&io__11);
    i_1 = cirdat_1.nstop;
    for (i = 1; i <= i_1; ++i) {
	do_fio(&c__1, (char *)&nodplc[tabinf_1.irswpr + i - 1], (ftnlen)
		sizeof(integer));
    }
    e_wsfe();
/*<    76 format(' *debug*:  irswpr = ',18i6) >*/
/*<       write (iofile,81) (nodplc(icswpf+i),i=1,nstop) >*/
    io__12.ciunit = status_1.iofile;
    s_wsfe(&io__12);
    i_1 = cirdat_1.nstop;
    for (i = 1; i <= i_1; ++i) {
	do_fio(&c__1, (char *)&nodplc[tabinf_1.icswpf + i - 1], (ftnlen)
		sizeof(integer));
    }
    e_wsfe();
/*<    81 format(' *debug*:  icswpf = ',18i6) >*/
/*<       write (iofile,86) (nodplc(icswpr+i),i=1,nstop) >*/
    io__13.ciunit = status_1.iofile;
    s_wsfe(&io__13);
    i_1 = cirdat_1.nstop;
    for (i = 1; i <= i_1; ++i) {
	do_fio(&c__1, (char *)&nodplc[tabinf_1.icswpr + i - 1], (ftnlen)
		sizeof(integer));
    }
    e_wsfe();
/*<    86 format(' *debug*:  icswpr = ',18i6) >*/


/*<   500 return >*/
/* L500: */
    return 0;
/*<       end >*/
} /* dmpmat_ */

#undef cvalue
#undef nodplc


