ngspice/src/ciderlib/input/modlset.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 );
}