summaryrefslogtreecommitdiffstats
path: root/sources/over20.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/over20.cpp')
-rw-r--r--sources/over20.cpp1909
1 files changed, 1909 insertions, 0 deletions
diff --git a/sources/over20.cpp b/sources/over20.cpp
new file mode 100644
index 0000000..65330a5
--- /dev/null
+++ b/sources/over20.cpp
@@ -0,0 +1,1909 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file over20.cpp
+
+#include "over20.hpp"
+
+namespace over20 {
+
+ // subroutine over20.
+ void over20(void)
+ {
+ int i;
+ int k, kn1;
+ int l, ll1 = 1, ll9 = 9, ll10 = 10;
+ int m;
+ int nIOld, npl, nStat;
+ //
+ size_t n1, n2, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, ndx1, ndx2, ndx3;
+ //
+ double a;
+ double d1;
+ double d2;
+ double zero = 0.0;
+ //
+ std::fstream sFile79;
+ //
+ long int *pKnt = &blkcom::sMonCar.m_nKnt;
+ long int *pKBase = &blkcom::sMonCar.m_nKBase;
+ long int *pLTDelt = &blkcom::sMonCar.m_nLTDelt;
+ long int *pISW = &blkcom::sMonCar.m_nISW;
+ long int *pLSwtch = &blkcom::sMonCar.m_nLSwtch;
+ std::ostream *pMTape = reinterpret_cast<std::ostream *>(blkcom::sMonCar.m_pMTape);
+ //
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Begin module \"over20\"." << std::endl << std::flush;
+ date_time::runtym (d1, d2);
+ n10 = 1;
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " iplot nenerg kbase m4plot mtape icat lstat32" << std::string (14, ' ') << "t" << std::string (10, ' ') << "aincr\n" << " " << blkcom::nIPlot << " " << blkcom::nEnerg << " " << *pKBase << " " << blkcom::nM4Plot << " " << "0x" << std::hex << pMTape << " " << blkcom::nICat << " " << blkcom::sLStat[ 31 ] << " " << blkcom::nT << " " << blkcom::nAIncr << std::endl << std::flush;
+ if (blkcom::nMax99m < 0)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ++++ Number of suppressed type-99 flashover or clearing messages is negative of " << blkcom::nMax99m << std::endl << std::flush;
+ if (blkcom::pPeakND[ 0 ] == 0.0)
+ goto a5019;
+ n6 = (int) blkcom::pPeakND[ 2 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (8, ' ') << "Overall simulation peak node voltage = " << std::fixed << std::setw (15) << std::setprecision (6) << blkcom::pPeakND[ 0 ] << " . Time (sec) = " << std::fixed << std::setw (14) << std::setprecision (5) << blkcom::pPeakND[ 1 ] << " . bus = \"" << labcom::sBus[ n6 - 1 ] << "\" ." << std::endl << std::flush;
+
+ a5019:
+ k = blkcom::sLStat[ 31 ] + 1;
+ if (blkcom::nIPlot < 0)
+ goto a8005;
+ labcom::sVoltI[ 0 ] = -9999.0;
+ if (blkcom::nM4Plot == 0)
+ goto a5022;
+ plot::pltfil(k);
+ goto a8005;
+
+ a5022:
+ for (std::vector<double>::iterator nI = labcom::sVoltI.begin (); nI != labcom::sVoltI.begin () + k; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 3 ])) << *nI << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 3 ])) << std::endl << std::flush;
+
+ a8005:
+ if ((blkcom::nICat > 0) || (blkcom::nMemSav > 0))
+ katalg ();
+ sFile79.close ();
+ k = blkcom::sLStat[ 31 ];
+ if ((*pKBase == 2) && (blkcom::nAIncr < 55.0))
+ goto a3614;
+ if (blkcom::pBegMax[ 0 ] <= 0.0)
+ goto a3614;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n Maxima and minima which occurred during the simulation follow. The order and column positioning are the" << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " same as for the regular printed output vs. time." << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Variable maxima :" << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (15, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.begin () + k; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ ndx1 = blkcom::sSStat.m_nSize12 + 1;
+ ndx2 = blkcom::sSStat.m_nSize12 + k;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Times of maxima :" << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (15, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin () + ndx1; nI != labcom::sXMax.begin () + ndx2; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ ndx1 += blkcom::sSStat.m_nSize12;
+ ndx2 += blkcom::sSStat.m_nSize12;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Variable minima :" << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (15, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin () + ndx1; nI != labcom::sXMax.begin () + ndx2; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ ndx1 += blkcom::sSStat.m_nSize12;
+ ndx2 += blkcom::sSStat.m_nSize12;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Times of minima :" << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (15, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin () + ndx1; nI != labcom::sXMax.begin () + ndx2; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+
+ a3614:
+ if (blkcom::nEnerg != 0)
+ goto a605;
+ blkcom::sFLStat[ 8 ] = d1;
+ blkcom::sFLStat[ 9 ] = d2;
+ if ((blkcom::pBegMax[ 0 ] != 0.0) && (blkcom::pBegMax[ 1 ] != 0.0))
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (56, ' ') << "Search for extrema began at time " << std::fixed << std::setw (15) << std::setprecision (6) << blkcom::pBegMax[ 1 ] << " sec." << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << std::endl << std::flush;
+ if (blkcom::nIPunch <= 0)
+ goto a9800;
+ blkcom::nKCount = 2;
+ nIOld = 3;
+ if (n10 != 0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n Printout of the saving of terminal conditions for all components, at time";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (15) << std::setprecision (7) << blkcom::nT;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " seconds.\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Begin with all node voltages.\n";
+ for (i = 0; i < 3; i++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (21, ' ') << "node\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (19, ' ') << "number" << std::string (21, ' ') << "name" << std::string (18, ' ') << "voltage" << std::endl << std::flush;
+ }
+ for (k = 2; k <= blkcom::nTot; k++) {
+ if (n10 != 0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << std::setw (6) << labcom::sBus[ k - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (5) << labcom::sE[ k - 1 ] << " " << zero;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (41, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << k << std::endl << std::flush;
+ }
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (2) << blkcom::nKCount;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (6) << labcom::sBus[ k - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::fixed << std::setw (15) << std::setprecision (8) << labcom::sE[ k - 1 ] << zero << zero;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::string (21, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (6) << k << std::endl << std::flush;
+ }
+ if (n10 != 0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n Linear branch table state variables ( 'currents' ) follow.\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (7, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "row";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "'from' node";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (11, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "'to' node";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "linear branch parameters, identified by the Fortran vector storage\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "i";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (8, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "bus(kbus(i))";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (8, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "bus(mbus(i))";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (19, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "cik(i)";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (20, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "ci(i)";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (20, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "ck(i)" << std::endl << std::flush;
+ }
+ k = 1;
+
+ a7014:
+ blkcom::nIt2 = 1;
+ if (labcom::sKBus[ k - 1 ] < 0)
+ goto a7024;
+ if (labcom::sNR[ 4 ] >= 0)
+ goto a7022;
+ blkcom::nCI1 = labcom::sCI[ k - 1 ];
+ blkcom::nCK1 = labcom::sCK[ k - 1 ];
+ if ((blkcom::nCI1 == 0.0) && (blkcom::nCK1 == 0.0))
+ goto a7025;
+ l = labcom::sKBus[ k - 1 ];
+ m = abs (labcom::sMBus[ k - 1 ]);
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (2) << nIOld;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (6) << labcom::sBus[ l - 1 ] << labcom::sBus[ m - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::fixed << std::setw (15) << std::setprecision (8) << blkcom::nCI1 << blkcom::nCK1 << zero << zero;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (6) << k << std::endl << std::flush;
+ if (n10 != 0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ l - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ m - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (5) << blkcom::nCI1 << blkcom::nCK1 << zero << zero;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << k << std::endl << std::flush;
+ }
+ goto a7025;
+
+ a7022:
+ blkcom::nIt2 = abs (labcom::sLength[ k - 1 ]);
+ blkcom::nIt1 = k + blkcom::nIt2 - 1;
+ for (i = k; i <= blkcom::nIt1; i++) {
+ n1 = labcom::sKBus[ i - 1 ];
+ n2 = abs (labcom::sMBus[ i - 1 ]);
+ if (n10 != 0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ n1 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ n2 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (5) << labcom::sCIK[ i - 1 ] << labcom::sCI[ i - 1 ] << labcom::sCK[ i - 1 ] << zero;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << i << std::endl << std::flush;
+ }
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (2) << nIOld;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (12) << labcom::sBus[ n1 - 1 ] << labcom::sBus[ n2 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::fixed << std::setw (15) << std::setprecision (8) << labcom::sCIK[ i - 1 ] << labcom::sCI[ i - 1 ] << labcom::sCK[ i - 1 ] << zero;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (6) << i << std::endl << std::flush;
+ }
+ goto a7025;
+
+ a7024:
+ n1 = abs (labcom::sKBus[ k - 1 ]);
+ n2 = abs (labcom::sMBus[ k - 1 ]);
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " **** Warning. **** No currents will be punched for the distributed line connecting nodes ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\"" << std::setw (6) << labcom::sBus[ n1 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\" and \"";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ n2 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " . " << std::endl << std::flush;
+ blkcom::nIt2 = labcom::sLength[ k - 1 ];
+ if (blkcom::nIt2 < 0)
+ blkcom::nIt2 = -blkcom::nIt2;
+ if (labcom::sLength[ k - 1 ] > 0)
+ blkcom::nIt2 = 1;
+ if ((labcom::sKodSem[ k - 1 ] != 0) && (labcom::sIModel[ k - 1 ] != 2))
+ blkcom::nIt2 = abs (labcom::sKodeBR[ k - 1 ]);
+
+ a7025:
+ k += blkcom::nIt2;
+ if (k <= blkcom::nIBr)
+ goto a7014;
+ if (blkcom::nINOnL == 0)
+ goto a9207;
+ if (n10 != 0)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n Nonlinear element table state variables follow." << std::endl << std::flush;
+ nIOld = 4;
+ for (k = 1; k <= blkcom::nINOnL; k++) {
+ if (labcom::sNOnLE[ k - 1 ] >= 0)
+ ;
+ else {
+ n1 = labcom::sNOnLK[ k - 1 ];
+ n2 = abs (labcom::sNOnLM[ k - 1 ]);
+ if (labcom::sNLType[ k - 1 ] != -96)
+ goto a7031;
+ n5 = labcom::sNOnLAD[ k - 1 ];
+ n6 = n5 + 1;
+ n7 = n5 + 2;
+ n8 = n5 + 3;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (2) << nIOld;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (6) << labcom::sBus[ n1 - 1 ] << labcom::sBus[ n2 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::fixed << std::setw (15) << std::setprecision (8) << labcom::sVChar[ n7 - 1 ] << labcom::sCChar[ n8 - 1 ] << std::endl << std::flush;
+ n9 = (int) labcom::sCChar[ n6 - 1 ];
+ n11 = (int) labcom::sCChar[ n7 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (10) << n9 << n11;
+ for (std::vector<double>::iterator nI = labcom::sVChar.begin () + n5; nI != labcom::sVChar.begin () + n8; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::fixed << std::setw (15) << std::setprecision (8) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::endl << std::flush;
+ n12 = n5 + 4;
+ n13 = n5 + 5;
+ n14 = (int) labcom::sCChar[ n12 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (10) << n9 << n11;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::fixed << std::setw (15) << std::setprecision (8) << labcom::sVChar[ n12 - 1 ] << labcom::sVChar[ n13 - 1 ] << labcom::sGSlope[ n12 - 1 ] << labcom::sGSlope[ n13 - 1 ] << std::endl << std::flush;
+ if (n10 == 0) {
+ ;
+ } else {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ n1 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ n2 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (5) << labcom::sVChar[ n7 - 1 ] << labcom::sCChar[ n8 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (10) << n9;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (10) << n11;
+ for (std::vector<double>::iterator nI = labcom::sVChar.begin () + n5; nI != labcom::sVChar.begin () + n8; nI++) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (15) << std::setprecision (8) << *nI;
+ }
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (10) << n14;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << std::fixed << std::setw (15) << std::setprecision (8) << labcom::sVChar[ n13 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << std::fixed << std::setw (15) << std::setprecision (8) << labcom::sVChar[ n13 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << std::fixed << std::setw (15) << std::setprecision (8) << labcom::sGSlope[ n12 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << std::fixed << std::setw (15) << std::setprecision (8) << labcom::sGSlope[ n13 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ // cycle
+ goto a7032;
+
+ a7031:
+ a = labcom::sCurr[ k - 1 ];
+ if (a == 0.0) {
+ ;
+ } else {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (2) << nIOld;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (6) << labcom::sBus[ n1 - 1 ] << labcom::sBus[ n2 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::fixed << std::setw (15) << std::setprecision (8) << a;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::endl << std::flush;
+ if (n10 != 0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ n1 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ n2 - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (5) << a;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ }
+ }
+ }
+
+ a7032:
+ ;
+ }
+ }
+
+ a9207:
+ if (blkcom::nKSwtch == 0)
+ goto a4020;
+ if (n10 != 0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Status variables for switches follow.\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "bus(l)";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "bus(m)";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "kpos(k)";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " kode(l)";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " kode(m)";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (14, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "tclose";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (14, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "adelay";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (14, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "energy";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (16, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "crit" << std::endl << std::flush;
+ }
+ for (k = 1; k <= blkcom::nKSwtch; k++) {
+ l = abs (labcom::sKMSwit[ k - 1 ]);
+ kn1 = *pLSwtch + k;
+ m = abs (labcom::sKMSwit[ kn1 - 1 ]);
+ npl = labcom::sNextSw[ k - 1 ];
+ if (npl != 0)
+ npl = 87;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << " 5";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (6) << labcom::sBus[ l - 1 ] << labcom::sBus[ m - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (4) << labcom::sKPos[ k - 1 ] << labcom::sKode[ l - 1 ] << labcom::sKode[ m - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::fixed << std::setw (13) << std::setprecision (6) << labcom::sTClose[ k - 1 ] << labcom::sADelay[ k - 1 ] << labcom::sEnergy[ k - 1 ] << labcom::sCrit[ k - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << "\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::string (14, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::setw (4) << npl;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 6 ])) << std::endl << std::flush;
+ if (n10 == 0) {
+ ;
+ } else {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ l - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (6) << labcom::sBus[ m - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (10) << labcom::sKPos[ k - 1 ] << labcom::sKode[ l - 1 ] << labcom::sKode[ m - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (20) << std::setprecision (10) << labcom::sTClose[ k - 1 ] << labcom::sADelay[ k - 1 ] << labcom::sEnergy[ k - 1 ] << labcom::sCrit[ k - 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (14, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (10) << labcom::sNextSw[ k - 1];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ }
+ }
+
+ a4020:
+ goto a9800;
+
+ a605:
+ nStat = k;
+ for (l = 1; l <= nStat; l++) {
+ ndx1 = 2 * blkcom::sSStat.m_nSize12 + l;
+ if (-labcom::sXMax[ ndx1 - 1 ] <= labcom::sXMax[ l - 1 ]) {
+ ;
+ } else {
+ labcom::sXMax[ l - 1 ] = labcom::sXMax[ ndx1 - 1 ];
+ ndx3 = blkcom::sSStat.m_nSize12 + l;
+ ndx2 = ndx1 + blkcom::sSStat.m_nSize12;
+ labcom::sXMax[ ndx3 - 1 ] = labcom::sXMax[ ndx2 - 1 ];
+ }
+ }
+ if (blkcom::nIprsUp > 0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " isw, nstat, knt, nenerg = ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (10) << *pISW << nStat << *pKnt << blkcom::nEnerg;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " (xmax(i), i=1, nstat) =\n";
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.begin () + nStat; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (5, ' ') << std::setw (15) << std::setprecision (8) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ }
+ ++*pKnt;
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.end () + nStat; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 8 ])) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 8 ])) << std::endl << std::flush;
+ if (blkcom::pBegMax[ 0 ] == 0.0)
+ goto a627;
+ if (blkcom::nEnerg < 0)
+ goto a612;
+ if (comthl::nSwTpe <= 1)
+ goto a1610;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (6) << std::setprecision (2) << blkcom::nAngle;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (6) << std::setprecision (2) << comthl::nAngTpe;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.begin () + ll9; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ goto a611;
+
+ a1610:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (9) << std::setprecision (4) << blkcom::nAngle;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (5, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.begin () + ll9; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+
+ a611:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (15, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin () + ll10; nI != labcom::sXMax.begin () + nStat; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ goto a624;
+
+ a612:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (15, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.begin () + ll9; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ goto a611;
+
+ a609:
+ if (blkcom::nEnerg < 0)
+ goto a614;
+ if (comthl::nSwTpe <= 1)
+ goto a1620;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (6) << std::setprecision (2) << blkcom::nAngle;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (6) << std::setprecision (2) << comthl::nAngTpe;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.begin () + nStat; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ goto a624;
+
+ a1620:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (9) << std::setprecision (4) << blkcom::nAngle;
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.begin () + nStat; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ goto a624;
+
+ a614:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (15, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin (); nI != labcom::sXMax.begin () + nStat; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+
+ a624:
+ ndx1 = blkcom::sSStat.m_nSize12 + 1;
+ ndx2 = blkcom::sSStat.m_nSize12 + nStat;
+ if (blkcom::pBegMax[ 0 ] > 0.0) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Times of maxima :\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (15, ' ');
+ for (std::vector<double>::iterator nI = labcom::sXMax.begin () + ndx1; nI != labcom::sXMax.begin () + ndx2; nI++)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::fixed << std::setw (13) << std::setprecision (6) << *nI;
+ }
+
+ a627:
+ if (*pKnt > abs (blkcom::nEnerg))
+ goto a610;
+ blkcom::nLastOV = blkcom::nChain;
+ blkcom::nChain = 12;
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Exit \"over20\"." << std::endl << std::flush;
+ goto a99999;
+
+ a610:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n\n" << std::endl << std::flush;
+ blkcom::pLFiles[ 4 ] = pMTape;
+ if (blkcom::sLStat[ 14 ] != std::numeric_limits<int>::max ())
+ blkcom::nNumDCD -= blkcom::pIpnTV[ 10 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << std::string (131, '-') << "\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Simulation of all 'nenerg' =";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (4) << blkcom::nEnerg;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " energizations is now complete, and the EMTP is ready to begin statistical\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " processing of the voltage solutions. But before doing so, two cautions about discretization of continuous\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " variables are probably appropriate to mention at this point.\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (5, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "1. The switch closing times which are printed along with peak voltages of each energization are only desired\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "times, just as with all such times which are punched on data cards which define switches upon data input. Since\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "time is discretized in multiples of time-step-size 'deltat' , actual closure will occur at the first discrete\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "step which does not precede the requested time.\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (5, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "2. In the tabulation of voltage distributions which follow, an arbitrary decision had to be made concerning the\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "column which is labeled 'frequency' . The continuous variable voltage has been discretized, divided into\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "compartments of size 'aincr' (read from columns 25-32 of the special statistics misc. data card). For an entry";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "which is printed in a row marked as being for voltage 'vrow' , the associated compartment contains all\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "voltages 'v' which satisfy vrow .le. v .lt. (vrow + aincr) .\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (5, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "3. floating-point counting (t = t + deltat) is used to increment time. Switching times which are an exact multiple\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (9, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "of the time-step thus are ambiguous; different computers may switch one step later, then." << std::endl << std::flush;
+ if (*pLTDelt <= 0)
+ goto a7314;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " *********************************************************** Look, look ************************************************************\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " During this run, a total of";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (4) << *pLTDelt;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " random switch closings less than time zero were generated by the random\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " number generator. But the EMTP has no way of handling such closures. All such illegal closing times were converted\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " to time zero (they should show up in the printout that way) for simulation purposes. The implications of this\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " modification should be understood by the user. If in any doubt, the user is strongly advised to seek experienced\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " counsel on this subject.\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " *********************************************************** Look, look ************************************************************\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n\n";
+
+ a7314:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " " << std::string (131, '-') << "\n" << std::endl << std::flush;
+ blkcom::sFLStat[ 8 ] = d1;
+ blkcom::sFLStat[ 9 ] = d2;
+ blkcom::nLastOV = blkcom::nChain;
+ blkcom::nChain = 29;
+ blkcom::sFLStat[ 6 ] = blkcom::sFLStat[ 6 ] + d1;
+ blkcom::sFLStat[ 7 ] = blkcom::sFLStat[ 7 ] + d2;
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Exit \"over20\"." << std::endl << std::flush;
+ goto a99999;
+
+ a9800:
+ if (blkcom::nM4Plot != 1)
+ goto a9810;
+ if (*pKBase == 1)
+ goto a9810;
+ blkcom::nLastOV = blkcom::nChain;
+ blkcom::nChain = 16;
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Exit \"over20\"." << std::endl << std::flush;
+ goto a99999;
+
+ a9810:
+ if (blkcom::nLastOV > blkcom::nChain)
+ goto a9850;
+ blkcom::sFLStat[ 6 ] = blkcom::sFLStat[ 6 ] + d1;
+ blkcom::sFLStat[ 7 ] = blkcom::sFLStat[ 7 ] + d1;
+
+ a9850:
+ blkcom::nLastOV = blkcom::nChain;
+ blkcom::nChain = 31;
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Exit \"over20\"." << std::endl << std::flush;
+
+ a99999:
+ ;
+ }
+
+ // subroutine katalg.
+ void katalg(void)
+ {
+ // VAX-11/780 installation-dependent module which is used
+ // to honor the miscellaneous data card request for EMTP table
+ // saving, for later "start again" usage. A call to the
+ // universal module "tables" actually dumps memory onto disk.
+ // Logic associated with other than memsav=0 or memsav=1
+ // can generally be ignored by other systems; it applies
+ // only to rtm (real time monitor) use of BPA VAX.
+ int j;
+ //
+ char pANSI132[ 132 ];
+ //
+ std::fstream sFile79;
+ //
+ if(blkcom::nIprsUp >=1 ) {
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Enter \"katalg\". icat memsav lunit2 ltlabl\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (18, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (10) << blkcom::nICat << blkcom::nMemSav;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "0x" << std::hex << blkcom::pLFiles[ 1 ];
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (10) << blkcom::sSStat.m_nTLabl << std::endl << std::flush;
+ }
+ if(blkcom::nMemSav == 0)
+ goto a9800;
+ if(blkcom::nM4Plot == 1)
+ blkcom::nTMax = std::numeric_limits<double>::infinity ();
+ if (blkcom::nMemSav == 1016)
+ goto a2634;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "\n";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (20, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "----- memsav = 1 represents request for table dumping on disk.";
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 1 ])).close();
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 1 ])).open ("tptables.bin", std::ios_base::out | std::ios_base::trunc | std::ios_base::binary);
+ emtp::tables ();
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 2 ])) << comlock::pLocker[ 0 ] << comlock::pLocker[ 1 ] << std::endl << std::flush;
+ sFile79.seekg (sFile79.beg);
+ do {
+ sFile79.read (&pANSI132[ 0 ], 132);
+ if (sFile79.eof ())
+ break;
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 1 ])).write (&pANSI132[ 0 ], 132);
+ } while (1);
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 1 ])).close ();
+ //labcom::pKArray[ 0 * sizeof (int) ] = blkcom::nIndBuf;
+ //labcom::pKArray[ 1 * sizeof (int) ] = blkcom::nMFlush;
+ //labcom::pKArray[ 2 * sizeof (int) ] = blkcom::nNewVec;
+ memcpy (reinterpret_cast<void *> (&labcom::pKArray[ 0 * sizeof (int) ]), reinterpret_cast<void *> (&spycom::nIndBuf), sizeof (int));
+ memcpy (reinterpret_cast<void *> (&labcom::pKArray[ 1 * sizeof (int) ]), reinterpret_cast<void *> (&spycom::nMFlush), sizeof (int));
+ memcpy (reinterpret_cast<void *> (&labcom::pKArray[ 2 * sizeof (int) ]), reinterpret_cast<void *> (&spycom::nNewVec), sizeof (int));
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::string (26, ' ');
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << "Successful saving of EMTP tables as file \"tptables.bin\" . ltlabl =";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (8) << blkcom::sSStat.m_nTLabl << std::endl << std::flush;
+ if (blkcom::nMemSav == 1)
+ goto a9800;
+ goto a9700;
+
+ a2634:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Begin EMTP table restoration. ltlabl =";
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::setw (7) << blkcom::sSStat.m_nTLabl;
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " . Wait for completion." << std::endl << std::flush;
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 2 ])).close ();
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 2 ])).open ("tptables.bin", std::ios_base::out | std::ios_base::in);
+ emtp::tables ();
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 2 ])).close ();
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 2 ])).open ("tptables.bin", std::ios_base::in | std::ios_base::out | std::ios_base::binary);
+ emtp::tables ();
+ (*reinterpret_cast<std::fstream *> (blkcom::pLFiles[ 2 ])).close ();
+ //blkcom::nIndBuf = labcom::pKArray[ 0 * sizeof (int) ];
+ //blkcom::nMFlush = labcom::pKArray[ 1 * sizeof (int) ];
+ //blkcom::nNewVec = labcom::pKArray[ 2 * sizeof (int) ];
+ memcpy (reinterpret_cast<void *> (&spycom::nIndBuf), reinterpret_cast<void *> (labcom::pKArray[ 0 * sizeof (int) ]), sizeof (int));
+ memcpy (reinterpret_cast<void *> (&spycom::nMFlush), reinterpret_cast<void *> (labcom::pKArray[ 1 * sizeof (int) ]), sizeof (int));
+ memcpy (reinterpret_cast<void *> (&spycom::nNewVec), reinterpret_cast<void *> (labcom::pKArray[ 2 * sizeof (int) ]), sizeof (int));
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Restoration complete, user can now begin depositing EMTP variables via spy ." << std::endl << std::flush;
+ blkcom::nMemSav = 0;
+
+ a9700:
+ spycom::nKBreak = 1;
+
+ a9800:
+ ;
+ }
+
+ // subroutine emtspy.
+ void emtspy(void)
+ {
+ // Module of interactive EMTP only, which services "emtspy".
+ // If no interactive use, convert to dummy module ("return").
+ int n18 = 0;
+ //
+ ++n18;
+ if (n18 < spycom::nMaxFLG)
+ n18 = 0;
+ if(spycom::nIprSpy >= 9) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 6 ])) << " Top \"emtspy\". kbreak, kwtspy, nbreak, lockbr jjroll, nchain =" << spycom::nKBreak << blkcom::nKWTSpy << spycom::nNBreak << spycom::nLockBR << blkcom::nChain << spycom::nJJRoll << " t, tbreak =" << blkcom::nT << spycom::nTBreak << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 6 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 6 ]));
+ }
+ if(spycom::nJJRoll <= 0) {
+ if(spycom::nKBreak != 1) {
+ if((spycom::nLockBR == 1) || (blkcom::nT < spycom::nTBreak))
+ goto a5623;
+ // ok, now we service "break" of spy (time and place to do it):
+ spycom::nTBreak = 8877.0e33;
+ }
+ spycom::nLockBR = 1;
+ (*reinterpret_cast<std::stringstream *> (spycom::pMFiles[ 5 ])) << " // Start \"break\" service in \"emtspy\". nchain =" << std::setw(3) << blkcom::nChain << " t =" << std::setprecision(5) << blkcom::nT << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *> (spycom::pMFiles[ 5 ]));
+ if(spycom::nKFile5 == 1)
+ goto a6258;
+
+ a5617:
+ spyf77::sProm80 = " spy:";
+ utilities::prompt(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ spyf77::sProm80);
+
+ a5623:
+ if(spycom::pKSMSpy[ 2 ] == 1)
+ ;//goto a5632;
+ utilities::flager();
+ if(blkcom::nKWTSpy == 1)
+ ;//goto a5632;
+ if(spycom::nKFile5 == 1)
+ goto a6258;
+ goto a9000;
+ }
+ blkcom::nKWTSpy = 0;
+ spying();
+ if(spycom::nJJRoll > 0)
+ goto a9000;
+ if(spycom::nLockBR == 1)
+ goto a5623;
+ goto a9000;
+ // Entry point for pre-defined spy commands ($spy or "@"):
+
+ a6258:
+ do {
+ if(spycom::nKomAdd != 0) {
+ ++spycom::nKomAdd;
+ spyf77::sBuff77 = spyf77::sFile6[ spycom::nKomAdd - 1 ];
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 3)) == "eof ")
+ goto a6278;
+ } else {
+ (*reinterpret_cast<std::stringstream *> (spycom::pMFiles[ 4 ])).read(&spyf77::sBuff77[ 0 ], 80);
+ if((*reinterpret_cast<std::stringstream *> (spycom::pMFiles[ 4 ])).eof())
+ goto a6274;
+ }
+
+ a6264:
+ if(spycom::nKFile5 == 1)
+ percnt(&spyf77::sBuff77, 80);
+ if (spycom::nKilPer != 0)
+ goto a6274;
+
+ a6266:
+ spying();
+ } while (spycom::nLockBR == 1);
+ goto a9000;
+ // End-of-file during disk read, so switch to keyboard input:
+
+ a6274:
+ ;//((std::stringstream *) spycom::pMFiles[ 4 ]) -> close();
+
+ a6278:
+ spycom::pMFiles[ 4 ] = blkcom::pMFilesSave[ 0 ];
+ spycom::nKFile5 = 0;
+ spycom::nKilPer = 0;
+ if(blkcom::pMFilesSave[ 1 ] == nullptr)
+ goto a5617;
+ blkcom::pMFilesSave[ 1 ] = nullptr;
+
+ a9000:
+ if(spycom::nIprSpy >= 1) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Exit \"emtspy\". kbreak, nchain, lastov, m4plot =" << spycom::nKBreak << blkcom::nChain << blkcom::nLastOV << blkcom::nM4Plot << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ }
+ }
+
+ // subroutine spying.
+ void spying(void)
+ {
+ int j;
+ int nIComm;
+ std::string sCharD7;
+ std::string sSpyTim[ 2 ];
+ std::string sPDate[ 2 ];
+ //
+ if (spycom::nIprSpy < 1)
+ goto a31006;
+ *((std::stringstream *) spycom::pMFiles[ 5 ]) << " Enter \"spying\". nchain, jjroll, kbreak, lockbr, nexmod =" << blkcom::nChain << spycom::nJJRoll << spycom::nKBreak << spycom::nLockBR << spycom::nNexMod << " buff77(1:20) =" << spyf77::sBuff77.substr(0, 20) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ std::cout << " Top spying, ksmspy(1:3) =";
+ for (j = 1; j <= 3; j++)
+ std::cout << spycom::pKSMSpy[ j - 1 ];
+ std::cout << std::endl;
+
+ a31006:
+ if (spyf77::sBuff77.substr(0, 4) != "spy ")
+ goto a51006;
+ spycom::nNexMod = 0;
+ spycom::pKSMSpy[ 0 ] = 2;
+ spycom::pKSMSpy[ 2 ] = 0;
+
+ a51006:
+ if (spycom::nNexMod != 2)
+ goto a1007;
+ spycom::nNexMod = 0;
+ switch(spycom::nNextSN) {
+ case 31269:
+ goto a31269;
+
+ ;
+ }
+
+ a1007:
+ switch(spycom::nNexMod) {
+ case 1:
+ ;//goto a3208;
+
+ case 3:
+ ;//goto a8500;
+
+ case 7:
+ ;//goto a1320;
+
+ default:
+ if (spycom::nNexMod >= 4)
+ ;//goto a1319;
+ break;
+ }
+ if (spycom::nJJRoll > 0)
+ ;//goto a1520;
+ if (spycom::nKBRSer != 2)
+ goto a1009;
+ spycom::nJWord = 52;
+ ;//goto a8500;
+
+ a1009:
+ spycom::nMemKAR = location::index(&spycom::pKar1[ 0 ]);
+ if (spycom::nKFile5 != 2)
+ goto a1240;
+ spycom::nKFile5 = 0;
+ goto a31269;
+
+ a1240:
+ spycom::nNextSN = 31269;
+ spyf77::sProm80 = " spy:";
+
+ a51269:
+ goto a9800;
+
+ a31269:
+ spyf77::sANSW80 = spyf77::sBuff77;
+ if (spycom::nIprSpy <= 9)
+ goto a39843;
+ *((std::stringstream *) spycom::pMFiles[ 5 ]) << " --- Just read answ80: " << spyf77::sANSW80.substr(0, 80) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a39843:
+ if (strcom::toLower(spyf77::sANSW80.substr(0, 4)) == "type")
+ ;//goto a2506;
+ if (strcom::toLower(spyf77::sANSW80.substr(0, 2)) != "c ")
+ goto a1275;
+ if ((spycom::nKFile5 == 1) && (spycom::nKVerfy == 0))
+ goto a51269;
+ if (nIComm != 0)
+ goto a51269;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Comment:" << spyf77::sANSW80.substr(0, 80) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ goto a51269;
+
+ a1275:
+ if (spyf77::sANSW80[ 0 ] != '@')
+ ;//goto a1289;
+ ;
+ ;
+ ;
+ a9800:
+ ;
+ }
+
+ // subroutine spyink.
+ void spyink(void)
+ {
+ ;
+ }
+
+ // subroutine initsp.
+ void initsp(void)
+ {
+ // Module of interactive EMTP only, which services "emtspy".
+ // If no interactive EMTP use, this module can be deleted.
+ // Universal initialization module for "spying". Constants
+ // must be set only once, at the beginning of execution only.
+ int j;
+ int n3;
+ double nTDRoll;
+ std::vector<std::string> sTextAY({
+ "heading",
+ "stop",
+ "plot",
+ "help",
+ "examine",
+ "deposit",
+ "switch",
+ "append",
+ "save",
+ "restore",
+ "go",
+ "echo",
+ "find",
+ "list",
+ "spy",
+ "break",
+ "when",
+ "comment",
+ "@?",
+ "roll",
+ "type?",
+ "verify",
+ "files",
+ "sleep",
+ "source",
+ "edit",
+ "wake",
+ "language",
+ "catalog",
+ "begin",
+ "step",
+ "debug",
+ "data",
+ "ramp",
+ "time",
+ "tek",
+ "branch",
+ "yform",
+ "noy",
+ "factor",
+ "nof",
+ "rlc",
+ "width",
+ "bus",
+ "size",
+ "limit",
+ "iout",
+ "node",
+ "nonlin",
+ "space",
+ "lock",
+ "[y]",
+ "[f]",
+ "noroll",
+ "open",
+ "close",
+ "sm",
+ "honk",
+ "choice",
+ "tacs",
+ "wait",
+ "v-i"});
+ //
+ n3 = 29;
+ if(emtp::dimens(spycom::sMemRMP, n3, blkcom::sBus1, blkcom::sBus1)) {
+ spycom::nLimBuf = spycom::sMemRMP[ 1 ];
+ if(spycom::nIprSpy < 1)
+ goto a1144;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Near top of \"initsp\". limbuf =" << spycom::nLimBuf << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a1144:
+ spycom::nLockBR = 1;
+ spycom::nKBreak = 0;
+ spycom::nIndBuf = 0;
+ spycom::nNoBack = 0;
+ spycom::nMonitR = 0;
+ spycom::nMonitS = 0;
+ spycom::nIncHlp = 0;
+ spycom::nKSlowR = 5;
+ spycom::nMaxFLG = 1;
+ spycom::nTBreak = 8877e33;
+ spycom::nKSPSav = 0;
+ spycom::nNumRMP = 0;
+ spycom::nKBRSer = 0;
+ spycom::nKSerLC = 0;
+ spycom::nLSerLC = 0;
+ spycom::nKomAdd = 0;
+ spyf77::sBlan80 = std::string(80, ' ');
+ spyf77::sSpyKWD = sTextAY;
+ spycom::nNumKey = sTextAY.size();
+ spycom::nNexMod = 0;
+ spyf77::sJunker = "junker";
+ location::locatn();
+ for(j = 1; j <= 9; j++)
+ spyf77::pFilExt[ j - 1 ] = ' ';
+ spyf77::sANSI32 << std::string("inclspy") << std::to_string(j) << std::string(".dat");
+ if(utilities::exists(spyf77::sANSI32.str().c_str()))
+ spyf77::pFilExt[ j - 1 ] = 'x';
+ if(spycom::nIprSpy < 1)
+ goto a2795;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Next use of \"inquire\". j, ansi32 =" << j << " " << spyf77::sANSI32.str() << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2795:
+ blkcom::nKWTSpy = 0;
+ spycom::nJJRoll = 0;
+ nTDRoll = 1.0;
+ spycom::nKFile5 = 0;
+ spycom::nLIdnt1 = 1;
+ spycom::nLIdnt2 = 1;
+ spycom::nLinSPN = 1;
+ }
+ }
+
+ // subroutine quiter.
+ void quiter(void)
+ {
+ // Module of interactive EMTP only, which services "emtspy".
+ // if no interactive use, convert to dummy module ("return").
+ // this module provides a special-purpose connection to the
+ // more general "flager". Here, we only want to sense a
+ // user-keyed interrupt (no spy input is to be read).
+ int n24, n25;
+ //
+ n24 = spycom::nLockBR; // save current time-slicing flag value
+ n25 = spycom::nKFile5; // save current status of input connection
+ spycom::nLockBR = 0; // temporarily turn time-sharing on
+ utilities::flager(); // check for user-keyed interrupt, and return
+ spycom::nLockBR = n24; // restore original value of b4 flager use
+ spycom::nKFile5 = n25; // restore original value of b4 flager use
+ }
+
+ // subroutine kwiter.
+ void kwiter(long int idum[ 3 ])
+ {
+ // VAX-11 installation-dependent EMTP module which serves
+ // control interactive usage. if none, destroy the module.
+ // Purpose is to sense user-keyed interrupt, and set flag.
+ // Name "comkwt" is reserved (connected to "controlc.obj")
+ kwtcom::nKWTVAX = 1;
+ std::cout << idum[ 0 ] << idum[ 1 ] << idum[ 3 ];
+ }
+
+ // subroutine percnt.
+ void percnt(std::string *pVByte, const int &n7)
+ {
+ // Module of interactive EMTP usage only, which services "emtspy".
+ // utility which serves to replace "%%%%%%%%" strings of disk
+ // files by parameters of "@?" call. Columns 1, ... n7 are
+ // searched, of character vector "vbyte" .
+ // For non-interactive emtp, this module can be destroyed.
+ int j;
+ int k;
+ //
+ if(pVByte) {
+ for(k = 1; k <= n7; k++) {
+ if((*pVByte)[ k - 1 ] != '%')
+ ;//goto a1297;
+ for(j = 1; j <= 7; j++) {
+ if((*pVByte)[ k + j - 1 ] != '%')
+ ;//goto a1297;
+ }
+ // We exit do 1253 with string of 8 "%" beginning in column k
+ ++spycom::nITExp;
+ if (spycom::nITExp <= spycom::nMaxArg)
+ goto a1284;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ???? Trouble. \"@?\" usage only defined" << spycom::nMaxArg << " arguments, while the disk" << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " file has more %-strings. Trouble detected in following:" << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " >>>" << pVByte -> substr(0, 80) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+ spycom::nKilPer = 1;
+ ;//goto a1313;
+
+ a1284:
+ spyf77::sANSI8 << spyf77::pTexPar[ spycom::nITExp - 1 ];
+ pVByte -> replace(k + j - 1, k + 7, spyf77::sANSI8.str());
+ }
+ if(spycom::nKVerfy != 0)
+ ;//goto a1313;
+ (*reinterpret_cast<std::stringstream *> (spycom::pMFiles[ 5 ])) << " @>>>" << pVByte -> substr(0, n7) << std::endl;
+ }
+ }
+
+ // subroutine numchk.
+ void numchk(std::string *pVByte, const int &nchar, int &nKill)
+ {
+ // Module of interactive EMTP usage only, which services "emtspy".
+ // This utility serves to scrutinize the input character string
+ // (vbyte(j), j=1, nchar) to see if it is a legal floating-point
+ // number. If so, "kill" is to be set to zero; if number is
+ // structurally deficient, "kill" is to be set positive.
+ // For non-interactive EMTP, this module can be destroyed.
+ int i;
+ int k;
+ int kk, nKoldig, nKolep, nKolexp, nKolper;
+ int nPer, nSign, nNume;
+ //
+ nKill = 0;
+ nKoldig = 0;
+ nPer = 0;
+ nSign = 0;
+ nNume = 0;
+ kk = 0;
+ for(i = 1; i <= nchar; i++) {
+ if((*pVByte)[ i - 1 ] == ' ') {
+ goto a3439;
+ } else {
+ ++kk;
+ if(((*pVByte)[ i - 1 ] == '+') && ((*pVByte)[ i - 1 ] != '-'))
+ goto a3412;
+ ++nSign;
+ if(nSign > 2)
+ nKill = 1;
+ if(kk == 1) {
+ goto a3439;
+ } else {
+ if(nKolep == (i - 1)) {
+ goto a3439;
+ } else {
+ nKill = 1;
+ goto a3439;
+ }
+ }
+ }
+
+ a3412:
+ if((strcom::toLower(*pVByte)[ i - 1 ] != 'e') && (strcom::toLower(*pVByte)[ i - 1 ] == 'd'))
+ goto a3425;
+ ++nNume;
+ nKolep = i;
+ if (nNume > 1)
+ nKill = 1;
+ goto a3439;
+
+ a3425:
+ if ((*pVByte)[ i - 1 ] != '.')
+ goto a3428;
+ ++nPer;
+ if (nPer > 1)
+ nKill = 1;
+ nKolper = i;
+ goto a3439;
+
+ a3428:
+ for(size_t j = 1; j <= 10; j++)
+ if((*pVByte)[ i - 1 ] == spyf77::pDigit[ j ])
+ goto a3438;
+ nKill = 1;
+ goto a3439;
+
+ a3438:
+ nKoldig = 1;
+ }
+ if((nNume == 1) && (nKolep > nKoldig))
+ nKill = 1;
+ if((nNume == 1) && (nKolper > nKolep))
+ nKill = 1;
+ if(nKill == 0)
+ goto a9000;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ??? Sorry, illegal numeric just read:";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (50) << (*pVByte).substr (0, 50) << std::endl << std::flush;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Make a second try, please ...." << std::endl << std::flush;
+
+ a3439:
+ ;
+
+ a9000:
+ ;
+ }
+
+ // subroutine getnum.
+ void getnum(int &nNum)
+ {
+ // Module of interactive EMTP usage only, which services "emtspy".
+ // For non-interactive EMTP, this module can be destroyed.
+ char c4;
+ //
+ int i;
+ int j;
+ int n1;
+ //
+ if(spycom::nIprSpy > 1)
+ goto a4204;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Begin \"getnum\". ibegcl =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (5) << spycom::nIBegCL;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " bytbuf(ibegcl) =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (1) << spycom::pByteBuf[ spycom::nIBegCL - 1 ] << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+
+ a4204:
+ n1 = 1;
+ nNum = 0;
+ for (i = spycom::nIBegCL; i <= 20; i++) {
+ c4 = spycom::pByteBuf[ i - 1 ];
+ switch (c4) {
+ case ' ':
+ case ':':
+ case '#':
+ case ',':
+ goto a4286;
+ break;
+
+ case '+':
+ ;
+ break;
+
+ case '-':
+ goto a4218;
+ break;
+ }
+ n1 = -1;
+ goto a4219;
+
+ a4218:
+ for(j = 1; j <= 10; j++)
+ if(c4 == spyf77::pDigit[ j - 1 ])
+ goto a4256;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " -- Illegal byte in \"number\".";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (4) << i;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (1) << c4;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << "Try again ..." << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ nNum = -87654;
+ goto a4294;
+
+ a4256:
+ if (j == 10)
+ j = 0;
+ nNum = 10 * nNum + j;
+ if (spycom::nIprSpy < 2) {
+ ;
+ } else {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Next digit. j, num =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (8) << j << nNum;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ }
+
+ a4219:
+ ;
+ }
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Stop at 4271 of \"getnum\". num =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (8) << spycom::nIEndCL << nNum;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a4286:
+ if(n1 < 0)
+ nNum = -nNum;
+ spycom::nIEndCL = i - 1;
+ if(spycom::nIprSpy < 1)
+ goto a4294;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Exit \"number\". iendcl, num = " << spycom::nIEndCL << ", " << nNum << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a4294:
+ return;
+ }
+
+ // subroutine spylin.
+ void spylin(void)
+ {
+ // Module of interactive emtp usage only, which services "emtspy".
+ // For non-interactive emtp, this module can be destroyed.
+ // One blank line is written on spy screen by this module.
+ // Temporarily, until we learn how to write to a 2nd crt for
+ // VAX/VMS, we will just write to lunit6 in universal form:
+ // write (unit = lunit(6), fmt = 5624)
+ ;
+ }
+
+ //subroutine spyout.
+ void spyout(const int &n1, const int &n2)
+ {
+ // Module of interactive EMTP only, which services "emtspy".
+ // If no interactive use, this module can be deleted.
+ // Arguments n1 and n2 are node nos., with possible "-" signs.
+ // Purpose is to load and print corresponding names for "output"
+ int k;
+ int n11, n12;
+ //
+ std::string sTerra = "terra", sText10[ 10 ];
+ //
+ n11 = n1;
+ n12 = n2;
+ if (n11 != 7878)
+ goto a4618;
+ k = 0;
+ goto a9000;
+
+ a4618:
+ if (n11 != -7878)
+ goto a4626;
+
+ a4621:
+ if (k <= 0)
+ goto a9000;
+ for (size_t j = 1; j <= k; j++) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::string (7, ' ');
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (7) << sText10[ j - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::endl << std::flush;
+ }
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ k = 0;
+ goto a9000;
+
+ a4626:
+ if (n11 < 0)
+ n11 = -n11;
+ ++k;
+ sText10[ k - 1 ] = labcom::sBus[ n11 - 1 ];
+ if (n11 == 1)
+ sText10[ k - 1 ] = sTerra;
+ if (k == 10)
+ goto a4621;
+ if (n12 == 0)
+ goto a9000;
+ if (n12 < 0)
+ n12 = -n12;
+ ++k;
+ sText10[ k - 1 ] = labcom::sBus[ n12 - 1 ];
+ if (n12 == 1)
+ sText10[ k - 1 ] = sTerra;
+ if (k == 10)
+ goto a4621;
+
+ a9000:
+ if (spycom::nIprSpy < 3)
+ goto a9007;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Exit \"spyout\". n1, n2, k, n11, n12 =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(6) << n1 << n2 << k << n11 << n12 << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+
+ a9007:
+ ;
+ }
+
+ // subroutine examin.
+ void examin(void)
+ {
+ // Module of interactive EMTP usage only, which services "emtspy".
+ // For non-interactive emtp, this module can be destroyed.
+ // This near-universal module serves to build the character*132
+ // output vector outlin of the "examine" command of spy.
+ // Computers with index problems (e.g., prime) need replacement
+ int jj;
+ int n3, n5, n8, n9, n10, n17;
+ //
+ if(spycom::nIprSpy < 1)
+ goto a1718;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Top of \"examin\". numex, imin(1), locout(1) =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(6) << spycom::nNumex << spycom::pIMin[ 0 ] << spycom::pLocOut[ 0 ] << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+
+ a1718:
+ jj = 0;
+ spyf77::sOutLin[ 0 ] = ' ';
+ spycom::nKOLOut = 2;
+ if (spycom::nNumex <= 0)
+ goto a9000;
+
+ a1540:
+ ++jj;
+ n5 = spycom::pIMin[ jj - 1 ];
+ n3 = spycom::pLocOut[ jj - 1 ];
+ n8 = location::sLocate[ n3 ] + n5 - 1;
+ if(spycom::pIntOut[ jj - 1 ] == 0)
+ n8 = n8 + n5 - 1;
+ if(spycom::nIprSpy < 3)
+ goto a1560;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Next examine. jj, n5, n3, n8, intout(jj)";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (8) << jj << n5 << n3 << n8 << spycom::pIntOut[ jj - 1 ] << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a1560:
+ if(spycom::pIntOut[ jj - 1 ] == 0)
+ goto a1600;
+ n9 = n8 - spycom::nMemKAR;
+ ++n8;
+ if(spycom::pIVec[ n3 - 1 ] == 1)
+ goto a1577;
+ if((n5 == 1) && (spycom::pIMax[ jj - 1 ] == 1))
+ goto a1640;
+
+ a1577:
+ spyf77::sANSI16 << std::setw(10) << spycom::pKar1[ n9 ];
+ spyf77::sOutLin.substr(spycom::nKOLOut, 9) = spyf77::sANSI16.str().substr(0, 10);
+ spyf77::sOutLin.substr(spycom::nKOLOut + 10, 4) = spyf77::sBlan80.substr(0, 5);
+ spycom::nKOLOut += 15;
+ goto a1664;
+
+ a1600:
+ n9 = (n8 - spycom::nMemKAR) / 2;
+ n10 = spycom::nMemKAR + 2 * n9 - n8;
+ n8 += 2;
+ if(n10 != 0)
+ goto a1628;
+ if(spycom::pIASCII[ n3 - 1 ] == 0)
+ spyf77::sANSI16 << std::setw (15) << std::setprecision (6) << spycom::pFKar1[ n9 ];
+ if(spycom::pIASCII[ n3 - 1 ] == 1)
+ spyf77::sANSI16 << " \"" << spycom::pFKar1[ n9 ] << "\" ";
+ goto a1633;
+
+ a1628:
+ if (n9 < 0)
+ --n9;
+ if (spycom::pIASCII[ n3 - 1 ] == 0)
+ spyf77::sANSI16 << spycom::pFKar2[ n9 ];
+ if (spycom::pIASCII[ n3 - 1 ] == 1)
+ spyf77::sANSI16 << spycom::pFKar2[ n9 ];
+
+ a1633:
+ spyf77::sOutLin.substr (spycom::nKOLOut, 14) = spyf77::sANSI16.str().substr(0, 15);
+ spycom::nKOLOut += 15;
+ goto a1664;
+
+ a1640:
+ spyf77::sANSI8 << std::setw(6) << spycom::pKar1[ n9 ];
+ spyf77::sOutLin.substr(spycom::nKOLOut, 5) = spyf77::sANSI8.str().substr(0, 6);
+ if(spycom::nIprSpy < 3)
+ goto a1662;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " i6 integer encoded for examine. n9,kar1(1 + n9) =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (8) << n9 << spycom::pKar1[ n9 ];
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+
+ a1662:
+ spycom::nKOLOut += 6;
+
+ a1664:
+ ++n5;
+ if (n5 <= spycom::pIMax[ jj - 1 ])
+ goto a1560;
+ if (jj < spycom::nNumex)
+ goto a1540;
+ if (spycom::nKOLOut < 132)
+ spyf77::sOutLin.substr (spycom::nKOLOut, 132 - spycom::nKOLOut) = std::string(132 - spycom::nKOLOut, ' ');
+ if (spycom::nIprSpy < 1)
+ goto a9000;
+ n17 = spycom::nIprSpy;
+ if (n17 > 80)
+ n17 = 80;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Exit \"examin\". kolout =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw (5) << spycom::nKOLOut;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " outlin(1:80) =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << spyf77::sOutLin.substr(0, n17);
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+
+ a9000:
+ ;
+ }
+
+ // subroutine deposi.
+ void deposi(const int &ind, int &n1, int &n2, double &d4)
+ {
+ // Module of interactive EMTP usage only, which services "emtspy".
+ // For non-interactive EMTP, this module can be destroyed.
+ // This near-universal module services "deposit", to actually
+ // perform the tampering. Symbol is in row ind. if it is
+ // of type alphanumeric, ansi8(1 : 6) in "dekspy" carries the
+ // new contents. Otherwise, d4 is the numeric value to be
+ // deposited, and intype gives the mode (1=integer, 0=real).
+ // Bounding subscripts on the deposit are n1 and n2, respectively.
+ // Computers with index problems (e.g., prime) need replacement
+ int intype;
+ int n8, n9, n10;
+ //
+ if (spycom::nIprSpy < 1)
+ goto a1846;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Top of \"deposi\". ind, intype, iascii(ind), d4, ansi8 =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(8) << ind << intype << spycom::pIASCII[ ind - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(15) << std::setprecision(4) << d4;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(8) << spyf77::sANSI8.str();
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+
+ a1846:
+ n8 = spycom::pLocate[ ind ];
+ if (spycom::pIASCII[ ind - 1 ] == 1)
+ spyf77::sANSI8 >> std::setw(6) >> d4;
+ if(intype == 0)
+ goto a1880;
+ n9 = n8 - spycom::nMemKAR + n1;
+
+ a1854:
+ spycom::pKar1[ n9 - 1 ] = (int) d4;
+ ++n1;
+ ++n9;
+ if(n1 <= n2)
+ goto a1854;
+ goto a8000;
+
+ a1880:
+ n9 = (n8 - spycom::nMemKAR) / 2 + n1;
+ n10 = spycom::nMemKAR + 2 * (n9 - n1) - n8;
+
+ a1904:
+ if(n10 == 0)
+ spycom::pFKar2[ n9 - 1 ] = d4;
+ ++n1;
+ ++n9;
+ if(n1 <= n2)
+ goto a1904;
+
+ a8000:
+ if (spycom::nIprSpy < 1)
+ goto a9000;
+ (*reinterpret_cast<std::stringstream *> (spycom::pMFiles[ 5 ])) << " Exit \"deposi\".";
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a9000:
+ ;
+ }
+
+ // subroutine intpar.
+ void intpar(const int &max, int &n1, int &n2, int &kill)
+ {
+ // Module of interactive EMTP usage only, which services "emtspy".
+ // this module is designed to extract two free-format row numbers
+ // from bytbuf(20) input buffer of common. These numbers must
+ // be positive, ordered (1st less than or equal to 2nd), and not
+ // in excess of the last table row "max". The to row numbers are
+ // passed back as "n1" and "n2" arguments. if this extraction
+ // was successful, "kill" is set to zero; if it failed, kill = 1.
+ // for non-interactive emtp, this module can be destroyed.
+ int i;
+ int j;
+ int n6, n13, n17, n22, n33;
+ //
+ kill = 0;
+ if(strcom::toLower(spycom::pByteBuf)[ 0 ] != 't')
+ goto a2071;
+ n1 = 1;
+ n2 = 1;
+ goto a2110;
+
+ a2071:
+ if(strcom::toLower(spycom::pByteBuf)[ 0 ] != 'b')
+ goto a2075;
+ n1 = max;
+ n2 = max;
+ goto a2110;
+
+ a2075:
+ if(strcom::toLower(spycom::pByteBuf)[ 0 ] != 'a')
+ goto a2088;
+ n1 = 1;
+ n2 = max;
+ goto a2110;
+
+ a2088:
+ for(i = 1; i <= 20; i++) {
+ n13 = 21 - i;
+ if(spycom::pByteBuf[ n13 - 1 ] == ' ') {
+ ;
+ } else {
+ if(spycom::pByteBuf[ n13 - 1 ] != ',')
+ goto a2054;
+ n6 = 20 - i;
+ for(j = 1; j <= n6; j++) {
+ n13 = 21 - i + j;
+ spycom::pByteBuf[ n13 - 1 ] = spycom::pByteBuf[ j - 1 ];
+ }
+ goto a2054;
+ }
+ }
+
+ a2054:
+ n22 = 0;
+ n13 = 0;
+ for(i = 1; i <= 20; i++) {
+ n17 = i - 1;
+ if(spycom::pByteBuf[ i - 1 ] != ' ')
+ goto a2091;
+ if(n22 == 0)
+ goto a2104;
+ if (spycom::pByteBuf[ n17 - 1 ] == ' ')
+ goto a2104;
+ if(spycom::pByteBuf[ n17 - 1 ] == ',')
+ goto a2104;
+ ++n13;
+ goto a2104;
+
+ a2091:
+ ++n22;
+ if(spycom::pByteBuf[ i - 1 ] == ',')
+ goto a2093;
+ if(spycom::pByteBuf[ n17 - 1 ] == ' ')
+ goto a2104;
+ ++n13;
+ goto a2104;
+
+ a2093:
+ for(j = 1; j <= 10; j++)
+ if(spycom::pByteBuf[ i - 1 ] == spyf77::pDigit[ j - 1 ])
+ goto a2104;
+
+ a2104:
+ ;
+ }
+ if (n22 > 0)
+ goto a2109;
+ n1 = n2 + 1;
+ if(n1 <= max)
+ goto a2107;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ---- Wrap around, end to beginning ----";
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+ n1 = 1;
+
+ a2107:
+ n2 = n1 + n33;
+ goto a2110;
+
+ a2109:
+ if(n13 == 2)
+ goto a2132;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ???? Illegal data (not blank or two dec free-format integers. Try again.";
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Is it possible user's data has no such table (other cause of message)?";
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+ kill = 1;
+ goto a9000;
+
+ a2132:
+ freedom::freeIn(spycom::pByteBuf, n1, n2);
+ n33 = n2 - n1;
+
+ a2110:
+ if(n1 <= 0)
+ n1 = 1;
+ if(n2 > max)
+ n2 = max;
+
+ a9000:
+ if (spycom::nIprSpy < 1)
+ goto a9006;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Return from \"intpar\". max, n1, n2, kill =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(6) << max << n1 << n2 << kill;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a9006:
+ ;
+ }
+
+ // subroutine append.
+ void append(void)
+ {
+ // implicit real(8) (a-h, o-z), integer(4) (i-n)
+ // module connected to key word "append" of spy. others
+ // can perfect and use their own installation-dependent
+ // (and perhaps proprietary) extensions via this module.
+ ;
+ }
+
+ // subroutine sosrng.
+ void sosrng (int *kill)
+ {
+ // Module of interactive EMTP usage only, which services "emtspy".
+ // This module serves to extract a beginning and ending line number
+ // for sos-like editing operations of "edit" command. These two
+ // integer outputs are (lidnt1, lidnt2) of common. The only
+ // argument is "kill", which tells whether the operation was a
+ // success: "0" means success, "1" means error.
+ // For non-interactive EMTP, this module can be destroyed.
+ char char2;
+ int n1, n12, n13, n24;
+ //
+ if(spycom::nIprSpy < 1)
+ goto a2615;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Top \"sosrange\". bytbuf(a20) =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(20) << spycom::pByteBuf;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " numsym, lidnt1, linnow, char1 =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(5) << spycom::nNumSym << spycom::nLIdnt1 << spycom::nLinNow;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(1) << spycom::cChar1;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2615:
+ blkcom::nKill = 0;
+ if(spycom::cChar1 != ' ')
+ goto a2629;
+ n12 = spycom::nLinSPN;
+ spycom::nLIdnt1 = spycom::nLIdnt2 + 1;
+ spycom::nLIdnt2 = spycom::nLIdnt1 + n12;
+ goto a2662;
+
+ a2629:
+ if(spycom::pByteBuf[ 0 ] != '#')
+ goto a2632;
+ spycom::nIBegCL = 2;
+ getnum (n1);
+ if (n1 != -87654)
+ goto a2630;
+
+ a2621:
+ do {
+ blkcom::nKill = 1;
+ goto a9000;
+
+ a2630:
+ spycom::nLIdnt1 = spycom::nLinNow + 1;
+ spycom::nLIdnt2 = spycom::nLinNow + n1;
+ goto a2662;
+
+ a2632:
+ if (spycom::pByteBuf[ 0 ] != ' ')
+ goto a2635;
+ if (spycom::nLinNow < spycom::nNumCRD)
+ goto a2634;
+ std::cout << " No such lines exist." << std::endl << std::flush;
+ goto a2621;
+
+ a2634:
+ n1 = 16;
+ goto a2630;
+
+ a2635:
+ spycom::nIBegCL = 0;
+ n13 = 0;
+ spycom::nLIdnt1 = 0;
+ spycom::nLIdnt2 = 0;
+
+ a2636:
+ ++spycom::nIBegCL;
+ n24 = 0;
+ if (spycom::nIprSpy < 2)
+ goto a2644;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 6 ])) << " Begin next lidnt. ibeg n13 lidnt1 jpoint n1 n24";
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 6 ])) << std::string(18, ' ');
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 6 ])) << std::setw(8) << spycom::nIBegCL << n13 << spycom::nLIdnt1 << spycom::nLinNow << n1 << n24;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+
+ a2644:
+ if (spycom::pByteBuf[ spycom::nIBegCL - 1 ] != '.')
+ goto a2645;
+ n24 = spycom::nLinNow;
+ goto a2654;
+
+ a2645:
+ if (spycom::pByteBuf[ spycom::nIBegCL - 1 ] != '^')
+ goto a2648;
+ n24 = 1;
+ goto a2654;
+
+ a2648:
+ if (spycom::pByteBuf[ spycom::nIBegCL - 1 ] != '*')
+ goto a2657;
+ n24 = spycom::nNumCRD;
+
+ a2654:
+ ++spycom::nIBegCL;
+
+ a2657:
+ getnum(n1);
+ if (n1 == -87654)
+ goto a2621;
+ ++n13;
+ if(n13 == 1)
+ spycom::nLIdnt1 = n24 + n1;
+ if(n13 == 2)
+ spycom::nLIdnt2 = n24 + n1;
+ if(n13 == 2)
+ goto a2662;
+ ++spycom::nIBegCL;
+ if(spycom::pByteBuf[ spycom::nIBegCL - 1 ] == ':')
+ goto a2636;
+ if(spycom::pByteBuf[ spycom::nIBegCL - 1 ] != '#')
+ goto a2659;
+ ++spycom::nIBegCL;
+ getnum(n1);
+ if(n1 == -87654)
+ goto a2621;
+ spycom::nLIdnt2 = spycom::nLIdnt1 + n1 - 1;
+ goto a2662;
+
+ a2659:
+ spycom::nLIdnt2 = spycom::nLIdnt1;
+
+ a2662:
+ if(spycom::nLIdnt1 >= 1)
+ goto a2663;
+ std::cout << " Illegal syntax of command." << std::endl << std::flush;
+ } while(1);
+
+ a2663:
+ if(spycom::nLIdnt1 <= spycom::nNumCRD)
+ spycom::nLIdnt2 = spycom::nNumCRD;
+
+ a9000:
+ if(spycom::nIprSpy >= 1) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Exit \"sosrng\". lidnt1, lidnt2, kill, char2 =";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(6) << spycom::nLIdnt1 << spycom::nLIdnt2 << kill;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(1) << char2 << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));;
+ }
+ }
+
+ // subroutine stopin.
+ void stopin(void)
+ {
+ // Universal module of interactive EMTP (spy of "emtspy").
+ // If non-interactive version, module can be destroyed. This
+ // module is called only to display erroneous file6(istep), &
+ // prompt user to send a corrected copy. Called by "datain".
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ? ? ? Trouble with input data. Last card number" << std::setw (5) << blkcom::nIStep;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " is in error." << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " 12345678901234567890123456789012345678901234567890123456789012345678901234567890" << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << spyf77::sFile6[ blkcom::nIStep - 1 ].substr(0, 80) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ if(blkcom::nM4Plot != 1) {
+ blkcom::nKill = 79;
+ blkcom::sLStat[ 18 ] = 1218;
+ } else {
+ spyf77::sProm80 = " Send corrected card (spy, stop) :";
+ utilities::prompt(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 6 ]), \
+ spyf77::sProm80);
+ (*reinterpret_cast<std::istream *>(spycom::pMFiles[ 4 ])).read(&spyf77::sBuff77[ 0 ], 80);
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 4)) == "stop")
+ emtp::stoptp();
+ else {
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 4)) == "spy ")
+ spying();
+ else
+ spyf77::sFile6[ blkcom::nIStep - 1 ] = spyf77::sBuff77;
+ }
+ }
+ }
+
+ // subroutine helper.
+ void helper(int &n1)
+ {
+ int k;
+ int n8, n23, n24;
+ //
+ n8 = n1;
+ if(dekplt::sBuffIn.substr(5, 10) != " ")
+ goto a3618;
+
+ a3613:
+ k = spycom::nNumKey + n8 + 1;
+ n23 = spycom::pKBegTX[ k - 1 ];
+ n24 = spycom::pKBegTX[ k ] - 1;
+ goto a3673;
+
+ a3618:
+ if(strcom::toLower(dekplt::sBuffIn.substr(6, 10)) != "outer")
+ goto a3622;
+ n8 = 1;
+ goto a3613;
+
+ a3622:
+ if(strcom::toLower(dekplt::sBuffIn.substr(6, 11)) != "middle")
+ goto a3627;
+ n8 = 2;
+ goto a3613;
+
+ a3627:
+ if(strcom::toLower(dekplt::sBuffIn.substr(6, 10)) != "inner")
+ goto a3634;
+ n8 = 3;
+ goto a3613;
+
+ a3634:
+ n23 = spycom::pKBegTX[ spycom::nNumKey ];
+ n24 = spycom::pKBegTX[ spycom::nNumKey + 4 ] - 1;
+
+ // To do.
+ a3673:
+ ;
+ }
+
+ // subroutine timval.
+ void timval(void)
+ {
+ // To do.
+ }
+
+ // subroutine back14.
+ void back14(void)
+ {
+ // To do.
+ }
+
+ // subroutine setrtm.
+ void setrtm(void)
+ {
+ // To do.
+ }
+
+ // subroutine flatbd.
+ void flatbd(void)
+ {
+ // To do.
+ }
+
+}
+
+// end of file over20.cpp