46 if (strcmp(token,
".model") == 0) {
54 if ( (strcmp(token,
".width") == 0) ||
55 (strcmp(token,
".print") == 0) ||
56 (strcmp(token,
".plot" ) == 0) ) {
58 LITERR(
"Obsolete control card - ignored.")
63 if (strcmp(token,".temp") == 0) {
66 LITERR(
".TEMP card obsolete - use .options TEMP and TNOM.")
71 if ( (strcmp(token,".four") == 0) ||
72 (strcmp(token,".fourier") == 0) ) {
75 LITERR(
"Use fourier command to obtain fourier analysis.")
80 if (strcmp(token,".nodeset") == 0) {
86 if (strcmp(prm->
keyword,
"nodeset") == 0) {
92 LITERR(
"Nodeset unknown to simulator.")
98 if (*name == 0)
break;
99 length = strlen(name);
100 if ((*name ==
'V' || *(name) ==
'v') && (length == 1)) {
108 LITERR(".NODESET syntax error.")
114 if (strcmp(token,".ic") == 0) {
120 if (strcmp(prm->
keyword,
"ic") == 0) {
126 LITERR(
"IC unknown to simulator.")
132 if (*name == 0)
break;
133 length = strlen(name);
134 if ((*name ==
'V' || *(name) ==
'v') && (length == 1)) {
142 LITERR(".IC syntax error.")
148 if (strcmp(token,".
op") == 0) {
153 LITERR(
"DC operating point analysis unsupported.")
156 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
160 if (strcmp(token,".tran") == 0) {
165 LITERR(
"Transient analysis unsupported.")
168 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
172 if (strcmp(token,".dc") == 0) {
178 LITERR(
"DC transfer curve analysis unsupported.")
181 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
185 if (strcmp(token,".tf") == 0) {
191 LITERR(
"DC Transfer function analysis unsupported.")
194 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
198 if (strcmp(token,".ac") == 0) {
203 LITERR(
"AC small signal analysis unsupported.")
206 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
210 if (strcmp(token,".pz") == 0) {
215 LITERR(
"Pole-zero analysis unsupported.")
218 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
222 if (strcmp(token,".disto") == 0) {
227 LITERR(
"Small signal distortion analysis unsupported.")
230 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
234 if (strcmp(token,".noise") == 0) {
239 LITERR(
"Noise analysis unsupported.");
246 if (strcmp(token,
".sens") == 0) {
254 LITERR(
"Sensitivity unsupported.")
257 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
261 if ((strcmp(token,".options") == 0) ||
262 (strcmp(token,".option" ) == 0) ||
263 (strcmp(token,".opt" ) == 0)) {
268 LITERR(
"Analysis options table not found.")
271 (*(
analInfo[which]->
parse))(ckt,tab,which,current,&line,task,gnode);
275 if ((strcmp(token,".subckt") == 0) ||
276 (strcmp(token,".ends" ) == 0)) {
278 LITERR(
"Subcircuits not yet implemented - ignored.")
283 if (strcmp(token,".end") == 0) {
291 if (strcmp(token,
".table") == 0) {
297 LITERR(
"Unimplemented control card.")
SPICEanalysis * analInfo[]
static struct pnode * parse()
static IFparm nodeParms[]