data types described in the following subsections. Structurally, there is an indeterminate number (possibly zero) of special-request inputs (Section II-A) that come first, in any order (unless usage dictates an order for the problem of interest). The miscellaneous data cards of Section II-B, followed by possible extensions to these cards in Section II-C, only come after the last of any such special-request cards of Section II-A.
Special-Request Cards That Precede Miscellaneous Data
Free-format data options are useful for special-request inputs, particularly for the user who is keying data via a conventional, dumb computer terminal (on which column position is not intuitively obvious). Take the
"FREQUENCY SCAN" declaration of Section A-16 as an example. Using free format, a valid sample card image is as follows: "FREQUENCY SCAN, 10., 5.0, 100., 0" . Even further abbreviation is possible for the really-lazy data assembler. Rather than using the full request word, an acronym made up of the first letter of each sub-word can be used. In this case, "FREQUENCY SCAN" can be abbreviated as "FS", if desired. All special-request words are recognized in such abbreviated, free-format fashion.
All possible special-request cards that could be recognized at this point of EMTP data input shall now be listed in alphabetical order, for ease of location. Before each is the number of the subsection (within the present Section II-A) that contains an explanation of usage:
1) ABSOLUTE TACS DIMENSIONS allocation of storage for 8 TACS tables 2) ABSOLUTE U.M. DIMENSIONS allocation of storage for 4 U.M. tables 55) ACCESS MODULE BCTRAN branch cards for multi-phase transformer 3) ALTERNATE DIAGNOSTIC PRINTOUT selective printout in time-step loop 4) ANALYTIC SOURCES USAGE user supplied sources: desire to use 41) AUTO NAME toggle choice of internal branch naming 5) AVERAGE OUTPUT average values for EMTP output variables 6) BEGIN NEW DATA CASE case-separation card precedes data case 7) BEGIN PEAK VALUE SEARCH time the extrema computation can begin 8) BLANK card to signal the end of stacked data cases 9) CABLE CONSTANTS cable system: calculation of constants 48) CENTRAL STATISTICS FILE name of the OPMC file PARALLEL.LIS 10) CHANGE PRINTOUT FREQUENCY change frequency of solution printout 42) CHANGE SWITCH to modernize former switched-R,L data 56) CHANGE TRANSFORMER to Convert saturable TRANSFORMER to [Z]
11) CUSTOM PLOT FILE change precision of the plot file
43) DATA BASE MODULE modularize data: $INCLUDE with arguments 12) DIAGNOSTIC selective diagnostic printout specified 44) DISK PLOT DATA toggle plot data storage (disk vs. RAM) 53) EXACT PHASOR EQUIVALENT toggle lumped-R to long-line formulas 14) FILE REQUEST access to module "MIDOV1" during input 15) FIX SOURCE EMTP load flow: declare intention to use 16) FREQUENCY SCAN multiple-freq. steady state solutions 45) HYSTERESIS to punch Type-96 hysteresis branch cards 17) JMARTI SETUP frequency-dependent overhead line data 18) KILL CODES output range of program error messages 19) LINE CONSTANTS calculate overhead line constants
20) LINEAR BIAS USAGE linearly-varied (not random) switch bias 57) LOAD MORE SHOTS to combine 2 or more Monte Carlo studies 21) MISCELLANEOUS DATA CARDS read program miscellaneous data cards 22) MODE VOLTAGE OUTPUT modal voltage output of distributed line
13) NETWORK EQUIVALENT transfer to network equivalent routine 47) OBSERVE PARALLEL MONTE CARLO display and manage central status file 23) OLD TO NEW ZNO convert old data of ZnO to new formats 24) OMIT BASE CASE skip base base solution of Monte Carlo 25) PEAK VOLTAGE MONITOR request for peak node or branch voltage 26) POSTPROCESS PLOT FILE postprocess ".PL4" plot file using TACS 27) POWER FREQUENCY change the synchronous power frequency 28) PRINTED NUMBER WIDTH for width, blanks of DELTAT-loop numbers 49) RANDOM NUMBER GENERATOR SEED initialize the random number generator 54) READ PL4 HEADER REWIND LUNIT4 and then read header only 29) RELATIVE TACS DIMENSIONS relative sizing of the 8 TACS tables 30) REPLOT batch-mode plot of previous solution 31) SATURATION produce regular & hysteretic B-H curves 32) SEMLYEN SETUP 2-order frequency-dependent line fitter 33) START AGAIN restart a halted, preceding simulation 34) STEP ZERO COUPLE subnetwork ident. with switches closed 58) TACS SPLIT to define INTEGER/REAL ratio of new TACS 35) TACS WARN LIMIT limit on the number of TACS warnings 36) TIME STEP LOOP transfer control to the time-step loop 52) TOGGLE EXTREMA MODE FORMATTED vs. UNFORM. "LOAD MORE SHOTS"
51) TRUNCATE OUTPUT LINES output line limit after formed as KOL132 46) UM TO TACS U.M. output variables go to Type-92 TACS 50) USER IDENTIFICATION 6-byte label overrides USERID of STARTUP 37) USER SUPPLIED SWITCH TIMES user supplied random switching times 38) XFORMER derive impedance matrix for transformers 39) ZINC OXIDE redefine controls of ZnO Newton solution 40) ZNO FITTER to fit exponentials to ZnO data points
Most of these (e.g. "AUTO NAME") are self-contained, so the explanation that follows will be complete. But a few represent requests for the transfer to separate supporting programs, and for these requests, there will be references to further explanation at the back end of the book. An example of the latter is
"NETWORK EQUIVALENT". A final point is about abbreviations, which can always be used (although such use is not encouraged). In alphabetical order, corresponding to the preceding tabulation, we have:
ATD AUMD AMB ADP ASU AN AO BNDC BPVS CC CSF CPF CS CT CPF DBM D DPD EPE FR FXS FS HYS JMS KC LC LBU LMS MDC MVO NE OPMC OTNZ OBC PVM PPF PF PNW RNGS RPH RTD R S SS SA SZC TS TWL TSL TEM TOL UTT UID USST X ZO ZF
Request for Absolute Allocation of Total TACS Storage
TACS is the control-system modeling feature of Section 8. Total working space for all TACS tables is assigned in List 19, along with the other 27 or so EMTP lists (see Section I-G). But there still remains the question of how this total working space is to be divided among the eight TACS tables. This allocation can be performed at execution time, according to the description of the present section, thanks to the procedure of offset subscripting (see Ref. 8, Vol. VIII, 27 January 1979, pages PROV-19 through 22).
The first way to allocate total TACS storage is with a request for absolute TACS table sizing ("ABSOLUTE TACS DIMENSIONS"), followed by a card giving the desired absolute sizes:
2345678901234567890123456789012345678901234567890123456789012345678901234567890 1 2 3 4 5 6 7 8 1
ABSOLUTETACSDIMENSIONS
8
2345678901234567890123456789012345678901234567890123456789012345678901234567890
1 2 3 4 5 6 7 8
1
I8 I8
I 8 I
8 I
8 I
8 I8
I8
LT1 LT2 LT3 LT4 LT5 LT6 LT7 LT8
9
The format for the sizes is 8I8, with the 8 required TACS table sizes having the following meaning:
LT1 : Maximum number of TACS dynamic function blocks, having Laplace transfer functions H(s) .
LT2 : Maximum number of nonzero factors of the triangularized TACS network matrix. This limit applies to both the steady-state solution and the transient solution.
LT3 : Maximum total number of input variables to TACS dynamic function and supplemental devices.
LT4 : Maximum number of TACS sources. This includes built-in sources (e.g., "TIMEX" or "UNITY") and variables passed from the electric network to be TACS driving functions.
LT5 : Maximum number of supplemental variables and devices (type codes 99, 98, or 88 keyed in columns 1-2).
LT6 : Maximum total number of extra INTEGER pointers which are associated with supplemental variables and devices. There is no easy, exact formula, although sample figures can be given. Each parenthesis requires 3 cells, as does each arithmetic operation ("+", "*", "=").
LT7 : Maximum total number of extra REAL cells which are associated with TACS variables. Each TACS variable requires one or more such cells. Again, a simple rule is impossible to state. Each first-order function block requires 10 cells, intermediate variables of supplemental-variable expression evaluation each requires one, the average device might require between 3 and 5, and the most
complex device (the RMS sensor, Type 66 (requires 1 / ( f * DELTAT ) where "f"
is the fundamental frequency.
LT8 : Maximum number of distinct TACS variables used in the TACS data specification.
Provided the total storage represented by this request is less than or equal to the List-19 space available, execution will proceed normally. If not, the overflow will be noted before any TACS data will actually be read. The result would be a KILL = 1 message pointing to List 19.
A second way to allocate total TACS storage is via a request for relative sizing. That is, rather than request a specific number of function blocks, supplemental variables, etc., the user can simply request a proportional allocation (e.g., 5% of the total storage for function blocks, etc.). See Section A-29 for details.
The interpretation of the two input data cards confirms only the first 5 of the 8 integers being specified. The following illustration has been taken from the 2nd half of BENCHMARK DC-18:
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ---|---Request to define new TACS allocation absolutely. |ABSOLUTE TACS DIMENSIONS TACS table sizes. 10 90 100 20 30 | 10 90 100 Request for Absolute Allocation of Total U.M. Storage
The universal machine (U.M.) component of Section IX has total working space for all tables assigned in List 25 of the overall program variable dimensioning (see Section I-G). But there still remains the flexibility of dividing this total working space among among the four U.M. tables by means of the following request for absolute sizes:
2345678901234567890123456789012345678901234567890123456789012345678901234567890
1 2 3 4 5 6 7 8
1
I
8 I8 I8 I8
N
CLFIX NUMFIX IOTFIX IBSFIX ABSOLUTEU.M. DIMENSIONS
10
Parameters:
NCLFIX (33-40): Maximum total number of U.M. coils in the data case. This is the total for all U.M. components involved.
NUMFIX (41-48): Maximum number of U.M. components for the data case.
IOTFIX (49-56): Maximum number of U.M. output quantities (total for all machines).
IBSFIX (57-64): Maximum number of U.M. 6-character alphanumeric names (total for all machines).
Provided the total storage represented by this user request is less than or equal to the List-25 space available, execution will proceed in a nominal fashion.
If not, this fact will be noted in UTPF overlay 5 as the first U.M. data component itself is ready for input, and an EMTP error message will result. In any case, the corresponding minimum size for List 25 will be shown as part of the column 1-50 interpretation of the Type-19 request card for U.M. modeling. This way, the user knows what fraction of the available space he is utilizing.
If the user fails to input such a request for U.M. table sizing, then the EMTP allocates default dimensions equal to (20, 3, 50, 60) within UTPF overlay 5.
For computers with 32-bit integers and 64-bit floating-point values (e.g., Apollo, VAX, PRIME, and IBM), a List-25 size of 300 is sufficient for this usage (and it corresponds to the default allocation of "VARDIM" for List 25). Word machines will need more (it appears that value 410 should be adequate).
Interpretation of the input data confirms the four U.M. table sizes that have been requested, of course. As an illustration, consider the associated output line of BENCHMARK DCNEW-1:
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ---|---U.M. table sizes. 20 2 50 60 |ABSOLUTE ---|---U.M. DIMENSIONS Request for Alternative Diagnostic Printout of the Time-Step Loop
If minus signs are applied to MULT(K) as part of the printout frequency changes of Section II-C (or the equivalent "CHANGE PRINTOUT FREQUENCY"
declaration of Section A-10), then diagnostic printout controls of the time-step loop are to be switched. Those of the "DIAGNOSTIC" request (Section A-12) are in effect initially. Then, at the time of the first change, an alternate set of printout control parameters IPR(1:4) is used instead. These four new variables replace IPRSOV(16:19), to control the diagnostic output of the four pieces of the time-step loop. Upon the second such change (the second negative MULT), there is a switch back to the original DIAGNOSTIC printout control codes. Etc. (for each minus sign, the two sets of control variables are switched).
The alternate set of printout control parameters IPR(1:4) is automatically initialized to zero at the beginning of execution. If this is what the user wants, a declaration of the present section is not required. This would be for the common usage that will begin with diagnostic printout for steps 0 and 1, but which has no such output thereafter.
On the other hand, if the time-step loop is to begin without any diagnostic printout, then nonzero IPR(K) must be defined by the user. This is done using the following special-request card:
2345678901234567890123456789012345678901234567890123456789012345678901234567890
1 2 3 4 5 6 7 8
1
ALTERNATEDIAGNOSTICPRINTOUT I8 I8 I8 I8
I
PR1 IPR2 IPR3 IPR4
11
Interpretation of the input data confirms the four printout controls that have been requested, of course. As an illustration, consider the associated output line of BENCHMARK DC-53:
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ---|---DELTAT-loop printout. 9 9 9 9 |ALTERNATE DIAGNOSTIC PRIN
Declaration of Intention to Use Type 1-10 Sources Analytically
As explained in Section VII, source types 1 through 10 are reserved for functions that are directly defined by the user. If one or more such source functions is to be defined in FORTRAN within a special user-supplied version of SUBROUTINE ANALYT, then the following special request record must precede input of the miscellaneous data cards for the data case in question:
2345678901234567890123456789012345678901234567890123456789012345678901234567890 1 2 3 4 5 6 7 8 1
ANALYTICSOURCESUSAGE
12
It is the user's responsibility to see to it that his own special SUBROUTINE ANALYT has replaced the near-dummy module comes with the UTPF, of course. The UTPF module is useful only for the artificial illustration of BENCHMARK DC-6.
Interpretation of the input declaration appears as follows (note that there are no parameter values to be confirmed):
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ---|---User-supplied SUBROUTINE ANALYT is declared. |ANALYTIC SOURCES USAGE
Request to Average EMTP Output
Successive values of EMTP output variables will be averaged prior to printing and plotting if the following request is made:
2345678901234567890123456789012345678901234567890123456789012345678901234567890
1 2 3 4 5 6 7 8
1
AVERAGEOUTPUT 13
The mathematics of the EMTP solution are not affected; this is just a massaging of the answers at the time answers are printed and/or written to the plot file of LUNIT4. By averaging is meant the arithmetic mean of the current and the preceding variable value: (V-new + V-old) / 2 .
For studies where EMTP output variables are smooth functions of time, the
"AVERAGE OUTPUT" request would have negligible effect, and should not be used (it just adds a small error to the answer). But there are problem cases such as the hanging inductor (see the two pages of discussion in Section VI about "REMARKS ON OPENING ACTION"). There are pathological cases where the trapezoidal rule gives answers that oscillate around the true value, so this remedy might sometimes be useful. As an example of such usage, see BENCHMARK DC-55.
Interpretation of the input declaration appears as follows (note that there are no parameter values to be confirmed):
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ---|---Request to average (smooth) output variables. |AVERAGE OUTPUT
Optional Case-Separation card
While not mandatory, it is good practice for the EMTP user to make the very first card of each data case a special case-separation marker:
2345678901234567890123456789012345678901234567890123456789012345678901234567890
1 2 3 4 5 6 7 8
1
BEGINNEWDATACASE
14
See any standard test case (e.g., BENCHMARK DC-18) for an example.
For execution that terminates normally, or for single-data-case solutions, this just described card serves no operational purpose. It does, of course, appear on the 80-column input data listing, with appropriate interpretation on the left, but that's all.
On the other hand, should the EMTP decide to prematurely terminate execution of a particular data-case solution (with an EMTP error message), then a case-separation marker becomes important. The program automatically steps over remaining input cards, discarding them one at a time until it finds such a "BEGIN NEW DATA CASE" record. At that point, a new data case is known to begin, so the EMTP can correctly recover to solve the just-found following case. This is referred to as EMTP error-recovery capability, during execution involving two or more data cases.
Yet suppose that it was during the solution of the final data case of program execution that a fatal EMTP error termination occurs. In this case, there would be no following data case, so further solutions would not be possible. To distinguish this situation, the final data case should always be followed by a
"BEGIN NEW DATA CASE" card and a blank card, in order to terminate execution cleanly. The blank card in this situation is read as the start of a new data case, and the lack of any keying on it is recognized by the EMTP as the end of all data cases. In the absence of such usage, recovery following an EMTP error will result in the encounter of an end to input data, which will be accompanied by a second EMTP error message (messy).
It should be emphasized that "BEGIN NEW DATA CASE" cards must be properly positioned in the data deck; they do not in any way alter the need for blank termination cards (the function of which is explained in section II-A-8). The identity and function of these special cards is recognized by the EMTP in only two places:
1. Following an EMTP fatal error, such cards are watched for as other records of the input data are discarded.
2. Following normal completion of the solution for any particular data case, the very first non-comment record of the following data case will be checked for "BEGIN NEW DATA CASE".
Any other placement of these key cards will generally lead to error termination by the operating system, since the alphanumeric text will be decoded numerically (which is impossible).
Interpretation of the input declaration appears as follows (note that there are no parameter values to be confirmed):
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ---|---Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Request for Delay in Extrema Calculation
The integer miscellaneous data parameter MAXOUT (see Section II-B) provides for the calculation and output of variable extrema. The
same vector of extrema is used for "STATISTICS" and "SYSTEMATIC" output as well.
Normally, extrema are wanted over the full time span of the simulation. But not always. There are cases where one wants to ignore a certain initial interval of the simulation, only considering transients after a certain minimum time. For example, in a "STATISTICS" simulation, it is possible that random closing will follow the opening of breakers (the clearing of a fault), but that the peak simulation voltage will be produced during the deterministic opening portion of the simulation. If extrema were calculated over the entire time span of the simulation, each energization would generate identical peaks, which is useless to the designer. So, in this case, the solution is to inhibit the calculation of extrema until transients of the opening phase of execution have passed. This is possible, using the following special-request card upon which the beginning time BEGMAX in seconds is to be keyed in columns 33-40:
2345678901234567890123456789012345678901234567890123456789012345678901234567890
1 2 3 4 5 6 7 8
1
BEGINPEAKVALUESEARCH E8.0
BEGMAX
15
For an example of such usage, see BENCHMARK DC-48.
So much for the simplest possible case, where an initial time span is simply ignored in the extrema calculation. But more complex time ranges are possible, if the above BEGMAX is given a value of "-1.0". In this case, an extra card is to follow, upon which monotone increasing times T1, T2, etc. are to be keyed:
2345678901234567890123456789012345678901234567890123456789012345678901234567890
1 2 3 4 5 6 7 8
1
1stinterval 2ndinterval 3rdinterval
E8.0 E8.0 E8.0 E8.0 E8.0 E8.0
T1 T2 T3 T4 T5 T6
4
thinterval 5thinterval
E8.0 E8.0 E8.0 E8.0
T7 T8 T9 T10
16
In this case, extrema are to be calculated only for those portions of the simulation that intersect the sub-intervals of time (T1, T2), (T3, T4), etc.
Present dimensioning of this feature has been limited to the single card of five subintervals, as shown. In case fewer than this maximum are actually desired, the 4 or fewer pairs should be followed by a very large time that will never be reached: the beginning time of a bounding subinterval.
Interpretation of the input data confirms the starting time BEGMAX of the search for extrema, if this is positive (the simple case). Using BENCHMARK DC-53 as an illustration:
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ---|---Extrema lookout begins at t = 5.2500E-01 sec. |BEGIN PEAK VALUE SEARCH
On the other hand, if BEGMAX = -1.0, then the more complicated, 2-card input is involved. BENCHMARK DC-53 provides an illustration of such usage:
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ---|---Extrema lookout begins at t = -1.0000E+00 sec.|BEGIN PEAK VALUE SEARCH (T1,T2): 5.00E-01 1.50E+00 2.50E+00 3.50E+00 | 0.5 1.5 2.5 Blank Card to Terminate EMTP Execution
The traditional termination procedure for the solution of a disk file that contains one or more stacked data cases is to have the first card of the following (non-existent) data case completely blank. The use of "BLANK " in columns 1-7, followed by anything for the rest of the card image, is also
The traditional termination procedure for the solution of a disk file that contains one or more stacked data cases is to have the first card of the following (non-existent) data case completely blank. The use of "BLANK " in columns 1-7, followed by anything for the rest of the card image, is also