91 lines
2.1 KiB
C
91 lines
2.1 KiB
C
/**********
|
|
Copyright 1992 Regents of the University of California. All rights reserved.
|
|
Author: 1992 David A. Gates, U. C. Berkeley CAD Group
|
|
Modified: 2001 Paolo Nenzi
|
|
**********/
|
|
|
|
#include "ngspice/ngspice.h"
|
|
#include "ngspice/cktdefs.h"
|
|
#include "ngspice/modldefs.h"
|
|
#include "ngspice/sperror.h"
|
|
#include "ngspice/suffix.h"
|
|
|
|
extern int MODLcheck( MODLcard * );
|
|
extern int MODLsetup( MODLcard * );
|
|
|
|
/*
|
|
* Name: MODLcheck
|
|
* Purpose: checks a list of MODLcards for input errors, sets defaults
|
|
* Formals: cardList: the list to check
|
|
* Returns: OK/E_PRIVATE
|
|
* Users: numerical device setup routines
|
|
* Calls: error message handler
|
|
*/
|
|
int
|
|
MODLcheck(MODLcard *cardList)
|
|
{
|
|
MODLcard *card;
|
|
int cardNum = 0;
|
|
|
|
for ( card = cardList; card != NIL(MODLcard); card = card->MODLnextCard ) {
|
|
cardNum++;
|
|
|
|
if ( !card->MODLbandGapNarrowingGiven ) {
|
|
card->MODLbandGapNarrowing = FALSE;
|
|
}
|
|
if ( !card->MODLtempDepMobilityGiven ) {
|
|
card->MODLtempDepMobility = FALSE;
|
|
}
|
|
if ( !card->MODLconcDepMobilityGiven ) {
|
|
card->MODLconcDepMobility = FALSE;
|
|
}
|
|
if ( !card->MODLfieldDepMobilityGiven ) {
|
|
card->MODLfieldDepMobility = FALSE;
|
|
}
|
|
if ( !card->MODLtransDepMobilityGiven ) {
|
|
card->MODLtransDepMobility = FALSE;
|
|
}
|
|
if ( !card->MODLsurfaceMobilityGiven ) {
|
|
card->MODLsurfaceMobility = FALSE;
|
|
}
|
|
if ( !card->MODLmatchingMobilityGiven ) {
|
|
card->MODLmatchingMobility = FALSE;
|
|
}
|
|
if ( !card->MODLsrhGiven ) {
|
|
card->MODLsrh = FALSE;
|
|
}
|
|
if ( !card->MODLconcDepLifetimeGiven ) {
|
|
card->MODLconcDepLifetime = FALSE;
|
|
}
|
|
if ( !card->MODLaugerGiven ) {
|
|
card->MODLauger = FALSE;
|
|
}
|
|
if ( !card->MODLavalancheGenGiven ) {
|
|
card->MODLavalancheGen = FALSE;
|
|
}
|
|
}
|
|
return(OK);
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
* Name: MODLsetup
|
|
* Purpose: setup the physical models used
|
|
* Formals: cardList: list of cards to setup
|
|
* Returns: OK/E_PRIVATE
|
|
* Users: numerical devices
|
|
* Calls: MODLcheck
|
|
*/
|
|
int
|
|
MODLsetup(MODLcard *cardList)
|
|
{
|
|
int error;
|
|
|
|
/* Check the card list */
|
|
if ((error = MODLcheck( cardList )) != 0) return( error );
|
|
|
|
/* Nothing else to do. */
|
|
return( OK );
|
|
}
|