<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
     Written by Laurent Lemaitre - r29173@users.sourceforge.net
     Documentation:
       http://sourceforge.net/docman/display_doc.php?docid=18993&group_id=84289
     Target Interface: ngspice
     Supported by adms-1.x.x
     This file is used by adms - http://sourceforge.net/projects/mot-adms.
     adms is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation; either version 2 of the License, or
     (at your option) any later version.
     adms is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
     You should have received a copy of the GNU General Public License
     along with adms; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-->

<!DOCTYPE admst SYSTEM "admst.dtd">
<admst version="2.3.0" xmlns:admst="http://mot-adms.sourceforge.net/xml-files/admst">

<admst:template match="code">
<admst:variable name="module" select="%(attribute[name='ngspicename']/value)"/>

#include &quot;ngspice/ngspice.h&quot;
#include &quot;$(module)defs.h&quot;
#include &quot;ngspice/cktdefs.h&quot;
#include &quot;ngspice/iferrmsg.h&quot;
#include &quot;ngspice/noisedef.h&quot;
#include &quot;ngspice/suffix.h&quot;

extern void   NevalSrc();
extern double Nintegrate();

static char* $(module)nNames []= {
<admst:text select="contribution[flickernoise='yes']" format="&quot;&quot;,"/>
<admst:text select="contribution[whitenoise='yes']" format="&quot;&quot;,"/>
<admst:text format="&quot;&quot;"/>
};

int
$(module)noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens)
{
  $(module)model *firstModel = ($(module)model *) genmodel;
  $(module)model *model;
  $(module)instance *inst;
  for (model=firstModel; model != NULL; model=model-&gt;$(module)nextModel)
  {
    for (inst=model-&gt;$(module)instances; inst != NULL; inst=inst->$(module)nextInstance)
    {
      switch (operation)
      {
        case N_OPEN:
          break;
        case N_CALC:
          switch (mode)
          {
            case N_DENS:
              break;
            case INT_NOIZ:
              break;
          }
          break;
        case N_CLOSE:
          return (OK);
          break;
      }
    }
  }
  return(OK);
}
</admst:template>

<admst:for-each select="/module">
  <admst:open file="%(attribute[name='ngspicename']/value)noise.c">
    <admst:text format="/***\n*** Interface: %(/simulator/package_string)\n"/>
    <admst:text format=" *** created by: %(/simulator/fullname) - %(/simulator/currentdate) ***/\n"/>
    <admst:apply-templates select="." match="code"/>
  </admst:open>
  <admst:message format="%(attribute[name='ngspicename']/value)noise.c: file created\n"/>
</admst:for-each>

</admst>
