Browse Source

SetAnalys, maxord

pre-master-46
h_vogt 17 years ago
parent
commit
05c0d50e55
  1. 4
      ChangeLog
  2. 7
      src/frontend/inp.c
  3. 5
      src/spicelib/analysis/cktdojob.c
  4. 7
      src/spicelib/analysis/cktop.c
  5. 14
      src/winmain.c

4
ChangeLog

@ -1,3 +1,7 @@
2009-04-26 Holger Vogt
* winmain.c, inp.c, cktop.c: SetAnalyse() modified/added
cktdojob.c: maxord set to minimum 2 (prevent crash in dctran.c:774)
2009-04-26 Dietmar Warning 2009-04-26 Dietmar Warning
* devices/cktinit.c: prototype load_alldevs not needed * devices/cktinit.c: prototype load_alldevs not needed
* ngspice.h: float.h before defines.h, some more function mapping in _MSC_VER section * ngspice.h: float.h before defines.h, some more function mapping in _MSC_VER section

7
src/frontend/inp.c

@ -58,6 +58,9 @@ static bool doedit(char *filename);
void line_free_x(struct line * deck, bool recurse); void line_free_x(struct line * deck, bool recurse);
#ifdef HAS_WINDOWS
void SetAnalyse( char * Analyse, int Percent);
#endif
/* uncomment this line for getting deck output after all /* uncomment this line for getting deck output after all
manipulations into debug-out2.txt. manipulations into debug-out2.txt.
@ -504,7 +507,9 @@ inp_spsource(FILE *fp, bool comfile, char *filename)
if (deck->li_next) { if (deck->li_next) {
/* There is something left after the controls. */ /* There is something left after the controls. */
fprintf(cp_out, "\nCircuit: %s\n\n", tt); fprintf(cp_out, "\nCircuit: %s\n\n", tt);
#ifdef HAS_WINDOWS
SetAnalyse( "Circuit", 0);
#endif
/* Old location of ENHtranslate_poly. This didn't work, because it /* Old location of ENHtranslate_poly. This didn't work, because it
* didn't handle models in .SUBCKTs correctly. Moved to new location below * didn't handle models in .SUBCKTs correctly. Moved to new location below
* by SDB on 4.13.2003 * by SDB on 4.13.2003

5
src/spicelib/analysis/cktdojob.c

@ -52,6 +52,11 @@ CKTdoJob(void *inCkt, int reset, void *inTask)
ckt->CKTtemp = task->TSKtemp; ckt->CKTtemp = task->TSKtemp;
ckt->CKTnomTemp = task->TSKnomTemp; ckt->CKTnomTemp = task->TSKnomTemp;
/* Check options method and maxorder for consistency */
if (task->TSKmaxOrder < 2) {
task->TSKmaxOrder = 2;
fprintf(stderr,"\nWarning -- Option maxord < 2 not allowed in this build\nSet to 2\n\n");
}
ckt->CKTmaxOrder = task->TSKmaxOrder; ckt->CKTmaxOrder = task->TSKmaxOrder;
ckt->CKTintegrateMethod = task->TSKintegrateMethod; ckt->CKTintegrateMethod = task->TSKintegrateMethod;
ckt->CKTbypass = task->TSKbypass; ckt->CKTbypass = task->TSKbypass;

7
src/spicelib/analysis/cktop.c

@ -16,13 +16,18 @@ static int spice3_gmin (CKTcircuit *, long int, long int, int);
static int gillespie_src (CKTcircuit *, long int, long int, int); static int gillespie_src (CKTcircuit *, long int, long int, int);
static int spice3_src (CKTcircuit *, long int, long int, int); static int spice3_src (CKTcircuit *, long int, long int, int);
#ifdef HAS_WINDOWS
void SetAnalyse( char * Analyse, int Percent);
#endif
int int
CKTop (CKTcircuit * ckt, long int firstmode, long int continuemode, CKTop (CKTcircuit * ckt, long int firstmode, long int continuemode,
int iterlim) int iterlim)
{ {
int converged; int converged;
#ifdef HAS_WINDOWS
SetAnalyse("op", 0);
#endif
ckt->CKTmode = firstmode; ckt->CKTmode = firstmode;
if (!ckt->CKTnoOpIter){ if (!ckt->CKTnoOpIter){

14
src/winmain.c

@ -200,10 +200,13 @@ void SetSource( char * Name)
static int OldPercent = -2; static int OldPercent = -2;
void SetAnalyse( char * Analyse, int Percent) void SetAnalyse( char * Analyse, int Percent)
{ {
char s[128];
static int OldPercent = -2;
static char Olds[128];
char s[128];
if (Percent == OldPercent) return;
if ((Percent == OldPercent) && !strcmp(Olds, Analyse)) return;
OldPercent = Percent; OldPercent = Percent;
strncpy(Olds, Analyse, 127);
if (hwAnalyse) { if (hwAnalyse) {
if (Percent < 0) if (Percent < 0)
sprintf( s, "--ready--"); sprintf( s, "--ready--");
@ -211,7 +214,7 @@ void SetAnalyse( char * Analyse, int Percent)
sprintf( s, "%s : %3u%%", Analyse, Percent); sprintf( s, "%s : %3u%%", Analyse, Percent);
SetWindowText( hwAnalyse, s); SetWindowText( hwAnalyse, s);
InvalidateRgn( hwAnalyse, NULL, TRUE); InvalidateRgn( hwAnalyse, NULL, TRUE);
WaitForIdle();
WaitForIdle();
} }
} }
@ -320,7 +323,7 @@ int w_getch(void)
// Cursor = normal // Cursor = normal
SetCursor( LoadCursor( NULL, IDC_IBEAM)); SetCursor( LoadCursor( NULL, IDC_IBEAM));
// Analyse ist fertig // Analyse ist fertig
SetAnalyse( NULL, -1);
SetAnalyse("", -1);
// Warten auf die Eingabe // Warten auf die Eingabe
do { do {
WaitForMessage(); WaitForMessage();
@ -842,8 +845,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLi
ClearInput(); ClearInput();
DisplayText(); DisplayText();
SetSource( ""); SetSource( "");
// SetAnalyse( NULL, -1);
SetAnalyse(" ", 0);
SetAnalyse("Start", 0);
UpdateWindow( hwMain); UpdateWindow( hwMain);
SetFocus( swString); SetFocus( swString);

Loading…
Cancel
Save