⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contset.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/**********Copyright 1991 Regents of the University of California.  All rights reserved.Author:	1991 David A. Gates, U. C. Berkeley CAD Group**********/#include "spice.h"#include <stdio.h>#include <math.h>#include "const.h"#include "util.h"#include "cktdefs.h"#include "nummacs.h"#include "contdefs.h"#include "meshext.h"#include "gendev.h"#include "sperror.h"#include "suffix.h"#ifdef __STDC__extern int CONTcheck( CONTcard * );extern int CONTsetup( CONTcard *, ELCTelectrode * );#elseextern int CONTcheck();extern int CONTsetup();#endif /* STDC *//* * Name:	CONTcheck * Purpose:	checks a list of CONTcards for input errors * Formals:	cardList: the list to check * Returns:	OK/E_PRIVATE * Users:	 numerical device setup routines * Calls:	error message handler */intCONTcheck( cardList )CONTcard *cardList;{  register CONTcard *card;  int cardNum = 0;  int error = OK;  char ebuf[512];		/* error message buffer */  for ( card = cardList; card != NIL(CONTcard); card = card->CONTnextCard ) {    cardNum++;    if (!card->CONTnumberGiven) {      sprintf( ebuf,	  "contact card %d is missing an electrode index",	  cardNum );      SPfrontEnd->IFerror( ERR_WARNING, ebuf, NIL(IFuid) );      error = E_PRIVATE;    }/* Return now if anything has failed */    if (error) return(error);  }  return(OK);}/* * Name:	CONTsetup * Purpose:	copies information from list of CONTcard's to ELCTelectrode's * Formals:	cardList: list of cards to setup *		electrodeList: previously built list of ELCTelectrode's * Returns:	OK/E_PRIVATE * Users:	 numerical devices * Calls:	CONTcheck */intCONTsetup( cardList, electrodeList )CONTcard *cardList;ELCTelectrode *electrodeList;{  register CONTcard *card;  ELCTelectrode *electrode;  int error;/* Check the card list */  if (error = CONTcheck( cardList )) return( error );  for ( card = cardList; card != NIL(CONTcard); card = card->CONTnextCard ) {    /* Copy workfunction to all matching electrodes */    for ( electrode = electrodeList; electrode != NIL(ELCTelectrode);	electrode = electrode->next ) {      if ( card->CONTnumber == electrode->id ) {	if ( card->CONTworkfunGiven ) {	  electrode->workf = card->CONTworkfun;	} else {	  electrode->workf = 4.10 /* electron volts */;	}      }    }  }  return( OK );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -