summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAngelo Rossi <angelo.rossi.homelab@gmail.com>2023-06-21 12:04:16 +0000
committerAngelo Rossi <angelo.rossi.homelab@gmail.com>2023-06-21 12:04:16 +0000
commitb18347ffc9db9641e215995edea1c04c363b2bdf (patch)
treef3908dc911399f1a21e17d950355ee56dc0919ee
downloadgemtp++-b18347ffc9db9641e215995edea1c04c363b2bdf.tar.gz
Initial commit.
-rw-r--r--LICENSE28
-rw-r--r--Makefile.global230
-rw-r--r--benchmarks/DC4INS.DAT46
-rw-r--r--benchmarks/_0
-rw-r--r--benchmarks/antani.dat0
-rw-r--r--benchmarks/data_case_001.dat41
-rw-r--r--benchmarks/data_case_002.dat42
-rw-r--r--benchmarks/data_case_003.dat46
-rw-r--r--benchmarks/data_case_003a.dat53
-rw-r--r--benchmarks/data_case_003b.dat54
-rw-r--r--benchmarks/dc1.dat1364
-rw-r--r--benchmarks/dc10.dat378
-rw-r--r--benchmarks/dc11.dat409
-rw-r--r--benchmarks/dc12.dat183
-rw-r--r--benchmarks/dc13.dat589
-rw-r--r--benchmarks/dc14.dat196
-rw-r--r--benchmarks/dc15.dat90
-rw-r--r--benchmarks/dc16.dat230
-rw-r--r--benchmarks/dc17.dat101
-rw-r--r--benchmarks/dc17ains.dat22
-rw-r--r--benchmarks/dc17bins.dat60
-rw-r--r--benchmarks/dc17cins.dat60
-rw-r--r--benchmarks/dc17dins.dat66
-rw-r--r--benchmarks/dc17inc1.dat19
-rw-r--r--benchmarks/dc17inc2.dat11
-rw-r--r--benchmarks/dc17ins.dat44
-rw-r--r--benchmarks/dc18.dat384
-rw-r--r--benchmarks/dc19.dat355
-rw-r--r--benchmarks/dc2.dat1024
-rw-r--r--benchmarks/dc20.dat166
-rw-r--r--benchmarks/dc21.dat545
-rw-r--r--benchmarks/dc21se45.dat5
-rw-r--r--benchmarks/dc22.dat1713
-rw-r--r--benchmarks/dc22d.dat602
-rw-r--r--benchmarks/dc22e.dat478
-rw-r--r--benchmarks/dc23.dat333
-rw-r--r--benchmarks/dc24.dat878
-rw-r--r--benchmarks/dc24clik.dat555
-rw-r--r--benchmarks/dc24clu8.dat16
-rw-r--r--benchmarks/dc24lun8.dat16
-rw-r--r--benchmarks/dc25.dat553
-rw-r--r--benchmarks/dc26.dat551
-rw-r--r--benchmarks/dc27.dat524
-rw-r--r--benchmarks/dc28.dat511
-rw-r--r--benchmarks/dc29.dat276
-rw-r--r--benchmarks/dc3.dat633
-rw-r--r--benchmarks/dc30.dat753
-rw-r--r--benchmarks/dc31.dat486
-rw-r--r--benchmarks/dc31chen.dat49
-rw-r--r--benchmarks/dc32.dat96
-rw-r--r--benchmarks/dc32a.dat87
-rw-r--r--benchmarks/dc32b.dat83
-rw-r--r--benchmarks/dc32old.dat165
-rw-r--r--benchmarks/dc33.dat711
-rw-r--r--benchmarks/dc33inc1.dat27
-rw-r--r--benchmarks/dc33inc2.dat15
-rw-r--r--benchmarks/dc33incf.dat12
-rw-r--r--benchmarks/dc34.dat194
-rw-r--r--benchmarks/dc35.dat159
-rw-r--r--benchmarks/dc36.dat295
-rw-r--r--benchmarks/dc36incl.dat12
-rw-r--r--benchmarks/dc37.dat677
-rw-r--r--benchmarks/dc37star.dat46
-rw-r--r--benchmarks/dc38.dat885
-rw-r--r--benchmarks/dc39.dat197
-rw-r--r--benchmarks/dc3high.dat21
-rw-r--r--benchmarks/dc3pl4op.dat10
-rw-r--r--benchmarks/dc4.dat245
-rw-r--r--benchmarks/dc40.dat417
-rw-r--r--benchmarks/dc40clik.dat421
-rw-r--r--benchmarks/dc41.dat519
-rw-r--r--benchmarks/dc42.dat240
-rw-r--r--benchmarks/dc43.dat166
-rw-r--r--benchmarks/dc44.dat51
-rw-r--r--benchmarks/dc45.dat288
-rw-r--r--benchmarks/dc46.dat260
-rw-r--r--benchmarks/dc46a.dat22
-rw-r--r--benchmarks/dc47.dat751
-rw-r--r--benchmarks/dc48.dat498
-rw-r--r--benchmarks/dc49.dat30
-rw-r--r--benchmarks/dc49old.dat73
-rw-r--r--benchmarks/dc4bincl.dat12
-rw-r--r--benchmarks/dc4bins.dat58
-rw-r--r--benchmarks/dc4cins.dat60
-rw-r--r--benchmarks/dc4dins.dat64
-rw-r--r--benchmarks/dc4drtt.dat62
-rw-r--r--benchmarks/dc4drtt2.dat12
-rw-r--r--benchmarks/dc4ins.dat22
-rw-r--r--benchmarks/dc5.dat387
-rw-r--r--benchmarks/dc50.dat153
-rw-r--r--benchmarks/dc51.dat753
-rw-r--r--benchmarks/dc51fs3.dat100
-rw-r--r--benchmarks/dc51fs3p.dat34
-rw-r--r--benchmarks/dc51fs3z.dat34
-rw-r--r--benchmarks/dc51fs6.dat182
-rw-r--r--benchmarks/dc51fs6m.dat62
-rw-r--r--benchmarks/dc51fs6p.dat60
-rw-r--r--benchmarks/dc51fs6z.dat60
-rw-r--r--benchmarks/dc52.dat172
-rw-r--r--benchmarks/dc52fs3.dat89
-rw-r--r--benchmarks/dc53.dat499
-rw-r--r--benchmarks/dc53pl4.dat74
-rw-r--r--benchmarks/dc54.dat54
-rw-r--r--benchmarks/dc55.dat298
-rw-r--r--benchmarks/dc56.dat148
-rw-r--r--benchmarks/dc57.dat232
-rw-r--r--benchmarks/dc58.dat137
-rw-r--r--benchmarks/dc58inc1.dat11
-rw-r--r--benchmarks/dc58inc2.dat2
-rw-r--r--benchmarks/dc58inc3.dat2
-rw-r--r--benchmarks/dc58inc4.dat4
-rw-r--r--benchmarks/dc59.dat557
-rw-r--r--benchmarks/dc59g.dat25
-rw-r--r--benchmarks/dc6.dat96
-rw-r--r--benchmarks/dc60.dat207
-rw-r--r--benchmarks/dc61.dat203
-rw-r--r--benchmarks/dc62.dat321
-rw-r--r--benchmarks/dc63.dat1135
-rw-r--r--benchmarks/dc64.dat57
-rw-r--r--benchmarks/dc64incl.dat47
-rw-r--r--benchmarks/dc65.dat63
-rw-r--r--benchmarks/dc66.dat210
-rw-r--r--benchmarks/dc67.dat78
-rw-r--r--benchmarks/dc68.dat1362
-rw-r--r--benchmarks/dc68se37.dat7
-rw-r--r--benchmarks/dc68se49.dat4
-rw-r--r--benchmarks/dc68se82.dat15
-rw-r--r--benchmarks/dc7.dat300
-rw-r--r--benchmarks/dc8.dat153
-rw-r--r--benchmarks/dc8incl0.dat7
-rw-r--r--benchmarks/dc8incl1.dat44
-rw-r--r--benchmarks/dc9.dat1367
-rw-r--r--benchmarks/dcn1.dat883
-rw-r--r--benchmarks/dcn10.dat212
-rw-r--r--benchmarks/dcn11.dat338
-rw-r--r--benchmarks/dcn12.dat2334
-rw-r--r--benchmarks/dcn13.dat305
-rw-r--r--benchmarks/dcn14.dat466
-rw-r--r--benchmarks/dcn14a.dat28
-rw-r--r--benchmarks/dcn14b.dat77
-rw-r--r--benchmarks/dcn14c.dat120
-rw-r--r--benchmarks/dcn14d.dat125
-rw-r--r--benchmarks/dcn14e.dat422
-rw-r--r--benchmarks/dcn14f.dat114
-rw-r--r--benchmarks/dcn15.dat484
-rw-r--r--benchmarks/dcn16.dat844
-rw-r--r--benchmarks/dcn17.dat646
-rw-r--r--benchmarks/dcn18.dat128
-rw-r--r--benchmarks/dcn19.dat763
-rw-r--r--benchmarks/dcn2.dat301
-rw-r--r--benchmarks/dcn20.dat639
-rw-r--r--benchmarks/dcn21.dat1300
-rw-r--r--benchmarks/dcn21inc.dat49
-rw-r--r--benchmarks/dcn22.dat720
-rw-r--r--benchmarks/dcn23.dat484
-rw-r--r--benchmarks/dcn24.dat1359
-rw-r--r--benchmarks/dcn25.dat1694
-rw-r--r--benchmarks/dcn25old.dat836
-rw-r--r--benchmarks/dcn26.dat1334
-rw-r--r--benchmarks/dcn27.dat997
-rw-r--r--benchmarks/dcn28.dat118
-rw-r--r--benchmarks/dcn29.dat1376
-rw-r--r--benchmarks/dcn3.dat613
-rw-r--r--benchmarks/dcn30.dat717
-rw-r--r--benchmarks/dcn31.dat55
-rw-r--r--benchmarks/dcn4.dat287
-rw-r--r--benchmarks/dcn5.dat257
-rw-r--r--benchmarks/dcn6.dat369
-rw-r--r--benchmarks/dcn7.dat539
-rw-r--r--benchmarks/dcn8.dat231
-rw-r--r--benchmarks/dcn9.dat370
-rw-r--r--benchmarks/dcp1.dat70
-rw-r--r--benchmarks/dcp10.dat53
-rw-r--r--benchmarks/dcp11.dat52
-rw-r--r--benchmarks/dcp12.dat35
-rw-r--r--benchmarks/dcp13.dat54
-rw-r--r--benchmarks/dcp14.dat65
-rw-r--r--benchmarks/dcp15.dat116
-rw-r--r--benchmarks/dcp16.dat78
-rw-r--r--benchmarks/dcp17.dat124
-rw-r--r--benchmarks/dcp18.dat65
-rw-r--r--benchmarks/dcp19.dat123
-rw-r--r--benchmarks/dcp2.dat31
-rw-r--r--benchmarks/dcp20.dat27
-rw-r--r--benchmarks/dcp21.dat127
-rw-r--r--benchmarks/dcp22.dat114
-rw-r--r--benchmarks/dcp23.dat17
-rw-r--r--benchmarks/dcp24.dat75
-rw-r--r--benchmarks/dcp25.dat49
-rw-r--r--benchmarks/dcp26.dat74
-rw-r--r--benchmarks/dcp3.dat69
-rw-r--r--benchmarks/dcp4.dat26
-rw-r--r--benchmarks/dcp5.dat40
-rw-r--r--benchmarks/dcp6.dat43
-rw-r--r--benchmarks/dcp7.dat59
-rw-r--r--benchmarks/dcp8.dat48
-rw-r--r--benchmarks/dcp9.dat60
-rw-r--r--benchmarks/fort.10
-rw-r--r--benchmarks/rettore.atp26
-rw-r--r--benchmarks/rettore.dat24
-rw-r--r--benchmarks/rettore2.atp12
-rw-r--r--benchmarks/rettore2.atp~26
-rw-r--r--benchmarks/rettore2.dat0
-rw-r--r--benchmarks/sacoi1.dat1151
-rw-r--r--benchmarks/sacoi1.dat~1151
-rw-r--r--benchmarks/test_001.dat33
-rw-r--r--benchmarks/test_001.dat~16
-rw-r--r--benchmarks/test_002.dat4
-rw-r--r--benchmarks/test_002.dat~32
-rw-r--r--documents/from BPA/EMTP Application Guide.pdfbin0 -> 4149769 bytes
-rw-r--r--documents/from BPA/EMTP Rule Book.pdfbin0 -> 21482757 bytes
-rw-r--r--documents/from BPA/EMTP Workbook.pdfbin0 -> 2836285 bytes
-rw-r--r--documents/from BPA/readme.txt1
-rw-r--r--documents/other/EL-4651-V2.pdfbin0 -> 15090387 bytes
-rw-r--r--documents/other/EL-4651.pdfbin0 -> 9816271 bytes
-rw-r--r--documents/other/EMTPTB.PDFbin0 -> 3928787 bytes
-rw-r--r--documents/other/readme.txt1
-rw-r--r--includes/algebra.hpp64
-rw-r--r--includes/blkcom.hpp260
-rw-r--r--includes/comlock.hpp22
-rw-r--r--includes/comlock.hpp~21
-rw-r--r--includes/datain.hpp36
-rw-r--r--includes/dekplt.hpp381
-rw-r--r--includes/dekplt.hpp~381
-rw-r--r--includes/dekspy.hpp158
-rw-r--r--includes/emtp.hpp75
-rw-r--r--includes/emtp.hpp~55
-rw-r--r--includes/freedom.hpp30
-rw-r--r--includes/lab02.hpp~22
-rw-r--r--includes/labcom.hpp117
-rw-r--r--includes/labl02.hpp50
-rw-r--r--includes/labl29.hpp48
-rw-r--r--includes/linemodel.hpp23
-rw-r--r--includes/location.hpp27
-rw-r--r--includes/main.hpp62
-rw-r--r--includes/movecopy.hpp29
-rw-r--r--includes/newmods.hpp63
-rw-r--r--includes/over1.hpp71
-rw-r--r--includes/over1.hpp~70
-rw-r--r--includes/over20.hpp67
-rw-r--r--includes/over51.hpp199
-rw-r--r--includes/over51.hpp~200
-rw-r--r--includes/plot.hpp41
-rw-r--r--includes/plot.hpp~17
-rw-r--r--includes/random.hpp26
-rw-r--r--includes/strcom.hpp22
-rw-r--r--includes/tacsar.hpp60
-rw-r--r--includes/tacsar.hpp~60
-rw-r--r--includes/time.hpp33
-rw-r--r--includes/umdeck.hpp42
-rw-r--r--includes/umdeck.hpp~17
-rw-r--r--includes/utilities.hpp67
-rw-r--r--includes/vardim.hpp41
-rw-r--r--includes/vardim.hpp~41
-rw-r--r--includes/volt45.hpp22
-rw-r--r--sources/Makefile144
-rw-r--r--sources/algebra.cpp362
-rw-r--r--sources/blkcom.cpp200
-rw-r--r--sources/comlock.cpp13
-rw-r--r--sources/datain.cpp1397
-rw-r--r--sources/dekplt.cpp265
-rw-r--r--sources/dekspy.cpp164
-rw-r--r--sources/emtp.cpp1130
-rw-r--r--sources/freedom.cpp64
-rw-r--r--sources/labcom.cpp101
-rw-r--r--sources/labl02.cpp36
-rw-r--r--sources/labl29.cpp50
-rw-r--r--sources/location.cpp65
-rw-r--r--sources/main.cpp387
-rw-r--r--sources/movecopy.cpp306
-rw-r--r--sources/newmods.cpp325
-rw-r--r--sources/over1.cpp767
-rw-r--r--sources/over20.cpp1909
-rw-r--r--sources/over51.cpp147
-rw-r--r--sources/plot.cpp172
-rw-r--r--sources/random.cpp236
-rw-r--r--sources/strcom.cpp33
-rw-r--r--sources/tacsar.cpp52
-rw-r--r--sources/time.cpp153
-rw-r--r--sources/umdeck.cpp32
-rw-r--r--sources/utilities.cpp356
-rw-r--r--sources/vardim.cpp219
-rw-r--r--sources/volt45.cpp15
283 files changed, 72761 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..ed316ae
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,28 @@
+BSD 3-Clause License
+
+Copyright (c) 2023, Angelo Rossi <angelo.rossi.homelab@gmail.com>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
diff --git a/Makefile.global b/Makefile.global
new file mode 100644
index 0000000..60a2c48
--- /dev/null
+++ b/Makefile.global
@@ -0,0 +1,230 @@
+#-*- mode: makefile; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+# Makefile.global
+# Copyright 2022 Angelo Rossi <angelo.rossi.homelab@gmail.com>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+#
+# Get the operating system name. If this is Cygwin, the .d files will be
+# munged to convert c: into /cygdrive/c so that "make" will be happy with the
+# auto-generated dependencies.
+#
+
+# The command for calling the compiler.
+ifeq (${shell uname},linux)
+ AS=${shell which as}
+ CC=${shell which gcc}
+ CXX=${shell which g++}
+ LD=${shell which ld}
+ OBJCOPY=${shell which objcopy}
+ OBJDUMP=${shell which objdump}
+ AR=${shell which ar}
+ NM=${shell which nm}
+else
+ ifeq (${shell uname},OpenBSD)
+ AS=${shell which gas}
+ CC=${shell which egcc}
+ CXX=${shell which eg++}
+ LD=${shell which ld}
+ OBJCOPY=${shell which objcopy}
+ OBJDUMP=${shell which objdump}
+ AR=${shell which egcc-ar}
+ NM=${shell which egcc-nm}
+ endif
+endif
+LINKER=${CXX}
+
+# The flags passed to the assembler.
+
+AS_FLAGS=
+
+ifdef ARCH
+ AS_FLAGS+=-march=${ARCH}
+endif
+
+# The flags passed to the c compiler.
+
+CC_FLAGS=-O0 \
+ -Wall \
+ -std=c99 \
+ -pthread \
+ -c
+
+# The flags passed to the c++ compiler.
+
+CXX_FLAGS=-O0 \
+ -Wall \
+ -std=gnu++11 \
+ -pthread \
+ -c
+
+ifdef WITH_OVER1
+CXX_FLAGS+=-DWITH_OVER1
+endif
+ifdef WITH_OVER20
+CXX_FLAGS+=-DWITH_OVER20
+endif
+ifdef WITH_OVER51
+CXX_FLAGS+=-DWITH_OVER51
+endif
+
+
+# The flags passed to the linker.
+LD_SCRIPT_FLAGS=
+ifneq (${LINKER_SCRIPT},)
+ LD_SCRIPT_FLAGS+=-T ${SCRIPTS_PATH}/${LINKER_SCRIPT}.lnk
+endif
+
+# Specs files.
+SPECS_FILES=
+
+ifneq (${SPECS_FILES},)
+ SPECS_FLAGS=${patsubst %,--specs=%,${subst :, ,${SPECS_FILES}}}
+else
+ SPECS_FLAGS=
+endif
+
+LD_FLAGS=
+
+LD_FLAGS+=-Wl,--start-group \
+ ${LD_SCRIPT_FLAGS} \
+ ${SPECS_FLAGS} \
+ -Wl,-Map=${TOOLCHAIN}/${TARGET}.map \
+ -Wl,--end-group
+
+# ar most common flags.
+AR_FLAGS=-cr
+
+# objdump most common flags.
+OBJDUMP_FLAGS= -h \
+ -EL \
+ -s \
+ -S \
+ -d
+
+# objcopy most common flags.
+OBJCOPY_FLAGS= -S \
+ -R .data
+
+# Get the location of libgcc.a, libc.a, libstdc++ and
+# libm.a from the GCC front-end.
+LIBGCC=${shell ${CC} ${CC_FLAGS} -print-libgcc-file-name}
+LIBC=${shell ${CC} ${CC_FLAGS} -print-file-name=libc.a}
+LIBM=${shell ${CC} ${CC_FLAGS} -print-file-name=libm.a}
+LIBPTHREAD=${shell ${CC} ${CC_FLAGS} --print-file-name=libpthread.a}
+LIBSTDCXX=${shell ${CXX} ${CXX_FLAGS} --print-file-name=libstdc++.a}
+
+# Libraries to link.
+LIBRARIES=pthread
+
+# Tell the compiler to include debugging information if the DEBUG environment
+# variable is set.
+ifneq (${DEBUG},)
+ AS_FLAGS+=-ggdb3
+ CC_FLAGS+=-ggdb3 -DDEBUG
+ CXX_FLAGS+=-ggdb3 -DDEBUG
+ LD_FLAGS+=-ggdb3
+endif
+
+# Add the include file paths to AS_FLAGS, CC_FLAGS and CXX_FLAGS.
+AS_FLAGS+=${patsubst %,-I%,${subst :, ,${INCLUDES_PATH}}}
+CC_FLAGS+=${patsubst %,-I%,${subst :, ,${INCLUDES_PATH}}}
+CXX_FLAGS+=${patsubst %,-I%,${subst :, ,${INCLUDES_PATH}}}
+
+LD_FLAGS+=-pthread
+
+ifneq (${LIBRARIES_PATH},)
+LD_FLAGS+=${patsubst %,-L%,${subst :, ,${LIBRARIES_PATH}}}
+endif
+
+ifneq (${LIBRARIES},)
+LD_FLAGS+=${patsubst %,-l%,${subst :, ,${LIBRARIES}}}
+endif
+
+# Rule for building the object file from each assembly source files.
+${TOOLCHAIN}/%.o: %.S
+ @if [ 'x${VERBOSE}' = x ]; \
+ then \
+ echo " [ AS ] ${<}"; \
+ else \
+ echo "${AS} ${AS_FLAGS} ${<} -o ${@}"; \
+ fi
+ @${AS} ${AS_FLAGS} ${<} -o ${@}
+
+# Rule for building the object file from each C source file.
+
+${TOOLCHAIN}/%.o: %.c
+ @if [ 'x${VERBOSE}' = x ]; \
+ then \
+ echo " [ CC ] ${<}"; \
+ else \
+ echo ${CC} ${CC_FLAGS} -o ${@} ${<}; \
+ fi
+ @${CC} ${CC_FLAGS} -o ${@} ${<}
+
+${TOOLCHAIN}/%.o: %.cpp
+ @if [ 'x${VERBOSE}' = x ]; \
+ then \
+ echo " [ CPP ] ${<}"; \
+ else \
+ echo ${CXX} ${CXX_FLAGS} -o ${@} ${<}; \
+ fi
+ @${CXX} ${CXX_FLAGS} -o ${@} ${<}
+
+# Rule for creating an object library.
+${TOOLCHAIN}/%.a:
+ @if [ 'x${VERBOSE}' = x ]; \
+ then \
+ echo " [ AR ] ${@}"; \
+ else \
+ echo ${AR} ${AR_FLAGS} ${@} ${^}; \
+ fi
+ @${AR} ${AR_FLAGS} ${@} ${^}
+
+# Rule for linking the application.
+${TOOLCHAIN}/%:
+ @if [ 'x${VERBOSE}' = x ]; \
+ then \
+ echo " [ LD ] ${@}"; \
+ else \
+ echo ${LINKER} $(filter %.o %.a, ${^}) \
+ ${LD_FLAGS} \
+ -o ${@}; \
+ fi
+ @${LINKER} $(filter %.o %.a, ${^}) \
+ ${LD_FLAGS} \
+ -o ${@}
+
+# Rule to create a .lst file.
+${TOOLCHAIN}/%.lst:
+ @if [ 'x${VERBOSE}' = x ]; \
+ then \
+ echo " [ OBJDUMP ] ${@}"; \
+ else \
+ echo "${OBJDUMP} ${OBJDUMP_FLAGS} ${TOOLCHAIN}/${TARGET} > ${@}"; \
+ fi
+ @${OBJDUMP} ${OBJDUMP_FLAGS} ${TOOLCHAIN}/${TARGET} > ${@}
diff --git a/benchmarks/DC4INS.DAT b/benchmarks/DC4INS.DAT
new file mode 100644
index 0000000..21c5162
--- /dev/null
+++ b/benchmarks/DC4INS.DAT
@@ -0,0 +1,46 @@
+KARD 10 10
+KARG 2 3
+KBEG 27 3
+KEND 32 8
+KTEX 0 1
+C0 Level-zero comment will be retained because STARTUP sets KOMLEV = 4
+C5 Level-five comment will be omitted because STARTUP sets KOMLEV = 4
+/SOURCE
+14GEN 70. .1591549 -1.
+/REQUEST
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+/SWITCH
+C1 The following extraneous switch is permanently open, so has no effect:
+ TRAN 99999. 1.E6
+/BRANCH
+ GEN TRAN 5.0 5.E4 3
+ TRAN 1.E4
+C Ordinary comment card within "INCLDUM" (Blank col. 2)
+93?????? ?????? 30. 3
+ -5.0 -100.
+ -.1 -50.
+ -.02 -45.
+ -.01 -40.
+ -.005 -30.
+C Begin illustration of $DISABLE usage within an INSERT file.
+C The comments now being read are not part of the test, so they will be seen
+C (even though they have nothing to do with the data of the network). All of
+C the remaining cards except the last one ($ENABLE) will be omitted as data
+C is first read, so there will be no trace in the interpretation of EMTP data
+C cards except for the final card, which will document the number involved.
+$DISABLE
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+$ENABLE
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+/STATISTICS
+Statistical tabulation card will never be used, of course.
+/PLOT
+ PRINTER PLOT
+ 1931.0 0.0 7.0 TRAN { Axis limits: (-0.140, 3.031)
diff --git a/benchmarks/_ b/benchmarks/_
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/benchmarks/_
diff --git a/benchmarks/antani.dat b/benchmarks/antani.dat
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/benchmarks/antani.dat
diff --git a/benchmarks/data_case_001.dat b/benchmarks/data_case_001.dat
new file mode 100644
index 0000000..28e0410
--- /dev/null
+++ b/benchmarks/data_case_001.dat
@@ -0,0 +1,41 @@
+begin new data case
+c RL.............................................Figure 3.9(a).................|
+c Energization of a trivial RL circuit. |
+c ----dt<---tmax...............................................................|
+ 100.e-6 50.e-3
+c -Iprnt<--Iplot<-Idoubl<-KssOut<-MaxOut<---Ipun<-Memsav<---Icat |
+ 25 1 1 0 0 1
+c |
+c Circuit data..................................................................
+c Bus-->Bus-->Bus-->Bus--><----R<----L<----C 0
+ load .1 1. 0
+blank End of circuit data......................................................|
+c |
+c Switch data...................................................................
+c Bus-->Bus--><---Tclose<----Topen<-------Ie 0
+ src load 1.e-3 9999. 0 1
+blank End of switch data.......................................................|
+c |
+c Source data...................................................................
+c Bus--><I<Amplitude<Frequency<--T0|Phi0<---0=Phi0<-Ignore-><---Tstart<----Tstop
+14src 1. 60. 0 0. -1. 9999.
+blank End of source data.......................................................|
+c |
+c Nodal Output Request Data.....................................................
+c Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->
+ src load
+blank End of output requests...................................................|
+c |
+c Plot request Data............................................................|
+ Figure 3.9(c): Output for Switch Current
+c ______Graph type: 4(volts) 8(branch volts) 9(currents) |
+c | _____Units: 1(deg) 2(cyc) 3(sec) 4(msec) 5(microsec) |
+c || _________Units per inch |
+c || | _____Plot starting time |
+c || | | _Plot stopping time |
+c || | | | _____Value at bottom of vertical axis (optional) |
+c || | | | | Value at top of vertical axis (optional) |
+c VV<-|<--|<--|<---|---|Bus-->Bus-->Bus-->Bus-->Heading-------->Vert axis------>
+ 194 5. 0.0 50. -4. 4.src load RL Energization Amps
+blank End of Plot Request Data.................................................|
+blank End of All Cases |
diff --git a/benchmarks/data_case_002.dat b/benchmarks/data_case_002.dat
new file mode 100644
index 0000000..f9813fe
--- /dev/null
+++ b/benchmarks/data_case_002.dat
@@ -0,0 +1,42 @@
+begin new data case
+c RL.............................................Figure 3.10(b).................
+c Energization of an RL load. |
+c ----dt<---tmax...............................................................|
+ 50.e-6 50.e-3
+c -Iprnt<--Iplot<-Idoubl<-KssOut<-MaxOut<---Ipun<-Memsav<---Icat
+ 15 1 0 0 0 1
+c
+c Circuit data..................................................................
+c Bus-->Bus-->Bus-->Bus--><----R<----L<----C 0
+ bus13 22.61 19.72 1
+blank End of circuit data......................................................|
+c
+c Switch data...................................................................
+c Bus-->Bus--><---Tclose<----Topen<-------Ie 0
+ src bus13 1.e-3 9999. 0 1
+blank End of switch data.......................................................|
+c
+c Source data...................................................................
+c Bus--><I<Amplitude<Frequency<--T0|Phi0<---0=Phi0<-Ignore-><---Tstart<----Tstop
+14src 56.34 60. 0 0. -1. 9999.
+blank End of source data.......................................................|
+c
+c Nodal Output Request Data.....................................................
+c Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->
+ src bus13
+blank End of output requests...................................................|
+c
+c Plot request Data.............................................................
+ 2Figure 3.10(c): 3.10(d)
+c ______Graph type: 4(volts) 8(branch volts) 9(currents) |
+c | _____Units: 1(deg) 2(cyc) 3(sec) 4(msec) 5(microsec) |
+c || _________Units per inch |
+c || | _____Plot starting time |
+c || | | _Plot stopping time |
+c || | | | _____Value at bottom of vertical axis (optional) |
+c || | | | | Value at top of vertical axis (optional) |
+c VV<-|<--|<--|<---|---|Bus-->Bus-->Bus-->Bus-->Heading-------->Vert axis------>
+ 194 5. 0.0 50. -4. 4.src bus13 ENER 200MVA.95pfKAmps
+ 144 5. 0.0 50. bus13 ENER 200MVA.95pfKVolts
+blank End of Plot Request Data.................................................|
+blank End of All Cases
diff --git a/benchmarks/data_case_003.dat b/benchmarks/data_case_003.dat
new file mode 100644
index 0000000..5c8771f
--- /dev/null
+++ b/benchmarks/data_case_003.dat
@@ -0,0 +1,46 @@
+begin new data case
+c THEV_RL........................................Figure 3.11(b).................
+c Energization of an RL load with more detailed source model |
+c ----dt<---tmax...............................................................|
+ 50.e-6 50.e-3
+c -Iprnt<--Iplot<-Idoubl<-KssOut<-MaxOut<---Ipun<-Memsav<---Icat
+ 1 1 1 0 0 1
+c
+c Circuit data..................................................................
+c Bus-->Bus-->Bus-->Bus--><----R<----L<----C 0
+ src bus1 6. 0
+ bus1 bus12 .05 2. 0
+ bus1 .8 0
+ bus12 .8 0
+ bus12 bus13s 6. 0
+ bus13l 22.61 19.72 0
+blank End of circuit data......................................................|
+c
+c Switch data...................................................................
+c Bus-->Bus--><---Tclose<----Topen<-------Ie 0
+ bus13sbus13l 1.e-3 9999. 0 1
+blank End of switch data.......................................................|
+c
+c Source data...................................................................
+c Bus--><I<Amplitude<Frequency<--T0|Phi0<---0=Phi0<-Ignore-><---Tstart<----Tstop
+14src 56.34 60. 0 0. -1. 9999.
+blank End of source data.......................................................|
+c
+c Nodal Output Request Data.....................................................
+c Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->
+ src bus13l
+blank End of output requests...................................................|
+c
+c Plot request Data.............................................................
+c ______Graph type: 4(volts) 8(branch volts) 9(currents) |
+c | _____Units: 1(deg) 2(cyc) 3(sec) 4(msec) 5(microsec) |
+c || _________Units per inch |
+c || | _____Plot starting time |
+c || | | _Plot stopping time |
+c || | | | _____Value at bottom of vertical axis (optional) |
+c || | | | | Value at top of vertical axis (optional) |
+c VV<-|<--|<--|<---|---|Bus-->Bus-->Bus-->Bus-->Heading-------->Vert axis------>
+ 194 5. 0.0 50. -4. 4.bus13sbus13l EnTh 200MVA.95pfkAmps
+ 144 5. 0.0 50. bus13l EnTh 200MVA.95pfkAmps
+blank End of Plot Request Data.................................................|
+blank End of All Cases
diff --git a/benchmarks/data_case_003a.dat b/benchmarks/data_case_003a.dat
new file mode 100644
index 0000000..fda9dde
--- /dev/null
+++ b/benchmarks/data_case_003a.dat
@@ -0,0 +1,53 @@
+begin new data case
+c THEV_RL........................................Figure 3.11(b).................
+c Energization of an RL load with more detailed source model |
+c ----dt<---tmax...............................................................|
+ 10.e-6 100.e-3
+c -Iprnt<--Iplot<-Idoubl<-KssOut<-MaxOut<---Ipun<-Memsav<---Icat
+ 1 1 1 0 0 1
+c
+c Circuit data..................................................................
+c Bus-->Bus-->Bus-->Bus--><----R<----L<----C 0
+ src bus1 6. 0
+ bus1 bus12 .05 2. 0
+ bus1 .8 0
+ bus12 .8 0
+ bus12 bus13s 6. 0
+ bus13l 22.61 19.72 0
+blank End of circuit data......................................................|
+c
+c Switch data...................................................................
+c Bus-->Bus--><---Tclose<----Topen<-------Ie 0
+ bus13sbus13l 1.e-3 9999. 0 1
+blank End of switch data.......................................................|
+c
+c Source data...................................................................
+c Bus--><I<Amplitude<Frequency<--T0|Phi0<---0=Phi0<-Ignore-><---Tstart<----Tstop
+14src 56.34 60. 0 0. 1.e-3 9999.
+14bus13l-1 1. 60. 0 0. 1.e-3 9999.
+14bus13l-1 1. 180. 0 0. 1.e-3 9999.
+14bus13l-1 1. 300. 0 0. 1.e-3 9999.
+14bus13l-1 1. 420. 0 0. 1.e-3 9999.
+14bus13l-1 1. 540. 0 0. 1.e-3 9999.
+14bus13l-1 1. 660. 0 0. 1.e-3 9999.
+14bus13l-1 1. 780. 0 0. 1.e-3 9999.
+blank End of source data.......................................................|
+c
+c Nodal Output Request Data.....................................................
+c Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->
+ src bus13l
+blank End of output requests...................................................|
+c
+c Plot request Data.............................................................
+c ______Graph type: 4(volts) 8(branch volts) 9(currents) |
+c | _____Units: 1(deg) 2(cyc) 3(sec) 4(msec) 5(microsec) |
+c || _________Units per inch |
+c || | _____Plot starting time |
+c || | | _Plot stopping time |
+c || | | | _____Value at bottom of vertical axis (optional) |
+c || | | | | Value at top of vertical axis (optional) |
+c VV<-|<--|<--|<---|---|Bus-->Bus-->Bus-->Bus-->Heading-------->Vert axis------>
+ 194 5. 0.0 50. -4. 4.bus13sbus13l EnTh 200MVA.95pfkAmps
+ 144 5. 0.0 50. bus13l EnTh 200MVA.95pfkAmps
+blank End of Plot Request Data.................................................|
+blank End of All Cases
diff --git a/benchmarks/data_case_003b.dat b/benchmarks/data_case_003b.dat
new file mode 100644
index 0000000..2a0d95b
--- /dev/null
+++ b/benchmarks/data_case_003b.dat
@@ -0,0 +1,54 @@
+begin new data case
+c THEV_RL........................................Figure 3.11(b).................
+c Energization of an RL load with more detailed source model |
+c ----dt<---tmax...............................................................|
+ 10.e-6 100.e-3
+c -Iprnt<--Iplot<-Idoubl<-KssOut<-MaxOut<---Ipun<-Memsav<---Icat
+ 25 1 1 0 0 1
+c
+c Circuit data..................................................................
+c Bus-->Bus-->Bus-->Bus--><----R<----L<----C 0
+ src bus1 6. 0
+ bus1 bus12 .05 2. 0
+ bus1 .8 0
+ bus12 .8 0
+ bus12 bus13s 6. 0
+ bus13l 22.61 19.72 0
+blank End of circuit data......................................................|
+c
+c Switch data...................................................................
+c Bus-->Bus--><---Tclose<----Topen<-------Ie 0
+ bus13sbus13l 1.e-3 9999. 0 1
+blank End of switch data.......................................................|
+c
+c Source data...................................................................
+c Bus--><I<Amplitude<Frequency<--T0|Phi0<---0=Phi0<-Ignore-><---Tstart<----Tstop
+14src 56.34 50. 0 0. 1.e-3 9999.
+14bus13l-1 .5 50. 0 0. 1.e-3 9999.
+14bus13l-1 .5 150. 0 0. 1.e-3 9999.
+14bus13l-1 .5 250. 0 0. 1.e-3 9999.
+14bus13l-1 .5 350. 0 0. 1.e-3 9999.
+14bus13l-1 .5 450. 0 0. 1.e-3 9999.
+14bus13l-1 .5 550. 0 0. 1.e-3 9999.
+14bus13l-1 .5 650. 0 0. 1.e-3 9999.
+14bus13l-1 .5 750. 0 0. 1.e-3 9999.
+blank End of source data.......................................................|
+c
+c Nodal Output Request Data.....................................................
+c Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->
+ src bus13l
+blank End of output requests...................................................|
+c
+c Plot request Data.............................................................
+c ______Graph type: 4(volts) 8(branch volts) 9(currents) |
+c | _____Units: 1(deg) 2(cyc) 3(sec) 4(msec) 5(microsec) |
+c || _________Units per inch |
+c || | _____Plot starting time |
+c || | | _Plot stopping time |
+c || | | | _____Value at bottom of vertical axis (optional) |
+c || | | | | Value at top of vertical axis (optional) |
+c VV<-|<--|<--|<---|---|Bus-->Bus-->Bus-->Bus-->Heading-------->Vert axis------>
+ 194 5. 0.0 50. -4. 4.bus13sbus13l EnTh 200MVA.95pfkAmps
+ 144 5. 0.0 50. bus13l EnTh 200MVA.95pfkAmps
+blank End of Plot Request Data.................................................|
+blank End of All Cases
diff --git a/benchmarks/dc1.dat b/benchmarks/dc1.dat
new file mode 100644
index 0000000..cc83835
--- /dev/null
+++ b/benchmarks/dc1.dat
@@ -0,0 +1,1364 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-1
+C Full-size, hvdc simulation of the Pacific Northwest to Pacific Southwest
+C (Oregon to California) intertie as first done by BPA during the late '70s.
+C There are two ends of the line, two poles, 3 bridges/pole, and 7 values
+C (6 plus bypass) per bridge. For some description of the simulation, see
+C the EMTP Newsletter article by W. Scott Meyer and Ma Ren-ming, Volume 3,
+C No. 1, the last paragraph of Section I. For simplified, smaller versions
+C of this same basic problem, see DC-2. The USE TPPLOT that follows was
+C added at the end of September, 1994 (see October newsletter).
+USE TPPLOT BEGIN { The first such declaration precedes the data for TPPLOT
+PL4 { Access to plot of ongoing simulation is via this basic command
+RAM { Special new (September, 1994) option to apply TPPLOT to EMTP
+LABEL { Define labeling for plots, beginning with super title (next):
+Super Title Line
+Vertical Axis
+Horizontal Axis of X-Y
+FLUSH { Erase any multi-line case title now being stored
+END { Bound the case title (none); this ends LABEL command
+# 1 2 3 5 7 9 13 14 15 { Select 9 curves to plot by number
+LIMITS { Request to manually set the Y-axis limits
+-500 500 { Curves will be small (maybe 1/4 height) to allow many using offsets
+FACTOR { Different units for currents (variables 7, 8, 9) require this
+ 1 1 1 0.3 0.3 0.3 180 180 180 { Multiply curves by these factors
+OFFSET { Vertical displacement (constant to be added to each curve)
+ 0 0 0 -325 -325 -325 200 200 200 { Then add these offsets to curves
+COLOR { Request to change pen colors to avoid weak ones for pens 7, 8, 9
+1 9 { Beginning index and length of color vector to be redefined
+14 10 15 12 13 11 14 10 15 { Vector of color numbers (1st 6 are default)
+ { <CR> bypasses radii of marking disks (use default values of zero)
+ { <CR> bypasses pixel widths of curves (use default values of unity)
+ROLL { After next plot is complete, curves will be extended automatically
+TIME 0 .02 { The first frame will cover 10% of the total range of 200 msec
+USE TPPLOT END { The 2nd such declaration ends the data for TPPLOT
+C The preceding uses FACTOR and OFFSET to separate curves. This was
+C done before WINDOW plotting was allowed. For a second use of ROLLing
+C (real-time) plotting, see DC-63, which uses 3 windows for same 9 curves.
+ABSOLUTE TACS DIMENSIONS
+C Expand TACS Table 1 from 60 to 140 on 1 April 2007. The overflow
+C check of SSTACS requires this. But to keep the total within List 19
+C we must decrease some other tables. Here, it is easy. In fact, other
+C TACS tables easily are reduced so burden on List 19 is well under the
+C total 4800 for 3 * default. Note 3194 bytes, less than 2 * default!
+C Size List 19. Total floating-point TACS table space. 3194 4800 (LTACST)
+C Tacs table number 1 2 3 4 5 6 7 8
+C Present figure 111 62 73 17 63 309 112 108
+C Program limit 140 75 95 20 80 350 130 125
+C 60 270 300 60 90 1250 550 180 --- default
+ 140 75 95 20 80 350 130 125
+ .000100 .200
+ 1 1 3 1 -1
+ 5 5 20 20
+C DC LINE WITH 12-PULSE RECTIFIER/INVERTER OPERATION USING TACS ------------
+TACS HYBRID CASE FOR DC TERMINAL SIMULATION
+C DC LINE WITH 12-PULSE RECTIFIER/INVERTER OPERATION USING TACS ------------
+C * * * * * * * GRID TIMING VOLTAGES * * * * * * * * * * * * * *
+ PHA-BS +GENAS -GENBS
+ PHB-AS +GENBS -GENAS
+ PHB-CS +GENBS -GENCS
+ PHC-BS +GENCS -GENBS
+ PHC-AS +GENCS -GENAS
+ PHA-CS +GENAS -GENCS
+ PHA-BR +GENAR -GENBR
+ PHB-AR +GENBR -GENAR
+ PHB-CR +GENBR -GENCR
+ PHC-BR +GENCR -GENBR
+ PHC-AR +GENCR -GENAR
+ PHA-CR +GENAR -GENCR
+ 4 +NOT13
+ 9 +NOT18
+ 14 +NOT23
+ 19 +NOT28
+ 24 +NOT3
+ 29 +NOT8
+ 4R +NOT13R
+ 9R +NOT18R
+ 14R +NOT23R
+ 19R +NOT28R
+ 24R +NOT3R
+ 29R +NOT8R
+C ********* ZERO-ORDER BLOCK ON "TIMEX" FOR LIMIT OF 2 CYCLES *******
+C
+ TIMER +TIMEX 0.0 33.3-3
+90GENAS
+90GENBS
+90GENCS
+90GENAR
+90GENBR
+90GENCR
+C $$$$$$ DECREASING RAMP FUNCTION FOR IGNITION ANGLE DELAY $$$$$$$$$$$$
+C
+88ALPHAR -.1045045 * TIMER + 4.17-3
+C
+C -------------- RECTIFIER CONTROL LOGIC FOLLOWS --------------------
+88SA-B 52 +UNITY 0.0 PHA-BS
+88F1S 54 +SA-B 0.0 ALPHAR
+88F1SII 4 .AND. F1S
+88NOT3 .NOT. F1SII
+88F1SI 54 +F1SII 1.4E-3
+88SB-A 52 +UNITY 0.0 PHB-AS
+88F4S 54 +SB-A 0.0 ALPHAR
+88F4SII 9 .AND. F4S
+88NOT8 .NOT. F4SII
+88F4SI 54 +F4SII 1.4E-3
+88SB-C 52 +UNITY 0.0 PHB-CS
+88F3S 54 +SB-C 0.0 ALPHAR
+88F3SII 14 .AND. F3S
+88NOT13 .NOT. F3SII
+88F3SI 54 +F3SII 1.4E-3
+88SC-B 52 +UNITY 0.0 PHC-BS
+88F6S 54 +SC-B 0.0 ALPHAR
+88F6SII 19 .AND. F6S
+88NOT18 .NOT. F6SII
+88F6SI 54 +F6SII 1.4E-3
+88SC-A 52 +UNITY 0.0 PHC-AS
+88F5S 54 +SC-A 0.0 ALPHAR
+88F5SII 24 .AND. F5S
+88NOT23 .NOT. F5SII
+88F5SI 54 +F5SII 1.4E-3
+88SA-C 52 +UNITY 0.0 PHA-CS
+88F2S 54 +SA-C 0.0 ALPHAR
+88F2SII 29 .AND. F2S
+88NOT28 .NOT. F2SII
+88F2SI 54 +F2SII 1.4E-3
+C $$$$$$ INCREASING RAMP FUNCTION FOR IGNITION ANGLE DELAY $$$$$$$$$$$$
+C
+88ALPHAI +.076276 * TIMER + 4.17-3
+C
+C ----------------- INVERTER CONTROL LOGIC FOLLOWS -----------------
+88RA-B 52 +UNITY 0.0 PHA-BR
+88F1R 54 +RA-B 0.0 ALPHAI
+88F1RIV 4R .AND. F1R
+88NOT3R .NOT. F1RIV
+88F1RIII54 +F1RIV 1.4E-3
+88RB-A 52 +UNITY 0.0 PHB-AR
+88F4R 54 +RB-A 0.0 ALPHAI
+88F4RIV 9R .AND. F4R
+88NOT8R .NOT. F4RIV
+88F4RIII54 +F4RIV 1.4E-3
+88RB-C 52 +UNITY 0.0 PHB-CR
+88F3R 54 +RB-C 0.0 ALPHAI
+88F3RIV 14R .AND. F3R
+88NOT13R .NOT. F3RIV
+88F3RIII54 +F3RIV 1.4E-3
+88RC-B 52 +UNITY 0.0 PHC-BR
+88F6R 54 +RC-B 0.0 ALPHAI
+88F6RIV 19R .AND. F6R
+88NOT18R .NOT. F6RIV
+88F6RIII54 +F6RIV 1.4E-3
+88RC-A 52 +UNITY 0.0 PHC-AR
+88F5R 54 +RC-A 0.0 ALPHAI
+88F5RIV 24R .AND. F5R
+88NOT23R .NOT. F5RIV
+88F5RIII54 +F5RIV 1.4E-3
+88RA-C 52 +UNITY 0.0 PHA-CR
+88F2R 54 +RA-C 0.0 ALPHAI
+88F2RIV 29R .AND. F2R
+88NOT28R .NOT. F2RIV
+88F2RIII54 +F2RIV 1.4E-3
+C
+C DELAY FIRING FOR BYPASS VALVES
+C
+88FIRE - UNITY
+77PHA-BS +166.1710
+77PHB-AS -166.1710
+77PHB-CS -332.3420
+77PHC-BS +332.3420
+77PHC-AS +166.1710
+77PHA-CS -166.1710
+77PHA-BR +153.2873
+77PHB-AR -153.2873
+77PHB-CR -306.5746
+77PHC-BR +306.5746
+77PHC-AR +153.2873
+77PHA-CR -153.2873
+77FIRE -1.0
+BLANK card ending TACS initial conditions (and also all TACS data)
+C
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C AC CIRCUIT OF POLE 4, CELILO
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS,
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE AND 1 MILE (1.6 KM) OF 230 KV LINE.
+C
+ 0GENAS BIGEA4 .01
+ 0GENBS BIGEB4GENAS BIGEA4
+ 0GENCS BIGEC4GENAS BIGEA4
+ 0BIGEA4 .86 114. 2.46
+ 0BIGEB4 BIGEA4
+ 0BIGEC4 BIGEA4
+ 0 BIGEA4 1.18 114. 1.28
+ 0 BIGEB4 BIGEA4
+ 0 BIGEC4 BIGEA4
+ 0BIGEA413AC4 .02 1.56
+ 0BIGEB413BC4 BIGEA413AC4
+ 0BIGEC413CC4 BIGEA413AC4
+ 013AC4 HPAC4 40.
+ 0HPAC4 13AC4 5.5
+ 013BC4 HPBC4 13AC4 HPAC4
+ 0HPBC4 13BC4 HPAC4 13AC4
+ 013CC4 HPCC4 13AC4 HPAC4
+ 0HPCC4 13CC4 HPAC4 13AC4
+ 0HPAC4 3.9
+ 0HPBC4 HPAC4
+ 0HPCC4 HPAC4
+ 0 13AC4 .93 44. .95
+ 0 13BC4 13AC4
+ 0 13CC4 13AC4
+ 013AC4 11AC4 GENAS BIGEA4
+ 013BC4 11BC4 GENAS BIGEA4
+ 013CC4 11CC4 GENAS BIGEA4
+ 011AC4 .82 44. 1.33
+ 011BC4 11AC4
+ 011CC4 11AC4
+ 011AC4 AC6 GENAS BIGEA4
+ 011BC4 BC6 GENAS BIGEA4
+ 011CC4 CC6 GENAS BIGEA4
+ 011AC4 AC4 GENAS BIGEA4
+ 011BC4 BC4 GENAS BIGEA4
+ 011CC4 CC4 GENAS BIGEA4
+ 011AC4 AC2 GENAS BIGEA4
+ 011BC4 BC2 GENAS BIGEA4
+ 011CC4 CC2 GENAS BIGEA4
+C
+C -------------------------------- GROUP 6, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0VI-1 VICA 3000.
+ 0VICA VI-1 1.0
+ 0VI-3 VICB VI-1 VICA
+ 0VICB VI-3 VICA VI-1
+ 0VI-5 VICC VI-1 VICA
+ 0VICC VI-5 VICA VI-1
+ 0VI-4 AN6C VI-1 VICA
+ 0AN6C VI-4 VICA VI-1
+ 0VI-6 AN6C VI-1 VICA
+ 0AN6C VI-6 VICA VI-1
+ 0VI-2 AN6C VI-1 VICA
+ 0AN6C VI-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN6C BYP6C 300.
+ 0BYP6C AN6C 1.0
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0CEL4 VDA6 1200. .1
+ 0CEL4 VDB6 CEL4 VDA6
+ 0CEL4 VDC6 CEL4 VDA6
+ 0AN6C VDA6 CEL4 VDA6
+ 0AN6C VDB6 CEL4 VDA6
+ 0AN6C VDC6 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA6 VICA 1000.
+ 0VICA VDA6 .25
+ 0VDB6 VICB VDA6 VICA
+ 0VICB VDB6 VICA VDA6
+ 0VDC6 VICC VDA6 VICA
+ 0VICC VDC6 VICA VDA6
+ 0CEL4 CTH6C VDA6 VICA
+ 0CTH6C CEL4 VICA VDA6
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC6Y TXA6 .203 .7
+ 0BC6Y TXB6 AC6Y TXA6
+ 0CC6Y TXC6 AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA6C VDA6 .202 .717
+ 0TXB6C VDB6 TXA6C VDA6
+ 0TXC6C VDC6 TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA6 99300.
+52TXA6C TXB6C 82715. 68946.
+51TXB6 TXA6
+52TXB6C TXC6C
+51TXC6 TXA6
+52TXC6C TXA6C
+C
+C
+C -------------------------------- GROUP 4, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0IV-1 IVCA VI-1 VICA
+ 0IVCA IV-1 VICA VI-1
+ 0IV-3 IVCB VI-1 VICA
+ 0IVCB IV-3 VICA VI-1
+ 0IV-5 IVCC VI-1 VICA
+ 0IVCC IV-5 VICA VI-1
+ 0IV-4 AN4C VI-1 VICA
+ 0AN4C IV-4 VICA VI-1
+ 0IV-6 AN4C VI-1 VICA
+ 0AN4C IV-6 VICA VI-1
+ 0IV-2 AN4C VI-1 VICA
+ 0AN4C IV-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN4C BYP4C AN6C BYP6C
+ 0BYP4C AN4C BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN6C VDA4 CEL4 VDA6
+ 0AN6C VDB4 CEL4 VDA6
+ 0AN6C VDC4 CEL4 VDA6
+ 0AN4C VDA4 CEL4 VDA6
+ 0AN4C VDB4 CEL4 VDA6
+ 0AN4C VDC4 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA4 IVCA VDA6 VICA
+ 0IVCA VDA4 VICA VDA6
+ 0VDB4 IVCB VDA6 VICA
+ 0IVCB VDB4 VICA VDA6
+ 0VDC4 IVCC VDA6 VICA
+ 0IVCC VDC4 VICA VDA6
+ 0AN6C CTH4C VDA6 VICA
+ 0CTH4C AN6C VICA VDA6
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC4Y TXA4 .22 2.07
+ 0BC4Y TXB4 AC4Y TXA4
+ 0CC4Y TXC4 AC4Y TXA4
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA4C VDA4 .07 .8343
+ 0TXB4C VDB4 TXA4C VDA4
+ 0TXC4C VDC4 TXA4C VDA4
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA4 99300.
+52TXA4C NS1 47951. 23174.
+51TXB4 TXA4
+52TXB4C NS1
+51TXC4 TXA4
+52TXC4C NS1
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NS1 1.E+10
+C -------------------------------------------------------------------------
+C -------------------------------- GROUP 2, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0II-1 IICA VI-1 VICA
+ 0IICA II-1 VICA VI-1
+ 0II-3 IICB VI-1 VICA
+ 0IICB II-3 VICA VI-1
+ 0II-5 IICC VI-1 VICA
+ 0IICC II-5 VICA VI-1
+ 0II-4 AN2C VI-1 VICA
+ 0AN2C II-4 VICA VI-1
+ 0II-6 AN2C VI-1 VICA
+ 0AN2C II-6 VICA VI-1
+ 0II-2 AN2C VI-1 VICA
+ 0AN2C II-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN2C BYP2C AN6C BYP6C
+ 0BYP2C AN2C BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN4C VDA2 CEL4 VDA6
+ 0AN4C VDB2 CEL4 VDA6
+ 0AN4C VDC2 CEL4 VDA6
+ 0AN2C VDA2 CEL4 VDA6
+ 0AN2C VDB2 CEL4 VDA6
+ 0AN2C VDC2 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA2 IICA VDA6 VICA
+ 0IICA VDA2 VICA VDA6
+ 0VDB2 IICB VDA6 VICA
+ 0IICB VDB2 VICA VDA6
+ 0VDC2 IICC VDA6 VICA
+ 0IICC VDC2 VICA VDA6
+ 0AN4C CTH2C VDA6 VICA
+ 0CTH2C AN4C VICA VDA6
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC2Y TXA2 AC4Y TXA4
+ 0BC2Y TXB2 AC4Y TXA4
+ 0CC2Y TXC2 AC4Y TXA4
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA2C VDA2 TXA4C VDA4
+ 0TXB2C VDB2 TXA4C VDA4
+ 0TXC2C VDC2 TXA4C VDA4
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA2 TXA4
+52TXA2C NS2
+51TXB2 TXA4
+52TXB2C NS2
+51TXC2 TXA4
+52TXC2C NS2
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NS2 NS1
+C
+C -------------------------------------------------------------------------
+C GROUND ELECTRODE CIRCUIT, CELILO
+ 0AN2C GR1C 1.0
+ 0GR1C ELEC1 AN2C GR1C
+ 0GR1C .06
+ 0ELEC1 GR2C AN2C GR1C
+ 0GR2C CELGR AN2C GR1C
+ 0GR2C GR1C
+ 0ELEC1 .43 22.
+C -------------------------------------------------------------------------
+C AC CIRCUIT OF POLE 3, CELILO
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS,
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE AND 1 MILE (1.6 KM) OF 230 KV LINE.
+C
+ 0GENAS BIGEA3GENAS BIGEA4
+ 0GENBS BIGEB3GENAS BIGEA4
+ 0GENCS BIGEC3GENAS BIGEA4
+ 0BIGEA3 BIGEA4
+ 0BIGEB3 BIGEA4
+ 0BIGEC3 BIGEA4
+ 0 BIGEA3 BIGEA4
+ 0 BIGEB3 BIGEA4
+ 0 BIGEC3 BIGEA4
+ 0BIGEA313AC3 BIGEA413AC4
+ 0BIGEB313BC3 BIGEA413AC4
+ 0BIGEC313CC3 BIGEA413AC4
+ 013AC3 HPAC3 13AC4 HPAC4
+ 0HPAC3 13AC3 HPAC4 13AC4
+ 013BC3 HPBC3 13AC4 HPAC4
+ 0HPBC3 13BC3 HPAC4 13AC4
+ 013CC3 HPCC3 13AC4 HPAC4
+ 0HPCC3 13CC3 HPAC4 13AC4
+ 0HPAC3 HPAC4
+ 0HPBC3 HPAC4
+ 0HPCC3 HPAC4
+ 0 13AC3 13AC4
+ 0 13BC3 13AC4
+ 0 13CC3 13AC4
+ 013AC3 11AC3 GENAS BIGEA4
+ 013BC3 11BC3 GENAS BIGEA4
+ 013CC3 11CC3 GENAS BIGEA4
+ 011AC3 11AC4
+ 011BC3 11AC4
+ 011CC3 11AC4
+ 011AC3 AC1 GENAS BIGEA4
+ 011BC3 BC1 GENAS BIGEA4
+ 011CC3 CC1 GENAS BIGEA4
+ 011AC3 AC3 GENAS BIGEA4
+ 011BC3 BC3 GENAS BIGEA4
+ 011CC3 CC3 GENAS BIGEA4
+ 011AC3 AC5 GENAS BIGEA4
+ 011BC3 BC5 GENAS BIGEA4
+ 011CC3 CC5 GENAS BIGEA4
+C
+C -------------------------------- GROUP 1, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0I-1 ICA VI-1 VICA
+ 0ICA I-1 VICA VI-1
+ 0I-3 ICB VI-1 VICA
+ 0ICB I-3 VICA VI-1
+ 0I-5 ICC VI-1 VICA
+ 0ICC I-5 VICA VI-1
+ 0I-4 AN1C VI-1 VICA
+ 0AN1C I-4 VICA VI-1
+ 0I-6 AN1C VI-1 VICA
+ 0AN1C I-6 VICA VI-1
+ 0I-2 AN1C VI-1 VICA
+ 0AN1C I-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN1C BYP1C AN6C BYP6C
+ 0BYP1C AN1C BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0CELGR VDA1 CEL4 VDA6
+ 0CELGR VDB1 CEL4 VDA6
+ 0CELGR VDC1 CEL4 VDA6
+ 0AN1C VDA1 CEL4 VDA6
+ 0AN1C VDB1 CEL4 VDA6
+ 0AN1C VDC1 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA1 ICA VDA6 VICA
+ 0ICA VDA1 VICA VDA6
+ 0VDB1 ICB VDA6 VICA
+ 0ICB VDB1 VICA VDA6
+ 0VDC1 ICC VDA6 VICA
+ 0ICC VDC1 VICA VDA6
+ 0CELGR CTH1C VDA6 VICA
+ 0CTH1C CELGR VICA VDA6
+C
+C !!!!!!!!!!!!!!!!!!!!! SYMMETRY !!!!!!!!!!!!!!!!
+ 0AN5C CEL3 .01
+C !!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC1Y TXA1 AC6Y TXA6
+ 0BC1Y TXB1 AC6Y TXA6
+ 0CC1Y TXC1 AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA1C VDA1 TXA6C VDA6
+ 0TXB1C VDB1 TXA6C VDA6
+ 0TXC1C VDC1 TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA1 TXA6
+52TXA1C TXB1C
+51TXB1 TXA6
+52TXB1C TXC1C
+51TXC1 TXA6
+52TXC1C TXA1C
+C -------------------------------- GROUP 3, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0III-1 IIICA VI-1 VICA
+ 0IIICA III-1 VICA VI-1
+ 0III-3 IIICB VI-1 VICA
+ 0IIICB III-3 VICA VI-1
+ 0III-5 IIICC VI-1 VICA
+ 0IIICC III-5 VICA VI-1
+ 0III-4 AN3C VI-1 VICA
+ 0AN3C III-4 VICA VI-1
+ 0III-6 AN3C VI-1 VICA
+ 0AN3C III-6 VICA VI-1
+ 0III-2 AN3C VI-1 VICA
+ 0AN3C III-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN3C BYP3C AN6C BYP6C
+ 0BYP3C AN3C BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN1C VDA3 CEL4 VDA6
+ 0AN1C VDB3 CEL4 VDA6
+ 0AN1C VDC3 CEL4 VDA6
+ 0AN3C VDA3 CEL4 VDA6
+ 0AN3C VDB3 CEL4 VDA6
+ 0AN3C VDC3 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA3 IIICA VDA6 VICA
+ 0IIICA VDA3 VICA VDA6
+ 0VDB3 IIICB VDA6 VICA
+ 0IIICB VDB3 VICA VDA6
+ 0VDC3 IIICC VDA6 VICA
+ 0IIICC VDC3 VICA VDA6
+ 0AN1C CTH3C VDA6 VICA
+ 0CTH3C AN1C VICA VDA6
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC3Y TXA3 AC4Y TXA4
+ 0BC3Y TXB3 AC4Y TXA4
+ 0CC3Y TXC3 AC4Y TXA4
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA3C VDA3 TXA4C VDA4
+ 0TXB3C VDB3 TXA4C VDA4
+ 0TXC3C VDC3 TXA4C VDA4
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA3 TXA4
+52TXA3C NS3
+51TXB3 TXA4
+52TXB3C NS3
+51TXC3 TXA4
+52TXC3C NS3
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NS3 NS1
+C -------------------------------------------------------------------------
+C -------------------------------- GROUP 5, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0V-1 VCA VI-1 VICA
+ 0VCA V-1 VICA VI-1
+ 0V-3 VCB VI-1 VICA
+ 0VCB V-3 VICA VI-1
+ 0V-5 VCC VI-1 VICA
+ 0VCC V-5 VICA VI-1
+ 0V-4 AN5C VI-1 VICA
+ 0AN5C V-4 VICA VI-1
+ 0V-6 AN5C VI-1 VICA
+ 0AN5C V-6 VICA VI-1
+ 0V-2 AN5C VI-1 VICA
+ 0AN5C V-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN5C BYP5C AN6C BYP6C
+ 0BYP5C AN5C BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN3C VDA5 CEL4 VDA6
+ 0AN3C VDB5 CEL4 VDA6
+ 0AN3C VDC5 CEL4 VDA6
+ 0AN5C VDA5 CEL4 VDA6
+ 0AN5C VDB5 CEL4 VDA6
+ 0AN5C VDC5 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA5 VCA VDA6 VICA
+ 0VCA VDA5 VICA VDA6
+ 0VDB5 VCB VDA6 VICA
+ 0VCB VDB5 VICA VDA6
+ 0VDC5 VCC VDA6 VICA
+ 0VCC VDC5 VICA VDA6
+ 0AN3C CTH5C VDA6 VICA
+ 0CTH5C AN3C VICA VDA6
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC5Y TXA5 AC6Y TXA6
+ 0BC5Y TXB5 AC6Y TXA6
+ 0CC5Y TXC5 AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA5C VDA5 TXA6C VDA6
+ 0TXB5C VDB5 TXA6C VDA6
+ 0TXC5C VDC5 TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA5 TXA6
+52TXA5C TXB5C
+51TXB5 TXA6
+52TXB5C TXC5C
+51TXC5 TXA6
+52TXC5C TXA5C
+C
+C
+C SMOOTHING REACTOR, CELILO, POLE 4 ===================
+ 0CEL4 S4- 500. 1
+C ============================
+C DC FILTERS, CELILO, POLE 4
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0S4- ELEC1 6.3 280. .7
+ 0S4- HP4C 2.5
+ 0HP4C ELEC1 100.
+ 0ELEC1 HP4C 7.0
+C ===========================================
+C SURGE CAPACITOR, CELILO, POLE 4
+ 0S4- SURC4 .7
+ 0SURC4 5.
+ 0SURC4 ELEC1 GENAS BIGEA4
+C ============================================================
+C SMOOTHING REACTOR, CELILO, POLE 3 ===================
+ 0CEL3 A3+ CEL4 S4-
+C ============================
+C DC FILTERS, CELILO, POLE 3
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+ 0A3+ ELEC1 S4- ELEC1
+ 0A3+ HP3C S4- HP4C
+ 0HP3C ELEC1 HP4C ELEC1
+ 0ELEC1 HP3C ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, CELILO, POLE 3
+ 0A3+ SURC3 S4- SURC4
+ 0SURC3 SURC4
+ 0SURC3 ELEC1 GENAS BIGEA4
+C ============================================================
+C
+C *************************************************************************
+C CELILO - SYLMAR LINE, 846 MILES (1362 KM)
+C *************************************************************************
+C
+-1S4- 4-282 .02 6.56 .0142 282.
+-2A3+ 3-282 .02 1.56 .0192 282.
+-14-282 4-564 S4- 4-282
+-23-282 3-564
+-14-564 R4- S4- 4-282
+-23-564 R3+
+C
+C
+C SMOOTHING REACTOR, SYLMAR, POLE 4 ===================
+ 0AN6S SYL4 CEL4 S4-
+C ============================
+C DC FILTERS, SYLMAR, POLE 4
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0R4- ELEC2 S4- ELEC1
+ 0R4- HP4 S4- HP4C
+ 0HP4 ELEC2 HP4C ELEC1
+ 0ELEC2 HP4 ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, SYLMAR, POLE 4
+ 0R4- SURS4 S4- SURC4
+ 0SURS4 SURC4
+ 0SURS4 ELEC2 GENAS BIGEA4
+C ============================================================
+C SMOOTHING REACTOR, SYLMAR, POLE 3 ===================
+ 0CTH5S SYL3 CEL4 S4-
+C ============================
+C DC FILTERS, SYLMAR, POLE 3
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0R3+ ELEC2 S4- ELEC1
+ 0R3+ HP3 S4- HP4C
+ 0HP3 ELEC2 HP4C ELEC1
+ 0ELEC2 HP3 ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, SYLMAR, POLE 3
+ 0R3+ SURS3 S4- SURC4
+ 0SURS3 SURC4
+ 0SURS3 ELEC2 GENAS BIGEA4
+C ============================================================
+C
+C LC CIRCUIT NEAR SMOOTHING REACTOR ON LINE AT SYLMAR ONLY ..........
+C
+ 0R4- CAP4 GENAS BIGEA4
+ 0CAP4 .06
+ 0CAP4 SYL4 1.0
+ 0R3+ CAP3 GENAS BIGEA4
+ 0CAP3 CAP4
+ 0CAP3 SYL3 CAP4 SYL4
+C
+C
+C AC CIRCUIT OF POLE 4, SYLMAR
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS AND
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE.
+C
+ 0AS6 11AS4 GENAS BIGEA4
+ 0BS6 11BS4 GENAS BIGEA4
+ 0CS6 11CS4 GENAS BIGEA4
+ 0AS4 11AS4 GENAS BIGEA4
+ 0BS4 11BS4 GENAS BIGEA4
+ 0CS4 11CS4 GENAS BIGEA4
+ 0AS2 11AS4 GENAS BIGEA4
+ 0BS2 11BS4 GENAS BIGEA4
+ 0CS2 11CS4 GENAS BIGEA4
+ 011AS4 L1A 1.
+ 011BS4 L1B 11AS4 L1A
+ 011CS4 L1C 11AS4 L1A
+ 0L1A A57-4 GENAS BIGEA4
+ 0L1B B57-4 GENAS BIGEA4
+ 0L1C C57-4 GENAS BIGEA4
+ 0A57-4 4. 214. 1.32
+ 0B57-4 A57-4
+ 0C57-4 A57-4
+ 0 A57-4 5.7 214. .67
+ 0 B57-4 A57-4
+ 0 C57-4 A57-4
+ 0A57-4 A13-4 GENAS BIGEA4
+ 0B57-4 B13-4 GENAS BIGEA4
+ 0C57-4 C13-4 GENAS BIGEA4
+ 0A13-4 1.8 44. 1.33
+ 0B13-4 A13-4
+ 0C13-4 A13-4
+ 0 A13-4 2.2 44. .95
+ 0 B13-4 A13-4
+ 0 C13-4 A13-4
+ 0A13-4 A4 34.5
+ 0A4 A13-4 4.8
+ 0A4 4.5
+ 0B13-4 B4 A13-4 A4
+ 0B4 B13-4 A4 A13-4
+ 0B4 A4
+ 0C13-4 C4 A13-4 A4
+ 0C4 C13-4 A4 A13-4
+ 0C4 A4
+ 0A13-4 GENAR GENAS BIGEA4
+ 0B13-4 GENBR GENAS BIGEA4
+ 0C13-4 GENCR GENAS BIGEA4
+C
+C ---------------------------------- GROUP 6, SYLMAR --------------------
+C ####### ANODE REACTORS ###############
+ 0AN6S 6-1 VI-1 VICA
+ 06-1 AN6S VICA VI-1
+ 0AN6S 6-3 VI-1 VICA
+ 06-3 AN6S VICA VI-1
+ 0AN6S 6-5 VI-1 VICA
+ 06-5 AN6S VICA VI-1
+ 06SA 6-4 VI-1 VICA
+ 06-4 6SA VICA VI-1
+ 06SB 6-6 VI-1 VICA
+ 06-6 6SB VICA VI-1
+ 06SC 6-2 VI-1 VICA
+ 06-2 6SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN6S BYP6S AN6C BYP6C
+ 0BYP6S AN6S BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN6S 6SA CEL4 VDA6
+ 0AN6S 6SB CEL4 VDA6
+ 0AN6S 6SC CEL4 VDA6
+ 0CTH6S 6SA CEL4 VDA6
+ 0CTH6S 6SB CEL4 VDA6
+ 0CTH6S 6SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS6Y TXS6A AC6Y TXA6
+ 0BS6Y TXS6B AC6Y TXA6
+ 0CS6Y TXS6C AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA6 6SA TXA6C VDA6
+ 0TXSB6 6SB TXA6C VDA6
+ 0TXSC6 6SC TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS6A TXA6
+52TXSA6 TXSB6
+51TXS6B TXA6
+52TXSB6 TXSC6
+51TXS6C TXA6
+52TXSC6 TXSA6
+C
+C
+C RESISTOR SEPARATING VALVE GROUPS AT SYLMAR ONLY!
+ 0CTH6S AN4S .01
+C
+C -------------------------------- GROUP 4, SYLMAR ----------------------
+C ####### ANODE REACTORS ###############
+ 0AN4S 4-1 VI-1 VICA
+ 04-1 AN4S VICA VI-1
+ 0AN4S 4-3 VI-1 VICA
+ 04-3 AN4S VICA VI-1
+ 0AN4S 4-5 VI-1 VICA
+ 04-5 AN4S VICA VI-1
+ 04SA 4-4 VI-1 VICA
+ 04-4 4SA VICA VI-1
+ 04SB 4-6 VI-1 VICA
+ 04-6 4SB VICA VI-1
+ 04SC 4-2 VI-1 VICA
+ 04-2 4SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN4S BYP4S AN6C BYP6C
+ 0BYP4S AN4S BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN4S 4SA CEL4 VDA6
+ 0AN4S 4SB CEL4 VDA6
+ 0AN4S 4SC CEL4 VDA6
+ 0CTH4S 4SA CEL4 VDA6
+ 0CTH4S 4SB CEL4 VDA6
+ 0CTH4S 4SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS4Y TXS4A AC4Y TXA4
+ 0BS4Y TXS4B AC4Y TXA4
+ 0CS4Y TXS4C AC4Y TXA4
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA4 4SA TXA4C VDA4
+ 0TXSB4 4SB TXA4C VDA4
+ 0TXSC4 4SC TXA4C VDA4
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS4A TXA4
+52TXSA4 NR1
+51TXS4B TXA4
+52TXSB4 NR1
+51TXS4C TXA4
+52TXSC4 NR1
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NR1 NS1
+C -------------------------------------------------------------------------
+C
+C RESISTOR SEPARATING VALVE GROUPS AT SYLMAR ONLY!
+ 0CTH4S AN2S .01
+C
+C -------------------------------- GROUP 2, SYLMAR ----------------------
+C ####### ANODE REACTORS ###############
+ 0AN2S 2-1 VI-1 VICA
+ 02-1 AN2S VICA VI-1
+ 0AN2S 2-3 VI-1 VICA
+ 02-3 AN2S VICA VI-1
+ 0AN2S 2-5 VI-1 VICA
+ 02-5 AN2S VICA VI-1
+ 02SA 2-4 VI-1 VICA
+ 02-4 2SA VICA VI-1
+ 02SB 2-6 VI-1 VICA
+ 02-6 2SB VICA VI-1
+ 02SC 2-2 VI-1 VICA
+ 02-2 2SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN2S BYP2S AN6C BYP6C
+ 0BYP2S AN2S BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN2S 2SA CEL4 VDA6
+ 0AN2S 2SB CEL4 VDA6
+ 0AN2S 2SC CEL4 VDA6
+ 0CTH2S 2SA CEL4 VDA6
+ 0CTH2S 2SB CEL4 VDA6
+ 0CTH2S 2SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS2Y TXS2A AC4Y TXA4
+ 0BS2Y TXS2B AC4Y TXA4
+ 0CS2Y TXS2C AC4Y TXA4
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA2 2SA TXA4C VDA4
+ 0TXSB2 2SB TXA4C VDA4
+ 0TXSC2 2SC TXA4C VDA4
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS2A TXA4
+52TXSA2 NR2
+51TXS2B TXA4
+52TXSB2 NR2
+51TXS2C TXA4
+52TXSC2 NR2
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NR2 NS1
+C -------------------------------------------------------------------------
+C
+C -------------------------------------------------------------------------
+C GROUND ELECTRODE CIRCUIT, SYLMAR
+ 0CTH2S GR1S AN2C GR1C
+ 0GR1S ELEC2 AN2C GR1C
+ 0GR1S GR1C
+ 0ELEC2 GR2S AN2C GR1C
+ 0GR2S AN1S AN2C GR1C
+ 0GR2S GR1C
+ 0ELEC2 ELEC1
+C -------------------------------------------------------------------------
+C
+C AC CIRCUIT OF POLE 3, SYLMAR
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS AND
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE.
+C
+ 0AS1 11AS3 GENAS BIGEA4
+ 0BS1 11BS3 GENAS BIGEA4
+ 0CS1 11CS3 GENAS BIGEA4
+ 0AS3 11AS3 GENAS BIGEA4
+ 0BS3 11BS3 GENAS BIGEA4
+ 0CS3 11CS3 GENAS BIGEA4
+ 0AS5 11AS3 GENAS BIGEA4
+ 0BS5 11BS3 GENAS BIGEA4
+ 0CS5 11CS3 GENAS BIGEA4
+ 011AS3 L2A 11AS4 L1A
+ 011BS3 L2B 11AS4 L1A
+ 011CS3 L2C 11AS4 L1A
+ 0L2A A57-3 GENAS BIGEA4
+ 0L2B B57-3 GENAS BIGEA4
+ 0L2C C57-3 GENAS BIGEA4
+ 0A57-3 A57-4
+ 0B57-3 A57-4
+ 0C57-3 A57-4
+ 0 A57-3 A57-4
+ 0 B57-3 A57-4
+ 0 C57-3 A57-4
+ 0A57-3 A13-3 GENAS BIGEA4
+ 0B57-3 B13-3 GENAS BIGEA4
+ 0C57-3 C13-3 GENAS BIGEA4
+ 0A13-3 A13-4
+ 0B13-3 A13-4
+ 0C13-3 A13-4
+ 0 A13-3 A13-4
+ 0 B13-3 A13-4
+ 0 C13-3 A13-4
+ 0A13-3 A3 A13-4 A4
+ 0A3 A13-3 A4 A13-4
+ 0A3 A4
+ 0B13-3 B3 A13-4 A4
+ 0B3 B13-3 A4 A13-4
+ 0B3 A4
+ 0C13-3 C3 A13-4 A4
+ 0C3 C13-3 A4 A13-4
+ 0C3 A4
+ 0A13-3 GENAR GENAS BIGEA4
+ 0B13-3 GENBR GENAS BIGEA4
+ 0C13-3 GENCR GENAS BIGEA4
+C
+C ---------------------------------- GROUP 1, SYLMAR --------------------
+C ####### ANODE REACTORS ###############
+ 0AN1S 1-1 VI-1 VICA
+ 01-1 AN1S VICA VI-1
+ 0AN1S 1-3 VI-1 VICA
+ 01-3 AN1S VICA VI-1
+ 0AN1S 1-5 VI-1 VICA
+ 01-5 AN1S VICA VI-1
+ 01SA 1-4 VI-1 VICA
+ 01-4 1SA VICA VI-1
+ 01SB 1-6 VI-1 VICA
+ 01-6 1SB VICA VI-1
+ 01SC 1-2 VI-1 VICA
+ 01-2 1SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN1S BYP1S AN6C BYP6C
+ 0BYP1S AN1S BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN1S 1SA CEL4 VDA6
+ 0AN1S 1SB CEL4 VDA6
+ 0AN1S 1SC CEL4 VDA6
+ 0CTH1S 1SA CEL4 VDA6
+ 0CTH1S 1SB CEL4 VDA6
+ 0CTH1S 1SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS1Y TXS1A AC6Y TXA6
+ 0BS1Y TXS1B AC6Y TXA6
+ 0CS1Y TXS1C AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA1 1SA TXA6C VDA6
+ 0TXSB1 1SB TXA6C VDA6
+ 0TXSC1 1SC TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS1A TXA6
+52TXSA1 TXSB1
+51TXS1B TXA6
+52TXSB1 TXSC1
+51TXS1C TXA6
+52TXSC1 TXSA1
+C
+C
+C RESISTOR SEPARATING VALVE GROUPS AT SYLMAR ONLY!
+ 0CTH1S AN3S .01
+C
+C -------------------------------- GROUP 3, SYLMAR ----------------------
+C ####### ANODE REACTORS ## 0AN3S 3-1 VI-1 VICA
+ 03-1 AN3S VICA VI-1
+ 0AN3S 3-3 VI-1 VICA
+ 03-3 AN3S VICA VI-1
+ 0AN3S 3-5 VI-1 VICA
+ 03-5 AN3S VICA VI-1
+ 03SA 3-4 VI-1 VICA
+ 03-4 3SA VICA VI-1
+ 03SB 3-6 VI-1 VICA
+ 03-6 3SB VICA VI-1
+ 03SC 3-2 VI-1 VICA
+ 03-2 3SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN3S BYP3S AN6C BYP6C
+ 0BYP3S AN3S BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN3S 3SA CEL4 VDA6
+ 0AN3S 3SB CEL4 VDA6
+ 0AN3S 3SC CEL4 VDA6
+ 0CTH3S 3SA CEL4 VDA6
+ 0CTH3S 3SB CEL4 VDA6
+ 0CTH3S 3SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS3Y TXS3A AC4Y TXA4
+ 0BS3Y TXS3B AC4Y TXA4
+ 0CS3Y TXS3C AC4Y TXA4
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA3 3SA TXA4C VDA4
+ 0TXSB3 3SB TXA4C VDA4
+ 0TXSC3 3SC TXA4C VDA4
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS3A TXA4
+52TXSA3 NR3
+51TXS3B TXA4
+52TXSB3 NR3
+51TXS3C TXA4
+52TXSC3 NR3
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NR3 NS1
+C -------------------------------------------------------------------------
+C
+C RESISTOR SEPARATING VALVE GROUPS AT SYLMAR ONLY!
+ 0CTH3S AN5S .01
+C ---------------------------------- GROUP 5, SYLMAR --------------------
+C ####### ANODE REACTORS ###############
+ 0AN5S 5-1 VI-1 VICA
+ 05-1 AN5S VICA VI-1
+ 0AN5S 5-3 VI-1 VICA
+ 05-3 AN5S VICA VI-1
+ 0AN5S 5-5 VI-1 VICA
+ 05-5 AN5S VICA VI-1
+ 05SA 5-4 VI-1 VICA
+ 05-4 5SA VICA VI-1
+ 05SB 5-6 VI-1 VICA
+ 05-6 5SB VICA VI-1
+ 05SC 5-2 VI-1 VICA
+ 05-2 5SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+ 0AN5S BYP5S AN6C BYP6C
+ 0BYP5S AN5S BYP6C AN6C
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN5S 5SA CEL4 VDA6
+ 0AN5S 5SB CEL4 VDA6
+ 0AN5S 5SC CEL4 VDA6
+ 0CTH5S 5SA CEL4 VDA6
+ 0CTH5S 5SB CEL4 VDA6
+ 0CTH5S 5SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS5Y TXS5A AC6Y TXA6
+ 0BS5Y TXS5B AC6Y TXA6
+ 0CS5Y TXS5C AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA5 5SA TXA6C VDA6
+ 0TXSB5 5SB TXA6C VDA6
+ 0TXSC5 5SC TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS5A TXA6
+52TXSA5 TXSB5
+51TXS5B TXA6
+52TXSB5 TXSC5
+51TXS5C TXA6
+52TXSC5 TXSA5
+C
+C $$$$$$$$$$$$$$$$$$$$$$$$$ LEAKAGE CAPACITANCE ACROSS VALVES
+C
+ 0VICA CTH6C .001
+ 0VICB CTH6C VICA CTH6C
+ 0VICC CTH6C VICA CTH6C
+ 0AN6C VICA VICA CTH6C
+ 0AN6C VICB VICA CTH6C
+ 0AN6C VICC VICA CTH6C
+ 0IVCA CTH4C VICA CTH6C
+ 0IVCB CTH4C VICA CTH6C
+ 0IVCC CTH4C VICA CTH6C
+ 0AN4C IVCA VICA CTH6C
+ 0AN4C IVCB VICA CTH6C
+ 0AN4C IVCC VICA CTH6C
+ 0IICA CTH2C VICA CTH6C
+ 0IICB CTH2C VICA CTH6C
+ 0IICC CTH2C VICA CTH6C
+ 0AN2C IICA VICA CTH6C
+ 0AN2C IICB VICA CTH6C
+ 0AN2C IICC VICA CTH6C
+ 0ICA CTH1C VICA CTH6C
+ 0ICB CTH1C VICA CTH6C
+ 0ICC CTH1C VICA CTH6C
+ 0AN1C ICA VICA CTH6C
+ 0AN1C ICB VICA CTH6C
+ 0AN1C ICC VICA CTH6C
+ 0IIICA CTH3C VICA CTH6C
+ 0IIICB CTH3C VICA CTH6C
+ 0IIICC CTH3C VICA CTH6C
+ 0AN3C IIICA VICA CTH6C
+ 0AN3C IIICB VICA CTH6C
+ 0AN3C IIICC VICA CTH6C
+ 0VCA CTH5C VICA CTH6C
+ 0VCB CTH5C VICA CTH6C
+ 0VCC CTH5C VICA CTH6C
+ 0AN5C VCA VICA CTH6C
+ 0AN5C VCB VICA CTH6C
+ 0AN5C VCC VICA CTH6C
+ 06SA CTH6S VICA CTH6C
+ 06SB CTH6S VICA CTH6C
+ 06SC CTH6S VICA CTH6C
+ 0AN6S 6SA VICA CTH6C
+ 0AN6S 6SB VICA CTH6C
+ 0AN6S 6SC VICA CTH6C
+ 04SA CTH4S VICA CTH6C
+ 04SB CTH4S VICA CTH6C
+ 04SC CTH4S VICA CTH6C
+ 0AN4S 4SA VICA CTH6C
+ 0AN4S 4SB VICA CTH6C
+ 0AN4S 4SC VICA CTH6C
+ 02SA CTH2S VICA CTH6C
+ 02SB CTH2S VICA CTH6C
+ 02SC CTH2S VICA CTH6C
+ 0AN2S 2SA VICA CTH6C
+ 0AN2S 2SB VICA CTH6C
+ 0AN2S 2SC VICA CTH6C
+ 01SA CTH1S VICA CTH6C
+ 01SB CTH1S VICA CTH6C
+ 01SC CTH1S VICA CTH6C
+ 0AN1S 1SA VICA CTH6C
+ 0AN1S 1SB VICA CTH6C
+ 0AN1S 1SC VICA CTH6C
+ 03SA CTH3S VICA CTH6C
+ 03SB CTH3S VICA CTH6C
+ 03SC CTH3S VICA CTH6C
+ 0AN3S 3SA VICA CTH6C
+ 0AN3S 3SB VICA CTH6C
+ 0AN3S 3SC VICA CTH6C
+ 05SA CTH5S VICA CTH6C
+ 05SB CTH5S VICA CTH6C
+ 05SC CTH5S VICA CTH6C
+ 0AN5S 5SA VICA CTH6C
+ 0AN5S 5SB VICA CTH6C
+ 0AN5S 5SC VICA CTH6C
+BLANK card ending electric network branch cards
+C ((((((((((( BRIDGE CIRCUIT BREAKERS, CELILO ))))))))))))))))))))
+ AC6 AC6Y -10.E-3 10.E+3
+ BC6 BC6Y -10.E-3 10.E+3
+ CC6 CC6Y -10.E-3 10.E+3
+ AC4 AC4Y -10.E-3 10.E+3
+ BC4 BC4Y -10.E-3 10.E+3
+ CC4 CC4Y -10.E-3 10.E+3
+ AC2 AC2Y -10.E-3 10.E+3
+ BC2 BC2Y -10.E-3 10.E+3
+ CC2 CC2Y -10.E-3 10.E+3
+ AC1 AC1Y -10.E-3 10.E+3
+ BC1 BC1Y -10.E-3 10.E+3
+ CC1 CC1Y -10.E-3 10.E+3
+ AC3 AC3Y -10.E-3 10.E+3
+ BC3 BC3Y -10.E-3 10.E+3
+ CC3 CC3Y -10.E-3 10.E+3
+ AC5 AC5Y -10.E-3 10.E+3
+ BC5 BC5Y -10.E-3 10.E+3
+ CC5 CC5Y -10.E-3 10.E+3
+C
+C ((((((((((( BRIDGE CIRCUIT BREAKERS, SYLMAR ))))))))))))))))))))
+ AS6 AS6Y -10.E-3 10.E+3
+ BS6 BS6Y -10.E-3 10.E+3
+ CS6 CS6Y -10.E-3 10.E+3
+ AS4 AS4Y -10.E-3 10.E+3
+ BS4 BS4Y -10.E-3 10.E+3
+ CS4 CS4Y -10.E-3 10.E+3
+ AS2 AS2Y -10.E-3 10.E+3
+ BS2 BS2Y -10.E-3 10.E+3
+ CS2 CS2Y -10.E-3 10.E+3
+ AS1 AS1Y -10.E-3 10.E+3
+ BS1 BS1Y -10.E-3 10.E+3
+ CS1 CS1Y -10.E-3 10.E+3
+ AS3 AS3Y -10.E-3 10.E+3
+ BS3 BS3Y -10.E-3 10.E+3
+ CS3 CS3Y -10.E-3 10.E+3
+ AS5 AS5Y -10.E-3 10.E+3
+ BS5 BS5Y -10.E-3 10.E+3
+ CS5 CS5Y -10.E-3 10.E+3
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+C VALVES AT CELILO
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+11VI-1 CTH6C F2SI 1
+11VI-3 CTH6C F4SI 1
+11VI-5 CTH6C F6SI 13
+11VI-4 VICA F5SI 1
+11VI-6 VICB F1SI 1
+11VI-2 VICC F3SI 1
+11IV-1 CTH4C F2SII 1
+11IV-3 CTH4C F4SII 1
+11IV-5 CTH4C F6SII 1
+11IV-4 IVCA F5SII 1
+11IV-6 IVCB F1SII 1
+11IV-2 IVCC F3SII 1
+11II-1 CTH2C F2SII 1
+11II-3 CTH2C F4SII 13
+11II-5 CTH2C F6SII 1
+11II-4 IICA F5SII 1
+11II-6 IICB F1SII 1
+11II-2 IICC F3SII 1
+11I-1 CTH1C F2SI 1
+11I-3 CTH1C F4SI 1
+11I-5 CTH1C F6SI 1
+11I-4 ICA F5SI 1
+11I-6 ICB F1SI 1
+11I-2 ICC F3SI 1
+11III-1 CTH3C F2SII 1
+11III-3 CTH3C F4SII 1
+11III-5 CTH3C F6SII 1
+11III-4 IIICA F5SII 1
+11III-6 IIICB F1SII 1
+11III-2 IIICC F3SII 1
+11V-1 CTH5C F2SI 13
+11V-3 CTH5C F4SI 1
+11V-5 CTH5C F6SI 1
+11V-4 VCA F5SI 1
+11V-6 VCB F1SI 1
+11V-2 VCC F3SI 1
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+C BYPASS VALVES
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+11BYP6C CTH6C FIRE 1
+11BYP4C CTH4C FIRE 1
+11BYP2C CTH2C FIRE 1
+11BYP1C CTH1C FIRE 1
+11BYP3C CTH3C FIRE 1
+11BYP5C CTH5C FIRE 1
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+C VALVES AT SYLMAR
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+116-1 6SA F5RIII 1
+116-3 6SB F1RIII 1
+116-5 6SC F3RIII 1
+116-4 CTH6S F2RIII 1
+116-6 CTH6S F4RIII 1
+116-2 CTH6S F6RIII 1
+114-1 4SA F5RIV 1
+114-3 4SB F1RIV 1
+114-5 4SC F3RIV 1
+114-4 CTH4S F2RIV 13
+114-6 CTH4S F4RIV 1
+114-2 CTH4S F6RIV 1
+112-1 2SA F5RIV 1
+112-3 2SB F1RIV 1
+112-5 2SC F3RIV 1
+112-4 CTH2S F2RIV 1
+112-6 CTH2S F4RIV 1
+112-2 CTH2S F6RIV 1
+111-1 1SA F5RIII 1
+111-3 1SB F1RIII 1
+111-5 1SC F3RIII 1
+111-4 CTH1S F2RIII 1
+111-6 CTH1S F4RIII 1
+111-2 CTH1S F6RIII 1
+113-1 3SA F5RIV 1
+113-3 3SB F1RIV 1
+113-5 3SC F3RIV 1
+113-4 CTH3S F2RIV 1
+113-6 CTH3S F4RIV 1
+113-2 CTH3S F6RIV 1
+115-1 5SA F5RIII 1
+115-3 5SB F1RIII 1
+115-5 5SC F3RIII 1
+115-4 CTH5S F2RIII 1
+115-6 CTH5S F4RIII 1
+115-2 CTH5S F6RIII 1
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+C BYPASS VALVES
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+11BYP6S CTH6S FIRE 1
+11BYP4S CTH4S FIRE 1
+11BYP2S CTH2S FIRE 1
+11BYP1S CTH1S FIRE 1
+11BYP3S CTH3S FIRE 1
+11BYP5S CTH5S FIRE 1
+BLANK card ending switch and valve cards
+14GENAS 191.88 60. - 90. -1.
+14GENBS 191.88 60. 150. -1.
+14GENCS 191.88 60. 30. -1.
+14GENAR 177.00 60. - 90. -1.
+14GENBR 177.00 60. 150. -1.
+14GENCR 177.00 60. 30. -1.
+BLANK card ending electric network source cards
+C 5SC 85.161135603237 85.161135845967 .24239772743E-8
+C -.0064297994253 -0.0043259 .32104991758E-4
+C Total network loss P-loss by summing injections = 9.400745644988E-01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C AC6 AC6Y -0.17537736E-02 -0.15130560E-03 0.17602884E-02
+C BC6 BC6Y 0.74585229E-03 0.15944653E-02 0.17602884E-02
+C CC6 CC6Y 0.10079213E-02 -0.14431597E-02 0.17602884E-02
+C AC4 AC4Y -0.17256830E-02 -0.15254779E-03 0.17324124E-02
+ S4- 4-282 4-564 R4- A3+ 3-282 3-564 R3+
+C Step Time VI-5 II-3 V-1 4-4 S4- 4-282
+C CTH6C CTH2C CTH5C CTH4S
+C
+C 3-564 R3+ VI-5 II-3 V-1 4-4
+C CTH6C CTH2C CTH5C CTH4S
+C *** Phasor I(0) = -1.7537736E-03 Switch "AC6 " to "AC6Y " closed
+C *** Phasor I(0) = 7.4585229E-04 Switch "BC6 " to "BC6Y " closed
+C *** Phasor I(0) = 1.0079213E-03 Switch "CC6 " to "CC6Y " closed
+C < < Etc. for all closed switches (many) > >
+C 0 0.0 92.4471816 -80.391986 -46.23358 -.00603248 .3504E-12 .51982E-12
+C .11844E-12 -.4208E-12 0.0 0.0 0.0 0.0
+C 1 .1E-3 92.3819397 -82.084592 -43.183633 3.21704985 .38869E-12 .49439E-12
+C .13314E-12 -.391E-12 0.0 0.0 0.0 0.0
+C 20 .002 67.3990315 -90.384846 21.0991082 58.5370378 .22041E-12 -.2248E-13
+C .36015E-12 .29277E-12 0.0 0.0 0.0 0.0
+C Valve "IV-6 " to "IVCB " closing after 3.90000000E-03 sec.
+C Valve "II-6 " to "IICB " closing after 3.90000000E-03 sec.
+C Valve "III-6 " to "IIICB " closing after 3.90000000E-03 sec.
+C 40 .004 8.90509663 -34.543231 78.5718629 85.3493624 .197975812 .14269E-12
+C .89101E-13 .85369E-12 0.0 0.0 0.0 0.0
+C Valve "III-6 " to "IIICB " opening after 4.40000000E-03 sec.
+C Valve "IV-6 " to "IVCB " opening after 4.50000000E-03 sec.
+C Valve "II-6 " to "IICB " opening after 4.50000000E-03 sec.
+C Valve "4-3 " to "4SB " closing after 4.70000000E-03 sec.
+BLANK card ending output variable requests (just node voltages, here)
+C 1980 .198 46.1602391 -113.62943 -110.38699 0.0 414.910346 406.384239
+C -397.18723 -365.84617 0.0 0.0 0.0 .08752568
+C Valve "4-4 " to "CTH4S " opening after 1.98200000E-01 sec.
+C Valve "2-4 " to "CTH2S " opening after 1.98200000E-01 sec.
+C Valve "3-4 " to "CTH3S " opening after 1.98200000E-01 sec.
+C Valve "6-6 " to "CTH6S " closing after 1.98500000E-01 sec.
+C Valve "1-6 " to "CTH1S " closing after 1.98500000E-01 sec.
+C Valve "5-6 " to "CTH5S " closing after 1.98500000E-01 sec.
+C Valve "VI-3 " to "CTH6C " opening after 1.98700000E-01 sec.
+C Valve "I-3 " to "CTH1C " opening after 1.98700000E-01 sec.
+C Valve "V-3 " to "CTH5C " opening after 1.98700000E-01 sec.
+C Valve "6-4 " to "CTH6S " opening after 1.99300000E-01 sec.
+C Valve "IV-6 " to "IVCB " closing after 1.99400000E-01 sec.
+C Valve "II-6 " to "IICB " closing after 1.99400000E-01 sec.
+C Valve "III-6 " to "IIICB " closing after 1.99400000E-01 sec.
+C Valve "1-4 " to "CTH1S " opening after 1.99800000E-01 sec.
+C Valve "5-4 " to "CTH5S " opening after 1.99800000E-01 sec.
+C Valve "4-1 " to "4SA " closing after 1.99900000E-01 sec.
+C Valve "2-1 " to "2SA " closing after 1.99900000E-01 sec.
+C 2000 0.2 0.0 -122.65729 -136.34202 116.985575 412.121881 399.669877
+C -375.18165 -284.40015 1.16803681 0.0 0.0 0.0
+C Variable max:135.843884 147.506119 154.898333 219.556654 460.297853 464.200612
+C 2.68656079 5.38510251 1.44399474 1.33625405 1.42211178 1.24791434
+C Times of max : .0166 .0101 .0064 .0214 .0419 .0399
+C .0082 .0083 .1321 .1919 .171 .1761
+C Variable min:-240.63646 -239.41651 -276.74318 -148.88559 .18263E-12 -.2867E-12
+C -448.03483 -427.31588 -.19958675 -.20362309 -.2353591 -.06790456
+C Times of min : .022 .0156 .0119 .0124 .0022 .0049
+C .0592 .0413 .0219 .1808 .0118 .0306
+ PRINTER PLOT
+ 194 2. 0.0 20. VI-5 CTH6C { Axis limits : (-0.052, 1.022)
+ 144 2. 0.0 20. S4- { Axis limits : (0.000, 3.051)
+BLANK card terminating batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc10.dat b/benchmarks/dc10.dat
new file mode 100644
index 0000000..7e37b09
--- /dev/null
+++ b/benchmarks/dc10.dat
@@ -0,0 +1,378 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-10
+C Companion to "CASCADED PI" test of preceding data case. Same answer
+C Use batch-mode solution only, since SPY sets TMAX to nearly infinity,
+C and then the 0 DELTAT will result in an error stop. 6 subcases total.
+C 20 June 2007, add the following comment merely to satisfy a new 6th
+C subcase which will illustrate CONCATENATE MONTE CARLO PL4 ( CMCP ) .
+C Since subcases 1 through 5 do not use .PL4 files significantly, the
+C switch from C-like to widexx format should go unnoticed :
+C FMTPL4 L4BYTE NEWPL4 Next card FORMAT ( 16X, A6, 2X, 2I8 )
+C CONCATENATE. wide08 0 0 <Force .PL4 type> key text anywhere
+C The preceding overrides .PL4 choices of STARTUP. Service begins 17 June 2007
+C A second illustration of just this declaration can be found in DCNEW-22.
+ 0.0 0.0 60.
+ 1 1
+ USE OLD { Extraneous request to undo preceding USE RL or AB will be rejected
+C Note about preceding, which was added 5 November 2001. This first
+C occurence will illustrate the warning message. For a legal use of
+C USE OLD, see the 2nd subcase.
+ 1RA1 1A1 .877 8.40 .1628
+ 2RB1 1B1 .747 4.14-.0252 .852 8.43 .1559
+ 3RC1 1C1 .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571
+ 11A1 2A1 RA1 1A1
+ 21B1 2B1
+ 31C1 2C1
+ 02B1 3B1 13.1449.071 3
+ 12C1 4C1 RA1 1A1
+ 23A1 4A1
+ 33B1 4B1
+ 04C1 5C1 13.14 1
+ 04A1 5A1 13.1449.071 2
+ 04B1 5B1 4C1 5C1
+ 05C1 5G1 2B1 3B1
+ 05A1 5G1 2B1 3B1
+ 05B1 5G1 2B1 3B1
+ 5G1 5.0 13.14
+ 15B1 6B1 RA1 1A1
+ 25C1 6C1
+ 35A1 6A1
+ 6A1 7A1 4B1 5B1
+ 6B1 7B1 4C1 5C1
+ 6C1 7C1 4A1 5A1
+ 7A1 7G1 2B1 3B1
+ 7B1 7G1 2B1 3B1
+ 7C1 7G1 2B1 3B1
+ 7G1 5G1
+ 17A1 GA1 1.658 16.92 .3142
+ 27B1 GB1 1.446 8.34-.0554 1.704 16.86 .3118
+ 37C1 GC1 1.470 6.94-.0134 1.494 8.28-.0504 1.754 16.80 .3256
+BLANK card ending branch cards
+BLANK card ending switch cards (none, for this problem)
+14GA1 424.35 60. 0.0 -.1
+14RA1 424.35 60. 10.0 -.1
+14GB1 424.35 60. -120.0 -.1
+14RB1 424.35 60. -110.0 -.1
+14GC1 424.35 60. 120.0 -.1
+14RC1 424.35 60. 130.0 -.1
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C RA1 |1A1 *
+C 1A1 |RA1 *2A1 *
+C RB1 |1B1 *
+C 1B1 |RB1 *2B1 *
+C RC1 |1C1 *
+C 1C1 |RC1 *2C1 *
+C 2A1 |1A1 *
+C 2B1 |1B1 *3B1 *
+C 2C1 |1C1 *4C1 *
+C 3B1 |2B1 *4B1 *
+C 4C1 |2C1 *5C1 *
+C 3A1 |4A1 *
+C Etc. (many more connections!) .....
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = 9.311041032866E+03
+C End injection: -12.95674346101 44.419110587004 -6432.468410934 9424.6247887975
+C End injection: -42.48741206788 -106.9593405 -6888.171205186 -0.6825172
+C Selective branch outputs follow (for column-80 keyed branches only). Any req
+C augmented to include branch voltage. But the converse is not true (a request
+C From To (======== Branch voltage Vkm = Vk - Vm =========) (==
+C bus K bus M Magnitude Degrees Real part Imag part Magni
+C 2B1 3B1 1.6180264E+03 -139.359766 -1.2277813E+03 -1.0538323E+03 3.9545
+C 4C1 5C1 3.9925372E+02 -138.975087 -3.0120669E+02 -2.6206500E+02 3.0384
+C 4A1 5A1 2.9415954E+00 92.386571 -1.2249239E-01 2.9390439E+00
+BLANK card ending output variable requests
+ PRINTER PLOT
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2 of 6 subcases is unrelated to the first. It shows "BCTRAN" usage.
+C Illustration of 9x9 matrix representation of 3-phase, 3-winding
+C transformer as punched by the 2nd subcase of DCNEW-8. Note the use
+C of "USE AR" for better representation via [A] and [R] matrices.
+C To validate, compare with the same solution in 3rd subcase which has
+C no "USE AR" (it uses the more common "USE RL" for [R], [X]).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000200 .010
+ 1 1 1 1 1 -1
+ 5 5
+ USE AR
+$VINTAGE, 1,
+ 1H-1 26.512692374898 .2054666
+ 2L-1 -59.57848438329 0.0
+ 180.85474339841 .0742333
+ 3T-1 T-2 5.1245421614045 0.0
+ -71.06950226953 0.0
+ 76.560711306734 .0822
+ 4H-2 1.317410104146 0.0
+ -1.044760156768 0.0
+ -2.174181664407 0.0
+ 26.512692374898 .2054666
+ 5L-2 -1.044760156768 0.0
+ .10024670965949 0.0
+ 2.6475868140585 0.0
+ -59.57848438329 0.0
+ 180.85474339841 .0742333
+ 6T-2 -2.174181664407 0.0
+ 2.6475868140585 0.0
+ 2.4174362478358 0.0
+ 5.1245421614045 0.0
+ -71.06950226953 0.0
+ 76.560711306734 .0822
+ 7H-3 1.317410104146 0.0
+ -1.044760156768 0.0
+ -2.174181664407 0.0
+ 1.317410104146 0.0
+ -1.044760156768 0.0
+ -2.174181664407 0.0
+ 26.512692374898 .2054666
+ 8L-3 -1.044760156768 0.0
+ .10024670965949 0.0
+ 2.6475868140585 0.0
+ -1.044760156768 0.0
+ .10024670965949 0.0
+ 2.6475868140585 0.0
+ -59.57848438329 0.0
+ 180.85474339841 .0742333
+ 9 T-1 -2.174181664407 0.0
+ 2.6475868140585 0.0
+ 2.4174362478358 0.0
+ -2.174181664407 0.0
+ 2.6475868140585 0.0
+ 2.4174362478358 0.0
+ 5.1245421614045 0.0
+ -71.06950226953 0.0
+ 76.560711306734 .0822
+C USE RL This old, absolute form is replaced by the following universal form:
+ USE OLD { Beginning 5 November 2001, this will undo preceding USE AB or RL
+ GENA H-1 5.0
+ GENB H-2 5.0
+ GENC H-3 5.0
+ L-1 1.0
+BLANK card ending all branch cards
+BLANK card terminating the last switch card
+C Balanced 3-phase source of 400 Hz is connected to transformer delta side:
+14GENA 100. 60. -30. -1.
+14GENB 100. 60. -150. -1.
+14GENC 100. 60. 90. -1.
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = 1.731473944895E+02
+C Last gen: GENC .6123031769E-14 100. .11363284501067 .62844772817969
+C Last gen: 100. 90.0000000 .61808909033326 79.5827588
+ H-1 L-1 H-2 L-2 H-3 L-3
+C Step Time H-1 L-1 H-2 L-2 H-3
+C 0 0.0 83.84032026 .9255817033 -87.1526014 -35.2685815 -.568164225
+C 1 .2E-3 85.28151988 1.894879197 -82.9051812 -33.2151021 -7.86654662
+C 2 .4E-3 86.23807533 2.853434433 -78.1866756 -30.9728926 -15.1202281
+C 3 .6E-3 86.7045542 3.795799431 -73.0238961 -28.5546937 -22.2879919
+BLANK card ending program output-variable requests.
+C 50 .01 -80.9365963 -8.33136565 39.29673143 13.29079634 57.4223614
+C Variable max : 86.7045542 12.93833086 102.0061131 43.76610174 57.4223614
+C Times of max : .6E-3 .004 .0068 .0066 .01
+C Variable min : -86.757459 -8.33136565 -87.1526014 -35.2685815 -96.8960673
+C Times of min : .009 .01 0.0 0.0 .0042
+ PRINTER PLOT
+ 144 2. 0.0 10. L-1 L-2 L-3 { Axis limits: (-4.603, 4.377)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 3rd of 6 subcases has the same solution as the 2nd, but it is to be
+C obtained using [R], [L] branch cards (punched by the 1st subcase
+C of DCNEW-8) rather than [A], [R] branch cards of preceding case.
+C Note XOPT = 60, so we use not L but rather wL in ohms at 60 Hz.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000200 .010 60. { Note XOPT = 60 to agree with DCNEW-8 punched cards
+ 1 1 1 1 1 -1
+ 5 5
+ USE RL { Should not be needed, since RL units are the default starting choice
+$VINTAGE, 1,
+ 1H-1 .2054666 41432.097487177
+ 2L-1 0.0 19771.027634356
+ .0742333 9437.8794714269
+ 3T-1 T-2 0.0 15579.567888173
+ 0.0 7437.5502771391
+ .0822 5866.2181589463
+ 4H-2 0.0 -.0533106335013
+ 0.0 .95599943703728
+ 0.0 1.7517639180077
+ .2054666 41432.097487177
+ 5L-2 0.0 .95599943703728
+ 0.0 .73764739804435
+ 0.0 .83627686643027
+ 0.0 19771.027634356
+ .0742333 9437.8794714269
+ 6T-2 0.0 1.7517639180077
+ 0.0 .83627686643027
+ 0.0 .65959655490825
+ 0.0 15579.567888173
+ 0.0 7437.5502771391
+ .0822 5866.2181589463
+ 7H-3 0.0 -.0533106335013
+ 0.0 .95599943703728
+ 0.0 1.7517639180077
+ 0.0 -.0533106335013
+ 0.0 .95599943703728
+ 0.0 1.7517639180077
+ .2054666 41432.097487177
+ 8L-3 0.0 .95599943703728
+ 0.0 .73764739804435
+ 0.0 .83627686643027
+ 0.0 .95599943703728
+ 0.0 .73764739804435
+ 0.0 .83627686643027
+ 0.0 19771.027634356
+ .0742333 9437.8794714269
+ 9 T-1 0.0 1.7517639180077
+ 0.0 .83627686643027
+ 0.0 .65959655490825
+ 0.0 1.7517639180077
+ 0.0 .83627686643027
+ 0.0 .65959655490825
+ 0.0 15579.567888173
+ 0.0 7437.5502771391
+ .0822 5866.2181589463
+ GENA H-1 5.0
+ GENB H-2 5.0
+ GENC H-3 5.0
+ L-1 1.0
+BLANK card ending all branch cards
+BLANK card terminating the last switch card
+C Balanced 3-phase source of 400 Hz is connected to transformer delta side:
+14GENA 100. 60. -30. -1.
+14GENB 100. 60. -150. -1.
+14GENC 100. 60. 90. -1.
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = 1.731473944910E+02C 100. .11363284500541 .6284477281075 30.904454513041 31.422386405375
+C 90.0000000 .61808909026083 79.5827588 5.6816422502705 0.9835171
+C Step Time H-1 L-1 H-2 L-2 H-3
+C 0 0.0 83.84032026 .9255817034 -87.1526014 -35.2685815 -.568164225
+C 1 .2E-3 85.28151988 1.894879197 -82.9051812 -33.2151021 -7.86654662
+C 2 .4E-3 86.23807533 2.853434433 -78.1866756 -30.9728926 -15.1202281
+C 3 .6E-3 86.7045542 3.795799431 -73.0238961 -28.5546937 -22.2879919
+ H-1 L-1 H-2 L-2 H-3 L-3
+BLANK card ending program output-variable requests.
+C 50 .01 -80.9365963 -8.33136565 39.29673143 13.29079634 57.4223614
+C Variable max : 86.7045542 12.93833086 102.0061131 43.76610174 57.4223614
+C Times of max : .6E-3 .004 .0068 .0066 .01
+C Variable min : -86.757459 -8.33136565 -87.1526014 -35.2685815 -96.8960673
+C Times of min : .009 .01 0.0 0.0 .0042
+ PRINTER PLOT
+ 144 2. 0.0 10. L-1 L-2 L-3 { Axis limits: (-4.603, 4.377)
+$WIDTH, 79,
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 4th of 6 subcases is unrelated to the preceding. It shows "SSOMIT"
+C usage as introduced 7 November 1998. More precisely, this 4th case
+C does _not_ involve SSOMIT to omit a linear branch during the
+C phasor solution. The switch (LEFT, RIGHT) is open, isolating 50 Hz
+C on the left from 60 Hz on the right. But, because this switch is
+C paralleled by a leakage branch (snubber circuits in case of hvdc),
+C phasor solution logic will reject the mixing of frequencies. Use of
+C an all-resistive network allows a large time step for illustration.
+$WIDTH, 132, { Back to full width to make new 4th and 5th subcases look better
+PRINTED NUMBER WIDTH, 9, 2,
+ .001 .020
+ 1 1 1 1 1
+ GEN1 LEFT 0.5 1
+ RIGHT GEN2 0.5 1
+ LEFT RIGHT 1.E4
+BLANK card ending branch cards
+ LEFT RIGHT .010 1.0 1
+BLANK card ending switch cards
+14GEN1 1.0 50. 0. -1.
+14GEN2 1.0 60. 0. -1.
+BLANK card ending source cards
+ 1
+C PRINTER PLOT
+ 194 2. 0.0 20. LEFT RIGHT
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 6 subcases is the same as the preceding except for the name
+C of the snubber branch that parallels the switch. It shows "SSOMIT"
+C has the effect of omitting this branch during the phasor solution,
+C thereby avoiding the illegal mixing of 50- and 60-Hz excitation (a
+C problem of the preceding data subset). See January, 1999, newsletter.
+PRINTED NUMBER WIDTH, 9, 2,
+ .001 .020
+ 1 1 1 1 1
+ GEN1 LEFT 0.5 1
+ RIGHT GEN2 0.5 1
+ LEFT RIGHT NAME SSOMIT 1.E4 { Snubber to be ignored during phasor solution
+BLANK card ending branch cards
+ LEFT RIGHT .010 1.0 { Switch is open during phasor solution } 1
+BLANK card ending switch cards
+14GEN1 1.0 50. 0. -1.
+14GEN2 1.0 60. 0. -1.
+BLANK card ending source cards
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time RIGHT LEFT GEN1 GEN2 LEFT GEN1 RIGHT
+C RIGHT LEFT GEN2
+C 0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0
+C 1 .1E-2 .929778 .951055 .951057 .929776 0.0 .213E-5 .213E-5
+C 2 .002 .728973 .809013 .809017 .728969 0.0 .8E-5 .8E-5
+C 3 .003 .425787 .587777 .587785 .425779 0.0 .162E-4 .162E-4
+ 1 { Output all node voltages
+C 19 .019 .79424 .79424 .951057 .637424 .313633 .313633 .313633
+C 20 .02 .654508 .654508 1.0 .309017 .690983 .690983 .690983
+C Variable max : 1.0 1.0 1.0 1.0 .690983 .690983 .690983
+C Times of max : 0.0 0.0 0.0 0.0 .02 .02 .02
+C Variable min : -.99211 -.99999 -1. -.99211 -.84484 -.84484 -.84484
+C Times of min : .008 .01 .01 .008 .014 .014 .014
+ PRINTER PLOT
+ 194 3. 0.0 20. LEFT RIGHT { Axis limits: (-8.448, 6.910)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 6 subcases is unrelated to preceding. It illustrates use of
+C CONCATENATE MONTE CARLO PL4 ( CMCP ) which becme available with the
+C UTPF update of 20 June 2007. Data is copied from DC-24, so the
+C solution is well known. What is new is the .PL4 file, which will
+C contain all 3 signal sets, for the 3 energizations, in 1 disk file.
+C For illustration, use formatted .PL4 as per the <Force .PL4 type>
+C declaration of the 1st subcase (mandatory location if present).
+CONCATENATE MONTE CARLO PL4 { New form of IPLOT= 54321 frees IPLOT for frequency
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+REPEATABLE RANDOM NUMBERS { Same as NSEED=1 (this overrides zero value below)
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+ 100.E-6 20.E-3 60.
+ 1 1 1 2 1 -1 1 1 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 0
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+$OPEN, UNIT=LUNIT9 FILE=dc24at40.ext STATUS=UNKNOWN FORM=UNFORMATTED RECL=1000 !
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+BLANK card ending the specification of program outputs (node voltages, here)
+$OPEN, UNIT=LUNIT2 STATUS=SCRATCH FORM=UNFORMATTED { Disconnect *.BIN on LUNIT2
+-1 100. GENA A1
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc11.dat b/benchmarks/dc11.dat
new file mode 100644
index 0000000..ec8c5be
--- /dev/null
+++ b/benchmarks/dc11.dat
@@ -0,0 +1,409 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-11
+C Illustration of data input using [Y]. Matrix comes from DC-9 (or
+C more precisely, DCPRINT-25, since DIAGNOSTIC is needed to see it).
+C Solution is close to DC-9 (remember limited input [Y] precision).
+C Note two $UNITS cards. The 2nd, returning to original XOPT and
+C COPT, does nothing, since all data input is completed. But the 1st
+C is mandatory whenever [Y] input is used, so input [Y] in mhos will
+C be loaded into List-3 tables TR and TX without any scaling. COPT is
+C not used, so it can be anything (zero is used below). But XOPT must
+C equal the reciprocal of 2 * Pi, since the scaling factor for [L] is
+C 2 * Pi times this frequency (.1591549431) in Hz --- which is unity.
+C There are 5 stacked subcases. The 4th & 5th are related to this 1st.
+ 0.0 0.0 60. { Note XOPT = 60 here --- never actually used
+ 1 1
+C New XOPT, COPT = 1.59154943E-01 0.00000000E+00 |$UNITS, .1591549431, 0.0,
+C 1st of coupled R-L. 4.80000E-09 1.22811E-04 |51RA1 GA1 4
+C -1.000E-07-2.242E-05 9.440E-03-2.574E-02 9.440E-03|52RB1 GB1 -
+C 4.300E-08-1.463E-05-8.500E-03 1.673E-02 1.660E-02|53RC1 GC1 4
+C -1.000E-07-9.426E-06 1.871E-02-5.030E-02-1.450E-02|54 -
+C 4.631E-02-1.156E-02 3.250E-03-8.199E-02 4.631E-02| .
+C 1.500E-06 6.459E-06-1.680E-02 5.972E-02 1.897E-02|55 1
+C -3.270E-02 3.048E-02 3.607E-02-6.062E-02 3.607E-02| -
+C 1.200E-06 4.486E-06 2.090E-03-2.063E-02-2.200E-03|56 1
+C 3.660E-03-6.532E-02-2.000E-05 2.742E-02 4.850E-03| .
+C New XOPT, COPT = 6.00000000E+01 0.00000000E+00 |$UNITS, 60., 0.0, { Restore
+$UNITS, .1591549431, 0.0, { Ensures no scaling of [Y] in mhos. XOPT = 1/(2*Pi)
+51RA1 GA1 4.8E-9 1.22811E-04 { 1st row of 6x6 [Y] in mhos
+52RB1 GB1 -1.E-7-2.24227E-05.00944-2.57399E-02
+53RC1 GC1 4.3E-8-1.46254E-05-.0085 1.67291E-02.01660-4.74760E-02
+54 -1.E-7-9.42642E-06.01871-5.03015E-02-.0145 2.40976E-02
+ .04631-1.15612E-02
+55 1.5E-6 6.45897E-06-.0168 5.97172E-02.01897-4.24556E-02
+ -.0327 3.04757E-02.03607-6.06204E-02
+56 1.2E-6 4.48565E-06.00209-2.06269E-02-.0022 3.68953E-02
+ .00366-6.53239E-02-2.E-5 2.74250E-02.00485 9.93931E-03
+$UNITS, 60., 0.0, { Restore original values; "CIMAGE" ends scaling XUNITS = 1.
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+14GA1 424.35 60. 0.0 -.1
+14RA1 424.35 60. 10.0 -.1
+14GB1 424.35 60. -120.0 -.1
+14RB1 424.35 60. -110.0 -.1
+14GC1 424.35 60. 120.0 -.1
+14RC1 424.35 60. 130.0 -.1
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C RA1 |GA1 *
+C GA1 |RA1 *
+C RB1 |GB1 *
+C GB1 |RB1 *
+C RC1 |GC1 *
+C GC1 |RC1 *
+C --------------+------------------------------
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 9.326316227367E+03
+C End injection: -12.96755041034 44.410354381177 -6429.033843309 9422.7669408263
+C End injection: -42.47495983067 -106.9773628 -6888.835943954 -0.6822873
+-5RA1 GA1 RB1 GB1 { Mar, 95. Illustrate 2 phasor branch voltage outputs
+BLANK card ending output requests
+ PRINTER PLOT
+BLANK card ending non-existent plot cards
+BEGIN NEW DATA CASE
+C 2nd of 5 subcases will illustrate the request for an exact Pi-equivalent
+C to represent constant-parameter distributed lines in the phasor solution.
+C Data is from BENCHMARK DCPRINT-1, from which the permanently-closed switch
+C was removed to simplify. The solution is just a little different. To see
+C this, look at generator inject (compare with following lumped-R solution):
+C SEND 100. 100. 1.1985672173179 1.9672525544427
+C 0.0 0.0 -1.559974114699 -52.4640241
+C Acknowledgement: Bob Meredith of New York Power Authority inspired the
+C work of this feature by his studies involving phasor
+C solutions at high frequencies (200 KHz) for power system
+C carrier relaying. Bob found that using lumped R modeling
+C gave quite erroneous results. WSM. March 25, 1989
+EXACT PHASOR EQUIVALENT { Switch from lumped-R to exact Pi-equiv. of distributed
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000100 .020 60. 60.
+ 1 1 1 1 1 -1
+ 2 1 5 5 20 20
+ REC .001 { Near short at receiving end to ground } 3
+-1SEND REC 0.3 0.4 12.6 100. { 1-phase distributed line
+BLANK card ending branch cards
+BLANK card ending switch cards
+14SEND 100. 60. { 60-Hz phasor solution } -1.
+BLANK card ending source cards
+C SEND 100. 100. 1.2001187442482 1.966491078825
+C 0.0 0.0 -1.557819682377 -52.3899333
+C REC .00119991725341 .00201685894214 -1.199917253405 2.0168589421448
+C -.001621085617 -53.4913908 1.6210856169526 126.5086092
+C Total network loss P-loss by summing injections = 6.000593721241E+01
+C Solution at nodes with known voltage. Nodes that are shorted together by swi
+C SEND 100. 100. 1.2001187442482 1.966491078825
+C 0.0 0.0 -1.557819682377 -52.3899333
+C Step Time REC REC SEND REC
+C TERRA TERRA
+C 0 0.0 .0011999173 .0011999173 100. 1.199917253
+C 1 .1E-3 .0012601784 .0012601784 99.92894726 1.260178379
+C 2 .2E-3 .0013186574 .0013186574 99.71589003 1.318657447
+C 3 .3E-3 .0013752626 .0013752626 99.36113105 1.375262631
+ 1 { Request the output of all (here, only two) node voltages
+C 200 .02 .0019139029 .0019139029 30.90169944 1.913902913
+C Variable maxima : .0020181823 .0020181823 100. 2.018182282
+C Times of maxima : .0025 .0025 0.0 .0025
+C Variable minima : -.002017382 -.002017382 -99.9921044 -2.01738187
+C Times of minima : .0108 .0108 .0083 .0108
+ PRINTER PLOT
+C If lumped R, the extrema change just a little: (-2.017, 2.017)
+ 194 4. 0.0 20. REC { Axis limits : (-2.017, 2.018)
+$WIDTH, 80, { To compact the case-summary tables, switch to narrow output
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 5 subcases is unrelated to the preceding two. It will illustrate
+C the use of EMTP to perform both single-phase and 3-phase faults to ground.
+C The network is copied from DC-3. Usage began the 1st week of March, 1993.
+$WIDTH, 132, { More than 80 columns are needed to see the 3-phase fault table
+FAULTS TO GROUND { Declaration of intention to run a phasor fault study
+ M-A M-B M-C { 1st fault is 3-phase; we will short these nodes to ground
+ 1-A 1-B 1-C { 2nd fault is 3-phase. Etc. FORMAT is (2X, 13A6) with
+ 2-A 2-B 2-C { blank field ignored (names are on left only to look nice).
+ 4-A 4-B 4-C { There is one line per fault, which can involve a maximum
+ 7-A 7-B 7-C { of 13 nodes.
+ 11-A 11-B 11-C 2-A { 6th fault is 4-phase, to illustrate no limit < 14
+C Keep the 7th fault 3-phase. However, spread it over 2 data cards as an
+C illustration of CONT. on the right edge. The former limit of 13 nodes
+C per fault thus is expanded to 25 on 18 August 2005. The number of faults
+C becomes unlimited at this time as SUBROUTINE FAULT is reprogrammed. WSM.
+C 18-A 18-B 18-C { 7th fault is 3-phase
+ 18-A 18-B CONT.
+ 18-C { 7th fault is spread over 2 data cards by continuation request
+ 18-A { 8th fault is single-line-to-ground (node 18-A is shorted).
+ 18-B { 9th fault is single-line-to-ground (node 18-B is shorted).
+ 18-C { 10 fault is single-line-to-ground (node 18-A is shorted).
+C For 1, 2, ... 6 phases, it is possible to pack the fault names on input
+C data cards. So, for example, there can be up to 13 single-phase faults,
+C up to six 2-phase faults, up to four 3-phase faults, up to two 5- or 6-phase
+C faults. For any one card, the 2 or more faults must be for the same number
+C of phases --- the number that is declared on a ?-phase faults follow card
+C that precedes it. The declared number of phases remains in effect until
+C altered by another such declaration or End packing of 2 or more faults (to
+C return to original, unpacked format). On any packed fault card, any one of
+C the 2 or more data fields can be left blank. But not all can be left blank
+C as this would serve to terminate the list of faults. So, an illustration.
+C Let's repeat the 8th, 9th, and 10th faults immediately above. The preceding
+C 3 separate cards can be replaced by the following packed, higher-level
+C equivalent which is added by WSM on 19 August 2005 :
+6-phase faults follow { Declare packing of 6-phase fault names, 2 per card
+C In fact, no 6-phase fault will be illustrated, however. Think smaller:
+1-phase faults follow { Declare packing of 1-phase fault names, 13 per card
+ 18-A 18-B 18-C { 11th, 12th, and 13th faults each are single-phase
+C 7-phase faults follow { Illegal declaration of packing of 7-phase fault names
+C The preceding halts execution, unfortunately, so it must be commented out.
+End packing of 2 or more faults { Declare end of such card packing
+ 7-A 7-B 7-C { 14th fault is 3-phase to ground, identical to the 5th.
+C Finally, illustrate the limit of 25 phases. This 15th fault is legal:
+ 18-A 18-B 17-A 17-B 16-A 16-B 15-A 15-B 14-A 14-B 13-A 13-B CONT.
+ 12-A 12-B 11-A 11-B 10-A 10-B 9-A 9-B 8-A 8-B 7-A 7-B 6-A
+BLANK card ends list of faults (more accurately, nodes to be faulted to ground)
+ .000050 .010 3000. { DELTAT and TMAX of this card will be ignored
+ 1 1 1 1 1 { All these integers will be ignored
+ 1M-A 1-A 34.372457.68.15781
+ 2M-B 1-B 35.735164.43-.031538.002451.79.16587
+ 3M-C 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+ 11-A 2-A M-A 1-A { Sections 2 through 18 are copies of the first
+ 21-B 2-B { which has just been inputted.
+ 31-C 2-C
+C The following $LISTOFF and $LISTON are used to illustrate operation of
+C this valuable feature within fault studies. One 3-phase Pi-circuit, from
+C node 2 to node 3, will be missing in the output.
+$LISTOFF
+ 12-A 3-A M-A 1-A
+ 22-B 3-B
+ 32-C 3-C
+$LISTON
+ 13-A 4-A M-A 1-A
+ 23-B 4-B
+ 33-C 4-C
+ 14-A 5-A M-A 1-A
+ 24-B 5-B
+ 34-C 5-C
+ 15-A 6-A M-A 1-A
+ 25-B 6-B
+ 35-C 6-C
+ 16-C 7-C M-A 1-A { Note transposition: /C/A/B/ rather than /A/B/C
+ 26-A 7-A
+ 36-B 7-B
+ 17-C 8-C M-A 1-A
+ 27-A 8-A
+ 37-B 8-B
+ 18-C 9-C M-A 1-A
+ 28-A 9-A
+ 38-B 9-B
+ 19-C 10-C M-A 1-A
+ 29-A 10-A
+ 39-B 10-B
+ 110-C 11-C M-A 1-A
+ 210-A 11-A
+ 310-B 11-B
+ 111-C 12-C M-A 1-A
+ 211-A 12-A
+ 311-B 12-B
+ 112-B 13-B M-A 1-A { Note 2nd transposition: /B/C/A/ rather than /C/A/B
+ 212-C 13-C
+ 312-A 13-A
+ 113-B 14-B M-A 1-A
+ 213-C 14-C
+ 313-A 14-A
+ 114-B 15-B M-A 1-A
+ 214-C 15-C
+ 314-A 15-A
+ 115-B 16-B M-A 1-A
+ 215-C 16-C
+ 315-A 16-A
+ 116-B 17-B M-A 1-A
+ 216-C 17-C
+ 316-A 17-A
+ 117-B 18-B M-A 1-A
+ 217-C 18-C
+ 317-A 18-A
+$BEGIN PL4 COMMENTS
+C Copy the structure as illustrated in DC-3. Prior to 10 June 2004, this
+C data would produce an error halt because FTG required 2 cells in CIMAGE
+C for each fault. This is for fixed KRDPL4(10). After 5 faults, the 10
+C cells would be filled. The complaint came from Anders Johnson, working
+C with Dan Goldsworthy at BPA. Data was received 4 June 2004. Anders put
+C his comment in the middle of his branch data. Curiously, if location was
+C moved to the top (immediately after BNDC), the problem disappears. But it
+C is simpler to protect against all locations by having FTP code of SUBR1 set
+C KOMPL4 = 0 as each new fault begins. This standard test case is modified
+C on 11 June 2004 to illustrate the problem for any executable version that
+C was created prior to 10 June 2004. Note that ICAT of the integer misc.
+C data card remains zero (unchanged). It is the use of PL4 comments that
+C caused the problem, whether or not the user requested a .PL4 file to
+C receive them. Except for this new data block in this one location, data
+C is unchanged from the old DC-11, which had MS-DOS date 3-24-95.
+$END PL4 COMMENTS
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A -1. 20.0 { 1st of 3 closed switches merely illustrate
+ E-B POLE-B -1. 20.0 { that such switches can coexist with this
+ E-C POLE-C -1. 20.0 { special usage of FAULTS TO GROUND.
+ 17-A 0.00998 20.0 { 1st of 3 open switches could be omitted
+ 17-B 0.013998 20.0 { without any change to solution. These
+ 17-C 0.013998 20.0 { illustrate a 2nd type of coexistance.
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0 { Note we make T-start < 0 } -1.
+14E-B -1.0 60.0 -210.0 { The fault study is driven} -1.
+14E-C -1.0 60.0 30.0 { by such phasor sources. } -1.
+BLANK card ending sources
+
+ Note: The blank card ending sources is the last that actually will
+ be read and used. When the fault study is complete, the program
+ will skip to the BEGIN NEW DATA CASE card below for any possible
+ following subcase (none for this illustration). So, we can show
+ output here with no need for "C " in columns 1-2. There are two
+ blocks of special output beginning with the interpretation of
+ input data cards:
+
+Request preceding list of nodes to be faulted. |FAULTS TO GROUND { Declaration of intention to run a phasor fault study
+Names of nodes for fault number 1. | M-A M-B M-C { 1st fault is 3-phase; we will short these nodes to ground
+Names of nodes for fault number 2. | 1-A 1-B 1-C { 2nd fault is 3-phase. Etc. FORMAT is (2X, 13A6) with
+Names of nodes for fault number 3. | 2-A 2-B 2-C { blank field ignored (names are on left only to look nice).
+Names of nodes for fault number 4. | 4-A 4-B 4-C { There is one line per fault, which can involve a maximum
+Names of nodes for fault number 5. | 7-A 7-B 7-C { of 13 nodes.
+Names of nodes for fault number 6. | 11-A 11-B 11-C 2-A { 6th fault is 4-phase, to illustrate no limit < 14
+Names of nodes for fault number 7. | 18-A 18-B CONT.
+Names of nodes for fault number 7. | 18-C { 7th fault is spread over 2 data cards by continuation request
+Names of nodes for fault number 8. | 18-A { 8th fault is single-line-to-ground (node 18-A is shorted).
+Names of nodes for fault number 9. | 18-B { 9th fault is single-line-to-ground (node 18-B is shorted).
+Names of nodes for fault number 10. | 18-C { 10 fault is single-line-to-ground (node 18-A is shorted).
+Pack multiple faults on a single input card. |6-phase faults follow { Declare packing of 6-phase fault names, 2 per card
+Pack multiple faults on a single input card. |1-phase faults follow { Declare packing of 1-phase fault names, 13 per card
+Names of nodes for fault number 11. | 18-A 18-B 18-C { 11th, 12th, and 13th faults each are single-phase
+End packing of multiple faults on input cards. |End packing of 2 or more faults { Declare end of such card packing
+Names of nodes for fault number 14. | 7-A 7-B 7-C { 14th fault is 3-phase to ground, identical to the 5th.
+Blank card ending list of nodes to be faulted. |BLANK card ends list of faults (more accurately, nodes to be faulted to ground)
+
+ The second of two blocks of output is the table of fault currents:
+
+ << Current in 1st Phase of Fault >> << Current in 2nd Phase of Fault >> << Current in 3rd Phase of Fault >>
+Fault Node Fault current Angle in Node Fault current Angle in Node Fault current Angle in
+number name magnitude degrees name magnitude degrees name magnitude degrees
+ 1 M-A .06666666667 90. M-B .06666666667 -30. M-C .06666666667 -150.
+ 2 1-A .06179153389 69.31714304 1-B .06022731205 -50.5641964 1-C .05941275365 -171.215847
+ 3 2-A .05208219619 53.62523447 2-B .05015996695 -66.4921925 2-C .04949163745 173.4660183
+ 4 4-A .03592866388 35.32657231 4-B .03411100322 -84.6521844 4-C .03393334197 155.903119
+ 5 7-A .02302145842 23.41165559 7-B .02187391516 -96.3255496 7-C .02206682532 144.3138124
+ 6 11-A .01341566059 8.497993142 11-B .01437596994 -100.647409 11-C .01485290881 136.1686199
+ 2-A .01121324483 88.26381507
+ 7 18-A .00946790732 12.03744642 18-B .00947195967 -107.725894 18-C .00943977544 132.1805708
+ 8 18-A .00176246418 99.26050076
+ 9 18-B .00178093781 -19.2144677
+ 10 18-C .00174761465 -140.302677
+ 11 18-A .00176246418 99.26050076
+ 12 18-B .00178093781 -19.2144677
+ 13 18-C .00174761465 -140.302677
+ 14 7-A .02302145842 23.41165559 7-B .02187391516 -96.3255496 7-C .02206682532 144.3138124
+BEGIN NEW DATA CASE
+C 4th of 5 subcases has the same solution as the 1st. It differs in that
+C the phasor [Y] is contained on branch cards that were punched by DC-9.
+C Note that $VINTAGE, 1 is required here. Of the 3 alternative precisions,
+C this is the middle; this is the default on punched cards (of DC-9) now as
+C the 4th and 5th subcases are being added 10 August 2009. The 1st subcase
+C continues to use the old narrow format ($VINTAGE, 0) as constructed by
+C hand many years ago. It is a part of history. For the 3rd alternative,
+C which is maximum precision, see the following 5th subcase. WSM.
+ 0.0 0.0 60. { Note XOPT = 60 here --- never actually used
+ 1 1
+$UNITS, .1591549431, 0.0, { Ensures no scaling of [Y] in mhos. XOPT = 1/(2*Pi)
+$VINTAGE, 1, { Of 3 widths, this is intermediate, requiring FORMAT ( 2E16.0 )
+51RA1 GA1 .48444770295E-8 .12281121515E-3
+52RB1 GB1 -.1296675794E-6 -.2242269696E-4
+ .00944175322745 -.0257399002302
+53RC1 GC1 .43614506152E-7 -.1462537283E-4
+ -.0084632380894 .01672909357449
+ .01659497249359 -.0474759779044
+54 -.1496688542E-6 -.9426424776E-5
+ .0187136308212 -.0503014889342
+ -.014459054142 .0240975756066
+ .04631483359448 -.0115611698646
+55 .14960460152E-5 .64589654581E-5
+ -.0168059853862 .05971717826772
+ .01897469864841 -.0424555556429
+ -.0327145752086 .03047566556754
+ .03607139971436 -.0606204446839
+56 .11898901751E-5 .44856452772E-5
+ .00209415334953 -.0206268928201
+ -.0022406862695 .0368952787805
+ .00366143779662 -.0653239407336
+ -.2258503629E-4 .02742503620834
+ .00485408284636 .00993930807034
+$UNITS, 60., 0.0, { Restore original values; "CIMAGE" ends scaling XUNITS = 1.
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+14GA1 424.35 60. 0.0 -.1
+14RA1 424.35 60. 10.0 -.1
+14GB1 424.35 60. -120.0 -.1
+14RB1 424.35 60. -110.0 -.1
+14GC1 424.35 60. 120.0 -.1
+14RC1 424.35 60. 130.0 -.1
+BLANK card ending source cards
+-5RA1 GA1 RB1 GB1 { Mar, 95. Illustrate 2 phasor branch voltage outputs
+C 1st branch: RA1 417.90316999073 424.35 -.0131358847789 .05382578725921 -.8215796220638 7289.7633561218
+C 1st branch: 73.687604192962 10.0000000 .05219831324046 104.1253709 -11.39089622483 -948.6137732
+C Last injection: GC1 -212.175 424.35 -12.95674346031 44.41911058471 -6432.468410608 9424.6247883109
+C Last injection: 367.49788009593 120.0000000 -42.4874120657 -106.9593405 -6888.171204825 -0.6825172
+BLANK card ending output requests
+ PRINTER PLOT
+BLANK card ending non-existent plot cards
+BEGIN NEW DATA CASE
+C 5th of 5 subcases has the same solution as the 4th. It differs in that
+C the phasor [Y] is what would be produced by DC-9 if that $VINTAGE, 2,
+C data card were uncommented. For 64-bit computation, precision is full.
+C Note that the same $VINTAGE, 2 request of DC-9 is required here, too.
+ 0.0 0.0 60. { Note XOPT = 60 here --- never actually used
+ 1 1
+$UNITS, .1591549431, 0.0, { Ensures no scaling of [Y] in mhos. XOPT = 1/(2*Pi)
+$VINTAGE, 2, { Of 3 alternatives, this is widest, requiring FORMAT ( 2E27.0 )
+51RA1 GA1 4.8444770277573491700E-09 1.2281121515163583300E-04
+52RB1 GB1 -1.2966757938532132400E-07 -2.2422696957929919700E-05
+ 9.4417532274453028200E-03 -2.5739900230249322700E-02
+53RC1 GC1 4.3614506153007997000E-08 -1.4625372832163987600E-05
+ -8.4632380893781746600E-03 1.6729093574486542100E-02
+ 1.6594972493589866400E-02 -4.7475977904406906100E-02
+54 -1.4966885422339314900E-07 -9.4264247756427733400E-06
+ 1.8713630821201195800E-02 -5.0301488934157152800E-02
+ -1.4459054141970184600E-02 2.4097575606600894100E-02
+ 4.6314833594475780800E-02 -1.1561169864637796700E-02
+55 1.4960460151833065100E-06 6.4589654580511652000E-06
+ -1.6805985386192243800E-02 5.9717178267722430300E-02
+ 1.8974698648408130900E-02 -4.2455555642932338300E-02
+ -3.2714575208587087800E-02 3.0475665567539195200E-02
+ 3.6071399714361830600E-02 -6.0620444683943348900E-02
+56 1.1898901751368022500E-06 4.4856452772413896800E-06
+ 2.0941533495336460200E-03 -2.0626892820102635900E-02
+ -2.2406862694774026100E-03 3.6895278780495553700E-02
+ 3.6614377966236264600E-03 -6.5323940733637467200E-02
+ -2.2585036293308193800E-05 2.7425036208339411600E-02
+ 4.8540828463550763200E-03 9.9393080703350303300E-03
+$UNITS, 60., 0.0, { Restore original values; "CIMAGE" ends scaling XUNITS = 1.
+BLANK card ending branch cards
+C To show the effect of precision, consider P-loss for the 3 subcases. There
+C is little difference between 2E16.0 data (subcase 4) and 2E27.0 (subcase 5).
+C But for subcase 1, with [R] limited to E6.2, loss differs in the 3rd digit:
+C 1: Total network loss P-loss by summing injections = 9.326316227367E+03
+C 4: Total network loss P-loss by summing injections = 9.311041032869E+03
+C 5: Total network loss P-loss by summing injections = 9.311041032866E+03
+C This is using Salford ATP. WSM. 10 August 2009
+BLANK card ending non-existent switch cards
+14GA1 424.35 60. 0.0 -.1
+14RA1 424.35 60. 10.0 -.1
+14GB1 424.35 60. -120.0 -.1
+14RB1 424.35 60. -110.0 -.1
+14GC1 424.35 60. 120.0 -.1
+14RC1 424.35 60. 130.0 -.1
+BLANK card ending source cards
+-5RA1 GA1 RB1 GB1 { Mar, 95. Illustrate 2 phasor branch voltage outputs
+C 1st branch: RA1 417.90316999073 424.35 -.0131358847775 .05382578725998 -.821579621738 7289.7633561257
+C 1st branch: 73.687604192962 10.0000000 .0521983132416 104.1253709 -11.39089622502 -948.6137732
+C Last injection: GC1 -212.175 424.35 -12.95674346031 44.419110584718 -6432.468410609 9424.6247883126
+C Last injection: 367.49788009593 120.0000000 -42.48741206571 -106.9593405 -6888.171204826 -0.6825172
+BLANK card ending output requests
+ PRINTER PLOT
+BLANK card ending non-existent plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc12.dat b/benchmarks/dc12.dat
new file mode 100644
index 0000000..f9efb9c
--- /dev/null
+++ b/benchmarks/dc12.dat
@@ -0,0 +1,183 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-12
+C Simulation of BPA single-line-to-ground fault and single-pole switching
+C of Raver-Sickler-Chief Joseph line. See Volume I, 19 September 1974,
+C pagination "DCL". For double-circuit representation, both Pi-circuits
+C and constant-parameter distributed modeling with zero-sequence coupling
+C is illustrated. Change 3-phase K.C. Lee col-80 "1"-punch to "2"-punch
+C on 3 July 87, when realized that branch current output is not yet OK.
+$NEW EPSILN, 1.E-9, { Not needed; Just added to prove the card is recognized
+$WATCH, 25, { Illustrate extra echoing of cards to CRT periodically (every 25th)
+PRINTED NUMBER WIDTH, 12, 2, { Full precision on each of 9 columns of printout
+ .000050 .025 60.
+ 1 1 1 3 1 -1
+ 5 5 20 20
+ 0CJA X32A .01 1
+ 0CJB X32B .01 1
+ 0RAA XA .01
+ 0RAB XB .01
+ 0RAGA RAA 26. 1
+ 0RAGB RAB 26. 1
+ 0RAGC RAC 26. 1
+ 0CJGA CJA 28.
+ 0CJGB CJB 28.
+ 0CJGC CJC 28.
+ 0VC Y17C 26.
+ 0VB Y17B 26.
+ 0VA Y17A 26.
+ 0RAA YA .01 1
+ 0RAB YB .01 1
+ 0RAC YC .01 1
+ 0XC 1680.
+ 0X16B T 1.0E18 2
+ 0X16C T 1.0E18 2
+ 0X16A T 1.0E18 2
+ 0T 65. 1
+ 1XA X1A .3545 3.2009.0476
+ 2XB X1B .2599 1.543-.0088.349 3.2067.0449
+ 3XC X1C .2624 1.484-.006 .2599 1.543 -.0087.3545 3.2009.0479
+ 4YA Y1A .2619 1.128-.0008.2595 1.1848-.0018.2622 1.2824-.0025
+ .3657 3.6724 .0363
+ 5YB Y1B .2615 1.0374-.0004.2592 1.0834-.001 .2619 1.1492-.0011
+ .2624 1.5455-.0052.3656 3.6724.0361
+ 6YC Y1C .261 .9663 -.0003.2588 1.005 -.0007.2616 1.054 -.0006
+ .2623 1.3076-.002 .2624 1.551 -.0053.3656 3.6724 .036
+ 1X1A X2A 1.05749.547 .1421
+ 2X1B X2B .7752 4.602 -.026 1.042 9.564 .1353
+ 3X1C X2C .7826 4.426 -.018 .7752 4.602 -.02561.057 9.547 .1428
+ 4Y1B Y2B .7811 3.366 -.0023.7741 3.534 -.0055.7822 3.825 -.0074
+ 1.091 10.95 .1084
+ 5Y1A Y2A .7799 3.094 -.0013.7732 3.231 -.0031.7813 3.427 -.0032
+ .7827 4.609 -.01541.091 10.95 .1076
+ 6Y1C Y2C .7785 2.882 -.0009.772 2.998 -.0022.7802 3.145 -.0018
+ .7822 3.9 -.0059.7827 4.625 -.01591.091 10.95 .0357
+-1X2A X16A 0.58213.4008.00912 70.
+-2X2B X16B .034160.6790.01663 70.
+-3X2C X16C .034941.0952.01163 70.
+-4Y2A Y16A
+-5Y2B Y16B
+-6Y2C Y16C
+ 1X16C X17C .6198 5.596 .08325
+ 2X16A X17A .4545 2.698 -.0156.6110 5.606 .079
+ 3X16B X17B .459 2.5945-.0107.4545 2.6975-.0156.6198 5.596 .08325
+ 1X17C X18C X16C X17C
+ 2X17A X18A
+ 3X17B X18B
+ 1X18C X19C X16C X17C
+ 2X18A X19A
+ 3X18B X19B
+ 1X19A X20A X16C X17C
+ 2X19B X20B
+ 3X19C X20C
+ 1X20A X21A X16C X17C
+ 2X20B X21B
+ 3X20C X21C
+ 1X21A X22A X16C X17C
+ 2X21B X22B
+ 3X21C X22C
+ 1X22A X23A X16C X17C
+ 2X22B X23B
+ 3X22C X23C
+ 1X23A X24A X16C X17C
+ 2X23B X24B
+ 3X23C X24C
+ 1X24A X25A X16C X17C
+ 2X24B X25B
+ 3X24C X25C
+ 1X25A X26A X16C X17C
+ 2X25B X26B
+ 3X25C X26C
+ 1X26A X27A X16C X17C
+ 2X26B X27B
+ 3X26C X27C
+ 1X27A X28A X16C X17C
+ 2X27B X28B
+ 3X27C X28C
+ 1X28A X29A X16C X17C
+ 2X28B X29B
+ 3X28C X29C
+ 1X29A X30A X16C X17C
+ 2X29B X30B
+ 3X29C X30C
+ 1X30A X31A X16C X17C
+ 2X30B X31B
+ 3X30C X31C
+ 1X31A X32A X16C X17C
+ 2X31B X32B
+ 3X31C X32C
+C 3 July 1987. Change 3 column-80 "1"-punches to "2"-punches that do work:
+-1Y16C Y17C .316 752. 123.E3 31. 1 2
+-2Y16B Y17B .03 370. 179.E3 31. 1 2
+-3Y16A Y17A 2
+BLANK card ending branch cards
+ CJC X32C -1. .016 0.1
+ RAC XC -1. .016 0.1 2
+ X16C T -1. .2 0.
+BLANK card ending switch cards
+14VA 305418. 60. -1.5 -1.
+14VB 305418. 60. -121.5 -1.
+14VC 305418. 60. 118.5 -1.
+14RAGA 301954. 60. 0.0 -1.
+14RAGB 301954. 60. -120.0 -1.
+14RAGC 301954. 60. 120.0 -1.
+14CJGA 303109. 60. 12.0 -1.
+14CJGB 303109. 60. -108.0 -1.
+14CJGC 303109. 60. 132.0 -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C CJA | X32A *CJGA *
+C X32A | CJA *X31A *
+C CJB | X32B *CJGB *
+C X32B | CJB *X31B *
+C RAA | XA *RAGA *YA *
+C XA | RAA *X1A *
+C RAB | XB *RAGB *YB *
+C XB | RAB *X1B *
+C RAGA | RAA *
+C RAGB | RAB *
+C RAGC | RAC *
+C RAC | RAGC *YC *XC *
+C Etc. (many more connections!) .....
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.180325863357E+08
+C Last gen: VA 305313.34087938 305418. -117.2584310988 258.76988979273
+C (inject) -7994.911198294 -1.5000000 230.67794909697 116.9451840
+ X16C { Request this single node-voltage output
+C Step Time X16B X16C X16A Y16C Y16B
+C T T T Y17C Y17B
+C
+C CJB RAGA RAGB RAGC RAA
+C X32B RAA RAB RAC YA
+C *** Phasor I(0) = -3.0383545E+02 Switch "CJC " to "X32C " closed
+C *** Phasor I(0) = 3.8992458E+02 Switch "RAC " to "XC " closed
+C *** Phasor I(0) = 2.0157191E+02 Switch "X16C " to "T " closed
+C 0 0.0 -78763.148 0.0 356989.678 20286.0902 17732.2707
+C -18.016564 -303.41193 324.866491 159.741413 116.579991
+C 1 .5E-4 -68915.376 0.0 360816.716 20407.8874 17886.2544
+C -7.6834907 -305.95716 323.27785 139.58148 116.957369
+C *** Open switch "CJC " to "X32C " after 1.63000000E-02 sec.
+C 340 .017 -58325.296 0.0 332129.95 18459.1058 16144.8216
+C -71.509286 -318.23015 312.072738 24.5303035 118.269882
+C *** Open switch "RAC " to "XC " after 1.73000000E-02 sec.
+C 360 .018 12731.9904 0.0 250135.752 -12838.9 -16820.319
+C 52.7863341 -253.90065 320.141582 -141.05357 52.1159786
+BLANK card ending output variable requests (here, just one node voltage)
+C 500 .025 132495.985 0.0 -302263.22 -29.587992 2946.07641
+C 84.5341302 250.938187 -366.24032 246.772723 -200.01038
+C Variable maxima : 527574.804 0.0 412447.128 31636.9013 29592.9306
+C 548.378747 333.249762 334.841845 1080.00888 118.507064
+C Times of maxima : .00455 0.0 .0014 .01945 .01935
+C .00425 .00945 .016 .0129 .5E-3
+C Variable minima : -527587.93 0.0 -412416.39 -42474.614 -23464.43
+C -548.38706 -333.20182 -367.8861 -1079.8953 -234.86055
+C Times of minima : .0129 0.0 .0097 .01835 .0184
+C .0126 .00115 .02495 .00455 .02325
+ PRINTER PLOT { Axis limits: (-3.870, 2.119)
+ Voltage across switch (RAC,XC), which opens at 16 milliseconds.
+ 184 1. 15. 30. RAC XC Recovery voltage
+$WATCH, 9999, { Turn off echoing of cards to CRT, in case other solutions follow
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc13.dat b/benchmarks/dc13.dat
new file mode 100644
index 0000000..979b9c1
--- /dev/null
+++ b/benchmarks/dc13.dat
@@ -0,0 +1,589 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-13
+C Illustration of SUBROUTINE SATURA, the magnetic saturation routine
+C that converts an RMS saturation curve of voltage vs. current into the
+C corresponding locus of instantaneous flux vs. current. Also shown
+C are B-H hysteresis generation and ZnO conversion from old formats.
+C 12 data subcases are present, so many other features are tested, too
+SATURATION
+$ERASE
+ -1. 10. .001 1
+ 0.0 5.0
+ 2.0 5.0
+ 3.0 3.5
+ 4.0 2.0
+ 5.0 1.0
+ 10.0 1.0
+ 9999
+C Final row of resulting printout: 6 100.0000000000 0.2350000000
+ 60. .664 .01 1
+ 1.0 100.
+ 1.6 105.
+ 2.75 110.
+ 4.0 113.
+ 6.0 116.
+ 10. 119.
+ 44. 131.
+ 9999
+C Final row of resulting printout: 8 1601.6892070492 326.3046435192
+$PUNCH, dc13a.pch ! { Exclamation holds lower case
+ -1. 10. .001 1
+ 2.0 5.0
+ 9999
+ 60. 303.11 300. 1 1
+ .000306 0.7
+ .000415 0.8
+ .00076 0.9
+ .00198 1.0
+ .0108 1.1
+ 9999
+C Final row of resulting printout: 6 26.6610642630 1250.7681935392
+$PUNCH
+ 60. 34.5 300.0 1
+ .000306 0.7
+ .000415 0.8
+ .00076 0.9
+ .00198 1.0
+ .0108 1.1
+ 9999
+C Final row of resulting printout: 6 234.2387011236 142.3625174923
+$PUNCH, dc13b.pch ! { Exclamation holds lower case
+C 3.76303783E+00 9.05943293E+01
+C 6.10062069E+00 1.03536376E+02
+C 1.33222222E+01 1.16478423E+02
+C 3.87652515E+01 1.29420470E+02
+C 2.34238701E+02 1.42362517E+02
+BLANK card ending all "SATURATION" data cases
+BEGIN NEW DATA CASE
+C 2nd of 12 subcases will illustrate use of another supporting program:
+OLD TO NEW ZNO { Special request card to convert old ZnO data to new format
+ .000050 .020000 { Note: this data case once was numbered DC-38B.
+ 1 1 1 0 1 -1
+ 5 5 20 1 30 5 50 50
+-1SENDA RECA .305515.8187.01210 200. 0
+-2SENDB RECB .031991.5559.01937 200. 0
+-3SENDC RECC
+C 34567890123456789012345678901234567890
+92RECA 5555.
+ -1. -1. { Old ZnO data formats involved a dummy
+ 1. 1. { characteristic (these two data cards)
+ 9999.
+92RECB RECA 5555. { 2nd arrester of 3-phase group is copy of 1st
+92RECC RECA 5555. { 3rd arrester of 3-phase group is copy of 1st
+BLANK card ending branch data
+BLANK card terminating nonexistent switches
+14SENDA 408000. 60. 0.0
+14SENDB 408000. 60. -120.
+14SENDC 408000. 60. 120.
+BLANK card ending source cards
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C The following 3 cards are ZnO characteristics, using the old formats:
+ -1 2500. 26. 0.5 778000.
+ -1 2500. 26. 0.5 778000.
+ -1 2500. 26. 0.5 778000.
+ 1 { 1st of remaining cards to be discarded searching for next case beginning
+ PRINTER PLOT
+ 144 3. 0.0 20. RECA
+BLANK card ending plot cards { Final card to be discarded b4 new case starts
+BEGIN NEW DATA CASE
+$PUNCH
+C 92RECA 5555.
+C 0.778000000000000E+06 -0.100000000000000E+03 0.000000000000000E+00
+C 0.250000000000000E+04 0.260000000000000E+02 0.500000000000000E+00
+C 9999
+C 92RECB 5555.
+C 0.778000000000000E+06 -0.100000000000000E+03 0.000000000000000E+00
+C 0.250000000000000E+04 0.260000000000000E+02 0.500000000000000E+00
+C 9999
+C 92RECC 5555.
+C 0.778000000000000E+06 -0.100000000000000E+03 0.000000000000000E+00
+C 0.250000000000000E+04 0.260000000000000E+02 0.500000000000000E+00
+C 9999
+C 3rd of 12 subcases will illustrate use of another supporting program.
+C This came from Prof. Ned Mohan and graduate student Jim Frame at the
+C University of Minnesota in Minneapolis around 1981.
+HYSTERESIS
+C ITYPE LEVEL { Request Armco M4 oriented silicon steel -- only 1 available
+ 1 2 { That was ITYPE=1. As for LEVEL=2, moderate accuracy output
+ 500. 1.0 { Current and flux coordinates of positive saturation point
+$PUNCH
+C -1.25000000E+02 -9.70588235E-01
+C -1.56250000E+01 -9.19411765E-01
+C 9.37500000E+00 -8.47058824E-01
+C 2.18750000E+01 -6.58823529E-01
+C 4.21875000E+01 5.70588235E-01
+C 6.56250000E+01 7.52941176E-01
+C 1.12500000E+02 8.64705882E-01
+C 2.07812500E+02 9.41176471E-01
+C 5.00000000E+02 1.00000000E+00
+C 6.87500000E+02 1.00588235E+00
+C 9999.
+C A quarter of a century late, Orlando Hevia in Santa Fe, Argentina, enhances
+C both the code and the illustrations. He adds to the original ITYPE = 1 a
+C new ITYPE = 2 alternative, which is for Armco M4 oriented silicon steel.
+C Next, illustrate the remaining 3 levels for ITYPE = 1 (these are 1, 3, and
+C 4) followed by the 4 levels for ITYPE = 2. Orlando had $PUNCH requests
+C after each, although WSM removes them to minimize such redundant output.
+C In E-mail to BPA's Dr. Tsu-huei Liu on February 21, 2006, Orlando wrote:
+C "I received a curve of the B-H characteristics of ARMCO M-6 steel. It is
+C for 0.014-inch thickness (0.35 mm), with a bit more losses than ARMCO M-4."
+C ITYPE LEVEL { Request Armco M4 oriented silicon steel
+ 1 1 { That was ITYPE=1 and LEVEL=2. 1st of 4 levels is LEVEL = 1
+ 500. 1.0 { Current and flux coordinates of positive saturation point
+C ITYPE LEVEL { Request Armco M4 oriented silicon steel
+ 1 3 { That was ITYPE=1 and LEVEL=2. 3rd of 4 levels is LEVEL = 3
+ 500. 1.0 { Current and flux coordinates of positive saturation point
+C ITYPE LEVEL { Request Armco M4 oriented silicon steel
+ 1 4 { That was ITYPE=1 and LEVEL=2. 4th of 4 levels is LEVEL = 4
+ 500. 1.0 { Current and flux coordinates of positive saturation point
+C ITYPE LEVEL { Request Armco M6 oriented silicon steel
+ 2 1 { 1st of 4 illustrations of M6 steel is for LEVEL = 1
+ 500. 1.0 { Current and flux coordinates of positive saturation point
+C ITYPE LEVEL { Request Armco M6 oriented silicon steel
+ 2 2 { 2nd of 4 illustrations of M6 steel is for LEVEL = 2
+ 500. 1.0 { Current and flux coordinates of positive saturation point
+C ITYPE LEVEL { Request Armco M6 oriented silicon steel
+ 2 3 { 3rd of 4 illustrations of M6 steel is for LEVEL = 3
+ 500. 1.0 { Current and flux coordinates of positive saturation point
+C ITYPE LEVEL { Request Armco M6 oriented silicon steel
+ 2 4 { 4th of 4 illustrations of M6 steel is for LEVEL = 4
+ 500. 1.0 { Current and flux coordinates of positive saturation point
+BLANK card ending stacked "HYSTERESIS" data subcases
+BEGIN NEW DATA CASE
+C 4th of 12 subcases will illustrate the printing of error messages.
+C Were there not at least five data cards remaining at this point, the
+C data subcase would not even be read. The program would instead
+C discard remaining cards and jump out to issue the initial prompt
+C once again. But the present set of comment cards prevent this.
+KILL CODES, 13, 14, { Just look at two very short error messages: KILL = 13, 14
+C The following 3 lines will never be executed because of the nature of the
+C preceding KILL CODES. However, they are legal non-comment cards. Once
+C we switch to the destruction of comment cards using NOCOMM= 1 in STARTUP,
+C the 5th subcase was missing because it was not separated from the 4th by at
+C least 5 data cards (variable KASEND = 5 in STARTUP). So, 14 Dec 94, we
+C add 3 noncomments:
+PRINTED NUMBER WIDTH, 15, 2, { 1st of 3 never-processed noncomment lines
+PRINTED NUMBER WIDTH, 15, 2, { 2nd of 3 never-processed noncomment lines
+PRINTED NUMBER WIDTH, 15, 2, { 3rd of 3 never-processed noncomment lines
+BEGIN NEW DATA CASE
+C 5th of 12 subcases is like the 4th except that output will be
+C truncated to 125 columns --- short of the 132 columns needed.
+TRUNCATE OUTPUT LINES, 125, { 132-column lines are formed, but then chopped off
+KILL CODES, 13, 14, { The same two error messages as preceding subcase, note
+C The following 3 lines will never be executed because of the nature of the
+C preceding KILL CODES. However, they are legal non-comment cards. Once
+C we switch to the destruction of comment cards using NOCOMM= 1 in STARTUP,
+C this 5th subcase was missing because it did not have 5 or more data cards
+C (variable KASEND = 5 in STARTUP). So, 14 Dec 94, we add 2 noncomments:
+PRINTED NUMBER WIDTH, 15, 2, { 1st of 3 never-processed noncomment lines
+PRINTED NUMBER WIDTH, 15, 2, { 2nd of 3 never-processed noncomment lines
+PRINTED NUMBER WIDTH, 15, 2, { 3rd of 3 never-processed noncomment lines
+BEGIN NEW DATA CASE
+C 6th of 12 subcases illustrates batch-mode usage of Orlando
+C Hevia's fitter to approximate piecewise-line (I, Psi) points
+C of an ordinary, old, Type-93 nonlinear reactor by a smooth,
+C hyperbolic tangent. See story in January, 1998, newsletter.
+TRUNCATE OUTPUT LINES, 132, { Cancel preceding truncation; return to normal 132
+$ERASE
+C 345678901234567890123456
+C 345678901234567890123456789012 ITMAX KPL DXL2
+SMOOTH SATURATION USING TANH 600 40 .08
+C Preceding parameters to the right of col. 32 are optional changes to defaults:
+C ITMAX = the maximum number of iterations of parameter fitter (default = 3000)
+C KPL = the number of uniform current steps for curve plotting (default = 50)
+C DXL2 = radius in inches of marking circle to show data points (default = .05)
+Arbitrary line will not be seen (illustrate how program ignores all but Type 93)
+Arbitrary line will not be seen (illustrate how program ignores all but Type 93)
+C AAAAAABBBBBBCCCCCCDDDDDDCURR FLUX I
+93BUS1 BUS2 0.005 30.0 1
+ -.005 30.0 { Illegal point illustrates rejection
+ 0.0 0.0 { 2nd illegal point (special case of origin)
+ .005 30.0
+ .010 40.0
+ .020 45.0
+ .030 47.0
+ 9999.
+Arbitrary line will not be seen (illustrate how program ignores all but Type 93)
+Arbitrary line will not be seen (illustrate how program ignores all but Type 93)
+93BUS1 BUS2 0.005 30.0
+ .002 11.0
+ .005 30.0
+ .010 40.0
+ .020 43.0
+ .030 45.0
+ .040 46.0
+ 9999.
+Arbitrary line will not be seen (illustrate how program ignores all but Type 93)
+Arbitrary line will not be seen (illustrate how program ignores all but Type 93)
+93BUS1 BUS2 0.005 30.0
+ .002 11.0
+ .005 30.0
+ 9999.
+Arbitrary line will not be seen (illustrate how program ignores all but Type 93)
+Arbitrary line will not be seen (illustrate how program ignores all but Type 93)
+$PUNCH { Create .PCH file as well as show contents in the printed output
+BLANK card ending last SSUT data case
+BEGIN NEW DATA CASE
+C 7th of 12 subcases illustrates batch-mode usage of Orlando
+C Hevia's supporting program HYSTER. This serves to convert
+C a Type-98 element into a Type-96 element. For background,
+C see the story in the July, 2000, newsletter.
+C 345678901234567890123456789012345678901234567890123456
+C NOZOOM FSCALE DXL2
+HYSTERESIS HEVIA 1 1.1 .04
+C The 3 parameters on the preceding request card govern the screen plot
+C that automatically will document hysteresis of the result:
+C NOZOOM is a binary switch that indicates whether the entire
+C curve or just the hysteresis loop itself is to be plotted.
+C Value 1 will plot everything (no zoom) whereas value zero
+C will drop the final point, which is outside the loop proper.
+C FSCALE is a scaling factor to waste space above and to the right
+C of the 1st and 2nd-quadrant plot. For example, value 1.1
+C will waste 10%, providing this much margin.
+C DXL2 is the "radius" in screen inches of the squares that mark data
+C points. Value zero means that there will be no such marking.
+C So much for the special-request card. On to reactor. Everything about
+C the following is normal Type 98 except for columns 27-74, from which 3
+C new floating-point parameters are read. Of course, if currents are in
+C amperes and voltage is in volts, power will be in watts and residual
+C flux will be in volt-seconds:
+C <--Losses in W-><--Freq in Hz--><-Residual flux> I
+98NODE1 NODE2 40774.59 50.0 400.0 3
+ 0.122419130E-01 0.563980835E+03
+ 0.628200099E-01 0.782295959E+03
+ 0.215062916E+00 0.100061115E+04
+ 0.576934814E+00 0.121892639E+04
+ 0.791255713E+00 0.129949500E+04
+ 0.131488657E+01 0.143724146E+04
+ 0.266661191E+01 0.165555664E+04
+ 0.386263156E+01 0.178290710E+04
+ 0.550489426E+01 0.192845056E+04
+ 9999
+$PUNCH, dc13c.pch ! { Exclamation holds lower case
+C NOZOOM FSCALE DXL2
+ REPLOT 0 1.0 .07
+C The following subcase illustrates generalization of the preceding hysteresis
+C derivation by Orlando Hevia. WSM adds 26 May 2001.
+C The following case produces Type-96 hysteretic branch cards that will result
+C in automatic initialization. There will be 8888. for I-steady and blank
+C fields for flux and remanent flux. Note negative losses on the following
+C Type-98 card (this is the way the user requests this option):
+C <--Losses in W-><--Freq in Hz--><-Residual flux> I
+98NODE1 NODE2 -40774.59 50.0 400.0 3
+ 0.122419130E-01 0.563980835E+03
+ 0.628200099E-01 0.782295959E+03
+ 0.215062916E+00 0.100061115E+04
+ 0.576934814E+00 0.121892639E+04
+ 0.791255713E+00 0.129949500E+04
+ 0.131488657E+01 0.143724146E+04
+ 0.266661191E+01 0.165555664E+04
+ 0.386263156E+01 0.178290710E+04
+ 0.550489426E+01 0.192845056E+04
+ 9999
+$PUNCH
+C NOZOOM FSCALE DXL2
+ REPLOT 0 1.0 .07
+BLANK card terminates stacked Type-98 elements within HYSTERESIS HEVIA
+BEGIN NEW DATA CASE
+C 8th of 12 subcases illustrates in-line usage of Orlando Hevia's
+C hysteresis-creating program. The effect should be identical to
+C replacement of the Type-98 branch by the Type-96 branch that was
+C punched by the preceding subcase. The basic network was created
+C by taking one phase of DC-7, and replacing the reactor using data
+C of the preceding subcase. Simulation continues only long enough
+C for the first pulse of current inrush of the reactor.
+ .000025 .001 60. 60.
+ 1 1 1 0 0 -1
+ 5 5 30 1
+ GENA SWA 89352.
+-1SENDA RECA .137681.07755.6806124.27
+ RECA TRANA GENA SWA 1
+ TRANA GNDA 7.5398 1
+ GNDA .0001
+C Note special request in 15:26 of the following branch card. This is
+C what provides the in-line connection to Orlando Hevia's fitter,
+C replacing the Type-98 branch by an equivalent (better) Type-96 branch:
+C <--Losses in W-><--Freq in Hz--><-Residual flux> I
+98TRANA HEVIA HYSTER 40774.59 50.0 400.0 3
+ 0.122419130E-01 0.563980835E+03
+ 0.628200099E-01 0.782295959E+03
+ 0.215062916E+00 0.100061115E+04
+ 0.576934814E+00 0.121892639E+04
+ 0.791255713E+00 0.129949500E+04
+ 0.131488657E+01 0.143724146E+04
+ 0.266661191E+01 0.165555664E+04
+ 0.386263156E+01 0.178290710E+04
+ 0.550489426E+01 0.192845056E+04
+ 9999
+BLANK card ends all branch cards
+ SWA SENDA 1.0
+BLANK card ends all switch cards
+14GENA 188000. 60. 0.0 -1.
+BLANK card ending source cards
+ GENA TRANA RECA
+C Step Time TRANA GENA TRANA RECA TRANA RECA TRANA
+C TERRA TERRA TRANA GNDA
+C *** Switch "SWA " to "SENDA " closed after 0.00000000E+00 sec.
+C 0 0.0 0.0 188000. 0.0 0.0 0.0 0.0 0.0
+C 1 .25E-4 .52901E-14 187991.65 .52901E-14 .52894E-14 -.2049E-16 -.1203E-16 .84641E-17
+C 2 .5E-4 .96607E-14 187966.602 .96607E-14 .96583E-14 -.2049E-16 -.2196E-16 -.1471E-17
+BLANK card ending output variable requests (just node voltages, here)
+C 32 .8E-3 .90572E-14 179514.534 .90572E-14 .89899E-14 -.2044E-16 -.2044E-16 .11666E-20
+C 33 .825E-3 81947.1269 178980.254 81947.1269 81954.0422 .007179619 131.122181 131.114993
+C 34 .85E-3 284030.522 178430.075 284030.522 284054.493 .039243952 192.256743 192.217471
+C 35 .875E-3 383163.494 177864.047 383163.494 383195.837 .097698701 -33.507413 -33.60515
+C 36 .9E-3 365690.044 177282.221 365690.044 365720.926 .16330787 5.81105035 5.64770591
+C 37 .925E-3 368481.981 176684.647 368481.981 368513.116 .153316524 -1.0272643 -1.1806177
+C 38 .95E-3 367719.904 176071.379 367719.904 367750.991 .18045259 .141786623 -.03870274
+C 39 .975E-3 367528.209 175442.471 367528.209 367559.301 .2075535 -.06041831 -.26800857
+C 40 1.E-3 367198.987 174797.979 367198.987 367230.074 .234635209 -.02407335 -.25874528
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 9th of 12 subcases illustrates batch-mode use of Orlando Hevia's
+C supporting program to find parameters A, B, and C of the Type-15
+C Standler surge function. See the January, 2000, newsletter. The
+C alternative of in-line fitting rather than batch-mode fitting can
+C be found in the 3rd subcase of DC-19.
+STANDLER SURGE FUNCTION
+ 10.0 50.0 0.0 1000. S10500 -1
+$PUNCH, dc13d.pch ! { Exclamation holds lower case
+C C STANDLER SURGE FUNCTION
+C C 10.0 50.0 0.0 1000. S10500 -1
+C C Surge peak : 1.0000E+03
+C C Time to peak : 1.0000E+01 us
+C C Time to half value : 5.0000E+01 us
+C 15S10500-1 1913.48 .34489E-4 .28995155 Standler
+ 10.0 50.0 10.0 1000. S10501 0
+$PUNCH
+C C 10.0 50.0 10.0 1000. S10501 0
+C C Surge peak : 1.0000E+03
+C C Virtual front time : 1.0000E+01 us
+C C Virtual half time : 5.0000E+01 us
+C C Virtual front defined by 10.0 and 90.0 %
+C 15S10501 2543.7879 .23168E-4 .65859353 Standler
+ 10.0 50.0 30.0 1000. S10503 1
+ 10.0 50.0 50.0 1000. S10505 Voltage
+ 8.0 20.0 0.0 1000. S82000 Current
+ 8.0 20.0 10.0 1000. S82010 voltage
+ 8.0 20.0 30.0 1000. S82030 current
+ 8.0 20.0 50.0 1000. S82050 VOLTAGE
+$PUNCH
+C C 10.0 50.0 30.0 1000. S10503 1
+C C Surge peak : 1.0000E+03
+C C Virtual front time : 1.0000E+01 us
+C C Virtual half time : 5.0000E+01 us
+C C Virtual front defined by 30.0 and 90.0 %
+C 15S10503 2372.9809 .25096E-4 .52633653 Standler
+C This is 1st of 6. Etc. for 2nd through 6th illustrations.
+BLANK card ending Standler surges
+BEGIN NEW DATA CASE
+C 10th of 12 subcases illustrates use of LOSSY SATURATION from
+C Orlando Hevia. This is added 11 May 2001 as feature becomes
+C available. In general terms, this supporting program is similar
+C to SATURATION (see 1st subcase), but losses are taken into
+C account.
+LOSSY SATURATION
+$ERASE
+C
+C FREQ: AS SATURATION
+C
+C VBASE: AS SATURATION
+C
+C PBASE: AS SATURATION
+C
+C KCON : CONNECTION
+C -1, BLANK OR 0: SINGLE PHASE (THE SAME AS SATURATION)
+C VOLTAGE, FLUX AND CURRENT WITHOUT SCALING.
+C
+C 1 STAR (Y, WYE) CONNECTION NEUTRAL GROUNDED
+C VOLTAGE AND FLUX SCALED DIVIDING BY SQRT(3)
+C
+C 3 DELTA (TRIANGLE) CONNECTION
+C CURRENT SCALED DIVIDING BY SQRT(3)
+C TRIPLEN HARMONICS REMOVED
+C
+C KTHIRD : AS SATURATION
+C
+C IOUT : TO BE PASSED TO .PCH FILE IN COLUMN 80
+C
+C BUS1, BUS2 : TO BE PASSED TO .PCH FILE FOR NON-LINEAR RESISTOR
+C BUS3, BUS4 : TO BE PASSED TO .PCH FILE FOR NON-LINEAR INDUCTOR
+C IF BUS3=BUS4=' ', BUS1 AND BUS2 WILL BE USED
+C
+C FREQ VBASE PBASE IPUNCH KTHIRD KCON IOUT BUS1 BUS2 BUS3 BUS4
+C ------________--------________--------________--------______------______------
+C
+ -1. 10. .001 0 0
+C I V
+C --------------________________
+ 0.0 5.0
+ 2.0 5.0
+ 3.0 3.5
+ 4.0 2.0
+ 5.0 1.0
+ 10.0 1.0
+ 9999
+ -1. 10. .001 0 1
+ 0.0 5.0
+ 2.0 5.0
+ 3.0 3.5
+ 4.0 2.0
+ 5.0 1.0
+ 10.0 1.0
+ 9999
+ -1. 10. .001 1 0
+ 0.0 5.0
+ 2.0 5.0
+ 3.0 3.5
+ 4.0 2.0
+ 5.0 1.0
+ 10.0 1.0
+ 9999
+ -1. 10. .001 1 1
+ 0.0 5.0
+ 2.0 5.0
+ 3.0 3.5
+ 4.0 2.0
+ 5.0 1.0
+ 10.0 1.0
+ 9999
+C
+ 60. .664 .01 0 0
+ 1.0 100.
+ 1.6 105.
+ 2.75 110.
+ 4.0 113.
+ 6.0 116.
+ 10. 119.
+ 44. 131.
+ 9999
+C
+$PUNCH, dc13e.pch ! { Exclamation holds lower case
+ -1. 10. .001 1
+ 2.0 5.0
+ 9999
+ 60. 303.11 300. 1 1
+ .000306 0.7
+ .000415 0.8
+ .00076 0.9
+ .00198 1.0
+ .0108 1.1
+ 9999
+C
+$PUNCH
+ 60. 34.5 300.0 1
+ .000306 0.7
+ .000415 0.8
+ .00076 0.9
+ .00198 1.0
+ .0108 1.1
+ 9999
+C
+$PUNCH, dc13f.pch ! { Exclamation holds lower case
+C INI EPSIR
+CONTROLS 1024 1.E-8 { # of points per quarter cycle; convergence tolerance
+C
+C THE FOLLOWING IS A REAL LIFE CASE
+C
+C
+C FREQ VBASE PBASE IPUNCH KTHIRD KCON IOUT BUS1 BUS2 BUS3 BUS4
+C ------________--------________--------________--------______------______------
+ 50. 0.001 1.0E-6 0 3 1DOMAR DOMBR DOMAL DOMBL
+C
+C IRMS----------VRMS------------P---------------
+3.01 29107.00 50640.0
+4.39 31000.00 60640.0
+7.51 33200.00 75760.0
+14.45 35387.0 94960.0
+26.09 37280.00 114000.0
+53.73 39213.00 135360.0
+ 9999.
+$PUNCH
+C
+C SAMPLES OF EACH CONNECTION
+C CURRENT, VOLTAGE AND POWER TO OBTAIN RESISTANCE=REACTANCE
+C
+C CURRENT, VOLTAGE AND LOSSES SCALED ACCORDINGLY
+C
+C SINGLE PHASE
+C
+C FREQ VBASE PBASE IPUNCH KTHIRD KCON IOUT BUS1 BUS2 BUS3 BUS4
+C ------________--------________--------________--------______------______------
+ 50. 0.001 1.0E-6 0 -1 1
+C
+C IRMS----------VRMS------------P---------------
+1.414213562 10000.0 10000.000
+3.39411255 12000.0 28800.000
+7.071067812 14000.0 70000.000
+ 9999.
+C
+C Y NEUTRAL CONNECTED TO GROUND
+C
+C FREQ VBASE PBASE IPUNCH KTHIRD KCON IOUT BUS1 BUS2 BUS3 BUS4
+C ------________--------________--------_______------______------______------
+ 50. 0.001 1.0E-6 0 0 1 1
+C
+C IRMS----------VRMS------------P---------------
+1.414213562 17320.50808 30000.000
+3.39411255 20784.60969 86400.000
+7.071067812 24248.71131 210000.000
+ 9999.
+C
+C DELTA CONNECTED
+C
+C FREQ VBASE PBASE IPUNCH KTHIRD KCON IOUT BUS1 BUS2 BUS3 BUS4
+C ------________--------________--------________--------______------______------
+ 50. 0.001 1.0E-6 0 0 3
+C
+C IRMS----------VRMS------------P---------------
+2.449489743 10000.0 30000.000
+5.878775383 12000.0 86400.000
+12.24744871 14000.0 210000.000
+ 9999.
+$PUNCH
+BLANK card ends stacked subcases of LOSSY SATURATION data
+BEGIN NEW DATA CASE
+C 11th of 12 subcases illustrates batch-mode use of Orlando Hevia's
+C supporting program to find parameters A, B, and C of the Type-15
+C Heidler surge function. See the January, 2001, newsletter. The
+C alternative of in-line fitting rather than batch-mode fitting can
+C be found in the ?? subcase of DC-??. Add this subcase 16 Nov 02
+HEIDLER SURGE FUNCTION
+C FRONT TAIL PERC AMPLIT BUS IV N
+C ------========--------========XX------========--
+ 1.0E-6 50.0E-6 10.0 100.0 BUS 1 5
+ 1.0E-6 50.0E-6 0.0 100.0 BUS -1 5
+ 1.0E-6 50.0E-6 30.0 100.0 BUS Voltage 5
+ 1.0E-6 50.0E-6 50.0 100.0 BUS current 5
+C The preceding data was within HEIDLER.DAT as supplied by Orlando Hevia
+$PUNCH
+C Essence of Orlando Hevia's HEIDSLOP.DAT is inserted here 17 August 2003.
+C This verifies a new fitting option that allows the user to specify his
+C desired peak value and slope.
+C NEW OPTION FOR HEIDLER SURGE SOURCE
+C IF PERC IS .LT. 0.0, THE SOURCE WILL HAVE THE
+C SLOPE AS REQUIRED IN FIRST FIELD (NOT T1)
+C SLOPE><TTAIL-><PERC--><PEAK--> <BUS-> IV N
+ 1.0E+10 50.0E-6 -1.0 1.0E4 OFFLIN -1 4
+$PUNCH
+BLANK card ending input for Heidler fitter
+BEGIN NEW DATA CASE
+C 12th of 12 subcases illustrates batch-mode use of Orlando Hevia's
+C supporting program TWOEXP to find parameters of Dommel's Type-15
+C exponential surge funct. See the January, 2001, newsletter (end
+C of the Standler story mentions "other alternatives"). This does
+C not imply more complicated (even Dommel's original 2-exponential
+C surge is benefitted). Final note: the alternative of in-line
+C fitting rather than batch-mode fitting can
+C be found in the ?? subcase of DC-??. Add this subcase 16 Nov 02
+TWO EXP SURGE FUNCTION
+C FRONT TAIL PERC AMPLIT BUS IV N
+C ------========--------========XX------========--
+ 1.0E-6 50.0E-6 10.0 100.0 BUS 1 5
+ 1.0E-6 50.0E-6 0.0 100.0 BUS -1 5
+ 1.0E-6 50.0E-6 30.0 100.0 BUS Voltage 5
+ 1.0E-6 50.0E-6 50.0 100.0 BUS current 5
+$PUNCH
+BLANK card ending input for 2-exponential fitter
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc14.dat b/benchmarks/dc14.dat
new file mode 100644
index 0000000..4719d9c
--- /dev/null
+++ b/benchmarks/dc14.dat
@@ -0,0 +1,196 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-14
+C 1st of 4 subcases will calculate constant-parameter equivalent network
+C AGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 { Ov 26
+C Add re-dimensioning request 1 April 2007 in order to regain those sparsity
+C diagrams showing non-zero structure. Until this past year, these were
+C missing for 3 * default dimensioning of Salford EMTP and also other versions
+C I suppose. Then, working to support Orlando Hevia and GNU F95 testing, a
+C change to NETEQV was made in January. Storage in KSPARS was changed from
+C INTEGER (1 character per 4/byte word) to CHARACTER*1. But, as Tsu-huei
+C discovered only toward the end of March (apparently testing was delayed),
+C Watcom died at the first attempted storage in KSPARS(1,1). Suspecting that
+C Watcom did not like the INTEGER vs. CHARACTER*1 mismatch of the final
+C argument, WSM retains the NETEQV code and simply replaces KARRAY within
+C SUBR26 by List 15 CSTO of MODELS. But, using 3 * default dimensioning,
+C LSPARS = 225 and this requires 225 ** 2 = 50625 cells which is more than
+C 3 * default will provide. So, as first tested, the two sparsity diagrams
+C were correctly missing from the output. But they were nice, and there is no
+C need to lose them. The dimensioned size of List 15 is substantially bigger,
+C so why not simply expand List 15 to 51K at the same time much more storage
+C is saved by reducing other list sizes (possible since they are not used,
+C anyway, for supporting programs only). "LABCOM tables = 234090 INTEGER
+C words" of the heading will shrink from 234090 to 84270. This is a novel
+C use of NLS for non-simulation, so has educational value in its own right.
+NEW LIST SIZES
+ 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 51000 0 0 0 0 0
+ 0 0 0 { Note only List 15 = 51K differs from default size
+ 240000
+NETWORK EQUIVALENT { Request transfer to supporting program "NETEQV"
+C NITMAX IPRSUP EPSILN PERCEN IPNCOM NAME ---- Begin next sub-sub-case
+ 10 0 1.E-9 0.5 0 ABC?
+C K M X-OHMS
+ 1 2 0.5 { Branch node K, node M, reactance of branch
+BLANK card terminates branch cards (all branches to be excluded from equivalent)
+C BUS1 BUS2 X/R X-THEV NEGATE
+ 1DUMMY DUMMY 10. 0.1 0
+ 2DUMMY DUMMY 20. .05 0
+C $PUNCH { Flush punched cards pertaining to just-completed 2-bus case
+BLANK card ending data cases within "NETWORK EQUIVALENT". Exit to "OVER1"
+BEGIN NEW DATA CASE
+C 2nd of 4 subcases will calculate constant-parameter equivalent network
+NETWORK EQUIVALENT { Request transfer to supporting program "NETEQV"
+C NITMAX IPRSUP EPSILN PERCEN IPNCOM NAME ---- Begin next sub-sub-case
+ 10 0 1.E-9 1.0
+C K M X-OHMS
+ 1 2 278. { Branch node K, node M, reactance of branch
+ 1 3 87. { Branch node K, node M, reactance of branch
+ 1 4 145. { Branch node K, node M, reactance of branch
+ 1 5 145. { Branch node K, node M, reactance of branch
+ 1 6 5.16 { Branch node K, node M, reactance of branch
+ 1 7 467. { Branch node K, node M, reactance of branch
+ 1 8 316. { Branch node K, node M, reactance of branch
+BLANK card terminates branch cards (all branches to be excluded from equivalent)
+C BUS1 BUS2 X/R X-THEV NEGATE
+ 1DUMMY DUMMY 50. .09
+ 2DUMMY DUMMY 33. .15
+ 3DUMMY DUMMY 50. .09
+ 4DUMMY DUMMY 33. .15
+ 5DUMMY DUMMY 50. .09
+ 6DUMMY DUMMY 33. .15
+ 7DUMMY DUMMY 50. .09
+ 8DUMMY DUMMY 33. .15
+C $PUNCH { Flush the punched-card output of just-created equivalent network
+BLANK card ending data cases within "NETWORK EQUIVALENT". Exit to "OVER1"
+BEGIN NEW DATA CASE
+C 3rd of 4 data subcases was appended to illustrate realistic usage at BPA.
+C Data for BPA's EMTP was converted for solution using ATP by Eugene Davis of
+C of BPA during August of 1992. ATP advice from WSM. See Oct, 92, newsletter
+C ** HOT SPRINGS - TAFT - DWORSHAK EQUIVALENTS
+NETWORK EQUIVALENT, 9, { Max number of generators is reduced to yield diagram
+C NITMAX IPRSUP EPSILN PERCEN IPNCOM NAME --- 1st of 2 halves: zero seq
+ 10 0 1.E-9 1.0 0 ABC?
+C K M X-OHMS
+ 1 2 113.2 (K, M, REACTANCE OF BRANCH)
+ 2 3 194.0 (K, M, REACTANCE OF BRANCH)
+BLANK card ends branches that are to be excluded from the equivalent
+C BUS1 BUS2 X/R X-THEV NEGATE ---- Short circuit impedance at bus
+ 1DUMMY HOTS 9. 70.84 0 (zero-sequence values)
+ 2DUMMY TAFT 6. 48.51 0
+ 3DUMMY DWOR 9. 39.41 0
+C -- Done with Newton iteration # 1. Largest correction D4 = 3.84916323E-01
+C -- Done with Newton iteration # 1. Largest correction D4 = 1.33373074E-01
+C -- Done with Newton iteration # 1. Largest correction D4 = 5.54850941E-03
+C -- Done with Newton iteration # 1. Largest correction D4 = 1.96795976E-05
+C -- Done with Newton iteration # 1. Largest correction D4 = 1.14179987E-10
+C reactance computed after removal of user-flagged generators. .... LOOP = 2.
+C Gen X-new R-new X-fault X-thev X/R-thev
+C 1 1.19249599709E+02 1.32499555232E+01 7.08400E+01 7.08400E+01 9.000000
+C 2 8.22611517150E+01 1.37101919525E+01 4.85100E+01 4.85100E+01 6.000000
+C 3 4.66222308277E+01 5.18024786975E+00 3.94100E+01 3.94100E+01 9.000000
+C NITMAX IPRSUP EPSILN PERCEN IPNCOM NAME ----- End 0-sequence, begin +
+ 10 0 1.E-9 1.0 0 ABC?
+C K M X-OHMS K = "from" node number; M = "to" node number;
+ 1 2 30.33 X is reactance of branch not included in equiv.
+ 2 3 55.73 (branches represented explicitely in EMTP data)
+BLANK card ends branches that are to be excluded from the equivalent
+C BUS1 BUS2 X/R X-THEV NEGATE ---- Short circuit impedance at bus
+ 1DUMMY HOTS 16. 52.37 0 (positive-sequence values)
+ 2DUMMY TAFT 17. 38.59 0
+ 3DUMMY DWOR 19. 30.59 0
+C -- Done with Newton iteration # 1. Largest correction D4 = 6.33252721E-01
+C -- Done with Newton iteration # 2. Largest correction D4 = 3.90146597E-01
+C -- Done with Newton iteration # 3. Largest correction D4 = 1.39754125E-01
+C -- Done with Newton iteration # 4. Largest correction D4 = 5.79939902E-03
+C -- Done with Newton iteration # 5. Largest correction D4 = 2.06058080E-06
+C -- Done with Newton iteration # 6. Largest correction D4 = 1.96349525E-12
+C Final generator equivalent impedances, plus confirmation of original generator
+C parameters. Resistance is ignored during the internal computation, and is
+C added as a fixed percentage only at the end. X-fault is the short circuit
+C reactance computed after removal of user-flagged generators. .... LOOP = 1.
+C Gen X-new R-new X-fault X-thev X/R-thev
+C 1 1.55130207469E+02 9.69563796684E+00 5.23700E+01 5.23700E+01 16.000000
+C 2 9.81300314308E+01 5.77235479005E+00 3.85900E+01 3.85900E+01 17.000000
+C 3 4.10670198789E+01 2.16142209889E+00 3.05900E+01 3.05900E+01 19.000000
+C Note about order. Preceding data has two halves, with the zero sequence
+C sequence preceding the positive. This order is needed only for punched
+C cards that follow to be correct (zero sequence first). Otherwise, the
+C order is immaterial. In fact, the same solution is performed twice. It
+C is only data values that distinguish the two solutions.
+$PUNCH, dc14b.pch !
+C <++++++> Cards punched by support routine on 24-Aug-92 09.27.44 <++++++>
+C 51,DUMMYA,HOTS A, ,,, 1.324995552323771E+01, 1.192495997091393E+02,,,,,,
+C 52,DUMMYB,HOTS B, ,,, 9.695637966841947E+00, 1.551302074694711E+02,,,,,,
+C 53,DUMMYC,HOTS C, ,,,,,,,,,,
+C 51,DUMMYA,TAFT A, ,,, 1.371019195249209E+01, 8.226115171495253E+01,,,,,,
+C 52,DUMMYB,TAFT B, ,,, 5.772354790047830E+00, 9.813003143081311E+01,,,,,,
+C 53,DUMMYC,TAFT C, ,,,,,,,,,,
+C 51,DUMMYA,DWOR A, ,,, 5.180247869745662E+00, 4.662223082771096E+01,,,,,,
+C 52,DUMMYB,DWOR B, ,,, 2.161422098891424E+00, 4.106701987893705E+01,,,,,,
+C 53,DUMMYC,DWOR C, ,,,,,,,,,,
+BLANK card ending data subcases within NETWORK EQUIVALENT.
+BEGIN NEW DATA CASE
+C 4th of 4 subcases has nothing to do with the preceding 3. Instead,
+C it converts old Type-91, 92, or 93 switched elements to newer
+C pseudo-nonlinear branches.
+CHANGE SWITCH
+C Cards preceding the blank card ending branch cards are all discarded
+C except for the Type-91 time-dependent resistance. So, following a
+C dummy series R-L-C branch, let's insert one of these Type-91 branches:
+ NODE1 NODE2 1.0 { Series R-L-C will be discarded, of course
+91LEFT RIGHT 0.3E6 { From p. 20 example of 1980 Rule Book } 1
+ 0.0 300.
+ 0.3 200.
+ 0.6 150.
+ 1000. 150.
+ 9999
+91 NODE1 NODE2 COPYL COPYR .25E6 { Final card from p. 20 of 1980 Rule Book
+BLANK card ending program branch cards. This is flag that switches follow.
+C Type-92 switched-R element follows (to be converted):
+C 3456789012345678901234567890123456789012345678901234567890
+92JDAYA LMONA 8.5 3.E5 3.5E5 3
+C Type-93 switched-L element follows (to be converted):
+93SENDA NEUTRL 4.2 2.5 0.7 3.3 1
+BLANK card terminating program switch cards
+C Since all cards between the blank card ending switch cards (immediately
+C above) and the start of a new case ("BNDC" in unabbreviated, long form)
+C are to be discarded, we will not show anything here. No intelligence
+C is involved in the "CHANGE SWITCH" logic, so nothing can be tested.
+BEGIN NEW DATA CASE
+$PUNCH { Flush the punched-card output of equivalent pseudo-nonlinear elements
+C 91LEFT RIGHT 3333.
+C 0.3E6
+C 0.0 300.
+C 0.3 200.
+C 0.6 150.
+C 1000. 150.
+C 9999
+C 91 NODE1 NODE2 COPYL COPYR 3333.
+C 99JDAYA LMONA 0 3 2 035
+C 0.0000001 3.E5
+C 1.0 0.300008500E+06
+C 9999
+C 98SENDA NEUTRL 1.0 3.3
+C 0.1320000E+04 3.3
+C 0.2640000E+04 0.4224000E+01
+C 9999
+C Because this was not the first subcase of the disk file that punched
+C cards ($PUNCH usage), note that the usual $ERASE was not required
+C at the start. The $PUNCH at the end of the preceding subcase left
+C the punch buffer empty. But the final $PUNCH (immediately before
+C these comment cards) requires special attention. Were there not at
+C least five data cards remaining at the end of the final meaningful
+C data case, the blank terminating case would not even be read (the
+C program would instead discard remaining cards and jump out to issue
+C the initial prompt once again. The present set of comment cards do
+C number more than 5, so they should protect against this possibility
+C provided comment cards were not being destroyed by NOCOMM = 1 as
+C set in STARTUP. But we can not be sure of this, so it is safer to
+C have 5 or more non-blank data cards. By adding 2 unused blank cards
+C below, BNDC + $PUNCH + original blank + these 2 new ones total 5.
+C The blank bounding case, including the imbedded $PUNCH (which we
+C need to flush the final punched cards) will be read.
+BLANK
+BLANK { 1st of 2 unused lines can have any content. This is line 4 of 5.
+BLANK { 2nd of 2 unused lines can have any content This is line 5 of 5.
diff --git a/benchmarks/dc15.dat b/benchmarks/dc15.dat
new file mode 100644
index 0000000..9d7703d
--- /dev/null
+++ b/benchmarks/dc15.dat
@@ -0,0 +1,90 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-15
+C Derive [R], [L] representations of 2- or 3-winding transformers.
+XFORMER
+$ERASE { Erase any remnant card images that might exist in punch buffer
+22. 700.
+139.4 13.6 2100. 12. 700.
+$PUNCH { Flush contents of punch buffer (LUNIT7 punched output of preceding)
+C 2nd punch : 52, , , , , -0.2028822586562E-02 , 0.1353359666262E+03 $
+C Frequency was added explicitly on 18 July 2002. Prior to this date, it
+C merely was implied. But now it will be declared on a new $UNITS card
+C is to precede punched cards. However, there is ambiguity. Since the user
+C does not declare frequency as part of XFORMER data, for freq. of X the
+C $UNITS card will display STATFR --- the power frequency from STARTUP.
+C That is if data is old. But a user can define his own frequency F as he
+C goes using $DEPOSIT as follows (switch to a power frequency of 400 Hz):
+$DEPOSIT, STATFR=400. { SPY DEPOSIT command puts valu 400 in ATP variable STATFR
+22. 600.
+139.4 13.6 1800. 12. 600.
+$PUNCH
+C 1st punch : 51, , , , , 0.2426133676335E-01 , 0.1620334065762E+04 , ,,,,
+$DEPOSIT, STATFR=60. { Return to a more common power frequency (cancel the 400)
+22. 280.
+139.4 13.2 840. 13. 280.
+$PUNCH
+C 3rd punch : 0.4661083093112E-03 , 0.3113449149085E+02 , ,,,,
+22. 305.
+139.4 13.2 915. 13. 305.
+$PUNCH
+C 1st punch : 51, , , , , 0.4772244898150E-01 , 0.3187701553139E+04 , ,,,,
+22. 400.
+139.4 13.2 1200. 13. 400.
+$PUNCH
+C 2nd punch : 52, , , , , -0.3445670365668E-02 , 0.2298606303275E+03 $
+BRANCH NAME1 NAME2 NAME3 NAME4 NAME5 NAME6 { 3 pairs of names for phases
+3.3 83.3
+132.8 250. 6.7 83.3
+66.4 56.8 5.1 18.96
+13.2 56.8 3.2 18.96
+$PUNCH
+C 4th punch: 53,NAME5 ,NAME6 , , , -0.5802607141885E-01 , 0.7013580357111E+04 $
+C 5th punch: -0.2901590479727E-01 , 0.3507083721397E+04 $
+C 6th punch: 0.1153587338779E-01 , 0.6973923571743E+03 , ,,,,
+3.3 80.
+177. 400. 3.37 80.
+132.8 22. 3.57 7.35
+13.2 22. 3.42 7.35
+$PUNCH
+C Last LUNIT7: 0.3031150665151E-01 , 0.7263587283765E+03 , ,,,,
+BLANK carding ending "XFORMER" cases.
+BEGIN NEW DATA CASE
+C 2nd of 3 data subcases tests Gabor Furst's supporting routine that
+C will punch data cards to represent a Type-3 U.M. (induction motor).
+C This was added 4 February 1997 as described in April, 97, newsletter.
+INDUCTION MOTOR DATA
+ SINGLE { 1st of 2 for default motor parameters must be nonblank, so key 1st 8
+BLANK { 2nd of 2 for default motor parameters
+BLANK carding ending data subcases within SUBROUTINE INDUCT by Gabor Furst
+BEGIN NEW DATA CASE
+C 3rd of 3 data subcases tests Orlando Hevia's supporting routine that
+C calculates Type-14 harmonic sources for an HFS frequency scan. This
+C is added 16 December 2001 as should be documented in a newsletter.
+C Orlando Hevia's subroutine has been renamed HSOURC ("harmonic source").
+C ITYPE : 1- 2 RESERVED
+C BUS : 3- 8 BUS NAME
+C VOLT : 9-16 VOLTAGE OF BRIDGE IN VOLT
+C FREQ : 17-24 FREQUENCY IN HZ
+C AMPER : 25-32 CURRENT IN AMPER
+C PHASE : 33-40 PHASE IN DEGREES
+C SCCMVA : 41-48 SHORT-CIRCUIT POWER IN MVA
+C PERCEN : 49-56 PERCENT OF LOAD
+C ALFA : 57-64 DELAY ANGLE IN DEGREES
+C MU : 65-72 OVERLAP ANGLE IN DEGREES
+C NPU : 73-75 NUMBER OF PULSES
+C IMF : 76-78 MAXIMUM HARMONIC TO CALCULATE
+C KY : 79-80 RESERVED
+C BUS VOLT FREQ AMPER PHASE SCCMVA PERCEN ALFA MU NPUIMFKY
+C
+$ERASE { Erase any remnant card images that might exist in punch buffer
+CREATE HARMONIC SOURCES { Request transfer to Orlando Hevia's SUBROUTINE HSOURC
+C ------________--------________--------________--------________--------___---__
+ BUS6 600.0 50.0 1000.0 0.0 75.0 0.0 0.0 6 55
+$PUNCH { Flush the Type-14 source cards, which are output of the computation
+ BUS12 600.0 50.0 1000.0 0.0 75.0 0.0 0.0 12 55
+$PUNCH { Flush the Type-14 source cards, which are output of the computation
+ BUS18 600.0 50.0 1000.0 0.0 75.0 0.0 0.0 18 55
+$PUNCH { Flush the Type-14 source cards, which are output of the computation
+BLANK card ending requests of CHS
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc16.dat b/benchmarks/dc16.dat
new file mode 100644
index 0000000..3650a6a
--- /dev/null
+++ b/benchmarks/dc16.dat
@@ -0,0 +1,230 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-16
+C Test of "SYSTEMATIC" option which allows the user to have switch closing
+C times varied regularly. There are 3 independent, systematically-varied
+C switches taking 2, 4, and 3 steps, respectively. In addition to the base
+C case, then, there are to be 2 * 4 * 3 = -NENERG = 24 energizations.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+99.03E-6 .025 60.
+ 1 1 1 2 1 -1 -24
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 { ISW=1 ==> Printed switching times; ITEST=1 ==> no bias
+ 5 5 20 20 { Printout frequency changes for base case
+ 0GENA A1 7. 4
+ 0GENB B1 7. 3
+ 0GENC C1 7.
+ 0ENDA A10 7.
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+ B10 BSW10 10.E-3 1.0
+ B1 BSW1 4.E-3 .2E-3 2 SYSTEMATIC
+ C1 CSW1 6.E-3 .3E-3 4 SYSTEMATICTARGET
+ A10 ASW10 2.E-3 .4E-3 3 SYSTEMATIC
+ A1 ASW1 1.E-3 SYSTEMATICB1 BSW1
+ C10 CSW10 12.E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+ ASW1 BSW1
+BLANK card ending output variable requests (node voltages only, here)
+C *** Close switch "B1 " to "BSW1 " after 6.04083000E-03 sec.
+C *** Close switch "C1 " to "CSW1 " after 6.04083000E-03 sec.
+C *** Close switch "A10 " to "ASW10 " after 6.04083000E-03 sec.
+C *** Close switch "A1 " to "ASW1 " after 7.03113000E-03 sec.
+C 80 .0079224 3.639449214 12.5053685 -283.627168 177.6693051 .5124656E-3
+C 100 .009903 1.299612647 -58.9506992 -271.930029 38.31674092 .6510477E-4
+C *** Close switch "B10 " to "BSW10 " after 1.00020300E-02 sec.
+C 120 .0118836 -13.4793168 7.386747874 -54.0094052 -227.85024 .0068001249
+C *** Close switch "C10 " to "CSW10 " after 1.20816600E-02 sec.
+C
+C Last step: 252 .02495556 -2.83666996 -5.98940516 -327.625802 161.8641485
+C Last step continued ....... .1629402E-3 .3686585491
+ PRINTER PLOT
+ 144 4. 0.0 50. ASW1 { Axis limits: (-3.276, 3.176)
+C GENA GENB ASW1 BSW1 GENA
+C A1 B1 A1
+C First shot: Random switching times for energization number 1 :
+C 2 5.9000000E-03 3 6.0000000E-03 4 5.6000000E-03 5 6.9000000E-03
+C 58.93128751 192.0984488 -326.075521 336.1486991 .0315970504
+C Times of maxima : .0138642 .00604083 .02495556 .00722919 .01554771
+C
+C 2nd shot: Random switching times for energization number 2 :
+C 2 6.1000000E-03 3 6.0000000E-03 4 5.6000000E-03 5 7.1000000E-03
+C 56.04192203 165.7654174 -322.282369 -326.291206 .0329276386
+C Times of maxima : .01267584 .00623889 .02495556 .01346808 .01574577
+BLANK card ending plot cards (for base case only)
+C 23rd shot: Random switching times for energization number 23 :
+C 23rd shot: 2 6.8000000E-3 3 6.9000000E-3 4 7.3000000E-3 5 7.8000000E-3
+C 23rd shot: -39.0656922 169.6381869 -379.444302 -311.343589 .0253668269
+C Times of maxima: .01742928 .0069321 .00812046 .01346808 .01673607
+C
+C Last shot: Random switching times for energization number 24 :
+C Last shot: 2 7.0000000E-3 3 6.9000000E-3 4 7.3000000E-3 5 8.0000000E-3
+C Last shot: 49.82358949 165.4706377 -382.803147 310.7780459 .0299093498
+C Last shot: .01356711 .00713016 .00812046 .02188563 .01673607
+C
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENB " to "B1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 57 2.8500000 0.14250000E+03 0 0
+C 58 2.9000000 0.14500000E+03 1 1
+C < < Etc. (rows 59 through 75 omitted to save space) > >
+C 76 3.8000000 0.19000000E+03 0 21
+C 77 3.8500000 0.19250000E+03 3 24
+C Summary for following request: Mean = 3.48750000E+00 3.49384237E+00
+C Variance = 5.61413043E-02 5.91771084E-02
+C Standard deviation = 2.36941563E-01 2.43263455E-01
+-1 50. GENB B1
+C 2 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage at node "ASW1 ". The base voltage
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 21 1.0500000 0.31815000E+03 0 0
+C 22 1.1000000 0.33330000E+03 5 5
+C 23 1.1500000 0.34845000E+03 5 10
+C 24 1.2000000 0.36360000E+03 3 13
+C 25 1.2500000 0.37875000E+03 5 18
+C 26 1.3000000 0.39390000E+03 3 21
+C 27 1.3500000 0.40905000E+03 3 24
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.18541667E+00 1.18028303E+00
+C Variance = 7.38677536E-03 6.74976204E-03
+C Standard deviation = 8.59463517E-02 8.21569354E-02
+ 0 ASW1 BSW1 { See preceding comments for 1st of 3 tables produced
+C MODTAB AINCR XMAXMX
+STATISTICS DATA 0 -15. 0.0 ---- Fixed 15 boxes used now
+C 5 ) --------------------------------------------------------------------------
+C Statistical distribution of peak current for branch "GENB " to "B1 ".
+C Interval current current in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 19 0.9976152 0.95970790E+00 0 0
+C 20 1.0501213 0.10102188E+01 2 2
+C 21 1.1026274 0.10607298E+01 0 2
+C < < Etc. (rows 22 through 32 omitted to save space) > >
+C 33 1.7327002 0.16668611E+01 0 22
+C 34 1.7852062 0.17173720E+01 2 24
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40672501E+00 1.39937500E+00
+C Variance = 3.96702046E-02 3.93384525E-02
+C Standard deviation = 1.99173805E-01 1.98339236E-01
+-2 GENB B1 { See preceding comment cards for resulting single table
+-3 GENA A1 { Ungrouped: Mean= 1.63806617E0, Variance = 1.01307955E-1
+-4 GENA A1 { Ungrouped: Mean= 1.30997561E0, Variance = 1.73383337E-2
+C MODTAB AINCR XMAXMX 15 Aug 03, add Sturges use:
+STATISTICS DATA 0 Sturges 0.0 ---- Sturges gives # of boxes
+-4 GENA A1 { Ungrouped:
+C 8 ) -------------------------------------------------------------------------------------------------------------------------------
+C Statistical distribution of peak energy for branch "GENA " to "A1 ". Base energy for per unit output = 2.33417187E-02
+C Interval energy energy in Frequency Cumulative Per cent
+C number in per unit physical units (density) frequency .GE. current value
+C 9 .9050250 2.11248398E-02 0 0 100.000000
+C 10 1.0055834 2.34720442E-02 1 1 95.833333
+C 11 1.1061417 2.58192486E-02 2 3 87.500000
+C 12 1.2067000 2.81664531E-02 2 5 79.166667
+C 13 1.3072584 3.05136575E-02 5 10 58.333333
+C 14 1.4078167 3.28608619E-02 9 19 20.833333
+C 15 1.5083751 3.52080663E-02 5 24 .000000
+C Summary of preceding table follows: Grouped data Ungrouped data
+C Mean = 1.29887852E+00 1.30997561E+00
+C Variance = 1.92713806E-02 1.73383337E-02
+C Standard deviation = 1.38821398E-01 1.31675107E-01
+BLANK card ending "SYSTEMATIC" output-variable requests
+BEGIN NEW DATA CASE
+C 2nd of 3 subcases is related to 1st in that it demonstrates SYSTEMATIC use.
+C But network is single phase and much simpler. Basically, a 50-Hz generator
+C will charge a capacitor upon switch closure. Illustrate different options:
+C a) Misc. data KSSOUT of column 32 is 3 whereas in DC-16 it was 2. The
+C difference is a phasor branch flow (now seen) for the base case.
+C b) Misc. data MAXOUT of column 40 is zero whereas in DC-16 it was 1. But
+C this makes no difference. The base case show extrema either way.
+C c) Misc. data MEMSAV of column 56 is 2 meaning that program tables will
+C be partially dumped, as 3rd subcase of DC-24 (STATISTICS). For ease of
+C documentation, this will be FORMATTED rather than UNFORMATTED (note
+C FORM= of the $OPEN statement).
+C d) IMAX, read from cols. 25-32 of the STATISTICS/SYSTEMATIC misc. data
+C card, has value 1 to request the addition of normal, non-statistic
+C extrema.
+C e) There is a single SYSTEMATIC switch. NENERG of the misc. data card
+C can be found without the minus sign in column 44 of the switch card.
+C f) Illustrate PARTIAL TABLE DUMPING for faster table dumping. This
+C illustration is added 5 October 2001.
+PARTIAL TABLE DUMPING { Faster table dumping (dump only what is used, not limit)
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .000500 .010 { Take 20 steps over half a cycle of the 50-Hz power frequency
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT NENERG
+ 1 1 1 3 0 -1 -4
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 1 1 1
+ 5 1 { Printout frequency remains unchanged; print each time step
+ GEN SWIT 1.0 1
+ SWIT 1.0
+ CAP 0.0 0.0 1.0E3 3
+BLANK card ending branch cards
+ SWIT CAP 5.E-3 1.E-3 4 SYSTEMATIC
+BLANK card ending switch cards
+14GEN 400. 50. 0.0 -1.
+BLANK card ending source cards
+$OPEN, UNIT=LUNIT9 FILE=systemat.lu9 STATUS=UNKNOWN FORM=FORMATTED !
+ GEN SWIT CAP
+BLANK card ending output variable requests (node voltages only, here)
+ PRINTER PLOT
+ 184 2. 4.0 10. CAP GEN SWIT
+BLANK card ending plot cards (for base case only)
+$CLOSE, UNIT=LUNIT9 STATUS=KEEP { Disconnect to prevent damage by stray WRITE
+$OPEN, UNIT=LUNIT9 FILE=dum.lu9 STATUS=UNKNOWN FORM=FORMATTED !
+-2 500. CAP { Tabulate branch current of (CAP, TERRA) using I-base = 500.
+BLANK card ending statistical tabulate (none possible, since no output variable)
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases is same as 2nd except for the following changes:
+C a) Add OMIT BASE CASE to drop the base case (no normal dT-loop output
+C preceding the 4 energizations indicated by NENERG.
+C b) IMAX, read from cols. 25-32 of the STATISTICS/SYSTEMATIC misc. data
+C card, has value 2 to request the replacement of statistical extrema
+C by normal, non-statistic extrema.
+C c) Misc. data MAXOUT of column 40 is 1. But this makes no difference.
+C d) Misc. data KSSOUT of column 32 is 2 as in DC-16. This omits the
+C phasor branch flow of the preceding subcase.
+OMIT BASE CASE { Energizations will not be preceded by normal dT-loop output
+ .000500 .010
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT NENERG
+ 1 1 1 3 1 -1 -4
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 2 1 1
+ 5 5 { Less dT-loop output after time step number 5
+ GEN SWIT 1.0 1
+ SWIT 1.0
+ CAP 0.0 0.0 1.0E3 3
+BLANK card ending branch cards
+ SWIT CAP 5.E-3 1.E-3 4 SYSTEMATIC
+BLANK card ending switch cards
+14GEN 400. 50. 0.0 -1.
+BLANK card ending source cards
+C $OPEN, UNIT=LUNIT9 FILE=systemat.lu9 STATUS=UNKNOWN FORM=FORMATTED !
+ GEN SWIT CAP
+BLANK card ending output variable requests (node voltages only, here)
+$DISABLE { Comment out this card, if a base case solution is to be added
+ PRINTER PLOT
+BLANK card ending plot cards (for base case only)
+$ENABLE { Comment out this card, if a base case solution is to be added
+C $CLOSE, UNIT=LUNIT9 STATUS=KEEP { Disconnect to prevent damage by stray WRITE
+-2 500. CAP { Tabulate branch current of (CAP, TERRA) using I-base = 500.
+BLANK card ending statistical tabulate (none possible, since no output variable)
+BEGIN NEW DATA CASE
+BLANK
+EOF
diff --git a/benchmarks/dc17.dat b/benchmarks/dc17.dat
new file mode 100644
index 0000000..3fb6e53
--- /dev/null
+++ b/benchmarks/dc17.dat
@@ -0,0 +1,101 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-17
+C Problem identical to DC-4, only here the data is modularized to two
+C levels using $INCLUDE with arguments (both numeric and alphanumeric).
+C March of 2006, modify to illustrate $INSERT with arguments and "/"-card
+C sorting. In addition to the original data case, 4 more will be appended
+C and each of these will have its own $INSERT disk file. As for the
+C original first, it remains the same except that $INSERT has replaced
+C the $INCLUDE use of years past. Arguments are unchanged, however.
+C 4 May 2007, add following $PREFIX after modification of OVER1 and
+C CIMAGE that moves CHAR*80 PREFIX into BLKCOM for use by $INSERT.
+C This allows remote execution, from \UNFORM, without data modification.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+$INSERT, dc17ins.dat, 9, .005, TRAN##,
+ .005 4.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ TRAN LOADG 255. 5.E4 3
+ LOADG 1.E-6
+BLANK card ending BRANCH cards
+BLANK card ending SWITCH cards (none exists, for this case)
+BLANK card ending SOURCE cards
+ GEN TRAN
+BLANK card ending OUTPUT variable requests
+BLANK card ending PLOT cards
+BEGIN NEW DATA CASE
+C 2nd of 5 subcases of DC-17 that illustrate $INSERT use.
+C DC-26, 5th of 5 data subcases, modified. This is former DC17A.DAT
+$INSERT, DC17AINS.DAT, { Move all data except misc. data into this file
+ .000200 .000 60. { T-max = 0 means that no transient solution follows
+ 1 1 1 0 1
+BLANK card ending branch cards.
+BLANK card ending switch cards.
+BLANK card terminating EMTP source cards.
+BLANK card ending requests for output variables
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 5 subcases of DC-17 that illustrate $INSERT use.
+C BENCHMARK DC-33, modified. This is former DC17B.DAT
+$INSERT, DC17BINS.DAT, { All data except misc. data has been moved to here
+ .000050 .020
+ 1 1 1 1 1 -1
+ 5 5 20 20
+BLANK card terminates all TACS data
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+C Total network loss P-loss by summing injections = 7.106450000000E-06
+C Inject: GEN 377. 377. .377E-7 2.6786345332877
+C Inject: 0.0 0.0 -2.678634533288 -89.9999992
+C ---- Initial flux of coil "GROUND" to "GEN " = 1.00000000E-09
+C
+C Step Time GEN GROUND GROUND TACS TACS
+C TERRA GEN FLUX GEN
+C *** Phasor I(0) = 0.3770000E-07 Switch "GROUND" to " " closed
+C 0 0.0 377. .377E-7 0.0 0.0 0.0
+C 1 .5E-4 376.9330268 .5235646391 -.523564601 .0094233257 376.9330268
+C 2 .1E-3 376.7321312 1.04694322 -1.04694318 .0282649546 376.7321312
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 4th of 5 subcases of DC-17 that illustrate $INSERT use.
+C BENCHMARK DC-33, 2nd of 3 subcases, modified. This is former DC17C.DAT
+$INSERT, DC17CINS.DAT, { All data except misc. data has been moved to here
+ .000050 .020
+ 1 1 1 1 1 -1
+ 5 5 20 20
+BLANK card terminates all MODELS data { 9 July 1995, MODELS replaces old
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+C Total network loss P-loss by summing injections = 7.106450000000E-06
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 5th of 5 subcases of DC-17 that illustrate $INSERT use.
+C DC-30, 6th of 6 subcases, modified. This is former DC17D.DAT
+$INSERT, DC17DINS.DAT,
+ 1.E-6 5.E-6 { Only take 5 steps; these are plenty for illustration
+ 1 -1
+BLANK card terminates all TACS data
+BLANK card ends all MODELS data
+ENDMODELS
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+C Comment about 6 lines above. Note ENDMODELS has like the initiation
+C word MODELS: there is only one of them, and has nothing to do with
+C the actual modeling. It is part of the structure in which actual data
+C is carried. Normally, ENDMODELS would precede the blank card ending
+C MODELS, but with sorting that is not possible. /-card sorting will
+C put the actual data there. If we raise ENDMODELS line by one row,
+C it would precede all real MODELS data, and that would be completely
+C wrong. So, we put it after the blank. Recall MODELS ignores blank
+C lines, so the blank card ending MODELS is ignored. It is essential
+C to the sorting, but then is ignored by MODELS itself. Since it was
+C optional, anyway, this works well.
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc17ains.dat b/benchmarks/dc17ains.dat
new file mode 100644
index 0000000..f529777
--- /dev/null
+++ b/benchmarks/dc17ains.dat
@@ -0,0 +1,22 @@
+/SOURCE
+14WHITE 1.02 60. 0.0 -1.
+/BRANCH
+ WHITE YELLOW .05 .20
+ YELLOWGREEN .05 .20
+ GREEN RED .05 .20
+ RED BLUE .10 .40
+/LOAD FLOW
+C Next come power constraints of the load flow. There will be one
+C for each non-slack generator:
+ RED -0.4 -.14 .85 1.15
+ GREEN 1.0 0.3 .85 1.15
+ BLUE -.15 .025 .85 1.15
+ YELLOW -0.6 -0.2 .85 1.15
+C The following load-flow miscellaneous data card has two peculiarities. The
+C use of VSCALE = 1.414 is the special flag requesting RMS rather than peak
+C voltages. The use of KTAPER = 0 ensures constant acceleration factors
+C (this works for this data).
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 500 20 1 .00001 0.1 7.0 1.414 0
+/REQUEST
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
diff --git a/benchmarks/dc17bins.dat b/benchmarks/dc17bins.dat
new file mode 100644
index 0000000..1f3741d
--- /dev/null
+++ b/benchmarks/dc17bins.dat
@@ -0,0 +1,60 @@
+/SOURCE
+14GEN 377. 60. -1.
+/TACS
+TACS HYBRID
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+90GEN
+91GROUND
+99CURR -1.0* GROUND
+33FLUX GEN GROUNDCURR
+/OUTPUT
+ GEN
+/PLOT
+C Last step: 400 .02 116.4994069 2.765761424 -2.76576141 .9416257618
+C Last step continued .....: 116.4994069 2.765761424 -2.76576142
+C Final 5 max. : 3.499909256 .9905492104 376.9925583 3.499613141 3.499909256
+C Associated times : .0125 .00415 .01665 .00415 .0125
+ CALCOMP PLOT
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ 194 2. 0.0 20. TACS CURR ABCDEFGHIJKLMNOP1234567890123456
+ X-Y PLOT Horizontal Axis label123
+ 10. -1.1 1.1
+ 8. -4.0 4.0
+ 194 4. 0.0 20. TACS FLUX TACS CURR Graph heading---Vertical axis la
+ X-Y PLOT Horizontal Axis label123
+ 9999. -1.1 1.1 "9999." returns to conventional (vs. time) plotting
+ 8. -4.0 4.0
+ PRINTER PLOT
+ 194 4. 0.0 20. TACS CURR { Axis limits: (-3.500, 3.500)
+C Now that all plotting is done with, let's illustrate the three declarations
+C that will choose the destination of any subsequent "CALCOMP PLOT" use:
+ SCREEN PLOT { If a vector plot were to follow, it would go only to the screen
+ PEN PLOT { If a vector plot were to follow, ... go only to CalComp plotter
+ SCREEN PEN { If a vector plot were to follow, .. go to both screen & plotter
+C The preceding 3 declarations really could only be tested by a user who
+C had both a vector-graphic screen and a CalComp plotter. Hence no use.
+C The following active card of DC-33 must be disabled for $INSERT use. The
+C problem is this. For $INCLUDE, the /LOAD FLOW disappears during data
+C assembly, leaving just comment cards that have nothing to do with any load
+C flow. So, they were tolerated. But not so for $INSERT which retains
+C the data for this non-existent feature. So, remove entire block:
+C /LOAD FLOW
+/BRANCH
+96GROUNDGEN 8888. 1.E-9 1
+ 1.0 -0.7
+ 2.0 0.9
+ 3.5 1.0
+ 9999.
+/REQUEST
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+/INITIAL
+ 2GROUND 0. { Node voltage initial condition in fact changes nothing
+C Initial conditions really are not a part of this problem, although we do want
+C to illustrate that they, too, can be sorted, and inserted after /LOADFLOW
+C The preceding redefinition of node voltage at GROUND changes zero to zero.
+/SWITCH
+ GROUND MEASURING 1
diff --git a/benchmarks/dc17cins.dat b/benchmarks/dc17cins.dat
new file mode 100644
index 0000000..5497e7c
--- /dev/null
+++ b/benchmarks/dc17cins.dat
@@ -0,0 +1,60 @@
+/SOURCE
+14GEN 377. 60. -1.
+/MODELS { 9 July 1995, the former /TACS was changed to this new class
+MODELS { Note the change; the 1st subcase had "TACS HYBRID" here
+INPUT GEN {V(GEN)}, GROUND {I(GROUND)}
+MODEL DC33
+INPUT gen, ground
+VAR flux, curr
+HISTORY gen {DFLT: 0}, flux {DFLT: 0}, ground {DFLT: 0}
+INIT
+ curr:=0
+ENDINIT
+EXEC
+ COMBINE AS INTEGRATOR
+ LAPLACE(flux/gen):=(1.0|S0)/(1.0|S1)
+ ENDCOMBINE
+ curr:=-ground
+ENDEXEC
+ENDMODEL
+USE DC33 AS DC33
+ INPUT GEN:=GEN, GROUND:=GROUND
+ENDUSE
+RECORD
+ DC33.FLUX AS FLUX
+ DC33.GEN AS GEN
+ DC33.GROUND AS GROUND
+ DC33.CURR AS CURR
+ENDRECORD
+ENDMODELS
+/OUTPUT
+ GEN
+/PLOT
+C Last step: 400 .02 116.4994069 2.765761424 -2.76576141 .9604757618
+C Variable maxima : 377. 3.499613141 3.499909256 1.00939921
+C Times of maxima : 0.0 .00415 .0125 .00415
+C Variable minima : -376.992558 -3.49990926 -3.49961314 -.990568949
+C Times of minima : .00835 .0125 .00415 .0125
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ CALCOMP PLOT
+ SCREEN PLOT
+ 194 2. 0.0 20. MODELSCURR ABCDEFGHIJKLMNOP1234567890123456
+ X-Y PLOT Horizontal Axis label123
+ 10. -1.1 1.1
+ 8. -4.0 4.0
+ 194 4. 0.0 20. MODELSFLUX MODELSCURR Graph heading---Vertical axis la
+ X-Y PLOT Horizontal Axis label123
+ 9999. -1.1 1.1 "9999." returns to conventional (vs. time) plotting
+ 8. -4.0 4.0
+/BRANCH
+96GROUNDGEN 8888. 1.E-9 1
+ 1.0 -0.7
+ 2.0 0.9
+ 3.5 1.0
+ 9999.
+/REQUEST
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+/SWITCH
+ GROUND MEASURING 1
diff --git a/benchmarks/dc17dins.dat b/benchmarks/dc17dins.dat
new file mode 100644
index 0000000..dd715bf
--- /dev/null
+++ b/benchmarks/dc17dins.dat
@@ -0,0 +1,66 @@
+/MODELS
+MODELS { Request to begin MODELS data appears just once
+C End of fixed data. Begin variable /-cards, which can appear in any
+C order. To illustrate that TACS data really will be sorted to precede
+C MODELS data, note that /TACS follows /MODELS in the following.
+C I.e., we rely on /-card sorting to correct this. TACS data is
+C separate and distinct from MODELS data just as branch data is
+C separate and distinct from switch or source data.
+/MODELS
+INPUT deltav {TACS(vsw)}
+OUTPUT grid
+MODEL dc30
+ INPUT dv
+ VAR grid
+ OUTPUT grid
+ EXEC
+ IF abs(dv)>=1.5e8*t +1e5 THEN grid:=1 ELSE grid:=0 ENDIF
+ ENDEXEC
+ENDMODEL
+USE dc30 AS dc30
+ INPUT dv:=deltav
+ OUTPUT grid:=grid
+ENDUSE
+RECORD
+ dc30.dv AS dv
+/TACS
+TACS HYBRID { Request to begin TACS data appears just once
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW = BUS2 - BUS3
+27DV { MODELS variable DV will define Type-27 TACS source of the same name
+33BUS2 BUS3 VSW DV
+/BRANCH
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+/SWITCH
+ BUS2 BUS3 -1. 1.E9
+ NAME: Valve ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11BUS2R BUS3R 20. GRID 12
+/REQUEST
+PRINTED NUMBER WIDTH, 11, 1, { Return to default column width and separation
+/SOURCE
+14GEN 66500. 50. -2.0508 -1.
+/OUTPUT
+C Step Time BUS2R TACS TACS TACS TACS MODELS
+C BUS3R BUS2 BUS3 VSW DV DV
+C *** Phasor I(0) = -1.5049840E+01 Switch "BUS2 " to "BUS3 " closed in the steady-state.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C *** Open switch "BUS2 " to "BUS3 " after 1.00000000E-06 sec.
+C 1 .1E-5 0.0 64752.0751 64752.0751 0.0 0.0 0.0
+C 2 .2E-5 -506.98951 64680.6667 65187.6562 -506.98951 0.0 -506.98951
+C 3 .3E-5 -1509.364 64544.7937 66054.1577 -1509.364 -506.98951 -1509.364
+C 4 .4E-5 -2482.2238 64430.506 66912.7297 -2482.2238 -1509.364 -2482.2238
+C 5 .5E-5 -3414.3602 64348.9091 67763.2693 -3414.3602 -2482.2238 -3414.3602
+C End of /-card data. The only thing that remains are the various blank
+C cards that terminate the various data classes. Note the one for MODELS
+C (optional for MODELS, but necessary for sorting):
diff --git a/benchmarks/dc17inc1.dat b/benchmarks/dc17inc1.dat
new file mode 100644
index 0000000..4305690
--- /dev/null
+++ b/benchmarks/dc17inc1.dat
@@ -0,0 +1,19 @@
+KARD 2 8 8
+KARG 1 2 3
+KBEG 24 27 3
+KEND 24 32 8
+KTEX 0 0 1
+/REQUEST
+C0 Level-zero comment that precedes the "DIAGNOSTIC" card
+DIAGNOSTIC 0 ? 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+C5 Level-five comment that follows the "DIAGNOSTIC" card
+/BRANCH
+$LISTOFF, ----- Preceding invisible (GEN, TRAN) and (TRAN, TERRA) branches
+ GEN TRAN 5.0 5.E4 3
+ TRAN 1.E4
+$LISTON
+C Ordinary comment card within "INCLDUM" (Blank col. 2)
+93?????? ?????? 30. 3
+$INCLUDE dc17inc2
+ TRAN LOADG 255. 5.E4 3
+ LOADG 1.E-6
diff --git a/benchmarks/dc17inc2.dat b/benchmarks/dc17inc2.dat
new file mode 100644
index 0000000..a1753ef
--- /dev/null
+++ b/benchmarks/dc17inc2.dat
@@ -0,0 +1,11 @@
+ -5.0 -100.
+ -.1 -50.
+ -.02 -45.
+ -.01 -40.
+ -.005 -30.
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
diff --git a/benchmarks/dc17ins.dat b/benchmarks/dc17ins.dat
new file mode 100644
index 0000000..2059029
--- /dev/null
+++ b/benchmarks/dc17ins.dat
@@ -0,0 +1,44 @@
+KARD 14 14
+KARG 2 3
+KBEG 27 3
+KEND 32 8
+KTEX 0 1
+/SOURCE
+14GEN 70. .1591549 -1.
+/SWITCH
+C1 The following extraneous switch is permanently open:
+ TRAN 99999. 1.E6
+/REQUEST
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+/PLOT
+ PRINTER PLOT { Avoid vector plot which would leave no trace in the .LIS file
+ 1931.0 0.0 7.0 TRAN { Axis limits: (-0.140, 3.031)
+ 193 1. 0.0 7.0 GEN TRAN { Axis limits: (-2.544, 3.289)
+/BRANCH
+ GEN TRAN 5.0 5.E4 3
+ TRAN 1.E4
+C Ordinary comment card ...
+93?????? ?????? 30. 3
+ -5.0 -100.
+ -.1 -50.
+ -.02 -45.
+ -.01 -40.
+ -.005 -30.
+C Begin illustration of $DISABLE usage within an INCLUDE file (in fact,
+C this is two levels down, since this INCLUDE is called by dc17inc1.dat).
+C The comments now being read are not part of the test, so they will be seen
+C (even though they have nothing to do with the data of the network). All of
+C the remaining cards except the last one ($ENABLE) will be omitted as data
+C is first read, so there will be no trace in the interpretation of EMTP data
+C cards except for the final card, which will document the number involved.
+$DISABLE
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+$ENABLE
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
diff --git a/benchmarks/dc18.dat b/benchmarks/dc18.dat
new file mode 100644
index 0000000..f833ce5
--- /dev/null
+++ b/benchmarks/dc18.dat
@@ -0,0 +1,384 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-18
+C Artificially concocted sample test of various logical operators of TACS.
+C There is no electric network. Note the unusual use of the TSTART field
+C (columns 61-70) and TSTOP (columns 71-80) of the TACS source cards,
+C which turn the constant source amplitudes on and off during the several
+C steps of this test. A study of the operations involved will show that
+C the variables RESL1 and RESL2 are residuals which should always
+C be zero by logical identity. See DCPR24.DAT for DIAGNOSTIC version.
+C For a DIAGNOSTIC version of the very same data case, refer to DCPR-24.
+ 0.1 2.0
+ 1 1 0 0 1
+TACS STAND ALONE
+ DUMMY +UNITY
+11LGCL1 1. 0.25
+11FST 1. 0.05 0.15
+11SCND 1. 0.25 0.35
+99LGCL4 = FST + SCND
+C 99LGCL4 FST + SCND
+99LGCL2 .NOT. LGCL4
+98NAND LGCL1 .NAND.LGCL2
+98RESL1 .NOT. LGCL1 .OR. LGCL4 - NAND
+98NOR LGCL1 .NOR. LGCL2
+98RESL2 .NOT. LGCL1 .AND. LGCL4 - NOR
+33LGCL1 LGCL2 LGCL4 NAND NOR RESL1 RESL2 FST SCND
+C Step Time TACS TACS TACS TACS TACS TACS TACS TACS TACS
+C LGCL1 LGCL2 LGCL4 NAND NOR RESL1 RESL2 FST SCND
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 0.1 0.0 0.0 1.0 1.0 1.0 0.0 0.0 1.0 0.0
+C 2 0.2 0.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
+C 3 0.3 1.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0
+C 4 0.4 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+BLANK card ending all TACS data cards
+C 20 2.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C Variable maxima : 1.0 1.0 1.0 1.0 1.0 0.0 0.0 1.0 1.0
+C Times of maxima : 0.3 0.2 0.1 0.1 0.1 0.0 0.0 0.1 0.3
+C Variable minima : 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C Times of minima : 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+ PRINTER PLOT
+ 143 .2 0.0 1.0 LGCL1 NOR { Axis limits: (0.000, 1.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd subcase of DC-18 tests various free-format supplemental variables.
+C There is no connection between this and the original test case data.
+C Algebraic and trigonometric computation is done 2 ways: once in high-
+C level expressions (TEST1, TEST2, TEST3), and a second time using a
+C reordered low-level equivalents (X1, .... X11). The two are compared
+C (residual RESID should in theory be zero). As for the following
+C allocation of TACS tables, this is just a modification of the default
+C sizes that were overflowed: 20 90 100 20 30 250 350 60 4
+C The complaint was about Table 6, so this was expanded at expense of 1.
+C 11 March 2001, TACS table number 9 was added for Type-53 devices.
+C This data involves none, so value is immaterial. Default is shown.
+TACS WARN LIMIT, 5, 1.0, { No use other than to illustrate the declaration
+ABSOLUTE TACS DIMENSIONS { Table #: 5 6 7 8 9
+C 10 90 100 20 30 400 350 60 4
+C Expand TACS Table 1 from 57 to 130 on 1 April 2007. Copy use from DC-2
+C without worrying about probably waste that might be involved:
+C 57 256 285 36 85 713 998 171 --- default
+ 130 65 80 20 70 325 120 115 { From DC2.DAT
+ .02 2.0 { Even though no dynamics, vary time to produce nice plots!
+ 1 1 0 0 1 -1
+ 5 5
+TACS STAND ALONE
+99TEST1 = 10.0 * ( UNITY + TIMEX ) ** 2 + 50. { High-level, single-card result
+99X1 = 1.0 + TIMEX { Expression within parentheses on preceding card
+99X2 = X1 * X1 { Mimic exponentiation for special case of square
+99X3 = 10 * X2 + 50 { 3rd of low-level, 3-card equivalent to TEST1
+99TEST2 = 1.E2 * COS ( 2.0 * PI * TEST1 / 100. ) { High-level d1-card result
+99X4 = PI * TEST1 { Beginning terms of trigonometric argument
+99X5 = X4 * .02 { Complete trig argument using modified form of 2/100
+99X6 = COS ( X5 )
+99X7 = X6 * 100. { 4th and final line of low-level equivalent gives TEST2
+99TEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( TEST2 ) )
+99X8 = ABS ( X7 )
+99X9 = SQRT ( X8 )
+99X10 = X9 * 5.5 * TIMEX
+99X11 = X10 + 10 { 4th and final line of low-level equivalent gives TEST3
+99RESID = ABS ( TEST1 - X3 ) + ABS ( TEST2 - X7 ) + ABS ( TEST3 - X11 )
+99NORMAL = GAUSS ( 0.0 ) { Illustrate Gaussian random # generator. October 2010
+ 1TEST4 +TEST3
+ 1.0
+ 0.0 1.0
+99TEST5 = 2.0 * PI * TEST1 / 100.
+99TEST6 = SIN ( TEST5 )
+99UNITY? = 1.E-4 * ( TEST2 * TEST2 + 1.E4 * TEST6 * TEST6 )
+33TEST1 X3 TEST2 X7 TEST3 X11 TEST4 UNITY?RESID NORMAL
+C Column headings for the 10 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 10 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time TACS TACS TACS TACS TACS TACS TACS TACS TACS TACS
+C TEST1 X3 TEST2 X7 TEST3 X11 TEST4 UNITY? RESID NORMAL
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .02 60.404 60.404 -79.383758 -79.383758 10.9800732 10.9800732 .109800732 1.0 0.0 .890624441
+C 2 .04 60.816 60.816 -77.783088 -77.783088 11.9402839 11.9402839 .339004303 1.0 .30198E-13 -.26382016
+BLANK card ending all TACS data cards
+C 95 1.9 134.1 134.1 -54.112125 -54.112125 86.8711868 86.8711868 88.6795836 1.0 0.0 -1.4747572
+C 100 2.0 140. 140. -80.901699 -80.901699 108.939909 108.939909 98.5281276 1.0 0.0 -.47311878
+C Variable maxima : 140. 140. 99.9938856 99.9938856 108.939909 108.939909 98.5281276 1.0 .33396E-12 2.73027422
+C Times of maxima : 2.0 2.0 1.24 1.24 2.0 2.0 2.0 .08 1.82 0.3
+C Variable minima : 0.0 0.0 -80.901699 -80.901699 0.0 0.0 0.0 0.0 0.0 -2.7809904
+C Times of minima : 0.0 0.0 2.0 2.0 0.0 0.0 0.0 0.0 0.0 1.7
+ CALCOMP PLOT { Needed for 2nd stacked case; 1st ended with PRINTER PLOT use
+ 143 .2 0.0 2.0 TEST1 TEST2 TEST3 TEST4
+ PRINTER PLOT
+ 143 .4 0.0 2.0 TEST1 TEST2 TEST4 { Axis limits: (-0.809, 1.400)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 5 subcases is identical to 2nd except that here the pocket
+C calculator is used in place of Dube's logic for supplemental variables
+C of TACS. Answers should be identical except for roundoff error.
+C The plots will be omitted for simplicity.
+C TACS ASSEMBLY LANGUAGE { Temporary request for use of pocket calculator
+TACS POCKET CALCULATOR { 12 January 2001, this new line replaces preceding
+TACS POCKET CALCULATOR ON { 1 February 2002, add this equivalent declaration
+C The two preceding declarations have exactly the same effect. Either or both
+C can be repeated any number of times. Either is simply a request to use the
+C pocket calculator rather than Dube's logic. Making the request more than
+C once has no effect. The ON alternative became effective 1 February 2002.
+C 19 March 2009, add request to prohibit optimization by the pocket calculator.
+C Addition here is purely illustrative. The answer changes only slightly, with
+C near-zero RESID changing to exact zeros on two time steps (for Salford ATP).
+C This is variable (TACS, RESID) which had nonzero values .14211E-13 and
+C .14211E-13 for steps 60 and 70 when there was optimization. WSM.
+$PARAMETER NOOPT=1 { Set optimization of pocket calculator compilation to none
+ABSOLUTE TACS DIMENSIONS
+C 10 90 100 20 30 400 350 60
+C Expand TACS Table 1 from 57 to 130 on 1 April 2007. Copy use from DC-2
+C without worrying about probably waste that might be involved:
+C 57 256 285 36 85 713 998 171 --- default
+ 130 65 80 20 70 325 120 115 { From DC2.DAT
+ .02 2.0 { Even though no dynamics, vary time to produce nice plots!
+ 1 1 0 0 1 -1
+ 5 5
+TACS STAND ALONE
+99TEST1 = 10.0 * ( UNITY + TIMEX ) ** 2 + 50. { High-level, single-card result
+99X1 = 1.0 + TIMEX { Expression within parentheses on preceding card
+99X2 = X1 * X1 { Mimic exponentiation for special case of square
+99X3 = 10 * X2 + 50 { 3rd of low-level, 3-card equivalent to TEST1
+99TEST2 = 1.E2 * COS ( 2.0 * PI * TEST1 / 100. ) { High-level d1-card result
+99X4 = PI * TEST1 { Beginning terms of trigonometric argument
+99X5 = X4 * .02 { Complete trig argument using modified form of 2/100
+99X6 = COS ( X5 )
+99X7 = X6 * 100. { 4th and final line of low-level equivalent gives TEST2
+99TEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( TEST2 ) )
+99X8 = ABS ( X7 )
+99X9 = SQRT ( X8 )
+99X10 = X9 * 5.5 * TIMEX
+99X11 = X10 + 10 { 4th and final line of low-level equivalent gives TEST3
+99RESID = ABS ( TEST1 - X3 ) + ABS ( TEST2 - X7 ) + ABS ( TEST3 - X11 )
+ 1TEST4 +TEST3
+ 1.0
+ 0.0 1.0
+99TEST5 = 2.0 * PI * TEST1 / 100.
+99TEST6 = SIN ( TEST5 )
+99UNITY? = 1.E-4 * ( TEST2 * TEST2 + 1.E4 * TEST6 * TEST6 )
+33TEST1 X3 TEST2 X7 TEST3 X11 TEST4 UNITY?RESID
+BLANK card ending all TACS data cards
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 5 subcases documents the data of MATHCOMP as first mentioned
+C in the April, 1997 newsletter. The data shown here demonstrates use
+C of the pocket calculator rather than compiled TACS, however. This is
+C the data that was used to estimate improved speed compared with Dube's
+C code for handling supplemental variables (see July, 2001, newsletter).
+C TACS POCKET CALCULATOR { Use pocket calculator rather than Dube's logic (default)
+C 2 February 2002, remove the preceding line by commenting. This has no
+C effect on the answer. In fact, the TPC declaration of the 3rd subcase will
+C remain in effect. The TPC declaration has an effect here if and only if no
+C preceding subcase had one. Any TPC declaration remains in effect for all
+C later data unless cancelled by a TPC OFF declaration (see DCN21.DAT).
+C $DEPOSIT, KOMPAR=1 { Use SPY DEPOSIT to change STARTUP value so elapsed times
+C For benchmark purposes, enable the preceding statement. Regardless
+C of the value of KOMPAR in STARTUP, this will gives elapsed times at
+C the end of execution.
+C Add NLS (following 7 noncomment cards) on 8 March 2003 to prove it works.
+C In fact, dimensions are unchanged from LISTSIZE.333 as used for RUN.BAT
+NEW LIST SIZES { Request for a change to program table sizes (VARDIM input)
+DEFAULT 3.0 { Any blank field will be converted to 3 times default value
+BLANK card for lists 1-10.
+BLANK card for lists 11-20.
+BLANK card for lists 21-30.
+ 200 300 { Optional card for Lists 31, etc.
+ 240000 742 { Offsets for supporting programs (non-simulation overlays)
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ABSOLUTE TACS DIMENSIONS
+ 10 90 100 20 60 1600 350 120
+C .00002 2.0 { Original line gives 100K steps of July, 2001, newsletter
+ .002 2.0 { For standard test cases, speed execution by factor of 100
+ 1 -11 0 0 1 -1
+C 5 5 20 20 100 100 1000 1000 10000 10000
+ 5 5 20 20 100 100 { Preceding was for 100K steps
+TACS STAND ALONE
+99TEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99TEST2 = 1.E2 * COS ( 2.0 * 3.14159 * TEST1 / 100. )
+99TEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( TEST2 ) )
+99TEST5 = 2.0 * PI * TEST1 / 100.
+99TEST6 = 2.0 * SIN ( TEST5 ) { Show that in-line comments are allowed
+99TWOA = 2.E-4 * ( TEST2 * TEST2 + 2500. * TEST6 * TEST6 )
+99BEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99BEST2 = 1.E2 * COS ( 2.0 * 3.14159 * BEST1 / 100. )
+99BEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( BEST2 ) )
+99BEST5 = 2.0 * PI * BEST1 / 100.
+99BEST6 = 2.0 * SIN ( BEST5 )
+99TWOB = 2.E-4 * ( BEST2 * BEST2 + 2500. * BEST6 * BEST6 )
+99ZEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99ZEST2 = 1.E2 * COS ( 2.0 * 3.14159 * ZEST1 / 100. )
+99ZEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( ZEST2 ) )
+99ZEST5 = 2.0 * PI * ZEST1 / 100.
+99ZEST6 = 2.0 * SIN ( ZEST5 )
+99TWOC = 2.E-4 * ( ZEST2 * ZEST2 + 2500. * ZEST6 * ZEST6 )
+99REST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99REST2 = 1.E2 * COS ( 2.0 * 3.14159 * REST1 / 100. )
+99REST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( REST2 ) )
+99REST5 = 2.0 * PI * REST1 / 100.
+99REST6 = 2.0 * SIN ( REST5 )
+99TWOD = 2.E-4 * ( REST2 * REST2 + 2500. * REST6 * REST6 )
+99DEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99DEST2 = 1.E2 * COS ( 2.0 * 3.14159 * DEST1 / 100. )
+99DEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( DEST2 ) )
+99DEST5 = 2.0 * PI * DEST1 / 100.
+99DEST6 = 2.0 * SIN ( DEST5 )
+99TWOE = 2.E-4 * ( DEST2 * DEST2 + 2500. * DEST6 * DEST6 )
+99FEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99FEST2 = 1.E2 * COS ( 2.0 * 3.14159 * FEST1 / 100. )
+99FEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( FEST2 ) )
+99FEST5 = 2.0 * PI * FEST1 / 100.
+99FEST6 = 2.0 * SIN ( FEST5 )
+99TWOF = 2.E-4 * ( FEST2 * FEST2 + 2500. * FEST6 * FEST6 )
+99GEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99GEST2 = 1.E2 * COS ( 2.0 * 3.14159 * GEST1 / 100. )
+99GEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( GEST2 ) )
+99GEST5 = 2.0 * PI * GEST1 / 100.
+99GEST6 = 2.0 * SIN ( GEST5 )
+99TWOG = 2.E-4 * ( GEST2 * GEST2 + 2500. * GEST6 * GEST6 )
+99HEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99HEST2 = 1.E2 * COS ( 2.0 * 3.14159 * HEST1 / 100. )
+99HEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( HEST2 ) )
+99HEST5 = 2.0 * PI * HEST1 / 100.
+99HEST6 = 2.0 * SIN ( HEST5 )
+99TWOH = 2.E-4 * ( HEST2 * HEST2 + 2500. * HEST6 * HEST6 )
+99LEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99LEST2 = 1.E2 * COS ( 2.0 * 3.14159 * LEST1 / 100. )
+99LEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( LEST2 ) )
+99LEST5 = 2.0 * PI * LEST1 / 100.
+99LEST6 = 2.0 * SIN ( LEST5 )
+99TWOI = 2.E-4 * ( LEST2 * LEST2 + 2500. * LEST6 * LEST6 )
+99MEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99MEST2 = 1.E2 * COS ( 2.0 * 3.14159 * MEST1 / 100. )
+99MEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( MEST2 ) )
+99MEST5 = 2.0 * PI * MEST1 / 100.
+99MEST6 = 2.0 * SIN ( MEST5 )
+99TWOJ = 2.E-4 * ( MEST2 * MEST2 + 2500. * MEST6 * MEST6 )
+33MEST1 MEST2 MEST3 MEST5 MEST6 TWOJ { Outputs are for 10th of 10 data sets
+BLANK card ending all TACS data cards
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 5 subcases documents the use of IF blocks within TACS. This
+C began 14 March 2001 when most-primitive IF-THEN-ELSE-ENDIF first
+C produced correct answers. The pocket calculator is required (do not
+C try to execute after removing the TPC declaration below).
+C DIAGNOSTIC 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 9 { Make comment 22 Apr 07
+TACS POCKET CALCULATOR { Use pocket calculator for TACS supplemental variables
+ .02 .14
+ 1 -1
+TACS STAND ALONE
+C Begin with simplest of block IF statements: IF-THEN-ELSE-ENDIF:
+IF( TIMEX .LE. 0.08 ) THEN { If simulation time T does not exceed 4 * dT:
+99X1 = 1.0 + TIMEX { Formula for steps 1 thru 4 will produce a ramp up
+ELSE { Alternatively (if simulation time T does exceed 4 * dT):
+99X1 = 1.16 - TIMEX { Formula for steps 5, 6, and 7 will produce ramp down
+ENDIF { Terminate 5-line block that chooses among 2 formulas for supplemental X1
+C As 2nd illustration, add ELSEIF to preceding illustration, and
+C make the resulting signal more interesting. First, ramp it up. Then,
+C in the middle, will be a flat top. Finally, ramp it back down to
+C where it began. This enhancement became operational March 16th:
+IF( TIMEX .LE. 0.04 ) THEN { If simulation time T does not exceed 2 * dT:
+99X2 = 1.0 + TIMEX { For steps 1 and 2, assign values 1.02 and 1.04
+ELSEIF( TIMEX .LE. 0.08 ) THEN { If simulation time T is either 3*dT or 4*dT:
+99X2 = 1.06 { For steps 3 and 4, assign flat top value of 1.06
+ELSE { Alternatively (if simulation time T does exceed 4 * dT):
+99X2 = 1.06 - ( TIMEX - 0.08 ) { For steps 5 thru 7: 1.04, 1.02, and 1.0
+ENDIF { Terminate 7-line block that chooses among 3 formulas for supplemental X2
+28SOUR28 DEV69D { Cols. 41-46 carries user name
+C Add the preceding Type-28 TACS source, which is defined in user-supplied TACS
+C source code of SUBROUTINE DEVT69. This is disconnected from rest of data.
+C Addition here on 30 January 2003 simply confirms function DEV69D of the UTPF.
+C Since the Type-28 source is only defined within the dT loop, step 0 will
+C show value zero. If the user is unhappy with this, the following initial
+C condition (now commented out) will provide continuity:
+C 77SOUR28 .75 { Initial condition on the Type-28 function avoids zero
+ 1TEST4 +X2
+ 1.0
+ 0.0 1.0
+33X1 X2 TEST4 SOUR28
+BLANK card ending all TACS data cards
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 6 subcases documents is the same as the 4th except that List 32
+C is made too small for the data. Added 9 March 2003, this demonstrates
+C rejection if the new variable limit LSIZ32 is inadequate -- but only
+C for F95 (Lahey). For F77, the 20 below is ignored. For F77, the size
+C of tables of the pocket calculator remain fixed at 200. For F77, this
+C data demonstrates that any attempt to restrict List 31 is ignored. To
+C simplify, drop extrema and limit output to T-max = 10 * dT.
+NEW LIST SIZES { Request for a change to program table sizes (VARDIM input)
+DEFAULT 3.0 { Any blank field will be converted to 3 times default value
+BLANK card for lists 1-10.
+BLANK card for lists 11-20.
+BLANK card for lists 21-30.
+ 200 20 { Optional card for Lists 31, etc.
+ 240000 742 { Offsets for supporting programs (non-simulation overlays)
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ABSOLUTE TACS DIMENSIONS
+ 10 90 100 20 60 1600 350 120
+C .00002 2.0 { Original line gives 100K steps of July, 2001, newsletter
+ .002 .02 { 10 steps is more than enough to demonstrate LSIZ32 limit
+ 1 -11 0 0 0 -1
+ 5 5
+TACS STAND ALONE
+99TEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99TEST2 = 1.E2 * COS ( 2.0 * 3.14159 * TEST1 / 100. )
+99TEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( TEST2 ) )
+99TEST5 = 2.0 * PI * TEST1 / 100.
+99TEST6 = 2.0 * SIN ( TEST5 ) { Show that in-line comments are allowed
+99TWOA = 2.E-4 * ( TEST2 * TEST2 + 2500. * TEST6 * TEST6 )
+99BEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99BEST2 = 1.E2 * COS ( 2.0 * 3.14159 * BEST1 / 100. )
+99BEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( BEST2 ) )
+99BEST5 = 2.0 * PI * BEST1 / 100.
+99BEST6 = 2.0 * SIN ( BEST5 )
+99TWOB = 2.E-4 * ( BEST2 * BEST2 + 2500. * BEST6 * BEST6 )
+99ZEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99ZEST2 = 1.E2 * COS ( 2.0 * 3.14159 * ZEST1 / 100. )
+99ZEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( ZEST2 ) )
+99ZEST5 = 2.0 * PI * ZEST1 / 100.
+99ZEST6 = 2.0 * SIN ( ZEST5 )
+99TWOC = 2.E-4 * ( ZEST2 * ZEST2 + 2500. * ZEST6 * ZEST6 )
+99REST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99REST2 = 1.E2 * COS ( 2.0 * 3.14159 * REST1 / 100. )
+99REST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( REST2 ) )
+99REST5 = 2.0 * PI * REST1 / 100.
+99REST6 = 2.0 * SIN ( REST5 )
+99TWOD = 2.E-4 * ( REST2 * REST2 + 2500. * REST6 * REST6 )
+99DEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99DEST2 = 1.E2 * COS ( 2.0 * 3.14159 * DEST1 / 100. )
+99DEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( DEST2 ) )
+99DEST5 = 2.0 * PI * DEST1 / 100.
+99DEST6 = 2.0 * SIN ( DEST5 )
+99TWOE = 2.E-4 * ( DEST2 * DEST2 + 2500. * DEST6 * DEST6 )
+99FEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99FEST2 = 1.E2 * COS ( 2.0 * 3.14159 * FEST1 / 100. )
+99FEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( FEST2 ) )
+99FEST5 = 2.0 * PI * FEST1 / 100.
+99FEST6 = 2.0 * SIN ( FEST5 )
+99TWOF = 2.E-4 * ( FEST2 * FEST2 + 2500. * FEST6 * FEST6 )
+99GEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99GEST2 = 1.E2 * COS ( 2.0 * 3.14159 * GEST1 / 100. )
+99GEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( GEST2 ) )
+99GEST5 = 2.0 * PI * GEST1 / 100.
+99GEST6 = 2.0 * SIN ( GEST5 )
+99TWOG = 2.E-4 * ( GEST2 * GEST2 + 2500. * GEST6 * GEST6 )
+99HEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99HEST2 = 1.E2 * COS ( 2.0 * 3.14159 * HEST1 / 100. )
+99HEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( HEST2 ) )
+99HEST5 = 2.0 * PI * HEST1 / 100.
+99HEST6 = 2.0 * SIN ( HEST5 )
+99TWOH = 2.E-4 * ( HEST2 * HEST2 + 2500. * HEST6 * HEST6 )
+99LEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99LEST2 = 1.E2 * COS ( 2.0 * 3.14159 * LEST1 / 100. )
+99LEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( LEST2 ) )
+99LEST5 = 2.0 * PI * LEST1 / 100.
+99LEST6 = 2.0 * SIN ( LEST5 )
+99TWOI = 2.E-4 * ( LEST2 * LEST2 + 2500. * LEST6 * LEST6 )
+99MEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99MEST2 = 1.E2 * COS ( 2.0 * 3.14159 * MEST1 / 100. )
+99MEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( MEST2 ) )
+99MEST5 = 2.0 * PI * MEST1 / 100.
+99MEST6 = 2.0 * SIN ( MEST5 )
+99TWOJ = 2.E-4 * ( MEST2 * MEST2 + 2500. * MEST6 * MEST6 )
+33MEST1 MEST2 MEST3 MEST5 MEST6 TWOJ { Outputs are for 10th of 10 data sets
+BLANK card ending all TACS data cards
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc19.dat b/benchmarks/dc19.dat
new file mode 100644
index 0000000..d803ae7
--- /dev/null
+++ b/benchmarks/dc19.dat
@@ -0,0 +1,355 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-19
+C Test of the control of TACS sources by node voltages and switch currents
+C of the electric network. The electric network has no dynamics, with both
+C the node voltage and switch current equal to one half, always. TACS
+C supplemental variable GENT adds these to give unity. The output signal
+C is then passed through a function block 1/(1+S) to give ELEMT, and
+C through a S/(1+S) block to give GT/ELT. There also is a disconnected
+C validation of the Type-17 electric network source, which provides for
+C modulation of the following source function by a TACS variable. For use
+C here, the TACS variable is the constant TWO = 2.0 --- easy to verify.
+ .05 2.0
+ 1 1 1 1 1
+TACS HYBRID
+ 1ELEMT +GENT
+ 1.0
+ 1.0 1.0
+ 1GT/ELT +GENT
+ 1.0
+ 1.0 1.0
+90BUS2
+91BUS1
+11TWO 2.0 { Constant for modulation of electric network COSINE
+99GENT = BUS1 + BUS2
+33ELEMT GENT GT/ELTBUS1 BUS2
+BLANK card ending all TACS data
+ BUS3 BUS2 1.0
+ BUS2 BUS1 1.0
+ COSINE 1.0 { Dummy branch connects source of interest
+ SURGE 1.0 { Dummy branch connects Type-15 surge function
+ TAKUSG 1.0 { Dummy branch for Taku Noda's Type-15 surge
+BLANK card ending electric network branches
+ BUS1 MEASURING 1
+BLANK card ending switches
+11BUS3 1.0
+17TWO { The constant 2.0 of TACS multiplies following 1/2 to give unity:
+14COSINE 0.5 0.5 { Cosine starts at peak 0.5, and also ends there
+15SURGE 2.0 -1.0 -3.0 { Surge function is a smooth pulse > 0
+15TAKUSG 2.0 -1.0 -3.0 -6666. { Same except 2.0 = peak valu
+BLANK card ending electric network source cards.
+C Step Time BUS1 BUS2 BUS3 COSINE SURGE TAKUSG BUS1 TACS TACS TACS
+C TERRA ELEMT GENT GT/ELT
+C *** Switch "BUS1 " to " " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .05 0.0 0.5 1.0 0.0 .181042896 .470363242 0.5 .024390244 1.0 .975609756
+ 1
+C 39 1.95 0.0 0.5 1.0 .987688341 .278788345 .724313367 0.5 .854137166 1.0 .145862834
+C 40 2.0 0.0 0.5 1.0 1.0 .265713062 .690342786 0.5 .861252427 1.0 .138747573
+C maxima : 0.0 0.5 1.0 1.0 .769799804 1.99999856 0.5 .861252427 1.0 .975609756
+C maxima : 0.0 .05 .05 2.0 .55 .55 .05 2.0 .05 .05
+ PRINTER PLOT
+ 143 .4 0.0 2.0 SURGE COSINE { Axis limits: (-1.000, 1.000)
+ 193 .4 0.0 2.0 TACS GT/ELTTACS ELEMT { Axis limits: (0.000, 9.756)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 5 subcases of DC-19 tests important supplemental variable functions
+C Unlike 1st, there is no electric network (in theory). In practice, ATP
+C will automatically supply a dummy electric network. This is since around
+C 1993 when TACS STAND ALONE was internally converted to TACS HYBRID.
+ .100 6.0
+ 1 1 0 1 0 0 0 0
+TACS STAND ALONE
+ X2 -X3 +TQ 6.6667 -100. 0.2
+ 1X3 +X2 0.0 1.05
+ 1.0
+ 0.0 1.
+11TQ 1.0 0.0
+98SUPVAR = 0.4 * ( ABS(X3) + 1.E-6 ) ** 3.0 * 2.0
+26T { Type-26 is given value equal to ATP variable in columns 3-8
+33X2 X3 T SUPVAR
+C Step Time TACS TACS TACS TACS
+C X2 X3 T SUPVAR
+C 0 0.0 0.0 0.0 0.0 0.0
+C 1 0.1 0.2 .01 0.1 .80024E-6
+C 2 0.2 0.2 .03 0.2 .216022E-4
+BLANK card ending all TACS data cards
+C 58 5.8 .203206E-4 .999997968 5.8 .799997523
+C 59 5.9 .677346E-5 .999999323 5.9 .800000774
+C 60 6.0 .22578E-5 .999999774 6.0 .800001858
+ PRINTER PLOT
+ 143 1. 0.0 6.0 X2 SUPVAR { Axis limits: (0.000, 8.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 5 subcases consists only of Type-15 lightning functions, including
+C both old (the 2-exponential surge function) and new (Bernd Stein of FGH)
+C models. Bernd's FGH improvement is documented in a letter dated 30.7.86
+C Smoothing of plot data points after 50 ups and downs is also illustrated.
+ 1.0E-8 3.E-6
+ 1 1 1 1 1 -1 1
+ 5 5 20 20
+ LIGHTN 1.0
+ ALGHTN 1.0
+ LIGHT1 1.0
+ ALGHT1 1.0
+ ALGHT2 1.0
+ ALGHT3 1.0
+ STAN1 1.0 { Resistor for Standler surge added 29 Sept 00
+ STAN2 1.0 { Resistor for 2nd Standler surge added 27 Oct 00
+ TWOE1 1.0 { Resistor for TWO EXP surge added 19 Jan 01
+ TWOE2 1.0 { Resistor for 2nd TWO EXP surge added 19 Jan 01
+ HEID1 1.0 { Resistor for Heidler surge added 19 Jan 01
+ HEID2 1.0 { Resistor for 2nd Heidler surge added 19 Jan 01
+C Orlando Hevia mentions legality and danger of negative L of series R-L-C.
+C Add a branch to illustrate as mentioned in newsletter dated January, 2001
+ HEVIA 10.E3 -3.0 { Series R-L with negative L } 1
+BLANK card ending electric network branches
+BLANK card ending switches
+15ALGHTN-1 1.0 2.E-6 50.E-6 5.0
+15LIGHTN-1 1.0 -20000. -500000.
+15ALGHT2-1 1.0 2.E-6 50.E-6 10.0
+15ALGHT1-1 1.0 2.E-6 50.E-6 5.0
+15LIGHT1-1 1.0 -20000. -500000.
+15ALGHT3-1 1.0 2.E-6 50.E-6 10.0
+C 345678901234567890123456789012345678901234567890
+C <--- Off-line Standler 3F10.0 ->
+15STAN1 -1 0.6 20.E-6 0.04 Standler { "Standler" is same as -7777
+C C A B { Identify of 3 Standler parameters
+C <--- In-line Standler 4F8.0 ---><-Request word-> <T-start >< T-stop >
+C T1 T2 Perc peak
+15STAN2 -1 1.0E-6 20.0E-6 0.0 1.000 Standler in-line 0.0 1.0
+C
+C <--- Off-line Two exp 3F10.0 ->
+15TWOE1 -1 1.20 -36000.0 -5.0E+6 { it is an old two exp source
+C C A B { Identify of 3 Two exp parameters
+C <--- In-line Two exp 4F8.0 ---><-Request word-> <T-start >< T-stop >
+C T1 T2 Perc peak
+15TWOE2 -1 1.0E-6 20.0E-6 0.0 1.0 Two exp in-line 0.0 1.0
+C
+C <--- Off-line Heidler 3F10.0 -->
+15HEID1 -1 0.6 1.0E-06 3.0E-5 5.0 { it is an old Heidler source
+C C A B N { Identify of 4 Heidler parameters
+C <-Heidler in line 4F8.0 ---><-key----------><><T-start >< T-stop >
+C T1 T2 Perc peak N
+15HEID2 -1 1.0E-6 20.0E-6 0.0 1.000 Heidler in-line 5 0.0 1.0
+C
+14HEVIA 1.0 60. { Voltage source is shorted at 1 us } 1.E-6
+BLANK card ending electric network source cards.
+ STAN1 STAN2 ALGHT2ALGHT1LIGHT1ALGHTNLIGHTNALGHT3HEID1 HEID2 TWOE1 TWOE2
+C First 12 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time STAN1 STAN2 ALGHT2 ALGHT1 LIGHT1 ALGHTN LIGHTN ALGHT3 HEID1 HEID2
+C
+C
+C TWOE1 TWOE2 HEVIA
+C TERRA
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0
+C 1 .1E-7 .442479244 .855069065 .25405E-20 .812971E-4 957.508161 .406485E-9 .004787541 .50811E-15 .930195E-8 .140651E-7
+C .058092768 .04993186 -.16949E-5
+C 2 .2E-7 .454691626 .88074615 .2601E-17 .002438392 -4.9670744 .130049E-7 .009550246 .51918E-12 .297563E-6 .449919E-6
+C .113331409 .097441938 -.51422E-5
+C 3 .3E-7 .461895211 .895961187 .14996E-15 .01470791 952.565899 .987364E-7 .01428824 .28952E-10 .225886E-5 .34153E-5
+C .165855128 .142646809 -.87063E-5
+C 4 .4E-7 .467007506 .906801471 .26623E-14 .048743046 -9.8846491 .415991E-6 .019001647 .473526E-9 .951554E-5 .143866E-4
+C .21579634 .185657436 -.12391E-4
+C 5 .5E-7 .470959015 .91521116 .2479E-13 .121908619 947.672889 .126925E-5 .023690588 .395202E-8 .290285E-4 .43887E-4
+C .263281003 .226579442 -.16201E-4
+BLANK card ending output requests
+C 260 .26E-5 .48556872 .972472279 .991750958 -15.735499 -362.71992 .993881314 .676797074 -18.724315 .572623725 .949657569
+C 1.09277363 .94980214 -.55047746
+C 280 .28E-5 .482164403 .967184298 .987942471 -17.163302 -375.61152 .990578487 .698942172 -19.269102 .568828878 .942698718
+C 1.08493561 .942824605 -1.0722499
+C 300 .3E-5 .478686003 .961711993 .984066679 -17.995991 -387.2694 .987055255 .718634373 -19.452928 .565055727 .935784527
+C 1.07715275 .935897248 -2.0885866
+C Variable maxima : .506829483 1.00000002 1.0 1757.33053 957.508161 1.0 .718634373 2231.07839 0.6 1.0
+C 1.14948506 .999999945 0.0
+C Times of maxima : .8E-6 .1E-5 .2E-5 .7E-6 .1E-7 .2E-5 .3E-5 .113E-5 .1E-5 .1E-5
+C .99E-6 .1E-5 0.0
+C Variable minima : 0.0 0.0 0.0 -17.995991 -387.2694 0.0 0.0 -19.452928 0.0 0.0
+C 0.0 0.0 -2.0885866
+C Times of minima : 0.0 0.0 0.0 .3E-5 .3E-5 0.0 0.0 .3E-5 0.0 0.0
+C 0.0 0.0 .3E-5
+ PRINTER PLOT
+ 145 .4 0.0 3.0 LIGHTNALGHTNALGHT2 { Plot limits: (0.000, 1.000)
+ 145 .4 0.0 3.0 LIGHT1ALGHT1ALGHT3 { Plot limits: (-0.110, 2.231)
+C 145 .4 0.0 3.0 STAN1 STAN2
+C 145 .4 0.0 3.0 HEID1 HEID2
+C 145 .4 0.0 3.0 TWOE1 TWOE2
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 5 subcases was added 17 September 1999 to illustrate delayed
+C opening of a Type-13 TACS-controlled switch. There are two parallel,
+C identical circuits on the electrical side. A sinusoidal source drives
+C current through a series R-L branch. The old logic is illustrated by
+C the QUICK alternative whereas the new is the DELAY alternative.
+C The new optional DO NOT OPEN UNTIL CURRENT 0 is illustrated by the
+C latter of these two: opening will be delayed until current passes
+C through zero. Both circuits oscillate following opening because both
+C have a hanging inductor. But QUICK opens first, and it oscillates
+C more. The graph is distinctive.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .0004 .010
+ 1 1
+TACS HYBRID
+14CLAMP 100. 50. 30. 0. -1.
+33CLAMP
+BLANK card ending TACS
+ GEN QUICK 10. 4. { Series R-L will oscillate when opened
+ GEN DELAY 10. 4.
+BLANK card ending branches
+13DELAY Do not open until current 0 CLOSED CLAMP 11
+$DISABLE
+C The preceding involves a high-level, English-language declaration. It
+C is equivalent to the following low-level, numeric declation.
+13RESIS -77333. CLOSED CLAMP 11
+C I.e., the data field of otherwise-unused columns 25-34 can be used to
+C hold the special numeric value. About the English, this must begin
+C to the right of column 24. If 55-60 are used as here for CLOSED, the
+C beginning of "do not open until current 0" can be delayed at most 3
+C columns (note 3 blanks between ending 0 and start of CLOSED). Case is
+C arbitrary (note 1st letter has been made upper case on switch card).
+$ENABLE
+13QUICK CLOSED CLAMP 11
+BLANK card ending switches
+14GEN 100. 50. 0.0 0. -1.
+BLANK card ending sources
+ GEN QUICK DELAY
+BLANK card ending voltage printout
+ CALCOMP PLOT { Needed to cancel PRINTER PLOT of preceding subcase
+ SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 144 1. 0.0 10. GEN DELAY QUICK { First, three node voltages
+ 194 1. 0.0 10.-200.200.TACS CLAMP { 2nd of 2 in overlay is I-branch
+BLANK card ending plot
+BEGIN NEW DATA CASE
+C 5th of 5 subcases was added 28 July 2002 to illustrate 3 new source
+C types: CIGRE, CESI, and USRFUN. These are all special sub-types
+C within the Type-15 source. The supporting code comes from Orlando P.
+C Hevia of UTN in Santa Fe, Argentina. For an alternate and different
+C illustration of the USRFUN alternative, see DC-5. For comments
+C about required precision, see note following this subcase.
+ .05E-6 10.E-6 { Hevia used dT = 1.0E-9, but such detail is not needed
+ 1 1 1 1 -1
+ 5 5 20 20
+ CESI1 1.0
+ CESI2 1.0
+ CIGRE1 1.0
+ CIGRE4 1.0
+ USER2 1.0
+ USER8 1.0 { Add another USRFUN test on 10 December 2002
+BLANK card ending branch cards
+BLANK card ending switch cards (none for this data)
+C CORRENTE DI CRESTA -0.001 [kA]
+C TEMPO DI CRESTA 1 [us]
+C TEMPO EMIVALORE 10 [us]
+C GENERATORI EQUIVALENTI FRONTE
+15CESI1 -1 1.5 1.0E-6 10.0-6 CESI
+15CESI2 -1 -1.2 1.0E-6 10.0-6 CESI
+15CIGRE1 1.0 1.0E-6 10.0E-6 CIGRE 20.0E+5 0.5E-6 9.5E-6
+15CIGRE4 1.0 1.0E-6 10.0E-6 CIGRE 50.0E+5 0.5E-6 9.5E-6
+15USER2 2.0 USRFUN
+15USER8 8.0 USRFUN
+BLANK card ending electric network sources
+ 1 { Request for all possible node voltage outputs (here, just 4)
+ CALCOMP PLOT
+ 145 .5 0.0 5.0 CESI1 CESI2 USER2 CIGRE1
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+Warning about the preceding. The CIGRE1 output depends greatly on arithmetic
+precision. Even 64 bits seems inadequate since turning the Salford debugger
+on and off (minor update using SUBR5) results in the following differences.
+Note that the 3rd row is what will be published in a future newsletter. The
+CIGRE1 value on step 40 rises from .661 to .668 when the debugger is
+turned on.
+
+FC version 2.0 - Copyright (c) 1990 Mike Albert Wed Aug 21 14:08:13 2002
+Options are: -c1 -ds5 -t8
+
+Compare files:
+ dc19.lis 71885 8-21-102 2:07p
+ dc19.sal 71885 8-21-102 1:48p
+
+Changed lines 859-868
+ > 15 .75E-6 1.000594 -.800475 .0648095 .0662431 .0783034
+ > 20 .1E-5 1.477403 -1.18192 .1299899 .1324862 .1044063
+ > 40 .2E-5 1.338601 -1.07088 .668485 .4280678 .2093254
+ > 60 .3E-5 1.23813 -.990504 .9529333 .9505637 .3267037
+ > 80 .4E-5 1.167656 -.934125 .8811803 .8800206 .5541328
+ > 100 .5E-5 1.104946 -.883957 .8148301 .8147126 .9983771
+ > 120 .6E-5 1.044245 -.835396 .7534758 .7542513 .9931261
+ > 140 .7E-5 .9840634 -.787251 .6967413 .6982769 .9835613
+ > 160 .8E-5 .9240164 -.739213 .6442788 .6464564 .9740871
+ > 180 .9E-5 .8640042 -.691203 .5957665 .5984817 .9647042
+To
+ > 15 .75E-6 1.000594 -.800475 .0644145 .0662431 .0783034
+ > 20 .1E-5 1.477403 -1.18192 .1291901 .1324862 .1044063
+ > 40 .2E-5 1.338601 -1.07088 .661331 .4280678 .2093254
+ > 60 .3E-5 1.23813 -.990504 .9533223 .9505637 .3267037
+ > 80 .4E-5 1.167656 -.934125 .88154 .8800206 .5541328
+ > 100 .5E-5 1.104946 -.883957 .8151627 .8147126 .9983771
+ > 120 .6E-5 1.044245 -.835396 .7537834 .7542513 .9931261
+ > 140 .7E-5 .9840634 -.787251 .6970257 .6982769 .9835613
+ > 160 .8E-5 .9240164 -.739213 .6445418 .6464564 .9740871
+ > 180 .9E-5 .8640042 -.691203 .5960097 .5984817 .9647042
+
+Changed line 872
+ >Variable maxima : 1.497392 0.0 .999673 .9989941 .9999945
+To
+ >Variable maxima : 1.497392 0.0 .9997968 .9989941 .9999945
+
+Comparison complete
+
+21 August 2002, remove from before the 5th, which was not being executed:
+BLANK ----------------- Protect following 4th data subcase from execution
+C Note: Following is copy of 3rd subcase between October, 1990, and
+C July, 1991. It was wrong during 9 months. The solution
+C prior to October, 1990, was kept below here, and discovered
+C to be correct once again on July 22, 1991. So, it would
+C seem that Guido's "correction" of Oct, 1990, was wrong, and
+C during the spring or summer of 1991 he merely corrected the
+C correction. Well, as history, we keep the wrong data:
+C 3rd of 3 subcases consists only of Type-15 lightning functions, including
+C both old (the 2-exponential surge function) and new (Bernd Stein of FGH)
+C models. Bernd's FGH improvement is documented in a letter dated 30.7.86
+C Smoothing of plot data points after 50 ups and downs is also illustrated.
+C Comment cards altered 23 Oct 1990. Original contents preserved below
+C as 4th data subcase until Bernd Stein approves of changes.
+ 1.E-8 300.E-8
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ LIGHTN 1.0
+ ALGHTN 1.0
+ LIGHT1 1.0
+ ALGHT1 1.0
+ ALGHT2 1.0
+ ALGHT3 1.0
+BLANK card ending electric network branches
+BLANK card ending switches
+15ALGHTN-1 1.0 2.E-6 50.E-6 5.0
+15LIGHTN-1 1.0 -20000. -500000.
+15ALGHT2-1 1.0 2.E-6 50.E-6 10.0
+15ALGHT1-1 1.0 2.E-6 50.E-6 5.0
+15LIGHT1-1 1.0 -20000. -500000.
+15ALGHT3-1 1.0 2.E-6 50.E-6 10.0
+BLANK card ending electric network source cards.
+C Step Time ALGHT2 ALGHT1 LIGHT1 ALGHTN LIGHTN ALGHT3
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-7 .26503E-20 .853443E-4 957.508161 .426722E-9 .004787541 .53005E-15
+C 2 .2E-7 .27133E-17 .002559784 -4.9670744 .136524E-7 .009550246 .54161E-12
+C 3 .3E-7 .15643E-15 .015440124 952.565899 .103652E-6 .01428824 .30202E-10
+C 4 .4E-7 .27773E-14 .051169655 -9.8846491 .436701E-6 .019001647 .493979E-9
+ 1
+C 300 .3E-5 1.02657121 -18.891898 -387.2694 1.03619451 .718634373 -20.293153
+C maxima : 1.04319273 1844.81694 957.508161 1.0497837 .718634373 2327.44477
+C Times of max : .2E-5 .7E-6 .1E-7 .2E-5 .3E-5 .113E-5
+C minima : 0.0 -18.891898 -387.2694 0.0 0.0 -20.293153
+C Times of min : 0.0 .3E-5 .3E-5 0.0 0.0 .3E-5
+ PRINTER PLOT
+ 145 .4 0.0 3.0 LIGHTNALGHTNALGHT2 { Plot limits: (0.000, 1.050)
+ 145 .4 0.0 3.0 LIGHT1ALGHT1ALGHT3 { Plot limits: (-0.110, 2.327)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+
diff --git a/benchmarks/dc2.dat b/benchmarks/dc2.dat
new file mode 100644
index 0000000..228b3ef
--- /dev/null
+++ b/benchmarks/dc2.dat
@@ -0,0 +1,1024 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-2
+C 2nd of 4 hvdc cases is for a 2-terminal, 2-pole representation like DC-1,
+C only with just 2 of the 3 bridges used per pole, and with the 7th (bypass)
+C valve removed from each bridge. Data is a little smaller, then. The end
+C time of the simulation is much smaller -- only 10% -- so execution is fast.
+ABSOLUTE TACS DIMENSIONS
+C Expand TACS Table 1 from 57 to 130 on 1 April 2007. Model use after DC-1.
+C Size List 19. Total floating-point TACS table space. 2926 4800 (LTACST)
+C 57 256 285 36 85 713 998 171 --- default
+ 130 65 80 20 70 325 120 115
+ .000050 .020
+ 1 1 1 3 1 -1
+ 5 5 20 20 100 100
+C DC LINE WITH 12-PULSE RECTIFIER/INVERTER OPERATION USING TACS ------------
+TACS HYBRID CASE FOR DC TERMINAL SIMULATION
+C DC LINE WITH 12-PULSE RECTIFIER/INVERTER OPERATION USING TACS ------------
+C * * * * * * * GRID TIMING VOLTAGES * * * * * * * * * * * * * *
+ PHA-BS +GENAS -GENBS
+ PHB-AS +GENBS -GENAS
+ PHB-CS +GENBS -GENCS
+ PHC-BS +GENCS -GENBS
+ PHC-AS +GENCS -GENAS
+ PHA-CS +GENAS -GENCS
+ PHA-BR +GENAR -GENBR
+ PHB-AR +GENBR -GENAR
+ PHB-CR +GENBR -GENCR
+ PHC-BR +GENCR -GENBR
+ PHC-AR +GENCR -GENAR
+ PHA-CR +GENAR -GENCR
+ 4 +NOT13
+ 9 +NOT18
+ 14 +NOT23
+ 19 +NOT28
+ 24 +NOT3
+ 29 +NOT8
+ 4R +NOT13R
+ 9R +NOT18R
+ 14R +NOT23R
+ 19R +NOT28R
+ 24R +NOT3R
+ 29R +NOT8R
+C ********* ZERO-ORDER BLOCK ON "TIMEX" FOR LIMIT OF 2 CYCLES *******
+C
+ TIMER +TIMEX 0.0 33.3-3
+90GENAS
+90GENBS
+90GENCS
+90GENAR
+90GENBR
+90GENCR
+C $$$$$$ DECREASING RAMP FUNCTION FOR IGNITION ANGLE DELAY $$$$$$$$$$$$
+C
+88ALPHAR -.1045045 * TIMER + 4.17-3
+C
+C -------------- RECTIFIER CONTROL LOGIC FOLLOWS --------------------
+88SA-B 52 +UNITY 0.0 PHA-BS
+88F1S 54 +SA-B 0.0 ALPHAR
+88F1SII 4 .AND. F1S
+88NOT3 .NOT. F1SII
+88F1SI 54 +F1SII 1.4E-3
+88SB-A 52 +UNITY 0.0 PHB-AS
+88F4S 54 +SB-A 0.0 ALPHAR
+88F4SII 9 .AND. F4S
+88NOT8 .NOT. F4SII
+88F4SI 54 +F4SII 1.4E-3
+88SB-C 52 +UNITY 0.0 PHB-CS
+88F3S 54 +SB-C 0.0 ALPHAR
+88F3SII 14 .AND. F3S
+88NOT13 .NOT. F3SII
+88F3SI 54 +F3SII 1.4E-3
+88SC-B 52 +UNITY 0.0 PHC-BS
+88F6S 54 +SC-B 0.0 ALPHAR
+88F6SII 19 .AND. F6S
+88NOT18 .NOT. F6SII
+88F6SI 54 +F6SII 1.4E-3
+88SC-A 52 +UNITY 0.0 PHC-AS
+88F5S 54 +SC-A 0.0 ALPHAR
+88F5SII 24 .AND. F5S
+88NOT23 .NOT. F5SII
+88F5SI 54 +F5SII 1.4E-3
+88SA-C 52 +UNITY 0.0 PHA-CS
+88F2S 54 +SA-C 0.0 ALPHAR
+88F2SII 29 .AND. F2S
+88NOT28 .NOT. F2SII
+88F2SI 54 +F2SII 1.4E-3
+C $$$$$$ INCREASING RAMP FUNCTION FOR IGNITION ANGLE DELAY $$$$$$$$$$$$
+C
+88ALPHAI +.076276 * TIMER + 4.17-3
+C
+C ----------------- INVERTER CONTROL LOGIC FOLLOWS -----------------
+88RA-B 52 +UNITY 0.0 PHA-BR
+88F1R 54 +RA-B 0.0 ALPHAI
+88F1RIV 4R .AND. F1R
+88NOT3R .NOT. F1RIV
+88F1RIII54 +F1RIV 1.4E-3
+88RB-A 52 +UNITY 0.0 PHB-AR
+88F4R 54 +RB-A 0.0 ALPHAI
+88F4RIV 9R .AND. F4R
+88NOT8R .NOT. F4RIV
+88F4RIII54 +F4RIV 1.4E-3
+88RB-C 52 +UNITY 0.0 PHB-CR
+88F3R 54 +RB-C 0.0 ALPHAI
+88F3RIV 14R .AND. F3R
+88NOT13R .NOT. F3RIV
+88F3RIII54 +F3RIV 1.4E-3
+88RC-B 52 +UNITY 0.0 PHC-BR
+88F6R 54 +RC-B 0.0 ALPHAI
+88F6RIV 19R .AND. F6R
+88NOT18R .NOT. F6RIV
+88F6RIII54 +F6RIV 1.4E-3
+88RC-A 52 +UNITY 0.0 PHC-AR
+88F5R 54 +RC-A 0.0 ALPHAI
+88F5RIV 24R .AND. F5R
+88NOT23R .NOT. F5RIV
+88F5RIII54 +F5RIV 1.4E-3
+88RA-C 52 +UNITY 0.0 PHA-CR
+88F2R 54 +RA-C 0.0 ALPHAI
+88F2RIV 29R .AND. F2R
+88NOT28R .NOT. F2RIV
+88F2RIII54 +F2RIV 1.4E-3
+C
+C DELAY FIRING FOR BYPASS VALVES
+C
+88FIRE - UNITY
+77PHA-BS +166.1710
+77PHB-AS -166.1710
+77PHB-CS -332.3420
+77PHC-BS +332.3420
+77PHC-AS +166.1710
+77PHA-CS -166.1710
+77PHA-BR +153.2873
+77PHB-AR -153.2873
+77PHB-CR -306.5746
+77PHC-BR +306.5746
+77PHC-AR +153.2873
+77PHA-CR -153.2873
+77FIRE -1.0
+BLANK card ending TACS initial conditions (and also all TACS data)
+C
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C AC CIRCUIT OF POLE 4, CELILO
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS,
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE AND 1 MILE (1.6 KM) OF 230 KV LINE.
+C
+ 0GENAS BIGEA4 .01
+ 0GENBS BIGEB4GENAS BIGEA4
+ 0GENCS BIGEC4GENAS BIGEA4
+ 0BIGEA4 .86 114. 2.46
+ 0BIGEB4 BIGEA4
+ 0BIGEC4 BIGEA4
+ 0 BIGEA4 1.18 114. 1.28
+ 0 BIGEB4 BIGEA4
+ 0 BIGEC4 BIGEA4
+ 0BIGEA413AC4 .02 1.56
+ 0BIGEB413BC4 BIGEA413AC4
+ 0BIGEC413CC4 BIGEA413AC4
+ 013AC4 HPAC4 40.
+ 0HPAC4 13AC4 5.5
+ 013BC4 HPBC4 13AC4 HPAC4
+ 0HPBC4 13BC4 HPAC4 13AC4
+ 013CC4 HPCC4 13AC4 HPAC4
+ 0HPCC4 13CC4 HPAC4 13AC4
+ 0HPAC4 3.9
+ 0HPBC4 HPAC4
+ 0HPCC4 HPAC4
+ 0 13AC4 .93 44. .95
+ 0 13BC4 13AC4
+ 0 13CC4 13AC4
+ 013AC4 11AC4 GENAS BIGEA4
+ 013BC4 11BC4 GENAS BIGEA4
+ 013CC4 11CC4 GENAS BIGEA4
+ 011AC4 .82 44. 1.33
+ 011BC4 11AC4
+ 011CC4 11AC4
+ 011AC4 AC6 GENAS BIGEA4
+ 011BC4 BC6 GENAS BIGEA4
+ 011CC4 CC6 GENAS BIGEA4
+ 011AC4 AC2 GENAS BIGEA4
+ 011BC4 BC2 GENAS BIGEA4
+ 011CC4 CC2 GENAS BIGEA4
+C
+C -------------------------------- GROUP 6, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0VI-1 VICA 3000.
+ 0VICA VI-1 1.0
+ 0VI-3 VICB VI-1 VICA
+ 0VICB VI-3 VICA VI-1
+ 0VI-5 VICC VI-1 VICA
+ 0VICC VI-5 VICA VI-1
+ 0VI-4 AN6C VI-1 VICA
+ 0AN6C VI-4 VICA VI-1
+ 0VI-6 AN6C VI-1 VICA
+ 0AN6C VI-6 VICA VI-1
+ 0VI-2 AN6C VI-1 VICA
+ 0AN6C VI-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0CEL4 VDA6 1200. .1
+ 0CEL4 VDB6 CEL4 VDA6
+ 0CEL4 VDC6 CEL4 VDA6
+ 0AN6C VDA6 CEL4 VDA6
+ 0AN6C VDB6 CEL4 VDA6
+ 0AN6C VDC6 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA6 VICA 1000.
+ 0VICA VDA6 .25
+ 0VDB6 VICB VDA6 VICA
+ 0VICB VDB6 VICA VDA6
+ 0VDC6 VICC VDA6 VICA
+ 0VICC VDC6 VICA VDA6
+ 0CEL4 CTH6C VDA6 VICA
+ 0CTH6C CEL4 VICA VDA6
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC6Y TXA6 .203 .7
+ 0BC6Y TXB6 AC6Y TXA6
+ 0CC6Y TXC6 AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA6C VDA6 .202 .717
+ 0TXB6C VDB6 TXA6C VDA6
+ 0TXC6C VDC6 TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA6 99300.
+52TXA6C TXB6C 82715. 68946.
+51TXB6 TXA6
+52TXB6C TXC6C
+51TXC6 TXA6
+52TXC6C TXA6C
+C
+C -------------------------------------------------------------------------
+C -------------------------------- GROUP 2, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0II-1 IICA VI-1 VICA
+ 0IICA II-1 VICA VI-1
+ 0II-3 IICB VI-1 VICA
+ 0IICB II-3 VICA VI-1
+ 0II-5 IICC VI-1 VICA
+ 0IICC II-5 VICA VI-1
+ 0II-4 AN2C VI-1 VICA
+ 0AN2C II-4 VICA VI-1
+ 0II-6 AN2C VI-1 VICA
+ 0AN2C II-6 VICA VI-1
+ 0II-2 AN2C VI-1 VICA
+ 0AN2C II-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN6C VDA2 CEL4 VDA6
+ 0AN6C VDB2 CEL4 VDA6
+ 0AN6C VDC2 CEL4 VDA6
+ 0AN2C VDA2 CEL4 VDA6
+ 0AN2C VDB2 CEL4 VDA6
+ 0AN2C VDC2 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA2 IICA VDA6 VICA
+ 0IICA VDA2 VICA VDA6
+ 0VDB2 IICB VDA6 VICA
+ 0IICB VDB2 VICA VDA6
+ 0VDC2 IICC VDA6 VICA
+ 0IICC VDC2 VICA VDA6
+ 0AN6C CTH2C VDA6 VICA
+ 0CTH2C AN6C VICA VDA6
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC2Y TXA2 .22 2.07
+ 0BC2Y TXB2 AC2Y TXA2
+ 0CC2Y TXC2 AC2Y TXA2
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA2C VDA2 .07 .8343
+ 0TXB2C VDB2 TXA2C VDA2
+ 0TXC2C VDC2 TXA2C VDA2
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA2 99300.
+52TXA2C NS2 47951. 23174.
+51TXB2 TXA2
+52TXB2C NS2
+51TXC2 TXA2
+52TXC2C NS2
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NS2 1.E+10
+C
+C -------------------------------------------------------------------------
+C GROUND ELECTRODE CIRCUIT, CELILO
+ 0AN2C GR1C 1.0
+ 0GR1C ELEC1 AN2C GR1C
+ 0GR1C .06
+ 0ELEC1 GR2C AN2C GR1C
+ 0GR2C CELGR AN2C GR1C
+ 0GR2C GR1C
+ 0ELEC1 .43 22.
+C -------------------------------------------------------------------------
+C AC CIRCUIT OF POLE 3, CELILO
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS,
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE AND 1 MILE (1.6 KM) OF 230 KV LINE.
+C
+ 0GENAS BIGEA3GENAS BIGEA4
+ 0GENBS BIGEB3GENAS BIGEA4
+ 0GENCS BIGEC3GENAS BIGEA4
+ 0BIGEA3 BIGEA4
+ 0BIGEB3 BIGEA4
+ 0BIGEC3 BIGEA4
+ 0 BIGEA3 BIGEA4
+ 0 BIGEB3 BIGEA4
+ 0 BIGEC3 BIGEA4
+ 0BIGEA313AC3 BIGEA413AC4
+ 0BIGEB313BC3 BIGEA413AC4
+ 0BIGEC313CC3 BIGEA413AC4
+ 013AC3 HPAC3 13AC4 HPAC4
+ 0HPAC3 13AC3 HPAC4 13AC4
+ 013BC3 HPBC3 13AC4 HPAC4
+ 0HPBC3 13BC3 HPAC4 13AC4
+ 013CC3 HPCC3 13AC4 HPAC4
+ 0HPCC3 13CC3 HPAC4 13AC4
+ 0HPAC3 HPAC4
+ 0HPBC3 HPAC4
+ 0HPCC3 HPAC4
+ 0 13AC3 13AC4
+ 0 13BC3 13AC4
+ 0 13CC3 13AC4
+ 013AC3 11AC3 GENAS BIGEA4
+ 013BC3 11BC3 GENAS BIGEA4
+ 013CC3 11CC3 GENAS BIGEA4
+ 011AC3 11AC4
+ 011BC3 11AC4
+ 011CC3 11AC4
+ 011AC3 AC3 GENAS BIGEA4
+ 011BC3 BC3 GENAS BIGEA4
+ 011CC3 CC3 GENAS BIGEA4
+ 011AC3 AC5 GENAS BIGEA4
+ 011BC3 BC5 GENAS BIGEA4
+ 011CC3 CC5 GENAS BIGEA4
+C
+C -------------------------------- GROUP 1, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+C
+C !!!!!!!!!!!!!!!!!!!!! SYMMETRY !!!!!!!!!!!!!!!!
+ 0AN5C CEL3 .01
+C !!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!
+C -------------------------------- GROUP 3, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0III-1 IIICA VI-1 VICA
+ 0IIICA III-1 VICA VI-1
+ 0III-3 IIICB VI-1 VICA
+ 0IIICB III-3 VICA VI-1
+ 0III-5 IIICC VI-1 VICA
+ 0IIICC III-5 VICA VI-1
+ 0III-4 AN3C VI-1 VICA
+ 0AN3C III-4 VICA VI-1
+ 0III-6 AN3C VI-1 VICA
+ 0AN3C III-6 VICA VI-1
+ 0III-2 AN3C VI-1 VICA
+ 0AN3C III-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0CELGR VDA3 CEL4 VDA6
+ 0CELGR VDB3 CEL4 VDA6
+ 0CELGR VDC3 CEL4 VDA6
+ 0AN3C VDA3 CEL4 VDA6
+ 0AN3C VDB3 CEL4 VDA6
+ 0AN3C VDC3 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA3 IIICA VDA6 VICA
+ 0IIICA VDA3 VICA VDA6
+ 0VDB3 IIICB VDA6 VICA
+ 0IIICB VDB3 VICA VDA6
+ 0VDC3 IIICC VDA6 VICA
+ 0IIICC VDC3 VICA VDA6
+ 0CELGR CTH3C VDA6 VICA
+ 0CTH3C CELGR VICA VDA6
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC3Y TXA3 AC2Y TXA2
+ 0BC3Y TXB3 AC2Y TXA2
+ 0CC3Y TXC3 AC2Y TXA2
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA3C VDA3 TXA2C VDA2
+ 0TXB3C VDB3 TXA2C VDA2
+ 0TXC3C VDC3 TXA2C VDA2
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA3 TXA2
+52TXA3C NS3
+51TXB3 TXA2
+52TXB3C NS3
+51TXC3 TXA2
+52TXC3C NS3
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NS3 NS2
+C -------------------------------------------------------------------------
+C -------------------------------- GROUP 5, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0V-1 VCA VI-1 VICA
+ 0VCA V-1 VICA VI-1
+ 0V-3 VCB VI-1 VICA
+ 0VCB V-3 VICA VI-1
+ 0V-5 VCC VI-1 VICA
+ 0VCC V-5 VICA VI-1
+ 0V-4 AN5C VI-1 VICA
+ 0AN5C V-4 VICA VI-1
+ 0V-6 AN5C VI-1 VICA
+ 0AN5C V-6 VICA VI-1
+ 0V-2 AN5C VI-1 VICA
+ 0AN5C V-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN3C VDA5 CEL4 VDA6
+ 0AN3C VDB5 CEL4 VDA6
+ 0AN3C VDC5 CEL4 VDA6
+ 0AN5C VDA5 CEL4 VDA6
+ 0AN5C VDB5 CEL4 VDA6
+ 0AN5C VDC5 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA5 VCA VDA6 VICA
+ 0VCA VDA5 VICA VDA6
+ 0VDB5 VCB VDA6 VICA
+ 0VCB VDB5 VICA VDA6
+ 0VDC5 VCC VDA6 VICA
+ 0VCC VDC5 VICA VDA6
+ 0AN3C CTH5C VDA6 VICA
+ 0CTH5C AN3C VICA VDA6
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC5Y TXA5 AC6Y TXA6
+ 0BC5Y TXB5 AC6Y TXA6
+ 0CC5Y TXC5 AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA5C VDA5 TXA6C VDA6
+ 0TXB5C VDB5 TXA6C VDA6
+ 0TXC5C VDC5 TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA5 TXA6
+52TXA5C TXB5C
+51TXB5 TXA6
+52TXB5C TXC5C
+51TXC5 TXA6
+52TXC5C TXA5C
+C
+C
+C SMOOTHING REACTOR, CELILO, POLE 4 ===================
+ 0CEL4 S4- 500. 1
+C ============================
+C DC FILTERS, CELILO, POLE 4
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0S4- ELEC1 6.3 280. .7
+ 0S4- HP4C 2.5
+ 0HP4C ELEC1 100.
+ 0ELEC1 HP4C 7.0
+C ===========================================
+C SURGE CAPACITOR, CELILO, POLE 4
+ 0S4- SURC4 .7
+ 0SURC4 5.
+ 0SURC4 ELEC1 GENAS BIGEA4
+C ============================================================
+C SMOOTHING REACTOR, CELILO, POLE 3 ===================
+ 0CEL3 A3+ CEL4 S4-
+C ============================
+C DC FILTERS, CELILO, POLE 3
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+ 0A3+ ELEC1 S4- ELEC1
+ 0A3+ HP3C S4- HP4C
+ 0HP3C ELEC1 HP4C ELEC1
+ 0ELEC1 HP3C ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, CELILO, POLE 3
+ 0A3+ SURC3 S4- SURC4
+ 0SURC3 SURC4
+ 0SURC3 ELEC1 GENAS BIGEA4
+C ============================================================
+C
+C *************************************************************************
+C CELILO - SYLMAR LINE, 846 MILES (1362 KM)
+C *************************************************************************
+C
+-1S4- 4-282 .02 6.56 .0142 282.
+-2A3+ 3-282 .02 1.56 .0192 282.
+-14-282 4-564 S4- 4-282
+-23-282 3-564
+-14-564 R4- S4- 4-282
+-23-564 R3+
+C
+C
+C SMOOTHING REACTOR, SYLMAR, POLE 4 ===================
+ 0AN6S SYL4 CEL4 S4-
+C ============================
+C DC FILTERS, SYLMAR, POLE 4
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0R4- ELEC2 S4- ELEC1
+ 0R4- HP4 S4- HP4C
+ 0HP4 ELEC2 HP4C ELEC1
+ 0ELEC2 HP4 ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, SYLMAR, POLE 4
+ 0R4- SURS4 S4- SURC4
+ 0SURS4 SURC4
+ 0SURS4 ELEC2 GENAS BIGEA4
+C ============================================================
+C SMOOTHING REACTOR, SYLMAR, POLE 3 ===================
+ 0CTH5S SYL3 CEL4 S4-
+C ============================
+C DC FILTERS, SYLMAR, POLE 3
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0R3+ ELEC2 S4- ELEC1
+ 0R3+ HP3 S4- HP4C
+ 0HP3 ELEC2 HP4C ELEC1
+ 0ELEC2 HP3 ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, SYLMAR, POLE 3
+ 0R3+ SURS3 S4- SURC4
+ 0SURS3 SURC4
+ 0SURS3 ELEC2 GENAS BIGEA4
+C ============================================================
+C
+C LC CIRCUIT NEAR SMOOTHING REACTOR ON LINE AT SYLMAR ONLY ..........
+C
+ 0R4- CAP4 GENAS BIGEA4
+ 0CAP4 .06
+ 0CAP4 SYL4 1.0
+ 0R3+ CAP3 GENAS BIGEA4
+ 0CAP3 CAP4
+ 0CAP3 SYL3 CAP4 SYL4
+C
+C
+C AC CIRCUIT OF POLE 4, SYLMAR
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS AND
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE.
+C
+ 0AS6 11AS4 GENAS BIGEA4
+ 0BS6 11BS4 GENAS BIGEA4
+ 0CS6 11CS4 GENAS BIGEA4
+ 0AS2 11AS4 GENAS BIGEA4
+ 0BS2 11BS4 GENAS BIGEA4
+ 0CS2 11CS4 GENAS BIGEA4
+ 011AS4 L1A 1.
+ 011BS4 L1B 11AS4 L1A
+ 011CS4 L1C 11AS4 L1A
+ 0L1A A57-4 GENAS BIGEA4
+ 0L1B B57-4 GENAS BIGEA4
+ 0L1C C57-4 GENAS BIGEA4
+ 0A57-4 4. 214. 1.32
+ 0B57-4 A57-4
+ 0C57-4 A57-4
+ 0 A57-4 5.7 214. .67
+ 0 B57-4 A57-4
+ 0 C57-4 A57-4
+ 0A57-4 A13-4 GENAS BIGEA4
+ 0B57-4 B13-4 GENAS BIGEA4
+ 0C57-4 C13-4 GENAS BIGEA4
+ 0A13-4 1.8 44. 1.33
+ 0B13-4 A13-4
+ 0C13-4 A13-4
+ 0 A13-4 2.2 44. .95
+ 0 B13-4 A13-4
+ 0 C13-4 A13-4
+ 0A13-4 A4 34.5
+ 0A4 A13-4 4.8
+ 0A4 4.5
+ 0B13-4 B4 A13-4 A4
+ 0B4 B13-4 A4 A13-4
+ 0B4 A4
+ 0C13-4 C4 A13-4 A4
+ 0C4 C13-4 A4 A13-4
+ 0C4 A4
+ 0A13-4 GENAR GENAS BIGEA4
+ 0B13-4 GENBR GENAS BIGEA4
+ 0C13-4 GENCR GENAS BIGEA4
+C
+C ---------------------------------- GROUP 6, SYLMAR --------------------
+C ####### ANODE REACTORS ###############
+ 0AN6S 6-1 VI-1 VICA
+ 06-1 AN6S VICA VI-1
+ 0AN6S 6-3 VI-1 VICA
+ 06-3 AN6S VICA VI-1
+ 0AN6S 6-5 VI-1 VICA
+ 06-5 AN6S VICA VI-1
+ 06SA 6-4 VI-1 VICA
+ 06-4 6SA VICA VI-1
+ 06SB 6-6 VI-1 VICA
+ 06-6 6SB VICA VI-1
+ 06SC 6-2 VI-1 VICA
+ 06-2 6SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN6S 6SA CEL4 VDA6
+ 0AN6S 6SB CEL4 VDA6
+ 0AN6S 6SC CEL4 VDA6
+ 0CTH6S 6SA CEL4 VDA6
+ 0CTH6S 6SB CEL4 VDA6
+ 0CTH6S 6SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS6Y TXS6A AC6Y TXA6
+ 0BS6Y TXS6B AC6Y TXA6
+ 0CS6Y TXS6C AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA6 6SA TXA6C VDA6
+ 0TXSB6 6SB TXA6C VDA6
+ 0TXSC6 6SC TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS6A TXA6
+52TXSA6 TXSB6
+51TXS6B TXA6
+52TXSB6 TXSC6
+51TXS6C TXA6
+52TXSC6 TXSA6
+C
+C
+C RESISTOR SEPARATING VALVE GROUPS AT SYLMAR ONLY!
+C
+C -------------------------------- GROUP 4, SYLMAR ----------------------
+ 0CTH6S AN2S .01
+C
+C -------------------------------- GROUP 2, SYLMAR ----------------------
+C ####### ANODE REACTORS ###############
+ 0AN2S 2-1 VI-1 VICA
+ 02-1 AN2S VICA VI-1
+ 0AN2S 2-3 VI-1 VICA
+ 02-3 AN2S VICA VI-1
+ 0AN2S 2-5 VI-1 VICA
+ 02-5 AN2S VICA VI-1
+ 02SA 2-4 VI-1 VICA
+ 02-4 2SA VICA VI-1
+ 02SB 2-6 VI-1 VICA
+ 02-6 2SB VICA VI-1
+ 02SC 2-2 VI-1 VICA
+ 02-2 2SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN2S 2SA CEL4 VDA6
+ 0AN2S 2SB CEL4 VDA6
+ 0AN2S 2SC CEL4 VDA6
+ 0CTH2S 2SA CEL4 VDA6
+ 0CTH2S 2SB CEL4 VDA6
+ 0CTH2S 2SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS2Y TXS2A AC2Y TXA2
+ 0BS2Y TXS2B AC2Y TXA2
+ 0CS2Y TXS2C AC2Y TXA2
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA2 2SA TXA2C VDA2
+ 0TXSB2 2SB TXA2C VDA2
+ 0TXSC2 2SC TXA2C VDA2
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS2A TXA2
+52TXSA2 NR2
+51TXS2B TXA2
+52TXSB2 NR2
+51TXS2C TXA2
+52TXSC2 NR2
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NR2 NS2
+C -------------------------------------------------------------------------
+C
+C -------------------------------------------------------------------------
+C GROUND ELECTRODE CIRCUIT, SYLMAR
+ 0CTH2S GR1S AN2C GR1C
+ 0GR1S ELEC2 AN2C GR1C
+ 0GR1S GR1C
+ 0ELEC2 GR2S AN2C GR1C
+ 0GR2S AN3S AN2C GR1C
+ 0GR2S GR1C
+ 0ELEC2 ELEC1
+C -------------------------------------------------------------------------
+C
+C AC CIRCUIT OF POLE 3, SYLMAR
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS AND
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE.
+C
+ 0AS3 11AS3 GENAS BIGEA4
+ 0BS3 11BS3 GENAS BIGEA4
+ 0CS3 11CS3 GENAS BIGEA4
+ 0AS5 11AS3 GENAS BIGEA4
+ 0BS5 11BS3 GENAS BIGEA4
+ 0CS5 11CS3 GENAS BIGEA4
+ 011AS3 L2A 11AS4 L1A
+ 011BS3 L2B 11AS4 L1A
+ 011CS3 L2C 11AS4 L1A
+ 0L2A A57-3 GENAS BIGEA4
+ 0L2B B57-3 GENAS BIGEA4
+ 0L2C C57-3 GENAS BIGEA4
+ 0A57-3 A57-4
+ 0B57-3 A57-4
+ 0C57-3 A57-4
+ 0 A57-3 A57-4
+ 0 B57-3 A57-4
+ 0 C57-3 A57-4
+ 0A57-3 A13-3 GENAS BIGEA4
+ 0B57-3 B13-3 GENAS BIGEA4
+ 0C57-3 C13-3 GENAS BIGEA4
+ 0A13-3 A13-4
+ 0B13-3 A13-4
+ 0C13-3 A13-4
+ 0 A13-3 A13-4
+ 0 B13-3 A13-4
+ 0 C13-3 A13-4
+ 0A13-3 A3 A13-4 A4
+ 0A3 A13-3 A4 A13-4
+ 0A3 A4
+ 0B13-3 B3 A13-4 A4
+ 0B3 B13-3 A4 A13-4
+ 0B3 A4
+ 0C13-3 C3 A13-4 A4
+ 0C3 C13-3 A4 A13-4
+ 0C3 A4
+ 0A13-3 GENAR GENAS BIGEA4
+ 0B13-3 GENBR GENAS BIGEA4
+ 0C13-3 GENCR GENAS BIGEA4
+C
+C -------------------------------- GROUP 3, SYLMAR ----------------------
+C ####### ANODE REACTORS ## 0AN3S 3-1 VI-1 VICA
+ 03-1 AN3S VICA VI-1
+ 0AN3S 3-3 VI-1 VICA
+ 03-3 AN3S VICA VI-1
+ 0AN3S 3-5 VI-1 VICA
+ 03-5 AN3S VICA VI-1
+ 03SA 3-4 VI-1 VICA
+ 03-4 3SA VICA VI-1
+ 03SB 3-6 VI-1 VICA
+ 03-6 3SB VICA VI-1
+ 03SC 3-2 VI-1 VICA
+ 03-2 3SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN3S 3SA CEL4 VDA6
+ 0AN3S 3SB CEL4 VDA6
+ 0AN3S 3SC CEL4 VDA6
+ 0CTH3S 3SA CEL4 VDA6
+ 0CTH3S 3SB CEL4 VDA6
+ 0CTH3S 3SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS3Y TXS3A AC2Y TXA2
+ 0BS3Y TXS3B AC2Y TXA2
+ 0CS3Y TXS3C AC2Y TXA2
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA3 3SA TXA2C VDA2
+ 0TXSB3 3SB TXA2C VDA2
+ 0TXSC3 3SC TXA2C VDA2
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS3A TXA2
+52TXSA3 NR3
+51TXS3B TXA2
+52TXSB3 NR3
+51TXS3C TXA2
+52TXSC3 NR3
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NR3 NS2
+C -------------------------------------------------------------------------
+C
+C RESISTOR SEPARATING VALVE GROUPS AT SYLMAR ONLY!
+ 0CTH3S AN5S .01
+C ---------------------------------- GROUP 5, SYLMAR --------------------
+C ####### ANODE REACTORS ###############
+ 0AN5S 5-1 VI-1 VICA
+ 05-1 AN5S VICA VI-1
+ 0AN5S 5-3 VI-1 VICA
+ 05-3 AN5S VICA VI-1
+ 0AN5S 5-5 VI-1 VICA
+ 05-5 AN5S VICA VI-1
+ 05SA 5-4 VI-1 VICA
+ 05-4 5SA VICA VI-1
+ 05SB 5-6 VI-1 VICA
+ 05-6 5SB VICA VI-1
+ 05SC 5-2 VI-1 VICA
+ 05-2 5SC VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN5S 5SA CEL4 VDA6
+ 0AN5S 5SB CEL4 VDA6
+ 0AN5S 5SC CEL4 VDA6
+ 0CTH5S 5SA CEL4 VDA6
+ 0CTH5S 5SB CEL4 VDA6
+ 0CTH5S 5SC CEL4 VDA6
+C $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ NO BUSHING REACTORS AT SYLMAR
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AS5Y TXS5A AC6Y TXA6
+ 0BS5Y TXS5B AC6Y TXA6
+ 0CS5Y TXS5C AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXSA5 5SA TXA6C VDA6
+ 0TXSB5 5SB TXA6C VDA6
+ 0TXSC5 5SC TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXS5A TXA6
+52TXSA5 TXSB5
+51TXS5B TXA6
+52TXSB5 TXSC5
+51TXS5C TXA6
+52TXSC5 TXSA5
+C
+C $$$$$$$$$$$$$$$$$$$$$$$$$ LEAKAGE CAPACITANCE ACROSS VALVES
+C
+ 0VICA CTH6C .001
+ 0VICB CTH6C VICA CTH6C
+ 0VICC CTH6C VICA CTH6C
+ 0AN6C VICA VICA CTH6C
+ 0AN6C VICB VICA CTH6C
+ 0AN6C VICC VICA CTH6C
+ 0IICA CTH2C VICA CTH6C
+ 0IICB CTH2C VICA CTH6C
+ 0IICC CTH2C VICA CTH6C
+ 0AN2C IICA VICA CTH6C
+ 0AN2C IICB VICA CTH6C
+ 0AN2C IICC VICA CTH6C
+ 0IIICA CTH3C VICA CTH6C
+ 0IIICB CTH3C VICA CTH6C
+ 0IIICC CTH3C VICA CTH6C
+ 0AN3C IIICA VICA CTH6C
+ 0AN3C IIICB VICA CTH6C
+ 0AN3C IIICC VICA CTH6C
+ 0VCA CTH5C VICA CTH6C
+ 0VCB CTH5C VICA CTH6C
+ 0VCC CTH5C VICA CTH6C
+ 0AN5C VCA VICA CTH6C
+ 0AN5C VCB VICA CTH6C
+ 0AN5C VCC VICA CTH6C
+ 06SA CTH6S VICA CTH6C
+ 06SB CTH6S VICA CTH6C
+ 06SC CTH6S VICA CTH6C
+ 0AN6S 6SA VICA CTH6C
+ 0AN6S 6SB VICA CTH6C
+ 0AN6S 6SC VICA CTH6C
+ 02SA CTH2S VICA CTH6C
+ 02SB CTH2S VICA CTH6C
+ 02SC CTH2S VICA CTH6C
+ 0AN2S 2SA VICA CTH6C
+ 0AN2S 2SB VICA CTH6C
+ 0AN2S 2SC VICA CTH6C
+ 03SA CTH3S VICA CTH6C
+ 03SB CTH3S VICA CTH6C
+ 03SC CTH3S VICA CTH6C
+ 0AN3S 3SA VICA CTH6C
+ 0AN3S 3SB VICA CTH6C
+ 0AN3S 3SC VICA CTH6C
+ 05SA CTH5S VICA CTH6C
+ 05SB CTH5S VICA CTH6C
+ 05SC CTH5S VICA CTH6C
+ 0AN5S 5SA VICA CTH6C
+ 0AN5S 5SB VICA CTH6C
+ 0AN5S 5SC VICA CTH6C
+BLANK card ending electric network branch cards
+C ((((((((((( BRIDGE CIRCUIT BREAKERS, CELILO ))))))))))))))))))))
+ AC6 AC6Y -10.E-3 10.E+3
+ BC6 BC6Y -10.E-3 10.E+3
+ CC6 CC6Y -10.E-3 10.E+3
+ AC2 AC2Y -10.E-3 10.E+3
+ BC2 BC2Y -10.E-3 10.E+3
+ CC2 CC2Y -10.E-3 10.E+3
+ AC3 AC3Y -10.E-3 10.E+3
+ BC3 BC3Y -10.E-3 10.E+3
+ CC3 CC3Y -10.E-3 10.E+3
+ AC5 AC5Y -10.E-3 10.E+3
+ BC5 BC5Y -10.E-3 10.E+3
+ CC5 CC5Y -10.E-3 10.E+3
+C
+C ((((((((((( BRIDGE CIRCUIT BREAKERS, SYLMAR ))))))))))))))))))))
+ AS6 AS6Y -10.E-3 10.E+3
+ BS6 BS6Y -10.E-3 10.E+3
+ CS6 CS6Y -10.E-3 10.E+3
+ AS2 AS2Y -10.E-3 10.E+3
+ BS2 BS2Y -10.E-3 10.E+3
+ CS2 CS2Y -10.E-3 10.E+3
+ AS3 AS3Y -10.E-3 10.E+3
+ BS3 BS3Y -10.E-3 10.E+3
+ CS3 CS3Y -10.E-3 10.E+3
+ AS5 AS5Y -10.E-3 10.E+3
+ BS5 BS5Y -10.E-3 10.E+3
+ CS5 CS5Y -10.E-3 10.E+3
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+C VALVES AT CELILO
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+11VI-1 CTH6C F2SI 1
+11VI-3 CTH6C F4SI 1
+11VI-5 CTH6C F6SI 13
+11VI-4 VICA F5SI 1
+11VI-6 VICB F1SI 1
+11VI-2 VICC F3SI 1
+11II-1 CTH2C F2SII 1
+11II-3 CTH2C F4SII 13
+11II-5 CTH2C F6SII 1
+11II-4 IICA F5SII 1
+11II-6 IICB F1SII 1
+11II-2 IICC F3SII 1
+11III-1 CTH3C F2SII 1
+11III-3 CTH3C F4SII 1
+11III-5 CTH3C F6SII 1
+11III-4 IIICA F5SII 1
+11III-6 IIICB F1SII 1
+11III-2 IIICC F3SII 1
+11V-1 CTH5C F2SI 13
+11V-3 CTH5C F4SI 1
+11V-5 CTH5C F6SI 1
+11V-4 VCA F5SI 1
+11V-6 VCB F1SI 1
+11V-2 VCC F3SI 1
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+C VALVES AT SYLMAR
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+116-1 6SA F5RIII 1
+116-3 6SB F1RIII 1
+116-5 6SC F3RIII 1
+116-4 CTH6S F2RIII 1
+116-6 CTH6S F4RIII 1
+116-2 CTH6S F6RIII 1
+112-1 2SA F5RIV 1
+112-3 2SB F1RIV 1
+112-5 2SC F3RIV 1
+112-4 CTH2S F2RIV 1
+112-6 CTH2S F4RIV 1
+112-2 CTH2S F6RIV 1
+113-1 3SA F5RIV 1
+113-3 3SB F1RIV 1
+113-5 3SC F3RIV 1
+113-4 CTH3S F2RIV 1
+113-6 CTH3S F4RIV 1
+113-2 CTH3S F6RIV 1
+115-1 5SA F5RIII 1
+115-3 5SB F1RIII 1
+115-5 5SC F3RIII 1
+115-4 CTH5S F2RIII 1
+115-6 CTH5S F4RIII 1
+115-2 CTH5S F6RIII 1
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+BLANK card ending switch and valve cards
+14GENAS 191.88 60. - 90. -1.
+14GENBS 191.88 60. 150. -1.
+14GENCS 191.88 60. 30. -1.
+14GENAR 177.00 60. - 90. -1.
+14GENBR 177.00 60. 150. -1.
+14GENCR 177.00 60. 30. -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C GENAS | BIGEA4*BIGEA3*
+C BIGEA4 | TERRA *TERRA *GENAS *13AC4 *
+C GENBS | BIGEB4*BIGEB3*
+C BIGEB4 | TERRA *TERRA *GENBS *13BC4 *
+C GENCS | BIGEC4*BIGEC3*
+C BIGEC4 | TERRA *TERRA *GENCS *13CC4 *
+BLANK card ending electric network source cards
+C Pi-equivalent branches of distributed circuits ... ween indices 50 and 58.
+C Total network loss P-loss by summing injections = 7.782692850288E-01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C AC6 AC6Y -1.75378290E-03 -1.51306605E-04 1.76029774E-03
+C BC6 BC6Y 7.45856087E-04 1.59447385E-03 1.76029774E-03
+C CC6 CC6Y 1.00792681E-03 -1.44316724E-03 1.76029774E-03
+C AC2 AC2Y -1.72569218E-03 -1.52548790E-04 1.73242161E-03
+C BC2 BC2Y 7.30734970E-04 1.57076766E-03 1.73242161E-03
+C < < Etc. for many more switches > >
+C Step Time VI-5 II-3 V-1 S4- 4-282 4-564
+C CTH6C CTH2C CTH5C
+C
+C R3+ VI-5 II-3 V-1 CEL4
+C CTH6C CTH2C CTH5C S4-
+C *** Phasor I(0) = -1.7537829E-03 Switch "AC6 " to "AC6Y " closed
+C *** Phasor I(0) = 7.4585609E-04 Switch "BC6 " to "BC6Y " closed
+C *** Phasor I(0) = 1.0079268E-03 Switch "CC6 " to "CC6Y " closed
+C *** Phasor I(0) = -1.7256922E-03 Switch "AC2 " to "AC2Y " closed
+C < < Etc. for many more switches > >
+C 0 0.0 92.4476735 -80.392419 -46.233822 -.819E-12 -.1172E-13 .63533E-12
+C -.1507E-12 0.0 0.0 0.0 .75976E-15
+C 1 .5E-4 92.4314685 -81.253201 -44.71671 -.8331E-12 -.1594E-13 .6287E-12
+C -.1585E-12 0.0 0.0 0.0 .66724E-15
+C
+C 60 .003 39.3727405 -76.238222 52.7516794 -.1792E-12 -.4468E-12 -.4678E-14
+C .13348E-12 0.0 0.0 0.0 .19966E-17
+C Valve "II-6 " to "IICB " closing after 3.85000000E-03 sec.
+C Valve "III-6 " to "IIICB " closing after 3.85000000E-03 sec.
+C 80 .004 10.9218031 -49.021132 82.2441262 .351391677 -.3948E-12 -.1425E-12
+C .27674E-12 0.0 0.0 0.0 .008847337
+C Valve "II-6 " to "IICB " opening after 4.40000000E-03 sec.
+C Valve "III-6 " to "IIICB " opening after 4.40000000E-03 sec.
+C Valve "2-3 " to "2SB " closing after 4.60000000E-03 sec.
+C Valve "3-3 " to "3SB " closing after 4.60000000E-03 sec.
+C 100 .005 -15.400648 -6.2930283 103.579402 .261261466 -.2871E-13 -.3294E-12
+C .480225773 0.0 0.0 0.0 -.00385764
+ S4- 4-282 4-564 R4- A3+ 3-282 3-564 R3+
+BLANK card ending output variable requests (just node voltages, here)
+C Valve "6-2 " to "CTH6S " closing after 1.95500000E-02 sec.
+C Valve "5-2 " to "CTH5S " closing after 1.95500000E-02 sec.
+C Valve "6-6 " to "CTH6S " opening after 1.96500000E-02 sec.
+C Valve "5-6 " to "CTH5S " opening after 1.96500000E-02 sec.
+C 400 .02 0.0 -54.075016 30.0149023 221.835361 219.299117 204.062343
+C -190.73923 .526719239 0.0 0.0 .534347606
+C Variable max:133.775933 148.031013 155.971885 221.835361 219.299117 204.062343
+C 4.32878878 .743966149 .528582385 .356896792 .59792085
+C Times of max : .01655 .0101 .0064 .02 .02 .02
+C .0082 .0168 .0103 .011 .0184
+C Variable min:-187.32326 -180.64358 -231.51084 -.1085E-11 -.5442E-12 -3.1712838
+C -190.73923 -.03732442 -.09128378 -.20023036 -.00626357
+C Times of min : .00665 .0155 .0117 .65E-3 .00345 .0082
+C .02 .0065 .01535 .01165 .0048
+ PRINTER PLOT
+ 194 2. 0.0 20. VI-5 CTH6C { Axis limits : (-0.373, 7.440)
+ 144 2. 0.0 20. S4- { Axis limits : (0.000, 2.218)
+BLANK card terminating batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc20.dat b/benchmarks/dc20.dat
new file mode 100644
index 0000000..8308fc5
--- /dev/null
+++ b/benchmarks/dc20.dat
@@ -0,0 +1,166 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-20
+C TACS test having no electric network. Three transfer functions are
+C involved, with two being cascaded together (note OUT1 feeds OUT2).
+C The third, OUT3, is of second order. Both sinusoidal (Type-14) and
+C constant (Type-11) sources are involved, and both are present during
+C the steady-state solution, although they are mathematically disconnected.
+C 11 February 2001, add the following line to demonstrate that the
+C answer does not change if Dube's logic for supplemental variables
+C is replaced by the pocket calculator. On the other hand, this is
+C no great feat since the data involves no supplemental variables!
+C TACS ASSEMBLY LANGUAGE { Temporary request for use of pocket calculator
+TACS POCKET CALCULATOR { 12 January 2001, this new line replaces preceding
+ .05 1.0
+ 1 1 1 1 1
+TACS STAND ALONE
+ 1OUT1 +GEN
+ 1.0
+ 1.0 1.0
+ 1OUT2 +OUT1
+ 1.0
+ 1.0
+ 1DC*10 +DC 10.
+ 1.0 1.0
+ 1.0
+ 2OUT3 +GEN
+ 1.0
+ 1.0 2.0 1.0
+11DC 1.0 -1.
+14GEN 100. 1.0 -1.
+33OUT1 OUT2 DC*10 OUT3 TIMEX ISTEP DELTATFREQHZOMEGARZERO PLUS1 MINUS1UNITY
+33INFNTYPI DC GEN
+C The TACS ac steady-state phasor solution for frequency 1.00000000E+00 follo
+C Name Real part Imaginary part Magnitude Degrees
+C OUT3 -2.3483896115E+00 -7.6694251071E-01 2.4704523032E+00 -161.913878
+C DC*10 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.000000
+C OUT2 9.7529547697E+01 1.5522309613E+01 9.8757049215E+01 9.043061
+C OUT1 2.4704523032E+00 -1.5522309613E+01 1.5717672548E+01 -80.956939
+C Zero-frequency (dc) steady-state solution for TACS follows.
+C (Name) TACS value (Name) TACS value (Name) TACS value
+C OUT3 0.00000000E+00 DC*10 1.00000000E+01 OUT2 0.00000000E+00
+C ISTEP 0.00000000E+00 DELTAT 5.00000000E-02 FREQHZ 1.00000000E+00
+C PLUS1 1.00000000E+00 MINUS1 -1.00000000E+00 UNITY 1.00000000E+00
+C DC 1.00000000E+00 GEN 0.00000000E+00
+BLANK card ending all TACS data cards
+ PRINTER PLOT
+C 20 1.0 2.44544812 97.5545519 10. -2.2965486 1.0 20. .05
+C 1.0 -1. 1.0 .1E20 3.14159265 1.0 100.
+C maxima : 15.4314771 97.5545519 10. 2.43100116 1.0 20. .05
+C 1.0 -1. 1.0 .1E20 3.14159265 1.0 100.
+C Times of maxima : .25 1.0 0.0 .45 1.0 1.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C minima : -15.381996 -97.593085 10. -2.4154432 0.0 0.0 .05
+C 1.0 -1. 1.0 .1E20 3.14159265 1.0 -100.
+C Times of minima : .75 0.5 0.0 .95 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0 0.5
+ 143 .2 0.0 1.0 OUT1 OUT2 OUT3 { Axis limits: (-9.759, 9.755)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 3 parts of DC-20. TACS-only, with multiple-frequency sinusoidal
+C steady-state solution (400 and 10 Hz), plus constant (dc) solution.
+C 1 February 2002, previously-neglected need to cancel TPC is satisfied
+C by the following TPC OFF declaration. Of course, this has no effect
+C since no supplemental variables are being used here, anyway. There is
+C no pocket calculator use, so nothing to turn off, in fact. But we go
+C through the motions, anyway, as an illustration of the new declaration:
+TACS POCKET CALCULATOR OFF { 1 February 2002, illustrate this new cancellation
+ .0001 0.02
+ 1 1 1 1 1 -1
+ 10 10 100 100
+TACS STAND ALONE
+ 1OUT1 +GEN1
+ 1.0
+ 1.0 1.0
+ 1OUT2 +GEN2
+ 1.0
+ 1.0 1.0
+ 1OUT3 +DC
+ 1.0
+ 1.0 1.0
+ 1OUT4 +GEN1 +GEN2 +DC
+ 1.0
+ 1.0 1.0
+11DC 1.0 -1.
+14GEN1 10000. 400.0 -1.
+14GEN2 1000. 10.0 -1.
+33OUT1 OUT2 OUT3 OUT4
+C Step Time TACS TACS TACS TACS
+C OUT1 OUT2 OUT3 OUT4
+C 0 0.0 .001583143 .253238813 1.0 1.25482196
+C 1 .1E-3 .985825353 .353207504 1.0 2.33903286
+BLANK card terminates the last TACS data card.
+ PRINTER PLOT
+C 200 .02 .001582814 15.2109079 1.0 16.2124907
+C Variable maxima : 3.95021189 15.2109079 1.0 19.4959527
+C Times of maxima : .6E-3 .02 0.0 .0181
+C Variable minima : -3.9499822 .253238813 1.0 -.84075309
+C Times of minima : .0194 0.0 0.0 .0018
+ 144 1. 0.0 10. OUT4 { Axis limits: (-0.084, 1.295)
+BLANK card terminates all plot cards.
+BEGIN NEW DATA CASE
+C 3rd of 3 parts of DC-20. Continued test of multiple-frequency solution
+C capability, only with the addition of an electric network. To the TACS
+C generators of 400 and 10 Hz is added the 50 Hz of the electric network.
+ .0001 0.02
+ 1 1 1 1 1 -1
+ 10 10 100 100
+TACS HYBRID
+ 1OUT1 +GEN1
+ 1.0
+ 1.0 1.0
+ 1OUT2 +GEN2
+ 1.0
+ 1.0 1.0
+ 1OUT3 +DC
+ 1.0
+ 1.0 1.0
+ 1OUT4 +NOD1
+ 1.0
+ 1.0 1.0
+ 1OUT5 +NOD2
+ 1.0
+ 1.0 1.0
+ 1OUT6 +GEN1 +GEN2 +DC
+ 1.0
+ 1.0 1.0
+ 1OUT7 +DC +GEN1 +NOD1 +NOD2 +GEN2
+ 1.0
+ 1.0 1.0
+11DC 1.0 -1.
+14GEN1 100000. 400.0 -1.
+14GEN2 1000. 10.0 -1.
+90NOD1 50.0 -1.
+91NOD2 50.0 -1.
+33OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7
+BLANK card ends final TACS data
+ NOD1 NOD2 1.00
+BLANK card after last electric network branch
+ NOD2 -1.0 1.0
+BLANK card ends switches
+14NOD1 -1 100.0 50.0 -1.0
+BLANK card after last electric network source
+ NOD1
+C Zero-frequency (dc) steady-state solution for TACS follows.
+C (Name) TACS value (Name) TACS value (Name) TACS value
+C OUT7 1.00000000E+00 OUT6 1.00000000E+00 OUT5 0.00000000E+00
+C OUT2 0.00000000E+00 OUT1 0.00000000E+00 TIMEX 0.00000000E+00
+C FREQHZ 4.00000000E+02 OMEGAR 2.51327412E+03 ZERO 0.00000000E+00
+C UNITY 1.00000000E+00 INFNTY 1.00000000E+19 PI 3.14159265E+00
+C GEN2 0.00000000E+00 NOD1 0.00000000E+00 NOD2 0.00000000E+00
+C Step Time NOD1 TACS TACS TACS TACS TACS
+C OUT1 OUT2 OUT3 OUT4 OUT5
+C *** Phasor I(0) = 0.1000000E+03 Switch "NOD2 " to " " closed
+C 0 0.0 100. .015831432 .253238813 1.0 .001013202 .001013202
+C 1 .1E-3 99.950656 9.85825353 .353207504 1.0 .011010133 .011010133
+BLANK card ends selective node voltage outputs
+C Last step: 200 .02 100. .015828137 15.2109079 1.0 .001013198
+C Last step continued: .001013198 16.226736 16.2287624
+C Final 6 maxima : 15.2109079 1.0 .318280647 .318280647 55.0478571 54.6917329
+C Associated times : .02 0.0 .005 .005 .0181 .0181
+ PRINTER PLOT
+ 194 1. 0.0 10. TACS OUT7 { Axis limits: (-3.599, 4.883)
+BLANK card terminating plotting
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc21.dat b/benchmarks/dc21.dat
new file mode 100644
index 0000000..4e8e80c
--- /dev/null
+++ b/benchmarks/dc21.dat
@@ -0,0 +1,545 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-21
+C Test of various TACS devices, types 50-56. There is no electric network,
+C and no physical or other coherent meaning. Components are disconnected.
+C 1st of 9 subcases begins. Change 12 Jan 98: In STARTUP, TIMTAC is reduced
+C from 1.0 to 0.99 in order to ensure the warning
+C message of Type-50 device "DEV50I". It is on step 10
+C that the zero crossing is noted, and 10 * 0.1 may be less
+C than TIMTAC = 1.0 (sometimes roundoff produced a message, at
+C other times it did not). Reduce TIMTAC to eliminate the uncertainty.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+C Preceding line allows the SEEK file to be remote if this main data file is
+ 0.1 1.2
+ 1 1 0 0 1
+TACS STAND ALONE
+C 8 May 2011, add illustration of new "SEEK" option of Type-56 device. This
+C uses the logic of Orlando Hevia's new MODELS "SEEK" function (which is just
+C improved MODELS POINTLIST) instead of the usual TACS logic for nonlinear
+C (X, Y) interpolation. Begin with the new optional TACS miscell. data card:
+C 3456789012345678901234567890123456789012345678 -- Ruler for following optional
+C < File Name> IPRMDL KOMPAC miscellaneous data card :
+TACS MISC. DATA dc21seek. 0 0
+ QUART +MIDDLE 0.5
+ MIDDLE +UNITY 0.6
+14SOURCE 1.0.833333333
+88DEV50I50+SOURCE 0.8 3.0 { Apr 97, add 3%
+88DEV50N50+SOURCE
+88DEV51O51+UNITY 0.6 SOURCE
+88DEV51C51+UNITY 1.MIDDLESOURCE
+88DEV52C52+UNITY 0.6 1. SOURCE
+88DEV52O52+UNITY MIDDLESOURCE
+88DEV53F53+SOURCE 0.3
+88DEV53V53+SOURCE 0.6MIDDLE
+88DEV54F54+DEV52C 0.3
+88DEV54V54+DEV52O -0.2 0.3 QUART
+88DEV55 55+SOURCE
+ -1.0
+ -0.5
+ 0.0
+ 0.5
+ 1.0
+ 9999.
+88DEV56 56+SOURCE
+ -1.0 0.0
+ -0.5 0.5
+ 0.0 0.0
+ 0.5 0.5
+ 1.0 0.0
+ 9999.
+C 8 May 2011 WSM adds a second Type-56 device that is identical to the one just
+C inputted. But this second is different in that it has no inline (X,Y) points.
+C Instead, it uses Orlando Hevia's new "SEEK" function of MODELS to produce the
+C identically-same answer. The characteristic of (X, Y) points has been moved
+C to the separate disk file DC21SE45.DAT where root name DC21SEEK is defined
+C by the optional TACS misc. data card. Integer 45 is the function number that
+C is defined by device parameter "B" of columns 57-62. Finally, columns 69-80
+C are to be keyed with the special request word "MODELS SEEK " as shown :
+C Type-56 device allows MODELS "SEEK" : SEEK function # Key word--->
+88SEE56 56+SOURCE 45 MODELS SEEK
+33QUART MIDDLETIMEX UNITY SOURCEDEV50IDEV50NDEV51ODEV51C
+33DEV52CDEV52ODEV53FDEV53VDEV54FDEV54VDEV55 DEV56 SEE56
+77DEV52O 1.0
+77QUART 0.3
+77MIDDLE 0.6
+C Column headings for the 18 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 18 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time TACS TACS TACS TACS TACS TACS TACS TACS TACS TACS
+C QUART MIDDLE TIMEX UNITY SOURCE DEV50I DEV50N DEV51O DEV51C DEV52C
+C
+C TACS TACS TACS TACS TACS TACS TACS TACS
+C DEV52O DEV53F DEV53V DEV54F DEV54V DEV55 DEV56 SEE56
+C 0 0.0 0.3 0.6 0.0 1.0 0.0 0.8 0.0 0.0 0.0 0.0
+C 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C MODELS "SEEK" function # 45 involves 5 pairs of (X,Y). These are stored in List-20 SCONST cells 3 through 12.
+C 1 0.1 0.3 0.6 0.1 1.0 .866025404 0.8 0.0 1.0 0.0 0.0
+C 1.0 0.0 0.0 0.0 0.0 0.5 .133974596 .133974596
+C 2 0.2 0.3 0.6 0.2 1.0 0.5 0.8 0.0 0.0 1.0 1.0
+C 0.0 0.0 0.0 0.0 0.0 0.5 0.5 0.5
+BLANK card that ends TACS data cards
+C 12 1.2 0.3 0.6 1.2 1.0 1.0 0.8 .833333333 1.0 0.0 0.0
+C 1.0 -.1885E-8 -1. 1.0 0.0 1.0 0.0 0.0
+C Extrema of output variables follow. Order and column positioning are the same as for the preceding time-step loop output.
+C Variable maxima : 0.3 0.6 1.2 1.0 1.0 0.8 .833333333 1.0 1.0 1.0
+C 1.0 .866025404 .866025404 1.0 1.0 1.0 0.5 0.5
+C Times of maxima : 0.0 0.0 1.2 0.0 1.2 0.0 1.0 0.1 0.2 0.2
+C 0.0 0.4 0.7 0.5 0.4 1.2 0.2 0.2
+C Variable minima : 0.3 0.6 0.0 1.0 -1. 0.8 0.0 0.0 0.0 0.0
+C 0.0 -1. -1. 0.0 0.0 -1. 0.0 0.0
+C Times of minima : 0.0 0.0 0.0 0.0 0.6 0.0 0.0 0.0 0.0 0.0
+C 0.2 0.9 1.2 0.0 0.0 0.5 0.0 0.0
+ PRINTER PLOT
+ 143 .4 0.0 1.2 DEV50IDEV53F { Axis limits: (-1.000, 0.866)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+PRINTED NUMBER WIDTH, 10, 1, { Request maximum precision (for 9 output columns)
+C 2nd of 9 subcases of DC-21. Test TACS supplemental device types 57 and 58.
+C Printout explanation is as follows:
+C DEV1 = 1/S ON PLS1 UNTIL 0.010, THEN ZERO
+C DEV2 = 1/S ON PLS1 UNTIL 0.010, THEN RESET TO MINUS1, INIT=3.0
+C DEV3 = 1.0 ON PLS2 UNTIL 0.010, THEN ZERO
+C DEV4 = 5.0 ON PLS1 UNTIL 0.010, THEN ZERO
+C DEV5 = COUNTER ON PLUS1, == ISTEP
+ 0.001 0.016
+ 1 1 0 0 1
+TACS STAND ALONE
+ DUMMY +ZERO
+23PLS1 1.0 0.004 0.002
+23PLS2 1.0 0.008 0.004
+11CTRL 1.0 0.010
+98SW1 57+PLUS1
+ 0.002
+ 0.004
+ 0.005
+ 9999
+98SW2 57+PLUS1
+ 0.000
+ 0.003
+ 9999
+98DEV1 58+PLS1 0 0 1.0CTRL
+98DEV2 58+PLS1 0 0 1.0CTRL MINUS1
+98DEV3 58+PLS2 1.0 1.0 0.001CTRL
+98DEV4 58+PLS1 5.0 1.0 CTRL
+98DEV5 58+PLUS1 COUNTR
+C 26 August 2002, add a line from Orlando Hevia's EJEM58.DAT which had
+C illustrated an error using compiled TACS. This exercises S.N. 7323 in
+C TACSUP, which previously was in error yet was not being tested:
+98S_INTE58+SOURCE 1. 1.
+14SOURCE 0 1. 50. -1. 1.
+C End addition on 26 August 2002. The preceding source card was an
+C electric network source in Orlando's data, but then was passed to TACS
+C via a Type-90 source. Here, directly make it a TACS source.
+33SW1 SW2 PLS1 PLS2 CTRL DEV1 DEV2 DEV3 DEV4 DEV5 S_INTE
+77SW2 1.0
+77DEV2 3.0
+C Next 11 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time TACS TACS TACS TACS TACS TACS TACS TACS TACS TACS TACS
+C SW1 SW2 PLS1 PLS2 CTRL DEV1 DEV2 DEV3 DEV4 DEV5 S_INTE
+C 0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0
+C 1 .1E-2 0.0 1.0 1.0 1.0 1.0 .5E-3 3.0005 .33333333 5.0 1.0 .47553E-3
+C 2 .002 1.0 1.0 0.0 1.0 1.0 .1E-2 3.001 .77777778 -.278E-15 2.0 .00135557
+C 3 .003 1.0 0.0 0.0 1.0 1.0 .1E-2 3.001 .92592593 .2776E-15 3.0 .00205397
+C 4 .004 0.0 0.0 1.0 0.0 1.0 .0015 3.0015 .64197531 5.0 4.0 .00250237
+BLANK card ending TACS data
+ PRINTER PLOT
+C 16 .016 1.0 0.0 1.0 1.0 0.0 0.0 -1. 0.0 0.0 16. -.0035024
+C Variable maxima : 1.0 1.0 1.0 1.0 1.0 .0045 3.0045 .92592593 5.0 16. .00265688
+C Times of maxima : .002 0.0 .1E-2 .1E-2 .1E-2 .009 .009 .003 .1E-2 .016 .005
+C Variable minima : 0.0 0.0 0.0 0.0 0.0 0.0 -1. 0.0 -.278E-15 0.0 -.0036569
+C Times of minima : 0.0 .003 0.0 0.0 0.0 0.0 .01 0.0 .002 0.0 .015
+ 144 3. 0.0 20. DEV2 DEV4 { Axis limits: (-1.000, 5.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 9 parts of DC-21. Test TACS supplemental device type 59 (derivative)
+C 27 March 2010, the following LARGEST PRINTED STEP NUMBER (LPSN) is being
+C added to illustrate suppression of the I7 step number after a while (step
+C number 38 in this case). Steps 39 and 40 will have no step number. The 7
+C columns thereby gained allow 17 columns for time (encode using F17.3)
+C 123456789012345678901234567890123456789012345678
+C NOTIME FMTIME
+C < E8.0 > < A6 >
+C LARGEST PRINTED STEP NUMBER 38 F17.3
+C The rules of preceding LPSN are unusual. Columns 33-40 give a step number
+C either in normal I8 format or alternative E8.0 format. Zero or blank
+C imply no LPSN use (to cancel preceding use). Minus one will suppress all
+C printing of step number including step zero. Columns 41 and 42 are unused
+C while 43-48 are reserved for an optional user-supplied format which might
+C be either E-field or F-field. Use of FORMAT ( F17.3 ) this way serves to
+C retain column alignment. Steps 39 and 40 will be encoded as 0.039 and 0.040
+C respectively. If columns 41-48 had been left blank, optimal encoding would
+C have been used, with the result being .039 and .04 respectively. Note
+C that in this case the decimal points would not be alligned. As for E-field,
+C a preceding implied 1P will make the leading digit significant. About the
+C new use of either E-format or I-format data, see also BENCHMARK DC-3. WSM
+C A free-format alternative also is available. Switch to this 14 July 2010:
+LARGEST PRINTED STEP NUMBER, 38, F17.3 { Same effect as preceding fixed-format
+PRINTED NUMBER WIDTH, 11, 1, { Restore default after exceptional 2nd subcase
+ 0.001 0.04
+ 1 1 0 0 1
+TACS STAND ALONE
+ DUMMY +ZERO
+14SIN1 1.0 25. -90.
+14COS1 1.0 25. 0.
+14SIN2 1.0 25. -90. -1.
+14COS2 1.0 25. 0. -1.
+23PLSE 1.0 0.02 0.01
+24RAMP 10.0 0.01 0.03
+98DEV1 59+SIN1
+98DEV2 59+SIN1
+98DEV3 59+PLSE
+98DEV4 59+RAMP
+98DEVA 59+SIN1
+98DEVB 59+SIN2
+98DEVC 59+SIN1
+98DEVD 59+SIN2
+98DEVE 59+COS1
+98DEVF 59+COS2
+33SIN1 COS2 PLSE RAMP DEV1 DEV2 DEV3 DEV4
+33DEVA DEVB DEVC DEVD DEVE DEVF
+77DEV2 1.0
+77DEVC 1.0
+77DEVD 1.0
+C Next 14 output variables belong to TACS (with "TACS" an internally
+C Step Time TACS TACS TACS TACS TACS
+C SIN1 COS2 PLSE RAMP DEV1
+C
+C TACS TACS TACS TACS
+C DEVC DEVD DEVE DEVF
+C 0 0.0 0.0 1.0 0.0 0.0 0.0
+C 1.0 1.0 0.0 0.0
+C 1 .1E-2 .156434465 .987688341 1.0 1.0 156.434465
+C 156.434465 156.434465 987.688341 -12.311659
+C 2 .002 .309016994 .951056516 1.0 2.0 152.582529
+C 152.582529 152.582529 -36.631824 -36.631824
+BLANK card ending TACS data
+ PRINTER PLOT
+C 0.039 -.15643447 .987688341 0.0 0.0 152.582529 152.582529 0.0 0.0 152.582529 152.582529
+C 152.582529 152.582529 36.6318243 36.6318243
+C 0.040 .43071E-14 1.0 1.0 0.0 156.434465 156.434465 1000. 0.0 156.434465 156.434465
+C 156.434465 156.434465 12.3116594 12.3116594
+C Variable maxima : 1.0 1.0 1.0 9.0 156.434465
+C 156.434465 156.434465 987.688341 156.434465
+C Times of maxima : .01 0.0 .1E-2 .029 .04
+C .04 .04 .1E-2 .03
+C Variable minima : -1. -1. 0.0 0.0 -156.43447
+C -156.43447 -156.43447 -156.43447 -156.43447
+C Times of minima : .03 .02 0.0 0.0 .02
+C .02 .02 .01 .01
+ 144 8. 0.0 40. DEVF DEV3 { Axis limits: (-1.000, 1.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 9 in DC-21. Test TACS supplemental device types 60, 61, 62, and 63.
+LARGEST PRINTED STEP NUMBER 0 { Cancel use of preceding subcase
+ 0.001 0.08
+ 2 1 0 0 1
+TACS STAND ALONE
+ DUMMY +ZERO
+14SIN 1.0 25. -90.
+14COS 1.0 25. 0.
+14SIN0 8.0 25. -90.
+14SIN1 1.0 8.0 -90.
+14SIN2 0.5 24.0 -90.
+23PLS1 1.0 0.050 0.025 0.050
+23PLS2 1.0 0.025 0.015 0.050 0.075
+23PLS3 1.0 0.005 0.001 0.075
+98DEV1 60+MINUS1 +ZERO +PLUS1 -1.0 SIN PLUS1
+98DEV2 60+MINUS1 +ZERO +PLUS1 SIN
+98DEV3 60+ZERO +ZERO +PI 20. ISTEP
+98DEV4 61+MINUS1 +ZERO +PLUS1 +DELTAT -3. 222PI SIN0
+98CTRL = PLS1 + PLS2 + PLS3
+98TRCK 62+SIN1 +SIN2 CTRL
+98SMPL 62+SIN1 +SIN2 CTRL
+98PLOT = SIN1 + SIN2
+98MIN 63+SIN +COS -1.
+98MAX 63+SIN +COS +1.
+33SIN COS SIN0 DEV1 DEV2 DEV3 DEV4 MIN MAX
+33CTRL PLOT TRCK SMPL SIN1 SIN2 PLS1 PLS2 PLS3
+C Step Time TACS TACS TACS TACS TACS TACS
+C SIN COS SIN0 DEV1 DEV2 DEV3
+C
+C TACS TACS TACS TACS TACS TACS
+C PLOT TRCK SMPL SIN1 SIN2 PLS1
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C 2 .002 .309016994 .951056516 2.47213595 1.0 1.0 0.0
+C .248882506 .248882506 .125357113 .100361715 .148520791 1.0
+BLANK card ending TACS data
+C 80 .08 .85529E-14 1.0 .68423E-13 0.0 0.0 3.14159265
+C -1.0113901 -1.0113901 -1.0113901 -.77051324 -.24087684 0.0
+C Variable maxima : 1.0 1.0 8.0 1.0 1.0 3.14159265
+C 1.07581929 1.07581929 1.06331351 .999921044 .499960522 1.0
+C Times of maxima : .01 .04 .01 .1E-2 .1E-2 .021
+C .014 .014 .05 .031 .052 .1E-2
+C Variable minima : -1. -1. -8. -1. -1. 0.0
+C -1.0746121 -1.0633135 -1.0633135 -.77051324 -.49996052 0.0
+C Times of minima : .03 .02 .03 .021 .021 0.0
+C .076 .075 .075 .08 .073 0.0
+ PRINTER PLOT
+ 144 8. 0.0 80. PLOT TRCK { Axis limits: (-1.075, 1.076)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 9 in DC-21. Test TACS supplemental device type 64 (min/max tracking)
+ 0.001 0.06
+ 2 1 0 0 1
+TACS STAND ALONE
+ DUMMY +ZERO
+14SIN1 1.0 50. -90.
+23PLS 1.0 0.02 0.001 -0.01
+24RMP 8.0 0.08
+11HLD 1.0 0.03
+98MXTR1 64+RMP +SIN1 +1.
+98MNTR2 64-RMP -SIN1 -1.
+98MNTR3 64+RMP +SIN1 -1. 100.PLS
+98MXTR4 64+RMP +SIN1 +1. HLD
+98PLOT = RMP + SIN1
+33PLOT PLS HLD MXTR1 MNTR2 MNTR3 MXTR4
+77MNTR3 100.
+C Next 7 output variables belong to TACS (with "TACS" an internally-added u
+C Step Time TACS TACS TACS TACS TACS TACS
+C PLOT PLS HLD MXTR1 MNTR2 MNTR3
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 100.
+C 2 .002 .787785252 0.0 0.0 .787785252 -.78778525 .409016994
+BLANK card ending TACS data
+C 60 .06 6.0 0.0 1.0 6.0 -6. 4.44894348
+C Variable maxima : 6.0 1.0 1.0 6.0 0.0 100.
+C Times of maxima : .06 .01 .03 .06 0.0 0.0
+C Variable minima : 0.0 0.0 0.0 0.0 -6. .409016994
+C Times of minima : 0.0 0.0 0.0 0.0 .06 .1E-2
+ PRINTER PLOT
+ 144 6. 0.0 60. PLOT MXTR4 { Axis limits: (0.000, 6.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 9 subcases of DC-21. Test the TACS supplemental device type 65
+C (accumulator/counter). Also, beginning 10 November 2002, add a
+C request for relative table sizing. This may not be very practical,
+C but it deserves to be illustrated. The proportions shown roughtly
+C correspond to default dimensioning, so the effect should be neglible:
+RELATIVE TACS DIMENSIONS
+ 11 15 7 7 3 8 21 28 1
+ 0.001 0.04
+ 2 1 0 0 1
+TACS STAND ALONE
+ DUMMY +ZERO
+14SIN1 1.0 25. -90.
+23PLS 1.0 0.02 0.01
+98ACC1 65+SIN1
+98ACC2 65+PLS
+98DEL1 54+PLS DELTAT
+98DRV = PLS - DEL1
+98RISE 60+ZERO +ZERO +PLUS1 DRV
+98ACC3 65+RISE
+98AVRG1 = ACC1 / ISTEP
+98AVRG2 = ACC2 / ISTEP
+33SIN1 PLS ACC1 ACC2 DEL1 DRV RISE ACC3 AVRG1 AVRG2
+C Next 10 output variables belong to TACS (with "TACS" an internally-adde
+C Step Time TACS TACS TACS TACS TACS TACS
+C SIN1 PLS ACC1 ACC2 DEL1 DRV
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 2 .002 .309016994 1.0 .465451459 2.0 1.0 0.0
+C 4 .004 .587785252 1.0 1.50722721 4.0 1.0 0.0
+BLANK card ending TACS data
+C 38 .038 -.30901699 0.0 .156434465 19. 0.0 0.0
+C 40 .04 .43071E-14 1.0 .43071E-14 20. 0.0 1.0
+C Variable maxima : 1.0 1.0 12.7062047 20. 1.0 1.0
+C Times of maxima : .01 .1E-2 .019 .04 .002 .1E-2
+C Variable minima : -1. 0.0 0.0 0.0 0.0 -1.
+C Times of minima : .03 0.0 0.0 0.0 0.0 .01
+ PRINTER PLOT
+ 144 4. 0.0 40. AVRG1 AVRG2 RISE { Axis limits: (0.000, 1.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 9 subcases of DC-21. Test the TACS supplemental device type 69
+C which became available on 8 January 2003. The Type-68 TACS device is
+C not being illustrated here because DCNEW-25 shows realistic use. Type
+C 69 is for user-supplied source code as defined in SUBROUTINE DEVT69.
+C The illustration here corresponds to logic of the UTPF, which defines
+C just 2 simple functions: DEV69A = twice arg 1 plus arg 2
+C DEV69B = the square of arg 1
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 9 output columns)
+ 0.001 0.020
+ 1 1 0 0 1
+TACS STAND ALONE
+14SOURCE 1.0 50.0 -1.
+88ARG2 = -0.5 * SOURCE
+C The following 3 data cards are for Type-69 TACS devices, which first became
+C available on 8 January 2003. Columns 1-10 are fixed format with the same
+C rules as all other devices. Thereafter, data is free-format with one or
+C more blanks separating each input. First comes the A6 function name (here
+C we illustrate the 2 that are provided in SUBROUTINE DEVT69 of the UTPF).
+C Note that constant arguments are allowed:
+88USERA 69 DEV69A SOURCE ARG2 { Device type 69 is named USERA; 2 args follow
+88USERB 69 DEV69A SOURCE 0.1 { Device type 69 is named USERB; 2 args follow
+88USERC 69 DEV69B SOURCE { Device type 69 is named USERC; single arg follows
+88USERD = 2.0 * USERC
+88VALUE = 2.0 * SOURCE
+C Should a single data card not provide enough space for all inputs of a
+C Type-69 device, the addition of $$ anywhere on the right represents a
+C request for continuation on the following data card. Let's illustrate
+C this artificially. Note the following USERE should equal USERA. Also
+C note that more than a single blank is used to separate names on the
+C initial data card, and that the function name begins in column 11 (the
+C previous illustrations did not have this):
+88USERE 69DEV69A SOURCE $$ { Continuation mark can be anywhere on right
+ ARG2 { Inputs of a continuation line can begin as early as column 11
+C 27 January 2003, add 3rd function having 5 args and diagnostic print:
+88THREE = 3.0
+88USERF 69 DEV69C UNITY 2.0 THREE 4.0 5.0
+88USERG 69 DEV69C 1.0 2.0 THREE 4.0 5.0
+88USERH 69 DEV69C .1E1 2.E0 30.E-1 .4E+1 0.05E+2
+33VALUE USERB ARG2 USERA USERE USERC USERD SOURCEUSERF USERG USERH
+77USERA 1.5 { Initial condition on 1st of 2 function uses
+77VALUE 2.0 { Initial condition on signal that is close to 2nd function
+BLANK card ending TACS data
+ CALCOMP PLOT { Toggle plot mode to vector graphic (preceding was printer)
+ 144 2. 0.0 20. USERA USERD VALUE SOURCE
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+PRINTED NUMBER WIDTH, 12, 2, { Keep dT loop precision the same, but 2 blank separators
+C 8th of 9 subcases of DC-21. The first subcase illustrated the use of
+C Type-56 TACS devices, including the new MODELS SEEK option. But that
+C was without any MODELS. Now, 10 April 2011, we will demonstrate that
+C such use is possible when MODELS is present. So, take the source and
+C Type-56 device of the 1st subcase and add to them the matrix inversion
+C using MODELS of the 14th subcase of DC-68. There is no interaction
+C between the two types of modeling, of course. Because the time step
+C and ending time are as used for the Type-56 device, matrix inversion
+C will differ for all but the first use. Remember, the matrix depends on
+C using simulation time T, and this will differ. But the 10th step here
+C will be for 1 sec, so will coincide with the first step of DC-68. Thus
+C the 10th step here will have the same inverse as the 1st step of DC-68.
+C Rather than only one matrix inversion coinciding, two will. WSM.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+C Preceding line allows the SEEK file to be remote if this main data file is
+ 0.1 1.2 { Take 12 time steps exactly as was the case with subcase 1
+ 1 -1 { Suppress accumulation of plot points, which are unused
+TACS HYBRID { There will be a dummy electric network, too, as well as MODELS
+C 3456789012345678901234567890123456789012345678 -- Ruler for following optional
+C < File Name> IPRMDL KOMPAC miscellaneous data card :
+C TACS MISC. DATA dc21seek. 0 0
+C Omit TACS misc. data since MODELS will follow, and can define the same data
+14SOURCE 1.0.833333333
+88SEE56 56+SOURCE 45 MODELS SEEK
+33SOURCESEE56
+BLANK card that ends TACS data cards
+MODELS { Data for MODELS follows the preceding TACS data. Copy from DC-68
+C 3456789012345678901234567890123456789012345678 -- Ruler for following optional
+C < File Name> IPRMDL KOMPAC miscellaneous data card :
+MODELS MISC. DATA dc21seek. 0 0
+VAR a1, a2, a3, a4, a5, a6, a7, a8, a9
+MODEL invert FOREIGN invert {ixdata:1, ixin:9, ixout:9, ixvar:0}
+USE invert AS invert
+ DATA xdata[1]:=3 -- Order of the matrices involved (here, 3)
+ INPUT xin[1..9] := [ 1.0, 2.0, 3.0,
+ 4.0, 2.0, 5.0,
+ 6.0, 3.0, 2.0 ] + t
+ OUTPUT a1:=xout[1],a2:=xout[2],a3:=xout[3],
+ a4:=xout[4],a5:=xout[5],a6:=xout[6],
+ a7:=xout[7],a8:=xout[8],a9:=xout[9]
+ENDUSE
+RECORD
+ a1 AS a11
+ a2 AS a12
+C a3 AS a13 { DC-68 had more outputs, which we will not bother to show here
+C a4 AS a21 { DC-68 had more outputs, which we will not bother to show here
+C a5 AS a22 { DC-68 had more outputs, which we will not bother to show here
+C a6 AS a23 { DC-68 had more outputs, which we will not bother to show here
+C a7 AS a31 { DC-68 had more outputs, which we will not bother to show here
+ a8 AS a32
+ a9 as a33
+ENDMODELS
+C Electric network really is not used for anything. Define two series R-L-C:
+ GEN BUS1 15.
+ BUS1 2.9
+BLANK card terminates electric network branches
+BLANK card ends all switches
+C Finally, add a sinusoidal source to drive those dummy branches:
+14GEN 100. 50. 0.0 -1.
+BLANK card terminates electric network sources
+BLANK card ending node voltage request
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 9th of 9 subcases of DC-21. This is a variation of the preceding 8th
+C subcase. The Type-56 TACS data is similar but the matrix inversion of
+C MODELS will be replaced by the SEEK function of subcase # 15 of DC-68.
+C Thus both TACS and MODELS use SEEK. Both will load memory of List 20
+C from disk files DC68SExx.DAT where xx = 37 for TACS & 82 for MODELS.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+C Preceding line allows the SEEK files to be remote if this main data file is
+ 1.0 3.00 { Take 3 steps, from 1 second to 3 seconds.
+ 1 -1 { Print every step; do not bother saving points for plotting
+TACS HYBRID
+C 3456789012345678901234567890123456789012345678 -- Ruler for following optional
+C < File Name> IPRMDL KOMPAC miscellaneous data card :
+TACS MISC. DATA dc68seek. 0 0
+C About the preceding, note that here TACS will define the misc. data whereas
+C the preceding subcase did this using MODELS. Either has the same effect.
+C The user who wants to see diagnostic printout of SEEK can set IPRMDL = 9.
+C This would be no problem for Salford ATP, as the extra output would merely
+C be sent to the .DBG file. But for some other compilers, this would go
+C to the .LIS file, and would be unsightly (beware). With just 3 time
+C steps, however, the volume is easily tolerated.
+14SOURCE 1.0.833333333
+C Type-56 device allows MODELS "SEEK" : SEEK function # Key word--->
+88SEE37 56+TIMEX 37 MODELS SEEK
+33SEE37
+BLANK card that ends TACS data cards
+MODELS { Data for MODELS follows the preceding TACS data. Copy from DC-68
+MODEL SAMPLE
+VAR X,Y,Z
+FUNCTION seek FOREIGN seek {ixarg: 2}
+EXEC
+C The following three lines use SEEK function # 82, which is the same as #37.
+C 82 does have a couple of redundant interior points to be discarded, though:
+X:=SEEK(T, 82 )
+Y:=SQRT(X)*0.3
+Z:=SEEK(SQRT(X)*0.3, 82 )
+ENDEXEC
+ENDMODEL
+USE SAMPLE AS SAMPLE
+ENDUSE
+RECORD
+SAMPLE.X AS SEE82 -- This will send X to LUNIT6 output of ATP as variable SEE82
+SAMPLE.Y AS Y
+SAMPLE.Z AS Z
+ENDRECORD
+ENDMODELS
+C Electric network really is not used for anything. Define two series R-L-C:
+ GEN BUS1 15.
+ BUS1 2.9
+BLANK card terminates electric network branches
+BLANK card ends all switches
+C Finally, add a sinusoidal source to drive those dummy branches:
+14GEN 100. 50. 0.0 -1.
+BLANK card terminates electric network sources
+C Total network loss P-loss by summing injections = 0.000000000000E+00
+C 3 or more consecutive, identical Y has allowed the omission of 2 incoming (X,Y) points. The next line reflects this fact.
+C MODELS "SEEK" function # 82 involves 7 pairs of (X,Y). These are stored in List-20 SCONST cells 3 through 16.
+C Blank card ending requests for output variables. |BLANK card ending node voltage request
+C Column headings for the 4 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 1 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Next 3 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Column headings for the 4 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 1 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Next 3 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time TACS MODELS MODELS MODELS
+C SEE37 SEE82 Y Z
+C 0 0.0 0.0 69. 2.49198716 72.6314093
+C TACS "SEEK" function # 37 involves 7 pairs of (X,Y). These are stored in List-20 SCONST cells 19 through 32.
+C 1 1.0 59.5 59.5 2.31408729 64.4480155
+C 2 2.0 50. 50. 2.12132034 55.5807358
+C 3 3.0 96. 96. 2.93938769 93.2118338
+BLANK card ending node voltage request
+C Note the preceding messages that report loading of SEEK functions # 82 & 37:
+C MODELS "SEEK" function # 82 involves 7 pairs of (X,Y). ... cells 3 through 16.
+C TACS "SEEK" function # 37 involves 7 pairs of (X,Y). .. cells 19 through 32.
+C Each requires 14 cells for the 7 pairs of (X, Y) plus two extras (constant
+C overhead) for a total of 16. Because initialization of MODELS occurs before
+C the dT loop is entered, the message for MODELS appears first and it is the
+C use of MODELS that grabs the first 16 cells. TACS use of SEEK first occurs
+C on time step 1, so it follows. TACS loads the following 16 cells of List
+C 20 (cells 17 thru 32). Were the TACS use to be changed from # 37 to # 82,
+C there would be no second message (for TACS). In this case, TACS would be
+C sharing the List-20 storage that was established by MODELS.
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc21se45.dat b/benchmarks/dc21se45.dat
new file mode 100644
index 0000000..f8cd52e
--- /dev/null
+++ b/benchmarks/dc21se45.dat
@@ -0,0 +1,5 @@
+-1.0, 0.0
+-0.5, 0.5
+ 0.0, 0.0
+ 0.5, 0.5
+ 1.0, 0.0
diff --git a/benchmarks/dc22.dat b/benchmarks/dc22.dat
new file mode 100644
index 0000000..78c1c87
--- /dev/null
+++ b/benchmarks/dc22.dat
@@ -0,0 +1,1713 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-22
+C Illustration of basic TACS logic that can be used to control the firing of
+C valves (thyristers) of an ac/dc converter bridge. The electric network
+C actually has no valves, however (TACS output signals are not used). The
+C electric network passes balanced three-phase voltages to TACS via Type-90
+C sources. Summers convert to line-to-line voltages. A constant firing
+C angle DELAY1 of 1.0 msec is used, for simplicity. TACS variables FIRE1
+C through FIRE6 should go back to electric network to control valves (only
+C FIRE1 is passed back, and for simplicity, just to a Type-60 source).
+C After this 1st small subcase, there is a 2nd, followed by 2 large subcases
+C 11 November 1998, add Type-10 source to illustrate saw-toothed waveform
+C Note: program created on this date, or later, is required for use.
+C 26 January 1999, add Orlando Hevia's rectangular and positive-pulse
+C waveforms. One new vector plot at end should be studied to understand.
+PRINTED NUMBER WIDTH, 10, 2,
+ .000500 .040 { Double T-max on 26 Jan 99 to show repetition of Hevia signals
+ 1 1 1 1 1 -1
+ 40 5
+TACS HYBRID
+ PHA-B +GENA -GENB
+ PHB-C +GENB -GENC
+ PHC-A +GENC -GENA
+90GENA
+90GENB
+90GENC
+98ZA-B 52+UNITY 1. 0. 0. PHA-B
+98ZB-A 52+UNITY 1. 0. 1. PHA-B
+98ZB-C 52+UNITY 1. 0. 0. PHB-C
+98ZC-B 52+UNITY 1. 0. 1. PHB-C
+98ZC-A 52+UNITY 1. 0. 0. PHC-A
+98ZA-C 52+UNITY 1. 0. 1. PHC-A
+98DELAY1 .001
+98FIRE1 54+ZA-B .001 DELAY1
+98FIRE4 54+ZB-A .001 DELAY1
+98FIRE3 54+ZB-C .001 DELAY1
+98FIRE6 54+ZC-B .001 DELAY1
+98FIRE5 54+ZC-A .001 DELAY1
+98FIRE2 54+ZA-C .001 DELAY1
+33PHA-B PHB-C PHC-A ZA-B ZB-A ZB-C ZC-B ZC-A ZA-C GENA GENB GENC FIRE1
+33FIRE4 FIRE3 FIRE6 FIRE5
+BLANK card ending all TACS data
+ 0GENA 1.0
+ 0GENB 1.0
+ 0GENC 1.0
+ FIRE1 1.0
+ SAW 1.0 { Load on sawtooth waveform } 1
+ RECT 1.0 { Load on rectangular waveform } 1
+ PULSE 1.0 { Load on positive pulse } 1
+ SINE 1.0 { Load on reference sine wave } 1
+BLANK card ending branch cards of the electric network
+BLANK card ending switch cards of the electric network
+14GENA 1.0 60. -90.
+14GENB 1.0 60. 30.
+14GENC 1.0 60. 150.
+60FIRE1
+C Prior to 11 November 1998, saw-toothed waveforms were not generated on the
+C electrical side. If needed, they were generated in TACS and passed to the
+C electrical side just as the preceding Type-60 source illustrates. Orlando
+C Hevia contributed the following centered sawtooth waveform that is based on
+C a Type-10 analytically-defined source. Note that the signal is directly
+C generated on the electrical side (no need for TACS):
+10SAW 100.0*(TIMEX-(TRUNC(TIMEX/0.010)*0.010))-0.5 { See Oct 98, newsletter
+C Orlando Hevia contributes rectangular waveform and positive pulse on
+C 26 January 1999. The rectangular waveform is trivial, so add it first:
+10RECT 0.50*SIGN(SIN(TIMEX*314.1592))
+C The positive pulse is more involved. More precisely, documentation of
+C the parameters is more involved. The following comment cards are from
+C Mr. Hevia (hope they are self-explanatory).
+C W= PULSE WIDTH (DEGREES)
+C X= ARCCOS(W/2)
+C X= ARCCOS(30/2)= 0.9659
+C P= PHASE IN DEGREES (THE START OF PULSE)
+C Y= PHASE IN RADIANS
+C Y= (P+W/2)*3.141592/180.0
+C Y= (45+30/2)*3.141592/180.0= 1.0472
+C PULSE= 0.50*SIGN(COS(TIMEX*314.1592-Y )-X )+0.5
+10PULSE 0.50*SIGN(COS(TIMEX*314.1592-1.0472)-0.9659)+0.5
+C 10PULSE -.25 { Offset the preceding downward by 1/4 to demonstrate superposition
+C Preceding demonstrated the superposition of two sources on the same node. But
+C 3 were mistreated prior to correction 12 May 2001. To prove that 3 now can
+C be handled properly, split the preceding .25 into .10 and .15:
+10PULSE -.10 { Offset the preceding downward by .10 to demonstrate superposition
+10PULSE -.15 { Offset the preceding downward by .15 to demonstrate superposition
+C Finally, let's add Mr. Hevia's reference waveform. This documents the
+C sign and phase of the rectangular waveform. Plot will be beautiful.
+10SINE SIN(TIMEX*314.1592) { Reference signal (RECT is 1/2 the sign of this)
+BLANK card ending source cards of the electric network
+C Next 4 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 17 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time SAW RECT PULSE SINE TACS TACS TACS TACS TACS TACS TACS
+C TERRA TERRA TERRA TERRA PHA-B PHB-C PHC-A ZA-B ZB-A ZB-C ZC-B
+C
+C TACS TACS TACS TACS TACS TACS TACS TACS TACS TACS
+C ZC-A ZA-C GENA GENB GENC FIRE1 FIRE4 FIRE3 FIRE6 FIRE5
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-3 -.45 0.5 -.25 .1564344 -.569614 1.701371 -1.13176 0.0 1.0 1.0 0.0
+C 0.0 1.0 .1873813 .7569951 -.944376 0.0 0.0 0.0 0.0 0.0
+C 2 .1E-2 -.4 0.5 -.25 .3090169 -.253023 1.61042 -1.3574 0.0 1.0 1.0 0.0
+C 0.0 1.0 .3681246 .6211478 -.989272 0.0 0.0 0.0 0.0 0.0
+BLANK card ending selective node voltage outputs (none)
+C 80 .04 -.5 -.5 -.25 -.261E-5 1.582307 -1.40126 -.181049 1.0 0.0 0.0 1.0
+C 0.0 1.0 .5877853 -.994522 .4067366 1.0 0.0 0.0 1.0 0.0
+C Variable maxima : .45 0.5 .75 1.0 1.731671 1.728633 1.730532 1.0 1.0 1.0 1.0
+C 1.0 1.0 1.0 .9997807 .9991228 1.0 1.0 1.0 1.0 1.0
+C Times of maxima :.0395 .5E-3 .0025 .005 .0055 .0165 .011 .0015 .5E-3 .5E-3 .0045
+C .007 .5E-3 .0375 .032 .0265 .0035 .0025 .0025 .0065 .009
+C Variable minima : -.5 -.5 -.25 -1. -1.73167 -1.73205 -1.73167 0.0 0.0 0.0 0.0
+C 0.0 0.0 -1. -.999781 -.999781 0.0 0.0 0.0 0.0 0.0
+C Times of minima : .01 .0105 0.0 .015 .0305 .025 .0195 0.0 0.0 0.0 0.0
+C 0.0 0.0 .0125 .007 .018 0.0 0.0 0.0 0.0 0.0
+ CALCOMP PLOT
+ 194 4. 0.0 40. -1.0 1.0BRANCH { Show 2 cycles of the 4 Type-10 Hevia signals
+ SINE RECT PULSE SAW
+ PRINTER PLOT
+ 194 2. 0.0 20. TACS PHA-B TACS FIRE1 { Axis limits: (-1.731, 1.732)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 5 subcases of DC-22 is a hybrid TACS example of the TACS-controlled
+C resistance (Type-91 electric network branch type). All-resistive electric
+C network allows easy checking with a pocket calculator at any step: For each
+C branch, verify that program node voltages and branch currents correspond to
+C the branch constraint equations v = R * i. There actually are two discon-
+C nected subnetworks, with one having two TACS-controlled arcs (illustrating
+C use of the multivariable solution code of "ZINCOX") and the other having 1.
+PRINTED NUMBER WIDTH, 11, 1, { Reassert default choice (used before 25 Jan 99)
+CHANGE PRINTOUT FREQUENCY
+ 5 5
+ .02 2.0 { Step size is immaterial since network has no dynamics
+ 1 1 1 1 1
+TACS HYBRID { In a real case, arcs are on electric side, and equations in TACS
+99RESIS = 1.0 + SIN ( 3.0 * TIMEX ) { 1st R(t) signal -- constant + sine wave
+99RES = 1.0 + COS ( 3.0 * TIMEX ) { 2nd R(t) signal -- constant + cosine
+33RESIS RES { Output the only 2 TACS variables: the 2 R(t) resistance functions
+77RESIS 1.0 { Initial condition on 1st R(t) insures smooth start
+77RES 2.0 { Initial condition on 1st R(t) insures smooth start
+BLANK card ending all TACS data
+ BUS1 BUS2 1.0 { Master copy of five 1-ohm resistors } 1
+ BUS2 BUS3 BUS1 BUS2 { 2nd of 3 linear branches in 1st subnetwork
+ BUS3 BUS1 BUS2 { 3rd of 3 linear branches in 1st subnetwork
+ BUS1 BUS4 BUS1 BUS2 { 1st of 2 linear branches in second subnetwork
+ BUS4 BUS1 BUS2 { 2nd of 2 linear branches in second subnetwork
+91BUS2 TACS RESIS { R(t) controlled by TACS variable "RESIS" } 1
+91BUS3 TACS RES { R(t) controlled by TACS "RES" --- 2nd of 2 } 1
+91BUS4 TACS RES { R(t) within 2nd, isolated subnetwork } 1
+BLANK card ending electric network branches
+BLANK card ending switches
+11BUS1 1.0 { 1-volt battery excites ladder networks of both subnetw
+BLANK card ending electric network source cards.
+C Step Time BUS4 BUS3 BUS2 BUS1 BUS2 BUS3
+C TERRA TERRA
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .02 0.4 .153846154 .384615385 1.0 .384615385 .076923077
+C 2 .04 .39992797 .157235276 .393158988 1.0 .3709173 .078688436
+ 1 { Request all node voltage outputs. Just 4: BUS1 through BUS4
+C Last step: 100 2.0 .3976118 .127869158 .321592965 1.0 .484683228
+C Last step cont. ..... .065854649 .204776399 .678407035 .720584502 1.96017029
+C Variable max : 0.4 .175860563 .464962112 1.0 .999366283 .342009625 .999533993
+C Times of maxima : .02 .28 .44 .02 1.6 1.02
+ PRINTER PLOT { Axis limits: (0.000, 2.000)
+ 193 .4 0.0 2.0 TACS RESIS TACS RES { 1st of 2 plots is two TACS R(t)
+ 193 .4 0.0 2.0 BRANCH { Axis limits: (0.000, 9.995)
+ BUS2 BUS3 BUS4 { 3 R(t) arc currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 5 subcases illustrates the EMTP simulation of a rail gun or mass
+C driver. It was contributed by Wendell Neugebauer as described in his
+C paper on the subject (published in the Sept, 1990, issue of EMTP News).
+C AUGMENTED RAILGUN (Mass driver) Simulation
+C CAPACITOR BANK DRIVE
+C 65 CANS OF 65 kJ, 22kV FOR EACH OF 8 STAGES, TOTAL INITIAL ENERGY = 33.8 MJ
+C Wendell NEUGEBAUER
+C 586 Middle Line Rd.
+C Ballston Spa, New York 12020
+C
+C March 20, 1990
+C Tel. (518) 885-6050 (home) (evenings only)
+C
+C This is a simulation of a mass driver as energized from a bank of charged
+C capacitors. The individual switches are timed in synchronism with the
+C position of the mass along the rails. The physics of the driver itself
+C are modelled under TACS using its pseudo FORTRAN equations to implement
+C Newton's laws. The individual TACS statements are commented to show the
+C particular variables being computed. The storage capacitors and the
+C associated electrical network are modelled using standard EMTP components.
+C Note about time-step size. Wendell Neugebauer's originally data
+C case used DELTAT = 1.E-6 and TMAX = 5.5 msec as shown below on
+C comment cards. But the simulation is slow. By multiplying DELTAT
+C by 5, the simulation is speeded without significantly affecting the
+C PRINTER PLOT of rail current.
+NEW LIST SIZES
+ 0 0 68 8 450 35 285 0 0 0
+C 0 0 4700 0 0 0 0 0 12000 0
+ 0 0 4700 0 0 0 0 10 5000 0
+ 0 0 220
+ 240000
+C Preceding dimensions are the same as used by the 4th subcase except that
+C List 18 is increased from 0 (default 5) to 10 and List 19 is reduced to
+C 5K from 12K. This addition of NLS is necessitated by the modification
+C of ATD immediately below. In turn, that change was necessitated by the
+C a change to SSTACS (for many years, TACS Table 1 has been overflowing).
+ABSOLUTE TACS DIMENSIONS
+C Expand TACS Table 1 from 60 to 90 on 29 March 2007. Orlando Hevia,
+C using F95 GNU, discovered Table 1 need of 672 / 8 within SSTACS:
+C 60 270 300 60 90 1250 550 180
+ 85 270 300 60 90 1250 550 180
+UNIQUE TACS SWITCH { Halt if Type-91 or 93 TACS source is not uniquely defined
+C The preceding UTS is added during July of 2003. The answer is unchanged.
+C This data case was picked only because both Type-91 and 93 sources exist.
+C 1.E-6 5.5E-3 0. 0. ------ Orig. misc. data card
+C 1 11 1 0 1 -1 ------ Orig. misc. data card
+ 5.E-6 5.0E-3 0. 0. { Larger DELTAT speeds simulation
+ 1 3 1 0 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID
+C LIST OF INPUT CONSTANTS
+C RAIL RESISTANCE COEFFICIENT (R. Hawkes method for including skin effect)
+C with the units ohms/amperes**0.75
+11RRAIL0 5.53E-5 -1.
+C RAIL INDUCTANCE GRADIENT, H/m
+11LPRIME .5765E-6 -1.
+C PROJECTILE MASS, kg
+11MASS 2.500 -1.
+C LENGTH OF RAIL, m
+11XRAIL 8.0 -1.
+C Muzzle discharge resistor, ohms
+11RDUMP 8.E-3 -1.
+C final rail inductance, H
+11LRAILF 4.6E-6 -1.
+C final rail resistance, ohms
+11RRAILF 2.63E-4 -1.
+C augmenting rail inductance, H
+11LAUG 4.2E-6 -1.
+C augmenting rail resistance, ohms
+11RAUG 1.0E-4 -1.
+C Mutual inductance gradient, augmenting to main rail, H/m
+11DMDX .35E-6 -1.
+C Friction approximation coefficient, fraction of applied force
+11FMISC 0.2 -1.
+C Initial projectile position, m
+11XINIT 0. -1.
+C Projectile initial velocity, m/s
+11VINIT 738.0 -1.
+C Rail mass ablation coefficient, kg/A/V/s
+11ALPHA 49.E-9 -1.
+C Threshold current for for computing effective arc drop
+11ITHRES 100000. -1.
+C Bore diameter, m
+11BORE 0.09 -1.
+C Velocity of sound in the medium within rails, m/s
+11VSOUND 346.0 -1.
+C Coefficient for computing shock force
+11GAMMA 1.40 -1.
+C Ambient pressure, N/m**2
+11PAMB 1.013E5 -1.
+C positions of mass along the rails where the various switches close
+11XA 0.25 -1.
+11X2 .50 -1.
+11X3 1.00 -1.
+11X4 1.70 -1.
+11X5 2.10 -1.
+11X6 2.70 -1.
+11X7 3.00 -1.
+C
+C THIS CONCLUDES THE TACS SOURCES.
+C
+C LIST OF EMTP SOURCES
+C VBREECH FROM EMTP
+90VBR
+C IRAIL FROM EMTP
+91IRAIL
+C
+C
+C --- EMTP NODE VOLTAGES ON 8 CAPACITORS. USED TO TRIGGER CROWBAR DIODES.
+90NODE01
+90NODE02
+90NODE03
+90NODE04
+90NODE05
+90NODE06
+90NODE07
+90NODE08
+C --- EMTP SWITCH STATUS 0 = OPEN 1 = CLOSED
+C --- USED TO KEEP CROWBAR DIODES ON ONCE THEY ARE TRIGGERED.
+93NODE17
+93NODE18
+93NODE19
+93NODE20
+93NODE21
+93NODE22
+93NODE23
+93NODE24
+C ---
+C --- SUPPLEMENTAL DEVICES
+C
+C --- COMPUTE GRID SIGNALS FOR CROWBAR DIODES
+C --- GRID SIGNALS (N1-N8) TURN ON WHEN THE CAPACITOR VOLTAGE IS LESS THAN 0.
+88N1 = - NODE01
+88N2 = - NODE02
+88N3 = - NODE03
+88N4 = - NODE04
+88N5 = - NODE05
+88N6 = - NODE06
+88N7 = - NODE07
+88N8 = - NODE08
+C
+C
+C SUPPLEMENTAL DEVICES
+C SIMPLE RAILGUN MECHANICS
+C COMPUTE MECHANICAL FORCE ON THE PROJECTILE INCL. AUGMENTATION
+88FMECH =.5*(1.0-FMISC)*(LPRIME+2.*DMDX)*ABS(IRAIL)**2-FSHOCK
+C USE LINEAR MODEL FOR SOLID ARMATURE ARC VOLTAGE DROP
+88GNARC =45.+31.43*TIMEX*1000.
+C COMPUTE RATE OF MASS ABLATION FROM THE RAILS
+88MDOT =(ALPHA*ABS(IRAIL)*ABS(GNVOLT))*FLAG1
+C COMPUTE VDOT = PROJECTILE ACCELERATION, INCLUDE TIME DELAY OF ONE
+C STEP FOR STABILITY
+ VEL1 +VEL
+88VDOT =((FMECH-VEL1*MDOT)/MASS1)*FLAG1
+C COMPUTE MACH NUMBER, PRESSURE RATIO, AND SHOCK FORCE
+88MACH =VEL1/VSOUND
+88PR =GAMMA*(GAMMA+1.)/4.*ABS(MACH)**2+1
+88PRATIO =PR+GAMMA*MACH*ABS(((ABS(MACH)**2*ABS((GAMMA+1.))**2/16.+1.)))**0.5
+88FSHOCK =PI*BORE**2/4*PRATIO*PAMB
+C
+C COMPUTE RESET SIGNAL FOR FIRST LAUNCH
+C FLAG1 IS 1 AS LONG AS PROJECTILE IS IN BARREL
+C Introduce one time step delay for stability of computation
+ X1 +X
+88FLAG1 =(TIMEX .GT. (2.*DELTAT)).AND.(X1.LE.XRAIL)
+88FLAG4 =(TIMEX .GT. (2.*DELTAT))
+88FLAG5 =NOT(FLAG1)
+C
+C COMPUTE MASS1, PROJECTILE PLUS ABLATED RAIL MASS
+88MASS1 58+MDOT 1.0 0.0 1.0FLAG4 MASS
+C INTEGRATE VDOT TO GET VELOCITY OF MASS
+88VEL 58+VDOT 1.0 0.0 1.0FLAG4 VINIT
+C INTEGRATE VELOCITY TO GET PROJECTILE POSITION
+88X 58+VEL 1.0 0.0 1.0FLAG4 XINIT
+C COMPUTE THE INSTANTANEOUS RAIL INDUCTANCE
+88LRAIL =LPRIME*ABS(X1)*FLAG1+FLAG5*LRAILF
+C COMPUTE THE INSTANTANEOUS RAIL RESISTANCE
+88RRAIL =FLAG1*RRAIL0*ABS(X1)**0.75+FLAG5*RRAILF
+C COMPUTE INSTANTANEOUS MUTUAL INDUCTANCE, AUGMENTING TO MAIN RAILS
+88M =DMDX*(FLAG1*X1+FLAG5*XRAIL)
+C
+C CALCULATE THE POWER AND ENERGY DELIVERED TO THE RAILS
+88PBR =VBR*IRAIL
+88EBR 58+PBR 1.0 0.0 1.0FLAG4 ZERO
+C CALCULATE SHOCK POWER AND ENERGY
+88PSHOCK =FSHOCK*VEL*FLAG1
+88ESHOCK58+PSHOCK 1.0 0.0 1.0FLAG4 ZERO
+C CALCULATE ARC POWER AND ENERGY
+88PARC =IRAIL*GNVOLT*FLAG1
+88EARC 58+PARC 1.0 0.0 1.0FLAG4 ZERO
+C CALCULATE MIXING POWER AND ENERGY
+88PMIX =0.5*VEL**2*MDOT*FLAG1
+88EMIX 58+PMIX 1.0 0.0 1.0FLAG4 ZERO
+C CALCULATE THE DUMP RESISTOR POWER AND ENERGY
+88PMUZ =RDUMP*(ABS(IRAIL-I3A)**2)
+88EMUZ 58+PMUZ 1.0 0.0 1.0FLAG5 ZERO
+C CALCULATE PROJECTILE CHANGE IN KINETIC ENERGY
+88DKE =0.5*MASS*(VEL**2-VINIT**2)
+C CALCULATE ABLATED PLASMA CHANGE IN KINETIC ENERGY
+88PLSMKE =0.5*(MASS1-MASS)*VEL**2
+C CALCULATE INSTANTANEOUS RAIL HEAT POWER AND ENERGY
+88HPOWR =ABS(IRAIL)**2*RRAIL
+88HEAT 58+HPOWR 1.0 0.0 1.0FLAG4 ZERO
+C COMPUTE AUGMENTING RAIL LOSS
+88PAUG =IRAIL*IRAIL*RAUG
+88EAUG 58+PAUG 1.0 0.0 1.0FLAG4 ZERO
+C CALCULATE FRICTION POWER AND ENERGY
+88PFRIC =VEL*0.25*FMISC*(FMECH+FSHOCK)*FLAG1
+88EFRIC 58+PFRIC 1.0 0.0 1.0FLAG4 ZERO
+C CALCULATE TRAPPED MAGNETIC ENERGY WITHIN RAIL MATERIAL (ASSUMPTION)
+88ETRAP =3.0*EFRIC
+C COMPUTE ENERGY STORED IN RAIL AND MUTUAL INDUCTANCE
+88ESTORE =(.5*LRAIL+.5*LAUG+M)*IRAIL*IRAIL
+C COMPUTE ENERGY BALANCE DYNAMICALLY-should equal zero-conservation of energy
+88EBAL =EBR-ETRAP-EFRIC-HEAT-PLSMKE-DKE-EMUZ-EMIX-EARC-ESHOCK-ESTORE-EAUG
+C
+C COMPUTE INJECTION CURRENTS I1, I2, I3
+C THESE CURRENTS EFFECTIVELY REPRESENT THE BACK EMF OF THE MOVING MASS
+88I1 =(IRAIL*(RRAIL-RRAILF)/RRAILF)*FLAG1
+88I2A =(IRAIL*(LRAIL-LRAILF)/LRAILF)*FLAG1+M*IRAIL*FLAG4/LRAILF
+88I2 =I2A-I1
+C Compute the effective arc voltage
+88GNVOLT =SIGN(IRAIL)*GNARC*(1.-EXP(-ABS(IRAIL)/ITHRES))
+88I3A =((IRAIL*(-RDUMP)+GNVOLT)/RDUMP)*FLAG1
+88I3 =I3A-I2A
+C COMPUTE INJECTION CURRENT DUE TO MUTUAL EFFECTS
+88I4I =M*IRAIL/LAUG
+88I4O =-I4I
+C
+C CAPACITOR SWITCHING FLAGS BASED UPON PROJECTILE POSITION
+88FLAG11 =X .GT. XA
+88FLAG12 =X .GT. X2
+88FLAG13 =X .GT. X3
+88FLAG14 =X .GT. X4
+88FLAG15 =X .GT. X5
+88FLAG16 =X .GT. X6
+88FLAG17 =X .GT. X7
+C
+C TACS OUTPUTS
+C 111111222222333333444444555555666666777777888888999999AAAAAABBBBBBCCCCCCDDDDDD
+33VDOT VEL X MASS1 IRAIL I1 I2 I3 FMECH MDOT ESTOREVBR EAUG
+33EBR ESHOCKEARC EMIX EMUZ DKE PLSMKEHEAT EFRIC ETRAP EBAL
+BLANK card that ends TACS data cards
+C EMTP CIRCUIT INPUT FOLLOWS
+C --- ELECTRIC NETWORK BRANCHES.
+C --- SERIES R-L-C BRANCHES
+$VINTAGE, 1
+C --- RC SNUBBER ACROSS RAIL GUN
+C RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ 0I1 0.033 4.5E2 4
+C --- RAIL FINAL RESISTANCE R_RF
+ 0I1 I2 2.63E-4
+C --- RAIL FINAL INDUCTANCE L_LF
+ 0I2 I3 4.6E-3
+C --- DUMP RESISTANCE R_DUMP
+ 0I3 8.0E-3
+C --- CAPACITORS C = 16116 MICRO FARADS , R_FUSE = 223 MICRO OHMS
+C RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ 0NODE01 223.E-6 17459. 4
+ 0NODE02 NODE01 4
+ 0NODE03 NODE01 4
+ 0NODE04 NODE01 4
+ 0NODE05 NODE01 4
+ 0NODE06 NODE01 4
+ 0NODE07 NODE01 4
+ 0NODE08 NODE01 4
+C --- IGNITRON SWITCHES R_SWITCH = 30 MICRO OHMS, L_SWITCH = 0.35 MICRO HENRIES
+C RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ 0NODE09NODE25 30.E-6 0.35E-3
+ 0NODE10NODE26NODE09NODE25
+ 0NODE11NODE27NODE09NODE25
+ 0NODE12NODE28NODE09NODE25
+ 0NODE13NODE29NODE09NODE25
+ 0NODE14NODE30NODE09NODE25
+ 0NODE15NODE31NODE09NODE25
+ 0NODE16NODE32NODE09NODE25
+C --- INDUCTORS R_IND = 250 MICRO OHMS, L_IND = 20 MICRO HENRIES
+C RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ 0NODE33NODE41 75.E-6 3.0E-3
+ 0NODE34NODE41NODE33NODE41
+ 0NODE35NODE41NODE33NODE41
+ 0NODE36NODE41NODE33NODE41
+ 0NODE37NODE41NODE33NODE41
+ 0NODE38NODE41NODE33NODE41
+ 0NODE39NODE41NODE33NODE41
+ 0NODE40NODE41NODE33NODE41
+C --- INTERNAL BUSWORK R_INT = 25 MICRO OHMS L_INT = 1 MICRO HENRY
+C RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ 0NODE25NODE33 25.E-6 1.0E-3
+ 0NODE26NODE34NODE25NODE33
+ 0NODE27NODE35NODE25NODE33
+ 0NODE28NODE36NODE25NODE33
+ 0NODE29NODE37NODE25NODE33
+ 0NODE30NODE38NODE25NODE33
+ 0NODE31NODE39NODE25NODE33
+ 0NODE32NODE40NODE25NODE33
+C --- DIODE IMPEDANCE: R_DIODE = 73 MICRO OHMS , L_DIODE = 0.2 MICRO HENRIES
+C RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ 0 NODE17 73.E-6 0.2E-3
+ 0 NODE18 NODE17
+ 0 NODE19 NODE17
+ 0 NODE20 NODE17
+ 0 NODE21 NODE17
+ 0 NODE22 NODE17
+ 0 NODE23 NODE17
+ 0 NODE24 NODE17
+C --- EXTERNAL BUSWORK: R_BUS = 37.3 MICRO OHMS, L_BUS = 0.47 MICRO HENRIES
+C RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ 0NODE41VBR 37.3E-6 0.47E-3
+ 0VBR I4I 1.E-4
+ 0I4I I4O 4.2E-3
+ 0I4O IRAIL 1.0E-9
+$VINTAGE, 0
+BLANK card after last electric network branch
+C INPUT SWITCH CARDS HERE
+ IRAIL I1 -1.0 1000.00 1
+C --- SWITCH DATA.
+C --- 8 IGNITRON SWITCHES
+C --- <---TCLOSE<----TOPEN
+ NODE01NODE09 0. 50.E-3
+C --- TACS CONTROLLED SWITCHES USING FLAGS
+13NODE02NODE10 FLAG11 1
+13NODE03NODE11 FLAG12 1
+13NODE04NODE12 FLAG13 1
+13NODE05NODE13 FLAG14 1
+13NODE06NODE14 FLAG15 1
+13NODE07NODE15 FLAG16 1
+13NODE08NODE16 FLAG17 1
+C
+C --- DIODE DATA: 8 CROWBAR DIODES. (TACS CONTROLLED)
+C --- GRID SIGNAL TURNS ON DIODE, TACS SIGNAL KEEPS THE DIODE ON REGARDLESS
+C --- OF "RINGING VOLTAGE" ACROSS THE DIODE. THIS HELPS TO SMOOTH THE SOLUTION
+C --- ESPECIALLY WHEN THE BANKS ARE TRIGGERED AT DIFFERENT TIMES.
+C <---N1<---N2<------VON<----IHOLD<---TEDION CLOSED <-GRID<-TACS XX
+11NODE17NODE25 0. 0. 0. N1 NODE17 10
+11NODE18NODE26 0. 0. 0. N2 NODE18 10
+11NODE19NODE27 0. 0. 0. N3 NODE19 10
+11NODE20NODE28 0. 0. 0. N4 NODE20 10
+11NODE21NODE29 0. 0. 0. N5 NODE21 10
+11NODE22NODE30 0. 0. 0. N6 NODE22 10
+11NODE23NODE31 0. 0. 0. N7 NODE23 10
+11NODE24NODE32 0. 0. 0. N8 NODE24 10
+BLANK card ends all switch cards
+C SOURCE CARDS follow ....
+C MASS DRIVER EQUIVALENT CURRENT SOURCES
+60I1 -1
+60I2 -1
+60I3 -1
+60I4I -1
+60I4O -1
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C I1 |TERRA *I2 *IRAIL *
+C I2 |I1 *I3 *
+C I3 |TERRA *I2 *
+C NODE01 |TERRA *NODE09*
+C NODE02 |TERRA *NODE10*
+C NODE03 |TERRA *NODE11*
+C NODE04 |TERRA *NODE12*
+C NODE05 |TERRA *NODE13*
+C NODE06 |TERRA *NODE14*
+C NODE07 |TERRA *NODE15*
+BLANK card after last electric network source
+C --- INITIAL CONDITIONS: INITIAL VOLTAGE ON THE 8 CAPACITORS
+ 2NODE01 22.E3
+ 2NODE02 22.E3
+ 2NODE03 22.E3
+ 2NODE04 22.E3
+ 2NODE05 22.E3
+ 2NODE06 22.E3
+ 2NODE07 22.E3
+ 2NODE08 22.E3
+C --- INITIAL CONDITIONS: LINEAR BRANCH CURRENTS
+ 3NODE01 0. 22.E3
+ 3NODE02 0. 22.E3
+ 3NODE03 0. 22.E3
+ 3NODE04 0. 22.E3
+ 3NODE05 0. 22.E3
+ 3NODE06 0. 22.E3
+ 3NODE07 0. 22.E3
+ 3NODE08 0. 22.E3
+C --- LIST OF NODE VOLTAGE OUTPUT REQUESTS
+ NODE01I1
+C Step Time I1 NODE01 NODE02 NODE03 NODE04 NODE05
+C TERRA TERRA TERRA TERRA TERRA TERRA
+C
+C I1 IRAIL I1 NODE01 NODE02 NODE03
+C I1 TERRA TERRA TERRA TERRA
+C
+C NODE08 TACS TACS TACS TACS TACS
+C TERRA VDOT VEL X MASS1 IRAIL
+C
+C TACS TACS TACS TACS TACS TACS
+C MDOT ESTORE VBR EAUG EBR ESHOCK
+C
+C TACS TACS TACS TACS TACS
+C PLSMKE HEAT EFRIC ETRAP EBAL
+C *** Switch "IRAIL " to "I1 " closed before 0.00000000E+00 sec.
+C *** Switch "NODE01" to "NODE09" closed after 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-5 .1346699E7 -.13272E9 .163913E-3 .163913E-3 .163913E-3 .163913E-3
+C 227.865632 6033.34599 3.36674866 -331.8007 .409782E-9 .409782E-9
+C .409782E-9 0.0 738. 0.0 2.5 6033.34599
+C 0.0 262.0891 10364.4902 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 -262.81712
+C 2 .1E-4 .1028069E8 -.35417E9 0.0 0.0 0.0 0.0
+C 663.274543 16104.2329 32.4352182 -1549.0272 .819564E-9 .819564E-9
+C .819564E-9 0.0 738. 0.0 2.5 16104.2329
+C 0.0 1867.29349 14205.3015 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 -1873.9365
+C Warning. The powers (NODE01, TERRA) through (NODE07, TERRA) should be
+C ------- zero initially. But these are floating (near) zeros. The problem
+C comes from the current. Turning the debugger on or off may change
+C these from near zeros to exact zeros, or vice versa. The SUBTS2
+C computation involves the cancellation of 2 very large numbers to
+C give the current. If numbers such as 1.E-4 are seen, this is the
+C best that can be guaranteed using 64 bits. WSM + THL, 8 August 96
+BLANK card ending node voltage outputs
+C Valve "NODE22" to "NODE30" closing after 2.56000000E-03 sec.
+C Switch "NODE08" to "NODE16" closing after 2.61500000E-03 sec.
+C Valve "NODE23" to "NODE31" closing after 2.93000000E-03 sec.
+C Valve "NODE24" to "NODE32" closing after 3.10000000E-03 sec.
+C 1000 .005 .9701709E8 .1788576E8 .114869E8 .3849588E9 -.530779E9 -.327226E9
+C 4394.39452 857904.981 5103.30646 -.415356E7 -.407104E7 -.389447E7
+C -.387852E7 0.0 2415.92363 8.18382873 2.53769379 857904.981
+C 0.0 .5299207E7 -4437.3114 872163.762 .1706545E8 272689.202
+C 110003.436 .1023366E7 353147.438 .1059442E7 181783.733
+C Variable max: .102486E9 .3091743E9 .141619E10 .316849E10 .38723E10 .31399E10
+C 4394.39452 .1634357E7 5103.30646 0.0 .286847E-7 .553206E-7
+C .214316E-6 534570.044 2415.92363 8.18382873 2.53769379 .1634357E7
+C 10.1502923 .9999568E7 22826.1693 872163.762 .170705E8 272689.202
+C 110003.436 .1023366E7 353147.438 .1059442E7 297386.202
+C Times of max: .00499 .001105 .00109 .0013 .00178 .00235
+C .005 .00152 .005 0.0 .35E-3 .675E-3
+C .002615 .001515 .00493 .005 .00493 .00152
+C .002975 .0029 .45E-4 .005 .004895 .00493
+C .00493 .005 .00493 .00493 .004925
+ PRINTER PLOT
+ 194 1. 0.0 5.5 TACS IRAIL { Axis limits: (0.000, 1.634)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 5 subcases illustrates the modeling of Static Var Control (SVC).
+C Contributed to ATP materials of the Can/Am user group February 1992 by:
+C Gabor B. Furst Consultants Kurt G. Fehrle, Consultant
+C #203 - 1745 Martin Drive 705 Westtown Circle
+C White Rock/ South Surrey B.C. West Chester, PA 19382
+C CANADA V4A 6Z1 USA
+C Phone: 604-535-6540 Phone: 610-344-0432
+C FAX: 604-535-6548
+C In July of 1993, Mr. Furst revised it again in preparation for his use
+C of it at Prof. Ned Mohan's University of Minnesota short course there.
+C Size 1-10: 43 63 56 3 230 18 167 0 0 0
+C Size 11-20: 0 15 3602 -9999 -9999 0 0 0110679 0
+C Size 21-29: 0 0 105 0 -9999 -9999 -9999 -9999 -9999
+NEW LIST SIZES
+ 0 0 68 8 450 35 285 0 0 0
+ 0 0 4700 0 0 0 0 0 12000 0
+ 0 0 220
+ 240000
+C *********** A GENERIC 6 PULSE SVC MODEL ************************************
+C
+C This is a conceptual model only, it must be refined
+C for any specific system; the control algorithm can be greatly improved.
+C
+C 6 pulse 100 MVAR TCR-SVC connected to a 230/34.5 kV Y/D transformer;
+C TCR's connected in delta.
+C
+C Thyristor gating pulses are phase locked to the current zero transition
+C in an auxiliary reactor (RMAB,RMBC,RMCA), which could be an oversized PT;
+C individual phase open loop VAR control is used, with a superimposed.
+C slow voltage control.
+C
+C The disturbance is the on/off switching of a 52.3 MVA, 0.7 p.f., 34.5 kV
+C load (XLA/B/C). The SVC response can be obtained by plotting the r.m.s
+C value of the 34.5 kV phase to phase voltages, which are the TACS variables
+C TXNAB/BC/CA. To obtain the response on the 34.5 kV bus without the SVC,
+C the thyristors have to be blocked. One way of doing this is to punch
+C 1000000. in col. 17-24 of the thyristor switches 11.
+C
+C To get the SVC overall response plot the transformer ph-ph r.m.s secondary
+C voltage TXNA (TACS), or VILLAVG (TACS) for the av. value of the three
+C ph-ph r.m.s. voltages
+C
+C To get the VAR import/phase through the transformer secondary
+C plot QINA (TACS)
+C
+C To get the transformer secondary voltage (instant.) plot TRSA
+C
+C TRSA-XLA shows the switching of the phase to phase load
+C
+C RXAB-TRSB plots the current through one AB arm of the thyristor bridge
+C
+C For sake of simplicity, some of the TACS variables have not been
+C initialized, so ignore the first 25 ms of the plots.
+C
+C If in the "Superimposed Voltage Control Section the gain
+C of DVQ is set to zero, the model reverts to open loop VAR control
+PRINTED NUMBER WIDTH, 13, 2,
+ALLOW EVEN PLOT FREQUENCY { See April, 1998, newsletter (to allow IPLOT = 2 below)
+C For best results, do not use a time step more than 1/2 Degree (23.148
+C microsec for 60 Hz). Here, to speed the illustration, we use twice that,
+C & only simulate for half as long (extend to 0.5 sec for more transients).
+C Free-format data input is used in order to specify DELTAT precisely:
+C DELTAT TMAX XOPT COPT EPSILN TOLMAT
+C .0000462962962962963, 0.25, 60., , , , , , , , ,
+C That was the old, brute-force way. Alternative finesse first was made
+C available on 19 August 1998. As long as columns 1-16 involve no decimal
+C point, dT and T-max are replaced by points/cycle & end time in cycles:
+ 360 15 60. { Points per cycle, simulation time in cycles, XOPT
+ 1 4 1 2 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID
+C
+C Firing pulses are derived from the current through the measuring inductances
+C RMAB, RMBC and RMCA as explained above. Device 91 imports the current into
+C TACS from the measuring switches connecting the RM's in delta,
+C corresponding to the delta connected thyristor valves.
+C
+C The current lags the voltage 90 deg. and its zero transition produces
+C the firing signal at an alpha of 90 deg.
+C This is done by TACS level triggered switches Device 52.
+C The firing pulse delay is calculated by the variables DELAB/BC/CA
+C and implemented by TACS transport device Device 54;
+C
+C For convenience, the firing angle is initialized to alpha = 180 deg.
+C by the constant of DELIN, where DELA is 4.167 ms for a 60 Hz system.
+C The required firing angle is then calculated backwards from the
+C 180 deg. point, by using the variable DELYA(B,C).
+C The actual firing angle is then DELAB = DELIN -DELYA etc.
+C for the other phases. The minimum firing angle is limited by DELYA = 4.167 ms.
+C Then DELAB= DELIN - DELYA =0.0 (90 deg.)
+C DELIN = 4.167 ms.; DELAB =0.0 corresponds to minimum alpha 90 degrees.
+C For 50 Hz, DELIN = 5.0 ms.
+C
+C *********** VOLTAGE AND REACTIVE REFERENCE *************
+11VREFD 1.0
+C VAR reference
+C the TCR rating is 100 MVA 3ph; the per phase is 33.3 MVAR or 1.00 p.u.;
+C initial load through the 230/34.5 kV tranformer is 45 MVAR or 15 MVAR/phase;
+C equal to 0.45 p.u. giving approx. 90% bus voltage at 34.5 kV;
+C this is taken as reference; Q divided by QTCR =33.3 MVAR will be Q p.u.
+88QTCR = 33.3*10**6
+C The VAR reference QREF should be determined so that the superimposed
+C voltage control changes the VAR flow as little as possible
+88QREF = 0.30
+C
+C *********** VOLTAGES TRANSFERRED FROM NETWORK *************
+C
+C ******* Import 34.5 kV phase voltages, get phase to phase and normalize *****
+C TRSA/B/C are the transformer secondary ph-g voltages
+C 90 - TACS voltage source driven by an EMTP network node voltage
+C (Rule Book p. 3-15)
+90TRSA
+90TRSB
+90TRSC
+C the phase to phase voltages
+99TRAB = TRSA - TRSB
+99TRBC = TRSB - TRSC
+99TRCA = TRSC - TRSA
+C normalize to get one p.u. for the phase to phase rms value
+99TABX = TRAB/34500
+99TBCX = TRBC/34500
+99TCAX = TRCA/34500
+C get the rms value of the A-B phase to phase voltage
+C Device 66 (Rule Book p. 3-32)
+99TXNAB 66+TABX 60.
+99TXNBC 66+TBCX 60.
+99TXNCA 66+TCAX 60.
+C
+C ************** PHASE A FIRING PULSES **************************************
+C
+C 91 - TACS; current source driven by an EMTP network current (Rule B.p 3-15)
+91RMAB
+C send square impulse at current zero Device 52 (Rule B. p. 3-21)
+88FAB1 52+UNITY 1. 0. 0 RMAB
+88FAB2 52+UNITY 1. 0. -1 RMAB
+C to shift impulse by DELAB delay required Type 54 (Rule B. p. 3-23)
+98FIAB1 54+FAB1 .0000 DELAB
+98FIAB2 54+FAB2 .0000 DELAB
+C for a 50 Hz system the constant .004167 below should be changed to 0.005
+88DELIN = .004167 { to initialize alpha to 180 deg.
+C
+C ************* PHASE B FIRING PULSES *************************************
+C
+91RMBC
+88FBC1 52+UNITY 1. 0. 0 RMBC
+88FBC2 52+UNITY 1. 0. -1 RMBC
+98FIBC1 54+FBC1 .0000 DELBC
+98FIBC2 54+FBC2 .0000 DELBC
+C
+C ************ PHASE C FIRING PULSES *************************************
+C
+91RMCA
+88FCA1 52+UNITY 1. 0. 0 RMCA
+88FCA2 52+UNITY 1. 0. -1 RMCA
+98FICA1 54+FCA1 .0000 DELCA
+98FICA2 54+FCA2 .0000 DELCA
+C
+C ************* OPEN LOOP VAR CONTROL **************************
+C **** WITH SUPERIMPOSED VOLTAGE CONTROL ***********
+C
+C the following will be repeated for all three phases as the SVC
+C
+C ************ RACTIVE POWER FLOWS *********
+C
+C calclate VAR transfer at transf. secondary
+91TRXA { 34.5 kV side current through transformer
+C Device 53 is transpoert delay or signal phase shifting (Rule Book p. 3-22)
+88TRIA 53+TRXA .00417 .0043
+88TRVA 53+TRSA .00417 .0043
+C the following equation for calculating VAR flow is from
+C Miller: Reactive power Control etc. (text book) p. 321
+88QINA =( -TRSA * TRIA * 0.5 + TRXA * TRVA * 0.5 ) / QTCR
+C
+91TRXB
+88TRIB 53+TRXB .00417 .0043
+88TRVB 53+TRSB .00417 .0043
+88QINB =( -TRSB * TRIB * 0.5 + TRXB * TRVB * 0.5 ) / QTCR
+C
+91TRXC
+88TRIC 53+TRXC .00417 .0043
+88TRVC 53+TRSC .00417 .0043
+88QINC =( -TRSC * TRIC * 0.5 + TRXC * TRVC * 0.5 ) / QTCR
+C
+C ******************** SUPERIMPOSED VOLTAGE CONTROL ********************
+C
+C ******** DELTA Q TO ADJUST VOLTAGE ************
+C the average value of phase to phase voltage is
+ 0VLLAVG +TXNAB +TXNBC +TXNCA .3333 .85 1.15
+C the difference between ref. and actual voltage is
+C slow down the response by a (1/1+st) block
+ 1DVQ +VLLAVG -VREFD 50.0 -1.0 1.0
+ 1.0
+ 1.0 0.500
+C the required VAR import taking voltage correction into account
+ 0QRNEW +QREF +DVQ
+C ***************** PHASE A ERROR ******************************************
+C
+C error in VAR import
+ 0ERRQA +QRNEW -QINA
+ 0QINCRA +ERRQA
+C the new reactor output is then given by the Steinmetz Algorithm as
+C the output at T-delT + QINCRA + QINCRB - QINCRC;
+C as shown below in calculating the new SVC VAR's
+C ****************** PHASE B ERROR ****************************************
+C
+ 0ERRQB +QRNEW -QINB
+ 0QINCRB +ERRQB
+C
+C ****************** PHASE C ERROR *****************************************
+C
+ 0ERRQC +QRNEW -QINC
+C
+ 0QINCRC +ERRQC
+C
+C
+C **************** PHASE A PULSE DELAY CONTROL ****************************
+C the current firing angle is DELAB, this corresponds to an old reactor
+C p.u. current given by the following non linear relation corresponding
+C to the x = sigma-sin(sigma) function
+99DLA1 = 1 - DELAB/.004167
+C where DLA1 is the normalized conduction angle sigma between firing
+C angle alpha 90 and 180 degrees.
+C
+99REOAB 56+DLA1
+ 0.0 0.0
+ 0.111 0.0022
+ 0.222 0.0176
+ 0.333 0.0575
+ 0.444 0.1306
+ 0.555 0.2414
+ 0.666 0.3900
+ 0.777 0.5718
+ 0.888 0.7783
+ 1.000 1.0000
+ 9999.
+C the new reactor current demanded is the increment plus the old
+C which is QINCRA + QINCRB - QINCRC + REOAB and is min. 0.0 max. 1.0
+C this is applying the Steinmetz algorithm
+ 0INREAB +QINCRA +REOAB +QINCRB -QINCRC 0.00 1.00
+C this is now reconverted into an angle, using the inverse of the
+C above relation, and becomes the new DELAB; (Rule Book p. 3-25 )
+99DELYAA56+INREAB
+ 0.0 0.0
+ 0.0022 0.111
+ 0.0176 0.222
+ 0.0575 0.333
+ 0.1306 0.444
+ 0.2414 0.555
+ 0.3900 0.666
+ 0.5718 0.777
+ 0.7783 0.888
+ 1.0000 1.000
+ 9999.
+99DELYA =DELYAA * 0.004167
+C now smooth it out a bit
+ 1DELAB +DELIN -DELYA 1.0 .0040
+ 1.0
+ 1.0 0.015
+C
+C ****************** PHASE B PULSE DELAY CONTROL **************************
+C
+99DLB1 = 1 - DELBC/.004167
+C
+99REOBC 56+DLB1
+ 0.0 0.0
+ 0.111 0.0022
+ 0.222 0.0176
+ 0.333 0.0575
+ 0.444 0.1306
+ 0.555 0.2414
+ 0.666 0.3900
+ 0.777 0.5718
+ 0.888 0.7783
+ 1.000 1.000
+ 9999.
+C
+ 0INREBC +QINCRB +REOBC +QINCRC -QINCRA 0.00 1.00
+C
+99DELYBB56+INREBC
+ 0.0 0.0
+ 0.0022 0.111
+ 0.0176 0.222
+ 0.0575 0.333
+ 0.1306 0.444
+ 0.2414 0.555
+ 0.3900 0.666
+ 0.5718 0.777
+ 0.7783 0.888
+ 1.000 1.000
+ 9999.
+99DELYB =DELYBB * 0.004167
+C
+ 1DELBC +DELIN -DELYB 1.0 0.0040
+ 1.0
+ 1.0 0.015
+C
+C *************** PHASE C PULSE DELAY CONTROL ******************************
+C
+99DLC1 = 1 - DELCA/.004167
+C
+99REOCA 56+DLC1
+ 0.0 0.0
+ 0.111 0.0022
+ 0.222 0.0176
+ 0.333 0.0575
+ 0.444 0.1306
+ 0.555 0.2414
+ 0.666 0.3900
+ 0.777 0.5718
+ 0.888 0.7783
+ 1.000 1.000
+ 9999.
+C
+ 0INRECA +QINCRC +REOCA +QINCRA -QINCRB 0.00 1.00
+C
+99DELYCC56+INRECA
+ 0.0 0.0
+ 0.0022 0.111
+ 0.0176 0.222
+ 0.0575 0.333
+ 0.1306 0.444
+ 0.2414 0.555
+ 0.3900 0.666
+ 0.5718 0.777
+ 0.7783 0.888
+ 1.000 1.000
+ 9999.
+99DELYC =DELYCC * 0.004167
+C
+ 1DELCA +DELIN -DELYC 1.0 0.0040
+ 1.0
+ 1.0 0.015
+C
+C ***************** REACTOR SWITCHING ***************************************
+C
+C control signals to switch reactive load 'XLA/B/C' on and off
+C see TYPE 12 switches in power network.
+C TACS source (Rule Book p. 3-14)
+23FRLA 1000. 0.200 0.100 0.2
+23FRLB 1000. 0.200 0.100 0.2
+23FRLC 1000. 0.200 0.100 10.0
+C
+C initializations
+77VLLAVG 1.0
+77TXNAB 1.0
+77QRNEW .30
+77QINA .30
+77QINB .30
+77QINC .30
+C
+C ********* TACS OUTPUTS ************
+C
+33TXNAB TXNBC TXNCA ERRQA VLLAVG
+33QRNEW DVQ QINA
+BLANK end of TACS
+C
+C ************** NETWORK DATA *********************
+C
+C ********* LINE TO SOURCE ***********
+C
+C transmission line (equivalent) from GEN source to transformer
+ GENA TRFA 4.5 25.0
+ GENB TRFB 4.5 25.0
+ GENC TRFC 4.5 25.0
+C fault level at trsf. 230 kV approx. 2083 MVA
+C
+C ************** MAIN TRANSFORMER **************
+C
+C transformer capacitance to ground 10000pF
+C a very simple model, can be replaced with any more complex model
+C transformer 230000/34500 Y/D 100 MVA; In=250 A
+C x = 7.0% on 100 MVA
+C 230^2/100* 0.07 = 37.0 ohms trsf. leakage reactance
+C TRANSFORMER busref imag flux busin rmag empty
+C ------------______------______------______------_____________________________-
+C
+C no saturation
+ TRANSFORMER 0.7 700.0 X
+ 0.7 700.0 { 100%
+ 9999
+ 1TRPA 0.80 36.0 1330
+ 2TRXA TRXB 1.00 385 {372
+ TRANSFORMER X Y
+ 1TRPB
+ 2TRXB TRXC
+ TRANSFORMER X Z
+ 1TRPC
+ 2TRXC TRXA
+C
+C transformer capacitance to ground and ph - ph 10000pF
+ TRXA 0.01
+ TRXB 0.01
+ TRXC 0.01
+C capacitance between phases
+ TRXA TRXB 0.01
+ TRXB TRXC 0.01
+ TRXC TRXA 0.01
+C
+C *********** HARMONIC FILTERS ***************
+C
+C 5th harmonic filter 20 MVAR
+ TRSA TF5 2.38 44.5
+ TRSB TF5 2.38 44.5
+ TRSC TF5 2.38 44.5
+C 7th harmonic filter 20 MVAR
+ TRSA TF7 1.21 44.5
+ TRSB TF7 1.21 44.5
+ TRUC TF7 1.21 44.5
+C
+C ******** TRANSFORMER SECONDARY LOAD ***************
+C 75 MW, 30 MVAR
+ TRSA ND 13.67 5.47
+ TRSB ND 13.67 5.47
+ TRSC ND 13.67 5.47
+C
+C shunt capacitor 20 MVAR
+ TRSA 44.5
+ TRSB 44.5
+ TRSC 44.5
+C ********** SWITCHED REACTOR FOR SVC RESPONSE TEST *********
+C
+C switched reactor .1 sec. on .1 sec. off
+C see switch type 13 below and type 23 source in TACS
+C 24.7 MVA, 0.7 p.f.,17.5 MW, 17.5 MVAR load
+ XLA NSR 34.00 34.00
+ XLB NSR 34.00 34.00
+ XLC NSR 34.00 34.00
+C
+C
+C ************** SNUBBERS **************
+C
+C the snubber parameters shown below are not necessarily the
+C values a manufacturer would choose for a 34.5 kV valve.
+C The parameters were selected so that only a small currrent flows
+C through the control reactor with the valves non conducting,
+C and overvoltages and spikes interfering with the firing control
+C are prevented. It is quite possible that a better combination
+C than that shown exists.
+C
+C in series with valves
+C
+ CATAB RXAB .1
+ ANOAB RXAB .1
+ CATAB RXAB 4.0
+ ANOAB RXAB 4.0
+C
+ CATBC RXBC .1
+ ANOBC RXBC .1
+ CATBC RXBC 4.0
+ ANOBC RXBC 4.0
+C
+ CATCA RXCA .1
+ ANOCA RXCA .1
+ CATCA RECA 4.0
+ ANOCA RXCA 4.0
+C
+C across valves
+C
+ CATAB TRSA 2000. .1
+ ANOAB TRSA 2000. .1
+C
+ CATBC TRSB 2000. .1
+ ANOBC TRSB 2000. .1
+C
+ CATCA TRSC 2000. .1
+ ANOCA TRSC 2000. .1
+C
+C ************* SVC CONTROLLED REACTOR *************
+C
+C reactor in TCR appr. 100.0 MVA Xr = 3 * 34.5^2/100 =35.71 ohm
+ RXAB TRSB 0.1 35.71 1
+ RXBC TRSC 0.1 35.71
+ RXCA TRSA 0.1 35.71
+C
+C *************** REACTOR FOR FIRING PULSE GENERATION ******
+C
+C Fire angle reference measurement using delta connected reactors
+C TRSA - RMXA is just a dummy separation from the main 34.5 kV bus
+ TRSA RMXA 0.01 1
+ TRSB RMXB 0.01
+ TRSC RMXC 0.01
+C The reactors are delta connected through measuring switches below
+ RMAB RMXB 200. 20000.
+ RMBC RMXC 200. 20000.
+ RMCA RMXA 200. 20000.
+C
+BLANK end of branch data
+C *************** SWITCH DATA ***************8
+C
+C current measurement in the auxiliary reactor for firing pulse generation
+C these switches complete the delta connection of the reactors
+C (Rule Book p.6A-9)
+ RMXA RMAB MEASURING
+ RMXB RMBC MEASURING
+ RMXC RMCA MEASURING
+C
+C current measurement in the main transformer secondary
+ TRXA TRSA MEASURING 1
+ TRXB TRSB MEASURING 0
+ TRXC TRSC MEASURING 0
+C current measurement in the main transformer primary
+ TRFA TRPA MEASURING 1
+ TRFB TRPB MEASURING 0
+ TRFC TRPC MEASURING 0
+C
+C switch for on/off switching the 17.5 MVAR resistive-reactive load
+C (Rule Book p. 6C-1)
+12TRSA XLA FRLA 11
+12TRSB XLB FRLB 10
+12TRSC XLC FRLC 10
+C
+C VALVES
+C 6 valves, 2 per phase, 3ph. 6 pulse supply to TCR
+C Rule Book p. 6B-1
+11TRSA CATAB 00. 15.0 FIAB1 1
+11ANOAB TRSA 00. 15.0 FIAB2 1
+11TRSB CATBC 0000. 15.0 FIBC1 1
+11ANOBC TRSB 000. 15.0 FIBC2 1
+11TRSC CATCA 0000. 15.0 FICA1 1
+11ANOCA TRSC 000. 15.0 FICA2 1
+C
+BLANK end of switch data
+C
+C AC sources
+C 230 kV supply
+14GENA 187794. 60. 0. -1.
+14GENB 187794. 60. 240. -1.
+14GENC 187794. 60. 120. -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C GENA |TRFA *
+C TRFA |GENA *TRPA *
+C GENB |TRFB *
+C TRFB |GENB *TRPB *
+C GENC |TRFC *
+C TRFC |GENC *TRPC *
+C X |TERRA *TERRA *TRPA *
+C TRPA |TRFA * X*
+C TRXA |TERRA *TRXB *TRXB *TRXC *TRXC *TRSA *
+C TRXB |TERRA *TRXA *TRXA *TRXC *TRXC *TRSB *
+BLANK end of source cards
+C Total network loss P-loss by summing injections = 9.766831747973E+07
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C RMXA RMAB -3.58276847E-01 -2.79310857E+00 2.81599321E+00 -97.3095 2.25048004E+04 3.95893953E+04
+C RMXB RMBC -2.15903199E+00 1.67914276E+00 2.73513063E+00 142.1267 2.24866103E+04 3.77703877E+04
+C RMXC RMCA 2.51730884E+00 1.11396581E+00 2.75277380E+00 23.8705 2.24781027E+04 3.69196208E+04
+C TRXA TRSA 1.87366412E+03 -5.12826995E+02 1.94257787E+03 -15.3071 2.92045856E+07 -1.15739798E+07
+C TRXB TRSB -1.84783216E+03 -1.48829687E+03 2.37265911E+03 -141.1510 3.63691255E+07 -1.14600036E+07
+C TRXC TRSC -2.58319590E+01 2.00112387E+03 2.00129059E+03 90.7396 3.11027262E+07 -4.48411843E+06
+C TRFA TRPA 3.59043573E+02 9.36972121E+01 3.71067992E+02 14.6259 3.34033086E+07 -1.05190303E+07
+C TRFB TRPB -1.76142866E+02 -3.36446952E+02 3.79766851E+02 -117.6338 3.53040617E+07 -3.27502311E+06
+C TRFC TRPC -1.82900707E+02 2.42749740E+02 3.03940957E+02 126.9963 2.81187847E+07 -4.63098619E+06
+C 1st gen: GENA 187794. 187794. 359.04357262628 371.06799188975 .337131143389E8 .348421712345E8
+C 1st gen: 0.0 0.0 93.697212129556 14.6259048 -.87978871273E7 0.9675951
+ TRSA TRFA { Names of nodes for which voltage is to be outputted
+C Step Time TRSA TRFA TRXA TRFA TRSA RXAB TRSA TACS
+C TRSA TRPA XLA TRSB RMXA TXNAB
+C
+C TACS TACS TACS TACS TACS TACS TACS
+C TXNBC TXNCA ERRQA VLLAVG QRNEW DVQ QINA
+C *** Phasor I(0) = -3.5827685E-01 Switch "RMXA " to "RMAB " closed in the steady-state.
+C *** Phasor I(0) = -2.1590320E+00 Switch "RMXB " to "RMBC " closed in the steady-state.
+C *** Phasor I(0) = 2.5173088E+00 Switch "RMXC " to "RMCA " closed in the steady-state.
+C *** Phasor I(0) = 1.8736641E+03 Switch "TRXA " to "TRSA " closed in the steady-state.
+C *** Phasor I(0) = -1.8478322E+03 Switch "TRXB " to "TRSB " closed in the steady-state.
+C *** Phasor I(0) = -2.5831959E+01 Switch "TRXC " to "TRSC " closed in the steady-state.
+C *** Phasor I(0) = 3.5904357E+02 Switch "TRFA " to "TRPA " closed in the steady-state.
+C *** Phasor I(0) = -1.7614287E+02 Switch "TRFB " to "TRPB " closed in the steady-state.
+C *** Phasor I(0) = -1.8290071E+02 Switch "TRFC " to "TRPC " closed in the steady-state.
+C %%%%% Floating subnetwork found! %%%%%% %%%%%% %%%%%% %%%%%%
+C %%%%% The elimination of row "NSR " of nodal admittance matrix [Y] has produced a near-zero diagonal value Ykk =
+C 0.00000000E+00 just prior to reciprocation. The acceptable minimum is ACHECK = 7.63336829E-12 (equal to EPSILN
+C times the starting Ykk). This node shall now to shorted to ground with 1/Ykk = FLTINF.
+C 0 0.0 25855.428 188520.7342 1873.664121 359.0435726 0.0 .8977594404 -2.87558569 0.0
+C 0.0 0.0 0.0 1.0 0.3 0.0 0.3
+C 1 .46296E-4 26190.60084 188656.0309 1882.328634 357.3536908 0.0 .8251974241 -2.80696162 .0854224562
+C .050813098 .0346093582 .3019675015 .85 .3019675015 .0019675015 0.0
+C Valve "ANOBC " to "TRSB " closing after 9.25925926E-05 sec.
+C 2 .92593E-4 26517.79623 188733.8621 1890.419856 355.5549605 0.0 .752384056 -2.73748258 .1209236949
+C .0710411015 .049896216 .301272907 .85 .301272907 .001272907 0.0
+BLANK end of output requests
+C Valve "TRSB " to "CATBC " closing after 2.40231481E-01 sec.
+C Valve "TRSA " to "CATAB " opening after 2.41388889E-01 sec.
+C Valve "ANOAB " to "TRSA " closing after 2.42638889E-01 sec.
+C Valve "ANOCA " to "TRSC " opening after 2.44351852E-01 sec.
+C Valve "TRSC " to "CATCA " closing after 2.45138889E-01 sec.
+C Valve "TRSB " to "CATBC " opening after 2.46574074E-01 sec.
+C Valve "ANOBC " to "TRSB " closing after 2.48611111E-01 sec.
+C Valve "ANOAB " to "TRSA " opening after 2.49675926E-01 sec.
+C 5400 .25 24620.31357 180704.5964 887.7133221 311.5182977 310.0730625 18.04597752 -2.55047538 .999668036
+C 1.002620895 1.00418338 -.05590233 1.002057221 .5408201644 .2408201644 .5967224946
+C Variable maxima : 30965.63617 188749.4575 2719.683362 461.7713374 506.9005859 1315.892083 4.520536227 1.084424099
+C 1.091008223 1.08827864 .3019675015 1.085619064 .5823416906 .2823416906 .8205355066
+C Times of maxima : .0344444444 .1388889E-3 .2030092593 .2025 .235787037 .0044907407 .0224537037 .0396759259
+C .0401851852 .0358796296 .462963E-4 .0400925926 .1684722222 .1684722222 .2031481481
+C Variable minima : -31985.2128 -187338.374 -2784.38662 -483.591685 -508.17585 -1284.74425 -4.58557455 0.0
+C 0.0 0.0 -.564929157 .85 .1001935452 -.199806455 0.0
+C Times of minima : .0266666667 .0252314815 .2112962963 .2103703704 .2441203704 .19625 .0309259259 0.0
+C 0.0 0.0 .0118981481 .462963E-4 .0158333333 .0158333333 .462963E-4
+ PRINTER PLOT
+ 193.02 0.0 .25 .94 1.0TACS TXNAB { Limits [.94, 1.0] amplify the transient
+BLANK end of plot requests
+BEGIN NEW DATA CASE
+C 5th of 5 subcases illustrates the modeling of Static Var Control (SVC).
+C This is very similar to the preceding 4th case except that here newer
+C MODELS replaces TACS for the control system modeling. The same
+C Gabor Furst of suburban Vancouver, British Columbia, Canada contributed
+C this during February of 1995 (see January and April newsletters). To
+C speed the simulation, TMAX = 0.6 has been reduced to 0.10 sec.
+NEW LIST SIZES
+ 0 0 68 8 450 35 285 0 0 0
+ 0 0 4700 0 64800 0 0 0 0 0
+C 0 0 220 126000
+ 0 0 220 30 126000 { 16 March 2007
+C About the preceding 2 lines, List 27 default = 26 resulted in TACS1 overflow
+C Since year 1 (1995), this went undetected until Orlando Hevia's G95 testing
+ 240000 742
+PRINTED NUMBER WIDTH, 11, 1, { Restore defaults after preceding aberations
+C DELTAT TMAX XOPT COPT EPSILN TOLMAT
+C 46.296-6 0.600 60. ---- Gabor Furst's original data card
+.0000462962962962963, 0.100, 60., , , , , , , , ,
+C the time step is the cycle time 1/60 sec. divided by 360 degrees
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT IPUN MEMSAV ICAT NENERG IPRSUP
+C 9999 1 0 1 1
+ 1 3 1 2 1 -1
+ 5 5 20 20 100 100 500 500
+C The running of this MODELS file requires the latest version of TPbig
+C with the increased list sizes for MODELS
+C
+C The example demonstrates a generic SVC connected to a 230/34.5 kV
+C step-down transformer, with an SVC reactor rating of 100 MVA.
+C The SVC is tested by switching on and off a 25 MVA 0.7 p.f.
+C load on the 34.5 kV bus
+C plot vatiable 'vllavg' for SVC response
+C ==============================================================================
+MODELS
+ INPUT trma {v(TRSA)} -- transf. sec. voltage
+ trmb {v(TRSB)}
+ trmc {v(TRSC)}
+--
+ irab {i(RMAB)} -- aux. reactor delata current
+ irbc {i(RMBC)}
+ irca {i(RMCA)}
+--
+ itra {i(TRXA)} -- transf. sec. current
+ itrb {i(TRXB)}
+ itrc {i(TRXC)}
+--
+ rxab {i(TRXA)} -- main reactor current
+ rxbc {i(TRXB)}
+ rxca {i(TRXC)}
+--
+ OUTPUT -- firing signals
+ FIAB1, FIAB2, FIBC1, FIBC2, FICA1, FICA2 -- firing signals
+ FRLA, FRLB, FRLC -- reactor switching
+--
+MODEL svcmod -- MODELS version of DC 22 subcase 4
+--
+--
+DATA omega {dflt: 2*pi*freq}
+ dt {dflt :0.25/freq}
+--
+CONST freq {val: 60}
+ tper {val: 1/freq}
+ qtcr {val: 33.3*1E+6} -- p.u. SVC reactor rating/phase
+ qref {val: 0.00} -- set 0 for this example
+ delin {val: 0.25/freq} -- initialization for firing delay (60Hz)
+ tpimp {val: 0.200} -- test reactor switching cycle
+ ton {val: 0.100} -- reactor on time
+ tstart {val: 0.3} -- start of switching reactors
+--
+VAR
+ tt, vllavg, vllmax, vll12p , qrnew, ttt1, ttt2, ttt3
+ dvq, error, fdb, vref, verr, inreact, delyi
+ vtrsec[1..3], vtrff[1..3]
+ f1[1..3], f2[1..3], ficat[1..3], fian[1..3],del[1..3],i,k,l,ir[1..3]
+ vrms[1..3], itr[1..3], tri[1..3], trv[1..3], qin[1..3]
+ errq[1..3], qincr[1..3]
+--
+ HISTORY vtrsec[1..3] {dflt:[0,0,0]} -- transf. ph-g voltages
+ vtrff[1..3] {dflt:[0,0,0]} -- transf. ph-ph voltages
+--
+ dvq {dflt: 0} -- forward block output
+ error {dflt: 0} -- error signal
+ fdb {dflt: 0} -- feedback
+--
+ ir[1..3] {dflt :[0,0,0]} -- aux. reactor delata current
+ itr[1..3] {dflt :[0,0,0]} -- trsf. sec. current
+ del[1..3] {dflt :[0,0,0]} -- firing pulse delay angles
+--
+ INPUT trma {dflt: trma} -- trsf sec. voltage ph-g
+ trmb {dflt: trmb}
+ trmc {dflt: trmc}
+--
+ irab {dflt: irab} -- svc reactor currents
+ irbc {dflt: irbc}
+ irca {dflt: irca}
+--
+ itra {dflt: itra} -- transf. sec. current
+ itrb {dflt: itrb}
+ itrc {dflt: itrc}
+--
+ rxab {dflt: 0} -- main reactor delta current
+ rxbc {dflt: 0}
+ rxca {dflt: 0}
+--
+ OUTPUT
+ ficat[1..3], fian[1..3] -- firing signals to thyristors
+ ttt1, ttt2, ttt3 -- control signal to switch reactors
+--
+ INIT
+ vref:= 1.0 -- reference voltage
+ verr:= 0 -- voltage error
+ tt := timestep/tper -- integration multiplier
+ vrms[1..3] := 0
+ ficat[1..3]:= 0 -- firing pulse to cathode
+ fian[1..3]:= 0 -- firing pulse to anode
+ qin[1..3]:= 0.3 -- rective power
+ ttt1:= 0 -- test rector breaker control
+--
+ ENDINIT
+--
+DELAY CELLS DFLT: 100
+ CELLS(vtrsec[1..3]):500
+ CELLS(vtrff[1..3]):500
+--
+-- liearization of angel versus p.u. current through thyristors
+ FUNCTION dely POINTLIST
+-- angle current
+ ( 0.0, 0.0)
+ ( 0.0022, 0.111)
+ ( 0.0176, 0.222)
+ ( 0.0575, 0.333)
+ ( 0.1306, 0.444)
+ ( 0.2414, 0.555)
+ ( 0.3900, 0.666)
+ ( 0.5718, 0.777)
+ ( 0.7783, 0.888)
+ ( 1.0000 1.000)
+--
+-- ************** EXEC ****************
+EXEC
+-- convert to arrays
+ ir[1..3] := [irab, irbc, irca]
+ vtrsec[1..3] := [trma, trmb, trmc]
+--
+-- control signals for the type 12 switches in EMTP
+-- to switch test reactors
+-- the following is a pulse train 0.1/0.1 on/off starts at 0.2 s
+ ttt1:= AND((t-tstart) MOD tpimp < ton , t-tstart)
+ ttt2 := ttt1
+ ttt3 := ttt1
+--
+-- form phase to phase voltages and normalize
+ vtrff[1] :=(trma - trmb)/34500
+ vtrff[2] :=(trmb - trmc)/34500
+ vtrff[3] :=(trmc - trma)/34500
+--
+-- calculation of voltage rms values
+ FOR i := 1 TO 3 DO
+ vrms[i]:= sqrt(vrms[i]**2 + tt*(vtrff[i]**2 - delay(vtrff[i], tper)**2))
+ ENDFOR
+--
+-- calculate reactive through transformer
+-- qina, qinb, qinc
+-- see DC22-3 for explanation
+ itr[1..3] := [itra, itrb, itrc]
+ FOR i:= 1 TO 3 DO
+ tri[i]:= delay(itr[i],tper/4)
+ trv[i]:= delay(vtrsec[i],tper/4)
+ qin[i] := (-vtrsec[i]*tri[i] * 0.5 + itr[i]* trv[i] * 0.5)/ qtcr
+ ENDFOR
+--
+-- generate firing pulses 500 microsec wide
+--
+ if t> timestep then
+--
+ FOR i := 1 TO 3 DO
+ f1[i]:= AND(ir[i] >= 0, delay(ir[i],0.0005) < 0 )
+ f2[i]:= AND(ir[i] <= 0, delay(ir[i],0.0005) > 0 )
+ ENDFOR
+-- delayed pulses caclulated
+-- by var and voltage control
+ FOR i:= 1 TO 3 DO
+ ficat[i] := delay(f1[i],del[i]) -- cathode
+ fian[i] := delay(f2[i],del[i]) -- anode
+ ENDFOR
+ endif
+-- average ph-ph voltage normalized
+ vllavg := 0.3333 * (vrms[1] + vrms[2] + vrms[3]) {max: 1.15 min : 0.85}
+--
+-- alternative to above but not used in this model
+-- 12 pulse rectfication with output smoothed alternative to rms signal
+-- smoothing rough, should be done with 120 c/s filter, not used here
+-- shown as possible alternative only
+-- vllmax := (max(abs(vtrff[1]), abs(vtrff[2]), abs(vtrff[3])))/1.41
+-- laplace(vll12p/vllmax) := 1.0|s0 / ( 1|s0 + 0.030|s1 )
+--
+-- voltage error forward and feedback loop
+ verr:= vllavg - vref
+-- combine endcombine used because forward - feedback loop
+ COMBINE AS first_group
+ error := sum( 1|vllavg - 1|vref - 1|fdb)
+-- forward gain . 1/1+stdelay
+ laplace(dvq/error) := 400.0|s0/(1.0|s0 + 0.003|s1)
+-- derivative feedback
+ claplace(fdb/dvq ) := 0.005|s1 / (1.0|s0 + 0.012|s1 )
+ ENDCOMBINE
+--
+ FOR i := 1 TO 3 DO
+-- total error the qref - qin[i] component may be omitted
+-- it is usefull for unbalanced loads
+ errq[i] := (dvq + qref - qin[i]){ min:0 max:1.0}
+ ENDFOR
+-- calculate new firing angles
+-- phase A
+ FOR i:= 1 TO 3 DO
+ k:= (i+4) mod 3 if k=0 then k:=3 endif -- k is phase B
+ l := (i+5) mod 3 if l=0 then l:= 3 endif -- l is phase C
+-- apply phase unbalance correction
+ inreact:= errq[i] + errq[k] -errq[l] {max: 1.0 min: 0.0}
+-- linearize and convert from firing angle to time delay
+ delyi := delin - dely(inreact ) * dt
+ claplace(del[i]/delyi){dmax: (dt-0.0001) dmin: 0.0}:=
+ 1.0|s0/(1.0|s0 + 0.005|s1)
+ ENDFOR
+--
+ENDEXEC
+ENDMODEL
+USE svcmod AS test
+ INPUT trma:= trma trmb:= trmb trmc:= trmc
+ irab:= irab irbc:= irbc irca:= irca
+ itra:= itra itrb:= itrb itrc:= itrc
+--
+ OUTPUT FIAB1 := ficat[1] FIAB2 := fian[1] FIBC1 := ficat[2]
+ FIBC2 := fian[2] FICA1 := ficat[3] FICA2 := fian[3]
+ FRLA := ttt1 FRLB := ttt2 FRLC := ttt3
+ENDUSE
+C
+RECORD test.vrms[1] AS vrmsab
+ test.vrms[2] AS vrmsbc
+ test.vrms[3] AS vrmsca
+ test.vllavg AS vllavg
+ test.error AS error
+ test.dvq AS dvq
+ test.fdb AS fdb
+ test.verr AS verr
+ENDMODELS
+C ************** NETWORK DATA *********************
+C
+C ********* LINE TO SOURCE ***********
+C
+C transmission line (equivalent) from GEN source to transformer
+ GENA TRFA 4.5 25.0
+ GENB TRFB 4.5 25.0
+ GENC TRFC 4.5 25.0
+C fault level at trsf. 230 kV approx. 2083 MVA
+C
+C ************** MAIN TRANSFORMER **************
+C
+C transformer capacitance to ground 10000pF
+C a very simple model, can be replaced with any more complex model
+C transformer 230000/34500 Y/D 100 MVA; In=250 A
+C x = 7.2% on 100 MVA
+C 230^2/100* 0.07 = 37.0 ohms trsf. leakage reactance
+C TRANSFORMER busref imag flux busin rmag empty
+C ------------______------______------______------_____________________________-
+C
+C no saturation
+ TRANSFORMER 0.7 700.0 X
+ 0.7 700.0 { 100%
+ 9999
+ 1TRPA 0.80 36.0 1330
+ 2TRXA TRXB 1.00 375 {385
+ TRANSFORMER X Y
+ 1TRPB
+ 2TRXB TRXC
+ TRANSFORMER X Z
+ 1TRPC
+ 2TRXC TRXA
+C
+C transformer capacitance to ground and ph - ph 10000pF
+ TRXA 0.01
+ TRXB 0.01
+ TRXC 0.01
+C capacitance between phases
+ TRXA TRXB 0.01
+ TRXB TRXC 0.01
+ TRXC TRXA 0.01
+C
+C *********** HARMONIC FILTERS ***************
+C
+C 5th harmonic filter 20 MVAR
+ TRSA TF5 2.38 44.6 1
+ TRSB TF5 2.38 44.6
+ TRSC TF5 2.38 44.6
+C 7th harmonic filter 10 MVAR
+ TRSA TF7 2.43 22.3 1
+ TRSB TF7 2.43 22.3
+ TRUC TF7 2.43 22.3
+C
+C ******** TRANSFORMER SECONDARY LOAD ***************
+C 70 MW, 30 MVAR
+ TRSA ND 13.67 5.47
+ TRSB ND 13.67 5.47
+ TRSC ND 13.67 5.47
+C
+C shunt capacitor 20 MVAR
+ TRSA 44.5
+ TRSB 44.5
+ TRSC 44.5
+C ********** SWITCHED REACTOR FOR SVC RESPONSE TEST *********
+C
+C switched .1 sec. on .1 sec. off
+C see switch type 13 below and type 23 source in TACS
+C 25.0 MVA, 0.7 p.f.,17.5 MW, 17.5 MVAR load
+C
+ XLA NSR 34.0 34.0
+ XLB NSR 34.0 34.0
+ XLC NSR 34.0 34.0
+C
+C ************** SNUBBERS **************
+C
+C the snubber parameters shown below are not necessarily the
+C values a manufacturer would choose for a 34.5 kV valve.
+C The parameters were selected so that only a small currrent flows
+C through the control reactor with the valves non conducting,
+C and overvoltages and spikes interfering with the firing control
+C are prevented. It is quite possible that a better combination
+C than that shown exists.
+C
+C in series with valves
+C
+ CATAB RXAB .1
+ ANOAB RXAB .1
+ CATAB RXAB 4.0
+ ANOAB RXAB 4.0
+C
+ CATBC RXBC .1
+ ANOBC RXBC .1
+ CATBC RXBC 4.0
+ ANOBC RXBC 4.0
+C
+ CATCA RXCA .1
+ ANOCA RXCA .1
+ CATCA RECA 4.0
+ ANOCA RXCA 4.0
+C
+C across valves
+C
+ CATAB TRSA 2000. .1
+ ANOAB TRSA 2000. .1
+C
+ CATBC TRSB 2000. .1
+ ANOBC TRSB 2000. .1
+C
+ CATCA TRSC 2000. .1
+ ANOCA TRSC 2000. .1
+C
+C ************* SVC CONTROLLED REACTOR *************
+C
+C reactor in TCR appr. 100.0 MVA Xr = 3 * 34.5^2/100 =35.71 ohm
+ RXAB TRSB 0.1 35.71 1
+ RXBC TRSC 0.1 35.71
+ RXCA TRSA 0.1 35.71
+C
+C *************** REACTOR FOR FIRING PULSE GENERATION ******
+C
+C Fire angle reference measurement using delta connected reactors
+C TRSA - RMXA is just a dummy separation from the main 34.5 kV bus
+ TRSA RMXA 0.01 1
+ TRSB RMXB 0.01
+ TRSC RMXC 0.01
+C The reactors are delta connected through measuring switches below
+ RMAB RMXB 200. 20000.
+ RMBC RMXC 200. 20000.
+ RMCA RMXA 200. 20000.
+C
+BLANK end of branch data
+C *************** SWITCH DATA ***************8
+C
+C current measurement in the auxiliary reactor for firing pulse generation
+C these switches complete the delta connection of the reactors
+C (Rule Book p.6A-9)
+ RMXA RMAB MEASURING 1
+ RMXB RMBC MEASURING 1
+ RMXC RMCA MEASURING 1
+C
+C current measurement in the main transformer secondary
+ TRXA TRSA MEASURING
+ TRXB TRSB MEASURING
+ TRXC TRSC MEASURING
+C current measurement in the main transformer prinmary
+ TRFA TRPA MEASURING
+ TRFB TRPB MEASURING
+ TRFC TRPC MEASURING
+C
+C switch for on/off switching the 36.6 MVAR resistive-reactive load
+C (Rule Book p. 6C-1)
+12TRSA XLA FRLA 1
+12TRSB XLB FRLB 1
+12TRSC XLC FRLC 1
+C
+C VALVES
+C 6 valves, 2 per phase, 3ph. 6 pulse supply to TCR
+C Rule Book p. 6B-1
+11TRSA CATAB 100. 35.0 FIAB1 1
+11ANOAB TRSA 100. 35.0 FIAB2 1
+11TRSB CATBC 100. 35.0 FIBC1 1
+11ANOBC TRSB 100. 35.0 FIBC2 1
+11TRSC CATCA 100. 35.0 FICA1 1
+11ANOCA TRSC 100. 35.0 FICA2 1
+C
+BLANK end of switch data
+C
+C AC sources
+C 230 kV supply
+14GENA 187794. 60. 0. -1.
+14GENB 187794. 60. 240. -1.
+14GENC 187794. 60. 120. -1.
+C --------------+------------------------------
+BLANK end of source cards
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C RMXA RMAB -3.17345114E-01 -2.67576742E+00 2.69452022E+00 -96.7637 2.09775607E+04 3.61648260E+04
+C RMXB RMBC -2.12134217E+00 1.60058257E+00 2.65743432E+00 142.9649 2.09695693E+04 3.53656824E+04
+C RMXC RMCA 2.43868728E+00 1.07518486E+00 2.66518633E+00 23.7920 2.09657040E+04 3.49791488E+04
+C TRXA TRSA 1.76533509E+03 -7.18577071E+02 1.90598032E+03 -22.1487 2.86013546E+07 -7.52002129E+06
+C TRXB TRSB -1.72807188E+03 -1.23147874E+03 2.12197369E+03 -144.5251 3.19664433E+07 -7.48308730E+06
+C TRXC TRSC -3.72632074E+01 1.95005582E+03 1.95041181E+03 91.0947 2.95359580E+07 -4.27738942E+06
+C TRFA TRPA 3.28283686E+02 4.77795448E+01 3.31742465E+02 8.2809 3.05772339E+07 -5.86201921E+06
+C TRFB TRPB -1.59252346E+02 -2.98767203E+02 3.38560410E+02 -118.0590 3.15136653E+07 -2.50950856E+06
+C TRFC TRPC -1.69031340E+02 2.50987658E+02 3.02599402E+02 123.9589 2.81393539E+07 -3.10623904E+06
+C TRSA XLA Open Open .... Etc. (all remaining switches)
+C
+C 1st gen: GENA 187794. 187794. 328.28368576688 331.74246523436 .308248532425E8 .311496222581E8
+C 0.0 0.0 47.779544776826 8.2808819 -.44863559159E7 0.9895739
+ TRSA TRFA { Node voltage output requests
+C Step Time TRSA TRFA RMXA RMXB RMXC TRSA TRSB TRSC TRSA ANOAB
+C RMAB RMBC RMCA XLA XLB XLC CATAB TRSA
+C
+C TRSB ANOBC TRSC ANOCA TRSA TRSA RXAB TRSA MODELS MODELS
+C CATBC TRSB CATCA TRSC TF5 TF7 TRSB RMXA VRMSAB VRMSBC
+C
+C MODELS MODELS MODELS MODELS MODELS MODELS
+C VRMSCA VLLAVG ERROR DVQ FDB VERR
+C *** Phasor I(0) = -3.1734511E-01 Switch "RMXA " to "RMAB " closed in the steady-state.
+C *** Phasor I(0) = -2.1213422E+00 Switch "RMXB " to "RMBC " closed in the steady-state.
+C *** Phasor I(0) = 2.4386873E+00 Switch "RMXC " to "RMCA " closed in the steady-state.
+C *** Phasor I(0) = 1.7653351E+03 Switch "TRXA " to "TRSA " closed in the steady-state.
+C *** Phasor I(0) = -1.7280719E+03 Switch "TRXB " to "TRSB " closed in the steady-state.
+C *** Phasor I(0) = -3.7263207E+01 Switch "TRXC " to "TRSC " closed in the steady-state.
+C *** Phasor I(0) = 3.2828369E+02 Switch "TRFA " to "TRPA " closed in the steady-state.
+C *** Phasor I(0) = -1.5925235E+02 Switch "TRFB " to "TRPB " closed in the steady-state.
+C *** Phasor I(0) = -1.6903134E+02 Switch "TRFC " to "TRPC " closed in the steady-state.
+C %%%%% Floating subnetwork found! %%%%%% %%%%%% %%%%%% %%%%%%
+C %%%%% The elimination of row "NSR " of nodal admittance matrix [Y] has produced a near-zero diagonal value Ykk =
+C 0.00000000E+00 just prior to reciprocation. The acceptable minimum is ACHECK = 7.63336829E-12 (equal to EPSILN
+C times the starting Ykk). This node shall now to shorted to ground with 1/Ykk = FLTINF.
+C 0 0.0 24822.5855 187511.212 -.31734511 -2.1213422 2.43868728 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 326.187397 29.5320244 .821163836 -2.7560324 .081656838 .049551491
+C .032105347 .85 -.06597164 -.20205709 -.08402836 -.15
+C 1 .46296E-4 25143.8244 187629.636 -.27059939 -2.1489524 2.41955179 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 318.550308 25.5246044 .751598004 -2.6901512 .11560122 .069281865
+C .046333037 .85 .007233288 -.37886586 -.15723329 -.15
+C 2 .92593E-4 25457.4046 187690.907 -.22377124 -2.1759081 2.39967932 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 310.81619 21.5094097 .681803238 -2.6234506 .141715842 .083875142
+C .05788498 .85 -.00219819 -.35764251 -.14780181 -.15
+BLANK end of output requests
+C 2160 0.1 25442.1108 187482.902 -.29572787 -2.0263455 2.32207338 0.0 0.0 0.0 0.0 0.0
+C 0.0 446.298599 628.655556 0.0 345.907577 19.1485236 1.55331048 -2.6178013 1.04264625 1.03011633
+C 1.03191977 1.03479063 .001835206 .694094165 .032955423 .034790629
+C Variable max : 32517.4234 188770.564 2.64330646 2.62732109 2.77231282 0.0 0.0 0.0 1348.22398 803.124119
+C 642.762722 650.617284 745.361533 2455.49747 704.329689 384.313276 1348.22403 4.4384447 1.11468111 1.09242273
+C 1.09954303 1.10117116 .007233288 .694094165 .100809554 .101171165
+C Times of max : .018842593 .033425926 .021018519 .026759259 .032268519 0.0 0.0 0.0 .004490741 .09625
+C .093333333 .085 .099027778 .007083333 .097222222 .013101852 .004490741 .022453704 .034768519 .037407407
+C .035046296 .034861111 .462963E-4 0.1 .034907407 .034861111
+ PRINTER PLOT
+ 193.01 0.0 .10 MODELSDVQ { Limits: (-7.141, 6.930)
+BLANK end of plot requests
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+ 10 June 2002, WSM adds output to the screen in case of DISK use.
+Without any EATS, this is simple as should be illustrated in the October
+(or later) newsletter. But with EATS, there are variations depending upon:
+1) the subcase number; and 2) whether NEW LIST SIZES (NLS) is being
+used. The subject is mentioned here because the preceding data _does_
+involve NLS. So, if EATS is requested from STARTUP (FLZERO < 0),
+expect the following new output to the screen:
+ ---- Begin EATS for subcase number KNTSUB = 1
+ ---- Begin EATS for subcase number KNTSUB = 2
+ ---- Begin EATS for subcase number KNTSUB = 3
+ ---- Begin next subcase number KNTSUB = 4
+ ---- Begin next subcase number KNTSUB = 5
+The NLS requests in the 4th and 5th subcases conflict with EATS,
+and NLS takes precedence.
diff --git a/benchmarks/dc22d.dat b/benchmarks/dc22d.dat
new file mode 100644
index 0000000..2fb39c3
--- /dev/null
+++ b/benchmarks/dc22d.dat
@@ -0,0 +1,602 @@
+BEGIN NEW DATA CASE
+C 4th of 5 subcases illustrates the modeling of Static Var Control (SVC).
+C Contributed to ATP materials of the Can/Am user group February 1992 by:
+C Gabor B. Furst Consultants Kurt G. Fehrle, Consultant
+C #203 - 1745 Martin Drive 705 Westtown Circle
+C White Rock/ South Surrey B.C. West Chester, PA 19382
+C CANADA V4A 6Z1 USA
+C Phone: 604-535-6540 Phone: 610-344-0432
+C FAX: 604-535-6548
+C In July of 1993, Mr. Furst revised it again in preparation for his use
+C of it at Prof. Ned Mohan's University of Minnesota short course there.
+C Size 1-10: 43 63 56 3 230 18 167 0 0 0
+C Size 11-20: 0 15 3602 -9999 -9999 0 0 0110679 0
+C Size 21-29: 0 0 105 0 -9999 -9999 -9999 -9999 -9999
+NEW LIST SIZES
+ 0 0 68 8 450 35 285 0 0 0
+ 0 0 4700 0 0 0 0 0 12000 0
+ 0 0 220
+ 240000
+C *********** A GENERIC 6 PULSE SVC MODEL ************************************
+C
+C This is a conceptual model only, it must be refined
+C for any specific system; the control algorithm can be greatly improved.
+C
+C 6 pulse 100 MVAR TCR-SVC connected to a 230/34.5 kV Y/D transformer;
+C TCR's connected in delta.
+C
+C Thyristor gating pulses are phase locked to the current zero transition
+C in an auxiliary reactor (RMAB,RMBC,RMCA), which could be an oversized PT;
+C individual phase open loop VAR control is used, with a superimposed.
+C slow voltage control.
+C
+C The disturbance is the on/off switching of a 52.3 MVA, 0.7 p.f., 34.5 kV
+C load (XLA/B/C). The SVC response can be obtained by plotting the r.m.s
+C value of the 34.5 kV phase to phase voltages, which are the TACS variables
+C TXNAB/BC/CA. To obtain the response on the 34.5 kV bus without the SVC,
+C the thyristors have to be blocked. One way of doing this is to punch
+C 1000000. in col. 17-24 of the thyristor switches 11.
+C
+C To get the SVC overall response plot the transformer ph-ph r.m.s secondary
+C voltage TXNA (TACS), or VILLAVG (TACS) for the av. value of the three
+C ph-ph r.m.s. voltages
+C
+C To get the VAR import/phase through the transformer secondary
+C plot QINA (TACS)
+C
+C To get the transformer secondary voltage (instant.) plot TRSA
+C
+C TRSA-XLA shows the switching of the phase to phase load
+C
+C RXAB-TRSB plots the current through one AB arm of the thyristor bridge
+C
+C For sake of simplicity, some of the TACS variables have not been
+C initialized, so ignore the first 25 ms of the plots.
+C
+C If in the "Superimposed Voltage Control Section the gain
+C of DVQ is set to zero, the model reverts to open loop VAR control
+PRINTED NUMBER WIDTH, 13, 2,
+C For best results, do not use a time step more than 1/2 Degree (23.148
+C microsec for 60 Hz). Here, to speed the illustration, we use twice that,
+C & only simulate for half as long (extend to 0.5 sec for more transients).
+C Free-format data input is used in order to specify DELTAT precisely:
+C DELTAT TMAX XOPT COPT EPSILN TOLMAT
+.0000462962962962963, 0.25, 60., , , , , , , , ,
+ 1 -3 1 2 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID
+C
+C Firing pulses are derived from the current through the measuring inductances
+C RMAB, RMBC and RMCA as explained above. Device 91 imports the current into
+C TACS from the measuring switches connecting the RM's in delta,
+C corresponding to the delta connected thyristor valves.
+C
+C The current lags the voltage 90 deg. and its zero transition produces
+C the firing signal at an alpha of 90 deg.
+C This is done by TACS level triggered switches Device 52.
+C The firing pulse delay is calculated by the variables DELAB/BC/CA
+C and implemented by TACS transport device Device 54;
+C
+C For convenience, the firing angle is initialized to alpha = 180 deg.
+C by the constant of DELIN, where DELA is 4.167 ms for a 60 Hz system.
+C The required firing angle is then calculated backwards from the
+C 180 deg. point, by using the variable DELYA(B,C).
+C The actual firing angle is then DELAB = DELIN -DELYA etc.
+C for the other phases. The minimum firing angle is limited by DELYA = 4.167 ms.
+C Then DELAB= DELIN - DELYA =0.0 (90 deg.)
+C DELIN = 4.167 ms.; DELAB =0.0 corresponds to minimum alpha 90 degrees.
+C For 50 Hz, DELIN = 5.0 ms.
+C
+C *********** VOLTAGE AND REACTIVE REFERENCE *************
+11VREFD 1.0
+C VAR reference
+C the TCR rating is 100 MVA 3ph; the per phase is 33.3 MVAR or 1.00 p.u.;
+C initial load through the 230/34.5 kV tranformer is 45 MVAR or 15 MVAR/phase;
+C equal to 0.45 p.u. giving approx. 90% bus voltage at 34.5 kV;
+C this is taken as reference; Q divided by QTCR =33.3 MVAR will be Q p.u.
+88QTCR = 33.3*10**6
+C The VAR reference QREF should be determined so that the superimposed
+C voltage control changes the VAR flow as little as possible
+88QREF = 0.30
+C
+C *********** VOLTAGES TRANSFERRED FROM NETWORK *************
+C
+C ******* Import 34.5 kV phase voltages, get phase to phase and normalize *****
+C TRSA/B/C are the transformer secondary ph-g voltages
+C 90 - TACS voltage source driven by an EMTP network node voltage
+C (Rule Book p. 3-15)
+90TRSA
+90TRSB
+90TRSC
+C the phase to phase voltages
+99TRAB = TRSA - TRSB
+99TRBC = TRSB - TRSC
+99TRCA = TRSC - TRSA
+C normalize to get one p.u. for the phase to phase rms value
+99TABX = TRAB/34500
+99TBCX = TRBC/34500
+99TCAX = TRCA/34500
+C get the rms value of the A-B phase to phase voltage
+C Device 66 (Rule Book p. 3-32)
+99TXNAB 66+TABX 60.
+99TXNBC 66+TBCX 60.
+99TXNCA 66+TCAX 60.
+C
+C ************** PHASE A FIRING PULSES **************************************
+C
+C 91 - TACS; current source driven by an EMTP network current (Rule B.p 3-15)
+91RMAB
+C send square impulse at current zero Device 52 (Rule B. p. 3-21)
+88FAB1 52+UNITY 1. 0. 0 RMAB
+88FAB2 52+UNITY 1. 0. -1 RMAB
+C to shift impulse by DELAB delay required Type 54 (Rule B. p. 3-23)
+98FIAB1 54+FAB1 .0000 DELAB
+98FIAB2 54+FAB2 .0000 DELAB
+C for a 50 Hz system the constant .004167 below should be changed to 0.005
+88DELIN = .004167 { to initialize alpha to 180 deg.
+C
+C ************* PHASE B FIRING PULSES *************************************
+C
+91RMBC
+88FBC1 52+UNITY 1. 0. 0 RMBC
+88FBC2 52+UNITY 1. 0. -1 RMBC
+98FIBC1 54+FBC1 .0000 DELBC
+98FIBC2 54+FBC2 .0000 DELBC
+C
+C ************ PHASE C FIRING PULSES *************************************
+C
+91RMCA
+88FCA1 52+UNITY 1. 0. 0 RMCA
+88FCA2 52+UNITY 1. 0. -1 RMCA
+98FICA1 54+FCA1 .0000 DELCA
+98FICA2 54+FCA2 .0000 DELCA
+C
+C ************* OPEN LOOP VAR CONTROL **************************
+C **** WITH SUPERIMPOSED VOLTAGE CONTROL ***********
+C
+C the following will be repeated for all three phases as the SVC
+C
+C ************ RACTIVE POWER FLOWS *********
+C
+C calclate VAR transfer at transf. secondary
+91TRXA { 34.5 kV side current through transformer
+C Device 53 is transpoert delay or signal phase shifting (Rule Book p. 3-22)
+88TRIA 53+TRXA .00417 .0043
+88TRVA 53+TRSA .00417 .0043
+C the following equation for calculating VAR flow is from
+C Miller: Reactive power Control etc. (text book) p. 321
+88QINA =( -TRSA * TRIA * 0.5 + TRXA * TRVA * 0.5 ) / QTCR
+C
+91TRXB
+88TRIB 53+TRXB .00417 .0043
+88TRVB 53+TRSB .00417 .0043
+88QINB =( -TRSB * TRIB * 0.5 + TRXB * TRVB * 0.5 ) / QTCR
+C
+91TRXC
+88TRIC 53+TRXC .00417 .0043
+88TRVC 53+TRSC .00417 .0043
+88QINC =( -TRSC * TRIC * 0.5 + TRXC * TRVC * 0.5 ) / QTCR
+C
+C ******************** SUPERIMPOSED VOLTAGE CONTROL ********************
+C
+C ******** DELTA Q TO ADJUST VOLTAGE ************
+C the average value of phase to phase voltage is
+ 0VLLAVG +TXNAB +TXNBC +TXNCA .3333 .85 1.15
+C the difference between ref. and actual voltage is
+C slow down the response by a (1/1+st) block
+ 1DVQ +VLLAVG -VREFD 50.0 -1.0 1.0
+ 1.0
+ 1.0 0.500
+C the required VAR import taking voltage correction into account
+ 0QRNEW +QREF +DVQ
+C ***************** PHASE A ERROR ******************************************
+C
+C error in VAR import
+ 0ERRQA +QRNEW -QINA
+ 0QINCRA +ERRQA
+C the new reactor output is then given by the Steinmetz Algorithm as
+C the output at T-delT + QINCRA + QINCRB - QINCRC;
+C as shown below in calculating the new SVC VAR's
+C ****************** PHASE B ERROR ****************************************
+C
+ 0ERRQB +QRNEW -QINB
+ 0QINCRB +ERRQB
+C
+C ****************** PHASE C ERROR *****************************************
+C
+ 0ERRQC +QRNEW -QINC
+C
+ 0QINCRC +ERRQC
+C
+C
+C **************** PHASE A PULSE DELAY CONTROL ****************************
+C the current firing angle is DELAB, this corresponds to an old reactor
+C p.u. current given by the following non linear relation corresponding
+C to the x = sigma-sin(sigma) function
+99DLA1 = 1 - DELAB/.004167
+C where DLA1 is the normalized conduction angle sigma between firing
+C angle alpha 90 and 180 degrees.
+C
+99REOAB 56+DLA1
+ 0.0 0.0
+ 0.111 0.0022
+ 0.222 0.0176
+ 0.333 0.0575
+ 0.444 0.1306
+ 0.555 0.2414
+ 0.666 0.3900
+ 0.777 0.5718
+ 0.888 0.7783
+ 1.000 1.0000
+ 9999.
+C the new reactor current demanded is the increment plus the old
+C which is QINCRA + QINCRB - QINCRC + REOAB and is min. 0.0 max. 1.0
+C this is applying the Steinmetz algorithm
+ 0INREAB +QINCRA +REOAB +QINCRB -QINCRC 0.00 1.00
+C this is now reconverted into an angle, using the inverse of the
+C above relation, and becomes the new DELAB; (Rule Book p. 3-25 )
+99DELYAA56+INREAB
+ 0.0 0.0
+ 0.0022 0.111
+ 0.0176 0.222
+ 0.0575 0.333
+ 0.1306 0.444
+ 0.2414 0.555
+ 0.3900 0.666
+ 0.5718 0.777
+ 0.7783 0.888
+ 1.0000 1.000
+ 9999.
+99DELYA =DELYAA * 0.004167
+C now smooth it out a bit
+ 1DELAB +DELIN -DELYA 1.0 .0040
+ 1.0
+ 1.0 0.015
+C
+C ****************** PHASE B PULSE DELAY CONTROL **************************
+C
+99DLB1 = 1 - DELBC/.004167
+C
+99REOBC 56+DLB1
+ 0.0 0.0
+ 0.111 0.0022
+ 0.222 0.0176
+ 0.333 0.0575
+ 0.444 0.1306
+ 0.555 0.2414
+ 0.666 0.3900
+ 0.777 0.5718
+ 0.888 0.7783
+ 1.000 1.000
+ 9999.
+C
+ 0INREBC +QINCRB +REOBC +QINCRC -QINCRA 0.00 1.00
+C
+99DELYBB56+INREBC
+ 0.0 0.0
+ 0.0022 0.111
+ 0.0176 0.222
+ 0.0575 0.333
+ 0.1306 0.444
+ 0.2414 0.555
+ 0.3900 0.666
+ 0.5718 0.777
+ 0.7783 0.888
+ 1.000 1.000
+ 9999.
+99DELYB =DELYBB * 0.004167
+C
+ 1DELBC +DELIN -DELYB 1.0 0.0040
+ 1.0
+ 1.0 0.015
+C
+C *************** PHASE C PULSE DELAY CONTROL ******************************
+C
+99DLC1 = 1 - DELCA/.004167
+C
+99REOCA 56+DLC1
+ 0.0 0.0
+ 0.111 0.0022
+ 0.222 0.0176
+ 0.333 0.0575
+ 0.444 0.1306
+ 0.555 0.2414
+ 0.666 0.3900
+ 0.777 0.5718
+ 0.888 0.7783
+ 1.000 1.000
+ 9999.
+C
+ 0INRECA +QINCRC +REOCA +QINCRA -QINCRB 0.00 1.00
+C
+99DELYCC56+INRECA
+ 0.0 0.0
+ 0.0022 0.111
+ 0.0176 0.222
+ 0.0575 0.333
+ 0.1306 0.444
+ 0.2414 0.555
+ 0.3900 0.666
+ 0.5718 0.777
+ 0.7783 0.888
+ 1.000 1.000
+ 9999.
+99DELYC =DELYCC * 0.004167
+C
+ 1DELCA +DELIN -DELYC 1.0 0.0040
+ 1.0
+ 1.0 0.015
+C
+C ***************** REACTOR SWITCHING ***************************************
+C
+C control signals to switch reactive load 'XLA/B/C' on and off
+C see TYPE 12 switches in power network.
+C TACS source (Rule Book p. 3-14)
+23FRLA 1000. 0.200 0.100 0.2
+23FRLB 1000. 0.200 0.100 0.2
+23FRLC 1000. 0.200 0.100 10.0
+C
+C initializations
+77VLLAVG 1.0
+77TXNAB 1.0
+77QRNEW .30
+77QINA .30
+77QINB .30
+77QINC .30
+C
+C ********* TACS OUTPUTS ************
+C
+33TXNAB TXNBC TXNCA ERRQA VLLAVG
+33QRNEW DVQ QINA
+BLANK end of TACS
+C
+C ************** NETWORK DATA *********************
+C
+C ********* LINE TO SOURCE ***********
+C
+C transmission line (equivalent) from GEN source to transformer
+ GENA TRFA 4.5 25.0
+ GENB TRFB 4.5 25.0
+ GENC TRFC 4.5 25.0
+C fault level at trsf. 230 kV approx. 2083 MVA
+C
+C ************** MAIN TRANSFORMER **************
+C
+C transformer capacitance to ground 10000pF
+C a very simple model, can be replaced with any more complex model
+C transformer 230000/34500 Y/D 100 MVA; In=250 A
+C x = 7.0% on 100 MVA
+C 230^2/100* 0.07 = 37.0 ohms trsf. leakage reactance
+C TRANSFORMER busref imag flux busin rmag empty
+C ------------______------______------______------_____________________________-
+C
+C no saturation
+ TRANSFORMER 0.7 700.0 X
+ 0.7 700.0 { 100%
+ 9999
+ 1TRPA 0.80 36.0 1330
+ 2TRXA TRXB 1.00 385 {372
+ TRANSFORMER X Y
+ 1TRPB
+ 2TRXB TRXC
+ TRANSFORMER X Z
+ 1TRPC
+ 2TRXC TRXA
+C
+C transformer capacitance to ground and ph - ph 10000pF
+ TRXA 0.01
+ TRXB 0.01
+ TRXC 0.01
+C capacitance between phases
+ TRXA TRXB 0.01
+ TRXB TRXC 0.01
+ TRXC TRXA 0.01
+C
+C *********** HARMONIC FILTERS ***************
+C
+C 5th harmonic filter 20 MVAR
+ TRSA TF5 2.38 44.5
+ TRSB TF5 2.38 44.5
+ TRSC TF5 2.38 44.5
+C 7th harmonic filter 20 MVAR
+ TRSA TF7 1.21 44.5
+ TRSB TF7 1.21 44.5
+ TRUC TF7 1.21 44.5
+C
+C ******** TRANSFORMER SECONDARY LOAD ***************
+C 75 MW, 30 MVAR
+ TRSA ND 13.67 5.47
+ TRSB ND 13.67 5.47
+ TRSC ND 13.67 5.47
+C
+C shunt capacitor 20 MVAR
+ TRSA 44.5
+ TRSB 44.5
+ TRSC 44.5
+C ********** SWITCHED REACTOR FOR SVC RESPONSE TEST *********
+C
+C switched reactor .1 sec. on .1 sec. off
+C see switch type 13 below and type 23 source in TACS
+C 24.7 MVA, 0.7 p.f.,17.5 MW, 17.5 MVAR load
+ XLA NSR 34.00 34.00
+ XLB NSR 34.00 34.00
+ XLC NSR 34.00 34.00
+C
+C
+C ************** SNUBBERS **************
+C
+C the snubber parameters shown below are not necessarily the
+C values a manufacturer would choose for a 34.5 kV valve.
+C The parameters were selected so that only a small currrent flows
+C through the control reactor with the valves non conducting,
+C and overvoltages and spikes interfering with the firing control
+C are prevented. It is quite possible that a better combination
+C than that shown exists.
+C
+C in series with valves
+C
+ CATAB RXAB .1
+ ANOAB RXAB .1
+ CATAB RXAB 4.0
+ ANOAB RXAB 4.0
+C
+ CATBC RXBC .1
+ ANOBC RXBC .1
+ CATBC RXBC 4.0
+ ANOBC RXBC 4.0
+C
+ CATCA RXCA .1
+ ANOCA RXCA .1
+ CATCA RECA 4.0
+ ANOCA RXCA 4.0
+C
+C across valves
+C
+ CATAB TRSA 2000. .1
+ ANOAB TRSA 2000. .1
+C
+ CATBC TRSB 2000. .1
+ ANOBC TRSB 2000. .1
+C
+ CATCA TRSC 2000. .1
+ ANOCA TRSC 2000. .1
+C
+C ************* SVC CONTROLLED REACTOR *************
+C
+C reactor in TCR appr. 100.0 MVA Xr = 3 * 34.5^2/100 =35.71 ohm
+ RXAB TRSB 0.1 35.71 1
+ RXBC TRSC 0.1 35.71
+ RXCA TRSA 0.1 35.71
+C
+C *************** REACTOR FOR FIRING PULSE GENERATION ******
+C
+C Fire angle reference measurement using delta connected reactors
+C TRSA - RMXA is just a dummy separation from the main 34.5 kV bus
+ TRSA RMXA 0.01 1
+ TRSB RMXB 0.01
+ TRSC RMXC 0.01
+C The reactors are delta connected through measuring switches below
+ RMAB RMXB 200. 20000.
+ RMBC RMXC 200. 20000.
+ RMCA RMXA 200. 20000.
+C
+BLANK end of branch data
+C *************** SWITCH DATA ***************8
+C
+C current measurement in the auxiliary reactor for firing pulse generation
+C these switches complete the delta connection of the reactors
+C (Rule Book p.6A-9)
+ RMXA RMAB MEASURING
+ RMXB RMBC MEASURING
+ RMXC RMCA MEASURING
+C
+C current measurement in the main transformer secondary
+ TRXA TRSA MEASURING 1
+ TRXB TRSB MEASURING 0
+ TRXC TRSC MEASURING 0
+C current measurement in the main transformer primary
+ TRFA TRPA MEASURING 1
+ TRFB TRPB MEASURING 0
+ TRFC TRPC MEASURING 0
+C
+C switch for on/off switching the 17.5 MVAR resistive-reactive load
+C (Rule Book p. 6C-1)
+12TRSA XLA FRLA 11
+12TRSB XLB FRLB 10
+12TRSC XLC FRLC 10
+C
+C VALVES
+C 6 valves, 2 per phase, 3ph. 6 pulse supply to TCR
+C Rule Book p. 6B-1
+11TRSA CATAB 00. 15.0 FIAB1 1
+11ANOAB TRSA 00. 15.0 FIAB2 1
+11TRSB CATBC 0000. 15.0 FIBC1 1
+11ANOBC TRSB 000. 15.0 FIBC2 1
+11TRSC CATCA 0000. 15.0 FICA1 1
+11ANOCA TRSC 000. 15.0 FICA2 1
+C
+BLANK end of switch data
+C
+C AC sources
+C 230 kV supply
+14GENA 187794. 60. 0. -1.
+14GENB 187794. 60. 240. -1.
+14GENC 187794. 60. 120. -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C GENA |TRFA *
+C TRFA |GENA *TRPA *
+C GENB |TRFB *
+C TRFB |GENB *TRPB *
+C GENC |TRFC *
+C TRFC |GENC *TRPC *
+C X |TERRA *TERRA *TRPA *
+C TRPA |TRFA * X*
+C TRXA |TERRA *TRXB *TRXB *TRXC *TRXC *TRSA *
+C TRXB |TERRA *TRXA *TRXA *TRXC *TRXC *TRSB *
+BLANK end of source cards
+C Total network loss P-loss by summing injections = 9.766831747973E+07
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C RMXA RMAB -3.58276847E-01 -2.79310857E+00 2.81599321E+00 -97.3095 2.25048004E+04 3.95893953E+04
+C RMXB RMBC -2.15903199E+00 1.67914276E+00 2.73513063E+00 142.1267 2.24866103E+04 3.77703877E+04
+C RMXC RMCA 2.51730884E+00 1.11396581E+00 2.75277380E+00 23.8705 2.24781027E+04 3.69196208E+04
+C TRXA TRSA 1.87366412E+03 -5.12826995E+02 1.94257787E+03 -15.3071 2.92045856E+07 -1.15739798E+07
+C TRXB TRSB -1.84783216E+03 -1.48829687E+03 2.37265911E+03 -141.1510 3.63691255E+07 -1.14600036E+07
+C TRXC TRSC -2.58319590E+01 2.00112387E+03 2.00129059E+03 90.7396 3.11027262E+07 -4.48411843E+06
+C TRFA TRPA 3.59043573E+02 9.36972121E+01 3.71067992E+02 14.6259 3.34033086E+07 -1.05190303E+07
+C TRFB TRPB -1.76142866E+02 -3.36446952E+02 3.79766851E+02 -117.6338 3.53040617E+07 -3.27502311E+06
+C TRFC TRPC -1.82900707E+02 2.42749740E+02 3.03940957E+02 126.9963 2.81187847E+07 -4.63098619E+06
+C 1st gen: GENA 187794. 187794. 359.04357262628 371.06799188975 .337131143389E8 .348421712345E8
+C 1st gen: 0.0 0.0 93.697212129556 14.6259048 -.87978871273E7 0.9675951
+ TRSA TRFA { Names of nodes for which voltage is to be outputted
+C Step Time TRSA TRFA TRXA TRFA TRSA RXAB TRSA TACS
+C TRSA TRPA XLA TRSB RMXA TXNAB
+C
+C TACS TACS TACS TACS TACS TACS TACS
+C TXNBC TXNCA ERRQA VLLAVG QRNEW DVQ QINA
+C *** Phasor I(0) = -3.5827685E-01 Switch "RMXA " to "RMAB " closed in the steady-state.
+C *** Phasor I(0) = -2.1590320E+00 Switch "RMXB " to "RMBC " closed in the steady-state.
+C *** Phasor I(0) = 2.5173088E+00 Switch "RMXC " to "RMCA " closed in the steady-state.
+C *** Phasor I(0) = 1.8736641E+03 Switch "TRXA " to "TRSA " closed in the steady-state.
+C *** Phasor I(0) = -1.8478322E+03 Switch "TRXB " to "TRSB " closed in the steady-state.
+C *** Phasor I(0) = -2.5831959E+01 Switch "TRXC " to "TRSC " closed in the steady-state.
+C *** Phasor I(0) = 3.5904357E+02 Switch "TRFA " to "TRPA " closed in the steady-state.
+C *** Phasor I(0) = -1.7614287E+02 Switch "TRFB " to "TRPB " closed in the steady-state.
+C *** Phasor I(0) = -1.8290071E+02 Switch "TRFC " to "TRPC " closed in the steady-state.
+C %%%%% Floating subnetwork found! %%%%%% %%%%%% %%%%%% %%%%%%
+C %%%%% The elimination of row "NSR " of nodal admittance matrix [Y] has produced a near-zero diagonal value Ykk =
+C 0.00000000E+00 just prior to reciprocation. The acceptable minimum is ACHECK = 7.63336829E-12 (equal to EPSILN
+C times the starting Ykk). This node shall now to shorted to ground with 1/Ykk = FLTINF.
+C 0 0.0 25855.428 188520.7342 1873.664121 359.0435726 0.0 .8977594404 -2.87558569 0.0
+C 0.0 0.0 0.0 1.0 0.3 0.0 0.3
+C 1 .46296E-4 26190.60084 188656.0309 1882.328634 357.3536908 0.0 .8251974241 -2.80696162 .0854224562
+C .050813098 .0346093582 .3019675015 .85 .3019675015 .0019675015 0.0
+C Valve "ANOBC " to "TRSB " closing after 9.25925926E-05 sec.
+C 2 .92593E-4 26517.79623 188733.8621 1890.419856 355.5549605 0.0 .752384056 -2.73748258 .1209236949
+C .0710411015 .049896216 .301272907 .85 .301272907 .001272907 0.0
+BLANK end of output requests
+C Valve "TRSB " to "CATBC " closing after 2.40231481E-01 sec.
+C Valve "TRSA " to "CATAB " opening after 2.41388889E-01 sec.
+C Valve "ANOAB " to "TRSA " closing after 2.42638889E-01 sec.
+C Valve "ANOCA " to "TRSC " opening after 2.44351852E-01 sec.
+C Valve "TRSC " to "CATCA " closing after 2.45138889E-01 sec.
+C Valve "TRSB " to "CATBC " opening after 2.46574074E-01 sec.
+C Valve "ANOBC " to "TRSB " closing after 2.48611111E-01 sec.
+C Valve "ANOAB " to "TRSA " opening after 2.49675926E-01 sec.
+C 5400 .25 24620.31357 180704.5964 887.7133221 311.5182977 310.0730625 18.04597752 -2.55047538 .999668036
+C 1.002620895 1.00418338 -.05590233 1.002057221 .5408201644 .2408201644 .5967224946
+C Variable maxima : 30965.63617 188749.4575 2719.683362 461.7713374 506.9005859 1315.892083 4.520536227 1.084424099
+C 1.091008223 1.08827864 .3019675015 1.085619064 .5823416906 .2823416906 .8205355066
+C Times of maxima : .0344444444 .1388889E-3 .2030092593 .2025 .235787037 .0044907407 .0224537037 .0396759259
+C .0401851852 .0358796296 .462963E-4 .0400925926 .1684722222 .1684722222 .2031481481
+C Variable minima : -31985.2128 -187338.374 -2784.38662 -483.591685 -508.17585 -1284.74425 -4.58557455 0.0
+C 0.0 0.0 -.564929157 .85 .1001935452 -.199806455 0.0
+C Times of minima : .0266666667 .0252314815 .2112962963 .2103703704 .2441203704 .19625 .0309259259 0.0
+C 0.0 0.0 .0118981481 .462963E-4 .0158333333 .0158333333 .462963E-4
+ PRINTER PLOT
+ 193.02 0.0 .25 .94 1.0TACS TXNAB { Limits [.94, 1.0] amplify the transient
+BLANK end of plot requests
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc22e.dat b/benchmarks/dc22e.dat
new file mode 100644
index 0000000..13935e0
--- /dev/null
+++ b/benchmarks/dc22e.dat
@@ -0,0 +1,478 @@
+BEGIN NEW DATA CASE
+C 5th of 5 subcases illustrates the modeling of Static Var Control (SVC).
+C This is very similar to the preceding 4th case except that here newer
+C MODELS replaces TACS for the control system modeling. The same
+C Gabor Furst of suburban Vancouver, British Columbia, Canada contributed
+C this during February of 1995 (see January and April newsletters). To
+C speed the simulation, TMAX = 0.6 has been reduced to 0.10 sec.
+NEW LIST SIZES
+ 0 0 68 8 450 35 285 0 0 0
+ 0 0 4700 0 64800 0 0 0 0 0
+ 0 0 220 126000
+ 240000 742
+PRINTED NUMBER WIDTH, 11, 1, { Restore defaults after preceding aberations
+C DELTAT TMAX XOPT COPT EPSILN TOLMAT
+C 46.296-6 0.600 60. ---- Gabor Furst's original data card
+.0000462962962962963, 0.250, 60., , , , , , , , ,
+C the time step is the cycle time 1/60 sec. divided by 360 degrees
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT IPUN MEMSAV ICAT NENERG IPRSUP
+C 9999 1 0 1 1
+ 1 -3 1 2 1 -1
+ 5 5 20 20 100 100 500 500
+C The running of this MODELS file requires the latest version of TPbig
+C with the increased list sizes for MODELS
+C
+C The example demonstrates a generic SVC connected to a 230/34.5 kV
+C step-down transformer, with an SVC reactor rating of 100 MVA.
+C The SVC is tested by switching on and off a 25 MVA 0.7 p.f.
+C load on the 34.5 kV bus
+C plot vatiable 'vllavg' for SVC response
+C ==============================================================================
+MODELS
+ INPUT trma {v(TRSA)} -- transf. sec. voltage
+ trmb {v(TRSB)}
+ trmc {v(TRSC)}
+--
+ irab {i(RMAB)} -- aux. reactor delata current
+ irbc {i(RMBC)}
+ irca {i(RMCA)}
+--
+ itra {i(TRXA)} -- transf. sec. current
+ itrb {i(TRXB)}
+ itrc {i(TRXC)}
+--
+ rxab {i(TRXA)} -- main reactor current
+ rxbc {i(TRXB)}
+ rxca {i(TRXC)}
+--
+ OUTPUT -- firing signals
+ FIAB1, FIAB2, FIBC1, FIBC2, FICA1, FICA2 -- firing signals
+ FRLA, FRLB, FRLC -- reactor switching
+--
+MODEL svcmod -- MODELS version of DC 22 subcase 4
+--
+--
+DATA omega {dflt: 2*pi*freq}
+ dt {dflt :0.25/freq}
+--
+CONST freq {val: 60}
+ tper {val: 1/freq}
+ qtcr {val: 33.3*1E+6} -- p.u. SVC reactor rating/phase
+ qref {val: 0.00} -- set 0 for this example
+ delin {val: 0.25/freq} -- initialization for firing delay (60Hz)
+ tpimp {val: 0.200} -- test reactor switching cycle
+ ton {val: 0.100} -- reactor on time
+ tstart {val: 0.3} -- start of switching reactors
+--
+VAR
+ tt, vllavg, vllmax, vll12p , qrnew, ttt1, ttt2, ttt3
+ dvq, error, fdb, vref, verr, inreact, delyi
+ vtrsec[1..3], vtrff[1..3]
+ f1[1..3], f2[1..3], ficat[1..3], fian[1..3],del[1..3],i,k,l,ir[1..3]
+ vrms[1..3], itr[1..3], tri[1..3], trv[1..3], qin[1..3]
+ errq[1..3], qincr[1..3]
+--
+ HISTORY vtrsec[1..3] {dflt:[0,0,0]} -- transf. ph-g voltages
+ vtrff[1..3] {dflt:[0,0,0]} -- transf. ph-ph voltages
+--
+ dvq {dflt: 0} -- forward block output
+ error {dflt: 0} -- error signal
+ fdb {dflt: 0} -- feedback
+--
+ ir[1..3] {dflt :[0,0,0]} -- aux. reactor delata current
+ itr[1..3] {dflt :[0,0,0]} -- trsf. sec. current
+ del[1..3] {dflt :[0,0,0]} -- firing pulse delay angles
+--
+ INPUT trma {dflt: trma} -- trsf sec. voltage ph-g
+ trmb {dflt: trmb}
+ trmc {dflt: trmc}
+--
+ irab {dflt: irab} -- svc reactor currents
+ irbc {dflt: irbc}
+ irca {dflt: irca}
+--
+ itra {dflt: itra} -- transf. sec. current
+ itrb {dflt: itrb}
+ itrc {dflt: itrc}
+--
+ rxab {dflt: 0} -- main reactor delta current
+ rxbc {dflt: 0}
+ rxca {dflt: 0}
+--
+ OUTPUT
+ ficat[1..3], fian[1..3] -- firing signals to thyristors
+ ttt1, ttt2, ttt3 -- control signal to switch reactors
+--
+ INIT
+ vref:= 1.0 -- reference voltage
+ verr:= 0 -- voltage error
+ tt := timestep/tper -- integration multiplier
+ vrms[1..3] := 0
+ ficat[1..3]:= 0 -- firing pulse to cathode
+ fian[1..3]:= 0 -- firing pulse to anode
+ qin[1..3]:= 0.3 -- rective power
+ ttt1:= 0 -- test rector breaker control
+--
+ ENDINIT
+--
+DELAY CELLS DFLT: 100
+ CELLS(vtrsec[1..3]):500
+ CELLS(vtrff[1..3]):500
+--
+-- liearization of angel versus p.u. current through thyristors
+ FUNCTION dely POINTLIST
+-- angle current
+ ( 0.0, 0.0)
+ ( 0.0022, 0.111)
+ ( 0.0176, 0.222)
+ ( 0.0575, 0.333)
+ ( 0.1306, 0.444)
+ ( 0.2414, 0.555)
+ ( 0.3900, 0.666)
+ ( 0.5718, 0.777)
+ ( 0.7783, 0.888)
+ ( 1.0000 1.000)
+--
+-- ************** EXEC ****************
+EXEC
+-- convert to arrays
+ ir[1..3] := [irab, irbc, irca]
+ vtrsec[1..3] := [trma, trmb, trmc]
+--
+-- control signals for the type 12 switches in EMTP
+-- to switch test reactors
+-- the following is a pulse train 0.1/0.1 on/off starts at 0.2 s
+ ttt1:= AND((t-tstart) MOD tpimp < ton , t-tstart)
+ ttt2 := ttt1
+ ttt3 := ttt1
+--
+-- form phase to phase voltages and normalize
+ vtrff[1] :=(trma - trmb)/34500
+ vtrff[2] :=(trmb - trmc)/34500
+ vtrff[3] :=(trmc - trma)/34500
+--
+-- calculation of voltage rms values
+ FOR i := 1 TO 3 DO
+ vrms[i]:= sqrt(vrms[i]**2 + tt*(vtrff[i]**2 - delay(vtrff[i], tper)**2))
+ ENDFOR
+--
+-- calculate reactive through transformer
+-- qina, qinb, qinc
+-- see DC22-3 for explanation
+ itr[1..3] := [itra, itrb, itrc]
+ FOR i:= 1 TO 3 DO
+ tri[i]:= delay(itr[i],tper/4)
+ trv[i]:= delay(vtrsec[i],tper/4)
+ qin[i] := (-vtrsec[i]*tri[i] * 0.5 + itr[i]* trv[i] * 0.5)/ qtcr
+ ENDFOR
+--
+-- generate firing pulses 500 microsec wide
+--
+ if t> timestep then
+--
+ FOR i := 1 TO 3 DO
+ f1[i]:= AND(ir[i] >= 0, delay(ir[i],0.0005) < 0 )
+ f2[i]:= AND(ir[i] <= 0, delay(ir[i],0.0005) > 0 )
+ ENDFOR
+-- delayed pulses caclulated
+-- by var and voltage control
+ FOR i:= 1 TO 3 DO
+ ficat[i] := delay(f1[i],del[i]) -- cathode
+ fian[i] := delay(f2[i],del[i]) -- anode
+ ENDFOR
+ endif
+-- average ph-ph voltage normalized
+ vllavg := 0.3333 * (vrms[1] + vrms[2] + vrms[3]) {max: 1.15 min : 0.85}
+--
+-- alternative to above but not used in this model
+-- 12 pulse rectfication with output smoothed alternative to rms signal
+-- smoothing rough, should be done with 120 c/s filter, not used here
+-- shown as possible alternative only
+-- vllmax := (max(abs(vtrff[1]), abs(vtrff[2]), abs(vtrff[3])))/1.41
+-- laplace(vll12p/vllmax) := 1.0|s0 / ( 1|s0 + 0.030|s1 )
+--
+-- voltage error forward and feedback loop
+ verr:= vllavg - vref
+-- combine endcombine used because forward - feedback loop
+ COMBINE AS first_group
+ error := sum( 1|vllavg - 1|vref - 1|fdb)
+-- forward gain . 1/1+stdelay
+ laplace(dvq/error) := 400.0|s0/(1.0|s0 + 0.003|s1)
+-- derivative feedback
+ claplace(fdb/dvq ) := 0.005|s1 / (1.0|s0 + 0.012|s1 )
+ ENDCOMBINE
+--
+ FOR i := 1 TO 3 DO
+-- total error the qref - qin[i] component may be omitted
+-- it is usefull for unbalanced loads
+ errq[i] := (dvq + qref - qin[i]){ min:0 max:1.0}
+ ENDFOR
+-- calculate new firing angles
+-- phase A
+ FOR i:= 1 TO 3 DO
+ k:= (i+4) mod 3 if k=0 then k:=3 endif -- k is phase B
+ l := (i+5) mod 3 if l=0 then l:= 3 endif -- l is phase C
+-- apply phase unbalance correction
+ inreact:= errq[i] + errq[k] -errq[l] {max: 1.0 min: 0.0}
+-- linearize and convert from firing angle to time delay
+ delyi := delin - dely(inreact ) * dt
+ claplace(del[i]/delyi){dmax: (dt-0.0001) dmin: 0.0}:=
+ 1.0|s0/(1.0|s0 + 0.005|s1)
+ ENDFOR
+--
+ENDEXEC
+ENDMODEL
+USE svcmod AS test
+ INPUT trma:= trma trmb:= trmb trmc:= trmc
+ irab:= irab irbc:= irbc irca:= irca
+ itra:= itra itrb:= itrb itrc:= itrc
+--
+ OUTPUT FIAB1 := ficat[1] FIAB2 := fian[1] FIBC1 := ficat[2]
+ FIBC2 := fian[2] FICA1 := ficat[3] FICA2 := fian[3]
+ FRLA := ttt1 FRLB := ttt2 FRLC := ttt3
+ENDUSE
+C
+RECORD test.vrms[1] AS vrmsab
+ test.vrms[2] AS vrmsbc
+ test.vrms[3] AS vrmsca
+ test.vllavg AS vllavg
+ test.error AS error
+ test.dvq AS dvq
+ test.fdb AS fdb
+ test.verr AS verr
+ENDMODELS
+C ************** NETWORK DATA *********************
+C
+C ********* LINE TO SOURCE ***********
+C
+C transmission line (equivalent) from GEN source to transformer
+ GENA TRFA 4.5 25.0
+ GENB TRFB 4.5 25.0
+ GENC TRFC 4.5 25.0
+C fault level at trsf. 230 kV approx. 2083 MVA
+C
+C ************** MAIN TRANSFORMER **************
+C
+C transformer capacitance to ground 10000pF
+C a very simple model, can be replaced with any more complex model
+C transformer 230000/34500 Y/D 100 MVA; In=250 A
+C x = 7.2% on 100 MVA
+C 230^2/100* 0.07 = 37.0 ohms trsf. leakage reactance
+C TRANSFORMER busref imag flux busin rmag empty
+C ------------______------______------______------_____________________________-
+C
+C no saturation
+ TRANSFORMER 0.7 700.0 X
+ 0.7 700.0 { 100%
+ 9999
+ 1TRPA 0.80 36.0 1330
+ 2TRXA TRXB 1.00 375 {385
+ TRANSFORMER X Y
+ 1TRPB
+ 2TRXB TRXC
+ TRANSFORMER X Z
+ 1TRPC
+ 2TRXC TRXA
+C
+C transformer capacitance to ground and ph - ph 10000pF
+ TRXA 0.01
+ TRXB 0.01
+ TRXC 0.01
+C capacitance between phases
+ TRXA TRXB 0.01
+ TRXB TRXC 0.01
+ TRXC TRXA 0.01
+C
+C *********** HARMONIC FILTERS ***************
+C
+C 5th harmonic filter 20 MVAR
+ TRSA TF5 2.38 44.6 1
+ TRSB TF5 2.38 44.6
+ TRSC TF5 2.38 44.6
+C 7th harmonic filter 10 MVAR
+ TRSA TF7 2.43 22.3 1
+ TRSB TF7 2.43 22.3
+ TRUC TF7 2.43 22.3
+C
+C ******** TRANSFORMER SECONDARY LOAD ***************
+C 70 MW, 30 MVAR
+ TRSA ND 13.67 5.47
+ TRSB ND 13.67 5.47
+ TRSC ND 13.67 5.47
+C
+C shunt capacitor 20 MVAR
+ TRSA 44.5
+ TRSB 44.5
+ TRSC 44.5
+C ********** SWITCHED REACTOR FOR SVC RESPONSE TEST *********
+C
+C switched .1 sec. on .1 sec. off
+C see switch type 13 below and type 23 source in TACS
+C 25.0 MVA, 0.7 p.f.,17.5 MW, 17.5 MVAR load
+C
+ XLA NSR 34.0 34.0
+ XLB NSR 34.0 34.0
+ XLC NSR 34.0 34.0
+C
+C ************** SNUBBERS **************
+C
+C the snubber parameters shown below are not necessarily the
+C values a manufacturer would choose for a 34.5 kV valve.
+C The parameters were selected so that only a small currrent flows
+C through the control reactor with the valves non conducting,
+C and overvoltages and spikes interfering with the firing control
+C are prevented. It is quite possible that a better combination
+C than that shown exists.
+C
+C in series with valves
+C
+ CATAB RXAB .1
+ ANOAB RXAB .1
+ CATAB RXAB 4.0
+ ANOAB RXAB 4.0
+C
+ CATBC RXBC .1
+ ANOBC RXBC .1
+ CATBC RXBC 4.0
+ ANOBC RXBC 4.0
+C
+ CATCA RXCA .1
+ ANOCA RXCA .1
+ CATCA RECA 4.0
+ ANOCA RXCA 4.0
+C
+C across valves
+C
+ CATAB TRSA 2000. .1
+ ANOAB TRSA 2000. .1
+C
+ CATBC TRSB 2000. .1
+ ANOBC TRSB 2000. .1
+C
+ CATCA TRSC 2000. .1
+ ANOCA TRSC 2000. .1
+C
+C ************* SVC CONTROLLED REACTOR *************
+C
+C reactor in TCR appr. 100.0 MVA Xr = 3 * 34.5^2/100 =35.71 ohm
+ RXAB TRSB 0.1 35.71 1
+ RXBC TRSC 0.1 35.71
+ RXCA TRSA 0.1 35.71
+C
+C *************** REACTOR FOR FIRING PULSE GENERATION ******
+C
+C Fire angle reference measurement using delta connected reactors
+C TRSA - RMXA is just a dummy separation from the main 34.5 kV bus
+ TRSA RMXA 0.01 1
+ TRSB RMXB 0.01
+ TRSC RMXC 0.01
+C The reactors are delta connected through measuring switches below
+ RMAB RMXB 200. 20000.
+ RMBC RMXC 200. 20000.
+ RMCA RMXA 200. 20000.
+C
+BLANK end of branch data
+C *************** SWITCH DATA ***************8
+C
+C current measurement in the auxiliary reactor for firing pulse generation
+C these switches complete the delta connection of the reactors
+C (Rule Book p.6A-9)
+ RMXA RMAB MEASURING 1
+ RMXB RMBC MEASURING 1
+ RMXC RMCA MEASURING 1
+C
+C current measurement in the main transformer secondary
+ TRXA TRSA MEASURING
+ TRXB TRSB MEASURING
+ TRXC TRSC MEASURING
+C current measurement in the main transformer prinmary
+ TRFA TRPA MEASURING
+ TRFB TRPB MEASURING
+ TRFC TRPC MEASURING
+C
+C switch for on/off switching the 36.6 MVAR resistive-reactive load
+C (Rule Book p. 6C-1)
+12TRSA XLA FRLA 1
+12TRSB XLB FRLB 1
+12TRSC XLC FRLC 1
+C
+C VALVES
+C 6 valves, 2 per phase, 3ph. 6 pulse supply to TCR
+C Rule Book p. 6B-1
+11TRSA CATAB 100. 35.0 FIAB1 1
+11ANOAB TRSA 100. 35.0 FIAB2 1
+11TRSB CATBC 100. 35.0 FIBC1 1
+11ANOBC TRSB 100. 35.0 FIBC2 1
+11TRSC CATCA 100. 35.0 FICA1 1
+11ANOCA TRSC 100. 35.0 FICA2 1
+C
+BLANK end of switch data
+C
+C AC sources
+C 230 kV supply
+14GENA 187794. 60. 0. -1.
+14GENB 187794. 60. 240. -1.
+14GENC 187794. 60. 120. -1.
+C --------------+------------------------------
+BLANK end of source cards
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C RMXA RMAB -3.17345114E-01 -2.67576742E+00 2.69452022E+00 -96.7637 2.09775607E+04 3.61648260E+04
+C RMXB RMBC -2.12134217E+00 1.60058257E+00 2.65743432E+00 142.9649 2.09695693E+04 3.53656824E+04
+C RMXC RMCA 2.43868728E+00 1.07518486E+00 2.66518633E+00 23.7920 2.09657040E+04 3.49791488E+04
+C TRXA TRSA 1.76533509E+03 -7.18577071E+02 1.90598032E+03 -22.1487 2.86013546E+07 -7.52002129E+06
+C TRXB TRSB -1.72807188E+03 -1.23147874E+03 2.12197369E+03 -144.5251 3.19664433E+07 -7.48308730E+06
+C TRXC TRSC -3.72632074E+01 1.95005582E+03 1.95041181E+03 91.0947 2.95359580E+07 -4.27738942E+06
+C TRFA TRPA 3.28283686E+02 4.77795448E+01 3.31742465E+02 8.2809 3.05772339E+07 -5.86201921E+06
+C TRFB TRPB -1.59252346E+02 -2.98767203E+02 3.38560410E+02 -118.0590 3.15136653E+07 -2.50950856E+06
+C TRFC TRPC -1.69031340E+02 2.50987658E+02 3.02599402E+02 123.9589 2.81393539E+07 -3.10623904E+06
+C TRSA XLA Open Open .... Etc. (all remaining switches)
+C
+C 1st gen: GENA 187794. 187794. 328.28368576688 331.74246523436 .308248532425E8 .311496222581E8
+C 0.0 0.0 47.779544776826 8.2808819 -.44863559159E7 0.9895739
+ TRSA TRFA { Node voltage output requests
+C Step Time TRSA TRFA RMXA RMXB RMXC TRSA TRSB TRSC TRSA ANOAB
+C RMAB RMBC RMCA XLA XLB XLC CATAB TRSA
+C
+C TRSB ANOBC TRSC ANOCA TRSA TRSA RXAB TRSA MODELS MODELS
+C CATBC TRSB CATCA TRSC TF5 TF7 TRSB RMXA VRMSAB VRMSBC
+C
+C MODELS MODELS MODELS MODELS MODELS MODELS
+C VRMSCA VLLAVG ERROR DVQ FDB VERR
+C *** Phasor I(0) = -3.1734511E-01 Switch "RMXA " to "RMAB " closed in the steady-state.
+C *** Phasor I(0) = -2.1213422E+00 Switch "RMXB " to "RMBC " closed in the steady-state.
+C *** Phasor I(0) = 2.4386873E+00 Switch "RMXC " to "RMCA " closed in the steady-state.
+C *** Phasor I(0) = 1.7653351E+03 Switch "TRXA " to "TRSA " closed in the steady-state.
+C *** Phasor I(0) = -1.7280719E+03 Switch "TRXB " to "TRSB " closed in the steady-state.
+C *** Phasor I(0) = -3.7263207E+01 Switch "TRXC " to "TRSC " closed in the steady-state.
+C *** Phasor I(0) = 3.2828369E+02 Switch "TRFA " to "TRPA " closed in the steady-state.
+C *** Phasor I(0) = -1.5925235E+02 Switch "TRFB " to "TRPB " closed in the steady-state.
+C *** Phasor I(0) = -1.6903134E+02 Switch "TRFC " to "TRPC " closed in the steady-state.
+C %%%%% Floating subnetwork found! %%%%%% %%%%%% %%%%%% %%%%%%
+C %%%%% The elimination of row "NSR " of nodal admittance matrix [Y] has produced a near-zero diagonal value Ykk =
+C 0.00000000E+00 just prior to reciprocation. The acceptable minimum is ACHECK = 7.63336829E-12 (equal to EPSILN
+C times the starting Ykk). This node shall now to shorted to ground with 1/Ykk = FLTINF.
+C 0 0.0 24822.5855 187511.212 -.31734511 -2.1213422 2.43868728 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 326.187397 29.5320244 .821163836 -2.7560324 .081656838 .049551491
+C .032105347 .85 -.06597164 -.20205709 -.08402836 -.15
+C 1 .46296E-4 25143.8244 187629.636 -.27059939 -2.1489524 2.41955179 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 318.550308 25.5246044 .751598004 -2.6901512 .11560122 .069281865
+C .046333037 .85 .007233288 -.37886586 -.15723329 -.15
+C 2 .92593E-4 25457.4046 187690.907 -.22377124 -2.1759081 2.39967932 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 310.81619 21.5094097 .681803238 -2.6234506 .141715842 .083875142
+C .05788498 .85 -.00219819 -.35764251 -.14780181 -.15
+BLANK end of output requests
+C 2160 0.1 25442.1108 187482.902 -.29572787 -2.0263455 2.32207338 0.0 0.0 0.0 0.0 0.0
+C 0.0 446.298599 628.655556 0.0 345.907577 19.1485236 1.55331048 -2.6178013 1.04264625 1.03011633
+C 1.03191977 1.03479063 .001835206 .694094165 .032955423 .034790629
+C Variable max : 32517.4234 188770.564 2.64330646 2.62732109 2.77231282 0.0 0.0 0.0 1348.22398 803.124119
+C 642.762722 650.617284 745.361533 2455.49747 704.329689 384.313276 1348.22403 4.4384447 1.11468111 1.09242273
+C 1.09954303 1.10117116 .007233288 .694094165 .100809554 .101171165
+C Times of max : .018842593 .033425926 .021018519 .026759259 .032268519 0.0 0.0 0.0 .004490741 .09625
+C .093333333 .085 .099027778 .007083333 .097222222 .013101852 .004490741 .022453704 .034768519 .037407407
+C .035046296 .034861111 .462963E-4 0.1 .034907407 .034861111
+ PRINTER PLOT
+ 193.01 0.0 .10 MODELSDVQ { Limits: (-7.141, 6.930)
+BLANK end of plot requests
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc23.dat b/benchmarks/dc23.dat
new file mode 100644
index 0000000..4f576b1
--- /dev/null
+++ b/benchmarks/dc23.dat
@@ -0,0 +1,333 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-23
+C 1st of 2 parts: Simple TACS-only test including steady-state ac solution.
+C 1st of 8 total subcases. Following 2 TACS data subcases, there will be 5
+C data subcases that illustrate Kizilcay frequency dependence (add May, 93).
+ 0.1 1.0
+ 1 1 1 1 1
+TACS STAND ALONE
+ RES1=0 +1/1+S -1/S
+ RES2=0 +1/1+S +S/1+S -MIXER
+ 11/1+S +MIXER
+ 1.
+ 1. 1.
+ 11/S +S/1+S
+ 1.
+ 0. 1.
+ 1S/1+S +MIXER
+ 0. 1.
+ 1. 1.
+ MIXER +DC +AC
+11DC 1.0
+14AC 1. -90.
+33S/1+S 1/S 1/1+S RES1=0RES2=0MIXER DC AC
+C Next 8 output variables belong to TACS (with "TACS" an internally-added
+C Step Time TACS TACS TACS TACS TACS TACS
+C S/1+S 1/S 1/1+S RES1=0 RES2=0 MIXER
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 0.1 .952380952 .047619048 .047619048 0.0 0.0 1.0
+C 2 0.2 .861678005 .138321995 .138321995 -.2776E-16 -.111E-15 1.0
+BLANK card ending all TACS data
+C 10 1.0 .386918466 .613081534 .613081534 -.3331E-15 -.4441E-15 1.0
+C Variable max: .952380952 .613081534 .613081534 0.0 0.0 1.0
+C Times of max: 0.1 1.0 1.0 0.0 0.0 0.1
+C Variable min: 0.0 0.0 0.0 -.3331E-15 -.4441E-15 0.0
+C Times of min: 0.0 0.0 0.0 1.0 1.0 0.0
+ PRINTER PLOT
+ 143 .2 0.0 1.0 S/1+S 1/S DC { Axis limits: (0.000, 1.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 8 cases: Simple TACS-only test of supplemental TACS device type 66
+ABSOLUTE TACS DIMENSIONS
+ 10 40 50 20 20 200 2000 100
+C TEST FOR DEVICE 66
+ .0001 .03
+ 1 1 1 1 1 -1
+ 5 5 20 20
+TACS STAND ALONE
+ DUM +ZERO
+11DC1 1.0
+11DC2 1.0 -1.0
+14AC1 1.0 50.0
+14AC2 1.0 50.0 -90. -1.0
+14AC3 1.0 100.0 -1.0
+88DV66A 66+AC1 +DC1 50.
+88DV66B 66+AC2 +DC2 50.
+88DV66C 66+AC2 -DC2 50.
+88DV66D 66+AC2 +DC1 50.
+88DV66E 66+AC1 +DC2 50.
+88DV66F 66+AC2 +AC3 +DC2 50.
+33DC1 DC2 AC1 AC2 DV66A DV66B DV66C DV66D DV66E DV66F
+C Next 10 output variables belong to TACS (with "TACS" an internally-added u
+C Step Time TACS TACS TACS TACS TACS TACS
+C DC1 DC2 AC1 AC2 DV66A DV66B
+C 0 0.0 0.0 1.0 0.0 .6123E-16 0.0 1.22474487
+C 1 .1E-3 1.0 1.0 .99950656 .031410759 .141386465 1.22474487
+C 2 .2E-3 1.0 1.0 .998026728 .06279052 .199876678 1.22474487
+BLANK card ending all TACS data
+C 300 .03 1.0 1.0 -1. .39893E-13 1.22474487 1.22474487
+C Variable maxima : 1.0 1.0 1.0 1.0 1.22474487 1.22474487
+C Times of maxima : .1E-3 0.0 .02 .005 .0282 .03
+C Variable minima : 0.0 1.0 -1. -1. 0.0 1.22474487
+C Times of minima : 0.0 0.0 .01 .015 0.0 .0246
+ PRINTER PLOT
+ 144 3. 0.0 30. DV66F DV66A { Axis limits: (0.000, 1.414)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 8 subcases begins the illustration and verification of Kizilcay
+C frequency dependence, named after Dr. Mustafa Kizilcay of Lahmeyer
+C International in Frankfurt, Germany. His doctoral dissertation at
+C the University of Hannover was dominated by such modeling, although
+C that work may have been restricted to Laplace transformation (possible
+C alternate use of Z transformation is believed to be newer). In either
+C case, TACS-like transfer functions are allowed not in TACS, but rather
+C in the electric network. As subcases 3 through 6 are added to this
+C standard test case on 8 May 1993, the most easily available reference
+C for the average EMTP user would seem to be an 11-page contribution
+C entitled "A New Branch in the ATP-EMTP: High-Order, Linear Admittance
+C Model." This was published by LEC in its international journal titled
+C EMTP News (see Vol. 6, No. 1, March 1993, pp. 19-29). In WordPerfect
+C format, the associated disk file soon should be available from Prof.
+C Bruce Mork's Fargo server of E-mail fame. Details should be found in
+C the April, 1993, newsletter.
+C Ordinary RLC branch representation
+C Compare the results of this subcase with that of the following one.
+C The circuit is driven by a voltage step (type-11 source).
+C Series R-L-C branch has R = 0.05 ohm, L = 1 mH, C = 5 mF
+C and the resistive load has RL = 0.05 ohm
+C DELTAT TMAX XOPT COPT
+ .000500 .050 0. 0.
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT
+ 1 1 1 1 1 -1
+ 5 5 10 10
+ RES 0.05
+ GEN RES 0.05 1.0 5000. 1
+BLANK card -- ending electrical branches --
+BLANK card -- ending switches --
+11GEN 10.
+BLANK card -- ending sources --
+C Step Time RES GEN GEN
+C RES
+C 0 0.0 0.0 0.0 0.0
+C 1 .5E-3 .120481928 10. 2.40963855
+C 2 .1E-2 .349833067 10. 6.99666134
+ 1
+C 100 .05 -.00286701 10. -.05734015
+C Variable maxima : .943967142 10. 18.8793428
+C Times of maxima : .0035 .5E-3 .0035
+C Variable minima : -.66356661 0.0 -13.271332
+C Times of minima : .0105 0.0 .0105
+BLANK card -- ending plot cards --
+BEGIN NEW DATA CASE
+C 4th of 8 subcases is to be compared with the preceding 3rd. The two
+C solutions should be identical. The same RLC circuit is represented
+C here using a second order rational function as an admittance in the
+C S-domain of Laplace transformation. This provides validation of
+C Kizilcay frequency dependence for a very simple case where we have
+C an alternate means of computing the transient.
+C DELTAT TMAX XOPT COPT
+ .000500 .050 0. 0.
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT
+ 1 1 1 1 1 -1
+ 5 5 10 10
+ RES 0.05
+C -- preceding R branch defines node names and output option
+C <....>: dummy value!
+ GEN RES 99. 1
+C The following illustrates F95 ability to size Kizilcay frequency-dependent
+C tables. This documents the format. It is legal for F77, however, only
+C because the 3 numbers shown equal the fixed, default dimensions. If any
+C one of these numbers is changed for F77 use, an error termination should
+C result. Any blank data field is converted automatically to the default
+C value shown below. Change made 20 October 2000:
+C MAXHAN MAXORD MAXTOT
+C KIZILCAY F-DEPENDENT LIMITS 30 25 1000
+C The preceding has been moved downward 2 subcases. We want the first use
+C of KFD not to have this declaration because lack of it caused trouble for
+C F95 Lahey ATP prior to a correction to HANNFD on 19 November 2002.
+C ---Request-------> < Order><------ Gain --------> |
+KIZILCAY F-DEPENDENT 2 1.0 S-transform
+C -coeff. of numerator--><-coeff. of denominator->
+ 0.0 1.0
+ 0.005 2.5E-4
+ 0.0 5.0E-6
+BLANK card -- ending electrical branches --
+BLANK card -- ending switches --
+11GEN 10.
+BLANK card -- ending sources --
+C Step Time RES GEN GEN
+C RES
+C 0 0.0 0.0 0.0 0.0
+C 1 .5E-3 .120481928 10. 2.40963855
+C 2 .1E-2 .349833067 10. 6.99666134
+ 1
+C 100 .05 -.00286701 10. -.05734015
+C Variable maxima : .943967142 10. 18.8793428
+C Times of maxima : .0035 .5E-3 .0035
+C Variable minima : -.66356661 0.0 -13.271332
+C Times of minima : .0105 0.0 .0105
+BLANK card -- ending plot cards --
+BEGIN NEW DATA CASE
+C 5th of 8 subcases continues illustration and verification of Kizilcay
+C frequency dependence. Whereas subcases 3 and 4 considered only step
+C excitation of the time-step loop beginning with 0 initial conditions,
+C the concluding two cases will involve a continuation of the sinusoidal
+C steady state. Here, we first establish a standard of comparison by
+C using only tradition EMTP modeling.
+C Ordinary RLC branch representation
+C Compare the results of this subcase with that of the following subcase.
+C The circuit is driven by a sinusoidal voltage source.
+C Series R-L-C: R = 0.05 ohm, L = 1 mH, C = 5 mF
+C and resistive load, RL = 0.05 ohm
+C DELTAT TMAX XOPT COPT
+ .000500 .050 0. 0.
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT
+ 1 1 1 1 1 -1
+ 5 5 10 10
+ RES 0.05
+ GEN RES 0.05 1.0 5000. 1
+BLANK card -- ending electrical branches --
+BLANK card -- ending switches --
+14GEN 10. 50. -1.
+BLANK card -- ending sources --
+C Step Time RES GEN GEN
+C RES
+C 0 0.0 .438670455 10. 8.7734091
+C 1 .5E-3 .212452642 9.87688341 4.24905284
+C 2 .1E-2 -.01899859 9.51056516 -.3799719
+ 1
+C 100 .05 -.44323561 -10. -8.8647122
+C Variable maxima : 1.48971876 10. 29.7943752
+C Times of maxima : .016 0.0 .016
+C Variable minima : -1.491383 -10. -29.827659
+C Times of minima : .026 .01 .026
+BLANK card -- ending plot cards --
+BEGIN NEW DATA CASE
+C 6th of 8 subcases continues illustration of Kizilcay F-dependence.
+C This shows KIZILCAY F-DEPENDENT modelling of the series RLC
+C circuit in the Z-domain. The RLC circuit is represented by a second order
+C rational function of admittance type in Z-transform. The coefficients are
+C obtained by applying the bilinear transform to the rational function in
+C Laplace domain.
+C DELTAT TMAX XOPT COPT
+ 0.0005 0.05 50.
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT ICAT
+ 10 1 1 1 1 2
+ RES 0.05
+C -- preceding R branch defines node names and output option
+C <....>: dummy value!
+ GEN RES 99. 1
+C The following illustrates F95 ability to size Kizilcay frequency-dependent
+C tables. This documents the format. It is legal for F77, however, only
+C because the 3 numbers shown equal the fixed, default dimensions. If any
+C one of these numbers is changed for F77 use, an error termination should
+C result. Any blank data field is converted automatically to the default
+C value shown below. Change made 19 November 2002:
+C MAXHAN MAXORD MAXTOT
+KIZILCAY F-DEPENDENT LIMITS 30 25 1000
+C ---Request-------> < Order><------ Gain --------> |
+KIZILCAY F-DEPENDENT 2 1.0 Z-transform
+C -coeff. of numerator--><-coeff. of denominator->
+ 10.0 41.0
+ 0.0 -79.0
+ -10.0 40.0
+BLANK card -- ending electrical branches --
+BLANK card -- ending switches --
+14GEN 10. 50. -1.
+BLANK card -- ending sources --
+C Step Time RES GEN GEN
+C RES
+C 0 0.0 .443567421 10. 8.87134842
+C 10 .005 -1.4216487 -.315E-14 -28.432974
+ 1
+C 100 .05 -.44356742 -10. -8.8713484
+C Variable maxima : 1.48913814 10. 29.7827628
+C Times of maxima : .036 0.0 .016
+C Variable minima : -1.4891381 -10. -29.782763
+C Times of minima : .026 .01 .026
+BLANK card -- ending plot cards --
+BEGIN NEW DATA CASE
+C 7th of 8 subcases illustrates higher-order Kizilcay F-dependence.
+C It is a single-phase subset of the 3-phase data named KFDHEV.DAT
+C that was received from Orlando Hevia attached to E-mail dated
+C 23 November 2002. But Orlando said that he received it from Ricardo
+C Ricardo Tenorio of ABB in Vasteras, Sweden. It seems this is a low-
+C or intermediate-order approximation that was "derived from ATP
+C simulations, although the system represented is a real one" (see
+C E-mail dated 2002-12-11, 7:39). Mr. Tenorio was the first to report
+C stability problems of KFD for high order and small dT as first
+C mentioned in the January, 2003, newsletter. Well, that high-order
+C data is proprietary (secret), so can not be disclosed. But the
+C general phenomenon can be illustrated using the lower-order
+C approximation of this subcase. Consider what happens if dT differs
+C from the 2 microseconds (usec) of the miscellaneous data card:
+C dT = 3 usec would be perfectly sinusoidal. That final cycle [60, 80] msec
+C has maximum current = 4117 (at 61.06 msec) and min = -4112 (at 71.07
+C msec). This is very symmetrical and balanced. Also, the phasor solution
+C has 4138, which seems plenty close. So all is well at dT = 3 usec using
+C 64 bits of Salford precision. But 2 usec differs. It adjusts to sinusoid
+C during 1st cycle. The phasor solution is not too different at 4138. But
+C the dT loop is quite different. That final cycle [60, 80] msec has maximum
+C current of only 3272 (at 61.24 msec) and min = -3322 (at 71.28). Yet,
+C even with the obvious error (too small amplitude), stability seems good.
+C Both 1.9 and 2.1 usec do _not_ adjust, but rather become highly distorted
+C over the first 40 msec (1st of 2 plots). The second plot, over [40, 80],
+C clearly is diverging. The amplitude of the current grows exponentially.
+C So, on both sides of dT = 2.0 usec there is instability whereas dT = 2.0
+C seems perfectly stable & sinusoidal at 80 msec. All of this is using 64
+C bits of Salford EMTP precision. Using 128-bit Lahey, there is no hint of
+C distortion anywhere. The graph for dT = 3.0 usec seems identical to 1.9
+C or 2.0 usec. Conclusion: for 64 bits, dT = 3 usec is close to the
+C stability limits of the KFD model.
+C Addition on 10 December 2002: Having tested Watcom, GNU Mingw32, and
+C 64-bit F95 Lahey, it can be reported that all behave comparably, but
+C differently. Each has different roundoff, so numbers are different.
+C But the graphs look similar. So, be advised that one can not easily
+C compare any two of the .LIS files using Mike Albert's FC. Human
+C intelligence is required. But for larger time steps, comparisons are
+C perfect. To see this, consider the 4th subcase of DC-48. This uses
+C the same data, but a larger step size of dT = 100 usec. FC indicates
+C perfect agreement in this case.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+BEGIN PEAK VALUE SEARCH .060 { Compare max & min over just 1 cycle
+POWER FREQUENCY 50. { Nicer period than using Hevia's 60 Hz
+.0000020 .080
+ 1 7 1 1 1 -1
+ 5 5 20 20 100 100 1000 1000
+C ONLY KFD ELEMENT IS HERE: THE CASE IS UNSTABLE FOR SMALL DELTAT
+C NETWORK EQUIVALENT BY KFD
+C <-BUS1<-BUS2<-BUS3<-BUS4<----R<----L<----C
+ SOURCA 99. 1
+C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
+KIZILCAY F-DEPENDENT 6 1.00000E+000 S
+ 2.55564999999999990E-002 1.00000000000000000E+000
+ 2.58174256593059220E-006 1.26190169827623520E-003
+ 3.44528114161255420E-008 6.56757488674167030E-007
+ 2.16578732571550020E-012 6.22037676357393080E-010
+ 7.77318622992575270E-015 1.10717058895704090E-013
+ 2.25856143523397890E-019 5.18376352266273340E-017
+ 3.19918022205034290E-022 4.41171918010679540E-021
+BLANK card ending branch cards
+BLANK card ending switch cards (none)
+14SOURCA 187794.214 50. 0. -1.
+C 14SOURCA 187794.214 60. 90. { -1.
+BLANK card ending source cards
+ SOURCA
+BLANK card ending node voltage output requests
+ CALCOMP PLOT { Switch to screen from printer plot of a preceding subcase
+ 194 4. 0.0 40. SOURCA dT = 2.0 usec H(s) current
+ 194 4. 40. 80. SOURCA 2nd 40 msec H(s) current
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 8 subcases continues illustration of Kizilcay F-dependence.
+C The following illustrates F95 ability to erase Kizilcay frequency-dependent
+C tables. This documents the format. For F77, no storage actually is closed,
+C however. For F77, the declaration has no effect on memory.
+ 0.0005 0.05
+ 1 1
+C MAXHAN MAXORD MAXTOT
+KIZILCAY F-DEPENDENT LIMITS -1 { Special 1st of 3 integers ==> close
+ DUMMY 1.0 { Dummy branch will confirm branch data input
+$STOP { Since done showing cancellation of Kizilcay tables, terminate execution
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc24.dat b/benchmarks/dc24.dat
new file mode 100644
index 0000000..bd2c786
--- /dev/null
+++ b/benchmarks/dc24.dat
@@ -0,0 +1,878 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-24
+C Monte Carlo simulation that is run in two parts. The original six
+C energizations of "M39." stand-alone case have been reduced to 3, &
+C the remaining 3 are performed in companion case DC-40, which is a
+C "START AGAIN" continuation of this MEMSAV = 1 case. The use of
+C standard random numbers and fixed seed gives results that should be
+C repeatable & same for all computers of interest. But M39 differs!
+C Note that this data case has no base case. However, if the user
+C wants to add this, he need merely comment out the "OMIT BASE CASE"
+C request card, and do likewise for the $DISABLE/ENABLE cards that
+C precede statistics tabulation requests. Save the resulting binary
+C disk file TPTABLES.BIN under the name dc24at40.bin for use by
+C DC-40. For a "STATISTICS" random-opening data case, see DC-48.
+C Beware of PARALLEL.LIS entry for same USERID that might modify NENERG!
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+C TRULY RANDOM NUMBERS { Same as NSEED=0 (this overrides stat misc. data card)
+REPEATABLE RANDOM NUMBERS { Same as NSEED=1 (this overrides zero value below)
+C CENTRAL STATISTICS FILE { Request word that precedes the disk file name
+C %/wsm/parallel.atp ! { Leading percent sign avoids confusion of "/" in column 1
+C USER IDENTIFICATION Warsaw ! { Overrides A6 USERID of STARTUP for plots
+C DIAGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 9 9 9 9
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+C Request special output for MS Excel. EOFE service begins 20 July 2007. The
+C output file name will be parallel to the input data, with distinctive type :
+C Type --- Ruler for file type of Excel output file:
+EXTREMA OUTPUT FOR EXCEL .exc { Columns 29-32 carry optional file type
+C EXTREMA OUTPUT FOR EXCEL { Blank 29-32 will use default file type .xcl
+ 100.E-6 20.E-3 60.
+ 1 1 1 2 1 -1 1 0 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 0
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+C Next come 3 switches whose closing times are to be varied by rolling dice.
+C The 1st of the 3 STATISTICS switches has type code "76" which means that
+C the distribution is uniform with mean of 2 msec and standard deviation of
+C 0.1 msec (columns 15 through 34). The 2nd and 3rd switches have type code
+C zero, so use Gaussian distribution. The means are 4 and 6 msec, and the
+C standard deviations are 1/2 and 1 msec, respectively.
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+C The following is DIAGNOSTIC from "RANDNZ" usage of overlay 12. Not a
+C normal case output, this is useful in case switching times are incorrect:
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.296996800000000000E+07
+C 0.296996800000000000E+07 0.000691499561071
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.205132719793000000E+12
+C 0.326925688100000000E+10 0.761183183873072
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.225804303513790000E+15
+C 0.692893886000000000E+09 0.161326929461211
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.478574878121350000E+14
+C 0.296220010300000000E+10 0.689690956613049
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.204596198914108000E+15
+C 0.113680185200000000E+10 0.264682306908071
+C Last gen: ENDC -103.6321034277 303. -.710542736E-14 .7324106878E-14
+C Last gen: 284.72686409813 110.000 -.177635684E-14 -165.9637565
+C The following unit-9 connection could come earlier on this first subcase
+C because of FORM=UNFORMATTED, which is compatible with VECRSV/VECISV of
+C MS-DOS (which uses unit 9 for scratch storage). But the present location
+C is always safe, so its use is good practice. It is mandatory for 3rd case.
+$OPEN, UNIT=LUNIT9 FILE=dc24at40.ext STATUS=UNKNOWN FORM=UNFORMATTED RECL=1000 !
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+C GENA GENC ENDA B1 ASW10
+C Reference angle A1 C1 A10 BSW1
+C
+C GENB ENDA
+C B1 A10
+C Random switching times for energization number 1 :
+C 1 1.8826802E-03 2 4.2472809E-03 3 5.3713577E-03
+C 0.0 141.9164096 -72.1873524 -35.0598126 372.1266197 -429.52043
+C 1.257471517 -1.85970093
+C Times of maxima : .002 .0141 .0127 .0051 .0075
+C .02 .017
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.785177671157890000E+14
+C 0.146997761300000000E+10 0.342255833791569
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.101529883752298000E+15
+C 0.115184215400000000E+10 0.268184150103480
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.795565857346270000E+14
+C 0.906510819000000000E+09 0.211063497466967
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.626117957575120000E+14
+C 0.405748372000000000E+10 0.944706546142697
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.280246343056681000E+15
+C 0.402195997700000000E+10 0.936435530195013
+C Random switching times for energization number 2 :
+C 1 1.8999095E-03 2 4.7979502E-03 3 7.5258324E-03
+C 0.0 141.9164096 61.55446116 -41.9189588 371.6253603 334.5616569
+C 1.207725131 -1.83695142
+C Times of maxima : .002 .0154 .0139 .0059 .0028
+C .0058 .017
+BLANK card ending the specification of program outputs (node voltages, here)
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.277792753651414000E+15
+C 0.285888072600000000E+10 0.665635039564222
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.197460032864095000E+15
+C 0.320639779100000000E+10 0.746547661488876
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.221462689026580000E+15
+C 0.129034293200000000E+10 0.300431375391781
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.891226959703090000E+14
+C 0.212457830900000000E+10 0.494666935177520
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.146742499224322000E+15
+C 0.646589186000000000E+09 0.150545776356012
+C Random switching times for energization number 3 :
+C 1 1.9308674E-03 2 3.9933351E-03 3 4.9659084E-03
+C 0.0 136.7926646 -89.6601448 -53.6359842 437.6032257 -510.753735
+C 1.532437698 -1.74295212
+C Times of maxima : .0021 .0051 .0083 .0045 .0074
+C .0044 .0169
+C Cards associated with the base-case solution must not be present:
+$DISABLE { Comment out this card, if a base case solution is to be added
+ PRINTER PLOT
+ 144 3. 0.0 20. ASW10
+BLANK card ending base-case plot cards
+$ENABLE { Comment out this card, if a base case solution is to be added
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+C The following disconnects DC24.BIN to protect; automatic result of reopening:
+$OPEN, UNIT=LUNIT2 STATUS=SCRATCH FORM=UNFORMATTED { Disconnect *.BIN on LUNIT2
+-1 100. GENA A1
+$CLOSE, UNIT=LUNIT9 STATUS=KEEP { Disconnect to prevent damage by stray WRITE
+$OPEN, UNIT=LUNIT9 FILE=dc24dum.dum STATUS=SCRATCH !
+FIND { Enter interactive search for which shot and which variable gave extremum
+HELP { Show the user that there is a summary explanation of "FIND" on-line
+C Peak extremum of subset has value 5.62169583E+02 This occurred during
+C energization 2 for the variable having names "CSW10 " and " ".
+C This was variable 3 of 3 in the subset; 3 shots were searched.
+ ASW10 BSW10 CSW10 { Search these 3 node voltages for extremum
+EXCLUDE { Repeat the preceding search after 1st excluding the just-found shot
+C Peak extremum of subset has value 5.59424445E+02 This occurred during
+C energization 1 for the variable having names "CSW10 " and " ".
+C This was variable 3 of 3 in the subset; 2 shots were searched.
+C Remember excluded shots are numbered 2
+C Add the following DISK command on 29 September 2002. Look in the January,
+C 2003 or later newsletter for a summary. Only the framework of the feature
+C now exists in DICTAB, but it is being illustrated here in order that it not
+C be forgotten. The idea is this. Each EXCLUDE command excludes another shot
+C (number 2 for the preceding). Deterministic simulation of this often is of
+C interest, and DISK is designed to create such a data file. The name will
+C be SHOT0002.DAT and this file will be located along with the .LIS file,
+C assuming parallel naming.
+C DISK { Create a disk file of data for deterministic simulation of EXCLUDEd shot
+C 6 October 2002, the RESIMULATE command is working at home as illustrated
+C by f:\data\DUM24.DAT First, the preceding DISK is enhanced by /LIST:
+C 8 October 2002, /FULL is created to use full 10 bytes of T-close or open
+C as opposed to the default 9, with one blank on the left as separator.
+DISK /LIST /FULL { Create disk file of data for deterministic simulation of EXCLUDEd shot
+C RESIMULATE { Abort this data case. Begin with SHOT0002.DAT just created by DISK
+C If the preceding line is activated, all following data will be ignored as
+C the present data is aborted in favor of the DISK-created SHOT0002.DAT But
+C we do not want to lose all the following output. So, comment this line
+C here and note that a new 4th subcase of DC-48 illustrates RESIMULATE use.
+EXCLUDE { Excluding the shot of previous output means only one is left for use
+C Peak extremum of subset has value 5.53096221E+02 This occurred during
+C energization 3 for the variable having names "BSW10 " and " ".
+C This was variable 2 of 3 in the subset; 1 shots were searched.
+C Remember excluded shots are numbered 1 2
+RESET { Reinitialize by erasing history of previous selections
+ALL { Next, consider searching all output variables of some class
+8 { As with batch-mode plotting, "8" indicates branch voltages (search ALL)
+C Peak extremum of subset has value 1.41916410E+02 This occurred during
+C energization 1 for the variable having names "GENA " and "A1 ".
+C This was variable 1 of 3 in the subset; 3 shots were searched.
+EXCLUDE { Repeat the preceding search after 1st excluding the just-found shot
+EXCLUDE { Excluding the shot of previous output means only one is left for use
+EXCLUDE { Final attempt to exclude should lead to error message: nothing is left
+ALL { Next, consider searching all output variables of some class
+9 { As with batch-mode plotting, "9" indicates branch currents (search ALL)
+EXCLUDE { Repeat the preceding search after 1st excluding the just-found shot
+C $KEY { Un-comment to allow keyboard input (until "END") at this point
+QUIT { Done locating extrema, so exit the "FIND" alternative
+C &&&&&&&&&&&&& End request and documentation. Begin 3 coupled cards ......
+C 2 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 9 0.4500000 0.13635000E+03 0 0
+C 10 0.5000000 0.15150000E+03 3 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 4.75000000E-01 4.62734306E-01
+C Variance = 0.00000000E+00 9.53165933E-05
+C Standard deviation = 0.00000000E+00 9.76302173E-03
+-1 GENA A1 CONT.
+C 3 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENC " to "C1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 4 0.2000000 0.60600000E+02 0 0
+C 5 0.2500000 0.75750000E+02 2 2
+C 6 0.3000000 0.90900000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 2.41666667E-01 2.45766731E-01
+C Variance = 8.33333333E-04 2.19347831E-03
+C Standard deviation = 2.88675135E-02 4.68345845E-02
+-1 GENC C1 CONT.
+C 4 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "ENDA " to "A10 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 2 0.1000000 0.30300000E+02 0 0
+C 3 0.1500000 0.45450000E+02 2 2
+C 4 0.2000000 0.60600000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.41666667E-01 1.43690600E-01
+C Variance = 8.33333333E-04 9.61072666E-04
+C Standard deviation = 2.88675135E-02 3.10011720E-02
+-1 ENDA A10
+C 5 ) --------------------------------------------------------------------------
+C SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMAR
+C 5 ) --------------------------------------------------------------------------
+C A distribution of peak values among all output branches of the last data card
+C statistical distribution is for the maximum of the peaks at all of these outpu
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 9 0.4500000 0.13635000E+03 0 0
+C 10 0.5000000 0.15150000E+03 3 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 4.75000000E-01 4.62734306E-01
+C Variance = 0.00000000E+00 9.53165933E-05
+C Standard deviation = 0.00000000E+00 9.76302173E-03
+C 3456789012345678901234567890123456789012345678
+C MODTAB AINCR XMAXMX
+STATISTICS DATA 1 0.0 0.0 ---- Only individual
+-1 GENC C1 { =.245766731, Variance=2.19347831E-3} CONT.
+-1 ENDA A10 { 1.43690600E-01, 9.61072666E-04
+C 8 ) --------------------------------------------------------------------------
+C SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMAR
+C 8 ) --------------------------------------------------------------------------
+C A distribution of peak values among all output branches of the last data card
+C statistical distribution is for the maximum of the peaks at all of these outpu
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 4 0.2000000 0.60600000E+02 0 0
+C 5 0.2500000 0.75750000E+02 2 2
+C 6 0.3000000 0.90900000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 2.41666667E-01 2.45766731E-01
+C Variance = 8.33333333E-04 2.19347831E-03
+C Standard deviation = 2.88675135E-02 4.68345845E-02
+STATISTICS DATA 2 0.0 0.0 ------ Only union of 2 curves
+-1 GENC C1 CONT.
+-1 ENDA A10 { See comments for solution
+STATISTICS DATA 3 0.0 0.0 ---- Both individual & union
+-1 GENC C1 { =.245766731, Variance=2.19347831E-3} CONT.
+-1 ENDA A10 { 1.43690600E-01, 9.61072666E-04
+C 12 ) -------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENC " to "C1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 8 0.9131973 0.56211367E+02 0 0
+C 9 1.0273470 0.63237788E+02 1 1
+C 10 1.1414966 0.70264209E+02 0 1
+C 11 1.2556463 0.77290630E+02 1 2
+C 12 1.3697959 0.84317051E+02 0 2
+C 13 1.4839456 0.91343472E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.19857145E+00 1.20977941E+00
+C Variance = 5.21205808E-02 5.31495428E-02
+C Standard deviation = 2.28299323E-01 2.30541846E-01
+STATISTICS DATA 3 -5.0 0.0 ---- Fixed number of 5 boxes
+-1 GENC C1 { See preceding comments for 1st of 3} CONT.
+-1 ENDA A10
+STATISTICS DATA 3 .05 0.0 ---- Restore STARTUP values
+-1 GENC C1 ENDA A10 { =2.45766731E-1, Variance = 2.19347831E-3
+ 0 ASW10 BSW10 CSW10 { Mean=1.40245965E+0, Variance = 8.47042357E-2
+C 1st of 4 tables is documented on preceding request; the 4th of 4 follows:
+C 21 ) -------------------------------------------------------------------------
+C SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMAR
+C 21 ) -------------------------------------------------------------------------
+C The following is a distribution of peak overvoltages among all output nodes of
+C This distribution is for the maximum of the peaks at all output nodes with V-
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 36 1.8000000 0.54540000E+03 0 0
+C 37 1.8500000 0.56055000E+03 2 2
+C 38 1.9000000 0.57570000E+03 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.84166667E+00 1.84234351E+00
+C Variance = 8.33333333E-04 2.35830395E-04
+C Standard deviation = 2.88675135E-02 1.53567703E-02
+C &&&&&&&&& End documentation of node voltage tabulations (4th of 4 tables)
+STATISTICS DATA 3 -4.0 0.0 ---- Fixed number of 4 boxes
+C 22 ) -------------------------------------------------------------------------
+C Statistical distribution of peak power for branch "B1 " to "BSW1 ".
+C Interval power power in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 16 0.9468728 0.35188195E+03 0 0
+C 17 1.0060524 0.37387457E+03 2 2
+C 18 1.0652319 0.39586719E+03 0 2
+C 19 1.1244115 0.41785981E+03 0 2
+C 20 1.1835910 0.43985244E+03 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.03564214E+00 1.05962916E+00
+C Variance = 1.05066576E-02 1.04274409E-02
+C Standard deviation = 1.02501988E-01 1.02114842E-01
+-3 B1 BSW1 { See preceding comments for this branch power table
+-2 0. GENB B1 ENDA A10 { =1.10335104E+0, Variance = 2.09698061E-2
+-4 0. B1 BSW1 { Ungroup: Mean=1.16595031E+0, Variance = 3.80542557E-2
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 2nd of 6 subcases repeats the preceding problem exactly, only instead
+C of rolling dice to find the switch closing times, such times will be
+C read from a user-supplied disk file dc24lun8.dat (see $OPEN use).
+C The solution of this 2nd subcase should exactly agree with the first.
+C However , for variety , a base case solution (missing from the first
+C subcase) and a character plot have been added to this 2nd subcase.
+C Also, the ".PL4" plot file (actually, just the header) is saved
+C permanently for later re-connection using the 4th subcase of DC-40.
+PRINTED NUMBER WIDTH, 11, 1, { Set dT-loop column width as done b4 by STARTUP
+C $STARTUP, dc37star.dat { Use disk file for re-initialization at this point
+C This is a Monte Carlo case, for which TENERG is critical. But this
+C parameter is initialized only in the STARTUP file. For this 2nd or
+C later data case, we reinitialize via the preceding $STARTUP request
+USER SUPPLIED SWITCH TIMES { Bypass the dice, reading TCLOSE & TOPEN from LUNIT8
+C The following connection of unit 2 is required only because this is the
+C 2nd subcase. It follows a case in which MEMSAV=1 dumps tables via I/O
+C unit LUNIT2=2, and then this file is disconnected. Without the manual
+C connection that follows, nothing would be connected, and execution would
+C die for Apollo in "SUBR5" where REWIND LUNIT2 is found. So connect it:
+$OPEN, UNIT=LUNIT8 FILE=dc24lun8.dat FORM=FORMATTED STATUS=OLD RECL=80 ! { Case
+$OPEN, UNIT=LUNIT2 FORM=UNFORMATTED STATUS=SCRATCH RECL=16000
+C $STARTUP, dc37star.dat { Re-initialize is required to set TENERG for table dump
+C { This is a peculiarity of having "STATISTICS" as the
+C { 2nd or later data subcase within a single disk file.
+C DISK PLOT DATA { Toggle the Apollo default of LUNIT4 = -4 to +4 (use disk)
+$CLOSE, UNIT=LUNIT4 STATUS=DELETE { Destroy empty date/time plot file of "SYSDEP"
+$OPEN, UNIT=LUNIT4 FILE=dc24b40d.pl4 ! { All we need for C-like case
+C Before continuing with case, let's document the contents of that unit-8 file:
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 1:
+C 1.882680E-03 4.247281E-03 5.371358E-03 7.95E-3 9.95E-3
+C 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+C .1E-3 0.5E-3 1.E-3 1.0 1.0
+C 1.0
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 2:
+C 1.899909E-03 4.797950E-03 7.525832E-03 7.95E-3 9.95E-3
+C 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+C .1E-3 0.5E-3 1.E-3 1.0 1.0
+C 1.0
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 3:
+C 1.930867E-03 3.993335E-03 4.965908E-03 7.95E-3 9.95E-3
+C 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+C .1E-3 0.5E-3 1.E-3 1.0 1.0
+C 1.0
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C Cancel special output for MS Excel of 1st subcase. Addition on 20 July 2007:
+C Type --- Ruler for file type of Excel output file:
+EXTREMA OUTPUT FOR EXCEL .off { Columns 29-32 carry optional file type
+ 100.E-6 20.E-3 60.
+ 1 1 1 2 1 -1 0 2 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 1.95E-3 .1E-3 STATISTICS
+ B1 BSW1 3.95E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 5.95E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+C Last gen: ENDC -103.6321034277 303. -.710542736E-14 .7324106878E-14
+C Last gen: 284.72686409813 110.000 -.177635684E-14 -165.9637565
+ ASW10 BSW10 CSW10
+C Step Time GENA GENC ENDA B1 ASW10 BSW10
+C A1 C1 A10 BSW1
+C 0 0.0 -.5684E-13 .28422E-13 -.5684E-13 -151.5 0.0 0.0
+C 1 .1E-3 .56843E-13 .29559E-11 -.2842E-12 0.0 0.0 0.0
+C 2 .2E-3 0.0 -.2927E-11 .28422E-12 0.0 0.0 0.0
+BLANK card ending the specification of program outputs (node voltages, here)
+C Last step: 200 .02 1.60684633 5.46144739 15.5569682 209.921255 126.692915
+C Variable max:136.792665 67.5308064 48.9224823 437.603226 320.835627 553.096221
+C Times of max: .0021 .0061 .0093 .0045 .0029 .0049
+C Variable min:-100.37615 -85.515782 -58.824356 -292.03358 -548.79093 -353.02344
+C Times of min: .0033 .0127 .0084 .0056 .0074 .0141
+ PRINTER PLOT
+ 144 1. 0.0 10. ASW10 { Plot limits: (-5.488, 3.208)
+$CLOSE, UNIT=LUNIT4 STATUS=KEEP
+$OPEN, UNIT=LUNIT4 FILE=dc24bdum.pl4 ! { All we need for C-like case
+BLANK card ending base-case plot cards
+C GENA GENC ENDA B1 ASW10
+C Reference angle A1 C1 A10 BSW1
+C Random switching times for energization number 1 :
+C 1 1.8826800E-03 2 4.2472810E-03 3 5.3713580E-03
+C 0.0 141.91641 -72.187352 -35.059813 372.12662 -429.52043 422.745884
+C Times of maxima : .002 .0141 .0127 .0051 .0075 .0051
+C
+C Random switching times for energization number 2 :
+C 1 1.8999090E-03 2 4.7979500E-03 3 7.5258320E-03
+C 0.0 141.91641 61.5544612 -41.918959 371.62536 334.561657 497.525193
+C Times of maxima : .002 .0154 .0139 .0059 .0028 .0065
+C
+C Random switching times for energization number 3 :
+C 1 1.9308670E-03 2 3.9933350E-03 3 4.9659080E-03
+C 0.0 136.792665 -89.660145 -53.635984 437.603226 -510.75374
+C cont. 553.096221 513.648909 .96346791 1.5324377 -1.7429521
+C .0021 .0051 .0083 .0045 .0074
+C cont. .0049 .011 .02 .0044 .0169
+C Cards associated with the base-case solution must not be present:
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+-1 100. GENA A1 { See preceding comments that document this tabulation
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 3rd of 6 subcases repeats the first subcase exactly, only instead of
+C dumping full tables, MEMSAV = 2 (columns 49-56) means that only
+C the extrema and switching times are to be dumped, and
+C this will be FORMATTED rather than UNFORMATTED (for
+C this change, only $OPEN is changed). The resulting card-image file
+C named dc24ct40.lis is used by the 2nd and later subcases of DC-40.
+C Also, as an illustration, time-step loop output of all energizations
+C will be shown (because column-48 variable KSTOUT is zero not blank),
+C and the miniature character plots of switch times will be suppressed.
+PRINTED NUMBER WIDTH, 11, 1, { Set dT-loop column width as done b4 by STARTUP
+C $STARTUP, dc37star.dat { Use disk file for re-initialization at this point
+C This is a Monte Carlo case, for which TENERG is critical. But this
+C parameter is initialized only in the STARTUP file. For this 2nd or
+C later data case, we reinitialize via the preceding $STARTUP request
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+ 100.E-6 20.E-3 60.
+ 1 1 1 2 1 -1 2 0 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+C 1 1 0 0 1 0 { STATIST. misc. data card } 1
+ 1 1 0 0 2309 0 { STATIST. misc. data card } 1
+ 2 2 10 10 { Printout frequency change for all soutions
+C Preceding STATISTICS miscellaneous data card is handled differently beginning
+C 23 September 2005 as new reserved value IDICE = 2309 is introduced as a
+C request for alternative, computer-dependent dice. This is to satisfy Apple
+C Macintosh G5 as used by Stu Cook of JUST Services in Ontario, Canada. As of
+C this date, Mac G5 ATP is the only version to honor the 2309 alternative.
+C For all versions, any other IDICE value (including the value unity shown)
+C is treated the same as zero or blank. I.e., any other value does nothing.
+C Henceforth, IDICE = 2309 is a request for alternative, computer-dependent
+C random numbers (dice) of the operating system's library. So, we illustrate
+C use here to document the two associated warning lines immediately before the
+C input of branch data begins. If Stu Cook wants to compare his results with
+C everybody else's, he should restore the value IDICE = 1 (alternatively,
+C zero or blank would be equivalent). Salford ATP output follows:
+C Statistics data. 1 1 0 0 2309 1 | 1 1 ...
+C Printout : 2 2 10 10 0 0 | 2 2 ...
+C Computer-dependent (not universal) dice have been requested for this
+C Monte Carlo study by reserved value IDICE = 2309.
+C Sorry, no alternative computer-dependent dice are available. ATP will
+C ignore this request. Universal dice will be used.
+C Series R-L-C. 0.000E+00 1.857E-02 0.000E+00 | 0GENA A1 ...
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+C Last gen: ENDC -103.6321034277 303. -.710542736E-14 .7324106878E-14
+C Last gen: 284.72686409813 110.000 -.177635684E-14 -165.9637565
+C The following unit-9 connection must not be made earlier, since the same
+C I/O channel is used as UNFORMATTED by VECRSV/VECISV of MS-DOS. This is
+C different than the first subcase (read those comments), note:
+$OPEN, UNIT=LUNIT9 FILE=dc24ct40.lis STATUS=UNKNOWN FORM=FORMATTED !
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+C GENA GENC ENDA B1 ASW10 BSW10
+C Reference angle A1 C1 A10 BSW1
+C Random switching times for energization number 1 :
+C 1 1.8826802E-03 2 4.2472809E-03 3 5.3713577E-03
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 2 .2E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 4 .4E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 6 .6E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 8 .8E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 10 .001 0.0 0.0 0.0 0.0 0.0 0.0
+C ==== Table dumping for all subsequent restorations. Time [sec] = 1.8000E-03
+C *** Close switch "A1 " to "ASW1 " after 1.90000000E-03 sec.
+C 20 .002 141.91641 0.0 0.0 0.0 0.0 0.0
+C 30 .003 -34.73764 0.0 0.0 0.0 318.450266 -159.22513
+BLANK card ending the specification of program outputs (node voltages, here)
+C 190 .019 -8.1503339 19.8420817 .549065534 24.9565797 230.197042 85.0661304
+C 200 .02 .352725683 14.1822201 13.4881293 207.346558 128.761754 181.144509
+C 201 .0201 -.23343325 23.5035485 8.73828958 199.126365 123.327149 204.30575
+C Extrema of output variables follow. Order and column positioning are the sam
+C Variable max:136.792665 56.3388361 40.5581876 437.603226 320.835627 553.096221
+C Times of max: .0021 .0053 .0092 .0045 .0029 .0049
+C Variable min:-100.37615 -89.660145 -53.635984 -272.03803 -510.75374 -342.9791
+C Times of min: .0033 .0051 .0083 .0055 .0074 .014
+C Warning! No statistical tabulations are allowed here because of our use
+C ------- of output file LUNIT9 = 9 being "FORMATTED". Any attempted
+C tabulation will die in "MCBANK" called by "DICTAB". 7 Dec 88
+C -1 100. GENA A1
+$CLOSE, UNIT=LUNIT9 STATUS=KEEP { Disconnect to prevent damage by stray WRITE
+$OPEN, UNIT=LUNIT9 FILE=dc24dum.dum STATUS=UNKNOWN FORM=FORMATTED RECL=1000 !
+C The preceding $OPEN is added 11 October 2010 as required by new 4th subcase
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+C Column positioning of "NO SWITCH PLOTS" on blank terminator is arbitrary:
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE
+C 4th of 6 subcases produces simulations that are identical to the 2nd.
+C However, output looks substantially different because STATISTICS
+C switches are not used. Instead of USER SUPPLIED SWITCH TIMES to
+C define the closing times of switches, the SELECT function of the
+C pocket calculator will be used. Structural differences include lack
+C of a base case (the 2nd subcase had 1) preceding the 3 energizations
+C Output of connectivity and the phasor solution will be suppressed so
+C as not to be repeated 3 times (boring). Batch-mode plotting will be
+C omitted for the same reason. Finally, output of the dT-loop will be
+C be made less frequent. Data is added 10 October 2010. WSM.
+PRINTED NUMBER WIDTH, 11, 1, { Set dT-loop column width as done b4 by STARTUP
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 3 times with
+POCKET CALCULATOR VARIES PARAMETERS 3 0 0 { full printout
+ 100.E-6 20.E-3 60.
+ 20 1 0 0 1
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+TCLOSE_AAA = SELECT ( KNT ) { Closing time of phase "a" is taken from following:
+ .00188268.001899909.001930867 { Data is 3E10.0 for 3 energizations of phase a
+C Pass 1>< Pass 2 >< Pass 3 > Ruler for preceding 3 T-close values of phase a
+TCLOSE_BBB = SELECT ( KNT ) { Closing time of phase "b" is taken from following:
+.004247281 .00479795.003993335 { Data is 3E10.0 for 3 energizations of phase b
+C Pass 1>< Pass 2 >< Pass 3 > Ruler for preceding 3 T-close values of phase b
+TCLOSE_CCC = SELECT ( KNT ) { Closing time of phase "c" is taken from following:
+.005371358.007525832.004965908 { Data is 3E10.0 for 3 energizations of phase c
+C Pass 1>< Pass 2 >< Pass 3 > Ruler for preceding 3 T-close values of phase c
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+C Switch cards begin with the 3 STATISTICS switches of the 2nd subcase, which
+C are being converted to deterministic switches with T-close of columns 15-
+C 24 defined by the preceding $PARAMETER block. T-open has been set to 99
+C seconds (never reached) to ensure that the switches never open:
+C 76A1 ASW1 1.95E-3 .1E-3 STATISTICS
+ A1 ASW1 TCLOSE_AAA 99.0
+C B1 BSW1 3.95E-3 0.5E-3 STATISTICS 4
+ B1 BSW1 TCLOSE_BBB 99.0 4
+C C1 CSW1 5.95E-3 1.E-3 STATISTICS
+ C1 CSW1 TCLOSE_CCC 99.0
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+C The following start of the dT-loop output is for the 1st of the 3 passes:
+C Column headings for the 10 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 7 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Branch power consumption (power flow, if a switch) is treated like a branch voltage for this grouping (1 variables);
+C Branch energy consumption (energy flow, if a switch) is treated like a branch current for this grouping (1 variables).
+C Step Time GENA GENC ENDA B1 ASW10 BSW10 CSW10 B1 GENB ENDA
+C A1 C1 A10 BSW1 BSW1 B1 A10
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C *** Close switch "A1 " to "ASW1 " after 1.90000000E-03 sec.
+C 20 .002 141.91641 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 40 .004 2.37028418 0.0 0.0 0.0 -46.220806 23.1104031 23.1104031 0.0 0.0 0.0
+C *** Close switch "B1 " to "BSW1 " after 4.30000000E-03 sec.
+C *** Close switch "C1 " to "CSW1 " after 5.40000000E-03 sec.
+C 60 .006 -15.795936 10.618273 0.0 -123.04522 -168.96416 422.15175 -253.18759 .357709401 -.40883323 0.0
+ ASW10 BSW10 CSW10
+BLANK card ending the specification of program outputs (node voltages, here)
+C 180 .018 7.07846743 32.9539555 -12.904568 -.92594731 299.739293 -60.943514 -240.37687 .62556771 .018267223 -1.498213
+C 200 .02 5.74620332 -11.67979 16.6256782 248.357719 125.624205 168.195467 -283.39188 .769701668 1.25747152 -1.2455527
+C Variable maxima : 141.91641 56.029476 33.4968354 372.12662 334.561657 422.745884 559.424445 .769701668 1.25747152 .049072408
+C Times of maxima : .002 .0122 .0092 .0051 .0028 .0051 .0114 .02 .02 .0095
+C Variable minima : -103.91401 -72.187352 -35.059813 -191.64938 -429.52043 -351.293 -316.83918 0.0 -1.0806309 -1.8597009
+C Times of minima : .0032 .0141 .0127 .0159 .0075 .0142 .0191 0.0 .0109 .017
+BLANK card ending batch-mode plot cards
+C Following statistical tabulation is identical to that of 2nd subcase of DC-24:
+C 1 ) -------------------------------------------------------------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ". Base voltage for per unit output = 1.00000000E+02
+C Interval voltage voltage in Frequency Cumulative Per cent
+C number in per unit physical units (density) frequency .GE. current value
+C 27 1.3500000 1.35000000E+02 0 0 100.000000
+C 28 1.4000000 1.40000000E+02 1 1 66.666667
+C 29 1.4500000 1.45000000E+02 2 3 .000000
+C Summary of preceding table follows: Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+-1 100. GENA A1 { See preceding comments that document this tabulation
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 5th of 6 subcases produces simulations that are identical to the 4th.
+C However, instead of the SELECT function (which is a generalization
+C of USER SUPPLIED SWITCH TIMES), dice will be rolled just as was the
+C case for the 1st subcase. Yes, the same dice, with the RAN function
+C and the GAUSS function of the pocket calculator replacing internal
+C rolling that ATP performs in support of STATISTICS switches. Within
+C the PCVP loop, the user must roll his own dice after first ensuring
+C that seeding of the random number generator is identical to what ATP
+C does for the 1st subcase. Data is added 16 October 2010. WSM.
+PRINTED NUMBER WIDTH, 11, 1, { Set dT-loop column width as done b4 by STARTUP
+REPEATABLE RANDOM NUMBERS { Needed since no NSEED of STATISTICS misc. data card
+C Note about preceding line. Without it, dice no longer will be deterministic
+C and the resulting .LIS file should change every time data is simulated.
+C That assumes KOMPAR of STARTUP is small enough (e.g., value unity) so that
+C the program date and time are real. But for KOMPAR = 4, all simulations
+C will be identical because seeding of the number generator then will depend
+C on a fixed time (the WW I Armistice time) and zero elapsed CP time. I.e.,
+C program output will be deterministic although different from the output for
+C the data as shown. That is because the fixed seed of RRN differs from the
+C fixed seed that results from the WW I time. Complicated, eh?
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 3 times with
+POCKET CALCULATOR VARIES PARAMETERS 3 0 0 { full printout
+ 100.E-6 20.E-3 60.
+ 20 1 0 0 1
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+C Diagnostic printout of the 1st subcase reveals that dice are rolled 5 times
+C prior to each energization. There are 3 STATISTICS switches, so 3 of the 5
+C are used for them. But prior to these, there are 2 more. First, there is
+C a wasted roll that is used for nothing. This has been known for many years
+C but was not removed for reasons of historical continuity. Second, there is
+C a roll that is used for the uniform bias that might, if the user wants it,
+C be added to the closing times of all switches. So, here are the 5 rolls :
+UNUSE1of2 = GAUSS ( 0.0 ) { OVER12 wastes 1 use for no good reason if STATISTIC
+UNUSE2of2 = GAUSS ( 0.0 ) { OVER12 rolls a 2nd time for bias if STATISTICS case
+C Now we are ready for the 3 switches. The 1st has type code 76, which means
+C a uniform distribution. This is a little involved because it is low level.
+C The 1st subcase uses a mean of 2 msec and a standard deviation of 0.1 msec.
+C But the RAN function produces a uniform distribution over (0, 1). To map
+C the RAN output RNG into the desired closing time, OVER12 uses this code:
+C RNG = TIMEV + BIAS + SQRT3 * ABSZ ( TOPEN(NDXI) ) * ( 2.0 * RNG - 1.0 )
+C For this case, there is no bias BIAS, TIMEV is the mean equal to 2 msec,
+C SQRT3 is the square root of 3, and TOPEN is the standard deviation. So:
+TCLOSE_AAA = 2.0E-3 + 0.17320508E-3 * ( 2.0 * RAN ( 0.0 ) - 1.0 ) { Uniform closing time of phase "a"
+C This is slightly more efficient, using the constant 0.17320508E-3 rather
+C than scaling an ATP variable. But the answers should be identical. ATP is
+C smart enough to recognize SQRT3 as a program variable, and use the full,
+C internal precision associated with it. Program output will be unchanged if
+C the preceding were replaced by:
+C TCLOSE_AAA = 2.0E-3 + SQRT3 * 1.E-4 * ( 2.0 * RAN ( 0.0 ) - 1.0 ) { Uniform closing time of phase "a"
+C Switches 2 and 3 (phases b and c) are easier since they are Gaussian:
+TCLOSE_BBB = 4.0E-3 + 0.5E-3 * GAUSS ( 0.0 ) { Gauss closing time of phase "b"
+TCLOSE_CCC = 6.0E-3 + 1.0E-3 * GAUSS ( 0.0 ) { Gauss closing time of phase "c"
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+C 76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ A1 ASW1 TCLOSE_AAA 99.0
+C B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ B1 BSW1 TCLOSE_BBB 99.0 4
+C C1 CSW1 6.E-3 1.E-3 STATISTICS
+ C1 CSW1 TCLOSE_CCC 99.0
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+ ASW10 BSW10 CSW10
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending batch-mode plot cards
+C Following statistical tabulation is identical to that of 4th subcase of DC-24:
+C 1 ) -------------------------------------------------------------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ". Base voltage for per unit output = 1.00000000E+02
+C Interval voltage voltage in Frequency Cumulative Per cent
+C number in per unit physical units (density) frequency .GE. current value
+C 27 1.3500000 1.35000000E+02 0 0 100.000000
+C 28 1.4000000 1.40000000E+02 1 1 66.666667
+C 29 1.4500000 1.45000000E+02 2 3 .000000
+C Summary of preceding table follows: Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+-1 100. GENA A1 { See preceding comments that document this tabulation
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 6th of 6 subcases is added 24 July 2011 to illustrate the new
+C protection against overflow of List 23. Data is the same as for
+C subcase 1 although the base case has been activated to prove that
+C omission is not a requirement. Note the NENERG = 90K shots of
+C the integer misc. data card. For other translations, this is a
+C case of overkill. But for Salford ATP, ordered COMMON blocks
+C result in an enormous List 23 in excess of a million words. For
+C Salford ATP, such huge NENERG is necessary. WSM.
+ 100.E-6 20.E-3 60.
+ 50000 20001 0 2 1 -1 1 0 90000
+C Interpretation of the preceding integer misc. data card is improved on
+C 7 August 2011 when alternative variable-width encoding and the use of "K"
+C allow the handling of much larger integers. The old format was (2I5, 8I3)
+C which resulted in overflow for NENERG > 999. The new is not troubled :
+C Misc. data. 1.000E-04 2.000E-02 6.000E+01 | 100.E-6 20.E-3 60.
+C Misc. data. 50K 20K 0 2 1 -1 1 0 90K 0 | 50000 20001 ...
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 0
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+BLANK card ending the specification of program outputs (node voltages, here)
+C Overflow of List 23. General information follows. Specifically, here in SUBR15 prior to entry into the time-step loop, the demand
+C for storage that is required for a Monte Carlo (or a SYSTEMATIC) study has been computed, and has been found to be inadequate.
+C Total working space is L23TOT = 1502629 cells whereas each shot requires NDX1 = 24 cells. For all NENERG = 90000 shots
+C requested, at least 2160000 will be needed for List 23. But recall that a Monte Carlo study can be simulated in pieces using two
+C or more separate ATP executions. It is safer not to place all eggs in one basket. Also, simulation should be faster if two or
+C more central processors are used simultaneously. CENTRAL STATISTICS FILE is the request word for such operation as illustrated by
+C BENCHMARK DC-66.
+C ------------------------------------------------------------------------------------------------------------------------------------
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
+C Etc. (the familiar KILL = 1 error termination).
+BLANK card ending base-case plot cards
+-1 GENA A1
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc24clik.dat b/benchmarks/dc24clik.dat
new file mode 100644
index 0000000..4675a80
--- /dev/null
+++ b/benchmarks/dc24clik.dat
@@ -0,0 +1,555 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-24
+C Monte Carlo simulation that is run in two parts. The original six
+C energizations of "M39." stand-alone case have been reduced to 3, &
+C the remaining 3 are performed in companion case DC-40, which is a
+C "START AGAIN" continuation of this MEMSAV = 1 case. The use of
+C standard random numbers and fixed seed gives results that should be
+C repeatable & same for all computers of interest. But M39 differs!
+C Note that this data case has no base case. However, if the user
+C wants to add this, he need merely comment out the "OMIT BASE CASE"
+C request card, and do likewise for the $DISABLE/ENABLE cards that
+C precede statistics tabulation requests. Save the resulting binary
+C disk file TPTABLES.BIN under the name dc24at40.bin for use by
+C DC-40. For a "STATISTICS" random-opening data case, see DC-48.
+C Beware of PARALLEL.LIS entry for same USERID that might modify NENERG!
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+C TRULY RANDOM NUMBERS { Same as NSEED=0 (this overrides stat misc. data card)
+REPEATABLE RANDOM NUMBERS { Same as NSEED=1 (this overrides zero value below)
+C CENTRAL STATISTICS FILE { Request word that precedes the disk file name
+C %/wsm/parallel.atp ! { Leading percent sign avoids confusion of "/" in column 1
+C USER IDENTIFICATION Warsaw ! { Overrides A6 USERID of STARTUP for plots
+C DIAGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 9 9 9 9
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+ 100.E-6 20.E-3 60.
+ 1 1 1 2 1 -1 1 0 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 0
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+C The following is DIAGNOSTIC from "RANDNZ" usage of overlay 12. Not a
+C normal case output, this is useful in case switching times are incorrect:
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.296996800000000000E+07
+C 0.296996800000000000E+07 0.000691499561071
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.205132719793000000E+12
+C 0.326925688100000000E+10 0.761183183873072
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.225804303513790000E+15
+C 0.692893886000000000E+09 0.161326929461211
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.478574878121350000E+14
+C 0.296220010300000000E+10 0.689690956613049
+C "RFUNL1/RANDNZ". KNT = 1. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.204596198914108000E+15
+C 0.113680185200000000E+10 0.264682306908071
+C Last gen: ENDC -103.6321034277 303. -.710542736E-14 .7324106878E-14
+C Last gen: 284.72686409813 110.000 -.177635684E-14 -165.9637565
+C The following unit-9 connection could come earlier on this first subcase
+C because of FORM=UNFORMATTED, which is compatible with VECRSV/VECISV of
+C MS-DOS (which uses unit 9 for scratch storage). But the present location
+C is always safe, so its use is good practice. It is mandatory for 3rd case.
+$OPEN, UNIT=9 FILE=dc24at40.ext STATUS=UNKNOWN FORM=UNFORMATTED RECL=1000 !
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+C GENA GENC ENDA B1 ASW10
+C Reference angle A1 C1 A10 BSW1
+C
+C GENB ENDA
+C B1 A10
+C Random switching times for energization number 1 :
+C 1 1.8826802E-03 2 4.2472809E-03 3 5.3713577E-03
+C 0.0 141.9164096 -72.1873524 -35.0598126 372.1266197 -429.52043
+C 1.257471517 -1.85970093
+C Times of maxima : .002 .0141 .0127 .0051 .0075
+C .02 .017
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.785177671157890000E+14
+C 0.146997761300000000E+10 0.342255833791569
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.101529883752298000E+15
+C 0.115184215400000000E+10 0.268184150103480
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.795565857346270000E+14
+C 0.906510819000000000E+09 0.211063497466967
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.626117957575120000E+14
+C 0.405748372000000000E+10 0.944706546142697
+C "RFUNL1/RANDNZ". KNT = 2. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.280246343056681000E+15
+C 0.402195997700000000E+10 0.936435530195013
+C Random switching times for energization number 2 :
+C 1 1.8999095E-03 2 4.7979502E-03 3 7.5258324E-03
+C 0.0 141.9164096 61.55446116 -41.9189588 371.6253603 334.5616569
+C 1.207725131 -1.83695142
+C Times of maxima : .002 .0154 .0139 .0059 .0028
+C .0058 .017
+BLANK card ending the specification of program outputs (node voltages, here)
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.277792753651414000E+15
+C 0.285888072600000000E+10 0.665635039564222
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.197460032864095000E+15
+C 0.320639779100000000E+10 0.746547661488876
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.221462689026580000E+15
+C 0.129034293200000000E+10 0.300431375391781
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.891226959703090000E+14
+C 0.212457830900000000E+10 0.494666935177520
+C "RFUNL1/RANDNZ". KNT = 3. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.146742499224322000E+15
+C 0.646589186000000000E+09 0.150545776356012
+C Random switching times for energization number 3 :
+C 1 1.9308674E-03 2 3.9933351E-03 3 4.9659084E-03
+C 0.0 136.7926646 -89.6601448 -53.6359842 437.6032257 -510.753735
+C 1.532437698 -1.74295212
+C Times of maxima : .0021 .0051 .0083 .0045 .0074
+C .0044 .0169
+C Cards associated with the base-case solution must not be present:
+$DISABLE { Comment out this card, if a base case solution is to be added
+ PRINTER PLOT
+ 144 3. 0.0 20. ASW10
+BLANK card ending base-case plot cards
+$ENABLE { Comment out this card, if a base case solution is to be added
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+C The following disconnects DC24.BIN to protect; automatic result of reopening:
+C $OPEN, UNIT=22 STATUS=SCRATCH FORM=UNFORMATTED { Disconnect *.BIN on LUNIT2
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect to prevent damage by stray WRITE
+$OPEN, UNIT=22 STATUS=SCRATCH FILE=dumxx.bin ! { Reconnect dummy .BIN on LUNIT2
+-1 100. GENA A1
+$CLOSE, UNIT=9 STATUS=KEEP { Disconnect to prevent damage by stray WRITE
+$OPEN, UNIT=9 FILE=dc24dum.dum STATUS=SCRATCH !
+FIND { Enter interactive search for which shot and which variable gave extremum
+HELP { Show the user that there is a summary explanation of "FIND" on-line
+C Peak extremum of subset has value 5.62169583E+02 This occurred during
+C energization 2 for the variable having names "CSW10 " and " ".
+C This was variable 3 of 3 in the subset; 3 shots were searched.
+ ASW10 BSW10 CSW10 { Search these 3 node voltages for extremum
+EXCLUDE { Repeat the preceding search after 1st excluding the just-found shot
+C Peak extremum of subset has value 5.59424445E+02 This occurred during
+C energization 1 for the variable having names "CSW10 " and " ".
+C This was variable 3 of 3 in the subset; 2 shots were searched.
+C Remember excluded shots are numbered 2
+EXCLUDE { Excluding the shot of previous output means only one is left for use
+C Peak extremum of subset has value 5.53096221E+02 This occurred during
+C energization 3 for the variable having names "BSW10 " and " ".
+C This was variable 2 of 3 in the subset; 1 shots were searched.
+C Remember excluded shots are numbered 1 2
+RESET { Reinitialize by erasing history of previous selections
+ALL { Next, consider searching all output variables of some class
+8 { As with batch-mode plotting, "8" indicates branch voltages (search ALL)
+C Peak extremum of subset has value 4.37603226E+02 This occurred during
+C energization 3 for the variable having names "B1 " and "BSW1 ".
+C This was variable 4 of 4 in the subset; 3 shots were searched.
+EXCLUDE { Repeat the preceding search after 1st excluding the just-found shot
+EXCLUDE { Excluding the shot of previous output means only one is left for use
+EXCLUDE { Final attempt to exclude should lead to error message: nothing is left
+ALL { Next, consider searching all output variables of some class
+9 { As with batch-mode plotting, "9" indicates branch currents (search ALL)
+EXCLUDE { Repeat the preceding search after 1st excluding the just-found shot
+C $KEY { Un-comment to allow keyboard input (until "END") at this point
+QUIT { Done locating extrema, so exit the "FIND" alternative
+C &&&&&&&&&&&&& End request and documentation. Begin 3 coupled cards ......
+C 2 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 9 0.4500000 0.13635000E+03 0 0
+C 10 0.5000000 0.15150000E+03 3 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 4.75000000E-01 4.62734306E-01
+C Variance = 0.00000000E+00 9.53165933E-05
+C Standard deviation = 0.00000000E+00 9.76302173E-03
+-1 GENA A1 CONT.
+C 3 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENC " to "C1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 4 0.2000000 0.60600000E+02 0 0
+C 5 0.2500000 0.75750000E+02 2 2
+C 6 0.3000000 0.90900000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 2.41666667E-01 2.45766731E-01
+C Variance = 8.33333333E-04 2.19347831E-03
+C Standard deviation = 2.88675135E-02 4.68345845E-02
+-1 GENC C1 CONT.
+C 4 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "ENDA " to "A10 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 2 0.1000000 0.30300000E+02 0 0
+C 3 0.1500000 0.45450000E+02 2 2
+C 4 0.2000000 0.60600000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.41666667E-01 1.43690600E-01
+C Variance = 8.33333333E-04 9.61072666E-04
+C Standard deviation = 2.88675135E-02 3.10011720E-02
+-1 ENDA A10
+C 5 ) --------------------------------------------------------------------------
+C SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMAR
+C 5 ) --------------------------------------------------------------------------
+C A distribution of peak values among all output branches of the last data card
+C statistical distribution is for the maximum of the peaks at all of these outpu
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 9 0.4500000 0.13635000E+03 0 0
+C 10 0.5000000 0.15150000E+03 3 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 4.75000000E-01 4.62734306E-01
+C Variance = 0.00000000E+00 9.53165933E-05
+C Standard deviation = 0.00000000E+00 9.76302173E-03
+C 3456789012345678901234567890123456789012345678
+C MODTAB AINCR XMAXMX
+STATISTICS DATA 1 0.0 0.0 ---- Only individual
+-1 GENC C1 { =.245766731, Variance=2.19347831E-3} CONT.
+-1 ENDA A10 { 1.43690600E-01, 9.61072666E-04
+C 8 ) --------------------------------------------------------------------------
+C SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMAR
+C 8 ) --------------------------------------------------------------------------
+C A distribution of peak values among all output branches of the last data card
+C statistical distribution is for the maximum of the peaks at all of these outpu
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 4 0.2000000 0.60600000E+02 0 0
+C 5 0.2500000 0.75750000E+02 2 2
+C 6 0.3000000 0.90900000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 2.41666667E-01 2.45766731E-01
+C Variance = 8.33333333E-04 2.19347831E-03
+C Standard deviation = 2.88675135E-02 4.68345845E-02
+STATISTICS DATA 2 0.0 0.0 ------ Only union of 2 curves
+-1 GENC C1 CONT.
+-1 ENDA A10 { See comments for solution
+STATISTICS DATA 3 0.0 0.0 ---- Both individual & union
+-1 GENC C1 { =.245766731, Variance=2.19347831E-3} CONT.
+-1 ENDA A10 { 1.43690600E-01, 9.61072666E-04
+C 12 ) -------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENC " to "C1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 8 0.9131973 0.56211367E+02 0 0
+C 9 1.0273470 0.63237788E+02 1 1
+C 10 1.1414966 0.70264209E+02 0 1
+C 11 1.2556463 0.77290630E+02 1 2
+C 12 1.3697959 0.84317051E+02 0 2
+C 13 1.4839456 0.91343472E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.19857145E+00 1.20977941E+00
+C Variance = 5.21205808E-02 5.31495428E-02
+C Standard deviation = 2.28299323E-01 2.30541846E-01
+STATISTICS DATA 3 -5.0 0.0 ---- Fixed number of 5 boxes
+-1 GENC C1 { See preceding comments for 1st of 3} CONT.
+-1 ENDA A10
+STATISTICS DATA 3 .05 0.0 ---- Restore STARTUP values
+-1 GENC C1 ENDA A10 { =2.45766731E-1, Variance = 2.19347831E-3
+ 0 ASW10 BSW10 CSW10 { Mean=1.40245965E+0, Variance = 8.47042357E-2
+C 1st of 4 tables is documented on preceding request; the 4th of 4 follows:
+C 21 ) -------------------------------------------------------------------------
+C SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMAR
+C 21 ) -------------------------------------------------------------------------
+C The following is a distribution of peak overvoltages among all output nodes of
+C This distribution is for the maximum of the peaks at all output nodes with V-
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 36 1.8000000 0.54540000E+03 0 0
+C 37 1.8500000 0.56055000E+03 2 2
+C 38 1.9000000 0.57570000E+03 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.84166667E+00 1.84234351E+00
+C Variance = 8.33333333E-04 2.35830395E-04
+C Standard deviation = 2.88675135E-02 1.53567703E-02
+C &&&&&&&&& End documentation of node voltage tabulations (4th of 4 tables)
+STATISTICS DATA 3 -4.0 0.0 ---- Fixed number of 4 boxes
+C 22 ) -------------------------------------------------------------------------
+C Statistical distribution of peak power for branch "B1 " to "BSW1 ".
+C Interval power power in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 16 0.9468728 0.35188195E+03 0 0
+C 17 1.0060524 0.37387457E+03 2 2
+C 18 1.0652319 0.39586719E+03 0 2
+C 19 1.1244115 0.41785981E+03 0 2
+C 20 1.1835910 0.43985244E+03 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.03564214E+00 1.05962916E+00
+C Variance = 1.05066576E-02 1.04274409E-02
+C Standard deviation = 1.02501988E-01 1.02114842E-01
+-3 B1 BSW1 { See preceding comments for this branch power table
+-2 0. GENB B1 ENDA A10 { =1.10335104E+0, Variance = 2.09698061E-2
+-4 0. B1 BSW1 { Ungroup: Mean=1.16595031E+0, Variance = 3.80542557E-2
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 2nd of 3 subcases repeats the preceding problem exactly, only instead
+C of rolling dice to find the switch closing times, such times will be
+C read from a user-supplied disk file dc24lun8.dat (see $OPEN use).
+C The solution of this 2nd subcase should exactly agree with the first.
+C However , for variety , a base case solution (missing from the first
+C subcase) and a character plot have been added to this 2nd subcase.
+C Also, the ".PL4" plot file (actually, just the header) is saved
+C permanently for later re-connection using the 4th subcase of DC-40.
+PRINTED NUMBER WIDTH, 11, 1, { Set dT-loop column width as done b4 by STARTUP
+C $STARTUP, dc37star.dat { Use disk file for re-initialization at this point
+C This is a Monte Carlo case, for which TENERG is critical. But this
+C parameter is initialized only in the STARTUP file. For this 2nd or
+C later data case, we reinitialize via the preceding $STARTUP request
+USER SUPPLIED SWITCH TIMES { Bypass the dice, reading TCLOSE & TOPEN from LUNIT8
+C The following connection of unit 2 is required only because this is the
+C 2nd subcase. It follows a case in which MEMSAV=1 dumps tables via I/O
+C unit LUNIT2=2, and then this file is disconnected. Without the manual
+C connection that follows, nothing would be connected, and execution would
+C die for Apollo in "SUBR5" where REWIND LUNIT2 is found. So connect it:
+$OPEN, UNIT=8 FILE=dc24lun8.dat FORM=FORMATTED STATUS=OLD RECL=80 ! { Case
+C $OPEN, UNIT=22 FORM=UNFORMATTED STATUS=SCRATCH RECL=16000
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect to prevent damage by stray WRITE
+$OPEN, UNIT=22 STATUS=SCRATCH FILE=dumxx.bin ! { Reconnect dummy .BIN on LUNIT2
+C $STARTUP, dc37star.dat { Re-initialize is required to set TENERG for table dump
+C { This is a peculiarity of having "STATISTICS" as the
+C { 2nd or later data subcase within a single disk file.
+C DISK PLOT DATA { Toggle the Apollo default of LUNIT4 = -4 to +4 (use disk)
+$CLOSE, UNIT=4 STATUS=DELETE { Destroy empty date/time plot file of "SYSDEP"
+$OPEN, UNIT=4 FILE=dc24b40d.pl4 ! { All we need for C-like case
+C Before continuing with case, let's document the contents of that unit-8 file:
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 1:
+C 1.882680E-03 4.247281E-03 5.371358E-03 7.95E-3 9.95E-3
+C 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+C .1E-3 0.5E-3 1.E-3 1.0 1.0
+C 1.0
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 2:
+C 1.899909E-03 4.797950E-03 7.525832E-03 7.95E-3 9.95E-3
+C 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+C .1E-3 0.5E-3 1.E-3 1.0 1.0
+C 1.0
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 3:
+C 1.930867E-03 3.993335E-03 4.965908E-03 7.95E-3 9.95E-3
+C 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+C .1E-3 0.5E-3 1.E-3 1.0 1.0
+C 1.0
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ 100.E-6 20.E-3 60.
+ 1 1 1 2 1 -1 0 2 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 1.95E-3 .1E-3 STATISTICS
+ B1 BSW1 3.95E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 5.95E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+C Last gen: ENDC -103.6321034277 303. -.710542736E-14 .7324106878E-14
+C Last gen: 284.72686409813 110.000 -.177635684E-14 -165.9637565
+ ASW10 BSW10 CSW10
+C Step Time GENA GENC ENDA B1 ASW10 BSW10
+C A1 C1 A10 BSW1
+C 0 0.0 -.5684E-13 .28422E-13 -.5684E-13 -151.5 0.0 0.0
+C 1 .1E-3 .56843E-13 .29559E-11 -.2842E-12 0.0 0.0 0.0
+C 2 .2E-3 0.0 -.2927E-11 .28422E-12 0.0 0.0 0.0
+BLANK card ending the specification of program outputs (node voltages, here)
+C Last step: 200 .02 1.60684633 5.46144739 15.5569682 209.921255 126.692915
+C Variable max:136.792665 67.5308064 48.9224823 437.603226 320.835627 553.096221
+C Times of max: .0021 .0061 .0093 .0045 .0029 .0049
+C Variable min:-100.37615 -85.515782 -58.824356 -292.03358 -548.79093 -353.02344
+C Times of min: .0033 .0127 .0084 .0056 .0074 .0141
+ PRINTER PLOT
+ 144 1. 0.0 10. ASW10 { Plot limits: (-5.488, 3.208)
+$CLOSE, UNIT=4 STATUS=KEEP
+$OPEN, UNIT=4 FILE=dc24bdum.pl4 ! { All we need for C-like case
+BLANK card ending base-case plot cards
+C GENA GENC ENDA B1 ASW10
+C Reference angle A1 C1 A10 BSW1
+C Random switching times for energization number 1 :
+C 1 1.8826800E-03 2 4.2472810E-03 3 5.3713580E-03
+C 0.0 141.91641 -72.187352 -35.059813 372.12662 -429.52043 422.745884
+C Times of maxima : .002 .0141 .0127 .0051 .0075 .0051
+C
+C Random switching times for energization number 2 :
+C 1 1.8999090E-03 2 4.7979500E-03 3 7.5258320E-03
+C 0.0 141.91641 61.5544612 -41.918959 371.62536 334.561657 497.525193
+C Times of maxima : .002 .0154 .0139 .0059 .0028 .0065
+C
+C Random switching times for energization number 3 :
+C 1 1.9308670E-03 2 3.9933350E-03 3 4.9659080E-03
+C 0.0 136.792665 -89.660145 -53.635984 437.603226 -510.75374
+C cont. 553.096221 513.648909 .96346791 1.5324377 -1.7429521
+C .0021 .0051 .0083 .0045 .0074
+C cont. .0049 .011 .02 .0044 .0169
+C Cards associated with the base-case solution must not be present:
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+-1 100. GENA A1 { See preceding comments that document this tabulation
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases repeats the first subcase exactly, only instead of
+C dumping full tables, MEMSAV = 2 (columns 59-56) means that only
+C the extrema and switching times are to be dumped, and
+C this will be FORMATTED rather than UNFORMATTED (for
+C this change, only $OPEN is changed). The resulting card-image file
+C named dc24ct40.lis is used by the 2nd and later subcases of DC-40.
+C Also, as an illustration, time-step loop output of all energizations
+C will be shown (because column-48 variable KSTOUT is zero not blank),
+C and the miniature character plots of switch times will be suppressed.
+PRINTED NUMBER WIDTH, 11, 1, { Set dT-loop column width as done b4 by STARTUP
+C $STARTUP, dc37star.dat { Use disk file for re-initialization at this point
+C This is a Monte Carlo case, for which TENERG is critical. But this
+C parameter is initialized only in the STARTUP file. For this 2nd or
+C later data case, we reinitialize via the preceding $STARTUP request
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+ 100.E-6 20.E-3 60.
+ 1 1 1 2 1 -1 2 0 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 0 { STATIST. misc. data card } 1
+ 2 2 10 10 { Printout frequency change for all soutions
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+C Last gen: ENDC -103.6321034277 303. -.710542736E-14 .7324106878E-14
+C Last gen: 284.72686409813 110.000 -.177635684E-14 -165.9637565
+C The following unit-9 connection must not be made earlier, since the same
+C I/O channel is used as UNFORMATTED by VECRSV/VECISV of MS-DOS. This is
+C different than the first subcase (read those comments), note:
+$OPEN, UNIT=9 FILE=dc24ct40.lis STATUS=UNKNOWN FORM=FORMATTED !
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+C GENA GENC ENDA B1 ASW10 BSW10
+C Reference angle A1 C1 A10 BSW1
+C Random switching times for energization number 1 :
+C 1 1.8826802E-03 2 4.2472809E-03 3 5.3713577E-03
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 2 .2E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 4 .4E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 6 .6E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 8 .8E-3 0.0 0.0 0.0 0.0 0.0 0.0
+C 10 .001 0.0 0.0 0.0 0.0 0.0 0.0
+C ==== Table dumping for all subsequent restorations. Time [sec] = 1.8000E-03
+C *** Close switch "A1 " to "ASW1 " after 1.90000000E-03 sec.
+C 20 .002 141.91641 0.0 0.0 0.0 0.0 0.0
+C 30 .003 -34.73764 0.0 0.0 0.0 318.450266 -159.22513
+BLANK card ending the specification of program outputs (node voltages, here)
+C 190 .019 -8.1503339 19.8420817 .549065534 24.9565797 230.197042 85.0661304
+C 200 .02 .352725683 14.1822201 13.4881293 207.346558 128.761754 181.144509
+C 201 .0201 -.23343325 23.5035485 8.73828958 199.126365 123.327149 204.30575
+C Extrema of output variables follow. Order and column positioning are the sam
+C Variable max:136.792665 56.3388361 40.5581876 437.603226 320.835627 553.096221
+C Times of max: .0021 .0053 .0092 .0045 .0029 .0049
+C Variable min:-100.37615 -89.660145 -53.635984 -272.03803 -510.75374 -342.9791
+C Times of min: .0033 .0051 .0083 .0055 .0074 .014
+C Warning! No statistical tabulations are allowed here because of our use
+C ------- of output file LUNIT9 = 9 being "FORMATTED". Any attempted
+C tabulation will die in "MCBANK" called by "DICTAB". 7 Dec 88
+C -1 100. GENA A1
+$CLOSE, UNIT=9 STATUS=KEEP { Disconnect to prevent damage by stray WRITE
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+C Column positioning of "NO SWITCH PLOTS" on blank terminator is arbitrary:
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc24clu8.dat b/benchmarks/dc24clu8.dat
new file mode 100644
index 0000000..64efbbb
--- /dev/null
+++ b/benchmarks/dc24clu8.dat
@@ -0,0 +1,16 @@
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 4:
+ 2.1466476E-03 4.4995694E-03 8.0648931E-03 7.95E-3 9.95E-3
+ 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+ .1E-3 0.5E-3 1.E-3 1.0 1.0
+ 1.0
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 5:
+ 2.0344905E-03 3.8690347E-03 6.3961916E-03 7.95E-3 9.95E-3
+ 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+ .1E-3 0.5E-3 1.E-3 1.0 1.0
+ 1.0
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 6:
+ 2.0043546E-03 4.3397550E-03 5.2772330E-03 7.95E-3 9.95E-3
+ 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+ .1E-3 0.5E-3 1.E-3 1.0 1.0
+ 1.0
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
diff --git a/benchmarks/dc24lun8.dat b/benchmarks/dc24lun8.dat
new file mode 100644
index 0000000..fa7f8fd
--- /dev/null
+++ b/benchmarks/dc24lun8.dat
@@ -0,0 +1,16 @@
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 1:
+ 1.882680E-03 4.247281E-03 5.371358E-03 7.95E-3 9.95E-3
+ 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+ .1E-3 0.5E-3 1.E-3 1.0 1.0
+ 1.0
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 2:
+ 1.899909E-03 4.797950E-03 7.525832E-03 7.95E-3 9.95E-3
+ 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+ .1E-3 0.5E-3 1.E-3 1.0 1.0
+ 1.0
+C Marker preceding TCLOSE(1:6) and TOPEN(1:6) for energization 3:
+ 1.930867E-03 3.993335E-03 4.965908E-03 7.95E-3 9.95E-3
+ 11.95E-3 { End of TCLOSE; TOPEN begin on the next line:
+ .1E-3 0.5E-3 1.E-3 1.0 1.0
+ 1.0
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
diff --git a/benchmarks/dc25.dat b/benchmarks/dc25.dat
new file mode 100644
index 0000000..3a9ba12
--- /dev/null
+++ b/benchmarks/dc25.dat
@@ -0,0 +1,553 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-25
+C Test of Type-59 S.M., with two connected in parallel. Problem came from
+C Chuck Wolf of AEP on 14 Feb 1977. See Vol. VII EMTP Memoranda, 28
+C January 1978, pages TDCE-13 through 16. Results of this simulation
+C correspond to Fig. 4 --- the case of an untransposed 765-kV line using
+C Procedure 1 initialization. The unbalanced Pi-circuit of transmission
+C line produces an unbalanced phasor solution. Load flow ("FIX SOURCE")
+C usage begins from power constraints for "M39." and later solutions.
+C For other Type-59 S.M. usage, see cases DC-26, DC-53, and DCNEW-11.
+C Modified with Guido's and Juan Martinez's approval during Oct., 1990.
+C Answers have changed. The original data case is unexecuted at end.
+C Answers change again 10 February 1999 following the massive changes from
+C TEPCO (Tokyo Electric Power Company) in Japan. See April newsletter.
+C But changes are negligible physically. The 2 printer plots are identical
+C (demonstrating 4 digit agreement for the variables considered), and most
+C extrema numbers differ only in the 5th or 6th decimal place.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+FIX SOURCE { Declared intention to use load flow (phasor power constraints)
+ .000200 .100 60. 60.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+C 11 PI SECTIONS OF THE R-JEF CKT
+ 1 ROCA RJ0A 9.04 44.88 351.28
+ 2 ROCB RJ0B 7.84 19.04 -57.6 9.2 44.56 360.88
+ 3 ROCC RJ0C 7.68 14.96 -14.967.84 19.04 -57.6 9.04 44.88 351.28
+ 1 RJ0A RJ1A ROCA RJ0A
+ 2 RJ0B RJ1B
+ 3 RJ0C RJ1C
+ 1 RJ1A JEFA ROCA RJ0A
+ 2 RJ1B JEFB
+ 3 RJ1C JEFC
+C SYS IMP MATRIX
+ INFA JEFA 4.891757.845
+ INFB JEFB 4.891757.845
+ INFC JEFC 4.891757.845
+C LINEAR SHUNT REACTORS 300MVAR AT EACH END
+ 0 ROCACOMROC 1950. 1
+ 0 ROCBCOMROC 1950. 1
+ 0 ROCCCOMROC 1950.
+ 0COMROC 700.0
+ 0 JEFACOMJEF 1950.0
+ 0 JEFBCOMJEF 1950.0
+ 0 JEFCCOMJEF 1950.0
+ 0COMJEF 700.0
+C STEP-UP TRANSFORMER AT ROCKPORT
+ TRANSFORMER TRAN A
+ 9999
+ 1 MACA1 MACC1 .00071.0436824.63
+ 2 ROCA .2280414.054441.7
+ TRANSFORMER TRAN A TRAN B
+ 1 MACB1 MACA1
+ 2 ROCB
+ TRANSFORMER TRAN A TRAN C
+ 1 MACC1 MACB1
+ 2 ROCC
+C GENERATOR'S CAPACITANCE TO GROUND
+ 0 MACA1 50.0
+ 0 MACB1 50.0
+ 0 MACC1 50.
+BLANK card ending all branch cards
+ RJ0A .0501 10. 1
+BLANK card ending all switch cards
+14 INFA 624619. 60. -2.2 -1.0
+14 INFB 624619. 60. -122.2 -1.0
+14 INFC 624619. 60. 117.8 -1.0
+59 MACA1 22000. 60.0 60.0
+ MACB1
+ MACC1
+TOLERANCES { Only change columns 51-60: NIOMAX = 20 } 20
+PARAMETER FITTING 2.0
+ 1 1 21. 1. 722. 26. 1750. 1950. 3200.
+BLANK card for the Q-axis
+.001720594.19 1.92 1.85 .31 0.6 .26 .26
+4.8 1.0 .04 .053 .12 .000001 .000001
+ 1 1.0 .87 .0001
+BLANK card ending mass cards
+ 51
+ 11
+ 21
+ 31
+BLANK card ending output specifications for this S.M. only
+ FINISH PART { End of 1st of 2 machines in parallel on the same 3-phase bus
+PARAMETER FITTING 2.0
+ 1 1 21. 1. 722. 26. 1750. 1950. 3200.
+BLANK card for the Q-axis
+.001720594.19 1.92 1.85 .31 0.6 .26 .26
+4.8 1.0 .04 .053 .12 .000001 .000001
+ 1 1.0 .87 .0001
+BLANK card ending mass cards
+ 51
+ 11
+ 2 1
+ 31
+BLANK card ending output specifications for this S.M. only
+ FINISH { End of 2nd of 2 machines in parallel on the same 3-phase bus
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C ROCA | TERRA * RJ0A*COMROC*
+C RJ0A | TERRA * ROCA* RJ1A*
+C ROCB | TERRA * RJ0B*COMROC*
+C RJ0B | ROCB* RJ1B*
+C ROCC | TERRA * RJ0C*COMROC*
+C RJ0C | ROCC* RJ1C*
+C < < Etc. This is 1st 1/3-rd or so of table. > >
+BLANK card ending all source cards
+ MACA1 MACB1 MACC1 2803162500.0 1383483900.0 20000. 25000. 50.0 80.0
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 1 0.001 2
+C Max del-V: .1803 .1777 .1752 .1727 .1702 .1678 .1654 .163 .1607 .1584
+C Source No. -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+C Exit the load flow iteration loop with counter NEKITE = 310. If no w
+C Total network loss P-loss by summing injections = 1.193636643443E+08
+C 1st gen : MACA1 7882.1299837372 22944.294576661 63529.229081234 91991.00055512
+C 1st gen : 21547.915921037 69.9077094 66531.054669802 46.3221669
+C Id Iq Io
+C -5.17606386485E+04 1.11953458746E+04 -9.24170739175E-11
+C Field current of the generator: 7.6127807443E+03 7.7516029040E+03
+C Electromechanical torque ... : 3.4914826741E+00 3.7272751437E+00
+ JEFA JEFB JEFC ROCA ROCB ROCC MACA1 MACB1 MACC1 { Node voltage outputs
+C Step Time JEFA JEFB JEFC ROCA ROCB
+C
+C MACC1 RJ0A ROCA ROCB MACH 1
+C TERRA COMROC COMROC ID
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IKD IG IKQ IA IB
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 2
+C MANG TQ GEN ANG 1 VEL 1 ID
+C
+C MACH 2 MACH 2 MACH 2 MACH 2 MACH 2
+C IKD IG IKQ IA IB
+C
+C MACH 2 MACH 2 MACH 2 MACH 2
+C MANG TQ GEN ANG 1 VEL 1
+C 0 0.0 595063.429 -170038.378 -430408.555 567829.8077 41131.95807
+C -22602.1076 0.0 195.2036215 -347.379708 -51760.6386
+C -119.013056 20.25252059 123.7786761 31764.61454 9524.516392
+C .6120416955 3.491581073 210.5205098 -.56843E-13 -51760.6386
+C -119.013056 20.25252059 123.7786761 31764.61454 9524.516392
+C .6120416955 3.491581073 210.5205098 -.56843E-13
+C 1 .2E-3 582660.0376 -124400.236 -463854.309 538020.6136 90826.69064
+C -22226.8015 0.0 216.5639977 -344.847463 -51644.9311
+C -124.178599 17.6951304 102.1960096 29275.66489 12850.10176
+C .6122312386 3.504607103 210.5205169 .0012501818 -51644.9311
+C -124.178599 17.6951304 102.1960096 29275.66489 12850.10176
+C .6122312386 3.504607103 210.5205169 .0012501818
+BLANK card ending selective node voltage output requests
+C Last step begins: 500 0.1 422565.4027 -113969.735 -360716.4 184973.5528
+C Last step begins: -14207.4222 8830.876534 127.5541446 -304.110445 -70239.5493
+C Last step begins: 434.079499 436.7069486 -1114.11685 41302.06075 15848.22263
+C Last step begins: .5709140724 4.269726268 212.0409714 1.274775215 -70239.5493
+C Last step begins: 434.079499 436.7069486 -1114.11685 41302.06075 15848.22263
+C Last step begins: .5709140724 4.269726268 212.0409714 1.274775215
+C Variable max : 614175.4675 689830.8087 698890.353 693955.4017 682007.8375
+C 23072.26231 12386.83878 350.8889637 346.8138015 -32475.6958
+C 2497.939838 999.6504516 5424.112392 45447.13214 46674.47781
+C .6757375048 6.372899605 212.0409714 1.281702728 -32475.6958
+C 2497.939838 999.6504516 5424.112392 45447.13214 46674.47781
+C .6757375048 6.372899605 212.0409714 1.281702728
+C Times of max : .0326 .0544 .0602 .0484 .004
+C .0412 .0856 .0026 .0082 .0642
+C .0594 .095 .062 .0478 .0866
+C .0576 .0576 0.1 .0992 .0642
+C .0594 .095 .062 .0478 .0866
+C .0576 .0576 0.1 .0992
+ PRINTER PLOT
+ 144 2. 0.0 20. MACA1 MACB1 MACC1 { Axis span: (-2.318, 2.320)
+ 19410. 0.0100. MACH 1TQ GENMACH 2TQ GEN { Axis span: (-1.028, 6.373)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C Second of 3 subcases of DC-25 replaces the generator delta-Wye stepup
+C transformers (3 separate, 2-winding saturable TRANSFORMERS, originally)
+C by 3 Type-18 ideal transformers. Leakage is ignored during conversion.
+C Also, for simplicity, the Type-59 S.M. is removed, and values of the
+C replacement Type-14 sources are set equal to the load flow solution.
+C 23 February 1994, replace the three pairs of Type-14 and Type-18
+C source cards by the equivalent, new IDEAL TRANSFORMER components.
+C 9 November 2010, replace the explicit node names 18TYP1, 18TYP2,
+C and 18TYP3 by blanks on the winding cards of IDEAL TRANSFORMER
+C components. These are default names, so ATP will supply them, and
+C the resulting simulation should not change in any way. The only
+C change to the .LIS file is on lines that document data input.
+C Connectivity, phasor branch flow, dT-loop heading, and batch-mode
+C plotting all involve these names, but are unchange. This change
+C is made as new logic is added to SUBR5 and OVER16 to guarantee
+C that ATP-supplied names do not conflict with user bus names. WSM.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+ .000200 .015 60. 60.
+ 1 1 1 1 1 -1
+ 5 5 10 10
+ IDEAL TRANSFORMER { Each ideal Xformer begins with this request card
+ 1 J2A L2A 36.0 { Winding 1 has rated voltage 36
+C 2 K1A M1A18TYP1 2.0 { Winding 2 has rated voltage 2
+ 2 K1A M1A 2.0 { Winding 2 has rated voltage 2
+ IDEAL TRANSFORMER
+ 1 J2B L2B 18.0 { Only the voltage ratio matters
+C 2 K1B M1B18TYP2 1.0 { and it is the same for all 3
+ 2 K1B M1B 1.0 { and it is the same for all 3
+ IDEAL TRANSFORMER
+ 1 J2C L2C 54.0
+C 2 K1C M1C18TYP3 3.0
+ 2 K1C M1C 3.0
+C 11 PI SECTIONS OF THE R-JEF CKT
+ 1 ROCA RJ0A 9.04 44.88 351.28
+ 2 ROCB RJ0B 7.84 19.04 -57.6 9.2 44.56 360.88
+ 3 ROCC RJ0C 7.68 14.96 -14.967.84 19.04 -57.6 9.04 44.88 351.28
+ 1 RJ0A RJ1A ROCA RJ0A
+ 2 RJ0B RJ1B
+ 3 RJ0C RJ1C
+ 1 RJ1A JEFA ROCA RJ0A
+ 2 RJ1B JEFB
+ 3 RJ1C JEFC
+C SYS IMP MATRIX
+ INFA JEFA 4.891757.845
+ INFB JEFB 4.891757.845
+ INFC JEFC 4.891757.845
+C LINEAR SHUNT REACTORS 300MVAR AT EACH END
+C 34567890123456789012345678901234567890123456789012345678901234567890
+ 0 K1A MACA1 .00071.04368
+ 0 K1B MACB1 .00071.04368
+ 0 K1C MACC1 .00071.04368
+ 0 J2A ROCA .2280414.054
+ 0 J2B ROCB .2280414.054
+ 0 J2C ROCC .2280414.054
+ 0 L2AGROUND 1.E-6
+ 0 L2BGROUND 1.E-6
+ 0 L2CGROUND 1.E-6
+ 0 M1A MACC1 1.E-6
+ 0 M1B MACA1 1.E-6
+ 0 M1C MACB1 1.E-6
+ 0 GROUND 1.E-6
+ 0 ROCACOMROC 1950. 1
+ 0 ROCBCOMROC 1950. 1
+ 0 ROCCCOMROC 1950.
+ 0COMROC 700.0
+ 0 JEFACOMJEF 1950.0
+ 0 JEFBCOMJEF 1950.0
+ 0 JEFCCOMJEF 1950.0
+ 0COMJEF 700.0
+C GENERATOR'S CAPACITANCE TO GROUND
+ 0 MACA1 50.0
+ 0 MACB1 50.0
+ 0 MACC1 50.
+BLANK card ending all branch cards
+ RJ0A .0501 10. 1
+BLANK card ending all switch cards
+C Begin Type-18 sources (ideal transformers) that distinguish this subcase:
+C 14 J2A 1.E-20 60.0
+C 18 L2A 18.0 K1A M1A18TYP1
+C 14 J2B 1.E-20 60.0
+C 18 L2B 18.0 K1B M1B18TYP2
+C 14 J2C 1.E-20 60.0
+C 18 L2C 18.0 K1C M1C18TYP3
+14 INFA 624619. 60. -2.2 -1.0
+14 INFB 624619. 60. -122.2 -1.0
+14 INFC 624619. 60. 117.8 -1.0
+14 MACA1 22944.3 60. 69.9077 -1.0
+14 MACB1 22944.3 60. -50.0922 -1.0
+14 MACC1 22944.3 60. -170.0922 -1.0
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = 1.199128383848E+08
+C Last gen: MACC1 -22602.10667558 22944.3 -82940.75280602 86941.876492988
+C Last gen: -3947.869845313 -170.0922 26071.467394327 162.5500619
+ JEFA JEFB JEFC ROCA ROCB ROCC18TYP118TYP218TYP3
+C Step Time JEFA JEFB JEFC ROCA ROCB
+C
+C 18TYP3 RJ0A ROCA ROCB
+C TERRA COMROC COMROC
+C 0 0.0 595774.3334 -170010.161 -431151.342 569612.3085 41241.0688
+C 1889.574253 0.0 195.7951564 -348.444415
+C 1 .2E-3 583329.625 -124300.015 -464630.148 539239.5467 92279.01704
+C 2052.380386 0.0 217.2131016 -345.88244
+BLANK card ending selective node voltage output requests
+C Last step: 75 .015 565929.8878 -490595.576 -77916.3691 685283.5922 -365950.758
+C Last step: 216.6873929 0.0 -13.0438646 -294.203105
+ PRINTER PLOT
+ 144 2. 0.0 20. 18TYP118TYP218TYP3 { Axis span: (-3.033, 3.035)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C Third of 3 subcases of DC-25 is unrelated to preceding two. It
+C does use saturable TRANSFORMERs, however. It is unusual in that it
+C uses the "TRANSFORMER THREE PHASE" option. From LEC, December, 88
+ .10E-3 80.E-3
+ 1 1 1 3 1 -1
+ 5 5 20 20 100 100
+ GEN1 BAS1 1. -4 3
+ GEN2 BAS2 1. -4 3
+ GEN3 BAS3 1. -4 3
+ NULP 1. -4 1
+ TRANSFORMER THREE PHASE T4 .001
+ TRANSFORMER 2.0 1137. T1 0.00E5 3
+ 2. 26.
+ 5. 63.
+ 10. 122.
+ 20. 225.
+ 50. 459.
+ 100. 702.
+ 200. 956.
+ 500. 1220.
+ 1000. 1343.
+ 2000. 1415.
+ 5000. 1462.
+ 10000. 1478.6
+ 9999
+ 1BAS1 NULP .00 1. -43.03E5 1
+ 2BASA NULP .00 1. -43.03E5
+ TRANSFORMER 1.0 1137. T2 0.00E5 3
+ 1. 26.
+ 2.5 63.
+ 5. 122.
+ 10. 225.
+ 25. 459.
+ 50. 702.
+ 100. 956.
+ 250. 1220.
+ 500. 1343.
+ 1000. 1415.
+ 2500. 1462.
+ 5000. 1478.6
+ 9999
+ 1BAS2 NULP .00 1. -43.03E5 1
+ 2BASB NULP .00 1. -43.03E5
+ TRANSFORMER 2.0 1137. T3 0.00E5 3
+ 2. 26.
+ 5. 63.
+ 10. 122.
+ 20. 225.
+ 50. 459.
+ 100. 702.
+ 200. 956.
+ 500. 1220.
+ 1000. 1343.
+ 2000. 1415.
+ 5000. 1462.
+ 10000. 1478.6
+ 9999
+ 1BAS3 NULP .00 1. -43.03E5 1
+ 2BASC NULP .00 1. -43.03E5
+BLANK card terminates electric network branches
+BLANK card ends all switches
+14GEN1 460000. 50. 20. -1.
+14GEN2 460000. 50. 140. -1.
+14GEN3 460000. 50. 260. -1.
+BLANK card terminates electric network sources
+C Total network loss P-loss by summing injections = -6.154425427667E-03
+C Last gen: GEN3 -79878.16172679 460000. -2.536462187767 2.5755913419774
+C Last gen: -453011.5663856 -100.0000000 .44724750518799 169.9999828
+C ---- Initial flux of coil "T1 " to "NULP " = 5.00794608E+02
+C ---- Initial flux of coil "T2 " to "NULP " = 9.41185994E+02
+C ---- Initial flux of coil "T3 " to "NULP " = -1.44198060E+03
+C Step Time GEN1 GEN2 GEN3 T1 T2
+C BAS1 BAS2 BAS3 NULP NULP
+C
+C BASA BAS3 BAS2 BAS1 T2
+C
+C T3 GEN1 GEN2 GEN3 T1
+C NULP
+C
+C GEN2 GEN3 NULP BAS1 BAS2
+C BAS2 BAS3 TERRA T1 T2
+C 0 0.0 .8809037E-4 .8277799E-4 -.253646E-3 432258.6055 -352380.444
+C 432258.6054 -79878.1615 -352380.444 432258.6055 -352380.444
+C -79878.1615 432258.6056 -352380.444 -79878.1617 39.55469448
+C .827779877 -2.53646213 -.827780115 .8809052313 .8277787585
+C 1 .1E-3 .004398076 .0036655092 -.011739905 427103.3935 -361494.243
+C 427103.3898 -65609.2978 -361494.175 427103.476 -361494.246
+C -65609.0681 427103.4804 -361494.171 -65609.3095 44.90081121
+C 36.65509168 -117.399051 -36.7631993 43.98076016 36.65509158
+ 1 { Request for all node voltage outputs
+C !!! Tracking trouble ... number I = 0. 0.2E+01 -0.20562E+02 -0.17753E+01
+C !!! Tracking trouble ... number I = 0. -0.2E+01 0.51513E+01 0.52578E+00
+C 800 .08 .0055358232 .0091582724 -.372219109 432259.2816 -352380.249
+C 432258.9241 -79877.7895 -352380.453 432258.6 -352380.607
+C -79872.5219 432258.6056 -352380.444 -79878.1617 57.81704152
+C 91.58272413 -3722.19109 -3575.25014 55.35823213 91.58272332
+ PRINTER PLOT
+ 144 1. 60. 70. NULP { Axis span: ( -5.455, 5.480)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
+
+BEGIN NEW DATA CASE
+C BENCHMARK DC-25
+C Test of Type-59 S.M., with two connected in parallel. Problem came from
+C Chuck Wolf of AEP on 14 Feb 1977. See Vol. VII EMTP Memoranda, 28
+C January 1978, pages TDCE-13 through 16. Results of this simulation
+C correspond to Fig. 4 --- the case of an untransposed 765-kV line using
+C Procedure 1 initialization. The unbalanced Pi-circuit of transmission
+C line produces an unbalanced phasor solution. Load flow ("FIX SOURCE")
+C usage begins from power constraints for "M39." and later solutions.
+C For other Type-59 S.M. usage, see cases DC-26, DC-53, and DCNEW-11.
+C This is old data case, as it existed prior to October, 1990 changes.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+FIX SOURCE { Declared intention to use load flow (phasor power constraints)
+ .000200 .100 60. 60.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+C 11 PI SECTIONS OF THE R-JEF CKT
+ 1 ROCA RJ0A 9.04 44.88 351.28
+ 2 ROCB RJ0B 7.84 19.04 -57.6 9.2 44.56 360.88
+ 3 ROCC RJ0C 7.68 14.96 -14.967.84 19.04 -57.6 9.04 44.88 351.28
+ 1 RJ0A RJ1A ROCA RJ0A
+ 2 RJ0B RJ1B
+ 3 RJ0C RJ1C
+ 1 RJ1A JEFA ROCA RJ0A
+ 2 RJ1B JEFB
+ 3 RJ1C JEFC
+C SYS IMP MATRIX
+ INFA JEFA 4.891757.845
+ INFB JEFB 4.891757.845
+ INFC JEFC 4.891757.845
+C LINEAR SHUNT REACTORS 300MVAR AT EACH END
+ 0 ROCACOMROC 1950. 1
+ 0 ROCBCOMROC 1950. 1
+ 0 ROCCCOMROC 1950.
+ 0COMROC 700.0
+ 0 JEFACOMJEF 1950.0
+ 0 JEFBCOMJEF 1950.0
+ 0 JEFCCOMJEF 1950.0
+ 0COMJEF 700.0
+C STEP-UP TRANSFORMER AT ROCKPORT
+ TRANSFORMER TRAN A
+ 9999
+ 1 MACA1 MACC1 .00071.0436824.63
+ 2 ROCA .2280414.054441.7
+ TRANSFORMER TRAN A TRAN B
+ 1 MACB1 MACA1
+ 2 ROCB
+ TRANSFORMER TRAN A TRAN C
+ 1 MACC1 MACB1
+ 2 ROCC
+C GENERATOR'S CAPACITANCE TO GROUND
+ 0 MACA1 50.0
+ 0 MACB1 50.0
+ 0 MACC1 50.
+BLANK card ending all branch cards
+ RJ0A .0501 10. 1
+BLANK card ending all switch cards
+14 INFA 624619. 60. -2.2 -1.0
+14 INFB 624619. 60. -122.2 -1.0
+14 INFC 624619. 60. 117.8 -1.0
+59 MACA1 22000. 60.0 60.0
+ MACB1
+ MACC1
+TOLERANCES { Only change columns 51-60: NIOMAX = 20 } 20
+PARAMETER FITTING 2.0
+ 1 1 21. 1. 722. 26. 1750. 1950. 3200.
+BLANK card for the Q-axis
+.001720594.19 1.92 1.85 .31 0.6 .26 .26
+4.8 1.0 .04 .053 .12 .000001 .000001
+ 1 1.0 .87 .0001
+BLANK card ending mass cards
+ 51
+ 11
+ 21
+ 31
+BLANK card ending output specifications for this S.M. only
+ FINISH PART { End of 1st of 2 machines in parallel on the same 3-phase bus
+PARAMETER FITTING 2.0
+ 1 1 21. 1. 722. 26. 1750. 1950. 3200.
+BLANK card for the Q-axis
+.001720594.19 1.92 1.85 .31 0.6 .26 .26
+4.8 1.0 .04 .053 .12 .000001 .000001
+ 1 1.0 .87 .0001
+BLANK card ending mass cards
+ 51
+ 11
+ 2 1
+ 31
+BLANK card ending output specifications for this S.M. only
+ FINISH { End of 2nd of 2 machines in parallel on the same 3-phase bus
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C ROCA | TERRA * RJ0A*COMROC*
+C RJ0A | TERRA * ROCA* RJ1A*
+C ROCB | TERRA * RJ0B*COMROC*
+C RJ0B | ROCB* RJ1B*
+C ROCC | TERRA * RJ0C*COMROC*
+C RJ0C | ROCC* RJ1C*
+C < < Etc. This is 1st 1/3-rd or so of table. > >
+BLANK card ending all source cards
+ MACA1 MACB1 MACC1 2803162500.0 1383483900.0 20000. 25000. 50.0 80.0
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 0.001 2
+C 1 0.001 { Load flow misc. data card
+C Max del-V: .1803 .1777 .1752 .1727 .1702 .1678 .1654 .163 .1607 .1584
+C Source No. -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+C Exit the load flow iteration loop with counter NEKITE = 310. If no w
+C Total network loss P-loss by summing injections = 1.193636643443E+08
+C 1st gen : MACA1 7882.1299837372 22944.294576661 63529.229081234 91991.00055512
+C 1st gen : 21547.915921037 69.9077094 66531.054669802 46.3221669
+C Id Iq Io
+C -5.17606386485E+04 1.11953458746E+04 -9.24170739175E-11
+C Field current of the generator: 7.6127807443E+03 7.7516029040E+03
+C Electromechanical torque ... : 3.4914826741E+00 3.7272751437E+00
+ JEFA JEFB JEFC ROCA ROCB ROCC MACA1 MACB1 MACC1 { Node voltage outputs
+C Step Time JEFA JEFB JEFC ROCA ROCB
+C
+C MACC1 RJ0A ROCA ROCB MACH 1
+C TERRA COMROC COMROC ID
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IKD IG IKQ IA IB
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 2
+C MANG TQ GEN ANG 1 VEL 1 ID
+C
+C MACH 2 MACH 2 MACH 2 MACH 2 MACH 2
+C IKD IG IKQ IA IB
+C
+C MACH 2 MACH 2 MACH 2 MACH 2
+C MANG TQ GEN ANG 1 VEL 1
+C 0 0.0 595063.429 -170038.378 -430408.555 567829.8077 41131.95807
+C -22602.1076 0.0 195.2036215 -347.379708 -51760.6386
+C -109.687843 23.46046976 120.5175269 31764.61454 9524.516392
+C .6133720135 3.491482674 210.5205098 0.0 -51760.6386
+C -109.687843 23.46046976 120.5175269 31764.61454 9524.516392
+C .6133720135 3.491482674 210.5205098 0.0
+C 1 .2E-3 582660.0313 -124400.23 -463854.308 538017.7227 90829.37154
+C -22226.4607 0.0 216.563941 -344.847412 -51636.0369
+C -114.822396 20.58268373 99.63923976 29275.32656 12850.25969
+C .6135456896 3.503754264 210.5205169 .0012527763 -51636.0369
+C -114.822396 20.58268373 99.63923976 29275.32656 12850.25969
+C .6135456896 3.503754264 210.5205169 .0012527763
+BLANK card ending selective node voltage output requests
+C Last step begins: 500 0.1 422384.6068 -116060.664 -360408.406 181592.8113
+C Last step begins: -14206.7591 8837.628536 127.4636953 -301.640745 -70527.6268
+C Last step begins: 403.5072445 488.6707412 -1237.27694 41166.26379 16455.65357
+C Last step begins: .5742173844 4.349309756 212.0422101 1.276736936 -70527.6268
+C Last step begins: 403.5072445 488.6707412 -1237.27694 41166.26379 16455.65357
+C Last step begins: .5742173844 4.349309756 212.0422101 1.276736936
+C Variable max : 613982.7179 691015.2085 697406.805 693742.3285 682016.8965
+C 23071.3002 12401.73671 350.8166252 346.8830178 -32144.4616
+C 2306.637425 1158.85933 5312.553787 45431.60834 47102.76399
+C .677541522 6.397682896 212.0422101 1.285133368 -32144.4616
+C 2306.637425 1158.85933 5312.553787 45431.60834 47102.76399
+C .677541522 6.397682896 212.0422101 1.285133368
+C Times of max : .0326 .0544 .0602 .0484 .004
+C .0412 .0856 .0026 .0416 .0642
+C .0594 .095 .0618 .0478 .0866
+C .0576 .0576 0.1 .0992 .0642
+C .0594 .095 .0618 .0478 .0866
+C .0576 .0576 0.1 .0992
+ PRINTER PLOT
+ 144 2. 0.0 20. MACA1 MACB1 MACC1 { Axis span: (-2.318, 2.320)
+ 19410. 0.0100. MACH 1TQ GENMACH 2TQ GEN { Axis span: (-1.066, 6.398)
+BLANK card ending plot cards
+
diff --git a/benchmarks/dc26.dat b/benchmarks/dc26.dat
new file mode 100644
index 0000000..9793f5d
--- /dev/null
+++ b/benchmarks/dc26.dat
@@ -0,0 +1,551 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-26
+C Test of Type-59 S.M. dynamics, with load flow ("FIX SOURCE" request)
+C determination of initial conditions that observe given power constraints.
+C 1st of 5 subcases involving load flow solutions; 1st of 2 machine cases.
+C Answers change slightly on 10 February 1999 following the massive
+C changes from TEPCO (Tokyo Electric Power Company) in Japan. See April
+C newsletter. Most extrema agree to 5 or 6 decimal digits.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
+POWER FREQUENCY, 50.0, { Avoid warning message about suspicious XOPT, COPT.
+ .000200 .500 50. 50.
+ 1 1 0 { test } 1 -1
+ 5 5 20 20 100 100
+ A1 A2 0.1 1
+ B1 B2 0.1 1
+ C1 C2 0.1 1
+51A2 B2 .00528 571.5428
+52A3 -.029 3125.811 .1582 17115.12
+51B2 C2 A2 B2
+52B3
+51C2 A2 A2 B2
+52C3
+ A2 31.416
+ B2 31.416
+ C2 31.416
+ 1A3 A4 43.342
+ 2B3 B4 12.546 43.342
+ 3C3 C4 12.546 12.546 43.342
+BLANK card ending branch cards.
+C The next card has T-open = 80 msec minus DELTAT/2 in order to avoid
+C delayed opening (1/2 cycle) for PRIME and Burroughs. WSM. 27 FEB 1982.
+ A3 .01990 .0799 1
+BLANK card ending switch cards.
+14A4 112.059 50. -20. -1.
+14B4 112.059 50. -140. -1.
+14C4 112.059 50. 100. -1.
+C 59A1 11.3901 50.0 - 30.0 (before FIX SOURCE use)
+$DEPOSIT, NOSM59=-1 { Special value will change Type-58 S.M. to Type-59 S.M.
+C Note about preceding and following. Beginning 27 March 2000, this new
+C variable NOSM59 of STARTUP can be used either to convert or to trap
+C Type-58 or Type-59 S.M. type codes. Five values are recognized:
+C NOSM59 = 0 ===> no change. Preserve the original meaning.
+C 1 convert any Type-59 S.M. to Type-58 S.M.
+C 2 trap any Type-59 S.M. (halt after all are counted).
+C -1 convert any Type-58 S.M. to Type-59 S.M.
+C -2 trap any Type-58 S.M. (halt after all are counted).
+C So, the following machine really is Type-59. But 58 is used because ATP
+C automatically will convert this to 59 as a result of preceding NOSM59 = -1
+C This preserves the old answers, which will remain unchanged.
+58A1 11.0 50.0 -40.0
+58B1
+58C1
+C TOLERANCES 200. { Columns 11-20 EPSUPA = 200 } 20 { 51-60: NIOMAX=20
+C 14 October 2001, define NIOMIN of columns 41-50 so Watcom agrees with Mingw32
+C and Salford. This _does_ help. Value 8 provides better FC agreement than 5.
+C Previously, Watcom was iterating a different number of times, & was producing
+C a slightly different answer. So, we slow execution artificially:
+TOLERANCES 200. 8 20 { 51-60: NIOMAX=20
+PARAMETER FITTING 1.0
+ 1 1 2 1.0 1.0 150.0 13.8 600.0 600.0 720.0
+BLANK card for quadrature axis of machine.
+ 0.0014 0.175 1.85 1.76 0.2575 1.76 0.18 0.18
+ 5.74757 0.051142 0.382609 0.197985
+ 1 1.0 50.0 1.0
+BLANK card ending all (here, just one) mass cards.
+ 12
+ 21
+ 3 1
+BLANK card terminating all (here, three) S.M. output requests.
+ FINISH
+BLANK card terminating all EMTP source cards.
+ A1 39.98755 -4.507399 10.0 12.0 -60.
+ B1 39.98755 -4.507399 10.0 12.0 -180. -120.
+ C1 39.98755 -4.507399 10.0 12.0 60.0 120.
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 1000 20 1 0.00001 0.1 2.0 2
+C Max del-V: .7E-5 .7E-5 .6E-5 .6E-5 .5E-5 .5E-5 .5E-5 .4E-5 .4E-5 .4E-5 .3E-5
+C Source No. -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
+C Exit the load flow iteration loop with counter NEKITE = 133. If no warning
+C Row Node Name Voltage magnit Degrees Real power P Reactive power
+C 4 8 A1 1.13901111E+01 -30.00022 3.99871502E+01 -4.50736252E+00
+C 5 9 B1 1.13901111E+01 -150.00022 3.99871502E+01 -4.50736252E+00
+C 6 10 C1 1.13901111E+01 89.99978 3.99871502E+01 -4.50736252E+00
+C Total network loss P-loss by summing injections = 8.018000511887E+00
+C Step Time C2 B2 A2 A3 C3
+C
+C C1 A4 B4 C4 A3
+C TERRA
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C ID IQ I0 IF IKD
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IB IC EFD MFORCE MANG
+C 0 0.0 .0791881332 -9.29565074 9.216462609 102.5472108 -37.8516127
+C .4577064E-4 105.3010154 -85.8421743 -19.4588411 0.0
+C -6.82107489 5.325616419 .391002E-14 1.014337449 -.76501E-15
+C -5.68498411 -.791423626 -.176005017 .60792369 .887825386
+C 1 .2E-3 -.592823298 -8.9455915 9.538414794 103.3173764 -43.8432677
+C -.715886965 107.4997647 -81.1499746 -26.3497901 0.0
+C -6.82114583 5.325512789 -.4718E-14 1.014337757 .6231167E-5
+C -5.41035524 -1.23063667 -.176005017 .6079236529 .8878253793
+ 1 { Request for the output of all node voltages
+C Last step begin: 2500 0.5 .1013093411 -9.26844034 9.167130999 16.94173877
+C Last step begin: .0149766932 105.3010154 -85.8421743 -19.4588411 0.0
+C Last step begin: -6.73361875 5.375255555 -.34086E-14 1.004763786 -.001205227
+C Last step begin: -5.61469909 -.863326479 -.176005017 .6045428409 .889016932
+C Variable max : 11.6152661 11.51967968 12.3018062 204.4814649 119.2607541
+C 12.40458274 112.0153099 112.0562692 112.0480769 6.3761474
+C -2.00131682 9.101894661 .13086E-13 1.315246828 1.316347492
+C 12.08207638 7.893166343 -.176005017 .60792369 .8935781536
+C Times of max : .0938 .1282 .0806 .0802 .0934
+C .0938 .4812 .4878 .2344 .0252
+C .0782 .0708 .1114 .074 .0332
+C .033 .0938 0.0 0.0 .0226
+ PRINTER PLOT
+ 19410. 0. 120. MACH 1ID MACH 1IQ { Plot limits: (-2.301, 0.910)
+C Note: Former IG (next plot) now (after Prof. Juan Martinez's changes of
+C October, 1989) becomes IKQ. The eddy-current coil of the Q axis
+C formerly was coil "KQ", now is "G". WSM and JM, 13 October 90
+ 19410. 0. 120. MACH 1IF MACH 1IKQ { Plot limits: (-0.425, 1.636)
+ 19410. 0. 120. BRANCH { Plot limits: (-1.874, 1.755)
+ A1 A2 B1 B2 C1 C2
+$DEPOSIT, NOSM59=0 { Cancel special value that was set earlier in this subcase
+BLANK card terminating all plot cards.
+BEGIN NEW DATA CASE
+C 2nd of 6 data subcases.
+C Same as preceding case, only with significant imbalance in the steady
+C state due to change of generator at "A4" from -20 to -10 degrees.
+C The load flow does not converge, and case is only run 5 steps. The
+C idea is to force use of negative-sequence correction logic of SMINIT
+C of overlay 11. No other test cases do this. Eventually, replace by
+C a meaningful case. 2nd of 4 subcases (2nd of two machine cases).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
+POWER FREQUENCY, 50.0, { Avoid warning message about suspicious XOPT, COPT.
+ .000200 .001 50. 50.
+ 1 1 0 { test } 0 -1
+ 5 5 20 20 100 100
+ A1 A2 0.1 1
+ B1 B2 0.1 1
+ C1 C2 0.1 1
+51A2 B2 .00528 571.5428
+52A3 -.029 3125.811 .1582 17115.12
+51B2 C2 A2 B2
+52B3
+51C2 A2 A2 B2
+52C3
+ A2 31.416
+ B2 31.416
+ C2 31.416
+ 1A3 A4 43.342
+ 2B3 B4 12.546 43.342
+ 3C3 C4 12.546 12.546 43.342
+BLANK card ending branch cards.
+C The next card has T-open = 80 msec minus DELTAT/2 in order to avoid
+C delayed opening (1/2 cycle) for PRIME and Burroughs. WSM. 27 FEB 1982.
+ A3 .01990 .0799 1
+BLANK card ending switch cards.
+14A4 112.059 50. -10. { Change -20 to -10 } -1.
+14B4 112.059 50. -140. -1.
+14C4 112.059 50. 100. -1.
+C 59A1 11.3901 50.0 - 30.0 (before FIX SOURCE use)
+59A1 11.0 50.0 -40.0
+59B1
+59C1
+TOLERANCES 200. { Columns 11-20 EPSUPA = 200 } 20 { 51-60: NIOMAX=20
+PARAMETER FITTING 1.0
+ 1 1 2 1.0 1.0 150.0 13.8 600.0 600.0 720.0
+BLANK card for quadrature axis of machine.
+ 0.0014 0.175 1.85 1.76 0.2575 1.76 0.18 0.18
+ 5.74757 0.051142 0.382609 0.197985
+ 1 1.0 50.0 1.0
+BLANK card ending all (here, just one) mass cards.
+ 12
+ 21
+ 3 1
+BLANK card terminating all (here, three) S.M. output requests.
+ FINISH
+BLANK card terminating all EMTP source cards.
+ A1 39.98755 -4.507399 10.0 12.0 -60.
+ B1 39.98755 -4.507399 10.0 12.0 -180. -120.
+ C1 39.98755 -4.507399 10.0 12.0 60.0 120.
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 100 20 1 0.00001 0.1 2.0 2
+C Max del-V: .0016 .0015 .0013 .0011 .001 .9E-3 .8E-3 .6E-3 .5E-3 .4E-3 .4E-3
+C //. Warning! Divergence of the EMTP load flow has occurred. In the hope
+C initialization continues, however.
+C Exit the load flow iteration loop with counter NEKITE = 100. If no warning
+C Row Node Name Voltage magnit Degrees Real power P Reactive power
+C 4 8 A1 1.00000000E+01 -20.91363 3.45426843E+01 -2.24391750E+00
+C 5 9 B1 1.20000000E+01 -150.14225 4.22174603E+01 -6.71602291E+00
+C 6 10 C1 1.20000000E+01 90.73965 3.92028723E+01 -5.90634496E+00
+C Total network loss P-loss by summing injections = 7.625614104022E+00
+ 1 { Request for the output of all node voltages
+C Step Time C2 B2 A2 A3 C3
+C
+C C1 A4 B4 C4 A3
+C TERRA
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C ID IQ I0 IF IKD
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IB IC EFD MFORCE MANG
+C 0 0.0 -.048041917 -9.85266713 8.679836062 104.3486527 -36.7261188
+C -.154907255 110.356572 -85.8421743 -19.4588411 0.0
+C -6.92581041 5.259477223 -.445329E-4 .9859361614 .0320876279
+C -5.54502117 -1.06865338 -.170793823 .5995965889 .8894202603
+C 1 .2E-3 -1.16677225 -7.85747584 10.21232132 103.2738496 -48.1646884
+C -1.32143162 111.3606393 -81.1499746 -26.3497901 0.0
+C -6.87231021 5.289979997 .0014353419 .9858026654 .0272832017
+C -5.20835729 -1.54659375 -.170793823 .5996092398 .8894186749
+C Last step follows:
+C 5 .001 -3.69592471 -6.2063594 10.61819433 99.27645368 -67.8903465
+C -4.03363622 110.9684495 -59.3822228 -52.6085139 0.0
+C -6.76271705 5.471445353 .0060095523 .9856033893 .017362355
+C -3.71587997 -3.37711507 -.170793823 .5996729546 .8894772231
+ PRINTER PLOT
+BLANK card terminating all plot cards.
+BEGIN NEW DATA CASE
+C 5-bus, 1-phase loadflow example from "Elements of Power System Analysis"
+C by William D. Stevenson. McGraw-Hill Book Company, 2nd Edition (1962).
+C The Gauss-Seidel solution is contained in Example 10.1, page 219 onward.
+C Data is given in per unit, and we can use this directly (pretend that
+C the base voltage, current, and power are all unity). We need XOPT = 60
+C since impedances are in ohms. Voltages could be multiplied by 1.414 to
+C give the peak values required by the EMTP, but instead we use the VSCALE
+C option that takes RMS (the square root of 2 is supplied internally) as
+C input and produces RMS output (at least for the load flow solution table
+C if not for EMTP branch flows). Bus number one, WHITE, is taken as the
+C slack bus (the only bus without a power constraint). This is the 3rd of
+C 5 subcases. It has no machine dynamics at all (unlike the preceding 2).
+C This data case was 1st considered by Profs. Saul Goldberg & Bill Horton
+C of Cal Poly in San Luis Obispo, California, for June, 1988, EMTP course.
+C Answers change 10 February 1999 following the massive changes from
+C TEPCO (Tokyo Electric Power Company) in Japan. See April newsletter.
+C Convergence has been slowed substantially (when time, consider this).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
+$ERASE { Erase punched cards, created by preceding subcases, from punch buffer
+ .000200 .000 60. { T-max = 0 means that no transient solution follows
+ 1 1 1 0 1
+ WHITE RED .10 .40
+C Stevenson's line between WHITE and BLUE appears on the final comment
+C card of this comment block. For more generality, I have introduced an
+C intermediate node DUMMY that is unconstrained. The solution of the
+C network should be unchanged, of course. It is (original is ok, too).
+C WHITE BLUE .15 .60
+ WHITE DUMMY .15 .30 { 1st of 2 halves: all of R and 1/2 of X
+ DUMMY BLUE .30 { 2nd of 2 halves: zero R and 1/2 of X
+ WHITE YELLOW .05 .20
+ RED GREEN .05 .20
+ RED BLUE .10 .40
+ GREEN YELLOW .05 .20
+BLANK card ending branch cards.
+BLANK card ending switch cards.
+C The following 2 cards would be used if peak rather than RMS input data:
+C 14WHITE 1.4425 60. 0.0 -1.
+C 14GREEN 1.4708 60. 2.0 -1.
+14WHITE 1.02 60. 0.0 -1.
+14GREEN 1.04 60. 2.0 -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C WHITE |RED *DUMMY *YELLOW*
+C RED |WHITE *BLUE *GREEN *
+C DUMMY |WHITE *BLUE *
+C BLUE |RED *DUMMY *
+C YELLOW |WHITE *GREEN *
+C GREEN |RED *YELLOW*
+C --------------+------------------------------
+BLANK card terminating all EMTP source cards.
+C Next come power constraints of the load flow. There will be one
+C for each non-slack generator. So, 3 of them will apply to nodes
+C that have no Type-14 source as required by the algorithm. The
+C program will define these internally. Yet, this is only possible
+C for TMAX non-positive (no transient continuation). If data is
+C modified to make TMAX > 0, a KILL = 40 error termination will
+C will result. Yet, the transient simulation is possible as a
+C 2nd simulation that replaces the power constraints at load nodes
+C by constant-impedance loads. Branch cards for these will be
+C punched by the present subcase, and the transient continuation
+C will be illustrated by the following (4th of 4) subcase.
+C The following 4 cards would be used if peak rather than RMS input data.
+C Note that average of Vmin & Vmax = 0.5 ( 1.0 + 1.828428 ) = 1.414212
+C (power constraints RED, BLUE, and YELLOW), and 1.4708 = 1.414 * 1.02
+C RED -0.6 -0.3 1.01.828428
+C 1GREEN 1.0 1.4708 -20. 20.
+C BLUE -0.4 -0.1 1.01.828428
+C YELLOW -0.6 -0.2 1.01.828428
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ RED -0.6 -0.3 .85 1.15
+ 1GREEN 1.0 1.02 -20. 20.
+ BLUE -0.4 -0.1 .85 1.15
+ YELLOW -0.6 -0.2 .85 1.15
+C Max del-V: .0293 .0153 .0141 .0138 .0118 .0096 .0085 .0076 .0068 .0061 .0055
+C Source No. -2 -3 -4 -1 -3 -3 -3 -3 -3 -3 -3
+C Max del-V: .0023 .0021 .002 .0018 .0017 .0016 .0015 .0014 .0013 .0012 .0011
+C Source No. -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
+C Max del-V: .6E-3 .5E-3 .5E-3 .5E-3 .4E-3 .4E-3 .4E-3 .4E-3 .4E-3 .3E-3 .3E-3
+C Source No. -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
+C The following load-flow miscellaneous data card has two peculiarities. The
+C use of VSCALE = 1.414 is the special flag requesting RMS rather than peak
+C voltages. The use of KTAPER = 0 ensures constant acceleration factors
+C (this works well for this problem whether RMS or peak values are used).
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 500 20 1 .00001 0.0 0.0 1.414 0
+C Max del-V: .6E-6 .6E-6 .6E-6 .5E-6
+C Source No. -3 -3 -3 -3
+C Exit the load flow iteration loop with counter NEKITE = 164. If no warning
+C Row Node Name Voltage magnit Degrees Real power P Reactive power
+C 3 3 RED 9.41780959E-01 -3.81708 -5.99988408E-01 -2.99999500E-01
+C 2 7 GREEN 1.02000000E+00 2.43465 1.00001182E+00 3.82676335E-01
+C 4 5 BLUE 9.15105791E-01 -8.02053 -3.99985812E-01 -9.99988825E-02
+C 5 6 YELLOW 9.82613423E-01 -1.92907 -5.99992780E-01 -1.99999933E-01
+C Total network loss P-loss by summing injections = 5.282912652566E-02
+C Next, show the punched cards that $PUNCH (next) will display:
+C $UNITS card should give X, C units XUNITS, CUNITS = 2.6526E-03 1.0000E-06
+C Following are branch cards for either loads or generator impedances:
+C $VINTAGE, 1,
+C Polar V, P, Q = 9.41780959E-01 -3.81708 -5.99988408E-01 -2.99999500E-01
+C RED .591308166 .295659302
+C Polar V, P, Q = 1.02000000E+00 2.43465 1.00001182E+00 3.82676335E-01
+C GREEN -.45374803 15276.6334
+C Polar V, P, Q = 9.15105791E-01 -8.02053 -3.99985812E-01 -9.99988825E-02
+C BLUE .985230493 .246313607
+C Polar V, P, Q = 9.82613423E-01 -1.92907 -5.99992780E-01 -1.99999933E-01
+C YELLOW .724153874 .241387449
+C $VINTAGE, -1, { Last of punched cardss that the following $PUNCH will display
+$PUNCH { Flush punched cards: R-L branches for equivalent impedance loads
+C Note about preceding card. Since no images anyway, remove. WSM. 15 Mar 98
+BLANK card ending requests for output variables
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 6 data subcases is a continuation of the 3rd into the time-step
+C loop. The network differs in that constant-impedance loads (using the
+C branch cards that were punched by execution of the 3rd subcase) replace
+C the original power constraints at nodes without Type-14 sources. The
+C time-step size DELTAT and end-time TMAX have been arbitrarily to
+C selected to show that the transient continuation is smooth for just over
+C a cycle. Note that this continuation involves a load flow, too, since
+C otherwise angles of the Type-14 generators would not correspond to the
+C network solution. The load flow could be omitted if the user were
+C willing to re-key generator angles, but it generally is easier to let
+C the computer solve the load flow a second time (this time with constant-
+C impedance loads).
+C Branch voltage output of the time-step loop, if declared by a 2-punch
+C in column 80, was incompatible with load flow prior to 21 July 2002.
+C So, to prove it now works, add 2-punch to 1st branch on this date. An
+C older version of the program will simply ignore the column-80 punch.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
+ .000200 .020 60. { T-max = 0 means that no transient solution follows
+ 1 1 1 0 1 -1
+ 5 5 20 20
+ WHITE RED .10 .40 2
+ WHITE DUMMY .15 .30 { 1st of 2 halves: all of R and 1/2 of X
+ DUMMY BLUE .30 { 2nd of 2 halves: zero R and 1/2 of X
+ WHITE YELLOW .05 .20
+ RED GREEN .05 .20
+ RED BLUE .10 .40
+ GREEN YELLOW .05 .20
+C <++++++> Cards punched by support routine on 20-Oct-90 05.01.52 <++++++>
+$UNITS, 0.0, 0.0 { 1st of cards punched by preceding 3rd subcase: mHenry, microF
+$VINTAGE, 1, { 2nd of cards punched by preceding 3rd subcase: use wide formt
+C Polar V, P, Q = 9.41780959E-01 -3.81708 -5.99988408E-01 -2.99999500E-01
+ RED 1.18261633E+00 1.56852131E+00
+C Polar V, P, Q = 9.15105791E-01 -8.02053 -3.99985812E-01 -9.99988825E-02
+ BLUE 1.97046099E+00 1.30673427E+00
+C Polar V, P, Q = 9.82613423E-01 -1.92907 -5.99992780E-01 -1.99999933E-01
+ YELLOW 1.44830775E+00 1.28060019E+00
+$UNITS, -1, -1 { Restore whatever XOPT and COPT existed before preceding $UNITS
+$VINTAGE, 0, { Last of cards punched by preceding 3rd subcase
+BLANK card ending branch cards.
+BLANK card ending switch cards.
+14WHITE 1.02 60. 0.0 -1.
+14GREEN 1.04 60. 2.0 -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C WHITE |RED *DUMMY *YELLOW*
+C RED |TERRA *WHITE *BLUE *GREEN *
+C DUMMY |WHITE *BLUE *
+C BLUE |TERRA *RED *DUMMY *
+C YELLOW |TERRA *WHITE *GREEN *
+C GREEN |RED *YELLOW*
+C TERRA |RED *BLUE *YELLOW*
+C --------------+------------------------------
+BLANK card terminating all EMTP source cards.
+C Max del-V: .0282 .0015 .0013 .0011 1.E-3 .9E-3 .8E-3 .7E-3 .6E-3 .5E-3 .4E-3
+C Source No. -1 1 1 1 1 1 1 1 1 1 1
+C Max del-V: .1E-3 .9E-4 .8E-4 .7E-4 .6E-4 .5E-4 .5E-4 .4E-4 .4E-4 .3E-4 .3E-4
+C Source No. 1 1 1 1 1 1 1 1 1 1 1
+C Max del-V: .7E-5 .6E-5 .5E-5 .4E-5 .4E-5 .3E-5 .3E-5 .3E-5 .2E-5 .2E-5 .2E-5
+C Source No. 1 1 1 1 1 1 1 1 1 1 1
+C Exit the load flow iteration loop with counter NEKITE = 58. If no warning o
+C Row Node Name Voltage magnit Degrees Real power P Reactive power
+C 2 7 GREEN 1.02000000E+00 2.43435 9.99985664E-01 3.82679671E-01
+C Total network loss P-loss by summing injections = 1.652795946964E+00
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ 1GREEN 1.0 1.02 -20. 20.
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 500 20 1 .00001 0.0 0.0 1.414 0
+C Step Time YELLOW BLUE DUMMY RED WHITE
+C
+C 0 0.0 1.38883765 1.28149564 1.336017508 1.328924768 1.442497834
+C 1 .2E-3 1.388413609 1.291450977 1.337993527 1.331824678 1.438399553
+C 2 .4E-3 1.380101179 1.294070033 1.332367678 1.32715794 1.426128
+C 3 .6E-3 1.363947438 1.289337599 1.319171785 1.314950922 1.405752903
+ 1 { Request for the output of all node voltages
+C 100 .02 .4736844387 .567774976 .485772514 .4950043848 .4457563449
+C Variable max: 1.389411211 1.294070033 1.33815194 1.331824678 1.442497834
+C Times of max: .0168 .4E-3 .0168 .2E-3 0.0
+C Variable min: -1.38955118 -1.29326058 -1.33749084 -1.33106894 -1.44204228
+C Times of min: .0084 .0088 .0084 .0086 .0084
+ PRINTER PLOT
+ 144 2. 0.0 20. RED { Axis limits: (-1.331, 1.332)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 6 data subcases is a variation of the 3rd and 4th. One line
+C was omitted from the 5-bus network in order to make a radial system.
+C Specifically, the connection (WHITE, BLUE) was removed, leaving just
+C 4 lines connecting the 5 busses. I.e., there is no loop. The solution
+C should not be much changed since loads of the two connecting nodes were
+C increased or decreased by the known amount of the branch flow. Yet, a
+C 2nd change must be mentioned: conversion of bus GREEN from a generator
+C to a load. This was to make the present case more like NINEBUS from
+C Jian Jiang of Clemson University in South Carolina. See EEUG list server
+C mail dated October 7th. WSM, 10 October 2001.
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
+ .000200 .000 60. { T-max = 0 means that no transient solution follows
+ 1 1 1 0 1
+ WHITE YELLOW .05 .20
+ YELLOWGREEN .05 .20
+ GREEN RED .05 .20
+ RED BLUE .10 .40
+BLANK card ending branch cards.
+BLANK card ending switch cards.
+14WHITE 1.02 60. 0.0 -1.
+BLANK card terminating EMTP source cards.
+C Next come power constraints of the load flow. There will be one
+C for each non-slack generator:
+ RED -0.4 -.14 .85 1.15
+ GREEN 1.0 0.3 .85 1.15
+ BLUE -.15 .025 .85 1.15
+ YELLOW -0.6 -0.2 .85 1.15
+C The following load-flow miscellaneous data card has two peculiarities. The
+C use of VSCALE = 1.414 is the special flag requesting RMS rather than peak
+C voltages. The use of KTAPER = 0 ensures constant acceleration factors
+C (this works for this data).
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 500 20 1 .00001 0.1 7.0 1.414 0
+C Max del-V: .0249 .0254 .0259 .0216 .0158 .0092 .0059 .006 .0039 .004 .0059 .0038 .0037 .0031 .002 .0025 .0022 .0028 .0018 .0015
+C Source No. 2 2 2 -3 2 -3 4 2 -2 -1 -2 -1 -2 -2 -1 -2 -1 -2 -1 -1
+C Max del-V: .0016 .0012 .0013 .0011 .0012 .001 1.E-3 .9E-3 .9E-3 .9E-3 .8E-3 .8E-3 .8E-3 .7E-3 .7E-3 .7E-3 .7E-3 .6E-3 .6E-3 .6E-3
+C Source No. -2 -1 -2 -1 -2 -3 -1 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 ... (etc.)
+C Max del-V: .2E-5 .2E-5 .2E-5 .2E-5 .2E-5 .1E-5 .1E-5 .1E-5 .1E-5
+C Source No. -3 -3 -3 -3 -3 -3 -3 -3 -3
+C Exit the load flow iteration loop with counter NEKITE = 169. If no warning on the preceding line, convergence was attained.
+C Row Node Name Voltage magnit Degrees Real power P Reactive power
+C 2 5 RED 9.61553517E-01 -3.15303 -4.00001772E-01 -1.39992436E-01
+C 3 4 GREEN 1.02208195E+00 2.93622 9.99997725E-01 3.00004959E-01
+C 4 6 BLUE 9.54082493E-01 -7.05955 -1.50001447E-01 2.50097905E-02
+C 5 3 YELLOW 9.83589266E-01 -1.67083 -6.00000908E-01 -1.99997137E-01
+BLANK card ending requests for output variables
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 6 data subcases is a variation of the 3rd. The solution is
+C identical. But punched cards differ because T-stop of Type-14 source
+C GREEN is nonzero. Previously, this data field was left blank. Nonzero
+C T-stop is a flag that affects only the punched output. A nonzero value
+C in columns 71-80 is taken to be internal source reactance. Instead of an
+C equivalent impedance load, ATP will create an equivalent Type-14 voltage
+C source behind this reactance. The A6 bus name will have "G" appended
+C to it on the right to produce the name of the internal node. Thus GREEN
+C yields GREENG as the internal node. Should the original name involve
+C all 6 bytes, the last will be overlaid (e.g., PURPLE would be changed
+C to PURPLG). This is for every Type-14 source except the one that will
+C be used as the slack bus. The slack bus (here, WHITE) is the exception,
+C and no output is created for it. This is why T-stop of WHITE has
+C been left blank. Adding reactance to WHITE will not change the output.
+C Let's summarize the change. Using X = 0.5 will change the following
+C two 2 punched cards that follow the ruler:
+C 12345678901234567890123456789012345678901234567890123456789012345678901234
+C Polar V, P, Q = 1.02000000E+00 2.43465 1.00001182E+00 3.82676335E-01
+C GREEN -.45374803 15276.6334
+C (one comment card followed by one wide-format R-C branch card) to:
+C 14GREENG 1.84312934 60.24.5286405 -1.0
+C GREENGGREEN 0.0 0.5
+C (one Type-14 source card followed by one R-L branch card).
+C Note that reactance X normally will be positive, and the R-L branch
+C card carries this positive value in columns 43-58. This differs from
+C the preceding equivalent impedance which might be either R-L or R-C
+C depending on the power factor. Finally, note the raised voltage. Most
+C of the increase from 1.02 to 1.84 is due to the need for peak rather
+C than RMS on the Type-14 source card. As the reactance approaches zero,
+C the voltage should approach 1.02 * 1.414 (square root of 2). This 6th
+C subcase is being added 8 August 2007 following an inquiry by Prof.
+C Mustafa Kizilcay of the University of Siegen in Germany. The use of
+C T-stop > 0 was never documented in the ATP Rule Book. Neither was it
+C illustrated in standard test case. That is why this subcase now is
+C being added. WSM.
+C Previous comment about the slack bus being missing is correct for normal
+C data. But another undocumented option allows the user to name his slack
+C bus manually at the end of power constraints. If this is done, there will
+C be output for the slack generator, too. This option depends on the request
+C "last is slack bus" which can appear in any case and any location to the
+C right of the name field in columns 3-8. WSM. 9 August 2007
+C The preceding continues to be honored, but is believed to be clumsy.
+C The more modern way to name the slack bus omits one of the 2 associated
+C data cards by use of a special, in-line comment. The interpretation is
+C improved at the same time. WSM. 15 August 2007
+C Final improvement was suggested by Prof. Kizilcay, who wondered why the
+C user should be forced to sort the punched output manually. Prof. Kizilcay
+C suggested that /SOURCE might precede each Type-14 source card & /BRANCH
+C might follow it. Done. WSM. 15 August 2007.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
+$ERASE { Erase punched cards, created by preceding subcases, from punch buffer
+ .000200 .000 60. { T-max = 0 means that no transient solution follows
+ 1 1 1 0 1
+ WHITE RED .10 .40
+ WHITE DUMMY .15 .30 { 1st of 2 halves: all of R and 1/2 of X
+ DUMMY BLUE .30 { 2nd of 2 halves: zero R and 1/2 of X
+ WHITE YELLOW .05 .20
+ RED GREEN .05 .20
+ RED BLUE .10 .40
+ GREEN YELLOW .05 .20
+BLANK card ending branch cards.
+BLANK card ending switch cards.
+14WHITE 1.02 60. 0.0 -1. 0.4
+14GREEN 1.04 60. 2.0 -1. 0.5
+BLANK card terminating all EMTP source cards.
+ RED -0.6 -0.3 .85 1.15
+ 1GREEN 1.0 1.02 -20. 20.
+ BLUE -0.4 -0.1 .85 1.15
+ YELLOW -0.6 -0.2 .85 1.15
+ WHITE { Slack bus for punched output
+C The preceding special in-line comment identifies the name of the slack bus.
+C The older way, which continues to be honored, is to follow the slack bus name
+C by a 2nd card which carries the special text (any case) "last is slack bus"
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 500 20 1 .00001 0.0 0.0 1.414 0
+$PUNCH { Flush punched cards: R-L branches for equivalent impedance loads
+BLANK card ending requests for output variables
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
diff --git a/benchmarks/dc27.dat b/benchmarks/dc27.dat
new file mode 100644
index 0000000..9ea0614
--- /dev/null
+++ b/benchmarks/dc27.dat
@@ -0,0 +1,524 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-27
+C Test of "CABLE CONSTANTS", 1st for an underground cable, then for an
+C overhead line. For the cable, two of the phases have both cores and
+C sheaths, whereas the 3rd has only the core. A homogeneous earth model is
+C assumed. Both modal and phase-domain output is illustrated.
+C DIAGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+C 2 August 2002, add plot of cable cross-section on the screen:
+C $DEPOSIT, KROSEC=1, { Use SPY DEPOSIT to change this variable of STARTUP
+CABLE CONSTANTS
+ 2 -1 3 0 1 1 1
+ 2 2 1
+ 25.4E-3 45.6E-3 50.8E-3 55.9E-3
+ 6.8912E-8 1. 1. 3.52 6.8662E-7 1. 1. 3.3
+ 25.4E-3 45.6E-3 50.8E-3 55.9E-3
+ 6.8912E-8 1. 1. 3.52 6.8662E-7 1. 1. 3.3
+ 25.4E-3 45.6E-3
+ 6.8912E-8 1. 1. 3.52
+ 0.75 0.0 0.75 0.3 0.75 0.15
+ 20.0 1000.0
+C Impedance matrix [ Z ] in [ohm/m] follows :
+C 1.0871342E-03 9.7123603E-04 9.7126618E-04 9.7295525E-04 9.7123603E-04
+C 1.0433822E-02 7.2285319E-03 8.0995634E-03 9.5255505E-03 7.2285319E-03
+C Admittance matrix [ Y ] in [mho/m] follows :
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 2.1027008E-06 0.0000000E+00 0.0000000E+00 -2.1027006E-06 0.0000000E+00
+C Transpose of the current transformation matrix [Ti] follows. This is the inve
+C 0.0019301 0.0019301 0.0795508 0.4608603 0.4608604
+C 94.5057220 94.5057220 1.0795423 -0.4399059 -0.4399060
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phas
+C 0.9983159 0.9985634 0.1872344 1.0000001 0.9999997
+C 1.3742625 11.7389965 -128.8459167 -0.0000002 0.0000385
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 46.5745659 11.1852903 15.2132778 24.9359932 11.2755394
+C -4.8109016 -1.6719475 -2.0647478 -0.4119074 -1.1299886
+C Modal Propagation Modal impedance Modal
+C Mode attenuation velocity real imaginary susceptance
+C [ db/km ] [ m/sec ] [ ohms / meter ] [mho/meter]
+C 1 2.81088E-01 1.34059E+07 1.188315E-03 8.349145E-03 2.617198E-05
+C 2 1.38270E-01 3.78950E+07 2.186609E-04 1.137942E-03 2.394342E-05
+C 3 3.73454E-02 8.94327E+07 3.196348E-04 2.227090E-03 2.201588E-06
+C 4 1.05997E-01 1.34007E+08 3.100181E-04 4.750426E-04 4.128194E-06
+C 5 1.10538E-01 1.35064E+08 3.239154E-04 4.686100E-04 4.072995E-06
+BLANK card ending frequency cards
+C $DEPOSIT, KROSEC=0, { Use SPY DEPOSIT to cancel the change at start of subcase
+C Begin 2nd subcase, for overhead line. This is untransposed, with one
+C conductor per phase. This is a single 3-phase circuit with two ground
+C wires. The 3-layer ("Nakagawa") stratified earth model is assumed.
+ 1 0 1 99 1
+ 3 2 4 1
+ 8.74E-3 1.974E-3 6.18E-3 0. 0.4 6.78E-3
+ 3.78E-8 1. 5.36E-8 1.
+ 25. 12.5 0. 25. 12.5 14.
+ 25. 12.5 28. 35. 17.5 3.
+ 35. 17.5 25.
+ 200. 1.E+05 80000.
+ .5 2.5 200. 1000.
+ 1.0 1.0 1.0 10.0 10.0 10.0
+C Resistance [ R ] in [ohm/m] and inductance [ L ] in [henry/m] follows :
+C 3.6631241E-02 3.3899128E-02 3.0530494E-02
+C 1.0974409E-06 2.2856192E-07 1.1843866E-07
+C Conductance [ G ] in [mho/m] and capacitance [ C ] in [farad/m] follows :
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 1.1469370E-11 -1.4910953E-12 -3.6612786E-13
+C Transpose of the current transformation matrix [Ti] follows. This is the inve
+C 0.3508662 0.3422453 0.3508658
+C 0.2195983 2.4146881 0.2195537
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phas
+C 0.9379887 0.9999999 0.4877141
+C -1.4748241 0.0000000 -177.8047791
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 312.2572632 53.8941574 24.6474152
+C -7.9390864 -7.2640944 -6.5128512
+C Modal Propagation Modal impedance Modal
+C Mode attenuation velocity real imaginary susceptance
+C [ db/km ] [ m/sec ] [ ohms / meter ] [mho/meter]
+C 1 1.10051E+00 2.69766E+08 2.544782E-02 3.395038E-01 1.597196E-05
+C 2 9.21221E-02 2.93771E+08 3.050453E-03 3.075625E-01 1.487293E-05
+C 3 1.39649E-02 2.99027E+08 9.903153E-03 3.568964E-01 1.236180E-05
+BLANK card ending frequency cards
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C August, 1994. Prof. Akihiro Ametani has left after 3 weeks of work
+C at BPA to install his new CABLE PARAMETERS program. There are 18
+C standard test cases for this, and these will be split between the
+C ends of DC-27 and DC-28. Begin with the 6 examples for overhead
+C lines: 11A, 11G0, 11G1, 11G3, 11Y2, and 11A' (with prime meaning
+C modification). Then will come 4 pipe-type cable examples.
+C 1st of 6 overhead line examples: CASE11A.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+C KOLW27 KOLS27 E also?
+MATRIX PRECISION 10 1 { Optimally encode old F-field
+C 4 December 2003, optional local KOLWID and KOLSEP of optimal encoding
+C are read from columns 25-40. Variables are local to overlay 27, and are
+C carried in LABL27. The default values (for default use, see DC-28) are
+C KOLW27 = 10 and KOLS27 = 2 (column width of 10 including 2 blanks to
+C separate matrix columns). Here, using KOLS27 = 1 gives one more digit
+C of precision at the expense of blank column separation. Since matrices
+C are visually more appealing with 2 blank separator bytes, the default
+C values will be reset on the following subcase.
+C Ze
+C MATRIX OUTPUTS 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+C 22 December 2003, optional preceding definition of KZFL27(16) is added.
+C This integer vector controls which matrices are to be outputed (to either
+C LUNIT6 or separate disk files, or both), and what coordinates are to be
+C used (e.g., a COMPLEX matrix, a matrix of real parts, a matrix of
+C imaginary parts, a matrix of magnitudes, or a matrix of angles).
+C Index Cols. Symbol Labeling of matrix in the LUNIT6 file
+C ----------------------------------------------------------------------
+C 1 17-20 P Complex potential coefficient
+C 2 21-24 Pt Transposed potential coefficient
+C 3 25-28 Ze Earth impedance ZE, in ohm/m
+C 4 29-32 Zc Conductor internal impedance ZC, in ohm/m
+C 5 33-36 Zs Space impedance ZS, in ohm/m
+C 6 37-40 Presently unused (reserved for later use)
+C 7 41-44 Zt Total impedance [Zc], in ohm/m
+C 8 45-48 Yt Total admittance [Yc], in mho/m
+C 9 49-52 Zph Characteristic impedance matrix [Zc] in phase variables, in [ohm]
+C 10 53-56 Ti The current transformation matrix [Ti] follows. ...
+C 11 57-60 Tv Voltage transformation matrix [Tv]. ...
+C ----------------------------------------------------------------------
+C 12 61-64 Comp Complex matrix, with each cell a complex pair
+C 13 65-68 Real Only the real part of the complex matrix
+C 14 69-72 Imag Only the imaginary part of the complex matrix
+C 15 73-76 Mag Only the magnitudes of the complex elements
+C 16 77-80 Angle Only the angles in degrees of the complex elements
+ 1 0 2 0 1 1 0 0 0 1 0 0
+ 3 0 1 0
+79.9916E-631.7050E-3
+23.7025E-5 1.0
+ 1 0 1 0
+19.6350E-615.7080E-3
+90.5019E-5 1.0
+ 11.35 11.35 -0.65 11.35 11.35 0.00
+ 11.35 11.35 0.65 12.35 12.35 0.00
+ 50. 4.0E06
+C Total impedance [Zc]
+C 3.81674E-01 3.64103E-01 3.63346E-01 3.49908E-01
+C 4.26910E+01 1.82546E+01 1.47757E+01 1.54036E+01
+C
+C Total admittance [Yc]
+C 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 2.18090E-04 -6.35291E-05 -3.38427E-05 -3.80217E-05
+C
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 506.78659 215.40545 173.91332 181.49599
+C -2.25771 -2.15298 -2.14844 -2.06889
+C
+C Modal transformation matrices follow. These are complex, with the real part displayed above the imaginary part.
+C Transpose of the current transformation matrix [Ti] follows. This is the inverse of the voltage transformation matrix.
+C By definition, [Ti] gives the mapping from modal to phase variables: i-phase = [Ti] * i-mode
+C 0.27659 -0.26181 -0.34850 -0.50000
+C 0.00030 0.00062 -0.00015 0.00000
+C
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phase variables: v-phase = [Tv] * v-mode
+C 1.00000 -0.29619 -0.41855 -1.00000
+C 0.00038 0.00155 -0.00035 0.00000
+C
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 5.74605E+00 297.25 3.68397E-01 2.35412E+01 0.00000E+00 3.03655E-04
+C 2 3.60799E-01 299.64 2.43100E-02 2.45439E+01 0.00000E+00 2.86632E-04
+C 3 2.70957E-01 299.68 1.29042E-02 1.73460E+01 0.00000E+00 4.05472E-04
+C 4 2.39123E-01 299.69 9.16390E-03 1.39576E+01 0.00000E+00 5.03865E-04
+BLANK card ending frequency cards within CABLE PARAMETERS
+C 27 December 2003, changes to MAIN27 made it possible to stack subcases
+C within CABLE PARAMETERS. To demonstrate this, the following exit and
+C re-entry (4 non-comment data cards) will be commented out. The answer
+C is unchanged. Although not recommended, such stacking does now work.
+C BLANK card ending CABLE CONSTANTS data subcases
+C BEGIN NEW DATA CASE
+C CABLE CONSTANTS
+C CABLE PARAMETERS
+C KOLW27 KOLS27 E also?
+MATRIX PRECISION 10 2 { Optimally encode old F-field
+C 4 December 2003, optional local KOLWID and KOLSEP of optimal encoding
+C are read from columns 25-40. Values 10 and 2 above serve to restore the
+C default values. These replace values 10 and 1 of the preceding subcase.
+ 1 0 2 0 1 0 0 0 0 0 0 0
+ 3 0 1 0
+ 5.046E-3 0.0
+ 1.896E-8 1.0
+ 1 0 1 0
+ 2.50E-3 0.0
+ 1.777E-8 1.0
+ 11.35 11.35 -0.65 11.35 11.35 0.00
+ 11.35 11.35 0.65 12.35 12.35 0.00
+ 50. 4.0E06
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 5.74605E+00 297.25 3.68397E-01 2.35412E+01 0.00000E+00 3.03655E-04
+C 2 3.60799E-01 299.64 2.43100E-02 2.45439E+01 0.00000E+00 2.86632E-04
+C 3 2.70957E-01 299.68 1.29042E-02 1.73460E+01 0.00000E+00 4.05472E-04
+C 4 2.39123E-01 299.69 9.16391E-03 1.39576E+01 0.00000E+00 5.03865E-04
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 3rd of 6 overhead line examples: CASE11G1.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+ 1 0 2 0 1 0 0 0 1 0 0 0
+ 3 0 1 0
+ 5.046E-3 0.0
+ 1.896E-8 1.0
+ 1 0 1 0
+ 2.50E-3 0.0
+ 1.777E-8 1.0
+ 11.35 11.35 -0.65 11.35 11.35 0.00
+ 11.35 11.35 0.65 12.35 12.35 0.00
+ 50. 4.0E06
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 3.17679E+00 298.37 1.79566E-01 2.06778E+01 0.00000E+00 3.43133E-04
+C 2 2.70975E-01 299.68 1.30187E-02 1.74987E+01 0.00000E+00 4.01933E-04
+C 3 2.39123E-01 299.69 9.16391E-03 1.39576E+01 0.00000E+00 5.03865E-04
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 4th of 6 overhead line examples: CASE11G3.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+ 1 0 2 0 1 0 0 0 3 0 0 0
+ 3 0 1 0
+ 5.046E-3 0.0
+ 1.896E-8 1.0
+ 1 0 1 0
+ 2.50E-3 0.0
+ 1.777E-8 1.0
+ 11.35 11.35 -0.65 11.35 11.35 0.00
+ 11.35 11.35 0.65 12.35 12.35 0.00
+ 50. 4.0E06
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M) CHARACT. IMP. (OHM) CHARACT. ADMIT. (S)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG. REAL IMAG. REAL IMAG.
+C 1 8.29798E-01 299.42 7.35361E-02 3.23051E+01 0.00000E+00 2.18090E-04 384.874 -0.438 2.59825E-03 2.95720E-06
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 5th of 6 overhead line examples: CASE11Y2.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+ 1 0 2 0 1 0 0 0 0 0 2 0
+ 3 0 1 0
+ 5.046E-3 0.0
+ 1.896E-8 1.0
+ 1.E-15 0.0 1.E-15 0.0 1.E-15 0.0
+ 1 0 1 0
+ 2.50E-3 0.0
+ 1.777E-8 1.0
+ 8.333E-4 0.0
+ 11.35 11.35 -0.65 11.35 11.35 0.00
+ 11.35 11.35 0.65 12.35 12.35 0.00
+ 50. 4.0E06
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 1.11101E+03 165.22 3.71110E-01 4.66305E+01 8.33317E-04 1.52015E-04
+C 2 3.17749E+00 298.37 1.79366E-01 2.06500E+01 0.00000E+00 3.43588E-04
+C 3 2.70975E-01 299.68 1.30187E-02 1.74987E+01 0.00000E+00 4.01933E-04
+C 4 2.39123E-01 299.69 9.16391E-03 1.39576E+01 0.00000E+00 5.03865E-04
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 6th of 6 overhead line examples: CASE11A'.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+ 1 0 1 0 1 0 0 0 0 1 0 0
+ 3 1 1 1
+79.9916E-631.7050E-30.0000E+0019.6350E-615.7080E-3 0.0
+23.7025E-5 1.090.5019E-5 1.
+ 11.35 11.35 -0.65 11.35 11.35 0.00
+ 11.35 11.35 0.65 12.35 12.35 0.00
+ 50. 4.0E06
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 3.17679E+00 298.37 1.79566E-01 2.06778E+01 0.00000E+00 3.43134E-04
+C 2 2.70975E-01 299.68 1.30186E-02 1.74987E+01 0.00000E+00 4.01933E-04
+C 3 2.39123E-01 299.69 9.16390E-03 1.39576E+01 0.00000E+00 5.03865E-04
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 1st of 4 pipe-type cable examples: CASE3G0.DAT
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+CABLE CONSTANTS
+CABLE PARAMETERS
+C Beginning 28 September 2002, users are allowed to monitor convergence of
+C Prof. Ametani's eigenvalue calculation. For high order, this will be seen
+C automatically. This is important because computation may be slow. But how
+C large is large? MONMIN is the variable, and the user has control via a
+C new optional declaration that must (if present) precede miscellaneous data.
+C In the following, MAXITR = maximum number of iterations for an eigenvalue;
+C MONMIN = minimum order for the new eigenvalue printout;
+C ITROUT = frequency of printout within eigenval iteration;
+C EPSLNA = convergence tolerance for eigenvalue iteration.
+C This data subcase is of order 10, so is big enough for meaningful printout.
+C Default values are: 100 50 1 1.E-8
+C MAXITR MONMIN ITROUT EPSLNA
+EIGEN CONTROLS 85 5 1 1.E-8
+C 3 -1 3 0 0 0 0 1 0 0 0 0
+ 3 -1 3 0 1 0 0 1 0 0 0 0
+ 1.850 1.860 1.870 1.00E-7 1.0 1. 1.
+1.17183738-29.9354891.18391480-38.1912031.32171262-33.629952
+ 3 3 3
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 20.0 0.0
+ 33. 500.0E03
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 2nd of 4 pipe-type cable examples: CASE3G1.DAT
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+CABLE CONSTANTS
+CABLE PARAMETERS
+C MAXITR MONMIN ITROUT EPSLNA
+EIGEN CONTROLS -85 -5 -1 -1.E-8
+C Default values are: 100 50 1 1.E-8
+C 17 January 2004, the preceding is added to illustrate rejection of any bad
+C value. Here, a minus sign has been added to each parameter. Each will be
+C rejected, and this means no change. So, MAXITR will remain at value 85,
+C MONMIN will remain at value 5 (compare with default values of 100 and 50,
+C respectively).
+C 3 -1 3 0 0 0 0 1 1 0 0 0
+ 3 -1 3 0 1 0 0 1 1 0 0 0
+ 1.850 1.860 1.870 1.00E-7 1.0 1. 1.
+1.17183738-29.9354891.18391480-38.1912031.32171262-33.629952
+ 3 3 3
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 20.0 0.0
+ 33. 500.0E03
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 3rd of 4 pipe-type cable examples: CASE3G4.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+C KOLW27 KOLS27 E also?
+MATRIX PRECISION 10 2 BOTH { Optimally encode both E & F
+C About preceding 2 lines, which were added 6 December 2003: KOLW27 and KOLS27
+C are unchanged. But added BOTH in 45-48 is the request to have the real part
+C optimally encoded rather than ordinary E-field encoded. I.e., treat the real
+C part the same as the imaginary part of the matrix for printed output.
+C 3 -1 3 0 0 0 0 1 4 0 0 0
+ 3 -1 3 0 1 1 0 1 4 0 0 0
+ 1.850 1.860 1.870 1.00E-7 1.0 1. 1.
+1.17183738-29.9354891.18391480-38.1912031.32171262-33.629952
+ 3 3 3
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 20.0 0.0
+ 33. 500.0E03
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 33.72483 0.00000 0.00000 4.62992 0.00000 0.00000
+C -0.11456 -0.00001 -0.00001 -0.06850 -0.00001 -0.00001
+C
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 2.18897E-01 197.36 1.46645E-03 4.63124E-01 0.00000E+00 5.47097E-04
+C 2 2.18897E-01 197.36 1.46645E-03 4.63124E-01 0.00000E+00 5.47097E-04
+C 3 2.18897E-01 197.36 1.46645E-03 4.63124E-01 0.00000E+00 5.47097E-04
+C 4 1.36719E+00 295.29 1.45751E-03 4.92463E-02 0.00000E+00 2.29785E-03
+C 5 1.36719E+00 295.29 1.45751E-03 4.92463E-02 0.00000E+00 2.29785E-03
+C 6 1.36719E+00 295.29 1.45751E-03 4.92463E-02 0.00000E+00 2.29785E-03
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 4th of 4 pipe-type cable examples: CASE3NP0.DAT
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+CABLE CONSTANTS
+CABLE PARAMETERS
+C KOLW27 KOLS27 E also?
+MATRIX PRECISION 8 1 BOTH { Optimally encode both E & F
+C About preceding 2 lines, which were added 8 December 2003. This is the same
+C as the preceding subcase, but with the width minimized as an illustration.
+C There is no need; this is just an illustration.
+C 3 0 3 0 0 0 0 0 0 0 0 0
+ 3 0 3 0 1 0 0 0 0 0 0 0
+ 1.850 1.00E-7 1.0 1. 1.
+1.17183738-29.9354891.18391480-38.1912031.32171262-33.629952
+ 3 3 3
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 33. 500.0E03
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C Use preceding data of the 1st of 6 overhead line examples ( CASE11A.DAT )
+C to illustrate fitting associated with new frequency-dependence of Taku Noda
+C 1st of 2 NODA SETUP examples that are being added 6 October 1994
+C NODA SETUP, 1, { Request Taku Noda's ARMA model fitter. 1 ==> F-scan printout
+NODA SETUP { Request Taku Noda's ARMA model fitter. No printout of F-scan
+ { Output file name (blank requests use of default TAKUNODA.CCC)
+2nd of 2 such lines (any number are allowed).
+NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
+CABLE CONSTANTS
+CABLE PARAMETERS
+C KOLW27 KOLS27 E also?
+MATRIX PRECISION 10 2 BOTH { Optimally encode both E & F
+C The preceding 2 lines were added 8 December 2003. They cancel the narrow
+C columns of the preceding subcase. This is a return to default values.
+ 1 0 2 0 1 0 0 0 0 1 0 0
+ 3 0 1 0
+79.9916E-631.7050E-3
+23.7025E-5 1.0
+ 1 0 1 0
+19.6350E-615.7080E-3
+90.5019E-5 1.0
+ 11.35 11.35 -0.65 11.35 11.35 0.00
+ 11.35 11.35 0.65 12.35 12.35 0.00
+ 50. 10. 5 10 600.
+ 50. 1.E8 600.
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 2nd of 2 NODA SETUP examples that are being added 6 October 1994
+C The preceding was for an overhead line. This is for a single-phase
+C cable (core and sheath). Cable data came from CESI (see DCNEW-6).
+NODA SETUP { Request Taku Noda's fitter, for which data follows
+ { Output file name (blank requests use of default TAKUNODA.CCC)
+2nd of 2
+NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
+CABLE CONSTANTS
+CABLE PARAMETERS { Transfer to new (August, 1994) cable constants code
+C MISCELLANEOUS DATA CARD
+ 2 -1 1 0 1 0 0 0
+C CARDS INDICATING NUMBER OF CONDUCTORS PER SC COAXIAL CABLE
+ 2
+C GEOMETRICAL AND PHYSICAL DATA CARDS
+ .0206 .02865 .06395 .0689 .0775
+ 1.775E-8 1. 1. 3.5 9.1E-8 1. 1. 2.25
+C CROSS-SECTION LOCATION CARD
+ 1.05 0.
+C EARTH RESISTIVITY AND FREQUENCY CARDS
+ 300. 10. 5 10 600.
+ 300. 1.E8 600.
+BLANK card ending frequency cards of imbedded "LINE PARAMETERS" data case
+BLANK card ending "CABLE PARAMETERS" data cases
+BLANK card ending "CABLE CONSTANTS" data cases
+BEGIN NEW DATA CASE
+C Final subcase is same as 1st subcase of CABLE PARAMETERS except that
+C it illustrates omission of preceding CABLE CONSTANTS and following
+C blank to terminate that otherwise-unused routine. See October, 1997,
+C newsletter story explaining this improvement. WSM, 13 August 1997
+CABLE PARAMETERS { Note there is no preceding CABLE CONSTANTS request
+ 1 0 2 0 1 0 0 0 0 1 0 0
+ 3 0 1 0
+79.9916E-631.7050E-3
+23.7025E-5 1.0
+ 1 0 1 0
+19.6350E-615.7080E-3
+90.5019E-5 1.0
+ 11.35 11.35 -0.65 11.35 11.35 0.00
+ 11.35 11.35 0.65 12.35 12.35 0.00
+ 50. 4.0E06
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending "CABLE PARAMETERS" data cases
+BEGIN NEW DATA CASE
+C This is an example of a system which is a combination of an
+C overhead line and an underground line.
+C In October, 1998, Prof. Aki Ametani provided this data case as an
+C illustration for the calculation of the mutual earth-return
+C impedance of a system which is a combination of overhead and
+C underground conductors (lines or cables). A paper, co-authored
+C by Prof. Ametani, S. Yamaguchi, and N. Nagaoka, titled "Mutual
+C Impedance between Overhead and Underground Cables" is to be
+C presented at the 1998 EEUG meeting on November 9-10
+C
+CABLE CONSTANTS
+CABLE PARAMETERS
+ 1 0 1 0 1 0 0 0 0 0 0 0
+C ITY ISYS NPC IEAR KMOD
+ 2 0 1 0
+C NP NG KBP KBG
+ .4300E-01 0.00 0.0 0.0 0.0 0.0
+C ROUTp RINp ROUTg RINg SEPp SEPg
+ .1690E-07 1.0
+C RHOp MUp RHOg MUg
+ 1.00 1.00 0.00 -0.1 -0.1 0.0
+C VTOWER1 VMID1 HORIZ1 VTOWER2 VMID2 HORIZ2
+ 100. 10.000 8 1
+C RHO FREQ IDEC IPNT
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending "CABLE PARAMETERS" data cases
+BLANK card ending "CABLE CONSTANTS" data cases
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc28.dat b/benchmarks/dc28.dat
new file mode 100644
index 0000000..c304d5d
--- /dev/null
+++ b/benchmarks/dc28.dat
@@ -0,0 +1,511 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-28
+C "CABLE CONSTANTS" illustration begins with a finite, overhead pipe that
+C encloses a 3-phase cable system. Each phase consists of a core only.
+C For nodes of punched cards, the cable stretches from end "1" to end "2".
+C The cable length (872 meters) is used only for this special output.
+C 1st of 4 subcases.
+CABLE CONSTANTS
+$ERASE { Empty punch buffer as precautionary measure (maybe preceding case)
+BRANCH CORA1 CORA2 CORB1 CORB2 CORC1 CORC2 PIPE1 PIPE2
+ 3 1 3 1 1 1 1
+ 0.381 0.401 0.421 2.E-7 300. 1. 3.
+ 0.19393 0. 0.19393 120. 0.19393 240.
+ 1 1 1
+ 25.4E-3
+ 6.8912E-8 1.
+ 25.4E-3
+ 6.8912E-8 1.
+ 25.4E-3
+ 6.8912E-8 1.
+ 1.0 0.0
+ 20.0 10. 872. { Cable length = 872 meters
+C Impedance matrix [ Z ] in [ohm/m] follows :
+C 8.5303094E-05 4.9395039E-05 4.9395039E-05 2.9513780E-05
+C 1.7535768E-04 1.3713248E-04 1.3713248E-04 1.1639059E-04
+C Admittance matrix [ Y ] in [mho/m] follows :
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 1.4843948E-09 -1.4823084E-10 -1.4823084E-10 -1.1879330E-09
+C Voltage transformation matrices follow. These are complex, with the mag
+C 0.0034957 0.0034958 0.0034959 1.0099676
+C -162.8209534 -162.8215332 -162.8218384 0.1735267
+C Transformation [A], from modal to phase variables:
+C 0.9937597 0.9999998 0.4999998 1.0000000
+C -0.1112594 0.0000057 -179.9999847 0.0000000
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 447.5839844 280.9452515 280.9451599 230.7716522
+C -115.0411224 -49.0479126 -49.0479584 -28.8765430
+C Modal Propagation Modal impedance Modal
+C Mode attenuation velocity real imaginary susceptance
+C [ db/km ] [ m/sec ] [ ohms / meter ] [mho/meter]
+C 1 5.49837E-04 1.22476E+08 2.925856E-05 1.167339E-04 2.220200E-09
+C 2 1.29433E-03 1.66288E+08 3.202234E-05 3.470583E-05 3.493539E-09
+C 3 9.35837E-04 2.30950E+08 2.393871E-05 2.548347E-05 2.448938E-09
+C 4 9.35837E-04 2.30950E+08 1.795402E-05 1.911261E-05 3.265251E-09
+$PUNCH, dc28a.pch ! { Exclamation holds lower case
+BLANK card ending frequency cards
+C $VINTAGE, 1
+C -1CORA1 CORA2 2.92540E-05 2.29300E+02 1.22476E+08-8.72000E+02 1 4
+C -2CORB1 CORB2 3.22334E-05 9.93885E+01 1.66288E+08-8.72000E+02 1 4
+C -3CORC1 CORC2 2.39387E-05 1.02010E+02 2.30950E+08-8.72000E+02 1 4
+C -4PIPE1 PIPE2 1.79540E-05 7.65071E+01 2.30950E+08-8.72000E+02 1 4
+C $VINTAGE, 0
+C -0.00334000 -0.00333993 -0.00334000 1.00996333
+C -0.00103249 -0.00103249 -0.00103246 0.00307810
+C 0.33665633 0.33665612 0.33665576 -1.00366375
+C -0.00000644 -0.00000645 -0.00000664 0.00196862
+C -0.33333370 -0.33333334 0.66666698 0.00000001
+C -0.00000003 -0.00000004 -0.00000004 0.00000023
+C -0.50000012 0.50000012 -0.00000004 0.00000016
+C -0.00000005 -0.00000005 0.00000001 0.00000022
+C 2nd fourth of test involves a submarine cable donated by BC Hydro. It is
+C modeled as a single-phase, 3-conductor cable. There is a core, a sheath,
+C and armor, with the armor grounded.
+ 2 -1 1 1 1 1 2
+ 3
+ 0.01 0.02525 0.0518 0.055553 0.0675 0.0735
+ 1.78E-8 1.0 1.0 3.5 2.8E-7 1.0 1.0 3.5
+ 7.54E-8 1.0
+ 0.2 0.0
+ 0.21 10.0000 5 1
+C From final calculation of logarithmic looping, 1.00000000E+06 Hertz. :
+C Impedance matrix [ Z ] in [ohm/m] follows :
+C 9.1996193E-03 4.3044090E-03
+C 1.1569544E+00 2.4907887E-01
+C Admittance matrix [ Y ] in [mho/m] follows :
+C 0.0000000E+00 0.0000000E+00
+C 1.7025936E-03 -1.7025938E-03
+C Voltage transformation matrices follow. These are complex, with the magnitud
+C Transformation [AI], from phase to modal variables:
+C 0.0000011 1.0000008
+C -135.8211517 0.0000440
+C Transformation [A], from modal to phase variables:
+C 0.9999925 1.0000000
+C -0.0004397 0.0000000
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 29.3894901 6.2976413
+C -0.1167270 -0.0544422
+C ..... Modal Characteristic impedance Characteristic admittance
+C ..... susceptance real imaginary real imaginary
+C ..... [mho/meter] SQRT ( z / y ) in [ohm] SQRT ( y / z ) in [mho]
+C ..... 6.280722E-03 6.297670E+00 -5.441193E-02 1.587770E-01 1.371835E-03
+C ..... 1.702591E-03 2.309191E+01 -6.221918E-02 4.330489E-02 1.166813E-04
+BLANK card ending frequency cards
+C 3rd of 4 subcases generates PI-circuit modeling of a crossbonded cable
+C having one major section. Armor is solidly grounded, and sheaths are
+C cross-bonded. TEPCO OF275KV SC CABLE. MAY 17, 1985
+$ERASE { Empty punch buffer as precautionary measure (maybe preceding case)
+C BRANCH CORA1 CORA2 CORB1 CORB2 CORC1 CORC2 SHEA1 SHEA2 SHEB1 SHEB2 SHEC1 SHEC2
+C Ashok Parsotam of Vector Limited in Auckland, New Zealand, inspired a rule
+C change for BRANCH data that eliminates the former need for name packing.
+C 26 December 2008, WSM replaces preceding packed card by the new equivalent
+C form which ignores imbedded blank name pairs. This improves readability &
+C makes easier any later addition or subtraction of conductors. In order to
+C handle the rare case where both ends of a conductor are grounded, replace
+C the former 12 blank bytes by "TERRA TERRA " (upon recognition, this will
+C be replaced by the two desired blank names). Another special case is that
+C where a name pair has not been defined. Most commonly this will be due to
+C a user who supplies no BRANCH declaration at all. But in the more general
+C case, the user may simply not have supplied enough non-blank name pairs to
+C cover all phases. In either case, any unnamed phase will be labeled using
+C the 2A6 default name pair "NoNameNoName".
+BRANCH CORA1 CORA2 CORB1 CORB2 CORC1 CORC2 { All cores are numbered first, note
+BRANCH SHEA1 SHEA2 SHEB1 SHEB2 SHEC1 SHEC2 { Next in the numbering: all sheaths
+PUNCH { Request for punched output of PI-circuits that are to be determined
+ 2 -1 3 0 1 1 1 2
+ -1 1 0 1.E3 1.E-1A
+ 3 3 3
+ 0.0132 0.0249 0.0542 0.057 0.063 0.066 0.072
+ 1.89E-8 1.0 1.0 2.30 3.00E-8 1.0 1.0 3.50
+ 3.E-8 1.0 1.0 3.50
+ 0.0132 0.0249 0.0542 0.057 0.063 0.066 0.072
+ 1.89E-8 1.0 1.0 2.30 3.00E-8 1.0 1.0 3.50
+ 3.E-8 1.0 1.0 3.50
+ 0.0132 0.0249 0.0542 0.057 0.063 0.066 0.072
+ 1.89E-8 1.0 1.0 2.30 3.00E-8 1.0 1.0 3.50
+ 3.E-8 1.0 1.0 3.50
+ 2. 0. 1.8095 0.11 2. .22
+ 1.E2 1.E3
+$PUNCH { Actual punching of card images that by now must be in punch buffer
+C $VINTAGE, 1
+C AIN 4 1.0000000E-01
+C 1AIN 1A 11 1 3.2000030E-02 6.5728021E-02 5.4835246E-02
+C 2AIN 2A 11 2 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 3.1999972E-02 6.5727922E-02 5.4835246E-02
+C 3AIN 3A 11 3 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 3.1999991E-02 6.5727972E-02 5.4835246E-02
+C 4AIN 4A 11 4 1.1000064E-02 9.2998579E-03 -5.4835252E-02
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 2.0414416E-02 8.7684233E-03 7.0333978E-01
+C 5AIN 4A 11 5 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 1.1000006E-02 9.2997591E-03 -5.4835252E-02
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 2.0414358E-02 8.7683245E-03 7.0333978E-01
+C 6AIN 4A 11 6 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 1.1000026E-02 9.2998085E-03 -5.4835252E-02
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 2.0414377E-02 8.7683739E-03 7.0333978E-01
+C 1A 11 1A 12 1AIN 1A 11 1
+C 2A 11 2A 12 2
+C 3A 11 3A 12 3
+C 4A 11 6A 12 4
+C 5A 11 4A 12 5
+C 6A 11 5A 12 6
+C 1A 12 1AOUT 1AIN 1A 11 1
+C 2A 12 2AOUT 2
+C 3A 12 3AOUT 3
+C 4A 12 6AOUT 4
+C 5A 12 4AOUT 4
+C 6A 12 5AOUT 4
+C AOUT 4 AIN 4
+C $VINTAGE, 0
+BLANK CARD ENDING FREQUENCY CARDS
+C 4th of 4 subcases. A three phase cable enclosed in a pipe with infinite
+C thickness. This case was brought to us by Prof. Aki Ametani in September
+C of 1993. Warning! Prof. Ametani spent 3 weeks at BPA during the summer
+C of 1994, and warned that this solution is wrong. The same data can be
+C found in 4th of 4 pipe-type illustrations of CABLE PARAMETERS that have
+C been appended to DC-27. Note the number of phases below is 8 whereas the
+C correct number is 9 (each of 3 phases has 3 conductors; the pipe does not
+C contribute because it is infinitely thick). THL, 17 Aug 1994.
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+BRANCH CORA1 CORA2 CORB1 CORB2 CORC1 CORC2 SHEA1 SHEA2 SHEB1 SHEB2 SHEC1 SHEC2
+BRANCH ARMA1 ARMA2 ARMB1 ARMB2 ARMC1 ARMC2
+ 3 -1 3 0 1 1 1 0 1
+ 1.850 1.860 1.870 33.0 1.0 1. 1.
+1.17183738-29.9354891.18391480-38.1912031.32171262-33.629952
+ 3 3 3
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 11.0E-3 30.60E-3 63.80E-3 65.80E-3 71.00E-3 71.80E-3 76.80E-3
+ 1.8365E-8 1.0 1.0 2.3 1.8365E-8 1.0 1.0 1.
+ 10.00E-8 1.0 1.0 8.0
+ 33.0 100.0E03
+$PUNCH
+BLANK card ending frequency cards
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C August, 1994. Prof. Akihiro Ametani has left after 3 weeks of work
+C at BPA to install his new CABLE PARAMETERS program. There are 18
+C standard test cases for this, and these will be split between the
+C ends of DC-27 and DC-28. See DC-27 for the 6 files CASE1*.DAT
+C for overhead lines (11A, 11G0, 11G1, 11G3, 11Y2, and 11A') and the
+C 4 files CASE3#.DAT for pipe-type cables (3G0, 3G1, 3G4, and 3NP0).
+C Those totaled 10 of 18. Here we add the remaining 8, CASE2*.DAT :
+C 1st of 8 examples of cables without pipe: CASE21G0.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+C KOLW27 KOLS27
+MATRIX PRECISION 0 0 { Optimally encode old F-field values
+C 4 December 2003, optional local KOLWID and KOLSEP of optimal encoding
+C are read from columns 25-40. Variables are local to overlay 27, and are
+C carried in LABL27. The default values (for default use, see DC-28) are
+C KOLW27 = 10 and KOLS27 = 2 (column width of 10 including 2 blanks to
+C separate matrix columns). Normally, if this is what the user wants, he
+C would have no MATRIX PRECISION request. But we can produce the same
+C effect by specifying illegal values (0 and 0). Both integers must be
+C positive, so the zero values shown above will be rejected and data card
+C interpretation should confirm default values KOLW27 = 10 & KOLSEP = 2.
+C MATRIX OUTPUTS 1
+ 2 -1 3 0 1 0 0 0 0 0 0 0
+ 2 2 2
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 2.500 0.0 2.730 0.0 2.960 0.0
+ 100. 50.E03
+C Total impedance [Zc]
+C 4.63767E-02 4.55563E-02 4.55049E-02 4.57808E-02 4.55563E-02 4.55049E-02
+C 4.74692E-01 3.12743E-01 2.69461E-01 4.07294E-01 3.12743E-01 2.69461E-01
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 1.27756E+01 14.46 4.84121E-02 3.55829E-01 0.00000E+00 1.31982E-03
+C 2 6.55379E-02 39.08 1.29966E-04 6.92398E-02 0.00000E+00 9.33476E-04
+C 3 8.29132E-02 51.43 1.61257E-04 5.15928E-02 0.00000E+00 7.23141E-04
+C 4 7.73951E-02 153.52 5.86972E-04 6.73995E-02 0.00000E+00 6.21266E-05
+C 5 7.73951E-02 153.52 5.86971E-04 6.73994E-02 0.00000E+00 6.21267E-05
+C 6 7.73951E-02 153.52 5.86971E-04 6.73994E-02 0.00000E+00 6.21267E-05
+BLANK card ending frequency cards
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C 2nd of 8 examples of cables without pipe: CASE21G3.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+C 2 -1 3 0 0 0 0 0 3 0 0 0
+ 2 -1 3 0 1 0 0 0 3 0 0 0
+ 2 2 2
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 2.500 0.0 2.730 0.0 2.960 0.0
+ 100. 50.E03
+C Total admittance [Yc]
+C 0.00000E+00 0.00000E+00 0.00000E+00
+C 6.21268E-05 0.00000E+00 0.00000E+00
+C .... ADMITTANCE (S/M) CHARACT. IMP. (OHM) CHARACT. ADMIT. (S)
+C .... REAL IMAG. REAL IMAG. REAL IMAG.
+C .... 0.00000E+00 6.21268E-05 32.938 -0.143 3.03598E-02 1.32197E-04
+C .... 0.00000E+00 6.21268E-05 32.938 -0.143 3.03598E-02 1.32197E-04
+C .... 0.00000E+00 6.21268E-05 32.938 -0.143 3.03598E-02 1.32197E-04
+BLANK card ending frequency cards
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C 3rd of 8 examples of cables without pipe: CASE21S1.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+C 2 -1 3 0 0 0 0 -99 0 0 0 0
+ 2 -1 3 0 1 0 0 -99 0 0 0 0
+ 2 2 2
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 2.500 0.0 2.730 0.0 2.960 0.0
+ 100. 50.E03
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 58.63021 10.39525 10.39524 25.69268 10.39520 10.39519
+C -1.20548 -1.04447 -1.04448 -1.06129 -1.04478 -1.04480
+C
+C .... ADMITTANCE (S/M) CHARACT. IMP. (OHM) CHARACT. ADMIT. (S)
+C .... REAL IMAG. REAL IMAG. REAL IMAG.
+C .... 0.00000E+00 1.40154E-03 15.494 -1.050 6.42445E-02 4.35431E-03
+C .... 0.00000E+00 7.00772E-04 10.198 -0.010 9.80544E-02 9.95546E-05
+C .... 0.00000E+00 9.34367E-04 7.649 -0.008 1.30740E-01 1.32736E-04
+C .... 0.00000E+00 6.21267E-05 32.938 -0.143 3.03598E-02 1.32197E-04
+C .... 0.00000e+00 6.21267E-05 32.938 -0.143 3.03598E-02 1.32197E-04
+C .... 0.00000E+00 6.21267E-05 32.938 -0.143 3.03598E-02 1.32197E-04
+BLANK card ending frequency cards
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C 4th of 8 examples of cables without pipe: CASE21S2.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+C KOLW27 KOLS27 Only F?
+MATRIX PRECISION 10 2 BOTH { Optimally encode both E and F
+C About preceding 2 lines, which were added 7 December 2003: KOLW27 and KOLS27
+C are default values. BOTH in 45-48 is the request to have optimal encoding
+C replace both alternative formats (ordinary E-field matrices as well as
+C F-field matrices). Matrices have order 12, so without this treatment,
+C E-field matrices would require multiple rows (first 10 columns, then 2
+C columns). Using BOTH, these multiple lines are avoided. 12 columns of
+C 10 bytes each easily fit within the 131-byte limit. In fact, there is
+C room for labeling on the right.
+C 2 -1 6 0 0 0 0 -99 0 0 0 0
+ 2 -1 6 0 1 0 0 -99 0 0 0 0
+ 2 2 2 2 2 2
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 2.500 0.0 2.730 0.0 2.960 0.0 2.50 1.0
+ 2.730 1.0 2.960 1.0
+ 100. 50.E03
+C Modal transformation matrices follow. These are complex, with the real part displayed above the imaginary part.
+C Transpose of the current transformation matrix [Ti] follows. This is the inverse of the voltage transformation matrix.
+C By definition, [Ti] gives the mapping from modal to phase variables: i-phase = [Ti] * i-mode
+C 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 1.00000 0.00000
+C 0.00000 0.00000 0.00000 -0.00001 0.00000 0.00000 0.00000 0.00000
+C .... 0.00000 0.00000 0.00000 0.00000
+C .... 0.00000 0.00000 0.00000 0.00000
+C
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M) CHARACT. IMP. (OHM) CHARACT. ADMIT. (S)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG. REAL IMAG. REAL IMAG.
+C 1 1.98193E+01 11.24 4.54985E-02 2.76775E-01 0.00000E+00 2.80308E-03
+C 2 1.07741E-01 24.61 1.13061E-04 5.81815E-02 0.00000E+00 2.80120E-03
+C 3 6.30266E-02 43.96 1.48041E-04 7.29050E-02 0.00000E+00 7.00585E-04
+C 4 6.30266E-02 43.96 1.48002E-04 7.28856E-02 0.00000E+00 7.00772E-04
+C 5 6.30266E-02 43.96 1.11090E-04 5.47081E-02 0.00000E+00 9.33614E-04
+C 6 6.30266E-02 43.96 1.11001E-04 5.46642E-02 0.00000E+00 9.34363E-04
+C 7 7.73951E-02 153.52 5.86971E-04 6.73994E-02 0.00000E+00 6.21267E-05
+C 8 7.73951E-02 153.52 5.86971E-04 6.73994E-02 0.00000E+00 6.21267E-05
+C 9 7.73951E-02 153.52 5.86971E-04 6.73994E-02 0.00000E+00 6.21267E-05
+C 10 7.73951E-02 153.52 5.86971E-04 6.73994E-02 0.00000E+00 6.21267E-05
+C 11 7.73951E-02 153.52 5.86971E-04 6.73994E-02 0.00000E+00 6.21267E-05
+C 12 7.73950E-02 153.52 5.86971E-04 6.73994E-02 0.00000E+00 6.21267E-05
+BLANK card ending frequency cards
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C 5th of 8 examples of cables without pipe: CASE22Y0.DAT
+CABLE CONSTANTS
+BRANCH CORA1 CORA2 SHEA1 SHEA2
+CABLE PARAMETERS
+C KOLW27 KOLS27 Only F?
+MATRIX PRECISION 10 2
+C The preceding 2 lines, added 7 Dec. 2003, restore the default choice. Note
+C that there is no optional BOTH in columns 45-48 (see preceding subcase).
+C 2 1 1 0 0 0 0 0 0 0 0 2 IPUNCH gone
+C 2 1 1 0 0 0 0 0 0 0 0
+ 2 1 1 0 1 0 0 0 0 0 0
+C 1 2.00 A
+ 2
+ 0.8E-2 1.00E-2 2.70E-2 3.00E-2 3.10E-2
+ 3.000E-8 1.0 1.0 1.063 3.000E-8 1.0 1.0 1.1
+ 0.9 0.0
+ 1.E-8 10.E06 1000. 2
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phase variables: v-phase = [Tv] * v-mode
+C 1.00000 1.00000
+C 0.00000 0.00000
+C 0.00000 1.00000
+C 0.00000 0.00000
+C
+C ADMITTANCE (S/M) CHARACT. IMP. (OHM) CHARACT. ADMIT. (S)
+C REAL IMAG. REAL IMAG. REAL IMAG.
+C .... 0.00000E+00 3.74095E-03 57.817 -0.055 1.72959E-02 1.64284E-05
+C .... 0.00000E+00 8.54359E-04 245.415 -0.014 4.07472E-03 2.33098E-07
+BLANK card ending frequency cards
+$PUNCH, case22y0.pch ! { Of the 18 examples, this is 1st of 2 that punch
+C $VINTAGE, 1
+C -1CORA1 CORA2 2.37561E-02 5.78171E+01 2.90497E+08-1.00000E+03 1 2
+C -2SHEA1 SHEA2 5.88727E-03 2.45415E+02 2.99666E+08-1.00000E+03 1 2
+C $VINTAGE, 0
+C 1.00000000 0.00000000
+C 0.00000000 0.00000000
+C -1.00000000 1.00000000
+C 0.00000000 0.00000000
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C 6th of 8 examples of cables without pipe: CASE22Y1.DAT
+CABLE CONSTANTS
+BRANCH CORA1 CORA2 SHEA1 SHEA2
+CABLE PARAMETERS
+C 2 1 1 0 0 1 0 0 0 0 1 2
+C 2 1 1 0 0 1 0 0 0 0 1
+ 2 1 1 0 1 1 0 0 0 0 1
+C 1 2.00 A
+ 2
+ 0.8E-2 1.00E-2 2.70E-2 3.00E-2 3.10E-2
+ 3.000E-8 1.0 1.0 1.063 3.000E-8 1.0 1.0 1.1
+ 0.0 1.0E-15 0.0 0.055E-9
+ 0.9 0.0
+ 1.E-8 10.E06 1000. 2
+C EARTH IMPEDANCE ZE
+C 1.11110E-04 1.11110E-04
+C 1.11111E-04 1.11111E-04
+C
+C CONDUCTOR INTERNAL IMPEDANCE ZC
+C 2.95323E-02 5.77615E-03
+C 1.29231E+01 4.17823E-01
+C
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 2.34005E-01 133.42 5.88727E-03 5.14569E+01 0.00000E+00 4.31011E-03
+C 2 1.78448E+00 290.49 2.37561E-02 1.25053E+01 0.00000E+00 3.74102E-03
+BLANK card ending frequency cards
+$PUNCH, case22y1.pch ! { Of the 18 examples, this is 2nd of 2 that punch
+C $VINTAGE, 1
+C -1CORA1 CORA2 5.88727E-03 1.09264E+02 1.33418E+08-1.00000E+03 1 2
+C -2SHEA1 SHEA2 2.37561E-02 5.78166E+01 2.90494E+08-1.00000E+03 1 2
+C $VINTAGE, 0
+C 0.00000000 1.00000000
+C 0.00000000 0.00000000
+C 1.00000000 -1.00000000
+C 0.00000000 0.00000000
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C 7th of 8 examples of cables without pipe: CASE22Y2.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+C 2 1 1 0 0 0 0 0 0 0 2 0
+ 2 1 1 0 1 0 0 0 0 0 2 0
+ 2
+ 0.8E-2 1.00E-2 2.70E-2 3.00E-2 3.10E-2
+ 3.000E-8 1.0 1.0 1.063 3.000E-8 1.0 1.0 1.1
+ 0.1E-14 0. 5.E-5 0.
+ 0.9 0.0
+ 1.E-8 10.E06 1000. 1
+C ADMITTANCE (S/M) CHARACT. IMP. (OHM) CHARACT. ADMIT. (S)
+C REAL IMAG. REAL IMAG. REAL IMAG.
+C .... 0.00000E+00 3.74095E-03 57.817 -0.055 1.72959E-02 1.64284E-05
+C .... 5.00000E-05 8.54359E-04 245.101 7.152 4.07647E-03 -1.18949E-04
+BLANK card ending frequency cards
+$PUNCH { Show Pi-circuit branch cards (1-punch in col 58 of frequency card)
+C PI-EQUIVALENT MODEL WITH LENGTH= 0.100E+04(M)
+C $VINTAGE, 1
+C 1 2.96433904E+01 1.01799070E+00 5.95391119E-02
+C 2 5.88726509E+00 8.18962579E-01 -5.95391119E-02
+C 5.88726509E+00 8.18962579E-01 7.31366522E-02
+C $VINTAGE, 0
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C 8th of 8 examples of cables without pipe: CASE22Y3.DAT
+CABLE CONSTANTS
+CABLE PARAMETERS
+ 2 1 1 0 0 0 0 0 0 0 3 0
+ 2
+ 0.8E-2 1.00E-2 2.70E-2 3.00E-2 3.10E-2
+ 3.000E-8 1.0 1.0 1.063 3.000E-8 1.0 1.0 1.1
+ 0.1E-14 1.0E-15 5.E-5 0.055E-9
+ 0.9 0.0
+ 1.E-8 10.E06 0
+C MODE ATTENUATION VELOCITY IMPEDANCE (OHM/M) ADMITTANCE (S/M)
+C NO. (DB/KM) (M/MIC.S) REAL IMAG. REAL IMAG.
+C 1 2.39603E+01 133.42 5.88727E-03 5.14569E+01 5.00000E-05 4.31011E-03
+C 2 1.78448E+00 290.49 2.37561E-02 1.25053E+01 0.00000E+00 3.74102E-03
+BLANK card ending frequency cards
+BLANK card ending "CABLE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C First of two examples of cables sent by Prof. Ametani on Feb. 17, 2001
+C that he used for verifying the correction he made in the calculation of
+C conductor internal impedance of a cable having 3 layers of conductors,
+C core, sheath, and armor.
+C This is a one-phase SC cable with core and sheath only
+CABLE PARAMETERS
+ 2 -1 1 0 1 1 0 0 0 0 0
+ 2
+ .7000E-01 .8000E-01 .9000E-01 .1000 .1100
+ .1728E-07 1.000 1.000 2.200 .1728E-07 1.000 1.000 2.200
+ 1.500 .0000
+ 100.000 50.0000 0 0 0
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C Second of two examples of cables sent by Prof. Ametani on Feb. 17, 2001
+C This is a one-phase SC cable with core, sheath, and armor. This data
+C is almost the same as the previous one except having 3 conductors, and
+C the physical configuration of the sheath and armor here is the same as
+C the core and sheath of the previous case
+CABLE PARAMETERS
+C 2 -1 1 0 1 1 0 1 0 0 0 0
+ 2 -1 1 0 1 1 0 0 0 0 0
+ 3
+ .5000E-01 .6000E-01 .7000E-01 .8000E-01 .9000E-01 .1000 .1100
+ .1728E-07 1.000 1.000 2.200 .1728E-07 1.000 1.000 2.200
+ .1728E-07 1.000 1.000 2.200
+ 1.500 .0000
+ 100.000 50.0000 0 0 0
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+
+
diff --git a/benchmarks/dc29.dat b/benchmarks/dc29.dat
new file mode 100644
index 0000000..7c8ab31
--- /dev/null
+++ b/benchmarks/dc29.dat
@@ -0,0 +1,276 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-29
+C Test of "SEMLYEN SETUP" for 138-mile, single-circuit, 500-kV overhead
+C line that connects "John Day" with "Lower Monumental" (BPA substations).
+C There are 2 ground wires (both eliminated), and each phase consists of a
+C bundle of 2 conductors. Punched LUNIT7 branch cards contribute to DC-31.
+C 1st of 3 subcases. 2nd is for Pi-equiv. output (fast). 3rd is bypassed.
+C Solution changed on 23 Oct 1990 due to Mustafa Kizilcay's modifications
+C (preceding commented data has been copied to bottom for preservation).
+SEMLYEN SETUP
+$ERASE
+BRANCH JDA LMA JDB LMB JDC LMC
+TOLERANCES 10 5000. { Illustration only; value of FMED actually unchanged
+C 345678901234567890123456789012345678901234567890
+C 60 80 230 1 7 7777 0 { Semlyen miscellaneous data
+C 60 80 1 230 1 7 7777 0 { Semlyen miscellaneous data
+C Guido: whenever n4=0(col 26), n1 (col 21) should be 1 !! avoid kill=152
+ 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous data
+C Guido: overhead lines; rule of thumb: NOO=100-300, NPOINT=150
+C Note: Guido modifies Semlyen misc. data card above on 23 Oct 1990 following
+C the addition of Mustafa Kizilcay's latest changes. The old one gave
+C an early KILL code. Later (November 7th), WSM and THL convert the
+C "1 " of columns 21-22 to "10" to make it universal. Although the
+C VAX had no trouble reading 10 from the original as I2 information,
+C Sun (which agreed with Apollo, so Apollo most likely also was wrong)
+C erroneously read unity! Sun seems to ignore blanks in "I" FORMATs.
+LINE CONSTANTS
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ending conductor cards within "LINE CONSTANTS" data
+C 27. 5000. 1 138. { Transient frequency
+C 27. 60.00 1 138. { Phasor solution frequency
+C 27. 6.00 1 138. 6 20 { log looping
+ 27. 5000. 138. { Transient frequency
+ 27. 60.00 138. { Phasor solution frequency
+ 27. 6.00 138. 6 20 { log looping
+BLANK card ending frequency cards of "LINE CONSTANTS" data
+C Frequency = 5.00000000E+03
+C --------------------------
+C Impedance matrix Admittance matrix
+C (ohm/mile) (mho/mile)
+C
+C 3.2463317E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
+C 6.3079678E+01 5.2869139E-04 -8.2803449E-05 -6.2048083E-05
+C
+C 2.3065452E+00 2.0246396E+00 0.0000000E+00 0.0000000E+00
+C 1.4273670E+01 5.9110509E+01 5.3917160E-04 -8.2803449E-05
+C
+C 2.9595110E+00 2.3065452E+00 3.2463317E+00 0.0000000E+00
+C 1.4114577E+01 1.4273670E+01 6.3079678E+01 5.2869139E-04
+BLANK card ending "LINE CONSTANTS" data cases
+C The following values are computed on the basis of exact diagonalization of the
+C Mode to phase voltage Mode to phase current
+C transformation matrix transformation matrix
+C
+C 1.000000 -1.000000 -0.266985 0.420272 -0.500000 -0.299082
+C 0.000000 0.000000 0.019744 0.007566 0.000000 0.006219
+C
+C 0.711142 0.000000 1.000000 0.224711 0.000000 0.840545
+C -0.027600 0.000000 0.000000 -0.012556 0.000000 0.015131
+C
+C 1.000000 1.000000 -0.266985 0.420272 0.500000 -0.299082
+C 0.000000 0.000000 0.019744 0.007566 0.000000 0.006219
+C
+C Alpha Beta Attenuation
+C Mode (neper/mi) (radians/mi) (db/mi)
+C 1 0.8245225702687424E-02 0.1861008889722703E+00 0.7161712049448019E-01
+C 2 0.4981192766022477E-03 0.1700760589248700E+00 0.4326609063159914E-02
+C 3 0.4573686287515477E-03 0.1691150685564419E+00 0.3972653433249082E-02
+C Number of frequencies = 121 Starting and ending Hz = 6.0000E+00 6.000E+06
+C Fitting of the propagation step response for mode number 1 :
+C Iteration Amplitude X(1) X(2) X(3) Error
+C 1 7.26461134E-1 1.32035374E+1 1.17295449E+0 2.21313604E-2 7.35218983E-04
+C 1 7.13648369E-1 1.45238912E+1 1.17295449E+0 2.21313604E-2 1.23450128E-03
+C 1 7.02961062E-1 1.58442449E01 1.17295449E+0 2.21313604E-2 1.78841949E-03
+C < < Etc. until final (23-rd) such entries, which is:
+C 3 7.67204181E-1 1.05695813E+1 1.17465822E+0 2.53215686E-2 3.72675596E-05
+C Successful convergence .... SUBROUTINE TDFIT. Tolerance EPS = 5.00000000E-05
+C ++++ Warning! TDFIT can not adjust time-domain step response to fit exactly
+C Instead, the initial fitting will be used.
+C Amplitude 1 Time const. 1 Amplitude 2 Time const. 2 Delay time
+C 7.6720418E-01 7.0400012E-05 2.3279582E-01 6.3345970E-04 7.7782236E-04
+C Mode 1, time step = 3.72049322E-06 Symbols : "." = Semlyen approximation
+C Error Time 0.0 8.93193367E-01
+C .1........1........1........1........1........1..
+C 0.00000E+00 7.62701E-04 .*
+C 0.00000E+00 7.66422E-04 ..0
+C 0.00000E+00 7.70142E-04 ..0
+C 0.00000E+00 7.73863E-04 .. 0
+C 0.00000E+00 7.77583E-04 .. 0
+C -2.07761E-02 7.81304E-04 . . 0
+C -4.84345E-03 7.85024E-04 . *
+C 6.50870E-03 7.88745E-04 . 0.
+C 1.41364E-02 7.92465E-04 . 0.
+C 1.88276E-02 7.96186E-04 . 0.
+C 2.12721E-02 7.99906E-04 . 0 .
+C 2.20463E-02 8.03627E-04 . 0 .
+C 2.16177E-02 8.07347E-04 . 0 .
+C 2.03607E-02 8.11068E-04 . 0 .
+C 1.85647E-02 8.14788E-04 . 0 .
+C 1.64473E-02 8.18509E-04 . 0.
+C 1.41747E-02 8.22229E-04 . 0 .
+C 1.18700E-02 8.25949E-04 . 0. C 9.61526E-03 8.29670E-04 . 0.
+C 7.46654E-03 8.33390E-04 . 0.
+$PUNCH
+C -1JDA LMA 5.72862E-03 7.77822E-04 1 1 2 2 3
+C 1.76406006E+01 9.04231135E+01-1.97906661E-04 1.44978522E-03 6.00000000E+01
+C 0.00000E+00 1.42045E+04 7.67204E-01 0.00000E+00 1.57863E+03 2.32796E-01
+C 0.00000E+00 1.70053E+05-7.75536E-04 0.00000E+00 5.92740E+02-1.43454E-03
+C -1JDB LMB 7.00175E-03 7.40982E-04 2 2 2 2 3
+C 5.19844042E-01 4.16341654E+01-1.59314154E-05 1.96071950E-03 6.00000000E+01
+C 0.00000E+00 1.82512E+05 9.69335E-01 0.00000E+00 2.58428E+03 3.06652E-02
+C 0.00000E+00 9.60136E+03-1.29672E-04 0.00000E+00 5.91248E+01-4.28783E-04
+C -1JDC LMC 4.11495E-03 7.40975E-04 3 3 2 2 3
+C 2.42272029E+00 7.27673245E+01-1.71561794E-05 1.15316857E-03 6.00000000E+01
+C 0.00000E+00 4.30709E+05 9.63717E-01 0.00000E+00 1.32518E+03 3.62828E-02
+C 0.00000E+00 2.12922E+03-1.21998E-04 0.00000E+00 8.97571E+01-3.32339E-04
+C Prior to improvement on 27 November 2000, zero imaginary parts were
+C included, and this forced low precision of 6E12.5:
+C 1.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00-2.66985E-01 0.00000E+00
+C 7.11142E-01 0.00000E+00-1.02636E-14 0.00000E+00 1.00000E+00 0.00000E+00
+C 1.00000E+00 0.00000E+00-1.00000E+00 0.00000E+00-2.66985E-01 0.00000E+00
+C 4.20272E-01 0.00000E+00 5.00000E-01 0.00000E+00-2.99082E-01 0.00000E+00
+C 2.24711E-01 0.00000E+00-5.36721E-15 0.00000E+00 8.40545E-01 0.00000E+00
+C 4.20272E-01 0.00000E+00-5.00000E-01 0.00000E+00-2.99082E-01 0.00000E+00
+C Beginning 27 November 2000, the zero imaginary parts are implied,
+C giving the following 3E26.18 output following a new request word. A
+C big paragraph about this is planned for the April, 2001, newsletter:
+C NO IMAGINARY PART
+C 1.0000000000000000E+00 1.0000000000000000E+00 -2.6698449851193501E-01
+C 7.1114175640039812E-01 -1.1764114701044076E-14 1.0000000000000000E+00
+C 9.9999999999999945E-01 -9.9999999999999467E-01 -2.6698449851194972E-01
+C 4.2027250134843613E-01 5.0000000000000333E-01 -2.9908213367540470E-01
+C 2.2471123211965521E-01 -6.1556662545037000E-15 8.4054500269687149E-01
+C 4.2027250134843563E-01 -4.9999999999999922E-01 -2.9908213367541620E-01
+BLANK card ending "SEMLYEN SETUP" data cases
+BEGIN NEW DATA CASE
+C BENCHMARK DC-29
+C 2nd of 3 subcases illustrates punching of Pi-equivalents on LUNIT8.
+C Feature added by Mustafa Kizilcay of University of Hannover, Oct 88.
+C There is no rational function fitting, so execution is fast. Also,
+C the time spent in LINE CONSTANTS is minimal: 2 decades, 1 pt/dec.
+C { Running interactively ("SPY DC29.") gave debug on second subcase:
+DIAGNOSTIC { Somehow needed to erase overlay-25 diagnostic. ???? 9 July 1989
+SEMLYEN SETUP
+$OPEN, UNIT=8 FILE=dc29out.lis STATUS=UNKNOWN FORM=FORMATTED ! { Pi-equivalents will go here
+C 345678901234567890123456789012345678901234567890
+ 60 80 230 3 1 7 4100 4100 { Semlyen miscellaneous data
+LINE CONSTANTS
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ending conductor cards within "LINE CONSTANTS" data
+ 27. 5000. 138. { Transient frequency
+ 27. 50.00 138. { Phasor solution frequency
+ 27. 6.00 138. 2 1 { log looping
+BLANK card ending frequency cards of "LINE CONSTANTS" data
+BLANK card ending "LINE CONSTANTS" data cases
+$CLOSE, UNIT=8 STATUS=KEEP { Disconnect file now containing Pi-equivalents
+BLANK card ending "SEMLYEN SETUP" data cases
+C Transfer [Y] of equivalent Pi for F = 5.0000E+01 Hz. 23-Oct-90 19.45.28
+C 1.151519555275E-3 -1.137441619542E-02 -1.060634758717E-04 3.491463556430E-03
+C 3.537076770591E-4 3.210624087768E-03 -1.060634758717E-04 3.491463556430E-03
+C 2.050900981651E-3 -1.162860843144E-02 -1.060634758717E-04 3.491463556430E-03
+C 3.537076770591E-4 3.210624087768E-03 -1.060634758717E-04 3.491463556430E-03
+C 1.151519555275E-3 -1.137441619542E-02
+C Shunt [Y] of equivalent Pi for F = 5.0000E+01 Hz.
+C -8.541869714622E-6 3.665747845891E-04 6.607667284137E-06 -5.660142619185E-05
+C -8.648581530269E-6 -4.295696271522E-05 6.607667284137E-06 -5.660142619185E-05
+C -2.342599469890E-5 3.722080025785E-04 6.607667284137E-06 -5.660142619185E-05
+C -8.648581530269E-6 -4.295696271522E-05 6.607667284137E-06 -5.660142619185E-05
+C -8.541869714623E-6 3.665747845891E-04
+C Transfer [Y] of equivalent Pi for F = 6.0000E+00 Hz. 23-Oct-90 19.45.28
+C 3.262709023195E-2 -7.809118174262E-02 -1.341276675346E-02 2.522775392732E-02
+C -1.150007192882E-2 2.343312809664E-02 -1.341276675346E-02 2.522775392732E-02
+C 3.436831351543E-2 -7.888248987903E-02 -1.341276675347E-02 2.522775392732E-02
+C -1.150007192882E-2 2.343312809664E-02 -1.341276675347E-02 2.522775392732E-02
+C 3.262709023195E-2 -7.809118174262E-02
+C Shunt [Y] of equivalent Pi for F = 6.0000E+00 Hz.
+C -3.427096070385E-8 4.377964661972E-05 2.594787689802E-08 -6.855484667815E-06
+C -3.570745329639E-8 -5.136885722574E-06 2.594787689802E-08 -6.855484667815E-06
+C -9.461439943596E-8 4.464722732424E-05 2.594787689809E-08 -6.855484667815E-06
+C -3.570745329639E-8 -5.136885722574E-06 2.594787689809E-08 -6.855484667815E-06
+C -3.427096070393E-8 4.377964661972E-05
+C Transfer [Y] of equivalent Pi for F = 6.0000E+01 Hz. 23-Oct-90 19.45.28
+C 9.441668531285E-4 -9.566451344743E-03 -7.083376044220E-05 2.864853469711E-03
+C 3.766916044259E-4 2.651337447173E-03 -7.083376044220E-05 2.864853469711E-03
+C 1.809395347023E-3 -9.800403930488E-03 -7.083376044219E-05 2.864853469711E-03
+C 3.766916044259E-4 2.651337447173E-03 -7.083376044219E-05 2.864853469711E-03
+C 9.441668531284E-4 -9.566451344743E-03
+C Shunt [Y] of equivalent Pi for F = 6.0000E+01 Hz.
+C -1.202671448681E-5 4.408181056666E-04 9.416194169739E-06 -6.772347154278E-05
+C -1.218469464166E-5 -5.164200772177E-05 9.416194169739E-06 -6.772347154278E-05
+C -3.311677630903E-5 4.467905957272E-04 9.416194169739E-06 -6.772347154278E-05
+C -1.218469464166E-5 -5.164200772177E-05 9.416194169739E-06 -6.772347154278E-05
+C -1.202671448681E-5 4.408181056666E-04
+C Transfer [Y] of equivalent Pi for F = 6.0000E+02 Hz. 23-Oct-90 19.45.28
+C -3.712845487162E-3 -5.603787237254E-03 -1.561079196979E-03 4.482090715102E-03
+C -3.184914860379E-3 5.584231439014E-03 -1.561079196979E-03 4.482090715102E-03
+C -4.822417739649E-4 -7.822757815584E-03 -1.561079196979E-03 4.482090715102E-03
+C -3.184914860379E-3 5.584231439014E-03 -1.561079196979E-03 4.482090715102E-03
+C -3.712845487162E-3 -5.603787237254E-03
+C Shunt [Y] of equivalent Pi for F = 6.0000E+02 Hz.
+C 7.516929477229E-3 1.093259393216E-02 3.157367799464E-03 -8.756571161718E-03
+C 6.427094062687E-3 -1.089709886987E-02 3.157367799464E-03 -8.756571161718E-03
+C 1.100477005468E-3 1.520008342172E-02 3.157367799464E-03 -8.756571161718E-03
+C 6.427094062687E-3 -1.089709886987E-02 3.157367799464E-03 -8.756571161718E-03
+C 7.516929477229E-3 1.093259393216E-02
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases illustrates SEMLYEN SETUP for two of the actual
+C 3 phases of the 500-kV line data of the 1st subcase. Results will
+C be used in the 4th subcase of DC-41 to illustrate selective branch
+C current output. This addition is made 11 December 2000.
+SEMLYEN SETUP
+$ERASE
+BRANCH JDA LMA JDB LMB { Note only 2 of the actual 3 phases are used
+TOLERANCES 10 5000. { Illustration only; value of FMED actually unchanged
+ 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous data
+LINE CONSTANTS
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C Following two conductor cards for phase "c" are omitted to create 2-phase line
+C 3.3636 .05215 4 1.602 19.25 50. 50. ---- omit phase "c"
+C 3.3636 .05215 4 1.602 20.75 50. 50. ---- omit phase "c"
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ending conductor cards within "LINE CONSTANTS" data
+ 27. 5000. 138. { Transient frequency
+ 27. 60.00 138. { Phasor solution frequency
+ 27. 6.00 138. 6 20 { log looping
+BLANK card ending frequency cards of "LINE CONSTANTS" data
+BLANK card ending "LINE CONSTANTS" data cases
+$PUNCH
+BLANK card ending "SEMLYEN SETUP" data cases
+BLANK { Note this extra blank will terminate execution, to avoid 3rd subcase
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BEGIN NEW DATA CASE
+C 4th of 4 subcases, not normally executed, is Rule Book example of XXII-D.
+C This was 3rd of 3 until 11 December 2000 when preceding subcase was added
+SEMLYEN SETUP
+$ERASE
+BRANCH SORCA LINEA SORCB LINEB SORCC LINEC
+ 60 80 2 1 7 7777 1637
+LINE CONSTANTS
+ 1.3159 .192 4 .858 -10.67 31.5 31.5
+ 2.3159 .192 4 .858 0.00 31.5 31.5
+ 3.3159 .192 4 .858 10.67 31.5 31.5
+ 0.5 9.48 4 0.313 -5.33 40.5 40.5
+ 0.5 9.48 4 0.313 5.33 40.5 40.5
+BLANK card ending conductor cards within "LINE CONSTANTS" data
+ 1000. 5000. 18.65 { Transient frequency
+ 1000. 60.00 18.65 { Phasor solution frequency
+ 1000. 60.00 18.65 4 21 { log looping
+BLANK card ending frequency cards of "LINE CONSTANTS" data
+BLANK card ending "LINE CONSTANTS" data cases
+$PUNCH
+BLANK card ending "SEMLYEN SETUP" data cases
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc3.dat b/benchmarks/dc3.dat
new file mode 100644
index 0000000..e815f0b
--- /dev/null
+++ b/benchmarks/dc3.dat
@@ -0,0 +1,633 @@
+BEGIN NEW DATA CASE
+$BEGIN PL4 COMMENTS
+C BENCHMARK DC-3
+C Energization of 180-mile 3-phase line represented by 18 identical
+C Pi-sections. Transposed at 60 and 120 miles, note. XOPT = 3000.
+c Note nice DELTAT. For exact "M39." agreement, use 0.4630E-4
+c It is test case DC-54 that uses the plot file for "REPLOT" usage.
+c Note this and preceding 2 comment cards illustrate lower-case "$$
+C c" (the third letter of the alphabet). End comment text.
+$END PL4 COMMENTS
+CHANGE PLOT FREQUENCY
+C Beginning 21 March 2010, the ten integers that define either plotting or
+C printing frequency may be keyed as a mixture of I8 and E8.0 FORMAT. There
+C exist several special cases, however, for large values. Interpretation will
+C continue to use 6I6 integers if all can be encoded this way. Examples follow:
+ 5 5 10 1 { The original alternative has all integers
+C Interpretation of this: Plot out : 5 5 10 1 0 0 | ...
+C 5 5.E0 10 1 1.E4 9.E5 { Near the limit of interpret
+C Interpretation of this: Plot out : 5 5 10 1 10000900000 | ...
+C 5 5.E0 10 1 1.E4 1.E9 { Too big a value for interpret
+C Interpretation of this: 5 pairs. But a value is too big for I6 display. | ...
+C 5 5.E0 10 1 1.E4 2.E9 { Verify largest 32-bit integer
+C Interpretation of this: 5 pairs. But a value is too big for I6 display. | ...
+C 5 5.E0 10 1 1.E4 2.1E9 { Too big a value for 32 bits
+C rejection of this: === Error defining one or more integers of printing or
+C plotting frequency. Too big for 32-bit integer storage. Halt in SUBR1.
+CUSTOM PLOT FILE { Request for REAL*8 .PL4 file (see July, 1995, newsletter)
+$MONITOR { Request time (no other special effect, since not LUNIT6 to disk)
+C DISK PLOT DATA { Toggle the Apollo default of LUNIT4 = -4 to +4 (use disk)
+C $CLOSE, UNIT=4 STATUS=DELETE { Destroy empty date/time plot file of "SYSDEP"
+C $OPEN, UNIT=4 FILE=dc3to54.pl4 FORM=UNFORMATTED STATUS=UNKNOWN RECL=8000 !
+C$ text Beginning 31 August 1994, "C$" in columns 1-2 is taken to be a comment
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .010 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+C 1 1 1 1 1 -1 0 2
+ 1.E0 1.E0 1 1 1 -1 0 2
+C The preceding integer misc. data card illustrates that either the number
+C of steps for printing (cols. 1-8) or the number of steps for plotting
+C (cols. 9-16) may be E-field. This is to accomodate values > 1.E8.
+C See previous explanation of CHANGE PLOT FREQUENCY. The same procedure is
+C applicable to the following card, which modifies printout frequency:
+C 5 5 10 10 20 20 { Escalating printout frequency
+ 5 5.E0 1.E1 10 2.E1 20 { Illustrate some E-field use
+$COMMENT { Begin discarding (making invisible) all comment cards
+C Ok, immediately we have a comment card, which should not be seen on LUNIT6
+ 1GEN-A 1-A 34.372457.68.15781
+ 2GEN-B 1-B 35.735164.43-.031538.002451.79.16587
+ 3GEN-C 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+C 2nd comment card. This, too, should not be seen on LUNIT6
+$COMMENT { End discarding of comment cards. Once again such cards are visible
+C Is this comment card visible? It should be seen on LUNIT6
+ 11-A 2-A GEN-A 1-A { Sections 2 through 18 are copies of the first
+ 21-B 2-B { which has just been inputted.
+ 31-C 2-C
+ 12-A 3-A GEN-A 1-A
+ 22-B 3-B
+ 32-C 3-C
+ 13-A 4-A GEN-A 1-A
+ 23-B 4-B
+ 33-C 4-C
+ 14-A 5-A GEN-A 1-A
+ 24-B 5-B
+ 34-C 5-C
+ 15-A 6-A GEN-A 1-A
+ 25-B 6-B
+ 35-C 6-C
+ 16-C 7-C GEN-A 1-A { Note transposition: /C/A/B/ rather than /A/B/C
+ 26-A 7-A
+ 36-B 7-B
+ 17-C 8-C GEN-A 1-A
+ 27-A 8-A
+ 37-B 8-B
+ 18-C 9-C GEN-A 1-A
+ 28-A 9-A
+ 38-B 9-B
+ 19-C 10-C GEN-A 1-A
+ 29-A 10-A
+ 39-B 10-B
+ 110-C 11-C GEN-A 1-A
+ 210-A 11-A
+ 310-B 11-B
+ 111-C 12-C GEN-A 1-A
+ 211-A 12-A
+ 311-B 12-B
+ 112-B 13-B GEN-A 1-A { Note 2nd transposition: /B/C/A/ rather than /C/A/B
+ 212-C 13-C
+ 312-A 13-A
+ 113-B 14-B GEN-A 1-A
+ 213-C 14-C
+ 313-A 14-A
+ 114-B 15-B GEN-A 1-A
+ 214-C 15-C
+ 314-A 15-A
+ 115-B 16-B GEN-A 1-A
+ 215-C 16-C
+ 315-A 16-A
+ 116-B 17-B GEN-A 1-A
+ 216-C 17-C
+ 316-A 17-A
+ 117-B 18-B GEN-A 1-A
+ 217-C 18-C
+ 317-A 18-A
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+$MONITOR { Request time (no other special effect, since not LUNIT6 to disk)
+C Step Time E-B 18-C 18-B 18-A E-A
+C POLE-B POLE-A
+C *** Switch "E-A " to "POLE-A" closed after 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 .8771390038 .735053E-17 .754138E-17 -.12623E-16 -.277151E-4
+C 2 .1E-3 .8898949351 .408898E-15 .419476E-15 -.70276E-15 -.42636E-4
+C 3 .15E-3 .9023577997 .111958E-13 .114844E-13 -.19259E-13 -.657706E-4
+C 4 .2E-3 .9141912694 .201088E-12 .206252E-12 -.34623E-12 -.902274E-4
+C 5 .25E-3 .9254563554 .266406E-11 .273221E-11 -.45918E-11 -.11094E-3
+C 10 .5E-3 .9821092355 .5616974E-7 .5757735E-7 -.975638E-7 -.211746E-3
+C 20 .001 1.079796132 .0030080496 .0030756136 -.005532677 -.393566E-3
+BLANK card ending output variables requests (node voltages, here)
+$MONITOR { Request time (no other special effect, since not LUNIT6 to disk)
+C Final step: 200 .01 0.0 .7226176276 -.887792385 .0782571591
+C Final step continued: .0011948668 -.449544E-3 -.687051E-3 -.687051E-3
+C Variable max : 1.188718074 .8796065581 .1512528782 .0782571591 .0012022221
+C Times of max : .002 .0085 .00525 .01 .00995
+C Variable min : 0.0 -.133205909 -.887792385 -1.27643205 -.79278E-3
+C Times of min : 0.0 .0048 .01 .00525 .0041
+ PRINTER PLOT
+ 144 1. 0.0 10. 18-A 18-B 18-C { Axis limits: (-1.276, 0.880)
+ 194 1. 0.0 10. GEN-C M-C E-A POLE-A { Axis limits: (-1.105, 1.202)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 6 subcases illustrates $PI which becomes available 14 July 2001.
+C This is for scaling Pi-circuit data -- in effect, varying the length of
+C the Pi-circuits. Originator of the idea was Dr. Sven Demmig of Bewag
+C (power utility of city of Berlin, Germany) as explained in the October,
+C 2001 newsletter. Although a cascade connection of sections is typical,
+C in fact there is no mandatory association of $PI and cascading. In this
+C illustration, consider 4 different and disconnected cascade connections
+C of 2 Pi-circuits. The first is unscaled whereas the following 3 involve
+C different combinations of scaling. All 4 disconnected subnetworks give
+C exactly the same answer because data is either normal or multiplied by
+C 2; and if the later, it subsequently is scaled by 1/2, thereby restoring
+C the original values.
+POWER FREQUENCY 3000. { Avoid warning about unusual XOPT
+PRINTED NUMBER WIDTH, 11, 2,
+ .000050 .005 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 1 1 1 -1
+ 5 5 10 10 20 20 { Escalating printout frequency
+C Begin cascading of 3-phase Pi-circuits from DC-3. To establish the right
+C answer, we define data params using the 1st section, and then use reference
+C branch for the second. So, a total of 6 cells are occupied in List 3:
+ 1GENA MIDA 34.372457.68.15781
+ 2GENB MIDB 35.735164.43-.031538.002451.79.16587
+ 3GENC MIDC 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+ 1MIDA ENDA GENA MIDA
+ 2MIDB ENDB
+ 3MIDC ENDC
+C Preceding establishes right answer without scaling. Next, scale. There are
+C 3 illustrations. Each is a disconnected circuit that should give the same
+C answer as the first. Each of the copies uses scaling in a different way.
+C Begin with Pi-circuit data that is double what it should be, so will require
+C a scaling factor of a half. Like preceding, this occupies 6 cells of List 3:
+$PI, 0.5, { Multiply R, L, and C values of Pi-circuits by this factor
+ 1GENA MIDD 68.744915.36.31562
+ 2GENB MIDE 71.470328.86-.063076.004903.58.33174
+ 3GENC MIDF 71.470328.86-.063074.910303.44-.043876.004903.58.33174
+$PI, 1.0, { Cancel preceding scaling; return to normal, unscaled use
+ 1MIDD ENDD GENA MIDD
+ 2MIDE ENDE
+ 3MIDF ENDF
+C 2nd of 3 alternatives to the original circuit will define but not use the
+C doubled data. Nothing else will be connected to far end (MIDG, H, I).
+C Instead, the alternative will consist of 2 scaled copies of this data.
+C That makes a total of 3 copies of data, so 18 cells of List 3 are occupied:
+ 1GENA MIDG 68.744915.36.31562
+ 2GENB MIDH 71.470328.86-.063076.004903.58.33174
+ 3GENC MIDI 71.470328.86-.063074.910303.44-.043876.004903.58.33174
+$PI, 0.5, { Multiply R, L, and C values of Pi-circuits by this factor
+ 1GENA MIDJ GENA MIDG
+ 2GENB MIDK
+ 3GENC MIDL
+ 1MIDJ ENDJ GENA MIDG
+ 2MIDK ENDK
+ 3MIDL ENDL
+C 3rd of 3 alternatives begins (1st half) the same as the preceding second,
+C but it ends with the 2nd section a copy of this 1st section. This adds 6
+C more cells for List 3 (for the 1st section only). So, the total burden on
+C List 3 is the sum of the 4 parts: 6 + 6 + 18 + 6 = 36 cells.
+ 1GENA MIDM GENA MIDG
+ 2GENB MIDN
+ 3GENC MIDO
+$PI, 1.0, { Cancel preceding scaling; return to normal, unscaled use
+ 1MIDM ENDM GENA MIDM
+ 2MIDN ENDN
+ 3MIDO ENDO
+BLANK card ending branch cards
+BLANK card ending switches
+C 14GENA -1.0 60.0 -90.0
+C Note we omit phase "a" (preceding source) to produce great imbalance. Also,
+C we will add a steady-state solution, for more generality. As a result, the
+C simulation should be pursely sinusoidal. If PRINTER PLOT below is changed
+C to CALCOMP PLOT & HPI = 1. msec/inch is changed to .5 (columns 6-7),
+C this will be obvious visually.
+14GENB -1.0 60.0 -210.0 -1.
+14GENC -1.0 60.0 30.0 -1.
+$WIDTH, 79, { Request narrow, 80-column LUNIT6 output to minimize phasor print
+BLANK card ending sources
+C Total network loss P-loss by summing injections = 5.813026183430E-07
+C GENB 1.0 .6605121612E-3 -.4572787068E-4 .3302560806E-3
+C -30.0000000 67.9588504 -.3270749771E-3 -0.1384619
+$WIDTH, 132, { Done with 80 columns, so return to wide, 132-column LUNIT6 output
+ ENDA ENDD ENDJ ENDM ENDB ENDE ENDK ENDN ENDC
+C Step Time ENDA ENDD ENDJ ENDM ENDB ENDE ENDK ENDN ENDC
+C 0 0.0 -.0023158 -.0023158 -.0023158 -.0023158 .86301625 .86301625 .86301625 .86301625 -.8705073
+C 1 .5E-4 .00145168 .00145168 .00145168 .00145168 .87229895 .87229895 .87229895 .87229895 -.8609192
+C 2 .1E-3 .00521861 .00521861 .00521861 .00521861 .88127179 .88127179 .88127179 .88127179 -.8510252
+C 3 .15E-3 .00898371 .00898371 .00898371 .00898371 .88993164 .88993164 .88993164 .88993164 -.8408287
+BLANK card ending output variables requests (node voltages, here)
+C 100 .005 .19079849 .19079849 .19079849 .19079849 .20945009 .20945009 .20945009 .20945009 .74501057
+C Variable maxima: .19987826 .19987826 .19987826 .19987826 .99771368 .99771368 .99771368 .99771368 .74501057
+C Times of maxima: .0042 .0042 .0042 .0042 .0014 .0014 .0014 .0014 .005
+C Variable minima: -.0023158 -.0023158 -.0023158 -.0023158 .20945009 .20945009 .20945009 .20945009 -.8705073
+C Times of minima: 0.0 0.0 0.0 0.0 .005 .005 .005 .005 0.0
+ PRINTER PLOT { Conversion to CALCOMP PLOT would show that curves are smooth
+ 144 1. 0.0 5.0 -1. 1.0 ENDA ENDB ENDC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 6 subcases illustrates HIGH ORDER PI CIRCUIT as first mentioned
+C in the April, 1998, newsletter. Prior to addition on 22 November 2001,
+C this data was stored at home as f:\data\highpi.dat Data of this
+C subcase is identical to the first; the solution should be identical.
+C But instead of data for the 1st Pi-circuit being read from in-line card
+C images, it is to be read from a separate disk file. Of course, for 3
+C phases, this is artificially complicated. But for really high order
+C (e.g., 400), there should be a big saving when the C-like alternative is
+C used. But here, initially, we just illustrate the universal, FORMATTED
+C alternative, which stores Pi-circuit data in separate DC3HIGH.DAT The
+C use is artificial. Practical use almost always will be C-like.
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .010 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 0 0 0 -1
+ 5 5 10 10 20 20 { Escalating printout frequency
+C 1GEN-A 1-A 34.372457.68.15781
+C 2GEN-B 1-B 35.735164.43-.031538.002451.79.16587
+C 3GEN-C 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+C The following is FORMATTED. For the C-like alternative, see the 4th subcase.
+C HIGH ORDER PI CIRCUIT 3 File=[]dc3high.dat FORM=FORMATTED C-LIKE OUTPUT
+C Preceding single card is replaced by following 2-card alternative on
+C 9 September 2003. Not only was C-LIKE OUTPUT being chopped on the
+C right, there was no space for additional attributes such as REAL*4
+C for single-precision data and $UNITS to apply XOPT and COPT. So now
+C 2 or more cards are allowed. Only the last is to carry the file name
+C after the File= tag. Tags on the optional preface card are free-
+C format but they must be to the right of column 32 (for # of phases):
+ HIGH ORDER PI CIRCUIT FORM=FORMATTED C-LIKE OUTPUT { Optional card
+ HIGH ORDER PI CIRCUIT 3 File=[]dc3high.dat
+C Note that preceding creates REAL*8 output file dc3high.clk by default.
+C The alternative single-precision file dc3high.444 which will be used in
+C the following subcase # 5 was created by adding REAL*4 anywhere to the
+C right of the input data file name (separate by 1 or more blanks). The
+C resulting file then will be 108 bytes in size rather than 180. The
+C difference is 3 arrays * 6 elements/array * 4 bytes/element = 72 bytes.
+C But 5th subcase also used $UNITS and this requires a change in the code
+C see comments near the bottom of SUBR3.SPL
+ 11-A 2-A GEN-A 1-A { Sections 2 through 18 are copies of the first
+ 21-B 2-B { which has just been inputted.
+ 31-C 2-C
+ 12-A 3-A GEN-A 1-A
+ 22-B 3-B
+ 32-C 3-C
+ 13-A 4-A GEN-A 1-A
+ 23-B 4-B
+ 33-C 4-C
+ 14-A 5-A GEN-A 1-A
+ 24-B 5-B
+ 34-C 5-C
+ 15-A 6-A GEN-A 1-A
+ 25-B 6-B
+ 35-C 6-C
+ 16-C 7-C GEN-A 1-A { Note transposition: /C/A/B/ rather than /A/B/C
+ 26-A 7-A
+ 36-B 7-B
+ 17-C 8-C GEN-A 1-A
+ 27-A 8-A
+ 37-B 8-B
+ 18-C 9-C GEN-A 1-A
+ 28-A 9-A
+ 38-B 9-B
+ 19-C 10-C GEN-A 1-A
+ 29-A 10-A
+ 39-B 10-B
+ 110-C 11-C GEN-A 1-A
+ 210-A 11-A
+ 310-B 11-B
+ 111-C 12-C GEN-A 1-A
+ 211-A 12-A
+ 311-B 12-B
+ 112-B 13-B GEN-A 1-A { Note 2nd transposition: /B/C/A/ rather than /C/A/B
+ 212-C 13-C
+ 312-A 13-A
+ 113-B 14-B GEN-A 1-A
+ 213-C 14-C
+ 313-A 14-A
+ 114-B 15-B GEN-A 1-A
+ 214-C 15-C
+ 314-A 15-A
+ 115-B 16-B GEN-A 1-A
+ 215-C 16-C
+ 315-A 16-A
+ 116-B 17-B GEN-A 1-A
+ 216-C 17-C
+ 316-A 17-A
+ 117-B 18-B GEN-A 1-A
+ 217-C 18-C
+ 317-A 18-A
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+C 100 .005 0.0 -.084110964 -.076310793 -.92825821 -.621001E-3 .1845237E-3 .9370288E-3 .9370288E-3
+C 120 .006 0.0 .4539217657 .0096691741 -1.01404035 -.10259E-3 -.52007E-3 .0010499755 .0010499755
+C 140 .007 0.0 .6915082663 -.20985407 -.843083014 .6173076E-3 -.951807E-3 .5938305E-3 .5938305E-3
+C 160 .008 0.0 .8512280695 -.465621295 -.605281204 .9350157E-3 -.96575E-3 .1846072E-3 .1846072E-3
+C 180 .009 0.0 .8583902573 -.70840222 -.288190483 .0011711805 -.794874E-3 -.285103E-3 -.285103E-3
+C *** Close switch "M-A " to "GEN-A " after 1.00000000E-02 sec.
+C 200 .01 0.0 .7226176276 -.887792385 .0782571591 .0011948668 -.449544E-3 -.687051E-3 -.687051E-3
+ PRINTER PLOT
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 6 subcases is the same as the preceding 3rd subcase except for
+C two changes. First and most importantly, the C-like alternative is used
+C for the data rather than the FORMATTED alternative. Second, the ending
+C time T-max has been halved. Solution through T = T-max is identical.
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .005 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 0 0 0 -1
+ 5 5 10 10 20 20 { Escalating printout frequency
+C 1GEN-A 1-A 34.372457.68.15781
+C 2GEN-B 1-B 35.735164.43-.031538.002451.79.16587
+C 3GEN-C 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+ HIGH ORDER PI CIRCUIT 3 File=[]dc3high.clk { Use default type: C-like
+ 11-A 2-A GEN-A 1-A { Sections 2 through 18 are copies of the first
+ 21-B 2-B { which has just been inputted.
+ 31-C 2-C
+ 12-A 3-A GEN-A 1-A
+ 22-B 3-B
+ 32-C 3-C
+ 13-A 4-A GEN-A 1-A
+ 23-B 4-B
+ 33-C 4-C
+ 14-A 5-A GEN-A 1-A
+ 24-B 5-B
+ 34-C 5-C
+ 15-A 6-A GEN-A 1-A
+ 25-B 6-B
+ 35-C 6-C
+ 16-C 7-C GEN-A 1-A { Note transposition: /C/A/B/ rather than /A/B/C
+ 26-A 7-A
+ 36-B 7-B
+ 17-C 8-C GEN-A 1-A
+ 27-A 8-A
+ 37-B 8-B
+ 18-C 9-C GEN-A 1-A
+ 28-A 9-A
+ 38-B 9-B
+ 19-C 10-C GEN-A 1-A
+ 29-A 10-A
+ 39-B 10-B
+ 110-C 11-C GEN-A 1-A
+ 210-A 11-A
+ 310-B 11-B
+ 111-C 12-C GEN-A 1-A
+ 211-A 12-A
+ 311-B 12-B
+ 112-B 13-B GEN-A 1-A { Note 2nd transposition: /B/C/A/ rather than /C/A/B
+ 212-C 13-C
+ 312-A 13-A
+ 113-B 14-B GEN-A 1-A
+ 213-C 14-C
+ 313-A 14-A
+ 114-B 15-B GEN-A 1-A
+ 214-C 15-C
+ 314-A 15-A
+ 115-B 16-B GEN-A 1-A
+ 215-C 16-C
+ 315-A 16-A
+ 116-B 17-B GEN-A 1-A
+ 216-C 17-C
+ 316-A 17-A
+ 117-B 18-B GEN-A 1-A
+ 217-C 18-C
+ 317-A 18-A
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+C 80 .004 .8173610312 -.086429015 -.083753604 -.67093214 -.487946E-3 0.0 0.0 .555112E-18
+C 100 .005 0.0 -.084110964 -.076310793 -.92825821 -.621001E-3 .1845237E-3 .9370288E-3 .9370288E-3
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 6 subcases is the same as the preceding 4th subcase except for
+C two changes. First, single precision is used for the C-like Pi-circuit
+C data rather than the default REAL*8 alternative. Second, XOPT and COPT
+C are to be applied to control units just as for any other branch. Answers
+C are very close (REAL*4 input data change 7th or 8 digit of some numbers).
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .005 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 0 0 0 -1
+ 5 5 10 10 20 20 { Escalating printout frequency
+C 1GEN-A 1-A 34.372457.68.15781
+C 2GEN-B 1-B 35.735164.43-.031538.002451.79.16587
+C 3GEN-C 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+ HIGH ORDER PI CIRCUIT REAL*4 $UNITS { Optional card of attributes
+C HIGH ORDER PI CIRCUIT REAL*4 { Optional card of attributes
+C HIGH ORDER PI CIRCUIT 3 File=[]dc3high.444
+ HIGH ORDER PI CIRCUIT 3 File=[]dc3high.opt
+ 11-A 2-A GEN-A 1-A { Sections 2 through 18 are copies of the first
+ 21-B 2-B { which has just been inputted.
+ 31-C 2-C
+ 12-A 3-A GEN-A 1-A
+ 22-B 3-B
+ 32-C 3-C
+ 13-A 4-A GEN-A 1-A
+ 23-B 4-B
+ 33-C 4-C
+ 14-A 5-A GEN-A 1-A
+ 24-B 5-B
+ 34-C 5-C
+ 15-A 6-A GEN-A 1-A
+ 25-B 6-B
+ 35-C 6-C
+ 16-C 7-C GEN-A 1-A { Note transposition: /C/A/B/ rather than /A/B/C
+ 26-A 7-A
+ 36-B 7-B
+ 17-C 8-C GEN-A 1-A
+ 27-A 8-A
+ 37-B 8-B
+ 18-C 9-C GEN-A 1-A
+ 28-A 9-A
+ 38-B 9-B
+ 19-C 10-C GEN-A 1-A
+ 29-A 10-A
+ 39-B 10-B
+ 110-C 11-C GEN-A 1-A
+ 210-A 11-A
+ 310-B 11-B
+ 111-C 12-C GEN-A 1-A
+ 211-A 12-A
+ 311-B 12-B
+ 112-B 13-B GEN-A 1-A { Note 2nd transposition: /B/C/A/ rather than /C/A/B
+ 212-C 13-C
+ 312-A 13-A
+ 113-B 14-B GEN-A 1-A
+ 213-C 14-C
+ 313-A 14-A
+ 114-B 15-B GEN-A 1-A
+ 214-C 15-C
+ 314-A 15-A
+ 115-B 16-B GEN-A 1-A
+ 215-C 16-C
+ 315-A 16-A
+ 116-B 17-B GEN-A 1-A
+ 216-C 17-C
+ 316-A 17-A
+ 117-B 18-B GEN-A 1-A
+ 217-C 18-C
+ 317-A 18-A
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+C 80 .004 .8173610397 -.08642902 -.083753607 -.670932147 -.487946E-3 0.0 0.0 .555112E-18
+C 100 .005 0.0 -.084110972 -.076310803 -.928258207 -.621001E-3 .1845237E-3 .9370288E-3 .9370288E-3
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 6 subcases is the same as the preceding except that the master
+C Pi-circuit is defined in user-supplied SUBROUTINE HOPCOD rather than
+C in the HOPC disk file. The file name must be "File=HOPCOD." where the
+C following file type (001) thus far is being ignored. Later, if 2 or more
+C different definitions might be provided in SUBROUTINE HOPCOD, the file
+C type will allow selection among 999 of them. Since 5th subcase uses
+C REAL*4 data whereas here we use REAL*8 data, expect about 7 digits of
+C agreement in the answers.
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .005 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 0 0 0 -1
+ 5 5 10 10 20 20 { Escalating printout frequency
+C 1GEN-A 1-A 34.372457.68.15781
+C 2GEN-B 1-B 35.735164.43-.031538.002451.79.16587
+C 3GEN-C 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+ HIGH ORDER PI CIRCUIT 3 File=CODE.001 { Define data in code (not disk)
+ 11-A 2-A GEN-A 1-A { Sections 2 through 18 are copies of the first
+ 21-B 2-B { which has just been inputted.
+ 31-C 2-C
+ 12-A 3-A GEN-A 1-A
+ 22-B 3-B
+ 32-C 3-C
+ 13-A 4-A GEN-A 1-A
+ 23-B 4-B
+ 33-C 4-C
+ 14-A 5-A GEN-A 1-A
+ 24-B 5-B
+ 34-C 5-C
+ 15-A 6-A GEN-A 1-A
+ 25-B 6-B
+ 35-C 6-C
+ 16-C 7-C GEN-A 1-A { Note transposition: /C/A/B/ rather than /A/B/C
+ 26-A 7-A
+ 36-B 7-B
+ 17-C 8-C GEN-A 1-A
+ 27-A 8-A
+ 37-B 8-B
+ 18-C 9-C GEN-A 1-A
+ 28-A 9-A
+ 38-B 9-B
+ 19-C 10-C GEN-A 1-A
+ 29-A 10-A
+ 39-B 10-B
+ 110-C 11-C GEN-A 1-A
+ 210-A 11-A
+ 310-B 11-B
+ 111-C 12-C GEN-A 1-A
+ 211-A 12-A
+ 311-B 12-B
+ 112-B 13-B GEN-A 1-A { Note 2nd transposition: /B/C/A/ rather than /C/A/B
+ 212-C 13-C
+ 312-A 13-A
+ 113-B 14-B GEN-A 1-A
+ 213-C 14-C
+ 313-A 14-A
+ 114-B 15-B GEN-A 1-A
+ 214-C 15-C
+ 314-A 15-A
+ 115-B 16-B GEN-A 1-A
+ 215-C 16-C
+ 315-A 16-A
+ 116-B 17-B GEN-A 1-A
+ 216-C 17-C
+ 316-A 17-A
+ 117-B 18-B GEN-A 1-A
+ 217-C 18-C
+ 317-A 18-A
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+C 80 .004 .8173610312 -.086429015 -.083753604 -.67093214 -.487946E-3 0.0 0.0 .555112E-18
+C 100 .005 0.0 -.084110964 -.076310793 -.92825821 -.621001E-3 .1845237E-3 .9370288E-3 .9370288E-3
+ PRINTER PLOT
+BLANK --- extraneous; added here to prove that one or 2 extras are tolerated
+BLANK --- extraneous; added here to prove that one or 2 extras are tolerated
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc30.dat b/benchmarks/dc30.dat
new file mode 100644
index 0000000..45737b3
--- /dev/null
+++ b/benchmarks/dc30.dat
@@ -0,0 +1,753 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-30
+C Modeling of circuit-breaker restrike using a valve that is under TACS
+C control. The basic electric network model apparently comes from one Carl
+C Solver of CIGRE WG 13.02, as pointed out by John D. Sakellariou of the
+C Public Power Corporation in Athens, Greece. I (W. Scott Meyer) inserted
+C valve and TACS modeling during September of 1977. The user should extend
+C TMAX to 1.5 milliseconds in order to see more (including a 3rd restrike).
+C This 1st of 8 subcases uses TACS. See the 3rd of 8 for the use of MODELS.
+C The 7th of 8 produces the same answer faster using secret relay modeling.
+ 1.0E-6 3.0E-3
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW = BUS2 - BUS3
+99DRIVE = ABS(VSW)
+99BREAK = 1.5E+8 * TIMEX + 1.0E+5
+C 99DRIVE = ABS(VSW) + 0.0
+C 98DRIVE = 0.4 * ( ABS(VSW) + 1.E-6 ) ** 3.0 * 2.0
+C 99BREAK = 150000000.0 * TIMEX + 100000.0
+98GRID 51+UNITY BREAK DRIVE
+33DUMMY TIMEX UNITY BUS2 BUS3 VSW DRIVE BREAK GRID
+BLANK card ends all TACS data
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+BLANK card terminates electric network branches
+ BUS2 BUS3 -1. 1.E9 2
+C The following card serves to name the switch following it. To see the
+C results of this activity, interactively execute the "SWITCH" command of
+C SPY, sending "EXTRA" for the alternative table. Another point: note
+C the exclamation point, which is needed to hold lower case within A6 name
+C (assuming KINSEN = 1 within STARTUP).
+ NAME: Valve ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11BUS2R BUS3R 20. GRID 13
+BLANK card ends all switches
+14GEN 66500. 50. -2.0508 -1.
+BLANK card terminates electric network sources
+C Total network loss P-loss by summing injections = -1.885346136987E-07
+C Note: preceding loss figure is meaningless since phasor network is
+C lossless. This is floating zero compared with MVA = 1.2E8.
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C BUS2 BUS3 -1.50498397E+01 -4.20286729E+02 4.20556099E+02
+C BUS2R BUS3R Open Open Open
+C
+C GEN 66457.406175675 66500. -12.86413577453 359.47829718693
+C -2379.740406308 -2.0508000 -359.248048233 -92.0508000
+C
+C Step Time BUS2 BUS2R BUS3R BUS2R BUS3 BUS2
+C BUS3 BUS3R BUS3R DUMMY
+C
+C TACS TACS TACS TACS TACS TACS
+C TIMEX UNITY BUS2 BUS3 VSW DRIVE
+C *** Phasor I(0) = -1.5049840E+01 Switch "BUS2 " to "BUS3 " closed
+C 0 0.0 0.0 0.0 64751.3498 64751.3498 64751.3498 64751.3498
+C 0.0 1.0 0.0 0.0 0.0 0.0
+C *** Open switch "BUS2 " to "BUS3 " after 1.00000000E-06 sec.
+C 1 .1E-5 0.0 0.0 64752.0751 64752.0751 64752.0751 64752.0751
+C .1E-5 1.0 64752.0751 64752.0751 0.0 0.0
+ 1 { Request for all node voltage outputs
+C Valve "BUS2R " to "BUS3R " closing after 3.09000000E-04 sec.
+C Valve "BUS2R " to "BUS3R " opening after 3.22000000E-04 sec.
+C Valve "BUS2R " to "BUS3R " closing after 4.97000000E-04 sec.
+C Valve "BUS2R " to "BUS3R " opening after 5.09000000E-04 sec.
+C Last step: 3000 .003 122346.542 122346.542 -88693.149 33653.3927 -88693.149
+C Last step: .003 1.0 33653.3927 -88693.149 122346.542 122346.542 550000. 0.0
+C Variable max:177392.698 177392.698 102764.956 84422.9848 102764.956 84422.9848
+C .003 1.0 84422.9848 102764.956 177392.698 177392.698
+C Times of max: .497E-3 .497E-3 .83E-4 .478E-3 .83E-4 .478E-3
+C .003 0.0 .478E-3 .83E-4 .497E-3 .497E-3
+C Variable min:-54570.793 -54570.793 -93851.678 13809.9875 -93851.678 33212.9087
+C 0.0 1.0 0.0 -93851.678 -54570.793 0.0
+C Times of min: .002745 .002745 .497E-3 .31E-3 .497E-3 .002982
+C 0.0 0.0 0.0 .497E-3 .002745 0.0
+ PRINTER PLOT
+ 184 .1 0.0 1.0 BUS2 BUS3 { Axis limits: (-0.386, 1.774)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 8 subcases illustrates the modeling of a transistor using TACS.
+C This is as described by its inventor, Naoto Nagaoka, in his paper entitled
+C "Large-signal transistor modeling using the ATP version of EMTP," which
+C appeared in the September, 1988, issue of EMTP News. See Sect. IV example
+ .000010 .003 { Note larger time step (10 times that of paper's graphs)
+ 1 1 1 1 1 -1
+ 5 5 20 20 50 50
+TACS HYBRID
+91BASEX { Transistor base current is passed from electric network to TACS
+90COLL { Transistor collector voltage is passed from electric network to TACS
+90EMIT { Transistor emitter voltage is passed from electric network to TACS
+88VCE = COLL - EMIT
+88NZERO = 1.E-12
+88BASEC263 NZERO BASEX 1.0
+88COLLCU = BASEC2 * 200. -0.25E-3 + VCE * ( BASEC2**0.947 ) / 1.352
+88EQUIV1 = VCE / COLLCU
+88TEMPR = 100.
+98EQUIVR63 TEMPR EQUIV1 1.0
+33EQUIVR
+77EQUIVR 2775. { Initial condition matches R during phasor solution
+BLANK card ending all TACS data cards
+91COLL EMIT TACS EQUIVR 3
+ NONLIN NAME:Type92 ! { Even tho name could go on next card, use this instead
+92BASE EMIT 4444.
+ -1.0E-3 -10.E3
+ 0.0 0.0
+ 0.1E-6 0.584
+ 1.0E-6 0.613
+ 3.0E-6 0.647
+ 5.0E-6 0.664
+ 10.0E-6 0.682
+ 20.0E-6 0.706
+ 30.0E-6 0.711
+ 9999
+ VCC COLL 3900. 1
+ COLL OUT 3.0000
+ OUT 2200.
+ EMIT 820.00
+ EMIT 10.000
+ VCC BASEX 55000.
+ BASEX 12000.
+ SINE BASEX 3.0
+ SINE 2000.
+ COLL EMIT NAME PHASOR 2780. { R(0) = 2780 ohms is present for t < 0 only
+BLANK card terminates all branch cards
+ BASEX BASE MEASURING 1
+BLANK card terminates all switch cards
+14VCC 12.0 .01 { dc power supply (collector) } -1.
+14SINE 40.E-3 1000. -90. { Amplifier input is 1 KHz sine wave
+BLANK card terminates source cards of electric network
+C Total network loss P-loss by summing injections = 1.067463086805E-02
+C Node-K Node-M I-real I-imag I-magn
+C BASEX BASE 0.00000000E+00 1.05879118E-22 1.05879118E-22
+C Gen: VCC 12. 12. .00177910514467 .0017791052761 .01067463086805
+C Gen: 0.0 0.0 .68384076675E-6 0.0220230 -.4103044601E-5
+ OUT COLL EMIT BASEX SINE
+C Step Time COLL OUT COLL EMIT BASEX SINE
+C EMIT
+C *** Phasor I(0) = 0.0000000E+00 Switch "BASEX " to "BASE " closed
+C 0 0.0 4.4479989 .197916E-5 5.75999803 1.31199913 2.14924482 .180994E-5
+C 1 .1E-4 4.44521153 -.00263941 5.75735464 1.31214311 2.15127714 .002511621
+C 2 .2E-4 .444370671 -3.9987412 1.75822147 1.3138508 2.15282414 .005013329
+C 3 .3E-4 .443906636 -3.9900316 1.76087902 1.31697238 2.15435666 .007495253
+BLANK ending output specification cards
+C 300 .003 2.38611281 -1.6984961 3.8051742 1.41906139 2.11753544 .16073E-14
+C maxima : 5.90958724 1.87782143 7.34957934 1.47345869 2.17056873 .04
+C Times max : .00168 .00266 .00167 .00135 .2E-3 .25E-3
+C minima : .426098973 -3.9987412 1.75822147 1.31199913 2.07778426 -.04
+C Times min : .44E-3 .2E-4 .2E-4 0.0 .00275 .75E-3
+ PRINTER PLOT
+ 194 .3 0.0 3.0 TACS EQUIVR { Axis limits: (0.000, 1.731)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 8 subcases is the same as the first except that it uses newer and
+C slower MODELS rather than older and faster TACS.
+ 1.0E-6 3.0E-3
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+MODELS
+INPUT bus2 {v(BUS2)}, bus3 {v(BUS3)}
+OUTPUT grid
+MODEL dc30
+ INPUT v2, v3
+ VAR grid
+ OUTPUT grid
+ EXEC
+ IF abs(v2-v3)>=1.5e8*t +1e5 THEN grid:=1 ELSE grid:=0 ENDIF
+ ENDEXEC
+ENDMODEL
+USE dc30 AS dc30
+ INPUT v2:=bus2, v3:=bus3
+ OUTPUT grid:=grid
+ENDUSE
+RECORD
+ dc30.v2 AS bus2
+ dc30.v3 AS bus3
+ dc30.grid AS grid
+ENDMODELS
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+BLANK card terminates electric network branches
+ BUS2 BUS3 -1. 1.E9 2
+11BUS2R BUS3R 20. GRID 13
+BLANK card ends all switches
+14GEN 66500. 50. -2.0508 -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses
+C --------------+------------------------------
+C GEN |BUS1 *
+C BUS1 |TERRA *GEN *BUS2 *
+C BUS2 |TERRA *BUS1 *BUS3 *BUS2R *
+C BUS3 |TERRA *TERRA *BUS2 *BUS3R *
+C BUS2R |BUS2 *BUS3R *
+C BUS3R |BUS3 *BUS2R *
+C TERRA |BUS1 *BUS2 *BUS3 *BUS3 *
+C --------------+------------------------------
+BLANK card terminates electric network sources
+C Total network loss P-loss by summing injections = 9.738141670823E-08
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C BUS2 BUS3 -1.50498397E+01 -4.20286729E+02 4.20556099E+02
+C BUS2R BUS3R Open Open Open
+C Gen ends: -12.86413577452 359.47829718648 -.3492459655E-9 .119526533815E8
+C Gen ends: -359.2480482325 -92.0508000 .119526533815E8 0.0000000
+C
+C Step Time BUS2 BUS2R BUS3R BUS2R BUS3 BUS2
+C BUS3 BUS3R
+C
+C TACS TACS
+C BUS3 GRID
+C *** Phasor I(0) = -1.5049840E+01 Switch "BUS2 " to "BUS3 " closed
+C 0 0.0 0.0 0.0 64751.3498 64751.3498 64751.3498 64751.3498
+C 64751.3498 0.0
+C *** Open switch "BUS2 " to "BUS3 " after 1.00000000E-06 sec.
+C 1 .1E-5 0.0 0.0 64752.0751 64752.0751 64752.0751 64752.0751
+C 64752.0751 0.0
+ 1
+C 3000 .003 122346.542 122346.542 -88693.149 33653.3927 -88693.149 33653.3927
+C -88693.149 0.0
+C Variabl max: 177392.698 177392.698 102764.956 84422.9848 102764.956 84422.9848
+C 102764.956 1.0
+C Times of max: .497E-3 .497E-3 .83E-4 .478E-3 .83E-4 .478E-3
+C .83E-4 .309E-3
+C Variabl min: -54570.793 -54570.793 -93851.678 13809.9875 -93851.678 33212.9087
+C -93851.678 0.0
+C Times of min: .002745 .002745 .497E-3 .31E-3 .497E-3 .002982
+C .497E-3 0.0
+ PRINTER PLOT
+ 184 .1 0.0 1.0 BUS2 BUS3 { Axis limits: (-0.386, 1.774)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 8 subcases is the same as the first and the third, except that
+C it uses both TACS and MODELS. The voltages BUS2 and BUS3 are input to TACS.
+C VSW is output from TACS and input to MODELS. GRID is output from MODELS.
+C Compare values at t=0 with 3rd subcase. Ending time TMAX should be
+C extended to 3 msec if all 3000 steps are desired. Here, to save time
+C (because MODELS simulates very slowly), only 600 steps will be simulated.
+C 18 January 2003, add both the new Type-27 TACS source and the following
+C optional request for timing. Note that the 6th subcase has the source,
+C but not the declaration. As a result, dT-size differences will exist
+C for the signals that are passed between TACS and MODELS.
+MODELS BEFORE TACS { Reverse the default order of computation at each time step
+ 1.0E-6 0.6E-3
+ 1 1 0 0 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW = BUS2 - BUS3
+27DV { MODELS variable DV will define Type-27 TACS source of the same name
+33BUS2 BUS3 VSW DV
+BLANK card ends all TACS data
+MODELS
+INPUT deltav {TACS(vsw)}
+OUTPUT grid
+MODEL dc30
+ INPUT dv
+ VAR grid
+ OUTPUT grid
+ EXEC
+ IF abs(dv)>=1.5e8*t +1e5 THEN grid:=1 ELSE grid:=0 ENDIF
+ ENDEXEC
+ENDMODEL
+USE dc30 AS dc30
+ INPUT dv:=deltav
+ OUTPUT grid:=grid
+ENDUSE
+RECORD
+ dc30.dv AS dv
+ENDMODELS
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+BLANK card terminates electric network branches
+ BUS2 BUS3 -1. 1.E9
+C The following card serves to name the switch following it. To see the
+C results of this activity, interactively execute the "SWITCH" command of
+C SPY, sending "EXTRA" for the alternative table. Another point: note
+C the exclamation point, which is needed to hold lower case within A6 name
+C (assuming KINSEN = 1 within STARTUP).
+ NAME: Valve ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11BUS2R BUS3R 20. GRID 12
+BLANK card ends all switches
+14GEN 66500. 50. -2.0508 -1.
+BLANK card terminates electric network sources
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 4 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Next 1 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time BUS2R TACS TACS TACS TACS MODELS
+C BUS3R BUS2 BUS3 VSW DV DV
+C *** Phasor I(0) = -1.5049840E+01 Switch "BUS2 " to "BUS3 " closed in the steady-state.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C *** Open switch "BUS2 " to "BUS3 " after 1.00000000E-06 sec.
+C 1 .1E-5 0.0 64752.0751 64752.0751 0.0 0.0 0.0
+C 2 .2E-5 -506.98951 64680.6667 65187.6562 -506.98951 0.0 0.0
+C 3 .3E-5 -1509.364 64544.7937 66054.1577 -1509.364 -506.98951 -506.98951
+C 4 .4E-5 -2482.2238 64430.506 66912.7297 -2482.2238 -1509.364 -1509.364
+BLANK card ending node voltage request
+C 300 .3E-3 139427.112 64952.7749 -74474.337 139427.112 138735.778 138735.778
+C Valve "BUS2R " to "BUS3R " closing after 3.10000000E-04 sec.
+C Valve "BUS2R " to "BUS3R " opening after 3.23000000E-04 sec.
+C 400 .4E-3 80675.1617 83379.4041 2704.24245 80675.1617 77287.9568 77287.9568
+C Valve "BUS2R " to "BUS3R " closing after 4.99000000E-04 sec.
+C 500 .5E-3 0.0 73856.3228 -30892.73 104749.053 178498.741 178498.741
+C Valve "BUS2R " to "BUS3R " opening after 5.03000000E-04 sec.
+C 600 .6E-3 77132.9224 58368.5333 -18764.389 77132.9224 77569.8407 77569.8407
+C Variable maxima : 178498.741 84889.8318 102764.956 178498.741 178498.741 178498.741
+C Times of maxima : .499E-3 .499E-3 .83E-4 .499E-3 .5E-3 .5E-3
+C Variable minima : -38620.899 0.0 -93608.909 -38620.899 -38620.899 -38620.899
+C Times of minima : .85E-4 0.0 .499E-3 .85E-4 .86E-4 .86E-4
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 8 subcases is the same as the 1st (using TACS only) except that
+C it uses the pocket calculator in place of Dube's logic for supplemental
+C variables. Answers should be identical except for roundoff error. Since
+C the same as 1st subcase, connectivity and phasor outputs will be omitted
+C as well as plotting.
+C TACS ASSEMBLY LANGUAGE { Temporary request for use of pocket calculator
+TACS POCKET CALCULATOR { 12 January 2001, this new line replaces preceding
+ 1.0E-6 .000600
+ 1 1 0 0 0 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW = BUS2 - BUS3
+99DRIVE = ABS(VSW)
+99BREAK = 1.5E+8 * TIMEX + 1.0E+5
+98GRID 51+UNITY BREAK DRIVE
+33DUMMY TIMEX UNITY BUS2 BUS3 VSW DRIVE BREAK GRID
+BLANK card ends all TACS data
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+BLANK card terminates electric network branches
+ BUS2 BUS3 -1. 1.E9 2
+ NAME: Valve ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11BUS2R BUS3R 20. GRID 13
+BLANK card ends all switches
+14GEN 66500. 50. -2.0508 -1.
+BLANK card terminates electric network sources
+ 1 { Request for all node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 8 subcases is the same as the 4th, except that it demonstrates
+C the sorting of TACS and MODELS data using /TACS and /MODELS requests.
+C Created 3 July 1998, this should be mentioned in the July newsletter
+C (see "Furnas" or "DC-30").
+C 18 January 2003, add both the new Type-27 TACS source. Note that the
+C 4th subcase is modified similarly. In addition, MODELS BEFORE TACS was
+C added to the 4th subcase, but not here. As a result, dT-size differences
+C will exist for the signals that are passed between TACS and MODELS.
+ 1.E-6 5.E-6 { Only take 5 steps; these are plenty for illustration
+ 1 -1
+TACS HYBRID { Request to begin TACS data appears just once
+/MODELS
+MODELS { Request to begin MODELS data appears just once
+C End of fixed data. Begin variable /-cards, which can appear in any
+C order. To illustrate that TACS data really will be sorted to precede
+C MODELS data, note that /TACS follows /MODELS in the following.
+C I.e., we rely on /-card sorting to correct this. TACS data is
+C separate and distinct from MODELS data just as branch data is
+C separate and distinct from switch or source data.
+/MODELS
+INPUT deltav {TACS(vsw)}
+OUTPUT grid
+MODEL dc30
+ INPUT dv
+ VAR grid
+ OUTPUT grid
+ EXEC
+ IF abs(dv)>=1.5e8*t +1e5 THEN grid:=1 ELSE grid:=0 ENDIF
+ ENDEXEC
+ENDMODEL
+USE dc30 AS dc30
+ INPUT dv:=deltav
+ OUTPUT grid:=grid
+ENDUSE
+RECORD
+ dc30.dv AS dv
+/TACS
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW = BUS2 - BUS3
+27DV { MODELS variable DV will define Type-27 TACS source of the same name
+33BUS2 BUS3 VSW DV
+/BRANCH
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+/SWITCH
+ BUS2 BUS3 -1. 1.E9
+ NAME: Valve ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11BUS2R BUS3R 20. GRID 12
+/SOURCE
+14GEN 66500. 50. -2.0508 -1.
+/OUTPUT
+C Step Time BUS2R TACS TACS TACS TACS MODELS
+C BUS3R BUS2 BUS3 VSW DV DV
+C *** Phasor I(0) = -1.5049840E+01 Switch "BUS2 " to "BUS3 " closed in the steady-state.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C *** Open switch "BUS2 " to "BUS3 " after 1.00000000E-06 sec.
+C 1 .1E-5 0.0 64752.0751 64752.0751 0.0 0.0 0.0
+C 2 .2E-5 -506.98951 64680.6667 65187.6562 -506.98951 0.0 -506.98951
+C 3 .3E-5 -1509.364 64544.7937 66054.1577 -1509.364 -506.98951 -1509.364
+C 4 .4E-5 -2482.2238 64430.506 66912.7297 -2482.2238 -1509.364 -2482.2238
+C 5 .5E-5 -3414.3602 64348.9091 67763.2693 -3414.3602 -2482.2238 -3414.3602
+C End of /-card data. The only thing that remains are the various blank
+C cards that terminate the various data classes. Note the one for MODELS
+C (optional for MODELS, but necessary for sorting):
+BLANK card terminates all TACS data
+BLANK card ends all MODELS data
+ENDMODELS
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+C Comment about 6 lines above. Note ENDMODELS has like the initiation
+C word MODELS: there is only one of them, and has nothing to do with
+C the actual modeling. It is part of the structure in which actual data
+C is carried. Normally, ENDMODELS would precede the blank card ending
+C MODELS, but with sorting that is not possible. /-card sorting will
+C put the actual data there. If we raise ENDMODELS line by one row,
+C it would precede all real MODELS data, and that would be completely
+C wrong. So, we put it after the blank. Recall MODELS ignores blank
+C lines, so the blank card ending MODELS is ignored. It is essential
+C to the sorting, but then is ignored by MODELS itself. Since it was
+C optional, anyway, this works well.
+BEGIN NEW DATA CASE
+C 7th of 8 subcases is the same as the 1st (using TACS only) except that
+C it uses secret relay modeling in place of Dube's logic for supplemental
+C variables. Answers should be identical except for possible roundoff error
+C and the more serious logic difference between a valve and a switch. Every
+C time step between 320 and 520 is printed to show time steps 322 and 509
+C at which the output current differs. The 1st of these enters minima, to
+C make one line different. These are merely isolated output differences
+C between an ATP switch and an ATP valve; in fact, internal solution signals
+C are identical. Except for the lines mentioned, dT-loop output is identical.
+C Let's document the first difference. Relay modeling produces this:
+C *** Open switch "BUS2R " to "BUS3R " after 3.22000000E-04 sec.
+C 322 .322E-3 -12.461019 ... 66357.9825 0.0
+C whereas the original TACS modeling produces the following output:
+C Valve "BUS2R " to "BUS3R " opening after 3.22000000E-04 sec.
+C 322 .322E-3 -12.461019 ... 66357.9825 -.25597819
+C The relay modeling, using a switch, shows output that has been forced to
+C zero whereas the valve modeling shows the illegal reverse current (less
+C than the 20-amp I-epsilon threshold) that prompted the opening. This value
+C -.25597819 is the only way that extrema differ (relay modeling has zero).
+C About simulation speed, this relay modeling should be the fastest by far.
+C Use of MODELS is shockingly slow, TACS is what it is, and the new relay
+C modeling should be faster than compiled TACS, so perhaps 10 times faster
+C than conventional (not compiled) TACS. Begin with the CSRM request. This
+C precedes the list of relay connections. IRELAY is to be a positive integer
+C if not blank or zero. This is the sampling multiple (here, unity):
+C 345678901234567890123456789012<-IRELAY { Ruler for sampling multiple in 33-40.
+CONNECT SECRET RELAY MODELS 1 { This is optional (a blank or 0 ==> 1)
+C The A10 relay name "DC-30H " in the middle of 3 data lines below serves
+C only to select logic for the 8th subcase rather than the 7th. This is not
+C at all realistic. For real use, the name typically would select different
+C relay logic from a catalog of available relay types offered by some vendor.
+C Input 2A6 names Name of 2A6 names of
+C class of variable relay ATP switch
+C A15 >< A6 >< A6 > < A10 >< A6 >< A6 > { Ruler for data. A15, 2A6, A10, ...
+Branch voltage BUS2 BUS3 DC-30g BUS2R BUS3R { Use relay named DC-30g, 1 input V, ...
+END RELAY CONNECTIONS { End indeterminate list of connections to secret relays
+ 1.0E-6 3.0E-3
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 320 1 520 20
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+BLANK card terminates electric network branches
+ BUS2 BUS3 -1. 1.E9 2
+C Preceding 1st of 2 switches is unchanged. The 2nd is modified as follows:
+C 11BUS2R BUS3R 20. { Valve of DC-30 } GRID 13
+C Switch data: T-close T-open I-epsiln --- ruler for a Type-0 switch
+ BUS2R BUS3R 999. 0.0 20. 3
+C The type code has changed from 11 to 0. The same 20 amps of current margin
+C is used, although columns differ (valve vs. time-controlled switch). Note
+C T-close = 999. in columns 15-24 simply is a large time that never will be
+C reached. Were it not for the relay logic, this switch would remain open
+C for the entire simulation. T-open is not used (will be set internally),
+C so can be left blank or zero. The current margin does make a difference;
+C if erased or set to zero, opening would be delayed by several time steps.
+BLANK card ends all switches
+14GEN 66500. 50. -2.0508 -1.
+BLANK card terminates electric network sources
+ 1 { Request for all node voltage outputs
+ PRINTER PLOT
+ 184 .1 0.0 1.0 BUS2 BUS3 { Axis limits: (-0.386, 1.774)
+BLANK card ending plot cards
+$DISABLE
+BEGIN NEW DATA CASE
+C BENCHMARK DC-30, chopped. TACS outputs (the "33" card) have been
+C eliminated for easy comparison using Mike Albert's freeware FC. It
+C is informative to compare output of this with output of 7th subcase.
+ 1.0E-6 3.0E-3
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 320 1 520 20
+TACS HYBRID
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW = BUS2 - BUS3
+99DRIVE = ABS(VSW)
+99BREAK = 1.5E+8 * TIMEX + 1.0E+5
+98GRID 51+UNITY BREAK DRIVE
+C 33DUMMY TIMEX UNITY BUS2 BUS3 VSW DRIVE BREAK GRID
+BLANK card ends all TACS data
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+BLANK card terminates electric network branches
+ BUS2 BUS3 -1. 1.E9 2
+ NAME: Valve ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11BUS2R BUS3R 20. GRID 13
+BLANK card ends all switches
+14GEN 66500. 50. -2.0508 -1.
+BLANK card terminates electric network sources
+ 1 { Request for all node voltage outputs
+ PRINTER PLOT
+ 184 .1 0.0 1.0 BUS2 BUS3 { Axis limits: (-0.386, 1.774)
+BLANK card ending plot cards
+$ENABLE
+BEGIN NEW DATA CASE
+C 8th of 8 subcases continues with external relay modeling. Unlike the
+C preceding subcase, this has multiple relays with multiple inputs and
+C multiple outputs (i.e., a relay controls more than 1 circuit breaker).
+C 20 steps of 1 msec are taken to traverse one 50-Hz cycle.
+PRINTED NUMBER WIDTH, 9, 2, { Request maximum precision (for 12 output columns)
+CONNECT SECRET RELAY MODELS { Request that precedes list of relay connections
+C The A10 relay name "DC-30H " in the middle of 3 data lines below serves
+C only to select logic for the 8th subcase rather than the 7th. This is not
+C at all realistic. For real use, the name typically would select different
+C relay logic from a catalog of available relay types offered by some vendor.
+C Input 2A6 names Name of 2A6 names of
+C class of variable relay ATP switch
+C A15 >< A6 >< A6 > < A10 >< A6 >< A6 > { Ruler for data. A15, 2A6, A10, ...
+DIAGNOSTIC 9 { Debug print just for relays is located as if overlay 1
+Branch voltage REC DC-30H SEND REC { Relay 1, input is node voltage REC
+ GEN EXTRA { 2nd output for preceding relay # 1
+Switch current GEN SWIT DC-30H NAME: BREAK2 { Relay 2, input current GEN to SWIT
+C Preceding "NAME: BREAK2" could just as well be replaced by "SWIT SEND "
+Branch voltage GEN SEND { 2nd input for preceding relay is voltage
+Branch voltage REC DC-30H EXTRA PLUS { Relay 3, input is node voltage REC
+Switch status SEND SWIT { 2nd input for preceding is switch status
+Output signal SEND REC { 3rd input for preceding is output vector
+R-L-C current PLUS { 4th input ... is current of series R-L-C
+Switch power GEN SWIT DC-30H GEN SWIT { Relay 4, input is power GEN to SWIT
+R-L-C power PLUS { 2nd input for preceding is R-L-C power
+C 3456789012345678901234567890123456789012345678901
+C TACS signal --- 1st of 2 relay input request words that is not illustrated
+C MODELS signal --- 2nd of 2 relay input request words that is not illustrated
+END RELAY CONNECTIONS { End indeterminate list of connections to secret relays
+C The preceding addresses relay connections that are under user control. In
+C addition, there might be hidden connections that are built into a relay.
+C This is illustrated for Relay 3, which has two such special outputs. 1st,
+C in the .LIS file, there will be seen two lines that confirm any change
+C of switch status of that 2nd input to Relay 3. Look for 2 such messages:
+C After step 5: Notice from model of relay 3: switch has just opened.
+C After step 19: Notice from model of relay 3: switch has just closed.
+C Also seen in the .LIS file, and also present in any .PL4 file of plot
+C points, will be one appended signal. In the dT-loop heading, this is
+C identified by the pair of names RELAY3 and SIGNAL. The 1st of these
+C names is built by ATP, and indicates an appended signal from relay # 3.
+C The 2nd name comes from the code for relay # 3. It is built in code.
+C In this case, relay input number 5 simply is passed back as the relay
+C signal. About interpretation of CSRM data, the 10-character relay name
+C normally will be confirmed within quotation marks. That is if there is
+C no appended signal. A relay that has an appended signal will have the
+C A10 relay name replaced by (A6) followed by the 6-character variable
+C name. For this data, look for "(A6)SIGNAL" where SIGNAL is the
+C second of the two names that identify the appended output variable.
+C Relay # 4 is particularly degenerate in that it has no associated relay
+C logic! Yes, it has an output (a switch), but code will never send a
+C signal to that switch. Those 2 inputs (numbers 7 and 8) were defined
+C by relay 4, but in fact they are not used by any relay code. Values
+C are selectively documented, one time step for each:
+C Relay 4 documents relay input # 7 = switch power = 0.26967E+01
+C Relay 4 documents relay input # 8 = series R-L-C power = 0.24811E+02
+ .001 .020 { Take 20 1-msec steps through the 20 msec of a 50-Hz cycle
+ 1 1 1 0 1
+ GEN SWIT 6.0
+ SWIT SEND 1.0
+ SEND REC 2.0 1
+ REC 1.0
+ EXTRA PLUS 1.0 { Extra resistance will be shorted at 12 msec
+ PLUS 1.0 5.0 { Mostly-inductive branch delays zero} 1
+BLANK card terminates electric network branches
+C Switch data: T-close T-open I-epsiln --- ruler for a Type-0 switch
+ GEN SWIT -1. 999. 0.0 3
+C A6 name BREAK2 applies to the following switch. It is used by relay input:
+ NAME: BREAK2 { Request "NAME: " of cols. 3-8 precedes A6 switch name in 9-14
+ SWIT SEND -1. 999. .001 3
+ SEND REC 999. 0.0 0.0 2
+ GEN EXTRA 999. 0.0 0.0 3
+ EXTRA PLUS -1. 999. 0.0 3
+C Note about preceding switch (SEND, REC) which has the exceptional output
+C request "2" in col. 80, so just switch voltage. Originally, this was a
+C "3" for both voltage and current, and the series R-L-C branch having the
+C same names (so in parallel) had no output request. I.e., originally it was
+C a branch and not a switch current that was displayed. But this was not as
+C interesting when passed back from the relay as an appended output. As a
+C switch current, it agreed with the original. But as a branch current, one
+C will note a one time-step delay. In general, an OUTPUT request might be
+C stale by one dT (it depends on the variable). This illustrates the problem.
+C This illustrates that for a series R-L-C branch, one time step is lost as
+C the output is passed to the relay & back again. Not so for switch current.
+C The 2 right-most cols. of dT-loop output make the delay immediately obvious.
+C An implied detail of a relay OUTPUT request is this: it is output vector
+C current, not voltage, that will be fed to relays. In terms of batch-
+C mode plotting, this is Type 9 not 8 (branch voltage) or 4 (node voltage).
+C There is no loss of generality since only current is of interest. Voltage
+C is available via a VOLTAGE request, so one never would need to go to the
+C output vector to find it.
+BLANK card ends all switches
+14GEN 10.0 50. 0.0 -1.
+BLANK card terminates electric network sources
+C <<<< Next, show delayed input that is associated with preceding CONNECT SECRET RELAY MODELS declaration.
+C Debug printout control as if overlay 1 (col. 22) |DIAGNOSTIC 9 { Debug print just for relays is located as if overlay 1
+C Relay 1. "DC-30H " Input # 1 Switch # 3 |Branch voltage REC DC-30H SEND REC { Relay 1, input is node volt
+C Continuation. Switch # 4 | GEN EXTRA { 2nd output for preceding re
+C Relay 2. "DC-30H " Input # 2 Switch # 2 |Switch current GEN SWIT DC-30H NAME: BREAK2 { Relay 2, input current GEN
+C Continuation. Input # 3 |Branch voltage GEN SEND { 2nd input for preceding relay is
+C Relay 3. "(A6)SIGNAL" Input # 1 Switch # 5 |Branch voltage REC DC-30H EXTRA PLUS { Relay 3, input is node volt
+C Continuation. Input # 4 |Switch status SEND SWIT { 2nd input for preceding is switch
+C Continuation. Input # 5 |Output signal SEND REC { 3rd input for preceding is output
+C Continuation. Input # 6 |R-L-C current PLUS { 4th input ... is current of serie
+C Relay 4. "DC-30H " Input # 7 Switch # 1 |Switch power GEN SWIT DC-30H GEN SWIT { Relay 4, input power GEN to
+C Continuation. Input # 8 |R-L-C power PLUS { 2nd input for preceding is R-L-C
+C Terminator of external relay connection data. |END RELAY CONNECTIONS { End indeterminate list of connections to secret relays
+C <<<< End of insertion that is associated with delayed input of external relay connections. All relay names were recognized.
+C Column headings for the 12 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 5 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN SWIT SEND GEN EXTRA GEN SWIT GEN EXTRA SEND PLUS RELAY3
+C SWIT SEND REC EXTRA PLUS SWIT SEND EXTRA PLUS REC TERRA SIGNAL
+C *** Phasor I(0) = 3.3333333E+00 Switch "GEN " to "SWIT " closed in the steady-state.
+C *** Phasor I(0) = 3.3333333E+00 Switch "SWIT " to "SEND " closed in the steady-state.
+C *** Phasor I(0) = 0.0000000E+00 Switch "EXTRA " to "PLUS " closed in the steady-state.
+C 0 0.0 0.0 0.0 6.66667 10. 0.0 3.33333 3.33333 0.0 0.0 3.33333 0.0 0.0
+C *** External relay number 2 permits circuit breaker from "SWIT " to "SEND " to open after time T = 1.00000000E-03 sec.
+C 1 .1E-2 0.0 0.0 6.34038 9.51057 0.0 3.17019 3.17019 0.0 0.0 3.17019 0.0 3.33333
+C Relay 4 documents relay input # 7 = switch power = 0.26967E+01
+C 2 .002 0.0 0.0 5.39345 8.09017 0.0 2.69672 2.69672 0.0 0.0 2.69672 0.0 3.17019
+C 3 .003 0.0 0.0 3.91857 5.87785 0.0 1.95928 1.95928 0.0 0.0 1.95928 0.0 2.69672
+BLANK card ending node voltage outputs
+C 4 .004 0.0 0.0 2.06011 3.09017 0.0 1.03006 1.03006 0.0 0.0 1.03006 0.0 1.95928
+C *** Open switch "SWIT " to "SEND " after 5.00000000E-03 sec.
+C Notice from model of relay 3: switch has just opened.
+C 5 .005 0.0 0.0 -.3E-15 -.4E-15 0.0 -.1E-15 0.0 0.0 0.0 -.1E-15 0.0 1.03006
+C 6 .006 0.0 -.77254 -1.5451 -3.0902 0.0 -.77254 0.0 0.0 0.0 -.77254 0.0 -.1E-15
+C 7 .007 0.0 -1.4695 -2.9389 -5.8779 0.0 -1.4695 0.0 0.0 0.0 -1.4695 0.0 -.77254
+C *** External relay number 1 forces circuit breaker from "SEND " to "REC " to close after time T = 8.00000000E-03 sec.
+C The same relay forces circuit breaker from "GEN " to "EXTRA " to close at this same time.
+C 8 .008 0.0 -2.0225 -4.0451 -8.0902 0.0 -2.0225 0.0 0.0 0.0 -2.0225 0.0 -1.4695
+C 9 .009 0.0 -4.7553 0.0 0.0 0.0 -4.7553 0.0 -.8646 -.8646 0.0 -.8646 -2.0225
+C Relay 4 documents relay input # 8 = series R-L-C power = 0.24811E+02
+C 10 .01 0.0 -5. 0.0 0.0 0.0 -5. 0.0 -2.4811 -2.4811 0.0 -2.4811 0.0
+C Notice from model of relay 3 : series R-L-C branch current first exceeds 3 amperes at time 11.0 milliseconds.
+C 11 .011 0.0 -4.7553 0.0 0.0 0.0 -4.7553 0.0 -3.8037 -3.8037 0.0 -3.8037 0.0
+C 12 .012 0.0 -4.0451 0.0 0.0 0.0 -4.0451 0.0 -4.7122 -4.7122 0.0 -4.7122 0.0
+C *** External relay number 3 forces circuit breaker from "EXTRA " to "PLUS " to open after time T = 1.30000000E-02 sec.
+C 13 .013 0.0 -2.9389 0.0 0.0 0.0 -2.9389 0.0 -5.1252 -5.1252 0.0 -5.1252 0.0
+C 14 .014 0.0 -1.5451 0.0 0.0 -4.5913 -1.5451 0.0 -4.5913 0.0 0.0 -4.5913 0.0
+C *** Open switch "SEND " to "REC " after 1.50000000E-02 sec.
+C 15 .015 0.0 .1E-13 0.0 0.0 -3.3183 .1E-13 0.0 -3.3183 0.0 0.0 -3.3183 0.0
+C 16 .016 0.0 .772542 1.54508 0.0 -1.9547 .772542 0.0 -1.9547 0.0 .772542 -1.9547 0.0
+C 17 .017 0.0 1.46946 2.93893 0.0 -.55581 1.46946 0.0 -.55581 0.0 1.46946 -.55581 .772542
+C *** Open switch "GEN " to "EXTRA " after 1.80000000E-02 sec.
+C 18 .018 0.0 2.02254 4.04508 0.0 .793462 2.02254 0.0 0.0 0.0 2.02254 .793462 1.46946
+C *** External relay number 2 forces circuit breaker from "SWIT " to "SEND " to close after time T = 1.90000000E-02 sec.
+C 19 .019 0.0 2.37764 4.75528 23.9484 0.0 2.37764 0.0 0.0 0.0 2.37764 -.1E-14 2.02254
+C Notice from model of relay 3: switch has just closed.
+C 20 .02 0.0 0.0 6.66667 -4.4379 0.0 3.33333 3.33333 0.0 0.0 3.33333 .14E-14 2.37764
+C Variable maxima : 0.0 2.37764 6.66667 23.9484 .793462 3.33333 3.33333 0.0 0.0 3.33333 .793462 3.33333
+C Times of maxima : 0.0 .019 0.0 .019 .018 .02 0.0 0.0 0.0 0.0 .018 .1E-2
+C Variable minima : 0.0 -5. -4.0451 -8.0902 -4.5913 -5. 0.0 -5.1252 -5.1252 -2.0225 -5.1252 -2.0225
+C Times of minima : 0.0 .01 .008 .008 .014 .01 .005 .013 .013 .008 .013 .009
+ PRINTER PLOT
+C So, what relay logic produced the preceding? Very simple and artificial.
+C Logic will be summarized here in words, for completeness:
+C Relay 1. It uses 1st of 8 relay inputs, which is a branch voltage. If
+C the relay already has closed, input is ignored. If not, a
+C voltage less than or equal to -2.0 will close the relay.
+C Relay 2. It uses 2nd of 8 relay inputs, which is a switch current. If
+C the initially-closed relay waits to open, and if current is
+C greater than or equal to 2.1, the relay opens. If relay is
+C open, wait until time reaches or exceeds 19 msec to reclose.
+C Once reclosed, it stays closed.
+C Relay 3. It uses 4th of 8 relay inputs, which is a switch status,
+C to issue those messages about opening or closing (2 messages).
+C It uses 5th of 8 relay inputs, which is current of the output
+C vector, as a variable that ATP will append to its output vector.
+C It uses 6th of 8 relay inputs, which is current of series R-L-C,
+C to produce output when it first exceeds 3 amperes. About opening,
+C (relay 3 begins closed), this is allowed beginning at 12 msec.
+C Relay 4. No logic. It switches nothing. It just documents inputs 7 & 8.
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc31.dat b/benchmarks/dc31.dat
new file mode 100644
index 0000000..4b6aa3d
--- /dev/null
+++ b/benchmarks/dc31.dat
@@ -0,0 +1,486 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-31
+C Simulation of single-line-to-ground-fault on the open receiving end of the
+C single-circuit, 138-mile, 500-kV overhead line that connects "John Day"
+C with "lower monumental" (BPA substations). Semlyen representation from
+C DC-29 is used for the line. See DCNEW-4 for the corresponding Marti
+C simulation. See Rule Book Ref. 3 for further description. Yet observe
+C that source angles and the instant of fault initiation do not correspond.
+C There are a total of 3 subcases, with two following unrelated to this
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .050 60. 60.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+ JDGA JDA 14. 1
+ JDGB JDB 14.
+ JDGC JDC 14.
+C L= 138.0MILES, RHO= 27.0, SS FREQ= 60.00, NSS=0, KFIT= 0, KPS=2, KYC=10
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 27. 5000. 1 138.
+C 27. 60.00 1 138.
+C 27. 6.00 1 138. 6 20
+C
+-1JDA LMA 0.55456E-02 0.77998E-03 1 1 2 2 3
+ 0.14938602E+02 0.90516313E+02-0.16261865E-03 0.14500324E-02 0.60000000E+02
+ 0.00000E+00 0.15161E+05 0.75119E+00 0.00000E+00 0.17105E+04 0.24881E+00
+ 0.00000E+00 0.59584E+03-0.11954E-02 0.00000E+00 0.39933E+05-0.74162E-03
+-1JDB LMB 0.74392E-02 0.74149E-03 2 2 2 2 3
+ 0.83801231E+00 0.38634735E+02-0.44536501E-04 0.20637999E-02 0.60000000E+02
+ 0.00000E+00 0.26608E+06 0.83767E+00 0.00000E+00 0.35627E+05 0.16233E+00
+ 0.00000E+00 0.13630E+03-0.49171E-03 0.00000E+00 0.32940E+05-0.75349E-04
+-1JDC LMC 0.42823E-02 0.74017E-03 3 3 2 2 3
+ 0.26535168E+01 0.67894100E+02-0.45225808E-04 0.11682248E-02 0.60000000E+02
+ 0.00000E+00 0.61698E+06 0.90903E+00 0.00000E+00 0.15239E+05 0.90969E-01
+ 0.00000E+00 0.25667E+03-0.34465E-03 0.00000E+00 0.11831E+05-0.28233E-04
+ 0.10000E+01 0.00000E+00 0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.71114E+00 0.00000E+00-0.41983E-15 0.00000E+00 0.10000E+01 0.00000E+00
+ 0.10000E+01 0.00000E+00-0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00 0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+ 0.22471E+00 0.00000E+00-0.27373E-15 0.00000E+00 0.84054E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00-0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+C Note: the preceding branch cards are old. If produced by SEMLYEN SETUP
+C on or after 27 November 2000, the low precision [Tv] and [Ti] would
+C be replaced by high precision for the real parts only. This can be
+C seen from current output of DC-29. 6E12.5 ---> 3E26.18 We retain
+C the old branch cards in this subcase to demonstrate that such old data
+C continues to remain compatible. See NO IMAGINARY PART as is being
+C written about for the April, 2001, newsletter. To see use of the new
+C wide format for [Tv] and [Ti], see DC-62.
+ TOWER 2.0
+BLANK card ending branch cards
+ LMA TOWER .00433 1.0 1
+BLANK card terminating all switch cards
+14JDGA 303000. 60. -90. -1.
+14JDGB 303000. 60. -210. -1.
+14JDGC 303000. 60. 30. -1.
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = -4.779046825640E+06
+C Last inject: JDGC 262405.69734669 303000. -173.5167762169 331.67972792735
+C Last inject: 151500. 30.0000 282.67184205232 121.5434868
+ LMA LMB LMC JDA JDC
+C Step Time LMA LMB LMC JDA JDC
+C
+C 0 0.0 1571.475581 -276456.932 278765.7622 153.7361338 266363.1031
+C 1 .5E-4 7630.423588 -279401.215 275709.5695 5941.026761 263392.9685
+C 2 .1E-3 13684.53899 -282253.973 272563.1515 11741.29345 260360.8975
+C 3 .15E-3 19733.66162 -285005.65 269320.0035 17534.50579 257232.6923
+BLANK card ending output variable requests
+C Last step begins: 1000 .05 -4383.86263 -267262.886 294635.7149
+C Last step continue ..... : -3765.02773 266358.2578 -2191.93132 -2002.40336
+C Variable max : 321290.8039 382325.3516 420199.3815 307502.4578 313056.9229
+C Times of max : .00415 .0271 .015 .00415 .01555
+C Variable min : -4633.97345 -375865.379 -529913.225 -303202.542 -357915.083
+C Times of min : .01665 .01825 .0061 .01245 .00685
+ PRINTER PLOT { Axis limits: (-5.299, 4.202)
+ 2Simulation of fault at Lower Monumental end of 138-mile line to John Day.
+ 1 SMOOTH
+ PRINT HEAD OFF
+ Voltage at Lower Monumental, where "a"-phase is faulted at 4.33 msec.
+ 144 2. 0.0 20. LMA LMB LMC Lower Mon. Fault voltage in volt
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 2nd of 3 data subcases is unrelated to the 1st. 3rd will be compared with it
+C 1973 GPU Stolle Road to Homer City line energization without surge arresters
+C These extra two cases are added to document Prof. Xusheng Chen's transformer
+C as described in January, 1993, newsletter.
+ .000050 .050 60. 60. { Increase deltat from 25 microsecs of '70s
+ 100 1 0 0 1
+ SORA GARA 3.06
+ SORB GARB 3.06
+ SORC GARC 3.06
+-1GARA ST1A .6109 2.3280 3.02 12.44
+-2GARB ST1B .1278 .79260 5.36 12.44
+-3GARC ST1C
+ 1GARA ERIA 6.2245
+ 2GARB ERIB 2.4289 6.2245
+ 3GARC ERIC 2.4289 2.4289 6.2245
+ 1GARA DAVA 21.905
+ 2GARB DAVB 10.465 21.905
+ 3GARC DAVC 10.465 10.465 21.905
+-1ERIA ST1A .6701 2.3608 3.02 10.70
+-2ERIB ST1B .1000 .71960 5.36 10.70
+-3ERIC ST1C
+-1ROLA ST1A .6342 2.3507 3.02 20.27
+-2ROLB ST1B .1005 .72150 5.36 20.27
+-3ROLC ST1C
+-1DAVA ST1A .6641 2.3641 3.02 14.53
+-2DAVB ST1B .0998 .71990 5.36 14.53
+-3DAVC ST1C
+ TRANSFORMER 21.3 249.1TRANA 1
+ 21.3 249.1
+ 99.8 274.0
+ 236.9 288.9
+ 1602. 326.3
+ 9999.
+ 1SWPA 0.0 -1.11 115.
+ 2ST3A 0.0 39.4 345.
+ 3T-A T-B 0.0 1.24 59.75
+ TRANSFORMER TRANA TRANB 1
+ 1SWPB
+ 2ST3B
+ 3T-B
+ TRANSFORMER TRANA TRANC 1
+ 1SWPC
+ 2ST3C
+ 3 T-A
+-1ST3A HOMA .6129 1.9245 4.50 214.0
+-2ST3B HOMB .0502 .59410 7.05 214.0
+-3ST3C HOMC
+ ST3A 96514. 1930.
+ ST3B 96514. 1930.
+ ST3C 96514. 1930.
+ ST3A 12.82
+ ST3B 12.82
+ ST3C 12.82
+ SWPA 37.70
+ SWPB 37.70
+ SWPC 37.70
+C 24 July 2008, add a disconnected Type-51, 52 branch that has very low
+C impedance. The [R] and [L] matrices are perfectly invertible; in fact, for
+C simplicity, we make them diagonal. Prior to improvement of REDUCT, the
+C ATP response was to halt execution. The small numbers made ATP think that
+C the matrix was singular. A 40-year-old weakness was just noticed (amazing):
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ ...
+C KILL code number Overlay number Nearby statement number
+C 86 13 4233
+C KILL = 86. Singularity has been detected within SUBROUTINE REDUCT ...
+51SORA 1.E-19 1.E-19 { R(1,1) = L(1,1) = 1.E-19
+52EXTRA 0.0 0.01.E-19 1.E-19 { R(2,1) = L(2,1) = 0
+ EXTRA 1.0 { Let the secondary drive a 1-ohm resistor
+BLANK card ending all branch cards
+ ST1A SWPA .007940 1.0
+ ST1B SWPB .007940 1.0
+ ST1C SWPC .007940 1.0
+BLANK card ending all switch cards
+14SORA 93800. 60. 185. -1.0
+14SORB 93800. 60. 65. -1.0
+14SORC 93800. 60. -55. -1.0
+C Total network loss P-loss by summing injections = 2.199610000000E+28
+C This extraordinary phasor loss is due to that extra Type-51, 52 branch,
+C which is nearly a short circuit. Without it, loss is 4.805637702155E+02
+BLANK card ending all source cards
+ SWPA SWPB SWPC ST3A ST3B ST3C HOMA HOMB HOMC SWPA SWPB SWPC
+C Step Time SWPA SWPB SWPC ST3A ST3B
+C
+C HOMC SWPA SWPB SWPC TRANA
+C TERRA
+C 0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0
+C 100 .005 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0
+C *** Close switch "ST1A " to "SWPA " after 7.95000000E-03 sec.
+C *** Close switch "ST1B " to "SWPB " after 7.95000000E-03 sec.
+C *** Close switch "ST1C " to "SWPC " after 7.95000000E-03 sec.
+C 200 .01 74055.64255 1496.684511 -75552.3271 217501.3182 -11199.8796
+C -202295.843 74055.64255 1496.684511 -75552.3271 11.60842824
+BLANK card ending selective node voltage output requests
+C 1000 .05 -41438.1417 14616.52552 4941.023887 -74849.3547 24242.7193
+C -300362.665 -41438.1417 14616.52552 4941.023887 -.003640141
+C Variable max : 169590.981 140542.9342 130439.2455 610291.9724 509791.1645
+C 761896.4358 169590.981 140542.9342 130439.2455 1615.403803
+C Times of max : .04255 .02965 .03775 .0425 .02945
+C .03865 .04255 .02965 .03775 .02875
+C Variable min : -156192.014 -132716.009 -161788.345 -534753.351 -467406.362
+C -777439.086 -156192.014 -132716.009 -161788.345 -43.1002572
+C Times of min : .016 .04015 .04285 .0161 .04065
+C .0427 .016 .04015 .04285 .03875
+ PRINTER PLOT
+ 144 5. 0.0 50. HOMA { Axis limits: (-7.642, 8.522)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 data subcases is the same as the 2nd except for 3-phase transformer
+C 1973 GPU Stolle Road to Homer City line energization without surge arresters
+C These extra two cases are added to document Prof. Xusheng Chen's transformer
+C as described in the January and April, 1993, issues of the newsletter. The
+C case came from Prof. Chen as disk file MDD6A.DAT on a floppy dated May 20,
+C 1993 (this replaces the original 3rd subcase that was created 31 Mar 1993)
+C July, 1995, Prof. Chen replaces his XFCHEN, and answers change. The
+C old data case will be copied below as comments of this one are updated.
+PRINTED NUMBER WIDTH, 11, 1, { Request default precision (cancel [13,2] of 1st)
+C 4 May 2007, add following $PREFIX to allow remote execution.
+C Without this, the following DC31CHEN.DAT would not be found.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+USE SEATTLE XFORMER, dc31chen.dat ! { (hold lower case)
+C 1973 GPU Stolle Road to Homer City line energization with surge arresters
+ .000050 .050 60. 60. { Decrease Tmax from .200 to .050 for speed
+ 100 1 1 1 1
+$VINTAGE, 1
+ 1SWPA 5171.1723633
+ 2SWPB -1.2218941
+ 5171.4155273
+ 3SWPC -0.0011917
+ -1.2218941
+ 5171.1723633
+ 4ST3A 15511.6093750
+ -3.6675410
+ -0.0035769
+ 46558.4257813
+ 5ST3B -3.6675410
+ 15512.3398438
+ -3.6675410
+ -11.0082035
+ 46560.6210938
+ 6ST3C -0.0035769
+ -3.6675410
+ 15511.6093750
+ -0.0107361
+ -11.0082035
+ 46558.4296875
+$VINTAGE, 0
+ SORA GARA 3.06
+ SORB GARB 3.06
+ SORC GARC 3.06
+-1GARA ST1A .6109 2.3280 3.02 12.44
+-2GARB ST1B .1278 .79260 5.36 12.44
+-3GARC ST1C
+ 1GARA ERIA 6.2245
+ 2GARB ERIB 2.4289 6.2245
+ 3GARC ERIC 2.4289 2.4289 6.2245
+ 1GARA DAVA 21.905
+ 2GARB DAVB 10.465 21.905
+ 3GARC DAVC 10.465 10.465 21.905
+-1ERIA ST1A .6701 2.3608 3.02 10.70
+-2ERIB ST1B .1000 .71960 5.36 10.70
+-3ERIC ST1C
+-1ROLA ST1A .6342 2.3507 3.02 20.27
+-2ROLB ST1B .1005 .72150 5.36 20.27
+-3ROLC ST1C
+-1DAVA ST1A .6641 2.3641 3.02 14.53
+-2DAVB ST1B .0998 .71990 5.36 14.53
+-3DAVC ST1C
+-1STTA HOMA .6129 1.9245 4.50 214.0
+-2STTB HOMB .0502 .59410 7.05 214.0
+-3STTC HOMC
+ ST3A STTA .3737
+ ST3B STTB .3737
+ ST3C STTC .3737
+ ST1A SWIA .0415
+ ST1B SWIB .0415
+ ST1C SWIC .0415
+ ST3A 96514. 1930.
+ ST3B 96514. 1930.
+ ST3C 96514. 1930.
+C ST3A 12.82
+C ST3B 12.82
+C ST3C 12.82
+C SWPA 37.70
+C SWPB 37.70
+C SWPC 37.70
+BLANK card ending all branch cards
+ SWIA SWPA .007940 1.0 1
+ SWIB SWPB .007940 1.0 1
+ SWIC SWPC .007940 1.0 1
+BLANK card ending all switch cards
+14SORA 93800. 60. 185. -1.0
+14SORB 93800. 60. 65. -1.0
+14SORC 93800. 60. -55. -1.0
+C SWPA |TERRA *SWIA *
+C SWPB |TERRA *SWIB *
+C SWPC |TERRA *SWIC *
+C ST3A |TERRA *TERRA *STTA *
+C ST3B |TERRA *TERRA *STTB *
+C ST3C |TERRA *TERRA *STTC *
+C < < Etc. (many more rows) > >
+BLANK card ending all source cards
+ ST3A ST3B ST3C HOMA HOMB HOMC SWPA SWPB SWPC
+C Total network loss P-loss by summing injections = 4.805638098099E+02
+C
+C Last gen: SORC 53801.469729728 93800. 23.911871905618 29.188614218823
+C -76836.46175431 -55.0000000 16.739103380547 34.9932955
+C
+C Step Time ST3A ST3B ST3C HOMA HOMB HOMC
+C SWPA
+C SWIB SWIC CHEN CHEN CHEN CHEN
+C SWPB SWPC CURR1 FLUX1 CURR2 FLUX2
+C
+C CHEN CHEN CHEN CHEN
+C CURR5 FLUX5 CURR6 FLUX6
+C
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0
+C 100 .005 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0
+C *** Close switch "SWIA " to "SWPA " after 7.95000000E-03 sec.
+C *** Close switch "SWIB " to "SWPB " after 7.95000000E-03 sec.
+C *** Close switch "SWIC " to "SWPC " after 7.95000000E-03 sec.
+C 200 .01 217332.128 -10970.216 -206361.84 310904.168 -111381.16 -199522.71
+C -104.3596 -2103.8643 2208.14107 .734567091 -104.35883 -.18046553
+C 34.0316806 -.17536706 699.245277 -.45094228
+BLANK card ending selective node voltage output requests
+C 1000 .05 -211428.33 122613.646 43085.5698 51552.1935 258779.757 51350.5473
+C 2076.8918 -1044.8039 -3514.8485 .441798215 2076.84637 2.27394289
+C 137.474393 2.17231652 -246.32711 -2.0030124
+C maxima : 791162.883 546834.494 590200.117 .1071971E7 702018.441 729565.112
+C 3811.90247 3682.98877 5102.5908 1.80215502 3811.88565 2.50132928
+C 1378.6839 2.50169355 1701.78362 1.00436763
+C Times of max : .04105 .02885 .0376 .0411 .0302 .0383
+C .0269 .03635 .0392 .01325 .0269 .0168
+C .01645 .01675 .02525 .03995
+C minima : -551969.66 -479168.62 -639520.52 -763493.9 -536730.14 -925214.16
+C -2538.3534 -5096.1259 -5475.4983 -1.8608421 -2538.2686 -.6020437
+C -1273.8113 -.78766225 -1930.5746 -2.5080431
+C Times of min : .01535 .03985 .0277 .0372 .01835 .0277
+C .02305 .02525 .0428 .03765 .02305 .0267
+C .0269 .02675 .0291 .01415
+ PRINTER PLOT
+C For a CALCOMP (vector) plot like Fig. MVI-1 on page 20 of the Ammendment to
+C the final report (Ammendment dated 23 May 1993), use this plot card:
+C 144 5. 0.0 50. ST3A ST3B ST3C High voltages Voltages, V
+ 144 2. 0.0 20. ST3A { Axis limits: (-5.520, 3.941)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+
+
+C 3rd of 3 data subcases is the same as the 2nd except for 3-phase transformer
+C 1973 GPU Stolle Road to Homer City line energization without surge arresters
+C These extra two cases are added to document Prof. Xusheng Chen's transformer
+C as described in the January and April, 1993, issues of the newsletter. The
+C case came from Prof. Chen as disk file MDD6A.DAT on a floppy dated May 20,
+C 1993 (this replaces the original 3rd subcase that was created 31 Mar 1993)
+PRINTED NUMBER WIDTH, 11, 1, { Request default precision (cancel [13,2] of 1st)
+USE SEATTLE XFORMER, DC31CHEN.DAT
+C 1973 GPU Stolle Road to Homer City line energization with surge arresters
+ .000050 .050 60. 60. { Decrease Tmax from .200 to .050 for speed
+ 100 1 1 1 1
+$VINTAGE, 1
+ 1SWPA 5171.1723633
+ 2SWPB -1.2218941
+ 5171.4155273
+ 3SWPC -0.0011917
+ -1.2218941
+ 5171.1723633
+ 4ST3A 15511.6093750
+ -3.6675410
+ -0.0035769
+ 46558.4257813
+ 5ST3B -3.6675410
+ 15512.3398438
+ -3.6675410
+ -11.0082035
+ 46560.6210938
+ 6ST3C -0.0035769
+ -3.6675410
+ 15511.6093750
+ -0.0107361
+ -11.0082035
+ 46558.4296875
+$VINTAGE, 0
+ SORA GARA 3.06
+ SORB GARB 3.06
+ SORC GARC 3.06
+-1GARA ST1A .6109 2.3280 3.02 12.44
+-2GARB ST1B .1278 .79260 5.36 12.44
+-3GARC ST1C
+ 1GARA ERIA 6.2245
+ 2GARB ERIB 2.4289 6.2245
+ 3GARC ERIC 2.4289 2.4289 6.2245
+ 1GARA DAVA 21.905
+ 2GARB DAVB 10.465 21.905
+ 3GARC DAVC 10.465 10.465 21.905
+-1ERIA ST1A .6701 2.3608 3.02 10.70
+-2ERIB ST1B .1000 .71960 5.36 10.70
+-3ERIC ST1C
+-1ROLA ST1A .6342 2.3507 3.02 20.27
+-2ROLB ST1B .1005 .72150 5.36 20.27
+-3ROLC ST1C
+-1DAVA ST1A .6641 2.3641 3.02 14.53
+-2DAVB ST1B .0998 .71990 5.36 14.53
+-3DAVC ST1C
+-1STTA HOMA .6129 1.9245 4.50 214.0
+-2STTB HOMB .0502 .59410 7.05 214.0
+-3STTC HOMC
+ ST3A STTA .3737
+ ST3B STTB .3737
+ ST3C STTC .3737
+ ST1A SWIA .0415
+ ST1B SWIB .0415
+ ST1C SWIC .0415
+ ST3A 96514. 1930.
+ ST3B 96514. 1930.
+ ST3C 96514. 1930.
+C ST3A 12.82
+C ST3B 12.82
+C ST3C 12.82
+C SWPA 37.70
+C SWPB 37.70
+C SWPC 37.70
+BLANK card ending all branch cards
+ SWIA SWPA .007940 1.0 1
+ SWIB SWPB .007940 1.0 1
+ SWIC SWPC .007940 1.0 1
+BLANK card ending all switch cards
+14SORA 93800. 60. 185. -1.0
+14SORB 93800. 60. 65. -1.0
+14SORC 93800. 60. -55. -1.0
+C SWPA |TERRA *SWIA *
+C SWPB |TERRA *SWIB *
+C SWPC |TERRA *SWIC *
+C ST3A |TERRA *TERRA *STTA *
+C ST3B |TERRA *TERRA *STTB *
+C ST3C |TERRA *TERRA *STTC *
+C < < Etc. (many more rows) > >
+BLANK card ending all source cards
+ ST3A ST3B ST3C HOMA HOMB HOMC SWPA SWPB SWPC
+C Total network loss P-loss by summing injections = 4.805638098099E+02
+C
+C Last gen: SORC 53801.469729728 93800. 23.911871905618 29.188614218823
+C -76836.46175431 -55.0000000 16.739103380547 34.9932955
+C
+C Step Time ST3A ST3B ST3C HOMA HOMB HOMC
+C SWPA
+C SWIB SWIC CHEN CHEN CHEN CHEN
+C SWPB SWPC CURR1 FLUX1 CURR2 FLUX2
+C
+C CHEN CHEN CHEN CHEN
+C CURR5 FLUX5 CURR6 FLUX6
+C
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0
+C 100 .005 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0
+C *** Close switch "SWIA " to "SWPA " after 7.95000000E-03 sec.
+C *** Close switch "SWIB " to "SWPB " after 7.95000000E-03 sec.
+C *** Close switch "SWIC " to "SWPC " after 7.95000000E-03 sec.
+C 200 .01 217387.84 -10992.36 -206395.4 310888.096 -111376.98 -199510.83
+C -104.63191 -2105.0079 2209.64051 .734405004 -104.63005 -.18043359
+C 34.108862 -.17539116 699.385843 -.45096469
+BLANK card ending selective node voltage output requests
+C 1000 .05 -155842.05 47154.6268 -24422.789 258598.902 172156.84 -81252.716
+C 2571.94767 -2427.6366 -1947.2216 .242401327 2597.62728 2.19565639
+C 1.17575901 2.19555992 325.890333 -1.8799098
+C maxima : 669374.836 515148.465 484746.844 .1044677E7 660808.946 731972.517
+C 3607.09709 3846.82291 5375.85965 1.84806576 3607.09698 2.51948617
+C 1360.93644 2.71806614 1676.35273 1.0164742
+C Times of max : .0413 .01425 .03845 .04145 .03025 .0386
+C .0428 .0369 .03965 .0133 .0428 .01685
+C .0165 .01685 .0408 .04075
+C minima : -571739.71 -410695.52 -617164.56 -648371.12 -532251.9 -900333.66
+C -1991.6408 -5018.5588 -5328.1211 -1.7469988 -1991.6406 -.60320685
+C -1205.0922 -.78031949 -1766.5889 -2.6833277
+C Times of min : .01605 .04025 .02785 .0454 .0185 .02775
+C .0232 .0408 .0433 .03805 .0232 .04275
+C .0428 .04275 .02955 .03
+ PRINTER PLOT
+C For a CALCOMP (vector) plot like Fig. MVI-1 on page 20 of the Ammendment to
+C the final report (Ammendment dated 23 May 1993), use this plot card:
+C 144 5. 0.0 50. ST3A ST3B ST3C High voltages Voltages, V
+ 144 2. 0.0 20. ST3A { Axis limits: (-5.717, 3.942)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc31chen.dat b/benchmarks/dc31chen.dat
new file mode 100644
index 0000000..cb0d9f6
--- /dev/null
+++ b/benchmarks/dc31chen.dat
@@ -0,0 +1,49 @@
+C
+C
+C MDD6AT.DAT ( TWO-WINDING TRANSFORMER DATA FILE FOR MDD6A.DAT )
+C
+C (1) SPOS, VR1, VR2
+C 500. 345.00 115.00
+ 500. 115.00 345.00
+C (2) IEXPOS, LEXPOS, XPOS12
+ .0060 .0030 .12317
+C (3) FREQ, FREQPU, V1PU
+ 60.000 1.000 1.000
+C (4) EPSPY, EPSZC, R1, R4
+ .000010 .000100 .001290 .001290
+C (5) FIEXP, RFIEXP, R7, CXMER, PAP
+C INITIAL VALUES:
+C 1000.00 900.00 333.14 .00000 0.
+C FIVE-SLOPE REPRESENTATION:
+ 1457.32 900.00 333.14 .00000 0.
+C 1457.32 900.00 333.14 .00000 5.
+C SMOOTH-CURVE REPRESENTATION:
+C 721.60 900.00 333.14 .00000 0.
+C (6) Y0(I), I=1,6
+C -1.41421 .707107 .707107 -1.414214 .707107 .707107
+ 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+C 1.13137 -.565690 -.565690 1.13137 -.565690 -.565690
+C (7) S1, S4, S6, S7
+C 1.000 .850 .500 .500
+ 1.000 5. 4. 4.
+C (8) LEN1, LEN4, LEN6, LEN7
+C 1.000 1.000 2.000 2.000
+ 1.000 1000. 1000. 1000.
+C (9) P8, P9, P10, DT
+C 1.8622 1.8622 1.8622 .0100
+ 1000. 1000. 1000. .0100
+C (10) KT, KP, KW
+ 2000 10 1
+C (11) BB0, BB1, BB2, BB3, BB4
+C FIVE-SLOPE REPRESENTATION:
+ 1.4142 1.5558 1.6404 1.8527 2.2000
+C SMOOTH-CURVE REPRESENTATION:
+C -1.4142 .14934105 .02826188 16.387657 1.7508
+C 1.4142 1.6404 1.8527 9999.
+C (12) HH0, HH1, HH2, HH3, HH4
+ 8.4853 39.7575 94.3742 638.19 1530.00
+C 8.4853 94.3742 638.19
+C (13) Binary flags to request flux outputs:
+ 1 1 1 1 1 1
+C (14) Binary flags to request coil current outputs:
+ 1 1 1 1 1 1
diff --git a/benchmarks/dc32.dat b/benchmarks/dc32.dat
new file mode 100644
index 0000000..ec1c0da
--- /dev/null
+++ b/benchmarks/dc32.dat
@@ -0,0 +1,96 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-32
+C Artificial 6-pulse dc power supply that illustrates the simulation of
+C diodes. It was concocted in July of 1977 to instruct Hughes Aircraft in
+C Fullerton, California (Emory Johnson, Gene Perusse, and assoc.). Use of
+C MEMSAV = 1 dumps tables for later restarting and modification (see DC-49).
+C It is assumed that STARTUP has KTRPL4 < 0 and L4BYTE = 1 so that a
+C C-like ".PL4" file having name DC32.PL4 will be created (used by DC-49).
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000020 .010
+ 1 1 1 1 1 -1 1 2
+ 5 5 10 10 50 50
+C Three 2-winding saturable transformers having unity turns ratios are
+C delta-connected on the source side, and grounded-Y on the rectifier
+C side. The magnetizing branch is both nonlinear and lossy:
+ TRANSFORMER .01 .05TRANA 1.E5 1
+ .01 .05
+ .02 .06
+ .05 .07
+ .15 .08
+ 9999
+ 1GENA GENB .06 .01 115.
+ 2SECA .06 .01 115.
+ TRANSFORMER TRANA TRANB 1
+ 1GENB GENC
+ 2SECB
+ TRANSFORMER TRANA TRANC 1
+ 1GENC GENA
+ 2SECC
+C Small impedance branches are used (prior to "M34." generalized switch
+C logic) to isolate switches from each other at "POLEA". R = 5 ohms.
+C Although in theory such isolation is no longer required, do not try
+C to remove these 9 resistors, since they provide necessary damping.
+C Note that these resistors are not of negligible value:
+ CATH1 POLEA 5.0
+ CATH2 POLEA CATH1 POLEA
+ CATH3 POLEA CATH1 POLEA
+C More small impedances used for switch isolation at node "POLEB", and
+C also at the transformer secondary. Half the value of "POLEA" is used,
+C for balance:
+ CATH4 SECC 2.5
+ CATH5 SECA CATH4 SECC
+ CATH6 SECB CATH4 SECC
+ AN4 POLEB CATH4 SECC
+ AN5 POLEB CATH4 SECC
+ AN6 POLEB CATH4 SECC
+C 2-conductor distributed line connects "POLE" with "LOAD". Inductance
+C parameters are 5.8 and 1.6 millihenries for the ground and sky modes,
+C respectively. Length is five miles. Values are typical for 500 kV line:
+-1POLEA LOADA 0.3 5.8 .012 5.0
+-2POLEB LOADB .03 1.6 .019 5.0
+C Large stray capacitance ties the dc side to ground:
+ POLEA 100.
+ POLEB POLEA
+C Load on dc side is parallel 200 ohm R and 100 microfarad capacitance:
+ LOADA LOADB 200.
+ LOADA LOADB 100.
+C One-ohm grounding resistance, for later fault (see DC-49 continuation).
+ LOADA FAULT 1.0
+C 20 August 1998, discovery that Pi-circuits are mishandled leads to addition
+C of the following radial branch off the generator (does not change answers):
+ 1GENA 1-A 34.372457.68.15781
+ 2GENB 1-B 35.735164.43-.031538.002451.79.16587
+ 3GENC 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+BLANK card ending all branch cards
+C First switch is to be the fault switch (open here, and closed in DC-49):
+ FAULT 1.0 2.0
+C Bridge circuit consisting of 6 uncontrolled valves (i.e., diodes). Those
+C numbered 1, 2, and 3 feed "POLEA", making it positive with respect to
+C ground. Diodes 4, 5, and 6 feed "POLEB", making it negative.
+11SECB CATH1 13
+11SECA CATH2 CLOSED 13
+C The following card serves to name the switch following it. To see the
+C results of this activity, interactively execute the "SWITCH" command of
+C SPY, sending "EXTRA" for the alternative table. Another point: note
+C the exclamation point, which is needed to hold lower case within A6 name
+C (assuming KINSEN = 1 within STARTUP). No such control for valve six.
+ NAME: Valve3 ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11SECC CATH3 13
+11AN4 CATH4 CLOSED 13
+11AN5 CATH5 13
+ NAME: Valve6 { Request "NAME: " of columns 3-8 precedes A6 valve name in 9-14
+11AN6 CATH6 CLOSED 13
+BLANK card terminating the last switch card
+C Balanced 3-phase source of 400 Hz is connected to transformer delta side:
+14GENA 93.897 400. -30. -1.
+14GENB 93.897 400. -150. -1.
+14GENC 93.897 400. 90. -1.
+BLANK card ending all source cards
+ 1 { Request for all node voltage outputs
+ PRINTER PLOT
+ 144 1. 0.0 10. LOADA LOADB { Axis limits: (-1.637, 1.618)
+$WIDTH, 79, { Narrow output width will save paper from here on (summary stats)
+BLANK card ending the last plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc32a.dat b/benchmarks/dc32a.dat
new file mode 100644
index 0000000..c5f2da6
--- /dev/null
+++ b/benchmarks/dc32a.dat
@@ -0,0 +1,87 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-32 --- modified
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000020 .01006
+ 1 1 1 1 0 -1
+ 5 5 10 10 50 50 500 1
+C Three 2-winding saturable transformers having unity turns ratios are
+C delta-connected on the source side, and grounded-Y on the rectifier
+C side. The magnetizing branch is both nonlinear and lossy:
+ TRANSFORMER .01 .05TRANA 1.E5 1
+ .01 .05
+ .02 .06
+ .05 .07
+ .15 .08
+ 9999
+ 1GENA GENB .06 .01 115.
+ 2SECA .06 .01 115.
+ TRANSFORMER TRANA TRANB 1
+ 1GENB GENC
+ 2SECB
+ TRANSFORMER TRANA TRANC 1
+ 1GENC GENA
+ 2SECC
+C Small impedance branches are used (prior to "M34." generalized switch
+C logic) to isolate switches from each other at "POLEA". R = 5 ohms.
+C Although in theory such isolation is no longer required, do not try
+C to remove these 9 resistors, since they provide necessary damping.
+C Note that these resistors are not of negligible value:
+ CATH1 POLEA 5.0
+ CATH2 POLEA CATH1 POLEA
+ CATH3 POLEA CATH1 POLEA
+C More small impedances used for switch isolation at node "POLEB", and
+C also at the transformer secondary. Half the value of "POLEA" is used,
+C for balance:
+ CATH4 SECC 2.5
+ CATH5 SECA CATH4 SECC
+ CATH6 SECB CATH4 SECC
+ AN4 POLEB CATH4 SECC
+ AN5 POLEB CATH4 SECC
+ AN6 POLEB CATH4 SECC
+C 2-conductor distributed line connects "POLE" with "LOAD". Inductance
+C parameters are 5.8 and 1.6 millihenries for the ground and sky modes,
+C respectively. Length is five miles. Values are typical for 500 kV line:
+-1POLEA LOADA 0.3 5.8 .012 5.0
+-2POLEB LOADB .03 1.6 .019 5.0
+C Large stray capacitance ties the dc side to ground:
+ POLEA 100.
+ POLEB POLEA
+C Load on dc side is parallel 200 ohm R and 100 microfarad capacitance:
+ LOADA LOADB 200.
+ LOADA LOADB 100.
+C One-ohm grounding resistance, for later fault (see DC-49 continuation).
+ LOADA FAULT 1.0
+C 20 August 1998, discovery that Pi-circuits are mishandled leads to addition
+C of the following radial branch off the generator (does not change answers):
+ 1GENA 1-A 34.372457.68.15781
+ 2GENB 1-B 35.735164.43-.031538.002451.79.16587
+ 3GENC 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+BLANK card ending all branch cards
+C First switch is to be the fault switch (open here, and closed in DC-49):
+ FAULT 1.0 2.0
+C Bridge circuit consisting of 6 uncontrolled valves (i.e., diodes). Those
+C numbered 1, 2, and 3 feed "POLEA", making it positive with respect to
+C ground. Diodes 4, 5, and 6 feed "POLEB", making it negative.
+11SECB CATH1 13
+11SECA CATH2 CLOSED 13
+C The following card serves to name the switch following it. To see the
+C results of this activity, interactively execute the "SWITCH" command of
+C SPY, sending "EXTRA" for the alternative table. Another point: note
+C the exclamation point, which is needed to hold lower case within A6 name
+C (assuming KINSEN = 1 within STARTUP). No such control for valve six.
+ NAME: Valve3 ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11SECC CATH3 13
+11AN4 CATH4 CLOSED 13
+11AN5 CATH5 13
+ NAME: Valve6 { Request "NAME: " of columns 3-8 precedes A6 valve name in 9-14
+11AN6 CATH6 CLOSED 13
+BLANK card terminating the last switch card
+C Balanced 3-phase source of 400 Hz is connected to transformer delta side:
+14GENA 93.897 400. -30. -1.
+14GENB 93.897 400. -150. -1.
+14GENC 93.897 400. 90. -1.
+BLANK card ending all source cards
+ 1 { Request for all node voltage outputs
+BLANK card ending the last plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc32b.dat b/benchmarks/dc32b.dat
new file mode 100644
index 0000000..75de67d
--- /dev/null
+++ b/benchmarks/dc32b.dat
@@ -0,0 +1,83 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-32 --- modify
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000020 .01006
+ 1 1 1 1 1 -1
+ 5 5 10 10 50 50 500 1
+C Three 2-winding saturable transformers having unity turns ratios are
+C delta-connected on the source side, and grounded-Y on the rectifier
+C side. The magnetizing branch is both nonlinear and lossy:
+ TRANSFORMER .01 .05TRANA 1.E5 1
+ .01 .05
+ .02 .06
+ .05 .07
+ .15 .08
+ 9999
+ 1GENA GENB .06 .01 115.
+ 2SECA .06 .01 115.
+ TRANSFORMER TRANA TRANB 1
+ 1GENB GENC
+ 2SECB
+ TRANSFORMER TRANA TRANC 1
+ 1GENC GENA
+ 2SECC
+C Small impedance branches are used (prior to "M34." generalized switch
+C logic) to isolate switches from each other at "POLEA". R = 5 ohms.
+C Although in theory such isolation is no longer required, do not try
+C to remove these 9 resistors, since they provide necessary damping.
+C Note that these resistors are not of negligible value:
+ CATH1 POLEA 5.0
+ CATH2 POLEA CATH1 POLEA
+ CATH3 POLEA CATH1 POLEA
+C More small impedances used for switch isolation at node "POLEB", and
+C also at the transformer secondary. Half the value of "POLEA" is used,
+C for balance:
+ CATH4 SECC 2.5
+ CATH5 SECA CATH4 SECC
+ CATH6 SECB CATH4 SECC
+ AN4 POLEB CATH4 SECC
+ AN5 POLEB CATH4 SECC
+ AN6 POLEB CATH4 SECC
+C 2-conductor distributed line connects "POLE" with "LOAD". Inductance
+C parameters are 5.8 and 1.6 millihenries for the ground and sky modes,
+C respectively. Length is five miles. Values are typical for 500 kV line:
+-1POLEA LOADA 0.3 5.8 .012 5.0
+-2POLEB LOADB .03 1.6 .019 5.0
+C Large stray capacitance ties the dc side to ground:
+ POLEA 100.
+ POLEB POLEA
+C Load on dc side is parallel 200 ohm R and 100 microfarad capacitance:
+ LOADA LOADB 200.
+ LOADA LOADB 100.
+C One-ohm grounding resistance, for later fault (see DC-49 continuation).
+ LOADA FAULT 1.0
+BLANK card ending all branch cards
+C First switch is to be the fault switch (open here, and closed in DC-49):
+ FAULT 1.0 2.0
+C Bridge circuit consisting of 6 uncontrolled valves (i.e., diodes). Those
+C numbered 1, 2, and 3 feed "POLEA", making it positive with respect to
+C ground. Diodes 4, 5, and 6 feed "POLEB", making it negative.
+11SECB CATH1 13
+11SECA CATH2 CLOSED 13
+C The following card serves to name the switch following it. To see the
+C results of this activity, interactively execute the "SWITCH" command of
+C SPY, sending "EXTRA" for the alternative table. Another point: note
+C the exclamation point, which is needed to hold lower case within A6 name
+C (assuming KINSEN = 1 within STARTUP). No such control for valve six.
+ NAME: Valve3 ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11SECC CATH3 13
+11AN4 CATH4 CLOSED 13
+11AN5 CATH5 13
+ NAME: Valve6 { Request "NAME: " of columns 3-8 precedes A6 valve name in 9-14
+11AN6 CATH6 CLOSED 13
+BLANK card terminating the last switch card
+C Balanced 3-phase source of 400 Hz is connected to transformer delta side:
+14GENA 93.897 400. -30. -1.
+14GENB 93.897 400. -150. -1.
+14GENC 93.897 400. 90. -1.
+BLANK card ending all source cards
+ 1 { Request for all node voltage outputs
+BLANK card ending the last plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc32old.dat b/benchmarks/dc32old.dat
new file mode 100644
index 0000000..2276f48
--- /dev/null
+++ b/benchmarks/dc32old.dat
@@ -0,0 +1,165 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-32
+C Artificial 6-pulse dc power supply that illustrates the simulation of
+C diodes. It was concocted in July of 1977 to instruct Hughes Aircraft in
+C Fullerton, California (Emory Johnson, Gene Perusse, and assoc.). Use of
+C MEMSAV = 1 dumps tables for later restarting and modification (see DC-49).
+C It is assumed that STARTUP has KTRPL4 < 0 and L4BYTE = 1 so that a
+C C-like ".PL4" file having name DC32.PL4 will be created (used by DC-49).
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000020 .010
+ 1 1 1 1 1 -1 1 2
+ 5 5 10 10 50 50
+C Three 2-winding saturable transformers having unity turns ratios are
+C delta-connected on the source side, and grounded-Y on the rectifier
+C side. The magnetizing branch is both nonlinear and lossy:
+ TRANSFORMER .01 .05TRANA 1.E5 1
+ .01 .05
+ .02 .06
+ .05 .07
+ .15 .08
+ 9999
+ 1GENA GENB .06 .01 115.
+ 2SECA .06 .01 115.
+ TRANSFORMER TRANA TRANB 1
+ 1GENB GENC
+ 2SECB
+ TRANSFORMER TRANA TRANC 1
+ 1GENC GENA
+ 2SECC
+C Small impedance branches are used (prior to "M34." generalized switch
+C logic) to isolate switches from each other at "POLEA". R = 5 ohms.
+C Although in theory such isolation is no longer required, do not try
+C to remove these 9 resistors, since they provide necessary damping.
+C Note that these resistors are not of negligible value:
+ CATH1 POLEA 5.0
+ CATH2 POLEA CATH1 POLEA
+ CATH3 POLEA CATH1 POLEA
+C More small impedances used for switch isolation at node "POLEB", and
+C also at the transformer secondary. Half the value of "POLEA" is used,
+C for balance:
+ CATH4 SECC 2.5
+ CATH5 SECA CATH4 SECC
+ CATH6 SECB CATH4 SECC
+ AN4 POLEB CATH4 SECC
+ AN5 POLEB CATH4 SECC
+ AN6 POLEB CATH4 SECC
+C 2-conductor distributed line connects "POLE" with "LOAD". Inductance
+C parameters are 5.8 and 1.6 millihenries for the ground and sky modes,
+C respectively. Length is five miles. Values are typical for 500 kV line:
+-1POLEA LOADA 0.3 5.8 .012 5.0
+-2POLEB LOADB .03 1.6 .019 5.0
+C Large stray capacitance ties the dc side to ground:
+ POLEA 100.
+ POLEB POLEA
+C Load on dc side is parallel 200 ohm R and 100 microfarad capacitance:
+ LOADA LOADB 200.
+ LOADA LOADB 100.
+C One-ohm grounding resistance, for later fault (see DC-49 continuation).
+ LOADA FAULT 1.0
+BLANK card ending all branch cards
+C First switch is to be the fault switch (open here, and closed in DC-49):
+ FAULT 1.0 2.0
+C Bridge circuit consisting of 6 uncontrolled valves (i.e., diodes). Those
+C numbered 1, 2, and 3 feed "POLEA", making it positive with respect to
+C ground. Diodes 4, 5, and 6 feed "POLEB", making it negative.
+11SECB CATH1 13
+11SECA CATH2 CLOSED 13
+C The following card serves to name the switch following it. To see the
+C results of this activity, interactively execute the "SWITCH" command of
+C SPY, sending "EXTRA" for the alternative table. Another point: note
+C the exclamation point, which is needed to hold lower case within A6 name
+C (assuming KINSEN = 1 within STARTUP). No such control for valve six.
+ NAME: Valve3 ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11SECC CATH3 13
+11AN4 CATH4 CLOSED 13
+11AN5 CATH5 13
+ NAME: Valve6 { Request "NAME: " of columns 3-8 precedes A6 valve name in 9-14
+11AN6 CATH6 CLOSED 13
+BLANK card terminating the last switch card
+C Balanced 3-phase source of 400 Hz is connected to transformer delta side:
+14GENA 93.897 400. -30. -1.
+14GENB 93.897 400. -150. -1.
+14GENC 93.897 400. 90. -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C TRANA |GENA *GENB *GENB *GENB *
+C GENA |TRANA *TRANC *TRANC *TRANC *
+C GENB |TRANA *TRANA *TRANA *TRANB *
+C SECA |TERRA *CATH2 *CATH5 *
+C TRANB |GENB *GENC *GENC *GENC *
+C GENC |TRANB *TRANB *TRANB *TRANC *
+C SECB |TERRA *CATH1 *CATH6 *
+C TRANC |GENA *GENA *GENA *GENC *
+C SECC |TERRA *CATH3 *CATH4 *
+C CATH1 |SECB *POLEA *
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = 5.464331532263E+03
+C Last inject: GENC .5749502208E-14 93.897 .56200164704342 55.017880322583
+C Last inject: 93.897 90.00000 55.015009854937 89.4147197
+C ---- Initial flux in coil "TRANA " to "GENB " = -5.34394317E-04
+C ---- Initial flux of coil "TRANB " to "GENC " = -5.51987844E-02
+C ---- Initial flux of coil "TRANC " to "GENA " = 5.55634966E-02
+C Step Time SECB SECA SECC AN4 AN5
+C CATH1 CATH2 CATH3 CATH4 CATH5
+C
+C AN6 AN5 AN4 CATH6 CATH5
+C
+C TRANC TRANB TRANA POLEB POLEA
+C
+C GENB GENC SECB SECA SECC
+C CATH1 CATH2 CATH3
+C TRANB TRANC
+C GENC GENA
+C *** Phasor I(0) = 1.6873295E+01 Switch "SECA " to "CATH2 " closed
+C *** Phasor I(0) = 2.4078446E+00 Switch "AN4 " to "CATH4 " closed
+C *** Phasor I(0) = 2.9476803E+00 Switch "AN6 " to "CATH6 " closed
+C 0 0.0 -159.68633 0.0 -156.98715 0.0 -229.3144
+C -75.303917 -67.934716 -73.954328 -75.303917 161.379687
+C .671413046 -81.994732 80.6896357 -67.934716 77.0132094
+C -81.317187 .57495E-14 0.0 16.8732954 0.0
+C -.01344725 .013015515
+C 1 .2E-4 -156.60201 0.0 -167.73205 0.0 -230.84408
+C -72.617115 -69.533258 -78.182135 -72.617115 161.310826
+C -3.989552 -79.633884 83.0140826 -69.533258 80.9010357
+C -78.855585 -4.7177907 0.0 16.0819581 0.0
+C -.01676789 .01388141
+C Diode "AN6 " to "CATH6 " opening after 4.00000000E-05 sec.
+C Note: LUNIT2 = 22 and lower-case ".bin" (maintained by exclamation point)
+C are critical details of the following connection of file for tables:
+C $OPEN, UNIT=22 FILE=dc32to49.bin ! { All we need for C-like usage by Salford
+$OPEN, UNIT=22 FILE=dc32to49.bin STATUS=NEW FORM=UNFORMATTED !
+ 1 { Request for all node voltage outputs
+C Last step: 501 .01002 -214.9097 0.0 -230.24759 -54.516468 -303.96907
+C Last step: -141.81435 -141.81435 -141.81435 -71.959981 162.154725 -87.297878
+C Last step: -4.2249272 -77.760947 83.4315479 -141.81435 142.949714 -87.297878
+C Last step: -78.855585 -4.7177907 0.0 3.84100209 0.0 0.0
+C Last step: -.01674763 .013984083
+C Variable maxima : 6.75796709 10.2225472 7.99663598 5.4523958 4.41773517
+C -55.736451 -57.621411 -60.99918 162.583272 162.349471
+C 94.2715412 94.2204174 94.5734275 -57.621411 157.838356
+C 93.8961762 93.8895863 15.8739724 19.1582929 16.8070015
+C .036546956 .033001353
+C Times of maxima : .0081 .00206 .00894 .00526 .00334
+C .00258 .00262 .00186 .00584 .005
+C .00938 .00854 .00522 .00262 .006
+C .00354 .00938 .00326 .00244 .00166
+C .00646 .0098
+C Variable minima : -307.90065 -319.51502 -314.74562 -314.64493 -305.0677
+C -157.13852 -159.69143 -157.2627 -154.31324 -159.94136
+C -94.501887 -94.313812 -94.506969 -157.13852 55.660011
+C -93.876407 -93.889586 -.89624956 -.45248549 -.74181951
+C -.03163582 -.03508457
+C Times of minima : .00706 .00624 .00544 .00666 .00502
+C .006 .00624 .00546 .0071 .00616
+C .00564 .0048 .00646 .006 .00224
+C .0098 .00312 .00372 .34E-3 .00216
+C .2E-3 .00604
+ PRINTER PLOT
+ 144 1. 0.0 10. LOADA LOADB { Axis limits: (-1.637, 1.618)
+$WIDTH, 79, { Narrow output width will save paper from here on (summary stats)
+BLANK card ending the last plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc33.dat b/benchmarks/dc33.dat
new file mode 100644
index 0000000..4a2cb80
--- /dev/null
+++ b/benchmarks/dc33.dat
@@ -0,0 +1,711 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-33
+C Type-96 hysteretic inductor with TACS logic to give flux by integrating v
+C Batch-mode EMTP CalComp plotting, including "X-Y PLOT", is illustrated.
+C For split version with TACS postponed until postprocessing, see DC-45 and
+C DC-46. As for data ordering, this is intentionally shuffled from what
+C would be natural in order to illustrate the use of "/" cards for sorting.
+C Initial condition & load flow classes were added during November of 1991
+C after Prof. Juan Martinez complained from Barcelona, Spain, that such
+C features were not working. He was right. One year later, he complained
+C again (it still did not work right. Somehow, work was lost; DC-33 had
+C not been changed; the optimistic report of the January, 1992, newsletter
+C was incorrect). So, sorting by class was repaired again on 28 Novemb 92.
+C 1st of 9 stacked subcases total.
+ .000050 .020
+ 1 1 1 1 1 -1
+ 5 5 20 20
+TACS HYBRID
+/SOURCE
+14GEN 377. 60. -1.
+/TACS
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+90GEN
+91GROUND
+99CURR -1.0* GROUND
+33FLUX GEN GROUNDCURR
+/OUTPUT
+ GEN
+/PLOT
+C Last step: 400 .02 116.4994069 2.765761424 -2.76576141 .9416257618
+C Last step continued .....: 116.4994069 2.765761424 -2.76576142
+C Final 5 max. : 3.499909256 .9905492104 376.9925583 3.499613141 3.499909256
+C Associated times : .0125 .00415 .01665 .00415 .0125
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ 194 2. 0.0 20. TACS CURR ABCDEFGHIJKLMNOP1234567890123456
+ X-Y PLOT Horizontal Axis label123
+ 10. -1.1 1.1
+ 8. -4.0 4.0
+ 194 4. 0.0 20. TACS FLUX TACS CURR Graph heading---Vertical axis la
+ X-Y PLOT Horizontal Axis label123
+ 9999. -1.1 1.1 "9999." returns to conventional (vs. time) plotting
+ 8. -4.0 4.0
+ PRINTER PLOT
+ 194 4. 0.0 20. TACS CURR { Axis limits: (-3.500, 3.500)
+C Now that all plotting is done with, let's illustrate the three declarations
+C that will choose the destination of any subsequent "CALCOMP PLOT" use:
+ SCREEN PLOT { If a vector plot were to follow, it would go only to the screen
+ PEN PLOT { If a vector plot were to follow, ... go only to CalComp plotter
+ SCREEN PEN { If a vector plot were to follow, .. go to both screen & plotter
+C The preceding 3 declarations really could only be tested by a user who
+C had both a vector-graphic screen and a CalComp plotter. Hence no use.
+/LOAD FLOW
+C Comment of /LOAD FLOW. Since DC-33 does not really involve the load flow,
+C Comment of /LOAD FLOW. we can not use real load flow data cards. In their
+C Comment of /LOAD FLOW. place, we use these three comment cards. End test
+/BRANCH
+96GROUNDGEN 8888. 1.E-9 1
+ 1.0 -0.7
+ 2.0 0.9
+ 3.5 1.0
+ 9999.
+/REQUEST
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+/INITIAL
+ 2GROUND 0. { Node voltage initial condition in fact changes nothing
+C Initial conditions really are not a part of this problem, although we do want
+C to illustrate that they, too, can be sorted, and inserted after /LOADFLOW
+C The preceding redefinition of node voltage at GROUND changes zero to zero.
+/SWITCH
+ GROUND MEASURING 1
+BLANK card terminates all TACS data
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+C Total network loss P-loss by summing injections = 7.106450000000E-06
+C Inject: GEN 377. 377. .377E-7 2.6786345332877
+C Inject: 0.0 0.0 -2.678634533288 -89.9999992
+C ---- Initial flux of coil "GROUND" to "GEN " = 1.00000000E-09
+C
+C Step Time GEN GROUND GROUND TACS TACS
+C TERRA GEN FLUX GEN
+C *** Phasor I(0) = 0.3770000E-07 Switch "GROUND" to " " closed
+C 0 0.0 377. .377E-7 0.0 0.0 0.0
+C 1 .5E-4 376.9330268 .5235646391 -.523564601 .0094233257 376.9330268
+C 2 .1E-3 376.7321312 1.04694322 -1.04694318 .0282649546 376.7321312
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C BENCHMARK DC-33
+C 2nd of 9 subcases is the same as the first except that control system
+C modeling is to be done using MODELS rather than the older TACS. Jerry
+C Almos of BPA converted the data on 18 Nov 1991 after WSM changed the code
+C to allow such sorting using the same /TACS declaration.
+ .000050 .020
+ 1 1 1 1 1 -1
+ 5 5 20 20
+MODELS { Note the change; the 1st subcase had "TACS HYBRID" here
+/SOURCE
+14GEN 377. 60. -1.
+/MODELS { 9 July 1995, the former /TACS was changed to this new class
+INPUT GEN {V(GEN)}, GROUND {I(GROUND)}
+MODEL DC33
+INPUT gen, ground
+VAR flux, curr
+HISTORY gen {DFLT: 0}, flux {DFLT: 0}, ground {DFLT: 0}
+INIT
+ curr:=0
+ENDINIT
+EXEC
+ COMBINE AS INTEGRATOR
+ LAPLACE(flux/gen):=(1.0|S0)/(1.0|S1)
+ ENDCOMBINE
+ curr:=-ground
+ENDEXEC
+ENDMODEL
+USE DC33 AS DC33
+ INPUT GEN:=GEN, GROUND:=GROUND
+ENDUSE
+RECORD
+ DC33.FLUX AS FLUX
+ DC33.GEN AS GEN
+ DC33.GROUND AS GROUND
+ DC33.CURR AS CURR
+ENDRECORD
+ENDMODELS
+/OUTPUT
+ GEN
+/PLOT
+C Last step: 400 .02 116.4994069 2.765761424 -2.76576141 .9604757618
+C Variable maxima : 377. 3.499613141 3.499909256 1.00939921
+C Times of maxima : 0.0 .00415 .0125 .00415
+C Variable minima : -376.992558 -3.49990926 -3.49961314 -.990568949
+C Times of minima : .00835 .0125 .00415 .0125
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ CALCOMP PLOT
+ SCREEN PLOT
+ 194 2. 0.0 20. MODELSCURR ABCDEFGHIJKLMNOP1234567890123456
+ X-Y PLOT Horizontal Axis label123
+ 10. -1.1 1.1
+ 8. -4.0 4.0
+ 194 4. 0.0 20. MODELSFLUX MODELSCURR Graph heading---Vertical axis la
+ X-Y PLOT Horizontal Axis label123
+ 9999. -1.1 1.1 "9999." returns to conventional (vs. time) plotting
+ 8. -4.0 4.0
+/BRANCH
+96GROUNDGEN 8888. 1.E-9 1
+ 1.0 -0.7
+ 2.0 0.9
+ 3.5 1.0
+ 9999.
+/REQUEST
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+/SWITCH
+ GROUND MEASURING 1
+BLANK card terminates all MODELS data { 9 July 1995, MODELS replaces old
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+C Total network loss P-loss by summing injections = 7.106450000000E-06
+C Inject: GEN 377. 377. .377E-7 2.6786345332877
+C Inject: 0.0 0.0 -2.678634533288 -89.9999992
+C ---- Initial flux of coil "GROUND" to "GEN " = 1.00000000E-09
+C
+C Step Time GEN GROUND GROUND TACS TACS
+C TERRA GEN FLUX GEN
+C *** Phasor I(0) = 0.3770000E-07 Switch "GROUND" to " " closed
+C 0 0.0 377. .377E-7 -.25696E-16 .009425 377. .377E-7 -.377E-7
+C 1 .5E-4 376.9330268 -1.42571976 1.425719797 .0282733257 376.9330268 -1.42571976 1.425719759
+C 2 .1E-3 376.7321312 -1.41394374 1.413943779 .0471149546 376.7321312 -1.41394374 1.413943741
+C 3 .15E-3 376.3973844 -1.40217609 1.40217613 .0659431925 376.3973844 -1.40217609 1.402176093
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 3rd of 9 subcases ends the original series. 4-9 added 5 March 2007
+C Illustration of user-supplied residual flux of Type-96 hysteretic
+C inductor was supplied by Prof. Mustafa Kizilcay of FH Osnabrueck in
+C Germany (see E-mail dated 23 March 2001). This data is added to show
+C that non-zero (but very small) flux of the phasor solution now is
+C tolerated. Prior to the change several days ago, it was not. Prior
+C to the change, residual flux needed to be exactly zero for the user-
+C supplied flux to be used. No longer. Phasor flux < EPSILN is all that
+C now is required.
+POWER FREQUENCY 50.
+PRINTED NUMBER WIDTH, 13, 2, { dT loop columns have width 13 including 2 blanks
+ZERO FLUX TOLERANCE 1.E-8 { Columns 33-40 carry Type-96 tolerance
+C Note about preceding declaration, which was added 29 March 2001. After
+C reading later discussion about trouble with the IDEAL TRANSFORMER data,
+C Prof. Kizilcay agreed that definition of the flux tolerance independent of
+C EPSILN would be a good idea. The user can define whatever value he wants
+C although here nothing will change (1.E-8 = value of EPSILN in STARTUP).
+ .000200 .200 50.
+ 40 1 1 1 1
+C Following TACS data is not required. It is used only to integrate the
+C inductor voltage, thereby indicating the change in inductor flux ---
+C change with respect to the user-supplied initial value of 0.2 volt-sec.
+TACS HYBRID
+ 1FLUSSA +MA 1.
+ 1. { Numerator is : 1
+ 1. { Denominator is : 0 + 1 * s
+90MA { Type-96 voltage of electric network defines this TACS source 1.
+33FLUSSA { Output of integrator, the change of flux, is only TACS output
+BLANK card ending TACS data
+ QA P1A .0172 .1722 0
+ P3A .0172 .1722 0
+ MA 1.8 0
+96MA 8888 0.20 1
+ -0.1199 -0.3754 { Preceding 0.2 is residual flux in [volt-sec]
+ -0.06264 -0.3643 { 2nd of many current-flux pairs
+ -0.0353 -0.3536 { 3rd of many. These define hysteresis loop.
+ -0.02025 -0.3428
+ -0.00732 -0.3214
+ -0.002869 -0.3
+ -0.000538 -0.2786
+ 0.01345 0.0
+ 0.02744 0.2786
+ 0.02977 0.3
+ 0.03422 0.3214
+ 0.04715 0.3428
+ 0.0622 0.3536
+ 0.08954 0.3643
+ 0.1468 0.3754
+ 0.2254 0.3826
+ 0.5494 0.3968
+ 9999 { Terminate last point of Type-96 hysteresis element
+ P2A 1.E10
+BLANK card ending all branch cards
+ P2A P3A .020 1.0 { Switch closes at 20 msec } 1
+BLANK card ending switches
+14QA 8165. 50. -90. -1.
+11P1A 1E-10 { 1st half of ungrounded voltage source and ideal Xformer
+18P2A .0025MA { 2nd half of ungrounded voltage source and ideal Xformer
+C Note about preceding two source cards, which represent an ideal transformer.
+C Yes, there is the ungrounded voltage source, but for engineering purposes,
+C this has value zero (the 1.E-10 in columns 11-20 of the 1st source card).
+C The second source card, a Type-18 source, defines turns ratio and 4 names.
+C In theory, these two source cards could be replaced by the following three
+C branch cards, which are more readable:
+C IDEAL TRANSFORMER
+C 1P1A P2A 400.0 { Rated voltage of high side
+C 2MA 1.0 { Rated voltage of low side
+C The resulting phasor solution would be nearly the same, too. Nearly,
+C but not quite. Prof. Kizilcay's Type-11 source value is small, note
+C --- small enough to make the phasor flux at time zero < EPSILN. If
+C instead the IDEAL TRANSFORMER is used, it would appear that the EPSILN
+C threshold is exceeded. In place of the user-desired residual flux of 0.2
+C volt-seconds, the .LIS file will show the noise from the phasor solution:
+C ---- Initial flux of coil "MA " to " " = -1.87122597E-06
+C This then is carried into the dT loop. Without meaningful residual flux,
+C there is no significant in-rush current. Instead of Prof. Kizilcay's
+C 30 amps, the PRINTER PLOT shows only about 1.243E-2 amps. For engineering
+C purposes, the simulation will be completely different (and wrong).
+BLANK card ending sources
+C MA .1797146122E-11 .36742498645E-8 -.998414547E-12 .9984146668E-12 .8600609455E-40 .8600609455E-40
+C -.3674249425E-8 -89.9719755 -.488343774E-15 -179.9719755 .1834212477E-20 0.0000000
+C Total network loss P-loss by summing injections = 3.333364056743E-03
+C ---- Initial flux of coil "MA " to " " = 2.00000000E-01
+C The preceding result of phasor solution confirms correct operation. The
+C voltage across the Type-96 branch is not zero, but it is small enough
+C compared with floating-point miscellaneous data parameter EPSILN so no
+C special precautions must be taken. Understand what is happening. The
+C initial flux is equal to the imaginary part of the phasor voltage divided
+C by the frequency, and this is small: .367E-8 / OMEGA < EPSILN
+ QA MA { Names of nodes for node-voltage output
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 1 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time QA MA P2A MA TACS
+C P3A TERRA FLUSSA
+C 0 0.0 .499946E-12 .179715E-11 0.0 -.99841E-12 0.0
+C 40 .008 4799.266585 .2154661E-8 0.0 .278303E-11 .211415E-10
+C 80 .016 -7765.37646 -.349521E-8 0.0 .438944E-12 .803576E-11
+C *** Close switch "P2A " to "P3A " after 2.02000000E-02 sec.
+C 120 .024 7765.376456 70.13133651 15591.82659 .0177128714 .0990291974
+C 160 .032 -4799.26658 110.5331176 33643.29393 22.70094726 1.167639417
+BLANK card ending node voltage outputs
+C 1000 0.2 .9430083E-8 -105.223163 -23383.3158 -.97653E-3 .0484350031
+C Variable maxima : 8165. 159.787186 40889.62376 30.82522183 1.523703303
+C Times of maxima : .005 .0288 .0294 .054 .054
+C Variable minima : -8165. -118.702745 -23490.9996 -.16538292 -.198576963
+C Times of minima : .015 .0792 .1996 .1794 .1846
+ CALCOMP PLOT
+ 193.02 0.0 0.2 -10. 30.MA { Plot Type-96 current over entire time span
+ PRINTER PLOT
+ 194 4. 20. 60. MA { Axis limits: (0.000 3.083)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 9 subcases begins a series using /UM on DC-35 U.M. data
+C 1st of 6 subcases that have same solution but slightly different data.
+C Begin with /SOURCE (not /UM for U.M.) and full Class-1 U.M. data.
+C Output has been reduced from 2 lines per dT to one which consists of
+C just the U.M. variables. For the 10 dT that are taken, signals agree
+C exactly with DC37.LIS and are documented on comment cards of /OUTPUT
+ .000400 .004 { Take only 10 time steps -- enough to begin motor rotation
+ 5 -1 { No plotting (which has nothing special to do with /UM use)
+/OUTPUT
+C The following shows dT-loop output for each of the subcases of the /UM set:
+C Step Time UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM THETAM IPA IPB IPC IE1 IE2 IE3
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 5 .002 -.6898285 0.0 0.0 -150.98163 16.0278591 134.953771 15.5970274 131.9385 -147.53553
+C 10 .004 -11.779008 -.21882419 -.42361E-3 -203.70113 -91.734138 295.43527 -90.126277 287.718333 -197.59206
+/SOURCE
+14BUS-A0 180.0 60.0 0.0
+14BUS-B0 180.0 60.0 -120.0
+14BUS-C0 180.0 60.0 +120.0
+11BUS-OM-1 -6.00
+/BRANCH
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+ 0BUS-A1BUS-A0 0.005 1.0
+ 0BUS-B1BUS-B0BUS-A1BUS-A0
+ 0BUS-C1BUS-C0BUS-A1BUS-A0
+ 0BUSRA1 1.E-5
+ 0BUSRB1 1.E-5
+ 0BUSRC1 1.E-5
+ 0BUS-OM 6.00E4
+ 0 BUS-OM 33.333
+/REQUEST
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+/SOURCE
+19 { Data for U.M. begins with source type 19 keyed in columns 1-2
+ 0 { The zero does nothing. In fact, a blank card would suffice for DC-35
+BLANK card ending U.M. header (3rd of 3 non-comment cards of Class-1 U.M. data)
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0 { 6th and final winding card
+/PLOT
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 5th of 9 subcases continues series using /UM on DC-35 U.M. data
+C 2nd of 6 examples that have the same solution but slightly different data
+C Replace /SOURCE by /UM and omit all 3 non-comment header cards. But
+C then U.M. HEADER CARD (UMHC) must be added to define Class-1 data.
+ .000400 .004 { Take only 10 time steps -- enough to begin motor rotation
+ 5 -1 { No plotting (which has nothing special to do with /UM use)
+/OUTPUT
+C BUS-A1BUS-B1BUS-C1BUS-A0BUS-OM { Shorten output by eliminating node voltages
+/SOURCE
+14BUS-A0 180.0 60.0 0.0
+14BUS-B0 180.0 60.0 -120.0
+14BUS-C0 180.0 60.0 +120.0
+11BUS-OM-1 -6.00
+/BRANCH
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+ 0BUS-A1BUS-A0 0.005 1.0
+ 0BUS-B1BUS-B0BUS-A1BUS-A0
+ 0BUS-C1BUS-C0BUS-A1BUS-A0
+ 0BUSRA1 1.E-5
+ 0BUSRB1 1.E-5
+ 0BUSRC1 1.E-5
+ 0BUS-OM 6.00E4
+ 0 BUS-OM 33.333
+/REQUEST
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+/UM
+C Note that there is no Class-1 U.M. data; ATP will supply the Type-19 card.
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0 { 6th and final winding card
+C 14BUSRA1 180.0 60.0 0.0
+/PLOT
+ PRINTER PLOT { Batch-mode plotting is for the line printer not vector-graphic
+/REQUEST
+U.M. HEADER CARD { To be followed by significant middle card of U.M. Class 1
+ 0 { In fact, a blank card would suffice for DC-35
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE --- NEWSORT ---
+C 6th of 9 subcases continues series using /UM on DC-35 U.M. data
+C 3rd of 6 examples that have the same solution but slightly different data
+C Return to use of /SOURCE and full Class-1 U.M. data as in 1st example.
+C But add U.M. HEADER CARD (UMHC) which overrides the normal Class-1 data.
+C See explanation of the preceding NEWSORT within DCNEW-25. There
+C is old (normal) data sorting logic and there is new data sorting
+C logic as summarized in the January, 1999, Can/Am newsletter. Putting
+C NEWSORT on the case-separator card as shown has the effect of placing
+C a minus sign on SZBED of STARTUP, and this selects the newer sorting
+C alternative. Either should handle /UM sorting. The NEWSORT could
+C be added to each subcase without significant change to the .LIS file.
+C Text of BLANK cards will vary a little, but that should be all.
+ .000400 .004 { Take only 10 time steps -- enough to begin motor rotation
+ 5 -1 { No plotting (which has nothing special to do with /UM use)
+/OUTPUT
+C BUS-A1BUS-B1BUS-C1BUS-A0BUS-OM { Shorten output by eliminating node voltages
+/SOURCE
+14BUS-A0 180.0 60.0 0.0
+14BUS-B0 180.0 60.0 -120.0
+14BUS-C0 180.0 60.0 +120.0
+11BUS-OM-1 -6.00
+/BRANCH
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+ 0BUS-A1BUS-A0 0.005 1.0
+ 0BUS-B1BUS-B0BUS-A1BUS-A0
+ 0BUS-C1BUS-C0BUS-A1BUS-A0
+ 0BUSRA1 1.E-5
+ 0BUSRB1 1.E-5
+ 0BUSRC1 1.E-5
+ 0BUS-OM 6.00E4
+ 0 BUS-OM 33.333
+/REQUEST
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+U.M. HEADER CARD { To be followed by significant middle card of U.M. Class 1
+ 0 { In fact, a blank card would suffice for DC-35
+/SOURCE
+C Any number of comments should be legal anywhere within Class-1 U.M. data
+C as now begins. Because of UMHC (U.M. HEADER CARD) use, only the first of
+C the 3 non-comment lines of Class-1 U.M. data ever will be seen. The crucial
+C 2nd will be replaced by the card following the UMHC declaration, and the
+C blank 3rd card is read and discarded, so will not been seen in the .LIS
+C file. Yet, it is required. Even though not-used, the 3rd is checked
+C for being blank, and execution will be halted if it is not so. Add "XXX"
+C at the start of the 2nd to emphasize that content is arbitrary:
+19 { Data for U.M. begins with source type 19 keyed in columns 1-2
+XXX 0 { 2nd of 3 non-comment header lines for U.M. will be replaced by UMHC crd
+BLANK card ending U.M. header (3rd of 3 never will been seen in .LIS file)
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0 { 6th and final winding card
+/PLOT
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 7th of 9 subcases continues series using /UM on DC-35 U.M. data
+C 4th of 6 examples that have the same solution but slightly different data
+C Data of the preceding 3rd example has been massaged. First, "/" cards
+C for sorting have been removed to demonstrate that UMHC use does not
+C require sorting. The full 3-card Class-1 U.M. data has been replaced
+C by the special Type-19 summary line which will refer to UMHC for the
+C missing 2nd nonblank card of Class-1 data. Finally, since no sorting
+C to insert the blank card ending U.M. data, this must be added manually.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+U.M. HEADER CARD { To be followed by significant middle card of U.M. Class 1
+ 0 { In fact, a blank card would suffice for DC-35
+ .000400 .004 { Take only 10 time steps -- enough to begin motor rotation
+ 5 -1 { No plotting (which has nothing special to do with /UM use)
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+ 0BUS-A1BUS-A0 0.005 1.0
+ 0BUS-B1BUS-B0BUS-A1BUS-A0
+ 0BUS-C1BUS-C0BUS-A1BUS-A0
+ 0BUSRA1 1.E-5
+ 0BUSRB1 1.E-5
+ 0BUSRC1 1.E-5
+ 0BUS-OM 6.00E4
+ 0 BUS-OM 33.333
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+14BUS-A0 180.0 60.0 0.0
+14BUS-B0 180.0 60.0 -120.0
+14BUS-C0 180.0 60.0 +120.0
+11BUS-OM-1 -6.00
+19 { Class-1 U.M. data has been omitted WSM
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0 { 6th and final winding card
+BLANK card ends U.M. data
+BLANK terminates the last SOURCE card
+C BUS-A1BUS-B1BUS-C1BUS-A0BUS-OM { Shorten output by eliminating node voltages
+BLANK card ends OUTPUT variable requests
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 8th of 9 subcases continues series using /UM on DC-35 U.M. data
+C 5th of 6 subcases that have the same solution but slightly different data
+C Data is like the 2nd example except that a second and third disconnected
+C machine has been added to illustrate multi-machine use for 3 machines.
+ .000400 .004 { Take only 10 time steps -- enough to begin motor rotation
+ 5 -1 { No plotting (which has nothing special to do with /UM use)
+/OUTPUT
+C BUS-A1BUS-B1BUS-C1BUS-A0BUS-OM { Shorten output by eliminating node voltages
+/SOURCE
+14BUS-A0 180.0 60.0 0.0
+14BUS-B0 180.0 60.0 -120.0
+14BUS-C0 180.0 60.0 +120.0
+11BUS-OM-1 -6.00
+/BRANCH
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+ 0BUS-A1BUS-A0 0.005 1.0
+ 0BUS-B1BUS-B0BUS-A1BUS-A0
+ 0BUS-C1BUS-C0BUS-A1BUS-A0
+ 0BUSRA1 1.E-5
+ 0BUSRB1 1.E-5
+ 0BUSRC1 1.E-5
+ 0BUS-OM 6.00E4
+ 0 BUS-OM 33.333
+/REQUEST
+U.M. HEADER CARD { To be followed by significant middle card of U.M. Class 1
+ 0 { In fact, a blank card would suffice for DC-35
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+/SOURCE
+19 { Class-1 U.M. data has been omitted (this card is needed because of /SOURCE)
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0 { 6th and final winding card
+C 14BUSRA1 180.0 60.0 0.0
+/PLOT
+ PRINTER PLOT { Batch-mode plotting is for the line printer not vector-graphic
+C ---------------- Done with data of 1st (real) U.M. Begin data of 2nd:
+C 2nd, unused U.M. has the same data as the 1st, but it is disconnected,
+C so should not affect the solution. Outputs have been suppressed. For
+C variety, this U.M. still uses /UM whereas the first has been converted
+C to /SOURCE followed by the special Type-19 header card. Note that the
+C Type-19 card is mandatory because any source might follow /SOURCE whereas
+C only U.M. data can follow /UM (i.e., the "19" is needed for recognition
+C as U.M. data). For the 2nd, disconnected machine, note that the original
+C A3 text BUS has become GUS everywhere. To restore the 9 outputs of
+C the 2nd machine, add "111" to cols. 7-9 of the card immediately following
+C the /UM declaaration, and change "0" to "1" in column 47 of each of
+C the 6 winding cards that end machine data. If this is done, output consists
+C of 2 lines each time step, and the two will be identical.
+/UM
+ 4 1 1 GUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 GUS-A1 0 0.0 { 1st winding card
+0.063 0.0003925 GUS-B1 0 0.0
+0.063 0.0003925 GUS-C1 0 0.0
+0.083 0.0003925 GUSRB1 0 0.0
+0.083 0.0003925 GUSRC1 0 0.0
+0.083 0.0003925 GUSRA1 0 0.0 { 6th and final winding card
+/BRANCH
+ 0 GUS-A0 1.0
+ 0 GUS-B0 1.0
+ 0 GUS-C0 1.0
+ 0GUS-A1GUS-A0 0.005 1.0
+ 0GUS-B1GUS-B0GUS-A1GUS-A0
+ 0GUS-C1GUS-C0GUS-A1GUS-A0
+ 0GUSRA1 1.E-5
+ 0GUSRB1 1.E-5
+ 0GUSRC1 1.E-5
+ 0GUS-OM 6.00E4
+ 0 GUS-OM 33.333
+/SOURCE
+14GUS-A0 180.0 60.0 0.0
+14GUS-B0 180.0 60.0 -120.0
+14GUS-C0 180.0 60.0 +120.0
+11GUS-OM-1 -6.00
+C ---------------- Done with data of 2nd U.M. Begin data of 3rd:
+C 3rd, unused U.M. has the same data as the 1st, but it is disconnected,
+C so should not affect the solution. Outputs have been suppressed. Etc.
+C (like the 2nd except that the original BUS ---> MUS here).
+/UM
+ 4 1 1 MUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 MUS-A1 0 0.0 { 1st winding card
+0.063 0.0003925 MUS-B1 0 0.0
+0.063 0.0003925 MUS-C1 0 0.0
+0.083 0.0003925 MUSRB1 0 0.0
+0.083 0.0003925 MUSRC1 0 0.0
+0.083 0.0003925 MUSRA1 0 0.0 { 6th and final winding card
+/BRANCH
+ 0 MUS-A0 1.0
+ 0 MUS-B0 1.0
+ 0 MUS-C0 1.0
+ 0MUS-A1MUS-A0 0.005 1.0
+ 0MUS-B1MUS-B0MUS-A1MUS-A0
+ 0MUS-C1MUS-C0MUS-A1MUS-A0
+ 0MUSRA1 1.E-5
+ 0MUSRB1 1.E-5
+ 0MUSRC1 1.E-5
+ 0MUS-OM 6.00E4
+ 0 MUS-OM 33.333
+/SOURCE
+14MUS-A0 180.0 60.0 0.0
+14MUS-B0 180.0 60.0 -120.0
+14MUS-C0 180.0 60.0 +120.0
+11MUS-OM-1 -6.00
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 9th of 9 subcases ends the series using /UM on DC-35 U.M. data
+C 6th of 6 examples that have the same solution but slightly different data
+C Data is the same as the 2nd example except that /UM data has been moved
+C to a $INCLUDE file. Use or non-use of $INCLUDE should have no effect,
+C and this demonstrates none for this simplest, first level of $INCLUDE.
+C Enhancement by Gabor Furst. WSM's single $INCLUDE was replaced by
+C two for more generality. A second induction motor was added to show
+C that this is possible. Mr. Furst observed the following on 9 April
+C 2007: "I thought we could have this sub case with two rather than
+C one $INCLUDE file. I attach my version of this, which demonstrates
+C how adding another machine is simply adding another $INCLUDE file."
+C Mr. Furst simulated to Tmax = 1.044 seconds but program developers
+C truncate this drastically (to 10 steps) to speed execution. This is
+C just enough to start the rotors and show approximate balance. To see
+C the entire settling into the steady state, restore the longer T-max,
+C remove the minus sign from IPLOT immediately below T-max, and
+C activate the batch-mode plot card (now omitted by $DISABLE). Finally,
+C control printout (every 5th step for IOUT is a lot, for realistic use).
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+ .000400 .004 { Take only 10 time steps -- enough to begin motor rotation
+ 5 -1 { No plotting (which has nothing special to do with /UM use)
+/OUTPUT
+C BUS-A1BUS-B1BUS-C1BUS-A0BUS-OM { Shorten output by eliminating node voltages
+/SOURCE
+14BUS-A0 180.0 60.0 0.0
+14BUS-B0 180.0 60.0 -120.0
+14BUS-C0 180.0 60.0 +120.0
+11BUS-OM-1 -6.00
+14BUS-A3 180.0 60.0 0.0
+14BUS-B3 180.0 60.0 -120.0
+14BUS-C3 180.0 60.0 +120.0
+11BUS-3M-1 -6.00
+/BRANCH
+C the following branch records are transferred to $INCLUDE dc33inc1.dat
+C 0 BUS-A0 1.0
+C 0 BUS-B0 1.0
+C 0 BUS-C0 1.0
+C 0BUS-A1BUS-A0 0.005 1.0C
+C 0BUS-B1BUS-B0BUS-A1BUS-A0
+C 0BUS-C1BUS-C0BUS-A1BUS-A0
+C 0BUSRA1 1.E-5
+C 0BUSRB1 1.E-5
+C 0BUSRC1 1.E-5
+C 0BUS-OM 6.00E4
+C 0 BUS-OM 33.33
+C
+ 0 BUS-A3 1.0
+ 0 BUS-B3 1.0
+ 0 BUS-C3 1.0
+ 0BUS-A4BUS-A3 0.005 1.0
+ 0BUS-B4BUS-B3BUS-A4BUS-A3
+ 0BUS-C4BUS-C0BUS-A4BUS-A3
+ 0BUSRA4 1.E-5
+ 0BUSRB4 1.E-5
+ 0BUSRC4 1.E-5
+ 0BUS-3M 6.00E4
+ 0 BUS-3M 33.333
+$INCLUDE, dc33inc1.dat, { Separate file for /UM followed by all data for U.M. 1
+$INCLUDE, dc33inc2.dat, { Separate file for /UM followed by all data for U.M. 2
+C About the preceding data modularization, there is lack of balance. This
+C is intentional. Whereas DC33INC1 has /BRANCH data, DC33INC2 has none.
+C Each also involves /REQUEST which precedes a UMHC request. Since only
+C one has meaning, expect rejection accompanied by a warning message for the
+C 2nd of the two.
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+BLANK card ends OUTPUT variable requests
+ CALCOMP PLOT
+$DISABLE { The following plot card assumes use of Gabor Furst's longer T-max
+ 193 .1 0.0 1.0 UM-1 OMEGM UM-2 OMEGM Induction motor w in [rad/sec]
+$ENABLE
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc33inc1.dat b/benchmarks/dc33inc1.dat
new file mode 100644
index 0000000..00ad2eb
--- /dev/null
+++ b/benchmarks/dc33inc1.dat
@@ -0,0 +1,27 @@
+/BRANCH
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+ 0BUS-A1BUS-A0 0.005 1.0
+ 0BUS-B1BUS-B0BUS-A1BUS-A0
+ 0BUS-C1BUS-C0BUS-A1BUS-A0
+ 0BUSRA1 1.E-5
+ 0BUSRB1 1.E-5
+ 0BUSRC1 1.E-5
+ 0BUS-OM 6.00E4
+ 0 BUS-OM 33.33
+/REQUEST
+U.M. HEADER CARD { To be followed by significant middle card of U.M. Class 1
+ 0 { In fact, a blank card would suffice for DC-35
+/UM
+C Note that there is no Class-1 U.M. data; ATP will supply the Type-19 card.
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0 { 6th and final winding card
+C 14BUSRA1 180.0 60.0 0.0
diff --git a/benchmarks/dc33inc2.dat b/benchmarks/dc33inc2.dat
new file mode 100644
index 0000000..56933d9
--- /dev/null
+++ b/benchmarks/dc33inc2.dat
@@ -0,0 +1,15 @@
+/REQUEST
+U.M. HEADER CARD { To be followed by significant middle card of U.M. Class 1
+ 0 { In fact, a blank card would suf
+/UM
+C Note that there is no Class-1 U.M. data; ATP will supply the Type-19 card.
+ 4 1 1111BUS-3M 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A4 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B4 1 0.0
+0.063 0.0003925 BUS-C4 1 0.0
+0.083 0.0003925 BUSRB4 1 0.0
+0.083 0.0003925 BUSRC4 1 0.0
+0.083 0.0003925 BUSRA4 1 0.0 { 6th and final winding card
+C 14BUSRA1 180.0 60.0 0.0
diff --git a/benchmarks/dc33incf.dat b/benchmarks/dc33incf.dat
new file mode 100644
index 0000000..59736a1
--- /dev/null
+++ b/benchmarks/dc33incf.dat
@@ -0,0 +1,12 @@
+/UM
+C Note that there is no Class-1 U.M. data; ATP will supply the Type-19 card.
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0 { 6th and final winding card
+C 14BUSRA1 180.0 60.0 0.0
diff --git a/benchmarks/dc34.dat b/benchmarks/dc34.dat
new file mode 100644
index 0000000..c2b6504
--- /dev/null
+++ b/benchmarks/dc34.dat
@@ -0,0 +1,194 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-34
+C Test of U.M. operating as a 3-phase synchronous machine. Data is in
+C per unit. Although there is a phasor solution, manual initial conditions
+C in fact define all state variables, so the answers would be identical if
+C the negative (-1.0) starting times of the sources (T-start of cols. 61-70)
+C were erased (made blank --- or zero). For automatic initialization of
+C the same problem, see the second subcase (not normally executed). For a
+C case of automatic initialization using data in physical units, see DCNEW-2
+POWER FREQUENCY, 60.0, { Europeans need this (LEC letter dated 6 Jan 89, page 2)
+ .001 .500
+ 1 1 0 00 1 -1
+ 5 5 20 20 100 100
+ 0 BUS-F0 1.0
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+ 0BUS-A1BUS-A0 0.02 1.0610 1
+ 0BUS-B1BUS-B0BUS-A1BUS-A0 1
+ 0BUS-C1BUS-C0BUS-A1BUS-A0 1
+ 0BUS-M1 2.00E6 1
+ 0BUS-M0 2.00E6 1
+ 0BUS-M0BUS-M1 1. 1
+BLANK card ends the last branch card
+BLANK card ends (in this case nonexistent) switch cards
+11BUS-F0 0.002091 { 18 Oct 90, remove ineffective T-start = -1.0 from card
+11BUS-M0-1 1.02
+11BUS-M0-1 -.4 .019500
+14BUS-A0 1.41421356 60.0 0.0 -1.0
+14BUS-B0 1.41421356 60.0 -120.0 -1.0
+14BUS-C0 1.41421356 60.0 120.0 -1.0
+C Note, the 3 following alternatives to the 3 preceding source cards would be
+C used if the user wanted to omit the unnecessary phasor solution:
+C 14BUS-A0 1.41421356 60.0 0.0
+C 14BUS-B0 1.41421356 60.0 -120.0
+C 14BUS-C0 1.41421356 60.0 120.0
+19 UM { Beginning of U.M. data (Type-19 source)
+1
+BLANK card ending class-1 U.M. data
+ 1 2 1111BUS-M1 1 1786.98 { 1st card of U.M. machine table
+1.0 1.550 0 0.3 1.5 1.0
+0.93787 1.490 0
+0.0 0.0 BUS-A1 1 1.3860 { 1st card of coil table
+0.001096 0.150 BUS-B1 1 -0.95877
+0.001096 0.150 BUS-C1 1 -0.42721
+0.00074 0.101 BUS-F0 1 -2.826
+0.0131 0.055 1
+0.0540 0.036 1
+BLANK card ending all U.M. data
+BLANK card ending EMTP source cards
+C Total network loss P-loss by summing injections = 2.999999989932E+00
+ 2BUS-A1 1.56413 { First of many initial condition cards for the
+ 2BUS-B1 -0.30745 { electric network. Since the U.M. is not a
+ 2BUS-C1 -1.25677 { part of the phasor solution (see DCNEW-1 for
+ 2BUS-A0 1.41421356 { such a more modern problem), synchronous
+ 2BUS-B0 -0.70710678 { operation can begin smoothly only if the
+ 2BUS-C0 -0.70710678 { initially conditions are manually applied.
+ 2BUS-F0 0.002091
+ 2BUS-M0 1.0
+ 2BUS-M1 1.0 { Final card of node voltage initial conditions
+ 3BUS-A1BUS-A0 1.38494 { 1st card of branch current initial conditions
+ 3BUS-B1BUS-B0 -0.95793
+ 3BUS-C1BUS-C0 -0.42701
+ 3 BUS-A0 -1.41421356
+ 3 BUS-B0 +0.70710678
+ 3 BUS-C0 +0.70710678
+ 3 BUS-F0 -0.002091
+ 3BUS-M0BUS-M1 +1.01
+ 3BUS-M0 +1.0
+ 3BUS-M1 +1.0 { Last card of branch current init. condit.
+ BUS-A1BUS-B1BUS-C1BUS-M1BUS-M0 { Request for selective node voltage output
+C Step Time BUS-A1 BUS-B1 BUS-C1 BUS-M1 BUS-M0 BUS-A1
+C BUS-A0
+C
+C BUS-M0 UM-1 UM-1 UM-1 UM-1 UM-1
+C BUS-M1 TQGEN OMEGM THETAM IPA IPB
+C 0 0.0 1.56413 -.30745 -1.25677 1.0 1.0 1.38494
+C 1.01 1.00124132 1.0 .93787 1.386 -.95877
+C 1 .001 1.25370608 .317284401 -1.5709433 1.00000302 1.0000025 1.40049668
+C 1.00999974 .997905631 1.0 .93787 1.40049668 -.50888659
+BLANK card ending the specification of output variables
+C Last step: 500 0.5 1.62762984 -.45832224 -1.1269996 1.00472639 1.00854631
+C Last step: .570740608 .701421892 1.00469204 .660491474 .974954484 -.86183035
+C maxima : 1.65791637 1.66126439 1.66752483 1.00779145 1.00854631 1.41537866
+C maxima : 1.01 1.0019948 1.00877611 .93787 1.41537866 1.40559809
+C Times of max : .466 .038 .494 .442 0.5 .034
+C Times of max : 0.0 .015 .439 .063 .034 .056
+C minima : -1.6665177 -1.6618744 -1.662372 .989230544 .990404468 -1.4043962
+C .322011281 .29918812 .988252614 .361026487 -1.4043962 -1.4122326
+C Times of min : .491 .063 .469 .158 .217 .059
+C .296 .346 .159 .358 .059 .031
+ PRINTER PLOT
+ 193 .1 0.0 1.0 BUS-M1BUS-M0 { Plot limits: (-1.010, 0.000)
+ 193 .1 0.0 1.0 UM-1 THETAM { Plot limits: (0.000, 9.379)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK { Note this extra blank will terminate execution, to avoid 2nd subcase
+C 2nd of 2 data subcases is a modification of the first that illustrates
+C correction of a U.M. bug by Yin Yuexin as explained in his September,
+C 1990, article in EMTP News. Automatic initialization of this data case
+C gave the wrong answers (although it did run) prior to correction of the
+C UTPF around 23 October 1990. Now, answers are close (most variables
+C differ by about 1% on the final time step). Printout of the final phasor
+C solution has deliberately been omitted, so those wanting to verify this
+C computation can observe only the total network loss (see comments below).
+POWER FREQUENCY, 60.
+ 0.0010 0.500
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+C --------- EMTP CONNECTIVITY
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+C --------- TRANSMISSION LINES
+ 0BUS-A1BUS-A0 0.02 1.0610 1
+ 0BUS-B1BUS-B0BUS-A1BUS-A0 1
+ 0BUS-C1BUS-C0BUS-A1BUS-A0 1
+C --------- EMTP CONNECTIVITY REQUIREMENT
+ 0 BUS-F0 1.0
+ 0BUS-F0BUS-FS 1.0E-5
+C --------- MECH NETWORK
+ 0BUS-M1 2.00E6 1
+ 0BUS-M0 2.00E6 1
+ 0BUS-M0BUS-M1 1. 1
+BLANK card ends the last branch card
+BLANK card ends (in this case nonexistent) switch cards
+14BUS-A0 1.41421356 60 0.0 -1.0
+14BUS-B0 1.41421356 60 -120.0 -1.0
+14BUS-C0 1.41421356 60 120.0 -1.0
+14BUS-M0-1 1.020.00001 -1.0
+11BUS-M0-1 -.4 .019500
+14BUS-FS 0.002091 0.00001 -1.0
+19 UM { Beginning of U.M. data (Type-19 source)
+11
+BLANK card ending class-1 U.M. data
+ 1 2 1111BUS-M1 1 1786.98 { 1st card of U.M. machine table
+C 1 2 1111BUS-M1 1 1786.98 0.0 1.E-2
+C Note about preceding card: The one on comments, with speed tolerance EPSOM =
+C 1.E-2 really is preferable. However, it results
+C in a significantly different (20-30% ?) transient
+C than the 1st subcase. To ease the comparison,
+C we repeat the sloppy solution using default EPSOM.
+ 1.550 0 0.3 1.5 1.0
+ 1.490 0
+1.657962127 19.31 BUS-FSBUS-M0
+0.0 0.0 BUS-A1 1 { 1st card of coil table
+0.001096 0.150 BUS-B1 1
+0.001096 0.150 BUS-C1 1
+0.00074 0.101 BUS-F0 1
+0.0131 0.055 1
+0.0540 0.036 1
+BLANK card ending all U.M. data
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C BUS-A0 |TERRA *BUS-A1*
+C BUS-B0 |TERRA *BUS-B1*
+C BUS-C0 |TERRA *BUS-C1*
+C BUS-A1 |BUS-A0*UM1TLA*
+BLANK card ending EMTP source cards
+C Total network loss P-loss by summing injections = 3.060462493760E+00
+C Total network loss P-loss by summing injections = 4.749309543189E+08
+C Total network loss P-loss by summing injections = 4.749309483781E+08
+C Total network loss P-loss by summing injections = 4.749309483781E+08
+C Step Time BUS-A1 BUS-B1 BUS-C1 BUS-M1 BUS-M0 BUS-A1
+C BUS-A0
+C
+C BUS-M0 UM-1 UM-1 UM-1 UM-1 UM-1
+C BUS-M1 TQGEN OMEGM THETAM IPA IPB
+C 0 0.0 1.56469025 -.30754481 -1.2571454 1.0 1.0 1.38601852
+C 1.00131382 1.0013138 1.0 .937861106 1.3860101 -.95878667
+C 1 .001 1.25258147 .317818099 -1.5703996 1.00000077 1.0 1.40129158
+C 1.00131344 .998244785 1.0 .937861106 1.40129158 -.50952832
+C 2 .002 .764711905 .89137497 -1.6560869 1.00000314 1.0 1.22174997
+C 1.00131148 .994893975 1.0 .937861106 1.22174997 .010186855
+ BUS-A1BUS-B1BUS-C1BUS-M1BUS-M0 { Request for selective node voltage output
+BLANK card ending the specification of output variables
+C 500 0.5 1.6149836 -.48296496 -1.1320186 1.00511758 1.00883159 .944795926
+C .552751698 .679538565 1.0051174 .638940337 .944795926 -.85191135
+C Maxima : 1.65785372 1.66075108 1.65580126 1.00797985 1.00883159 1.4158664
+C 1.00131382 1.00252272 1.00882158 .937861106 1.4158664 1.40560972
+C Times of max : .049 .038 .077 .444 0.5 .034
+C 0.0 .015 .433 .06 .034 .056
+C Minima : -1.6581898 -1.6603141 -1.6560869 .98886644 .990030962 -1.4042214
+C .29939589 .270787035 .987919779 .329902805 -1.4042214 -1.4126707
+C Times of min : .024 .013 .002 .158 .215 .059
+C .296 .344 .159 .356 .059 .031
+ PRINTER PLOT
+ 193 .1 0.0 1.0 BUS-M1BUS-M0 { Plot limits: (-1.001, 0.000)
+ 193 .1 0.0 1.0 UM-1 THETAM { Plot limits: (0.000, 9.379)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc35.dat b/benchmarks/dc35.dat
new file mode 100644
index 0000000..37c3fe0
--- /dev/null
+++ b/benchmarks/dc35.dat
@@ -0,0 +1,159 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-35
+C U.M. test consisting of 3-phase induction motor startup. See Vol. X EMTP
+C Memoranda, 15 April 1980, page TPIM-6 onward. TMAX has been decreased,
+C DELTAT has been increased, and resistors shorting the rotor have been
+C increased (to help lower-precision computers). Also appears in Rule Book.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000400 .400
+ 1 1 0 00 1 -1 0
+ 5 5 20 20 100 100
+C The following 3 branches provide connectivity to ground:
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+C Next comes the source impedance, as uncoupled series R-L branches:
+ 0BUS-A1BUS-A0 0.005 1.0 2
+ 0BUS-B1BUS-B0BUS-A1BUS-A0 2
+ 0BUS-C1BUS-C0BUS-A1BUS-A0 2
+C Next there is a near short of the rotor windings (squirrel cage case):
+ 0BUSRA1 1.E-5
+ 0BUSRB1 1.E-5
+ 0BUSRC1 1.E-5
+C Final branches are for rotor mass (capacitance) and damping (resistance):
+ 0BUS-OM 6.00E4
+ 0 BUS-OM 33.333 1
+BLANK card terminating branch cards
+BLANK card ends non-existent switch cards
+14BUS-A0 180.0 60.0 0.0
+14BUS-B0 180.0 60.0 -120.0
+14BUS-C0 180.0 60.0 +120.0
+11BUS-OM-1 -6.00
+19 UM { 1st of U.M. data cards to represent 3-phase induction motor
+0
+BLANK card ending Class-1 U.M. data
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0
+BLANK card ending all U.M. data
+BLANK card ending electric network source cards
+ BUS-A1BUS-B1BUS-C1BUS-A0BUS-OM
+C Step Time BUS-A1 BUS-B1 BUS-C1 BUS-A1 BUS-B1
+C BUS-A0 BUS-B0 BUS-C0
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM THETAM IPA IPB
+C 0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0
+C 1 .4E-3 -98.574299 36.3155088 62.2587899 79.3830153 -29.245296
+C -.1388E-16 0.0 0.0 -19.695165 7.25584591
+C 2 .8E-3 -92.178447 20.8386935 71.3397538 79.6971707 -18.794915
+C -.00570624 0.0 0.0 -57.76825 18.6607698
+BLANK card ends requests for program output
+C Last step begins: 1000 0.4 -8.3684481 1.39626098 6.97218715 171.631552
+C Last step begins: -12.310167 187.573334 46.3605875 -8.8049393 23.504665
+C Maxima begin: 99.6139318 106.19115 100.446912 171.631552 171.624746
+C Maxima begin: 144.878041 197.090289 46.3605875 302.2867 263.869636
+C Associated times : .0912 .0132 .0356 0.4 .3556
+C Associated times : .0388 .2492 0.4 .1284 .1508
+C Minima begin: -103.15511 -99.851577 -103.80211 -171.82882 -171.84501
+C Minima begin: -186.32292 -.41620944 -.58668E-3 -299.62596 -384.19564
+C Associated times : .016 .0716 .0104 .3584 .364
+C Associated times : .0116 .0028 .0052 .0368 .0088
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+ 193.04 0.0 .40 UM-1 OMEGM Induction motor w in [rad/sec]
+ PRINTER PLOT { Now switch to the line printer (exactly the same plot card)
+ 193.04 0.0 .40 UM-1 OMEGM { Axis limits: (-0.004, 1.971)
+ 2Single-line, 78-character case title text !
+ First of 2 lines of multi-line, 78-byte, subheading text. !
+ Second and final line of multi-line labeling text. !
+ CALCOMP PLOT
+ 193.04 0.0 .40 UM-1 IPA
+ PEN PLOT { Divert vector graphics from screen to disk for printer
+ QUARTER PLOT { Blank col 32 means all 4 quarters of quarter plotting is used
+ 2Single-line case-title text for 1st of 4 quarters!
+ 193.04 0.0 .40 UM-1 OMEGM 1st of 4 quarterw in [rad/sec] !
+ 2Single-line case-title text for 2nd of 4 quarters!
+ 193.04 0.0 .40 UM-1 THETAM 2nd of 4 quarterAngle in radian!
+ 2Single-line case-title text for 3rd of 4 quarters!
+ 193.04 0.0 .40 UM-1 TQGEN 3rd of 4 quarterTorque in n-m !
+ 2Single-line case-title text for 4th of 4 quarters!
+ 193.04 0.0 .40 UM-1 IPA 4th of 4 quarterCurrent in amp !
+ SCREEN PLOT
+ 2Done with QUARTER PLOT; back to full size!
+ 193.04 0.0 .40 UM-1 IPB
+BLANK card ends the last plot card
+BEGIN NEW DATA CASE
+BLANK
+
+
+
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases has the same data as the 1st, but is used to illustrate
+C CALCOMP PLOT usage only. Both SCREEN PLOT and PEN PLOT usage of the
+C Salford DOS extender motivated the addition of this data in Sept, 1990.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000400 .040 { Note the reduction from 1000 to 100 time steps for speed
+ 1 1 0 00 0 -1 0
+ 5 5 20 20
+C The following 3 branches provide connectivity to ground:
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+C Next comes the source impedance, as uncoupled series R-L branches:
+ 0BUS-A1BUS-A0 0.005 1.0 2
+ 0BUS-B1BUS-B0BUS-A1BUS-A0 2
+ 0BUS-C1BUS-C0BUS-A1BUS-A0 2
+C Next there is a near short of the rotor windings (squirrel cage case):
+ 0BUSRA1 1.E-5
+ 0BUSRB1 1.E-5
+ 0BUSRC1 1.E-5
+C Final branches are for rotor mass (capacitance) and damping (resistance):
+ 0BUS-OM 6.00E4
+ 0 BUS-OM 33.333 1
+BLANK card terminating branch cards
+BLANK card ends non-existent switch cards
+14BUS-A0 180.0 60.0 0.0
+14BUS-B0 180.0 60.0 -120.0
+14BUS-C0 180.0 60.0 +120.0
+11BUS-OM-1 -6.00
+19 UM { 1st of U.M. data cards to represent 3-phase induction motor
+0
+BLANK card ending Class-1 U.M. data
+ 4 1 1111BUS-OM 2 0.06 0.18850 { 1st machine table
+0.0 0.020291 0
+0.0 0.020291 0
+0.063 0.0001911 BUS-A1 1 0.0 { 1st winding card
+0.063 0.0003925 BUS-B1 1 0.0
+0.063 0.0003925 BUS-C1 1 0.0
+0.083 0.0003925 BUSRB1 1 0.0
+0.083 0.0003925 BUSRC1 1 0.0
+0.083 0.0003925 BUSRA1 1 0.0
+BLANK card ending all U.M. data
+BLANK card ending electric network source cards
+ BUS-A1BUS-B1BUS-C1BUS-A0BUS-OM
+BLANK card ends requests for program output
+ 2Single-line, 78-character case title text !
+ First of 2 lines of multi-line, 78-byte, subheading text. !
+ Second and final line of multi-line labeling text. !
+ 194 4. 0.0 40. UM-1 OMEGM Induction motor w in [rad/sec] !
+ PEN PLOT { Now switch to the Epson printer (exactly the same plot card)
+ 2Single-line, 78-character case title text !
+ First of 2 lines of multi-line, 78-byte, subheading text. !
+ Second and final line of multi-line labeling text. !
+ 194 4. 0.0 40. UM-1 OMEGM Induction motor w in [rad/sec] !
+ SCREEN PLOT
+ First of 2 lines --- text is altered, though. !
+ Second 2 lines --- text is altered. !
+ 194 4. 0.0 40. UM-1 OMEGM Induction motor w in [rad/sec] !
+BLANK card ends the last plot card
+BEGIN NEW DATA CASE
+BLANK
+
+
diff --git a/benchmarks/dc36.dat b/benchmarks/dc36.dat
new file mode 100644
index 0000000..ff85f42
--- /dev/null
+++ b/benchmarks/dc36.dat
@@ -0,0 +1,295 @@
+BEGIN NEW DATA CASE -- NOSORT ---
+C BENCHMARK DC-36 (DC-74 of "M39." vintage)
+C Example drawn from the dynamite EMTP Newsletter article by W. Scott Meyer,
+C "EMTP Data Modularization and Sorting ...," Volume 4, No. 2, Sec. V,
+C November, 1983. This case produces branch cards for companion problem
+C DC-8, which illustrates $INCLUDE usage with arguments. Since that
+C NEWSLETTER use, the feature has been changed to conventional batch-mode.
+C Note required addition of "NOSORT" somewhere on the very 1st input card.
+C This is checked in "OVER1" at the beginning of execution, so that data
+C card sorting by class ("/" cards) is bypassed, as required for use here.
+C The punched card output (produced by the $PUNCH request) should agree
+C with Figure 2, except for the addition of $EOF and ARG cards at the
+C end, and the fact that question marks (?????) have not replaced the real
+C character strings that have meaning to the user. The file DC8INCL1.DAT
+C for use by DC-8 should agree exactly with Fig. 2 (except for the switch
+C to lower case lettering for comment cards), and it was derived by editing
+C the punch file. 6 subcases exist, with the 2nd the same as the first
+C except that it is more general because it uses a "DUM" declaration. The
+C 4th applies to an entire data case rather than just a $INCLUDE file.
+C The 3rd and the 5th illustrate math within a $INCLUDE file --- dependent
+C variables that involve new DEP, declaration. The 6th subcase shows that
+C $INCLUDE can be used within DBM along with "/" cards and NOSORT.
+DATA BASE MODULE
+C $ERASE
+C $DEBUG, 9,
+ARG, _NODE, _MINUS, __PLUS, { Before 1994, this 1st ARG card had all 5 arguments
+ARG, _FIRE, __MID { This 2nd ARG card illustrates procedure for continuation
+/BRANCH
+C3 Begin with anode reactors and parallel resistors (6 pairs):
+ _NODEA__MID1 3000.
+ _NODEA__MID1 1.0
+ _NODEB__MID3 3000.
+ _NODEB__MID3 1.0
+ _NODEC__MID5 3000.
+ _NODEC__MID5 1.0
+ __PLUS__MID4 3000.
+ __PLUS__MID4 1.0
+ __PLUS__MID6 3000.
+ __PLUS__MID6 1.0
+ __PLUS__MID2 3000.
+ __PLUS__MID2 1.0
+C3 Next come the snubber circuits, across valves and anode reactors:
+ _NODEA_MINUS 1200. 0.1
+ _NODEB_MINUS 1200. 0.1
+ _NODEC_MINUS 1200. 0.1
+ _NODEA__PLUS 1200. 0.1
+ _NODEB__PLUS 1200. 0.1
+ _NODEC__PLUS 1200. 0.1
+C3 Next come the valves:
+/SWITCH
+11__MID1_MINUS _FIRE2
+11__MID3_MINUS _FIRE4
+11__MID5_MINUS _FIRE6
+11__MID4_NODEA _FIRE5
+11__MID6_NODEB _FIRE1
+11__MID2_NODEC _FIRE3
+BEGIN NEW DATA CASE ---- NOSORT ----
+C Note: Preceding case marker is required where it now is positioned, so
+C that data card input for the modularization be terminated here (
+C since this is what is checked for). If the following $PUNCH
+C were to precede BNDC, it would be read before any card images
+C would have been created, & the result would be an empty listing.
+C The same goes for the following comment cards that document the
+C answer: if these cards preceded BNDC, they would not be read
+C by "CIMAGE" as intended (the data base logic reads directly
+C from the input card buffer of LUNIT10). So, do not tamper with
+C the present positioning that documents the results of the first
+C subcase at the beginning of the second (where we now are).
+C KARD 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14
+C 14 15 15 16 16 17 17 18 18 19 19 21 21 21 22 22 22 23 23 23 24 24 24 25 25
+C 25 26 26 26
+C KARG 1 5 1 5 1 5 1 5 1 5 1 5 3 5 3 5 3 5 3 5 3 5 3 5 1
+C 2 1 2 1 2 1 3 1 3 1 3 2 4 5 2 4 5 2 4 5 1 4 5 1 4
+C 5 1 4 5
+C KBEG 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3
+C 9 3 9 3 9 3 9 3 9 3 9 9 65 3 9 65 3 9 65 3 9 65 3 9 65
+C 3 9 65 3
+C KEND 7 13 7 13 7 13 7 13 7 13 7 13 8 13 8 13 8 13 8 13 8 13 8 13 7
+C 14 7 14 7 14 7 14 7 14 7 14 14 69 7 14 69 7 14 69 7 13 69 7 13 69
+C 7 13 69 7
+C KTEX 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+C 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+C 1 1 1 1
+$PUNCH { Flush critical portion of answers from preceding first subcase
+C 2nd of 6 subcases will illustrate the use of the "DUM" declaration for
+C internal nodes about which the names might not matter. To illustate it,
+C remove "MID?" from the "ARG" declaration, and list in all of their
+C variations (there are six) in a "DUM" declaration. Remember that the
+C "DUM" declarations must come last (a restriction on present logic).
+DATA BASE MODULE
+ARG, _NODE, _MINUS, __PLUS, _FIRE { Must precede any "DUM" card
+DUM, __MID1, __MID2, __MID3, __MID4, __MID5, __MID6 { Must follow last "ARG"
+/BRANCH
+C3 Begin with anode reactors and parallel resistors (6 pairs):
+ _NODEA__MID1 3000.
+ _NODEA__MID1 1.0
+ _NODEB__MID3 3000.
+ _NODEB__MID3 1.0
+ _NODEC__MID5 3000.
+ _NODEC__MID5 1.0
+ __PLUS__MID4 3000.
+ __PLUS__MID4 1.0
+ __PLUS__MID6 3000.
+ __PLUS__MID6 1.0
+ __PLUS__MID2 3000.
+ __PLUS__MID2 1.0
+C3 Next come the snubber circuits, across valves and anode reactors:
+ _NODEA_MINUS 1200. 0.1
+ _NODEB_MINUS 1200. 0.1
+ _NODEC_MINUS 1200. 0.1
+ _NODEA__PLUS 1200. 0.1
+ _NODEB__PLUS 1200. 0.1
+ _NODEC__PLUS 1200. 0.1
+C3 Next come the valves:
+/SWITCH
+11__MID1_MINUS _FIRE2
+11__MID3_MINUS _FIRE4
+11__MID5_MINUS _FIRE6
+11__MID4_NODEA _FIRE5
+11__MID6_NODEB _FIRE1
+11__MID2_NODEC _FIRE3
+BEGIN NEW DATA CASE -- NOSORT ---
+C Note: Preceding case marker is required where it now is positioned, so
+C that data card input for the modularization be terminated here (
+C since this is what is checked for). If the following $PUNCH
+C were to precede BNDC, it would be read before any card images
+C would have been created, & the result would be an empty listing.
+C The same goes for the following comment cards that document the
+C answer: if these cards preceded BNDC, they would not be read
+C by "CIMAGE" as intended (the data base logic reads directly
+C from the input card buffer of LUNIT10). So, do not tamper with
+C the present positioning that documents the results of the first
+C subcase at the beginning of the second (where we now are).
+C KARD 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14
+C 14 15 15 16 16 17 17 18 18 19 19 21 21 21 22 22 22 23 23 23 24 24 24 25 25
+C 25 26 26 26
+C KARG 1 -1 1 -1 1 -3 1 -3 1 -5 1 -5 3 -4 3 -4 3 -6 3 -6 3 -2 3 -2 1
+C 2 1 2 1 2 1 3 1 3 1 3 2 4 -1 2 4 -3 2 4 -5 1 4 -4 1 4
+C -6 1 4 -2
+C KBEG 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3
+C 9 3 9 3 9 3 9 3 9 3 9 9 65 3 9 65 3 9 65 3 9 65 3 9 65
+C 3 9 65 3
+C KEND 7 14 7 14 7 14 7 14 7 14 7 14 8 14 8 14 8 14 8 14 8 14 8 14 7
+C 14 7 14 7 14 7 14 7 14 7 14 14 69 8 14 69 8 14 69 8 13 69 8 13 69
+C 8 13 69 8
+C KTEX 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+C 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+C 1 1 1 1
+$PUNCH { Flush critical portion of answers from preceding data case
+C 3rd of 6 subcases will illustrate the use of the "DEP" declaration for
+C dependent variables of $INCLUDE usage as provided for Jeff Peggs of
+C Virginia Power in Richmond. For details, see stories in the April
+C and July, 1997, newsletters. Whereas the 2nd subcase had constant
+C capacitance C = 0.1 in columns 39-44, here a dependent variable CAP_44
+C is used. For simplicity, trivial math (1000 * 1.E-4) is used in order
+C that the answer remain unchanged. More generally, one or more variable
+C would be involved in the right hand side of the CAP_44 definition below.
+C Here, there is a single dependent variable, but in general there can be
+C any number. For each, the name must be declared first on a DEP line,
+C where the first DEP follows the last of all other (ARG, NUM, or TEX)
+C declarations. The associated dependence is to follow as a line of low-
+C level FORTRAN, which must be compatible with the pocket calculator code
+C of Walter Powell. Before any real lines of data for $INCLUDE use should
+C come all such DEP lines, followed by all FORTRAN lines associated with
+C these new variables. In this illustration, there is just one (CAP_44).
+DATA BASE MODULE
+ARG, _NODE, _MINUS, __PLUS, { Before 1994, this 1st ARG card had all 5 arguments
+ARG, _FIRE, __MID { This 2nd ARG card illustrates procedure for continuation
+DEP, CAP_44 { This "DEP" declaration is new. Each dependent variable needs 1
+ CAP_44 = 1000. * 1.E-4 { Associated formula for evaluation during $INCLUDE
+/BRANCH
+C3 Begin with anode reactors and parallel resistors (6 pairs):
+ _NODEA__MID1 3000.
+ _NODEA__MID1 1.0
+ _NODEB__MID3 3000.
+ _NODEB__MID3 1.0
+ _NODEC__MID5 3000.
+ _NODEC__MID5 1.0
+ __PLUS__MID4 3000.
+ __PLUS__MID4 1.0
+ __PLUS__MID6 3000.
+ __PLUS__MID6 1.0
+ __PLUS__MID2 3000.
+ __PLUS__MID2 1.0
+C3 Next come the snubber circuits, across valves and anode reactors:
+ _NODEA_MINUS 1200. CAP_44 { 1st of 6 replaces 0.1 in 39-44
+ _NODEB_MINUS 1200. CAP_44 { 2nd of 6 ....
+ _NODEC_MINUS 1200. CAP_44
+ _NODEA__PLUS 1200. CAP_44
+ _NODEB__PLUS 1200. CAP_44
+ _NODEC__PLUS 1200. CAP_44
+C3 Next come the valves:
+/SWITCH
+11__MID1_MINUS _FIRE2
+11__MID3_MINUS _FIRE4
+11__MID5_MINUS _FIRE6
+11__MID4_NODEA _FIRE5
+11__MID6_NODEB _FIRE1
+11__MID2_NODEC _FIRE3
+BEGIN NEW DATA CASE
+$PUNCH { Flush cards of $INCLUDE created by 1st subcase. Rename DCN22INC.DAT
+C 4th of 6 subcases will illustrate the use of data modularization for a
+C complete data case (not a $INCLUDE file). The output becomes DC-65
+C after the addition of a few cards at the top and the bottom. A single
+C argument, for the end-time TMAX of the study, is desired.
+DATA BASE MODULE
+ARG, TMAX { The end time of the study, misc. data parameter T-max, is argument
+NUM, TMAX { The end time of the study, misc. data parameter T-max, is numerical
+C The following data is from DC-4, with the only changes being less output.
+C Suppress the connectivity display and the phasor solution. End time=TMAX.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .010 TMAX
+ 1 1 0 0 1 -1
+ 5 5 20 20
+ BRANCH NAME:First { Even though name could go on next card, use this instead
+ GEN TRAN 5.0 5.E4 3
+ TRAN NAME R-mag 1.E4
+93TRAN NAME Magnet .005 30. 3
+ 0.0 0.0 { 1st point being origin is request to reflect
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN LOADG 255. 5.E4 3
+C Note: original fixed-format card (next comment) converted to free-format:
+C LOADG 1.E-6
+0,LOADG, , , , 1.E-6, 0.0, 0.0, , , , , ,
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards.
+C Total network loss P-loss by summing injections = 8.286714400785E+00
+C Inject: GEN 70. 70. .23676326859385 .25769284993889 8.2867144007848
+C Inject: 0.0 0.0 -.1017288531066 -23.2514964 3.5605098587304
+C ---- Initial flux of coil "TRAN " to " " = -1.13295190E+01
+C Step Time GEN TRAN TRAN GEN TRAN
+C TRAN TERRA LOADG
+C 0 0.0 6.270257621 63.72974238 63.72974215 70. 63.72974238
+C 1 .01 6.156651781 63.83984825 63.83984802 69.99650003 63.83984825
+ GEN TRAN
+BLANK card ending program output-variable requests.
+ PRINTER PLOT
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+$PUNCH { Flush cards of $INCLUDE created by 1st subcase. Rename DCN22INC.DAT
+C 5th of 6 subcases will illustrate dependent variables as explained to
+C others in the January, 1997, newsletter (see mention of Jeff Peggs of
+C Virginia Power in Richmond). The 3rd subcase provided an illustration,
+C but was artificial in that only constants (no variables) were involved.
+C Here, a balanced 3-phase sinusoidal source is modularized, with the
+C angles of phases "b" and "c" dependent on the user-specified angle of
+C phase "a". Also, the user specifies line-to-line RMS voltage, which
+C is converted to peak phase-to-ground voltage as required by ATP.
+DATA BASE MODULE
+ARG, NAME, _RATEDRMSV, _____HERTZ, ____ANGLEA, ____TSTART
+NUM, _RATEDRMSV, _____HERTZ, ____ANGLEA, ____TSTART
+DEP, _PEAKVALUE, ____ANGLEB, ____ANGLEC
+ _PEAKVALUE = _RATEDRMSV * SQRT ( 2.0 / 3.0 ) { Convert L-L RMS to peak L-N
+ ____ANGLEB = ____ANGLEA - 120. { Angle of phase "b" lags "a" by 120 degrees
+ ____ANGLEC = ____ANGLEA - 240. { Angle of phase "b" lags "a" by 240 degrees
+C3 Type-14 source cards follow:
+14NAMEA _PEAKVALUE_____HERTZ____ANGLEA ____TSTART
+14NAMEB _PEAKVALUE_____HERTZ____ANGLEB ____TSTART
+14NAMEC _PEAKVALUE_____HERTZ____ANGLEC ____TSTART
+BEGIN NEW DATA CASE -- NOSORT --
+$PUNCH, dc36e.pch ! { Disk file name assumed by ??
+C 6th of 6 subcases will illustrate use of both $INCLUDE and /-cards
+C within DATA BASE MODULE. Prior to correction on 16 July 2001, this
+C was not possible as first complained about by Prof. Mustafa Kizilcay.
+C The following is his illustrative data.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+DATA BASE MODULE
+ARG, BEG1__, END1__, LENGTH______
+NUM, LENGTH______
+/BRANCH
+$INCLUDE, dc36incl.dat ! { 1-phase, constant-parameter distributed line
+C The 3 important non-comment cards of the preceding $INCLUDE file are:
+C $VINTAGE, 1
+C -1BEG1__END1__ 1.63917E-01 5.77155E+02 2.49305E+05LENGTH______ 1
+C $VINTAGE, 0
+BEGIN NEW DATA CASE
+$PUNCH
+C Comment cards in this location serve another purpose, too.
+C Without them, STARTUP variable KASEND = 5 (as commonly
+C used for workstations) means that fewer than the minimum
+C cards would remain, so the $PUNCH would be skipped, and
+C output would not be produced.
+BLANK { 15 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 15 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 15 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 15 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 15 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK
diff --git a/benchmarks/dc36incl.dat b/benchmarks/dc36incl.dat
new file mode 100644
index 0000000..c46fdde
--- /dev/null
+++ b/benchmarks/dc36incl.dat
@@ -0,0 +1,12 @@
+C constant-param. distributed line model:
+C single-phase 110-kV overhead line, l=50 km.
+C <++++++> Cards punched by support routine on 26-Oct-97 23.05.12 <++++++>
+C **** TRANSPOSED Line calculated at 5.000E+01 HZ. ****
+C LINE CONSTANTS
+C METRIC
+C 10.311 0.116 4 2.19 4.9 16.4 16.4
+C BLANK CARDS ENDING CONDUCTOR CARDS WITHIN "LINE CONSTANTS" DATA
+C 100. 50.00 1 1 1 0 50. 0
+$VINTAGE, 1
+-1BEG1__END1__ 1.63917E-01 5.77155E+02 2.49305E+05LENGTH______ 1
+$VINTAGE, 0
diff --git a/benchmarks/dc37.dat b/benchmarks/dc37.dat
new file mode 100644
index 0000000..ef07b2a
--- /dev/null
+++ b/benchmarks/dc37.dat
@@ -0,0 +1,677 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-37
+C Trivial test of ZnO modeling. Single phase, single exponential, no gap.
+C For documentation, see the EMTP Newsletter, Vol. 1, No. 2, pages 6-9.
+C i = 2500 * ( v / V-ref ) ** 26 where 2500 = COEF and 26 = EXPON.
+C The lack of a gap follows from V-flash being an arbitary negative value.
+C Note 2-column arrester (COL=2.0), and twice COEF = 1250 is 2500 total.
+C The idea of using COL came from Dan Durbak of PTI (Schenectady, New
+C York) at the end of an unrelated telephone call to BPA on July 3, 1986.
+C Finally, a 2nd ZnO arrester is applied right across the voltage source.
+C Of a total of 12 subcases, several illustrate power and energy output.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+C MAXZNO EPSZNO EPWARN EPSTOP ZNOLIM1 ZNOLIM2
+ZINC OXIDE 20 1.D-8 1.D-3 0.1 0.6 1.5 default values
+C ZO, , , , .9, , { To improve ZnO convergence, restrict the Newton ZnO correction
+ .000050 .020
+ 1 1 1 0 1 -1 0
+ 2 10 33 1 40 10 100 50
+-1SEND REC .306 5.82 .012 200.
+92REC { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+C The following arrester is applied right across the voltage source, so it is
+C disconnected, and requires no iteration. Newton iteration is 1-dimensional
+C (the matrix is 1 x 1 only). The second arrester involves "table lookup."
+C Note that V-ref is equal to the peak source voltage, so the peak current
+C is equal to the coefficient: COL * COEF = 2500 amps. The plot agrees.
+92SEND { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 408000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 408000. 60.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C SEND |TERRA *REC *
+C REC |TERRA *SEND *
+C TERRA |SEND *REC *
+C --------------+------------------------------
+BLANK card ending source data
+C Step Time REC SEND REC SEND
+C TERRA TERRA
+C 0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 0.0 407927.5198 0.0 2488.47851
+C 2 .1E-3 0.0 407710.1048 0.0 2454.223589
+C 12 .6E-3 0.0 397606.9641 0.0 1278.142608
+C 22 .0011 0.0 373418.3984 0.0 249.9564103
+C 32 .0016 0.0 336001.2998 0.0 16.05612212
+C 33 .00165 0.0 331579.2191 0.0 11.37746957
+C 34 .0017 446716.5798 327039.3298 .0013592657 7.950150616
+ 1 { Request for all node voltage outputs
+C Final step : 400 .02 53295.59263 126078.9337 .5103896E-5 .2302356E-4
+C Variable maxima : 693010.7427 407991.9464 123.5121341 2498.717272
+C Times of maxima : .00175 .01665 .00175 .01665
+C Variable minima : -711052.757 -407991.946 -240.945005 -2498.71727
+C Times of minima : .00765 .00835 .00765 .00835
+ PRINTER PLOT
+ 144 3. 0.0 20. REC { Axis limits: (-7.111, 6.930)
+ 194 2. 0.0 20. SEND { Axis limits: (-2.499, 2.499)
+ CALCOMP PLOT
+C The following plot card illustrates automatic plotting from zero through
+C the end time TMAX of the study. Columns 5-7 give the t-axis length in
+C inches, and columns 12-15 being negative is the flag to plot all time.
+C With a 10-inch axis and a time span of 20 msec, the result is 2 msec/in.
+C For such all-time character plotting in units of [seconds], see DC-6.
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+ 19410. -1. REC 16-Char. HeadingVertical axis Y:
+$STARTUP, dc37star.dat ! { Use disk file for re-initialization immediately
+C This will halve the number of pixels/inch (PIXPUN) for an Apollo screen
+C plot. Also, it will set the smoothing tolerance squared, TOLRCE, to
+C 1/10. The result will be a half-size and very bumpy screen plot:
+ 194 1. 0.0 10. REC 16-byte Heading Y-axis labeling.
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 12 subcases. Same basic network as just solved, only with modified
+C ZnO characteristic as derived by DC-39. One exponential with flashover.
+C The first (pre-flash) characteristic has near-infinite resistance, with
+C exponent equal to unity. Leakage current (about 1.E-20 amps) will occur
+C prior to flashover at v = VREF = 778 kV. The operational characteristic
+C is i = 29479.54 * ( v / V-ref ) ** 26.53, which is very close to the
+C original characteristic of 1st subcase. Change on 23 Jul 1984 ("M39.+").
+C Enhancement beginning 30 July 1986. Series voltage sources for all
+C nonlinear elements are allowed, so let's take the simplest possible
+C case of a 10-KVolt battery (variable "BATTER" defined within TACS).
+C Before the pulse arrives, this only draws leakage current from the
+C linear representation of the surge arrester (R-leakage). But when
+C the 10 kV are added to the surge, the answer changes significantly.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .020
+ 1 1 1 0 1 -1 0
+ 2 10 33 1 40 10 100 50
+TACS HYBRID { We use TACS only to produce series voltage "BATTER" of ZnO
+99BATTER = 10000. { Small battery (dc source) is inserted in series with ZnO
+33BATTER { Output the only this one TACS variable that controls ZnO source
+77BATTER 10000. { Initial condition required for smooth electrical step 1
+BLANK card ending all TACS data
+-1SEND REC .306 5.82 .012 200. 1
+92REC 5555. 1
+C =============================================================================
+C 92REC TYP11 5555. 1
+C The preceding comment card is just for verification of solution. See the
+C explanation on comment cards below the blank card ending switch cards.
+C =============================================================================
+C VREF VFLASH VZERO COL
+ 0.778000000000000E+06 1.0
+C COEF EXPON VMIN
+ 0.294795442961157E-20 1.0 .900000E+01
+ 9999 { Bound on exponentials of 1st, pre-flash v-i curve
+ 0.294795442961157E+05 0.265302624185338E+02 0.545050636122854E+00
+ 9999 { Bound on exponentials of 2nd, post-flash v-i curve
+ TACS CONTROLBATTER { Only 1st of three A6 names, for series voltage, is used
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+C =============================================================================
+C The easiest way to verify correct operation of the series voltage BATTER
+C of the Type-92 element is to cancel it out using an electrical network
+C battery. The following Type-11 source will do the job. But then the
+C nonlinear element must have the second name changed to "TYP11", note.
+C 11TYP11 -10000. { This battery cancels series voltage of ZnO "BATTER"
+C =============================================================================
+14SEND 408000. 60.
+BLANK card ending source data
+C The following beginning shows leakage current between steps 1 and 33 when
+C only the TACS voltage "BATTER" is exciting the arrester. Since the line
+C impedance (Z-thev) is so much smaller than the ZnO, the receiving voltage
+C REC is very, very small. But it is nonzero, note --- and correctly so:
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 1 output variables belong to TACS (with "TACS" an internally-added upper name of pair). Updated 2 Nov 00
+C Step Time SEND REC SEND REC TACS
+C REC TERRA BATTER
+C 0 0.0 0.0 0.0 0.0 0.0 10000.
+C 1 .5E-4 407927.5198 .269681E-19 407927.5198 -.37891E-22 10000.
+C 2 .1E-3 407710.1048 .269681E-19 407710.1048 -.37891E-22 10000.
+C 12 .6E-3 397606.9641 .269681E-19 397606.9641 -.37891E-22 10000.
+C 22 .0011 373418.3984 .269681E-19 373418.3984 -.37891E-22 10000.
+C 32 .0016 336001.2998 .269681E-19 336001.2998 -.37891E-22 10000.
+C 33 .00165 331579.2191 .269681E-19 331579.2191 -.37891E-22 10000.
+C 34 .0017 -119678.217 446717.5472 327039.3298 .165479E-20 10000.
+ 1 { Request for all node voltage outputs
+C 400 .02 8093.382341 117985.5514 126078.9337 .7639597E-3 10000.
+C Variable maxima : 474201.1091 793085.1587 407991.9464 225.9075813 10000.
+C Times of maxima : .0063 .0159 .01665 .0162 0.0
+C Variable minima : -511598.378 -768087.191 -407991.946 -333.924608 10000.
+C Times of minima : .00295 .0063 .00835 .00765 0.0
+ PRINTER PLOT
+ 194 3. 0.0 20. REC { Axis limits: (-3.339, 2.259)
+ CALCOMP PLOT
+ 194 2. 0.0 20. REC 16-Char HeadingVertical axis Y.
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 12 subcases. Same basic network as just solved, only with modified
+C ZnO characteristic as derived by DC-39. There is a 2-exponential curve,
+C the pre-flashover curve of 2nd subcase. V-flash < 0 means no gap here.
+$STARTUP, (ATPDIR)startup ! { Re-initialize with original disk file of 1st subcase
+C This will restore the default parameters, after illustrating (see the
+C 2nd subcase) what happens in the absence of such restoration for later
+C stacked subcases. The second subcase continued with the mini CalComp
+C plots that began at the end of the 1st subcase with dc37star.dat.
+C Note about "(ATPDIR)" as used on preceding $STARTUP. This is
+C optional. If it appears, ATP will replace these 8 bytes by the
+C content of symbol ATPDIR (as used at BPA, "C:\ATP").
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ZINC OXIDE 20
+ .000050 .02000
+ 1 1 1 0 1 -1 0
+ 2 10 33 1 40 10 100 50
+-1SEND REC .306 5.82 .012 200.
+92REC 5555. 1
+C VREF VFLASH VZERO COL
+ 0.778000000000000E+06 -1.0 1.0
+C COEF EXPON VMIN
+ 0.505584788677197E+07 0.464199973324622E+02 0.632754084797274E+00
+ 0.122767153039007E+05 0.166775903445228E+02 0.816748018907843E+00
+ 9999 { Bound on two exponentials of single v-i curve
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 408000. 60.
+BLANK card ending source data
+C Step Time REC SEND REC
+C TERRA
+C 0 0.0 0.0 0.0 0.0
+C 1 .5E-4 0.0 407927.5198 0.0
+C 2 .1E-3 0.0 407710.1048 0.0
+C 12 .6E-3 0.0 397606.9641 0.0
+C 22 .0011 0.0 373418.3984 0.0
+C 32 .0016 0.0 336001.2998 0.0
+C 33 .00165 0.0 331579.2191 0.0
+C 34 .0017 446715.6097 327039.3298 .0027223116
+ 1 { Request for all node voltage outputs
+C Final step printout: 400 .02 104698.8727 126078.9337 .6380412E-3
+C Variable maxima : 626465.3591 407991.9464 217.0115979
+C Times of maxima : .00175 .01665 .00175
+ PRINTER PLOT
+ 144 3. 0.0 20. REC { Axis limits: (-6.329, 6.265)
+ CALCOMP PLOT
+ 194 2. 0.0 20. REC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 12 subcases
+C Modify 1st subcase of DC-37 to illustrate scaling of voltage and current
+C by 1000 for ZnO surge arrester.
+C 1 October 2000, add illustrations of 3-digit exponents: numbers
+C larger than 1.E+100 and smaller than 1.E-100. It was necessary
+C to find a subcase without plotting, since otherwise the limit of
+C FLTINF (set in STARTUP to 1.E19) would be imposed. To avoid this
+C limit, we set IPLOT = -1 below (columns 9-16). Node OVER is to
+C demonstrate near overflow of the Intel limit of around 1.E+308, and
+C node UNDER is to demonstrate near underflow of the limit 1.E-308
+C Each involves series R-L with R = 12.7 and L = .45 mH (or the
+C negative of this for overflow), which implies a time constant of
+C Tau = L / R = .45E-3 / 12.7 = 3.54E-5 sec. The simulation lasts for
+C 20 msec, so EXP ( T-max / Tau ) = EXP ( .020 / 3.54E-5 ) =
+C EXP ( 564.44 ) = 1.365E+245. This 245 is close to the 303 observed
+C (close enough for engineers to understand the physics involved).
+C A final detail concerns the .DBG file. For Salford EMTP, this
+C is a separate file as long as output is buffered (typically LU6VRT
+C has value 32768 for an output buffer of size 32 Kbytes). As a
+C separate file, the user might never look to see the message that
+C is produced for each optimal encoding that requires a 3-digit
+C exponent. For example, the first two occur to produce the output
+C of step 150. The associated diagnostic becomes highly visible if
+C output is not buffered (if LU6VRT = 0). Then, from DC37.LIS :
+C 100 .005 .316184E-12 0.0 0.0 .577391E-22 -.887674E75 .267212E-74
+C FLTOPT. Wierd number D9 = 1.234180423134E+0113 SPYCD2(1:35) = 0.1234180423133828610000+114
+C FLTOPT. Wierd number D9 = 1.921900653658E-0113 SPYCD2(1:35) = 0.1921900653658086780000-112
+C 150 .0075 -288.499567 0.0 0.0 -.305176E-3 -.12342E114 .19219E-112
+C There is nothing wrong. The number is wierd only in the sense
+C that Salford omitted the "E" during encoding, so ATP logic was
+C forced to restore the "E" manually.
+C 14 January 2011, add illustration of the new protection against
+C overflow of node voltage. DC-61 illustrated use of the new optional
+C second parameter LOGB10 on the PEAK VOLTAGE MONITOR declaration.
+C But the protection there was invisible since there never was any need
+C for it. Here, there is need. With a node voltage limit of 1.E+304,
+C execution will be terminated with the KILL = 264 error message:
+C KILL = 264. ATP halts execution because some node voltage has
+C exceeded the bound of 1.00000000+304 as defined by the optional
+C second parameter of the user`s NODE VOLTAGE MONITOR request. This
+C is at node "MIDO " on step number 399. WSM.
+C Ruler for next card: MAXVLT HALTNV { Format is: ( 32X, I8, E8.0 )
+PEAK VOLTAGE MONITOR 1 1.E304 { Peak node voltage = 1.E+304
+VOLTAGE SOURCES IN KV
+PRINTED NUMBER WIDTH, 10, 2, { Request minimum precision, since explosive
+ .000050 .020
+ 1 -1 1 0 1 -1 0
+ 5 10 33 1 40 10 100 50 395 1
+92VOLT 5555. 1
+C VREF VFLASH VZERO COL
+ 408000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+ VOLT 1.E8 { Avoid warning to weak connection to ground
+C Network modification. We must split the unstable series R-L into two
+C separate, series branches. This is to add a node at which the voltage
+C will increase without bound (exponential growth). The old data escaped our
+C new protection because terminal node voltages were identically zero (it was
+C only the branch current that grew uncontrolled):
+C OVER 12.7 -.45 { Series R-L with negative L } 1
+ OVER MIDO 12.7 { Series R with positive R }
+ MIDO -.45 { Series L with negative L } 1
+ UNDER 12.7 .45 { Series R-L with positive L } 1
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14VOLT 408. 50.
+14OVER 1.0 50. { Voltage source is shorted at .2 ms } 2.E-4
+14UNDER 1.0 50. { Voltage source is shorted at .2 ms } 2.E-4
+BLANK card ending source data
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time MIDO VOLT OVER UNDER VOLT MIDO UNDER
+C TERRA TERRA TERRA
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 3.395807 407.9497 .9998766 .9998766 2.491993 -.188656 .0325693
+C 2 .1E-3 19.6688 407.7987 .9995066 .9995066 2.468123 -1.47002 .0707492
+C 3 .15E-3 113.9285 407.5471 .9988899 .9988899 2.428834 -8.89209 .0773084
+C 4 .2E-3 656.5329 407.1949 0.0 0.0 2.374852 -51.6955 .0458835
+C 5 .25E-3 3802.936 406.7423 0.0 0.0 2.307161 -299.444 .0079213
+ 1 { Request for output of all node voltages
+C 395 .01975 .125E302 406.7423 0.0 0.0 2.307161 -.98E300 .24E-299
+C 396 .0198 .723E302 407.1949 0.0 0.0 2.374852 -.57E301 .42E-300
+C 397 .01985 .419E303 407.5471 0.0 0.0 2.428834 -.33E302 .72E-301
+C 398 .0199 .243E304 407.7987 0.0 0.0 2.468123 -.19E303 .12E-301
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 12 subcases
+C Modify 2nd subcase of DC-37 to illustrate scaling of voltage and current
+C by 1000 for ZnO surge arrester. Note that VOLTAGE SOURCES IN KV is
+C not needed because the declaration of the preceding subcase remains in
+C effect for this one.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .020
+ 1 1 1 0 1 -1 0
+ 2 10 33 1 40 10 100 50
+-1GEN VOLT .306 5.82 .012 200.
+92VOLT 5555. 1
+C VREF VFLASH VZERO COL
+ 0.778000000000000E+06 1.0
+C COEF EXPON VMIN
+ 0.294795442961157E-20 1.0 .900000E+01
+ 9999 { Bound on exponentials of 1st, pre-flash v-i curve
+ 0.294795442961157E+05 0.265302624185338E+02 0.545050636122854E+00
+ 9999 { Bound on exponentials of 2nd, post-flash v-i curve
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14GEN 408. 50.
+BLANK card ending source data
+ 1 { Request for all node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 12 subcases
+C Modify 4th subcase of DC-37 to illustrate scaling of voltage and current
+C by 1000. Note data (specifically, source voltage) is unscaled. Instead
+C of VOLTAGE SOURCES IN KV, we here use output scaling of BVIV and
+C BCIA (following two declarations). Output of the time-step loop is
+C identical to that of 4th subcase. See October, 1997, newsletter.
+C 28 December 1998, add first column-80 punch in excess of 4. A story
+C in the April, 1999, newsletter should introduce use of 0 plus the 16
+C choices that are summarized immediately before the blank card that
+C ends branch cards. Details of this mapping remain an ATP secret.
+C 34567890123456789012345678901234567890 V-base is read from cols. 33-40:
+BASE VOLTAGE IN VOLTS 1000.
+BASE CURRENT IN AMPERES 1000. { I-base is read from cols. 33-40
+VOLTAGE SOURCES IN KV -1.0 { Cancel usage of preceding subcases
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .020
+ 1 1 1 0 1 -1 0
+ 2 10 33 1 40 10 100 50
+C 28 Dec 98, original col-80 punch of 1 is changed to B to add power output:
+92VOLT 5555. B
+C VREF VFLASH VZERO COL
+ 408000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+C Documentation of new column-80 choices that begin 28 December 1998:
+C 5 ==> Append power & energy while leaving voltage & current
+C 6 ==> Append power & energy while omitting current (but not the voltage)
+C 7 ==> Append power & energy while omitting voltage (but not the current)
+C 8 ==> Append power & energy while omitting both voltage and current
+C 9 ==> Append power while leaving voltage & current
+C A ==> Append power while omitting current (but not the voltage)
+C B ==> Append power while omitting voltage (but not the current)
+C C ==> Append power while omitting both voltage and current
+C D ==> Append energy while leaving voltage & current
+C E ==> Append energy while omitting current (but not the voltage)
+C F ==> Append energy while omitting voltage (but not the current)
+C G ==> Append energy while omitting both voltage and current
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14VOLT 408000. 50.
+BLANK card ending source data
+C Column headings for the 3 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 1 output variables are either power or energy or both as a pair (column 80 punches > 4).
+C Step Time VOLT VOLT VOLT
+C TERRA TERRA
+C 0 0.0 0.0 0.0 0.0
+C 1 .5E-4 407.9496661 2.491993465 1016.607902
+C 2 .1E-3 407.7986766 2.468123475 1006.497487
+ 1 { Request for all node voltage outputs
+C 200 .01 -408. -2.5 1020.
+C 250 .0125 -288.499567 -.305176E-3 .0880430807
+C 300 .015 -.80639E-11 -.14726E-20 .118745E-31
+C 350 .0175 288.4995667 .3051758E-3 .0880430807
+C 400 .02 408. 2.5 1020.
+C Variable maxima : 408. 2.5 1020.
+C Times of maxima : .02 .02 .01
+C Variable minima : -408. -2.5 0.0
+C Times of minima : .01 .01 0.0
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 12 subcases illustrates power & energy output of nonlinear element.
+C Apparently this was never documented as Orlando Hevia found it to be in
+C error during late May of 1998, following overhaul of branch data input.
+C KISS: 2 volts across R = 2 gives 1 amp. Then, nonlinear has 1 ohm and
+C one volt, so power is 1 on 1st step. Trapezoidal rule then gives the
+C energy as dT ( E(0) + E(1) ) / 2 = .001 * 1 / 2 = .0005 (about).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .001 .001
+ 1 1 1 0 0 0 0 0
+ SEND REC 1.0 { Half of 2 ohms total is this linear branch
+92REC 4444. { ZnO is piecewise-linear } 4
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 1.0 { First point of i-v curve.
+ 10. 10.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 2.0 1.0 { 1 Hz is close enough to dc for this test
+BLANK card ending source data
+C Step Time REC REC SEND REC
+C TERRA TERRA
+C 0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-2 .9999605221 .9999802609 1.999960522 .4999803E-3
+ 1 { Request for all node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 12 subcases is added 13 October 2006 to demonstrate operation of
+C extended power and energy output (punches 5-16) for switches. Of course
+C the same meanings apply to switches as to branches -- with the exception
+C that power & energy are flow _through_ a switch rather than consumption
+C within a branch. Data for this illustration of extended switch outputs
+C is copied from the 6th subcase. One switch is added in series with the
+C N.L. element. This is (GEN, VOLT). The current, power and energy flow
+C through it obviously should be identical to those of the branch. Since
+C the branch has "B" in column 80, only current and power will be shown.
+C The switch has "7" to add energy to these two. Since the 2 columns of
+C current are side by side, and the 2 columns of power are side by side,
+C it is possible to see by casual inspection that they agree. As for the
+C energy, it seems believable; printed values are monotone increasing.
+C 34567890123456789012345678901234567890 V-base is read from cols. 33-40:
+BASE VOLTAGE IN VOLTS 1000.
+BASE CURRENT IN AMPERES 1000. { I-base is read from cols. 33-40
+VOLTAGE SOURCES IN KV -1.0 { Cancel usage of preceding subcases
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .020
+ 1 1 1 0 1 -1 0
+ 2 10 33 1 40 10 100 50
+92VOLT 5555. B
+C VREF VFLASH VZERO COL
+ 408000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+BLANK card terminating branch data
+ GEN VOLT MEASURING 7
+BLANK card terminating all switches
+14GEN 408000. 50.
+BLANK card ending source data
+ GEN { List of bus names for node voltage output
+C Column headings for the 6 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 3 output variables are either power or energy or both as a pair (column 80 punches > 4).
+C Step Time GEN GEN VOLT VOLT GEN GEN
+C VOLT TERRA TERRA VOLT VOLT
+C *** Switch "GEN " to "VOLT " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 407.9496661 2.491993465 2.491993465 1016.607902 1016.607902 .0254151975
+C 2 .1E-3 407.7986766 2.468123475 2.468123475 1006.497487 1006.497487 .0759928323
+BLANK card ending node voltage outputs
+C 400 .02 408. 2.5 2.5 1020. 1020. 3.078116283
+C Variable maxima : 408. 2.5 2.5 1020. 1020. 3.078116283
+C Times of maxima : .02 .02 .02 .01 .01 .02
+C Variable minima : -408. -2.5 -2.5 0.0 0.0 0.0
+C Times of minima : .01 .01 .01 0.0 0.0 0.0
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 9th of 12 subcases will illustrate power and energy output along with a
+C phasor solution. Since previous subcases all involved one nonlinear
+C element, make this linear and easy to verify by hand. Add a switch as
+C was done for the preceding subcase. Illustrate 3 column-80 punches > 4.
+C Note that the 8-punch results in the same outputs that a 4-punch would,
+C but they are located differently : power and energy are appended rather
+C than overlay the corresponding voltage and current outputs. As for the
+C switch, it is permanently closed in spite of T-open = 19 msec < T-max.
+C Finally, turn off V and I scaling. Date of addition: 13 October 2006
+BASE VOLTAGE IN VOLTS 1.0 { Cancel usage of preceding subcase
+BASE CURRENT IN AMPERES 1.0 { Cancel usage of preceding subcase
+ .000500 .020
+ 1 1 1 2 1 -1
+ 5 5
+ GEN MID 0.5 { power and energy output } 8
+ LOAD 0.5 { power, energy, and voltage output } 6
+BLANK card terminating branch data
+ MID LOAD -1. .019 { current and energy output } F
+BLANK card terminating all switches
+14GEN 1.0 50. -1.
+BLANK card ending source data
+C Total network loss P-loss by summing injections = 5.000000000000E-01
+C Solution at nodes with known voltage. ...
+C Node Source node voltage Injected source current Injected source power
+C name Rectangular Polar Rectangular Polar P and Q MVA and P.F.
+C GEN 1.0 1.0 1.0 1.0 0.5 0.5
+C 0.0 0.0 0.0 0.0 0.0 1.0000000
+C Column headings for the 7 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 5 output variables are either power or energy or both as a pair (column 80 punches > 4).
+C Step Time LOAD MID GEN GEN LOAD LOAD MID
+C TERRA LOAD MID MID TERRA TERRA LOAD
+C *** Phasor I(0) = 1.0000000E+00 Switch "MID " to "LOAD " closed in the steady-state.
+C 0 0.0 0.5 1.0 0.5 0.0 0.5 0.0 0.0
+C 1 .5E-3 .4938441703 .9876883406 .4877641291 .246941E-3 .4877641291 .246941E-3 .246941E-3
+C 2 .1E-2 .4755282581 .9510565163 .4522542486 .4819456E-3 .4522542486 .4819456E-3 .4819456E-3
+BLANK card ending node voltage outputs (none for this subcase)
+C 40 .02 0.5 1.0 0.5 .005 0.5 .005 .005
+C Variable maxima : 0.5 1.0 0.5 .005 0.5 .005 .005
+C Times of maxima : 0.0 0.0 0.0 .02 0.0 .02 .02
+C Variable minima : -.5 -1. .496087E-31 0.0 .496087E-31 0.0 0.0
+C Times of minima : .01 .01 .005 0.0 .005 0.0 0.0
+ PRINTER PLOT
+ 184 2. 0.0 10. GEN MID { Axis limits on branch power: (0.000, 5.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 10th of 12 subcases will illustrate passing of switch power and energy
+C to TACS. New (as of 31 October 2006) TACS sources are Type-94 for power
+C and Type-95 for energy. Otherwise, they are like Type-91 for current.
+C There are no dynamics, so dT is immaterial except that we want smooth
+C curves, so take 100 steps over one cycle. Pass one sinusoidal ampere
+C through a 1-ohm resistor. Note the column-80 punch "8" on the switch
+C to append both switch power flow and energy flow. Of course, the TACS
+C sources should be identical. Output shows this. Numbers are simple
+C enough to be verified with a pocket calculator. WSM, 3 November 2006
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ .000200 .020
+ 1 1 1 1 1 -1
+ 5 5
+TACS HYBRID
+94GEN { Power flow through the switch having A6 terminal node "GEN "
+95SWIT { Energy flow through the switch having A6 terminal node "SWIT "
+77GEN 1.0 { Initial condition on the Type-94 power source avoids zero
+33GEN SWIT { Output the values (power and energy) of these two new sources
+BLANK card terminates all TACS data
+ SWIT 1.0 { 1-ohm resistor connects the switch to ground
+BLANK card ending all BRANCH cards
+ GEN SWIT MEASURING 8
+BLANK card ending all SWITCH cards
+14GEN 1.0 50. -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C SWIT |TERRA *GEN *
+C GEN |SWIT *
+C TERRA |SWIT *
+C --------------+------------------------------
+BLANK terminates the last SOURCE card
+C Total network loss P-loss by summing injections = 5.000000000000E-01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SWIT 1.00000000E+00 0.00000000E+00 1.00000000E+00 0.0000 5.00000000E-01 0.00000000E+00
+ GEN { Just one node voltage output
+C Column headings for the 5 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are either power or energy or both as a pair (column 80 punches > 4).
+C Next 2 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time GEN GEN GEN TACS TACS
+C SWIT SWIT GEN SWIT
+C *** Phasor I(0) = 1.0000000E+00 Switch "GEN " to "SWIT " closed in the steady-state.
+C 0 0.0 1.0 1.0 0.0 1.0 0.0
+C 1 .2E-3 .998026728 .996057351 .199606E-3 .996057351 .199606E-3
+C 2 .4E-3 .992114701 .984291581 .397641E-3 .984291581 .397641E-3
+C 3 .6E-3 .982287251 .964888243 .592559E-3 .964888243 .592559E-3
+C Column headings for the 5 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+BLANK card ends OUTPUT variable requests
+C 100 .02 1.0 1.0 .01 1.0 .01
+C Variable maxima : 1.0 1.0 .01 1.0 .01
+C Times of maxima : 0.0 0.0 .02 0.0 .02
+C Variable minima : -1. .80245E-31 0.0 .80245E-31 0.0
+C Times of minima : .01 .005 0.0 .005 0.0
+ PRINTER PLOT
+ 194 4. 0.0 20. TACS GEN Axis limits: (0.000, 1.000)
+ 194 4. 0.0 20. TACS SWIT Axis limits: (0.000, 10.000)
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 11th of 12 subcases will illustrate alternative [Z]-based iteration
+C that first is being made available to others in January of 2007. Data
+C is identical to the 1st subcase, and so is the solution, in spite of
+C the large number of output digits (typically 10). The Newton iteration
+C is that accurate (this proves it for 1 arrester with 1 exponential).
+C Note the new declaration immediately after the opening Type-92 branch
+C card. This is new. Column position and case of the request words are
+C critical, so to avoid mistakes, paste this to other data of interest.
+C The declaration is required only for the 1st NL element of a subnetwork
+C that is to be solved with impedance rather than admittance formulation.
+C Beware of reference branch use, however, as the flag goes with data.
+C I.e., a different subnetwork that requests a copy of this element for
+C its first will automatically be solved using [Z] rather than [Y] whether
+C or not this is the user's desire. The choice of solution method follows
+C the original data. Finally, only use [Z] with Type-92 exponentials as
+C service begins 8 January 2007. WSM.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+NO Y-BASED NEWTON { Every subnetwork is to be solved using [Z] rather than [Y]
+ .000050 .020
+ 1 1 1 0 1 -1 0
+ 2 10 33 1 40 10 100 50
+-1SEND REC .306 5.82 .012 200.
+92REC { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+ [Z]-based Newton iteration { Column and case matter. Declare not use of [Y]
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 408000. 60.
+BLANK card ending source data
+C Step Time REC SEND REC SEND
+C TERRA TERRA
+C 33 .00165 0.0 331579.2191 0.0 11.37746957
+C 34 .0017 446716.5798 327039.3298 .0013592657 7.950150616
+ 1 { Request for all node voltage outputs
+ PRINTER PLOT
+ 144 3. 0.0 20. REC { Axis limits: (-7.111, 6.930)
+ 194 2. 0.0 20. REC { Axis limits: (-2.499, 2.499)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 12th of 12 subcases is appended 5 February 2009 to illustrate two new
+C request words that prevent reverse current flow. Until now, the third
+C quadrant (having negative voltage and current) is assumed to be a copy
+C of the 1st quadrant (having positive voltage and current) except for the
+C reversal of signs. But Prof. Hans Kr. Hoidalen in Trondheim, Norway, had
+C a desire to prevent reverse current flow. He wanted to model a physical
+C diode as an ideal diode in series with an exponential characteristic to
+C account for the forward drop. All of this is contained within the Type-
+C 92 exponential ZnO element provided one of two new special request words
+C is used. Either 1) Diode model allows reverse leakage or
+C 2) Diode prohibits reverse current
+C To illustrate, copy that single exponential of the 1st subcase. First,
+C in its original form, 2nd with a leaky diode, and 3rd with an ideal
+C diode. These are nodes 1) ZNO, 2) LEAKY, & 3) IDEAL, respectively.
+C The leakage branch is a linear resistor that draws the same current as
+C the exponential at voltage V-min = 0.5 per unit = 778 kV / 2 = 389 kV.
+C Drive all 3 alternatives from the same sinusoidal voltage source and
+C compare the resulting currents. For positive voltage, all 3 currents
+C will agree. But for negative voltage, all 3 never will agree. For
+C negative voltage, IDEAL will carry no current, of course. The other
+C two will carry current, and for voltage less than 389 kV the currents
+C will agree. This is for ZNO and LEAKY. But for negative voltages
+C higher than 389 kV, the current of ZNO will be larger. The source
+C amplitude of 400 kV is purposely reduced to make both the linear and
+C the exponential portions easily visible on a resulting plot. WSM.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+C MAXZNO EPSZNO EPWARN EPSTOP ZNOLIM1 ZNOLIM2
+ZINC OXIDE 20 1.D-8 1.D-3 0.1 0.6 1.5 default values
+ .0002 .010 { Half a 50-Hz cycle will vary voltage from max + to max -
+ 1 1
+C Let's connect resistors of 10K ohms in series with the 3 arrestors:
+ SEND ZNO 10000.
+ SEND LEAKY 10000.
+ SEND IDEAL 10000.
+92ZNO { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+92LEAKY { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+ Diode model allows reverse leakage { 3rd quadrant consists of leakage-R only
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+C This V-min = 0.5 was per unit voltage for end of linear segment. Reduce it:
+C 1250. 26. 0.1
+ 9999. { Bound on exponential segments (only one precedes)
+92IDEAL { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+ Diode prohibits reverse current
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 400000. 50.
+BLANK card ending source data
+ SEND IDEAL ZNO LEAKY { Output source voltage followed by 3 arrester volt
+BLANK card ends node names for selective voltage output
+ PRINTER PLOT
+ 194 1. 0.0 10. BRANCH Compare leakage Arrester current
+ ZNO LEAKY IDEAL
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc37star.dat b/benchmarks/dc37star.dat
new file mode 100644
index 0000000..2388cf0
--- /dev/null
+++ b/benchmarks/dc37star.dat
@@ -0,0 +1,46 @@
+1 RHIGH EPSZNO EPWARN EPSTOP EPSUBA EPDGEL EPOMEG SZPLT SZBED TENFLZ
+ 1.D+10 1.D-8 1.D-3 0.1 100. 1.D-16 1.D-15 10.0 72.0 10.
+2 SIGMAX TENERG DEGMIN DEGMAX ZNOLIM(1), (2) STATFR ZNVREF XMAXMX AINCR
+ 4.0 1.D+20 0.0 360. 1.0 1.5 60.0 1.D-6 2.0 .05
+3 FREQFR HLETT1 Unused VHS VS VH TAXISL VAXISL FILL1 FILL2
+ 0.25 8.0 1.0 10. 10.0 8.0 6. 7.0
+4 TOLRCE FHTAX FXSUP FYSUP FXTIT FYTIT VPLOTS VPLOTL FACTVI FTCARR
+ 8.E-5 0.5 .25 .03 0.10 0.1 1.0 5.0 0.0 1.5
+5 FXNUMV FXNUMH FVAXTT FXVERT UNIXON TIMTAC OVRLAP FLZERO EPSILN FLTINF
+ 1.5 5.0 -2.5 0.0 0.0 0.0 0.5 1.D-12 1.D-8 1.D+19
+6 XHEADM YHEADM HGTHDM XCASTI YCASTI HGTCST XLEGND YLEGND HGTLGN TSTALL
+ 2.5 7.95 .55 0.5 7.3 .35 0.5 1.30 .25 -0.0
+7 XALPHA YALPHA HGTALF D4FACT PEKEXP EPSLRT EPSPIV PLMARK FACOSC
+ 1.5 6.5 .25 2.0 43. 1.E-12 1.E-16 1.0 0.3
+8 NMAUTO INTINF KOL132 MUNIT5 MAXZNO IPRSPY IPRSUP LNPIN MINHAR MAXHAR
+ 1 9999999 132 1 50 0 0 6 0 20
+9 NFORS2 NIOMAX MRGN LINLIM MPAGE MODE28 KPGRID KPEN(1) KPEN(2) KPEN(3)
+ 30 10 2 100 0 1 3 12 10 11
+10 ..(4) KOMLEV NSMTH MODSCR KOLALP MAXFLG LIMCRD NOBLAN MOUSET NOTPPL
+ 14 -1 50 2 5 1 90000 0 0 1
+1 NOCOMM NOHELP NEWPL4 JDELAY NOTMAX NSMPLT KOLWID KOLSEP JCOLU1 KSLOWR
+ 1 1 0 0 0 50 11 1 0 5
+2 KSYMBL NOBACK KOLEXM LTEK NCUT1 NCUT2 INCHPX INCHPY NODPCX LCHLIM
+ 200 1 60 1 13 11 2 2 0 0
+13 NORUN JTURBO MAXSYM IHS LIMCOL KLEVL KEXTR NOHPGL NOPOST NOSM59
+ 0 1 3 3 79 0 0 0 0 0
+4 LEFTA6 LENREC LU6VRT LRLIM KASEND LUNDAT KTRPL4 JORIEN LIMPNL LUNTEX
+ 0 0 32768 75 5 3 -6666 0 200 -11
+5 KINSEN LISTON LIMTAC NOCALC MFLUSH L4BYTE KOMPAR LIST01 NOGNU KROSEC
+ 1 0 25 0 1000 1 4 0 0 0
+6 LUNIT1 LUNIT2 LUNIT3 LUNIT4 LUNIT5 LUNIT6 LUNIT7 LUNIT8 LUNIT9 LUNT10
+ 21 22 3 -4 1 6 7 8 9 10
+17 KS(1) KS(2) KS(3) KS(4) KP(1) KP(2) KP(3) KP(4) KOLROV NUMHLD
+ 0 0 12 10 7 14 0 0 18
+18 Name of language font file ] Window] Root name for SPY @K usage ]
+blockd51.bin junk inclspy .dat
+9 SSONLY CHEFLD TEXNAM CHVBAR BRANCH TXCOPY USERID -TRASH -TERRA CHRCOM
+ PHASOR E DUM | NAME COPY Hannov ...... TERRA C {}$,
+0 DATTYP LISTYP PCHTYP PL4TYP EFIELD FMTPL4 PSCTYP DBGTYP BINTYP EXTTYP
+ .dat .lis .pch .pl4 .ps .dbg .bin .ext
+C After regular STARTUP comes optional VMS-like symbol definitions that are
+C used for input data file name in response to the opening prompt.
+scott:==c:\atp\ { 1st of 2 remote directories
+tsu:==c:\tsu-huei\ { 2nd of 2
+$EOF { Software end-of-file terminates last of 20 or fewer VMS-like symbols
+
diff --git a/benchmarks/dc38.dat b/benchmarks/dc38.dat
new file mode 100644
index 0000000..7bed8fb
--- /dev/null
+++ b/benchmarks/dc38.dat
@@ -0,0 +1,885 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-38
+C ZnO simulation similar to DC-37, only here a 3-phase network is used.
+C The same arrester having characteristic i = 2500 * ( v / V-ref ) ** 26
+C is used, only here the coefficient has been cut in four (to COEF =625)
+C so that the column multiplier COL = 4.0 can be used: 4 * 625 = 2500.
+C Also, the usual, recommended (and more accurate) exponential modeling
+C (Type-92 nonlinear R(i) requested by "5555.") is only used for two of
+C the three phases. In order to illustrate the piecewise-linear alter-
+C native (requested by "4444."), such less-accurate modeling (for the
+C highly-nonlinear ZnO, anyway) has been placed in the 3rd phase ("c").
+C There are a total of 11 subcases.
+ZO, 20, , , , 0.9, ,{ To improve ZnO convergence,control Newton ZnO iteration
+ .000050 .020000
+ 1 1 1 0 1 -1
+ 5 5 20 1 30 5 50 50
+-1SENDA RECA .305515.8187.01210 200. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 200. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+92RECA 5555. { 1st card of 1st of 3 ZnO arresters
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
+92RECC 4444. { Phase "c" ZnO is piecewise-linear
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C SENDA |RECA *
+C RECA |TERRA *SENDA *
+C SENDB |RECB *
+C RECB |TERRA *SENDB *
+C SENDC |RECC *
+C RECC |TERRA *SENDC *
+C TERRA |RECA *RECB *RECC *
+C --------------+------------------------------
+BLANK card follows the last source card
+C Step Time RECC RECB RECA SENDA SENDB SENDC
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 .47358E-13 .15692E-13 .15692E-13 407927.52 -197303.88 -210623.64
+C 2 .1E-3 -.4736E-13 -.1569E-13 -.1569E-13 407710.105 -190537.66 -217172.44
+C 3 .15E-3 .47358E-13 .15692E-13 .15692E-13 407347.832 -183703.75 -223644.08
+ 1
+C Last step: 400 .02 -601371.07 152342.824 295692.924 126078.934 273005.287
+C Variable maxima : 651691.033 676288.521 709562.656 407991.946 407999.105
+C Times of maxima : .00985 .00455 .00115 .01665 .00555
+C Variable minima : -669507.52 -663771. -717417.08 -407991.95 -407996.42
+C Times of minima : .00325 .01435 .0085 .00835 .0139
+C To appreciate the distortion that is involved in the use of piecewise-linear
+C representation for phase "c", I also show the result for exponential "c".
+C The following are derived from a simulation where RECC is a copy of RECA:
+C Last step: 400 .02 -600972.73 179505.6 299541.296 126078.934 273005.287
+C Variable maxima : 680201.783 671644.425 709538.839 407991.946 407999.105
+C Times of maxima : .0098 .00455 .00115 .01665 .00555
+C Variable minima : -704350.77 -664092.88 -718634.71 -407991.95 -407996.42
+C Times of minima : .00325 .01435 .00855 .00835 .0139
+ PRINTER PLOT
+ 144 3. 0.0 20. RECA { Axis limits: (-7.174, 7.096)
+ CALCOMP PLOT
+ 144 2. 0.0 20. RECB
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 2nd of 11 subcases. This one uses the same ZnO arrester as the second
+C of DC-37, only here the gap has been omitted by V-flash < 0. The line
+C is the same as the 1st subcase, too, although here we illustrate the
+C specialized request for modal output. The first six branches are very
+C large resistors that have been added to reserve outputs for this usage.
+STEP ZERO COUPLE { No reason for this, other than illustration of the feature
+MODE VOLTAGE OUTPUT
+ZO { Needed to restore default values that were upset by first subcase?
+ .000050 .020000
+ 1 1 1 0 1 -1
+ 5 5 20 1 30 5 50 50
+ SENDA 1.E18 { 1st of 6 high-R branches that serve } 1
+ SENDB 1.E18 { only to reserve output variables in } 1
+ SENDC 1.E18 { the output vector for modal voltages } 1
+ RECA 1.E18 1
+ RECB 1.E18 1
+ RECC 1.E18 { 6th of 6 high-R branches } 1
+92RECA 5555. 1
+C VREF VFLASH VZERO COL
+ 0.778000000000000E+06 -0.100000000000000E+03
+C COEF EXPON VMIN
+ 0.294795442961157E+05 0.265302624185338E+02 0.545050636122854E+00
+ 9999
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
+92RECC RECA 5555. { Phase "c" ZnO is copy of "a"
+-1SENDA RECA .305515.8187.01210 200. 0
+-2SENDB RECB .031991.5559.01937 200. 0
+-3SENDC RECC
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0
+14SENDB 408000. 60. -120.
+14SENDC 408000. 60. 120.
+BLANK card follows the last source card
+C Step Time RECC RECB RECA SENDA SENDB SENDC
+C
+C RECA RECB RECC
+C TERRA TERRA TERRA
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0
+C 1 .5E-4 0.0 0.0 0.0 407927.52 -197303.88 -210623.64
+C 0.0 0.0 0.0
+ 1
+C Last step: 400 .02 -592984.99 209476.019 234551.89 126078.934 273005.287
+C Last step: -86000.409 17731.3181 665443.85
+C Maxima: 639771.795 647447.415 658163.048 407991.946 407999.105 407996.421
+C Maxima: 181518.845 784118.005 883946.319
+C Associated times: .00985 .00455 .00115 .01665 .00555 .0111
+C Associated times: .00995 .01435 .00325
+ PRINTER PLOT
+ 194 1. 0.0 10. RECA { Axis limits: (-3.030, 3.485)
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 3rd of 11 subcases. This one uses the same ZnO arrester as subcase three
+C of DC-37 -- a single characteristic (no gap, since V-flash < 0) that
+C consists of two exponentials. 3-phase line, sources remain unchanged.
+C An important addition is a 4th nonlinear element, a TACS-controlled R(t)
+C that is practically disconnected from the 3 ZnO surge arresters and the
+C line that they terminate. But to test the logic, we couple the TACS-
+C controlled R(t) with the ZnO by means of the high resistance R = 1.E8.
+C The TACS control and electrical use is copied from the second subcase of
+C DC-22. Note the small EPSILN to ensure all 4 NL elements are coupled.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ .000050 .020000 1.E-10 { Small EPSILN to couple 2 subnetworks
+ 1 1 1 0 1 -1
+ 5 5 21 -1 30 -5 50 50
+TACS HYBRID { In a real case, arcs are on electric side, and equations in TACS
+99RESIS = 1.0 + SIN ( 300 * TIMEX ) { 1st R(t) signal -- constant + sine wave
+33RESIS { Output the only TACS variable: the resistance function R(t)
+77RESIS 1.0 { Initial condition on 1st R(t) insures smooth start
+BLANK card ending all TACS data
+ BUS1 BUS2 1.0 { Master copy of two 1-ohm resistors } 1
+ BUS2 BUS1 BUS2 { 2nd of 2 linear branches in second subnetwork
+91BUS2 TACS RESIS { R(t) controlled by TACS variable "RESIS" } 1
+ RECA BUS1 1.E+8 { Near-infinite R couples ZnO and TACS R(t)
+-1SENDA RECA .305515.8187.01210 200. 0
+-2SENDB RECB .031991.5559.01937 200. 0
+-3SENDC RECC
+92RECA 5555. 1
+C VREF VFLASH VZERO COL
+ 0.778000000000000E+06 -1.0
+C COEF EXPON VMIN
+ 0.505584788677197E+07 0.464199973324622E+02 0.632754084797274E+00
+ 0.122767153039007E+05 0.166775903445228E+02 0.816748018907843E+00
+ 9999
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
+92RECC RECA 5555. { Phase "c" ZnO is copy of "a"
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources for transmission
+14SENDB 408000. 60. -120. { line that is terminated by the ZnO
+14SENDC 408000. 60. 120.
+11BUS1 1.0 { 1-volt battery excites ladder network of TACS R(t)
+BLANK card follows the last source card
+ RECC RECB RECA SENDA BUS2
+C Note immediate voltage at RECC, RECB, RECA, due to near-infinite R coupling:
+C Step Time RECC RECB RECA SENDA BUS2
+C 0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 .141238E-5 .141238E-5 .426252E-5 407927.52 .333333333
+C 2 .1E-3 .141238E-5 .141238E-5 .426252E-5 407710.105 .334983437
+BLANK card terminating selective output variables
+C Last step: 400 .02 -600366.6 218884.325 220028.774 126078.934 .292739915
+C Variable maxima : 625666.843 631501.662 634878.442 407991.946 .399999647
+C Times of maxima : .00985 .00455 .00115 .01665 .0053
+C Variable minima : -633451.49 -613164.81 -630265.01 -407991.95 0.0
+C Times of minima : .0032 .01435 .0088 .00835 0.0
+ PRINTER PLOT
+ 144 3. 0.0 20. RECA { Axis limits: (-6.303, 6.349)
+ 194 3. 0.0 20. BUS2 TACS RESIS { Axis limits: (0.000, 2.000)
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 4th of 11 subcases is unrelated to the preceding, although it does use
+C a Type-91 TACS-defined R(t) as the preceding subcase does. But the
+C subject is quite different as should be explained in the April, 2003,
+C newsletter: corona modeling by TACS control of series R-L-C branches.
+C 27 December 2002, combine 3 separate, disconnected demonstrations of
+C TACS CONTROL of series R-L-C branches. The 3 disconnected subnetworks are:
+C 1) Series R-L with L fixed; R is ramped to a limiting value;
+C 2) Series R-L with R fixed; L is ramped to a limiting value;
+C 3) Series R-C with R fixed; C is is stepped (cut in half);
+C In each case, unit current at radian frequency 1.0 will be forced through
+C the branch, and voltage will be measured. There are 3 disconnected
+C networks, and there will be 3 screen plots to demonstrate reasonableness
+C of the answers.
+PRINTED NUMBER WIDTH, 10, 2, { Limited precision (not needed) & good separation
+TACS POCKET CALCULATOR { Required for use of IF-THEN-ELSE-ENDIF below
+ .10 20.0 { 200 steps over 3 cycles at radian frequency equal to unity
+ 1 1 1 1 1 -1
+ 5 5
+TACS HYBRID { TACS is required to define R of the series R-L branch
+C The first 2 of 3 problems each can use a discontinuity at T = 15 seconds:
+IF( TIMEX .LE. 15.0 ) THEN { If simulation time T does not exceed 15 sec:
+88OHMS = 0.5 + TIMEX / 2.5 { R is ramped linearly from 0.5 to 6.5 at end
+88HENRY = 0.5 + TIMEX / 10.0 { L increases linearly from 0.5 through 2.0
+ELSE { Alternatively (if simulation time T does exceed 15 sec):
+88OHMS = 6.5 { Limiting R in ohms for 15 or more seconds.
+88HENRY = 2.0 { Limiting L in Henries for 15 or more seconds.
+ENDIF { Terminate 5-line block that chooses among 2 formula for inductance HENRY
+C The 3rd of 3 problems requires discontinuity at T = 11 seconds:
+IF( TIMEX .LE. 11.05 ) THEN { If simulation time T is 11 sec or less:
+88FARAD = 2.0 { C is fixed for first 11 of 20 seconds of simulation
+ELSE { Alternatively (if simulation time T is 11 or more):
+88FARAD = 1.0 { Half the capacitance corresponds to switch being open
+ENDIF { Terminate 5-line block that chooses among 2 formulas for supplemental X1
+33HENRY { Bring out just 1 of 3 TACS signals to show it is not necessary
+77HENRY 0.5 { Initial condition on L(t) avoids jump from 0 on step 1
+77OHMS 0.5 { Initial condition on R(t) avoids jump from 0 on step 1
+77FARAD 2.0 { Initial condition on C(t) avoids jump from 0 on step 1
+BLANK card ending all TACS data
+C First comes the R-L test where R is varied and L is held fixed. We have
+C 3 signals of interest: a) old Type-91 model; b) new TACS CONTROL;
+C and c) limiting value (for large times, this agrees with a and b):
+ TYP91 COMP 1000. { Inductance of 1 Henry is fixed half
+91COMP TACS OHMS { TACS-defined R(t) is the variable half
+ COMP 1.E+7 { Leakage path avoids floating subnetwork
+ RAMPR 0.5 1000. { New modeling begins with R-L branch
+ TACS CONTROL OHMS { TACS signal "OHMS" will define R of series R-L
+C A TOLERANCE= tag could be added to any TACS CONTROL card such as
+C the preceding if the tolerance EPSRLC for the application of parameter
+C changes should be different from EPSILN of the miscellaneous data card.
+C Location is arbitrary, so typically will be to the right of column 44
+C (end of the 3rd of 3 TACS names). For example, TOLERANCE=1.E-5 will
+C serve to define EPSRLC = 1.E-5 In that case, any relative parameter
+C change in excess of this value will order re-triangularization whereas
+C any smaller change will not. For this data, there would be no change,
+C however, since all changes are large. dT is artificially large.
+C The phasor solution of the Type-91 branch is wrong because Type-91 content
+C is ignored prior the the dT loop. Using SSONLY of STARTUP, we can add
+C a branch that will correct this problem. The following branch will be
+C present only during the phasor solution; it will draw the current that
+C really should be going through the Type-91 branch. This will avoid a very
+C high voltage spike (e.g., 1.E7) at time zero. It also demonstrates that
+C use of SSONLY is compatible with TACS CONTROL of a series R-L-C:
+ COMP NAME PHASOR 0.5 { Branch that will be erased as dT loop begins
+ LIMIT 6.5 1000.
+C Next comes R-L test where L is varied and R is held fixed. We have 2
+C signals of interest: a) assumptote (for large T): b) new TACS CONTROL:
+ ASSYM 0.5 2000. { Assymptote (where variation will end)
+ RAMPL 0.5 500. { Branch to be varied begins at 1/2 Henry
+ TACS CONTROL HENRY { TACS signal will define L of series R-L
+C Finally (3rd of 3), we have an R-C test where R fixed and C is is stepped
+C to correspond exactly to electric network switching (breaker opening). The
+C answer seems believable; it agrees by eyeball with switching.
+ GEN CAP 1.0 { Inductance of 1 Henry is fixed half
+ CAP 1.0E6 { This capacitance always is used
+ CAP2 1.0E6 { This capacitance is switched
+ NEWRC 1.0 2.0E6 { For comparison, begin with R-C 1
+ TACS CONTROL FARAD { TACS defines C of series R-C
+BLANK card ending electric network branches
+ CAP CAP2 -1. 8.0 { Switch will open on current 0 at T = 11.0
+BLANK card ending switches
+C Each of the branches is to be driven by the same current source having
+C radian frequency equal to unity. I.e., 1 / frequency = 2 * Pi. Excite
+C the three networks in order:
+C 1) Series R-L with L fixed; R is ramped to a limiting value;
+14TYP91 -1 1.0 .1591549 -1.
+14RAMPR -1 1.0 .1591549 -1.
+14LIMIT -1 1.0 .1591549 -1.
+C 2) Series R-L with R fixed; L is ramped to a limiting value;
+14ASSYM -1 1.0 .1591549 -1.
+14RAMPL -1 1.0 .1591549 -1.
+C 3) Series R-C with R fixed; C is is stepped (cut in half);
+14GEN -1 1.0 .1591549 -1.
+14NEWRC -1 1.0 .1591549 -1.
+BLANK card ending electric network source cards.
+C Total network loss P-loss by summing injections = 5.249999987500E+00
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C CAP CAP2 5.00000000E-01 0.00000000E+00 5.00000000E-01 0.0000 0.00000000E+00 -1.25000034E-01
+C Node voltage outputs will be grouped by network for easy visual comparison:
+C <---- Test a ---->< Test b ><---- Test c ---->
+ TYP91 RAMPR LIMIT COMP RAMPL ASSYM GEN NEWRC CAP CAP2
+C First 10 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time TYP91 RAMPR LIMIT COMP RAMPL ASSYM GEN NEWRC CAP CAP2 TACS
+C HENRY
+C *** Phasor I(0) = 5.0000000E-01 Switch "CAP " to "CAP2 " closed in the steady-state.
+C 0 0.0 0.5 0.5 6.5 0.5 0.5 0.5 1.0 1.0 0.0 0.0 0.5
+C 1 0.1 .3975854 .3975854 6.36761 .4975021 .4475438 .2976688 1.044879 1.044879 .0498751 .0498751 .51
+C 2 0.2 .330401 .3709362 6.171598 .5292359 .3953563 .0923634 1.079318 1.079318 .0992519 .0992519 .52
+C 3 0.3 .2583286 .2576778 5.913921 .5540951 .3218644 -.113865 1.102973 1.102973 .147637 .147637 .53
+C *** Open switch "CAP " to "CAP2 " after 1.10000000E+01 sec.
+BLANK card ending names of nodes for node voltage output
+C 200 20. 1.738859 1.773888 1.738861 2.652564 -1.6153 -1.62337 1.819737 1.833053 1.41165 -.499468 2.0
+C Variable maxima: 6.576562 6.580848 6.576566 6.492014 2.065211 2.062599 1.912249 1.925565 1.497945 .4993704 2.0
+C Times of maxima: 18.7 18.6 18.7 18.8 17.6 17.5 19.6 19.6 14.1 1.6 15.1
+C Variable minima: -6.57 -6.60161 -6.57619 -6.49979 -2.00396 -2.06317 -1.11783 -1.11783 -.499579 -.499579 0.5
+C Times of minima: 15.6 15.5 3.0 15.7 14.4 8.1 3.6 3.6 11. 11. 0.0
+ CALCOMP PLOT { Switch to screen plot from printer plot of preceding subcase
+C 1) Series R-L with L fixed; R is ramped to a limiting value;
+C Plot the 3 branch voltages that result from 1 amp of current being driven
+C through each branch. Note TYP91 should lie on top of with RAMPR, and
+C this common signal should be close to the limiting value LIMIT for times
+C in excess of 12 seconds :
+ 143 2. 0.0 20. TYP91 RAMPR LIMIT Ramp R of R-L
+C 2) Series R-L with R fixed; L is ramped to a limiting value;
+C Plot the 2 branch voltages that result from 1 amp of current being driven
+C through each branch. Note RAMPL should be close to the limiting value
+C ASSYM for times in excess of 12 seconds :
+ 143 2. 0.0 20. RAMPL ASSYM Ramp L of R-L
+C 3) Series R-C with R fixed; C is is stepped (cut in half);
+C Plot the 2 branch voltages that result from 1 amp of current being driven
+C through each branch. Note NEWRC should agree with GEN for all time.
+C Following removal of capacitance, the curves are offset significantly:
+ 143 2. 0.0 20. NEWRC GEN Step C of R-C
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 11 subcases illustrates a practical (although oversimplied)
+C application of the preceding. Data comes from Orlando Hevia of UTN
+C in Santa Fe, Argentina, as originally named TACSCAPA.DAT Data is
+C being added to this test case on 30 December 2002. Whereas the first
+C such example from Mr. Hevia involved 200 cascaded line sections, this
+C more manageable illustration involves just 2. TACS is used to vary the
+C shunt capacitance of the line as an approximation to corona. Note that
+C comment cards below are machine-produced (Mr. Hevia seems to have a
+C separate program to create such cascaded data automatically). Numerical
+C burden of the simulation has been reduced by a factor of 20 without much
+C loss to the plot or extrema. A factor of 2 was gained by shortening
+C the simulation from 20 to 10 usec, and a factor of 10 was gained by
+C increasing the time step from the original 5 nanoseconds (5.E-9 sec).
+C The surge (lightning) is fast, so very high frequencies are involved.
+C Note Mr. Hevia's use of JMARTI frequency-dependent line modeling.
+C Warning. 7 September 2003, the answer changes substantially following
+C the correction of an error in OVER12 (introduce new variable N7).
+PRINTED NUMBER WIDTH, 10, 2, { Limited precision (not needed) & good separation
+TACS POCKET CALCULATOR OFF { End use of pocket calculator (preceding subcase)
+C The preceding probably is necessary because of complex definition of VAR002
+ 5.0E-08 20.E-06 { Hevia's dT increased by a factor of 10; cut Tmax in half
+ 1 1 1 0 1 -1
+ 5 5 10 10 134 1 170 10
+C $INCLUDE, CORONA1.PCH
+C FIRST STEP CAPACITY 3.000000E-06 uF/KM
+C SLOPE 3.000000E-12 uF/KVKM
+C CORONA INCEPTION VOLTAGE 3.600000E+05 V
+C LENGTH OF LINE SEGMENT 1.000000E+00 KM
+C NUMBER OF SEGMENTS 2.000000E+00
+TACS HYBRID
+90BUS002
+88DER00259+BUS002
+C DV/DT MUST BE POSITIVE, BUT THIS TEST PRODUCES
+C OSCILLATIONS ON CAPACITANCE
+88VAR002 = BUS002 .GT. 360000.00 { .AND. DER002 .GT. 0.0
+88CAP002 = 1.0E-08+VAR002*((BUS002- 360000.00)*0.3000E-11+0.3000E-05)
+33CAP002DER002BUS002VAR002 { Output all TACS signals including control C(t)
+BLANK card ending TACS data
+-1BUS000BUS001 2. 0.00 -2 1
+ 14 3.9461680140762559000E+02
+ 7.68954468040036890E+02 1.09493340867763940E+03 2.77331232270879630E+03
+ 1.24494695098279860E+04 4.87585677225587210E+04 1.94958822722845510E+05
+ 7.82012894548635460E+05 3.09109899381158690E+06 1.48401963798197680E+07
+ 3.34339104652340860E+07 1.56456366517231150E+07 4.10038300055303800E+07
+ 2.60359793110293930E+07 4.14639643816612140E+07
+ 6.61711924983759210E+00 1.43260235003813180E+01 1.39885566693366850E+02
+ 6.43953575180861780E+02 2.62156097340268890E+03 1.08866830412747530E+04
+ 4.53734562567173710E+04 1.87083684125800150E+05 9.33229189322630060E+05
+ 4.32016631012824080E+06 8.22729460640732390E+06 2.11696813048871940E+07
+ 1.36911740150641220E+07 2.35107210671712680E+07
+ 15 3.3528019962850977000E-06
+ 1.48107642189314750E+01 8.18386897856797330E+01 1.07718234528722760E+02
+ 1.39846901178167800E+02 1.72162896702735680E+02 2.28340646958654700E+02
+ 3.44414362842715720E+02 1.63690212466734790E+04 8.08859081632825200E+03
+ 5.81880629665730960E+04 8.57432646874608240E+05 5.25522742751047830E+05
+ 3.86658063350409460E+06 -1.10174538112164120E+07 1.31615353212200510E+07
+ 7.09885572628100910E+03 3.82889067640842040E+04 5.07666709936286210E+04
+ 6.42506894830861860E+04 7.75796172424984980E+04 1.09484865717845850E+05
+ 8.28324070221879670E+04 4.32415798449636150E+05 4.46749849274677110E+05
+ 8.54778751513758670E+05 3.29015425966867800E+06 4.21774707623910620E+06
+ 1.25365993856300990E+07 2.57506236853497770E+07 2.21885826483384670E+07
+ 1.00000000
+ 0.00000000
+-1BUS001BUS002BUS000BUS001
+C
+C THE OLD FILE HAD THE CAPACITANCE IN AN ISOLATED BUS!
+C
+ BUS002CAP002 0.1 { Capacitance is to be made voltage-dependent
+ TACS CONTROL CAP002 TOLERANCE=1.E-2
+C Note preceding card includes optional definition of the tolerance for use
+C of the TACS signal CAP002. Without this declaration, EPSRLC = EPSILN =
+C 1.E-8, and this results in 159 triangularizations to [Y] as seen in case-
+C summary statistics when KOMPAR = 0 (see STARTUP):
+C Size List 5. Storage for [Y] and triangularized [Y]. No. times = 159 ...
+C Using 1.E-3, this is reduced slightly to 148. This is the effect of not
+C making a change if the change to C is less than 1/10 of 1%. This ignores 11
+C of the 159 changes. Using 1.E-2, the "No. times" drops to 29; and using
+C 1/10, it drops to 6. So 1.E-2 is practical. Using 29 steps to approximate
+C C(t) should be plenty good (see plot of C). Yet 29 of 159 is only 18%, so
+C simulation is a lot faster (82% of triangularization is avoided).
+ BUSXXXBUS000 0.0001
+ BUSXXX 394.61
+ BUS002 394.61
+BLANK
+C TACS CONTROLLED SWITCH TO CONNECT/DISCONNECT THE SOURCE
+13CAP002CP1002 VAR002
+BLANK
+C DC SOURCE
+11CP1002 360000.0
+15BUSXXX 9.0 USRFUN { Hevia's own user-supplied so
+C Recall USRFUN sources are a family of user-supplied sources as first
+C described in the October, 2002, newsletter. Alternative sources that might
+C interest the reader include the following:
+C 15BUSXXX 8.0 usrfun
+C 15BUSXXX 1 0.3E-6 7.00E-6 10.01.000E06Heidler in-line 5
+C 15BUSXXX-1 0.3E-6 7.0E-6 30.05.000E03Heidler in-line 5
+C 15BUSXXX 1 1.2E-6 10.0E-6 10.01.000E06TWO EXP in-line
+BLANK card ending electric-network source cards
+ BUSXXXBUS000BUS001BUS002 { List of nodes for node-voltage output
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 4 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time BUSXXX BUS000 BUS001 BUS002 TACS TACS TACS TACS
+C CAP002 DER002 BUS002 VAR002
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-7 144899.2 72286.18 0.0 0.0 .1E-7 0.0 0.0 0.0
+C 2 .1E-6 523890.1 334255.7 0.0 0.0 .1E-7 0.0 0.0 0.0
+C 3 .15E-6 922280. 724128.3 0.0 0.0 .1E-7 0.0 0.0 0.0
+C 4 .2E-6 .1199E7 .10635E7 0.0 0.0 .1E-7 0.0 0.0 0.0
+C 5 .25E-6 .13008E7 .1254E7 0.0 0.0 .1E-7 0.0 0.0 0.0
+BLANK card ending output variable requests
+C 400 .2E-4 83987.68 85044.93 222821.1 191231.3 .1E-7 -.237E11 191231.3 0.0
+C Extrema of output variables follow. Order and column positioning are the same as for the preceding time-step loop output.
+C Variable maxima : .13008E7 .128E7 839549.4 588280.4 .3695E-5 .2214E13 588280.4 1.0
+C Times of maxima : .25E-6 .3E-6 .375E-5 .815E-5 .815E-5 .7E-5 .815E-5 .705E-5
+C Variable minima : 0.0 0.0 0.0 0.0 0.0 -.567E11 0.0 0.0
+C Times of minima : 0.0 0.0 0.0 0.0 0.0 .149E-4 0.0 0.0
+C 145 2. 0.0 20. BUS000BUS001BUS002 { Not enough space for Y-max
+C Replace the preceding normal plot card by following alternative wide format:
+ 145 BUS000BUS001BUS002 Voltage on line Volts
+C Zero units/inch in columns 5-7 means that another card carries the info:
+C Units/inch Minimum time Maximum time Bottom Y-axis Top of Y-axis
+ 2.0 0.0 20.0 0.0 1.4E6
+ 195 2. 0.0 20. TACS CAP002 Capacitance C(t)Farads
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 11 subcases illustrates a practical (although oversimplied)
+C application of the preceding. Data comes from Orlando Hevia of UTN
+C in Santa Fe, Argentina, as originally named TIDDHHC.DAT Data is
+C being added to this test case on 10 September 2003.
+C A SAMPLE OF CORONA WITH TACS CONTROLLED CAPACITORS
+C THE OUTPUT LOOKS BELIEVABLE
+C AN AVERAGE CAPACITANCE IS CALCULATED BETWEEN TIME STEPS
+PRINTED NUMBER WIDTH, 11, 1, { Restore default settings as if no declaration
+ 2.0E-08 40.E-06 { Orlando used dT = 1.E-8 for more realistic looking plots
+ 1 1 0 0 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID
+90BUS001
+90BUS002
+88DER00159+BUS001
+88DER00259+BUS002
+88VOLTA1 = BUS001.GT.270000.0
+88VOLTA2 = BUS002.GT.270000.0
+88DELTA1 = (BUS001-270000.0)*1.0E-5
+88DELTA2 = (BUS002-270000.0)*1.0E-5
+88CAP011 = 1.0E-08+(DER001.GT.0.0)*1.0E-8*VOLTA1*DELTA1
+88CAP02153+CAP011 1.0E-8
+88CAP001 =(CAP021+CAP011)/2.0
+88CAP012 = 1.0E-08+(DER002.GT.0.0)*1.0E-8*VOLTA2*DELTA2
+88CAP02253+CAP012 1.0E-8
+88CAP002 =(CAP022+CAP012)/2.0
+33CAP001CAP002
+BLANK
+$VINTAGE, 1
+-1BUS000BUS001 7.88076E+01 4.80104E+02 2.93720E+05 1.00000E+00 1
+$VINTAGE, -1,
+-1BUS001BUS002BUS000BUS001
+-1BUS002BUS003BUS000BUS001
+C TACS CONTROLLED CAPACITANCES
+ BUS001 10.0 1
+ TACS CONTROL CAP001
+ BUS002 10.0 1
+ TACS CONTROL CAP002
+ BUSXXXBUS000 1.0 1
+ BUS003 468.82
+C
+C CONSTANT CAPACITANCES
+C
+-1VUS000VUS001BUS000BUS001
+-1VUS001VUS002BUS000BUS001
+-1VUS002VUS003BUS000BUS001
+ VUS003 468.82
+C
+ BUSXXXVUS000 1.0 1
+C CONSTANT CAPACITANCES
+ VUS001 10.0 1.0E-2 1
+ VUS002 10.0 1.0E-2 1
+C
+C NO CAPACITANCES
+C
+C CONSTANT CAPACITANCES
+C
+-1XUS000XUS001BUS000BUS001
+-1XUS001XUS002BUS000BUS001
+-1XUS002XUS003BUS000BUS001
+ XUS003 468.82
+C
+ BUSXXXXUS000 1.0 1
+C
+BLANK
+BLANK
+C ------==--------========--------========
+15BUSXXX 1 1.0E-6 7.0E-6 0.01.770E06TWO EXP in-line
+C ------==----------==========----------
+BLANK
+ BUS000
+ BUS001
+ BUS002
+ BUS003
+ VUS000
+ VUS001
+ VUS002
+ VUS003
+ XUS000
+ XUS001
+ XUS002
+ XUS003
+C Step Time BUS000 BUS001 BUS002 BUS003 VUS000 VUS001 VUS002 VUS003 XUS000 XUS001
+C
+C
+C XUS002 XUS003 BUS001 BUS002 BUSXXX BUSXXX VUS001 VUS002 BUSXXX TACS
+C TERRA TERRA BUS000 VUS000 TERRA TERRA XUS000 CAP001
+C
+C TACS
+C CAP002
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0
+C 1 .2E-7 133766.113 0.0 0.0 0.0 133766.113 0.0 0.0 0.0 133766.113 0.0
+C 0.0 0.0 0.0 0.0 267.636123 267.636123 0.0 0.0 267.636123 .75E-8
+C .75E-8
+C 2 .4E-7 258225.657 0.0 0.0 0.0 258225.657 0.0 0.0 0.0 258225.657 0.0
+C 0.0 0.0 0.0 0.0 516.651878 516.651878 0.0 0.0 516.651878 .1E-7
+C .1E-7
+BLANK card ending nodes for node-voltage outputs
+C 2000 .4E-4 17081.5133 -23694.238 -37514.031 75051.7774 16473.2675 -93546.663 -101202.23 51712.6484 16072.4173 18461.1635
+C 21456.0213 25168.3439 -430.45364 -154.33355 -1000.651 -392.40513 507.97555 -115.34624 8.44498556 .1E-7
+C .1E-7
+C Variable maxima : .1766463E7 814156.947 655233.802 577911.165 .1766463E7 .1131763E7 .1118349E7 967992.864 .1766463E7 .1629911E7
+C .15039E7 .1343678E7 6074.55465 4854.86191 5930.26754 5930.26754 5072.07156 1967.01281 3534.29804 .640067E-7
+C .479668E-7
+C Times of maxima : .1E-5 .1322E-4 .2316E-4 .2692E-4 .1E-5 .1142E-4 .1676E-4 .2012E-4 .1E-5 .44E-5
+C .78E-5 .1118E-4 .132E-4 .1668E-4 .742E-5 .742E-5 .404E-5 .908E-5 .1E-5 .1322E-4
+C .2304E-4
+C Variable minima : 0.0 -23694.238 -38329.779 0.0 0.0 -166322.75 -101202.23 0.0 0.0 0.0
+C 0.0 0.0 -3733.6936 -2735.0324 -1337.4272 -1647.1189 -2170.2496 -1613.5916 -331.24485 0.0
+C 0.0
+C Times of minima : 0.0 .4E-4 .3998E-4 0.0 0.0 .3744E-4 .4E-4 0.0 0.0 0.0
+C 0.0 0.0 .14E-4 .2642E-4 .3788E-4 .3112E-4 .1392E-4 .2462E-4 .205E-4 0.0
+C 0.0
+ 145 2. 0.0 40. 0.02.E6VUS000VUS001VUS002VUS003 Constant C
+ 145 2. 0.0 40. 0.02.E6BUS000BUS001BUS002BUS003 TACS CONTROL
+ 145 2. 0.0 40. 0.02.E6BUS001BUS002VUS001VUS002 Both
+ 145 2. 0.0 40. 0.02.E6XUS000XUS001XUS002XUS003 No capacitors
+ 195 2. 0.0 40.-2.E36.E3BUSXXXBUS000BUSXXXVUS000 Currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 11 subcases illustrates a true delta connection of nonlinear
+C elements that use compensation. Prior to November of 2006, ATP would
+C have halted with a complaint that the Thevenin impedance matrix [Z-thev]
+C was singular as follows:
+C KILL code number Overlay number Nearby statement number
+C 209 18 3471
+C KILL = 209. ZnO solution by Newton`s method of 3 coupled ...
+C Order is critical. For the delta to be recognized, the 3 N.L. elements
+C must be contiguous and must have triplets of (BUS1, BUS2) names ordered
+C as NAMEA to NAMEB first, then NAMEB to NAMEC 2nd, and finally
+C NAMEC to NAMEA. Data appended 15 December 2006. WSM.
+PRINTED NUMBER WIDTH, 11, 2, { Deliberately reduce 9 output columns by 1 digit
+ZO, 20, , , , 0.9, ,{ To improve ZnO convergence,control Newton ZnO iteration
+ .000050 .020000
+ 1 1 1 0 1 -1
+ 5 5 20 1 30 5 50 50
+-1SENDA RECA .305515.8187.01210 200. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 200. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+92RECA RECB 5555. { 1st card of 1st of 3 ZnO arrest} 3
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECC RECA RECB 5555. { Phase "bc" ZnO is copy of "ab" } 3
+92RECC RECA RECA RECB 5555. { Phase "ca" ZnO is copy of "ab" } 3
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 236000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 236000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 236000. 60. 120. { with no phasor solution.
+BLANK card follows the last source card
+BLANK card ending node voltage outputs
+ PRINTER PLOT
+ 194 2. 0.0 20. BRANCH { Axis limits (-1.829, 0.525)
+ RECA RECB RECB RECC RECC RECA
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 8th of 11 subcases unites the 1st with the 7th. Both the Y & the delta
+C connections are present with the Y of the 1st subcase having node names
+C as follows: SEND ---> LINE REC ---> END The two subnetworks
+C are physically disconnected but mathematically coupled by one very high
+C resistance branch (see comment cards) that makes the difference between
+C two 3x3 matrices [Z-thev] and one 6x6 matrix. See (RECA, ENDA). Data
+C is added 15 December 2006. WSM.
+PRINTED NUMBER WIDTH, 11, 2, { Deliberately reduce 9 output columns by 1 digit
+ZO, 20, , , , 0.9, ,{ To improve ZnO convergence,control Newton ZnO iteration
+ .000050 .020000
+ 1 1 1 0 1 -1
+ 5 5 20 1 30 5 50 50
+C Begin with branches of the 1st subcase:
+-1LINEA ENDA .305515.8187.01210 200. 0 { 200-mile, constant-
+-2LINEB ENDB .031991.5559.01937 200. 0 { parameter, 3-phase
+-3LINEC ENDC { transmission line.
+92ENDA 5555. { 1st card of 1st of 3 ZnO arresters
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92ENDB ENDA 5555. { Phase "b" ZnO is copy of "a"
+92ENDC 4444. { Phase "c" ZnO is piecewise-linear
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+C Done with branches of the 1st subcase; follow by branches of 7th subcase:
+-1SENDA RECA .305515.8187.01210 200. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 200. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+92RECA RECB 5555. { 1st card of 1st of 3 ZnO arrest} 3
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECC RECA RECB 5555. { Phase "bc" ZnO is copy of "ab" } 3
+92RECC RECA RECA RECB 5555. { Phase "ca" ZnO is copy of "ab" } 3
+C Remove the following large resistance to solve each 3-phase bank of surge
+C arresters separately. With this branch present, the 6 N.L. elements all
+C are in the same subnetwork, so 6 N.L. equations in 6 unknowns are solved
+C by Newton's method at each time step. Without the branch, there will be
+C two sequential solutions of 3 N.L. equations each. The difference can be
+C seen in Lists 24 and 26 of the case-summary statistics:
+C With R : Size 21-30: 9 0 13 6 -9999 36 -9999 ...
+C Without: Size 21-30: 9 0 12 3 -9999 9 -9999 ...
+C Of course, the latter should simulate faster than the former. Resistance
+C is high enough so the solution changes little. For example, the two
+C printer plots are identical.
+ RECA ENDA 1.E+8 { Leakage resistanc ties 2 subnetworks together
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+C Begin with sources of the 1st subcase:
+14LINEA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14LINEB 408000. 60. -120. { three-phase, sinusoidal excitation
+14LINEC 408000. 60. 120. { with no phasor solution.
+C Done with sources of the 1st subcase; follow by sources of 7 subcase:
+14SENDA 236000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 236000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 236000. 60. 120. { with no phasor solution.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C LINEA |ENDA *
+C ENDA |TERRA *LINEA *RECA *
+C LINEB |ENDB *
+C ENDB |TERRA *LINEB *
+C LINEC |ENDC *
+C ENDC |TERRA *LINEC *
+C SENDA |RECA *
+C RECA |ENDA *SENDA *RECB *RECC *
+C SENDB |RECB *
+C RECB |RECA *SENDB *RECC *
+C SENDC |RECC *
+C RECC |RECA *RECB *SENDC *
+C TERRA |ENDA *ENDB *ENDC *
+C --------------+------------------------------
+BLANK card terminates the last source card
+ ENDA ENDB ENDC { Arrester voltages of Y-connected 1st subcase
+C Column headings for the 9 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time RECA RECB RECC ENDA ENDB ENDC RECA RECB RECC
+C RECB RECC RECA RECB RECC RECA
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 .3494E-21 -.47E-37 -.349E-21 .1226E-15 .1226E-15 .37E-15 -.334E-31 .9006E-47 .3341E-31
+C 2 .1E-3 -.349E-21 .4702E-37 .3494E-21 -.123E-15 -.123E-15 -.37E-15 .3341E-31 -.135E-46 -.334E-31
+C 22 .0011 28277.756 622.32762 -28900.08 32953.961 -15932.9 -17000.47 .2708E-5 .59598E-7 -.2768E-5
+C 23 .00115 658750.92 10864.876 -669615.8 709562.41 -421760.1 -448957.3 33.053897 .10405E-5 -50.5753
+C 400 .02 94123.287 379306.97 -473430.3 295693.53 152343.78 -601370.3 .90138E-5 .36325E-4 -.0061536
+C Variable maxima : 667041.09 609376.16 670599.37 709562.41 676288.65 651690.5 45.754917 4.3600592 52.54267
+C Times of maxima : .0152 .0036 .00985 .00115 .00455 .00985 .0152 .0036 .00985
+C Variable minima : -694529.7 -467073.7 -703549.2 -717416.9 -663770.9 -669507.6 -130.7469 -.00433 -182.8636
+C Times of minima : .00775 .0143 .0025 .0085 .01435 .00325 .00775 .0143 .0025
+BLANK card ending node voltage outputs
+ PRINTER PLOT
+ 144 2. 0.0 20. ENDA { Axis limits: (-7.174, 7.096)
+ 194 2. 0.0 20. BRANCH { Axis limits: (-1.829, 0.525)
+ RECA RECB RECB RECC RECC RECA
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 9th of 11 subcases is like the 1st except that exponential ZnO modeling
+C is used for all 3 surge arresters. The piecewise-linear 3rd arrester of
+C the 1st subcase has been replaced by a copy of the 1st arrester. Also,
+C the alternative [Z]-based Newton iteration replaces the default choice
+C of [Y]-based iteration. The request for [Z] is made by the line that
+C immediately follows the first line of the first arrester. Unlike the
+C 11th subcase of DC-37, here the request for [Z] is active. Because
+C of a lack of NO Y-BASED NEWTON declaration, that request that has
+C been added to the first arrester is active and necessary (to obtain Z).
+PRINTED NUMBER WIDTH, 11, 2, { Deliberately reduce 9 output columns by 1 digit
+ .000050 .020000
+ 1 1 1 0 1 -1
+ 5 5 20 1 30 5 50 50
+-1SENDA RECA .305515.8187.01210 200. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 200. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+92RECA 5555. { 1st card of 1st of 3 ZnO arrest} 3
+ [Z]-based Newton iteration { Column and case matter. Declare not use of [Y]
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a" } 3
+92RECC RECA 5555. { Phase "c" ZnO is copy of "a" } 3
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+C SENDA 208000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA SENDB SENDC
+BLANK card ending node voltage outputs
+ PRINTER PLOT
+ 194 2. 0.0 20. BRANCH
+ RECA RECB RECC
+ CALCOMP PLOT
+ 184 2. 0.0 20. BRANCH
+ RECA RECB RECC
+ 194 2. 0.0 20. BRANCH
+ RECA RECB RECC
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 10th of 11 subcases is like the 1st except that exponential ZnO modeling
+C is replaced by piecewise-linear modeling for all 3 surge arresters. Such
+C modeling became available 2 February 2007 for [Z]-based Newton iteration
+C which continues to be used in place of the default [Y]-based iteration.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+C Demonstrate that the following request for [Z]-based Newton iteration is a
+C binary toggle. Note that 3 uses has the same effect as a single use:
+NO Y-BASED NEWTON { Every subnetwork is to be solved using [Z] rather than [Y]
+NO Y-BASED NEWTON { 2nd use cancels the 1st. At this point, use [Y] not [Z]
+NO Y-BASED NEWTON { Every subnetwork is to be solved using [Z] rather than [Y]
+C ZINC OXIDE STARTUP 20 1.D-8 1.D-3 0.1 1.0 1.5
+ .000050 .020
+ 1 1 1 0 1 -1
+ 5 5 20 1 30 5 50 50
+-1SENDA RECA .305515.8187.01210 200. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 200. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+92RECA 4444. { 1st card of 1st of 3 ZnO arres } 1
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 0.0 0.0 { Origin. 3rd quadrant copy
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+92RECB RECA 4444. { Phase "b" ZnO is copy of "a" } 1
+92RECC RECA 4444. { Phase "c" ZnO is copy of "a" } 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card follows the last source card
+ RECA RECB RECC { Names of nodes for voltage output
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time RECA RECB RECC RECA RECB RECC
+C TERRA TERRA TERRA
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 .615267E-15 .615327E-15 .615387E-15 -.868E-18 -.86821E-18 -.86842E-18
+C 2 .1E-3 -.61527E-15 -.61533E-15 -.61539E-15 .867995E-18 .868206E-18 .868416E-18
+C 21 .00105 .615267E-15 .615327E-15 .615387E-15 -.868E-18 -.86821E-18 -.86842E-18
+C 22 .0011 32933.78136 -15929.2096 -17004.5718 .0565483883 -.027350978 -.02919741
+C 23 .00115 674022.6244 -433252.07 -460655.512 311.7853238 -.743908087 -.790960701
+BLANK card ending requests for node voltage output
+C 400 .02 248862.4504 197049.3444 -599097.73 .4273050316 .3383402205 -4.96347489
+C Variable maxima : 674022.6244 656282.6288 651788.8183 311.7853238 168.5414551 143.4643879
+C Times of maxima : .00115 .00455 .0098 .00115 .00455 .0098
+C Variable minima : -675779.414 -635023.773 -669662.422 -328.011827 -67.9420472 -271.51252
+C Times of minima : .00865 .01435 .00325 .00865 .01435 .00325
+ PRINTER PLOT
+ 194 3. 0.0 20. BRANCH { Axis limits: ( -3.280, 3.118 )
+ RECA RECB RECC
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 11th of 11 subcases is like the 1st. But the 1st was solved by [Y]-based
+C Newton iteration. Here, use [Z]-based iteration. Answer is the same.
+C Note that there is no NO Y-BASED NEWTON request because the one used
+C by the preceding subcase remains in effect. The choice was set to [Z].
+C NO Y-BASED NEWTON { If data is removed as separate subcase, activate this card
+ .000050 .020000
+ 1 1 1 0 1 -1
+ 5 5 20 1 30 5 50 50
+-1SENDA RECA .305515.8187.01210 200. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 200. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+92RECA 5555. { 1st card of 1st of 3 ZnO arresters
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
+92RECC 4444. { Phase "c" ZnO is piecewise-linear
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card follows the last source card
+ 1
+ PRINTER PLOT
+ 144 3. 0.0 20. RECA { Axis limits: (-7.174, 7.096)
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc39.dat b/benchmarks/dc39.dat
new file mode 100644
index 0000000..66f2d33
--- /dev/null
+++ b/benchmarks/dc39.dat
@@ -0,0 +1,197 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-39
+C Test of supporting routine "ARRDAT" which reads ZnO data, and punches the
+C associated Type-92 EMTP branch cards. See Rule Book, end of Sect. XIX-I.
+C 1st of 3 subcases has manual selection of a single exponential: NEXP = 1.
+C As for the (i, v) data points, these come from the evaluation of the ZnO
+C function i = 2500 * ( v / 778000 ) ** 26 as used by 1st case of DC-37
+C Note that paralleling (D4 = number of columns) is used, although the more
+C modern and flexible approach would be to delay this until usage (variable
+C COL of columns 76-80 of the first Type-92 ZnO miscellaneous data card).
+C Sept, 1997, double the size by adding a second subcase that processes
+C the same 3 data subsets only using kilo scaling (KV and KA input data)
+ZNO FITTER { Special-request to transfer to SUBROUTINE ARRDAT of overlay 40
+$ERASE
+BRANCH RECA RECB RECC { Name the 3 terminal pairs for punching
+C NEXP IPHASE ERRLIM IPRZNO VREF VFLASH
+ 1 3 2 0 412500. 380000.
+C A1 A2 A3 A4 A5 AMIN
+ 707.107 192000. .962 3.0 .892857 .001
+ 1.0 1164.8 { First point of (I,V) characteristic for ZnO
+ 2.0 1181.6 { Except for rounding, these define a nice,
+ 5.0 1198.4 { smooth, exponential function with exponent
+ 10. 1209.6 { equal to 26. Scaling is set to draw 2500
+ 20. 1232.0 { amperes at 778 kV. How? Consult Vladimir's
+ 50. 1260.0 { explanation, Rule Book p. 103k, Section 3.0
+ 100. 1288.0
+ 200. 1323.84
+ 500. 1388.8
+ 1000. 1442.56
+ 2000. 1512.0
+ 3000. 1556.8 { last point of (I,V) characteristic for ZnO
+BLANK card bounds points of the ZnO characteristic
+$PUNCH
+C C Rating = 192000.0 V-mult = 9.62000E-01 I-mult = 3.00000E+00 Gapless
+C 92RECA 5555.
+C C V-reference V-flashover
+C 4.1250000000000000E+05 9.2121212121212130E-01
+C C Multiplier Exponent V-min
+C 2.9479544296115170E+04 2.6530262418533470E+01 5.4505063612285050E-01
+C 9999
+C 5.9605957177725360E+05 2.6530262418533470E+01 4.8665227581674000E-01
+C 9999
+C 92RECB RECA 5555.
+C 92RECC RECA 5555.
+C 2nd of 3 subsets has manual selection of the 2 exponentials (NEXP = 2).
+C Otherwise, the configuration of interest is the same as for 1st subset.
+C Specifically, the i-v characteristic is the same (segmented i-v of 1st).
+BRANCH RECA RECB RECC { 2nd subcase of 3 begins with names
+C NEXP IPHASE ERRLIM IPRZNO VREF VFLASH
+ 2 3 1 412500. 380000.
+C A1 A2 A3 A4 A5 AMIN
+ 707.107 192000. .962 3.0 .892857 .001
+ 1.0 1164.8
+ 2.0 1181.6
+ 5.0 1198.4
+ 10. 1209.6
+ 20. 1232.0
+ 50. 1260.0
+ 100. 1288.0
+BLANK card bounds points of the ZnO characteristic - end of 1st segment, begin 2
+ 200. 1323.84
+ 500. 1388.8
+ 1000. 1442.56
+ 2000. 1512.0
+ 3000. 1556.8
+BLANK card bounds points of the ZnO characteristic --- end 2nd and final segment
+$PUNCH
+C C Rating = 192000.0 V-mult = 9.62000E-01 I-mult = 3.00000E+00 Gapless
+C 92RECA 5555.
+C C V-reference V-flashover
+C 4.1250000000000000E+05 9.2121212121212130E-01
+C C Multiplier Exponent V-min
+C 5.0558478867726780E+06 4.6419997332462390E+01 6.3275408479727320E-01
+C 1.2276715303900460E+04 1.6677590344522540E+01 8.1674801890784120E-01
+C 9999
+C 9.7386264053136350E+08 4.6419997332462390E+01 5.6495891388983900E-01
+C 8.1268335203236510E+04 1.6677590344522540E+01 7.2923918591799820E-01
+C 9999
+C 92RECB RECA 5555.
+C 92RECC RECA 5555.
+C 3rd of 3 subsets illustrate automatic ZnO segment selection.
+C For the tolerance chosen (ERRLIM=.05), 5 exponentials result.
+BRANCH RECA RECB RECC { 3rd subcase of 3 beings with names
+C NEXP IPHASE ERRLIM IPRZNO VREF VFLASH
+ -1 3 .05 1 412500. 380000.
+C A1 A2 A3 A4 A5 AMIN
+ 707.107 192000. .962 3.0 .892857 .001
+ 1.0 1164.8
+ 2.0 1181.6
+ 5.0 1198.4
+ 10. 1209.6
+ 20. 1232.0
+ 50. 1260.0
+ 100. 1288.0
+ 200. 1323.84
+ 500. 1388.8
+ 1000. 1442.56
+ 2000. 1512.0
+ 3000. 1556.8
+BLANK card bounds points of the ZnO characteristic
+$PUNCH
+C C Rating = 192000.0 V-mult = 9.62000E-01 I-mult = 3.00000E+00 Gapless
+C 92RECA 5555.
+C C V-reference V-flashover
+C 4.1250000000000000E+05 9.2121212121212130E-01
+C C Multiplier Exponent V-min
+C 7.5028204133564620E+06 4.8403950953194400E+01 6.3949942977557550E-01
+C 2.4489276643997050E+09 6.8408843374214610E+01 7.4876091788815410E-01
+C 1.1046477599319610E+06 3.9475540404878120E+01 7.6623729035951440E-01
+C 8.4663437752101640E+04 2.7934580347853540E+01 8.0046407236184350E-01
+C 1.6489996944083740E+04 1.8756547209277270E+01 8.3673818423150000E-01
+C 1.1130526844643490E+04 1.4446009330513530E+01 9.1284753595740940E-01
+C 9999
+C 1.8095670102550080E+09 4.8403950953194400E+01 5.7098154237113100E-01
+C 5.7007069310942390E+12 6.8408843374214610E+01 6.6853642686286360E-01
+C 9.6857800318865540E+07 3.9475540404878120E+01 6.8414032835852490E-01
+C 2.0071630292080190E+06 2.7934580347853540E+01 7.1469995025677850E-01
+C 1.3815991082985590E+05 1.8756547209277270E+01 7.4708754495838430E-01
+C 5.7216427799055640E+04 1.4446009330513530E+01 8.1504231241232490E-01
+C 9999
+C 92RECB RECA 5555.
+C 92RECC RECA 5555.
+BLANK card ends data subcases within "ARRDAT"
+BEGIN NEW DATA CASE
+C The preceding subase of this disk file involved 3 data sets using units
+C of volts and amps. Now we repeat these three, only using kilovolts and
+C kiloamps. Output (including punched cards) is changed only by roundoff.
+ZNO FITTER { Special-request to transfer to SUBROUTINE ARRDAT of overlay 40
+$ERASE
+INPUT KV AND KA { Input is to be in kilovolts and kiloamps (not volts and amps)
+BRANCH RECA RECB RECC { Name the 3 terminal pairs for punching
+C NEXP IPHASE ERRLIM IPRZNO VREF VFLASH
+ 1 3 2 0 412.5 380.
+C A1 A2 A3 A4 A5 AMIN
+ 707.107 192. .962 3.0 .892857 .001
+ .001 1.1648
+ .002 1.1816
+ .005 1.1984
+ .01 1.2096
+ .02 1.2320
+ .05 1.2600
+ .10 1.2880
+ .20 1.32384
+ .50 1.3888
+ 1.00 1.44256
+ 2.00 1.5120
+ 3.00 1.5568
+BLANK card bounds points of the ZnO characteristic
+$PUNCH
+C 2nd of 3 data subsets. We do not need another INPUT KV AND KA declaration
+C as long as control remains within ZNO FITTER.
+BRANCH RECA RECB RECC { 2nd subcase of 3 begins with names
+C NEXP IPHASE ERRLIM IPRZNO VREF VFLASH
+ 2 3 1 412.5 380.
+C A1 A2 A3 A4 A5 AMIN
+ 707.107 192. .962 3.0 .892857 .001
+ .001 1.1648
+ .002 1.1816
+ .005 1.1984
+ .01 1.2096
+ .02 1.2320
+ .05 1.2600
+ .10 1.2880
+BLANK card bounds points of the ZnO characteristic - end of 1st segment, begin 2
+ .20 1.32384
+ .50 1.3888
+ 1.00 1.44256
+ 2.00 1.5120
+ 3.00 1.5568
+BLANK card bounds points of the ZnO characteristic --- end 2nd and final segment
+$PUNCH
+C 3rd of 3 data subsets of 2nd subcase. The INPUT KV AND KA of the
+C first of the 3 data subsets remains in effect. Answers should be
+C identical to the corresponding ones of the preceding subcase (which
+C involves no such kilo scaling).
+BRANCH RECA RECB RECC { 3rd subcase of 3 beings with names
+C NEXP IPHASE ERRLIM IPRZNO VREF VFLASH
+ -1 3 .05 1 412.5 380.
+C A1 A2 A3 A4 A5 AMIN
+ 707.107 192. .962 3.0 .892857 .001
+ .001 1.1648
+ .002 1.1816
+ .005 1.1984
+ .01 1.2096
+ .02 1.2320
+ .05 1.2600
+ .10 1.2880
+ .20 1.32384
+ .50 1.3888
+ 1.00 1.44256
+ 2.00 1.5120
+ 3.00 1.5568
+BLANK card bounds points of the ZnO characteristic
+$PUNCH
+BLANK card ends data subcases within "ARRDAT"
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc3high.dat b/benchmarks/dc3high.dat
new file mode 100644
index 0000000..0d663b9
--- /dev/null
+++ b/benchmarks/dc3high.dat
@@ -0,0 +1,21 @@
+GEN-A 1-A GEN-B 1-B GEN-C 1-C
+ 34.372 35.735 38.002 35.735
+ 37.455 38.002
+ .02428067811809955 .008723282430866784 .02396820391316247 .008723282430866784
+ .008048995988634121 .02396820391316247
+ .15781E-6 -.0315E-6 .16587E-6 -.0315E-6
+ -.0219E-6 .16587E-6
+C This card, and the following branch cards from DC3.DAT, will not be
+C read. They are shown here just to document the source of preceding data.
+C The first line is the 3 pairs of names, in order. Next comes [R], then [L]
+C and finally [C].
+ 1GEN-A 1-A 34.372457.68.15781
+ 2GEN-B 1-B 35.735164.43-.031538.002451.79.16587
+ 3GEN-C 1-C 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+ ROW TR TX C
+ 1 0.3437200000000000E+02 0.2428067811809955E-01 0.1578100000000000E-06
+ 2 0.3573500000000000E+02 0.8723282430866784E-02 -0.3150000000000000E-07
+ 3 0.3800200000000000E+02 0.2396820391316247E-01 0.1658700000000000E-06
+ 4 0.3573500000000000E+02 0.8723282430866784E-02 -0.3150000000000000E-07
+ 5 0.3745500000000000E+02 0.8048995988634121E-02 -0.2190000000000000E-07
+ 6 0.3800200000000000E+02 0.2396820391316247E-01 0.1658700000000000E-06
diff --git a/benchmarks/dc3pl4op.dat b/benchmarks/dc3pl4op.dat
new file mode 100644
index 0000000..db7bcdd
--- /dev/null
+++ b/benchmarks/dc3pl4op.dat
@@ -0,0 +1,10 @@
+$CLOSE, UNIT=4 STATUS=DELETE { Disconnect now-empty file connected by SYSDEP
+$OPEN, UNIT=4 FILE=dc3.pl4 STATUS=OLD ! Connect C-like plot file from DC-3
+
+
+
+
+
+
+
+
diff --git a/benchmarks/dc4.dat b/benchmarks/dc4.dat
new file mode 100644
index 0000000..ccead6d
--- /dev/null
+++ b/benchmarks/dc4.dat
@@ -0,0 +1,245 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-4
+C Solution agrees (key variables, anyway) with DC-5 saturable TRANSFORMER
+C Here, there is no transformer, since the secondary impedance has been
+C reflected to the primary. Also, the pseudo-nonlinear reactance of the
+C saturable TRANSFORMER is here represented by a "true" nonlinearity.
+C 2nd subcase will illustrate residual flux for Type-93 nonlinear induct.
+C Etc. 5 more subcases were added 21 March 2006 bringing total to 7.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .010 6.0
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+ BRANCH NAME:First { Even though name could go on next card, use this instead
+ GEN TRAN 5.0 5.E4 3
+ TRAN NAME R-mag 1.E4
+93TRAN NAME Magnet .005 30. 3
+C -5.0 -100. { No longer needed 3-rd quadrant point
+C -.1 -50. { No longer needed 3-rd quadrant point
+C -.02 -45. { No longer needed 3-rd quadrant point
+C -.01 -40. { No longer needed 3-rd quadrant point
+C -.005 -30. { No longer needed 3-rd quadrant point
+ 0.0 0.0 { 1st point being origin is request to reflect
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN LOADG 255. 5.E4 3
+C Note: original fixed-format card (next comment) converted to free-format:
+C LOADG 1.E-6
+0,LOADG, , , , 1.E-6, 0.0, 0.0, , , , , ,
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards.
+C Total network loss P-loss by summing injections = 8.286714400785E+00
+C Inject: GEN 70. 70. .23676326859385 .25769284993889 8.2867144007848
+C Inject: 0.0 0.0 -.1017288531066 -23.2514964 3.5605098587304
+C ---- Initial flux of coil "TRAN " to " " = -1.13295190E+01
+C Step Time GEN TRAN TRAN GEN TRAN
+C TRAN TERRA LOADG
+C 0 0.0 6.270257621 63.72974238 63.72974215 70. 63.72974238
+C 1 .01 6.156651781 63.83984825 63.83984802 69.99650003 63.83984825
+ GEN TRAN
+BLANK card ending program output-variable requests.
+C Last step begins: 600 6.0 12.26276725 54.94912105 54.94912087 67.21188829
+C Last step continued .... : 54.94912105 -.004557817 .1742561973 .1733191018
+C Variable max : 35.83743967 64.72841365 64.7284134 70. 64.72841365
+C Times of max : 5.37 .18 .18 0.0 .18
+C Variable min : -34.5302967 -63.9279756 -63.9279753 -69.9999111 -63.9279756
+C Times of min : 2.2 3.35 3.35 3.14 3.35
+ PRINTER PLOT
+ 193 .5 0.0 6.0 TRAN LOADG GEN TRAN { Axis limits: (-3.494, 3.289)
+ 193 1. 0.0 6.0 TRAN { Axis limits: (-3.253, 3.031)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 2nd of 8 subcases illustrates residual flux for the Type-93 nonlinear
+C inductor. The solution is a little different because the segment that
+C passes through the origin has been modified to draw no current (this
+C is the poor man's approximation to hysteresis). Usage of a residual
+C flux that is a little different than the phasor solution also alters
+C the solution somewhat. Appearance of the output column of inductor
+C current is altered since whenever operation is on the first segment,
+C the current now is identically zero.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+C 4 May 2007, add following $PREFIX after modification of OVER1 and
+C CIMAGE that moves CHAR*80 PREFIX into BLKCOM for use by $INSERT.
+C This allows remote execution, from \UNFORM, without data modification.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+ .010 6.0
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+ GEN TRAN 5.0 5.E4 3
+ TRAN NAME R-mag 1.E4
+C Next, move entire nonlinear element into file to demonstrate new feature:
+$INSERT, dc4bincl.dat { Like $INCLUDE only dynamic (no burden on LIMCRD)
+ TRAN LOADG 255. 5.E4 3
+C Note: original fixed-format card (next comment) converted to free-format:
+C LOADG 1.E-6
+0,LOADG, , , , 1.E-6, 0.0, 0.0, , , , , ,
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards.
+C 20 July 2009, convert the following N.L. element I.C. card from the original
+C use of terminal node names (TRAN, TERRA) to the use of branch name Magnet.
+C Yes, within $INSERT file dc4bincl.dat this NL elem. branch name is declared.
+C Just today, such alternative use of N.L. names is being added to ATP. WSM
+C The following is an initial-condition card for the Type-93 nonlinear inductor
+C 4TRAN 0.0 -11.5508593 { --- Used to reaffirm phasor flux
+C 4TRAN 0.0 -13.0 { Residual flux differs somewhat
+ 4Name: Magnet 0.0 -13.0 { Residual flux differs somewhat
+ GEN TRAN { Request for 2 node voltage outputs
+C Step Time GEN TRAN TRAN GEN TRAN
+C TRAN TERRA LOADG
+C 0 0.0 5.816303518 64.18369648 64.18369625 70. 64.18369648
+C 1 .01 5.700507029 64.295993 64.29599277 69.99650003 64.295993
+C 2 .02 5.58414044 64.40186003 64.4018598 69.98600047 64.40186003
+BLANK card ending program output-variable requests.
+C 600 6.0 12.62786557 54.58402272 54.58402255 67.21188829 54.58402272
+C Variable max : 37.1903484 65.21465971 65.21465947 70. 65.21465971
+C Times of max : 5.4 .18 .18 0.0 .18
+C Variable min : -32.6413814 -64.4282966 -64.4282964 -69.9999111 -64.4282966
+C Times of min : 2.16 3.35 3.35 3.14 3.35
+ PRINTER PLOT
+ 193 .5 0.0 6.0 TRAN LOADG GEN TRAN { Axis limits: (-3.701, 3.055)
+ 193 1. 0.0 6.0 TRAN { Axis limits: (-3.474, 2.777)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 3rd of 8 subcases begins illustration of enhanced $INSERT which
+C is added to the UTPF on 21 March 2006. Arguments and "/"-card
+C sorting and nesting (2 or more levels) all are allowed. The data
+C now being added was named DC17NEW.DAT during early testing because
+C initial testing involved the configuration of DC-17. WSM.
+$INSERT, dc4ins.dat, 9, .005, TRAN##,
+ .005 4.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ TRAN LOADG 255. 5.E4 3
+ LOADG 1.E-6
+BLANK card ending BRANCH cards
+BLANK card ending SWITCH cards (none exists, for this case)
+BLANK card ending SOURCE cards
+ GEN TRAN
+BLANK card ending OUTPUT variable requests
+ 193 1. 0.0 7.0 GEN TRAN { Axis limits: (-2.544, 3.289)
+BLANK card ending PLOT cards
+BEGIN NEW DATA CASE
+C 4th of 8 subcases continues illustration of enhanced $INSERT. This
+C illustrates /LOAD FLOW within $INSERT using data from the 5th
+C of 5 data subcases of DC-26. This is the former DC17A.DAT
+$INSERT, DC4AINS.DAT, { Move all data except misc. data into this file
+ .000200 .000 60. { T-max = 0 means that no transient solution follows
+ 1 1 1 0 1
+BLANK card ending branch cards.
+BLANK card ending switch cards.
+BLANK card terminating EMTP source cards.
+BLANK card ending requests for output variables
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 8 subcases continues illustration of enhanced $INSERT. This
+C illustrates /TACS but no /MODELS. The configuration is taken
+C from the 1st subcase of DC-33. This is former DC17B.DAT
+$INSERT, DC4BINS.DAT, { All data except misc. data has been moved to here
+ .000050 .020
+ 1 1 1 1 1 -1
+ 5 5 20 20
+BLANK card terminates all TACS data
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+C Total network loss P-loss by summing injections = 7.106450000000E-06
+C Inject: GEN 377. 377. .377E-7 2.6786345332877
+C Inject: 0.0 0.0 -2.678634533288 -89.9999992
+C ---- Initial flux of coil "GROUND" to "GEN " = 1.00000000E-09
+C
+C Step Time GEN GROUND GROUND TACS TACS
+C TERRA GEN FLUX GEN
+C *** Phasor I(0) = 0.3770000E-07 Switch "GROUND" to " " closed
+C 0 0.0 377. .377E-7 0.0 0.0 0.0
+C 1 .5E-4 376.9330268 .5235646391 -.523564601 .0094233257 376.9330268
+C 2 .1E-3 376.7321312 1.04694322 -1.04694318 .0282649546 376.7321312
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 6th of 8 subcases continues illustration of enhanced $INSERT. This
+C illustrates /MODELS but no /TACS. The configuration is taken
+C from the 2nd of 3 subcases of DC-33. This is former DC17C.DAT
+$INSERT, DC4CINS.DAT, { All data except misc. data has been moved to here
+ .000050 .020
+ 1 1 1 1 1 -1
+ 5 5 20 20
+BLANK card terminates all MODELS data { 9 July 1995, MODELS replaces old
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+C Total network loss P-loss by summing injections = 7.106450000000E-06
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+BEGIN NEW DATA CASE
+C 7th of 8 subcases continues illustration of enhanced $INSERT. This
+C illustrates both /MODELS and /TACS. The configuration is taken
+C from the 6th of 6 subcases of DC-30. This is former DC17D.DAT
+$INSERT, DC4DINS.DAT,
+ 1.E-6 5.E-6 { Only take 5 steps; these are plenty for illustration
+ 1 -1
+BLANK card terminates all TACS data
+BLANK card ends all MODELS data
+ENDMODELS
+BLANK card ending all BRANCH cards
+BLANK card ending all SWITCH cards
+BLANK terminates the last SOURCE card
+BLANK card ends OUTPUT variable requests
+BLANK card ending all batch-mode PLOT cards
+C Comment about 6 lines above. Note ENDMODELS has like the initiation
+C word MODELS: there is only one of them, and has nothing to do with
+C the actual modeling. It is part of the structure in which actual data
+C is carried. Normally, ENDMODELS would precede the blank card ending
+C MODELS, but with sorting that is not possible. /-card sorting will
+C put the actual data there. If we raise ENDMODELS line by one row,
+C it would precede all real MODELS data, and that would be completely
+C wrong. So, we put it after the blank. Recall MODELS ignores blank
+C lines, so the blank card ending MODELS is ignored. It is essential
+C to the sorting, but then is ignored by MODELS itself. Since it was
+C optional, anyway, this works well.
+BEGIN NEW DATA CASE
+C 8th of 8 subcases continues illustration of enhanced $INSERT. This
+C illustrates nesting: a $INSERT line within a $INSERT file. The
+C use is quite artificial. WSM simply took a single-level example
+C from Orlando Hevia and modified it to illustrate the 2nd level.
+C Use is realistic in that $INSERT is required. $INCLUDE can
+C not be used in its place because a PCVP loop defines one of the
+C arguments. In fact, this was the data that inspired WSM to add
+C the service of arguments to $INSERT capability during January, 2006.
+C Arguments came first. "/"-card sorting by class came later.
+C Misc. data parameter ICAT = 1 will create one .PL4 file for each
+C pass of the loop. But because this is not the first subcase within
+C the disk file, they will not be named DC4.xxx as might be hoped.
+C Instead, they will be renamed using the date and time. Remember
+C that KOMPAR = 4 in startup results in the WW I Armistice name of
+C 8B111100. So, there will be a .001 file for the first pass, a
+C .002 file for the second, etc. through MAXKNT passes.
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 3 times with
+POCKET CALCULATOR VARIES PARAMETERS 3 0 1 { full printout
+$PARAMETER
+RHORHO = 10.000*KNT
+BLANK card ends parameter block.
+$DUMMY, XYZ000
+ 1.E-6 .001
+ 1 1 1 1 1 -1 0 1
+ 5 5 20 20 100 100
+ XX0001XX0003 1.E3 0
+ XX0001 RHORHO
+$INSERT, dc4drtt.dat, XX0003, 10.0, RHORHO
+BLANK card ending BRANCH cards
+BLANK card ending SWITCH cards
+15XX0001 0 1.E4 1.2E-6 5.E-5 2. 1.
+BLANK card ending SOURCE cards
+ XX0003
+BLANK card ending node voltage OUTPUTs
+BLANK card ending PLOT cards
+BLANK card to be read and ignored by MNTINC. This avoids 2-line EOF warning.
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc40.dat b/benchmarks/dc40.dat
new file mode 100644
index 0000000..dea4726
--- /dev/null
+++ b/benchmarks/dc40.dat
@@ -0,0 +1,417 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-40
+C This present data case restarts the "STATISTICS" (Monte Carlo) simulation
+C of DC-24, which ran only 3 energizations. When this 2nd half finishes,
+C 6 will have been completed, to be compared with "M39." answers of DC-24.
+C Yet answers differ due to different random number generator and use of the
+C seed (now, initialization only occurs once). As for the disk file that is
+C connected to UNIT=2 immediately below, note that it is disconnected 3
+C lines later, and DUM.BIN is reconnected. This is to protect DC24.BIN
+C from a stray write. But beware! The replacement file DUM.BIN must be a
+C perfect copy of the original DC24TO40.BIN to ensure correct answers, since
+C it is DUM.BIN from which restoration will actually occur for the second
+C and later simulations of this restarted case. Finally, be careful of OPMC
+C Beware of PARALLEL.LIS entry for same USERID that might modify NENERG!
+$OPEN, UNIT=LUNIT2 FILE=dc24.bin STATUS=OLD FORM=UNFORMATTED ! { Hold case
+START AGAIN { Request for awakening of hibernating solution
+ 9999 { Terminate modifications (none, here) to switching times
+C Cancel special output for MS Excel of DC-24 tables. Addition on 21 July 2007:
+C Type --- Ruler for file type of Excel output file:
+EXTREMA OUTPUT FOR EXCEL .off { Columns 29-32 carry optional file type
+$OPEN, UNIT=LUNIT2 FILE=dc24at40.ext STATUS=OLD FORM=UNFORMATTED RECL=16000 !
+LOAD MORE SHOTS { Load the separate extrema produced by 3 shots made in DC-24
+MISCELLANEOUS DATA CARDS
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 0 0 6
+C ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+C GENA GENC ENDA B1 ASW10
+C Reference angle A1 C1 A10 BSW1
+C
+C GENB ENDA
+C B1 A10
+C The following is DIAGNOSTIC from "RANDNZ" usage of overlay 12. Not a
+C normal case output, this is useful in case switching times are incorrect:
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.446592684878350000E+14
+C 0.198544027000000000E+09 0.046227133600041
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.137132374008640000E+14
+C 0.370179203200000000E+10 0.861890621483326
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.255679073858209000E+15
+C 0.396569462500000000E+10 0.923335232073441
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.273906562054126000E+15
+C 0.361268631800000000E+10 0.841144080739468
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.249524631297943000E+15
+C 0.421126952700000000E+10 0.980512594571337
+C Random switching times for energization number 4 :
+C 1 2.1466476E-03 2 4.4995694E-03 3 8.0648931E-03
+C 0.0 125.9695623 -58.920794 52.58141134 370.8688937 -424.516718
+C 1.249136867 -1.87200012
+C Times of maxima : .0023 .0114 .0094 .0049 .0078
+C .0049 .0171
+TIME STEP LOOP { Transfer control to overlay 16 for a resumption of simulation
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.290868174960364000E+15
+C 0.104773356000000000E+09 0.024394447915256
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.723659092556500000E+13
+C 0.386599910100000000E+10 0.900123059051111
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.267020691906970000E+15
+C 0.257511465000000000E+10 0.599565601442009
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.177860593760851000E+15
+C 0.170306619500000000E+10 0.396525998366997
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.117629079022456000E+15
+C 0.280968690400000000E+10 0.654181210324168
+C Random switching times for energization number 5 :
+C 1 2.0344905E-03 2 3.8690347E-03 3 6.3961916E-03
+C 0.0 131.4745297 -76.1213478 -90.4743742 472.0143285 -556.117151
+C 1.594127662 -1.83850686
+C Times of maxima : .0022 .0127 .0083 .0139 .0074
+C .0044 .0172
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.194062264772377000E+15
+C 0.275743720900000000E+10 0.642015880206600
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.190453430588422000E+15
+C 0.169578189400000000E+10 0.394829989876598
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.117125959636687000E+15
+C 0.220147476700000000E+10 0.512570786988363
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.152053660681924000E+15
+C 0.322846893200000000E+10 0.751686499454081
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.222987120664309000E+15
+C 0.100859058100000000E+10 0.234830794157460
+C Random switching times for energization number 6 :
+C 1 2.0043546E-03 2 4.3397550E-03 3 5.2772330E-03
+C 0.0 131.4745297 -102.270651 45.1085527 370.2365789 -461.601966
+C 1.25947653 -1.88310377
+C Times of maxima : .0022 .0054 .0094 .0052 .0076
+C .02 .017
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 25 1.2500000 0.12500000E+03 0 0
+C 26 1.3000000 0.13000000E+03 1 1
+C 27 1.3500000 0.13500000E+03 2 3
+C 28 1.4000000 0.14000000E+03 1 4
+C 29 1.4500000 0.14500000E+03 2 6
+C Summary for following request: Mean = 1.35833333E+00 1.34924018E+00
+C Variance = 3.66666667E-03 4.10518277E-03
+C Standard deviation = 6.05530071E-02 6.40717002E-02
+-1 100. GENA A1
+-1 GENC C1 ENDA A10 { =2.53418455E-1, Variance = 3.02359400E-3
+ ASW10 BSW10 CSW10 { Mean=1.49453887E+0, Variance = 6.41172862E-2
+C MODTAB AINCR XMAXMX
+STATISTICS DATA 1 -10. 0.0 ---- Fixed number of 10 boxes
+-3 B1 BSW1 { Ungroup: Mean=1.07790313E+0, Variance = 1.44614228E-2
+STATISTICS DATA 1 .05 0.0 --- Return to p.u. box of 1/20
+-2 0. GENB B1 ENDA A10 { =1.11785582E+0, Variance = 1.92038029E-2
+STATISTICS DATA 1 -5.0 0.0 ---- Fixed number of 5 boxes
+-4 0. B1 BSW1 { Ungroup: Mean=1.27016791E+0, Variance = 8.50686724E-2
+C 12 ) -------------------------------------------------------------------------
+C Statistical distribution of peak energy for branch "B1 " to "BSW1 ".
+C Interval energy energy in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 5 0.9692791 0.66169358E+00 0 0
+C 6 1.1631349 0.79403229E+00 2 2
+C 7 1.3569907 0.92637101E+00 2 4
+C 8 1.5508465 0.10587097E+01 1 5
+C 9 1.7447023 0.11910484E+01 0 5
+C 10 1.9385582 0.13233872E+01 1 6
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.32468140E+00 1.27016791E+00
+C Variance = 8.51815081E-02 8.50686724E-02
+C Standard deviation = 2.91858713E-01 2.91665343E-01
+C Switch "A1 " to "ASW1 "
+C 8.33333377E-03 switch closings per column
+C Columns
+C 5 10 15 20 25 30
+C +----+----+----+----+----+----+ (Note: all "A" below did line
+C A * up before left shift,
+C A * in about column 127).
+C A *
+C A *
+C | * Pull in to col 80 ----> A
+C | * Pull in to col 80 ----> A
+C A *
+C | * Pull in to col 80 ----> A
+C A *
+C A *
+C A *
+C A *
+C | 2.0000E-03 * Pull in to col 80 ----> A
+C A *
+C | * Pull in to col 80 ----> A
+C A *
+C A *
+C A *
+C A *
+C A *
+C A *
+C A *
+C | * Pull in to col 80 ----> A
+C A *
+C A *
+C Time (scale = 1.44337567E-05 Sec/line)
+BLANK card ending statistical output variable requests
+BEGIN NEW DATA CASE
+C ======================================================================
+C 2nd of 4 subcases will follow an explanation of how to produce vector
+C plots of statistical distributions in Apollo window using input of the
+C preceding solution. See "STATPLOT" as described in Section I-F-1-g
+C of the rule book. Execute the following in a 2/3-height window with
+C font F7x13.B and nearly full width:
+C $ STATPLOT.EXE
+C Y 5 .9 1.9
+C HELP
+C GO
+C <<< Pasted data beginning with 1st row of the
+C <<< statistical tabulation of peak energy for
+C <<< branch "B1 " to "BSW1 ". This begins
+C <<< in row 10 and extends through row 20, followed
+C <<< 4 lines of summary statistics. See Rule Book.
+C LINE 1.4 0.1
+C LINE 1.8 0.1
+C LINE 1.0 1.0
+C ======================================================================
+C On to the 2nd subcase, which will illustrate statistical tabulation
+C of previously-generated energizations without the addition of any new
+C solutions. It also illustrates the combination of 2 sets of extrema,
+C with the 1st coming from the 1st subcase of DC-24 (just as with the
+C preceding data subcase) and the 2nd coming from the 3rd subcase of
+C DC-24. This illustrates the use of "LOAD NEXT PART" that announces
+C or requests concatenation of the 2nd set of extrema. Finally, there
+C is illustration of the erasure of energizations from each set. Since
+C both sets of data are really identical, killing one extrema in 1 file
+C and the remaining 2 in the other, in any combination, will result in
+C 3 remaining extrema that should tabulate identically to the 3 of DC-24
+$OPEN, UNIT=LUNIT2 FILE=dc24.bin STATUS=OLD FORM=UNFORMATTED ! { Hold case
+START AGAIN { Load hibernating solution (except for separate extrema)
+ 9999 { Terminate modifications (none, here) to switching times
+C Cancel special output for MS Excel of DC-24 tables. Addition on 21 July 2007:
+C Type --- Ruler for file type of Excel output file:
+EXTREMA OUTPUT FOR EXCEL .off { Columns 29-32 carry optional file type
+$OPEN, UNIT=LUNIT2 FILE=dc24at40.ext STATUS=OLD FORM=UNFORMATTED RECL=16000 !
+C 345678901234567890 KIL KIL KIL KIL --- Ruler for (20X, 15I4) of next card:
+LOAD MORE SHOTS 2 { Load extrema of DC-24 minus shot number 2
+TOGGLE EXTREMA MODE { Change from default UNFORMATTED mode to card images
+$OPEN, UNIT=LUNIT2 FILE=dc24ct40.lis STATUS=OLD FORM=FORMATTED !
+LOAD MORE SHOTS 1 3 { Load additional history, minus shots 1 & 3
+C Following card means next case will have L2FORM = 0 within "REQUES"
+C whether code is overlaid or not. Otherwise, virtual computers would
+C have kept L2FORM = 1 whereas overlaid would have reset L2FORM = 0.
+TOGGLE EXTREMA MODE { Restore the default UNFORMATTED mode of "LOAD MORE SHOTS"
+MISCELLANEOUS DATA CARDS
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 0 0 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+TIME STEP LOOP { Transfer control to overlay 16 for a resumption of simulation
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+-1 100. GENA A1
+C &&&&&&&&&&&&& End request and documentation. Begin 3 coupled cards ......
+C 2 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 9 0.4500000 0.13635000E+03 0 0
+C 10 0.5000000 0.15150000E+03 3 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 4.75000000E-01 4.62734306E-01
+C Variance = 0.00000000E+00 9.53165933E-05
+C Standard deviation = 0.00000000E+00 9.76302173E-03
+-1 GENA A1 CONT.
+C 3 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENC " to "C1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 4 0.2000000 0.60600000E+02 0 0
+C 5 0.2500000 0.75750000E+02 2 2
+C 6 0.3000000 0.90900000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 2.41666667E-01 2.45766731E-01
+C Variance = 8.33333333E-04 2.19347831E-03
+C Standard deviation = 2.88675135E-02 4.68345845E-02
+-1 GENC C1 CONT.
+C 4 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "ENDA " to "A10 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 2 0.1000000 0.30300000E+02 0 0
+C 3 0.1500000 0.45450000E+02 2 2
+C 4 0.2000000 0.60600000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.41666667E-01 1.43690600E-01
+C Variance = 8.33333333E-04 9.61072666E-04
+C Standard deviation = 2.88675135E-02 3.10011720E-02
+-1 ENDA A10
+C 5 ) --------------------------------------------------------------------------
+C SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMAR
+C 5 ) --------------------------------------------------------------------------
+C A distribution of peak values among all output branches of the last data card
+C statistical distribution is for the maximum of the peaks at all of these outpu
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 9 0.4500000 0.13635000E+03 0 0
+C 10 0.5000000 0.15150000E+03 3 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 4.75000000E-01 4.62734306E-01
+C Variance = 0.00000000E+00 9.53165933E-05
+C Standard deviation = 0.00000000E+00 9.76302173E-03
+C 3456789012345678901234567890123456789012345678
+C MODTAB AINCR XMAXMX
+STATISTICS DATA 1 0.0 0.0 ---- Only individual
+-1 GENC C1 { =.245766731, Variance=2.19347831E-3}
+C ----------- Following is 2nd mini-switch plot, which is the 1st Gaussian :
+C Switch "B1 " to "BSW1 "
+C 1.32420007E-02 switch closings per column
+C Columns
+C 5 10 15 20 25 30
+C +----+----+----+----+----+----+
+C X
+C X
+C X
+C X
+C A*
+C A *
+C A *
+C A *
+C A *
+C A *
+C A *
+C A *
+C | 4.0000E-03 * Pulled 3 columns left ---> A
+C | * Pulled 3 columns left ---> A
+C A *
+C A *
+C A *
+C | * Pulled 3 columns left ---> A
+C A *
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 3rd of 4 total subcases, which will illustrate statistical tabulation
+C of previously-generated energizations without the addition of any new
+C solutions. It is like 2nd, only with a different erasure of 3 shots.
+C Tabulations are the same. Finally, it illustrates the omission of the
+C miniature character plots of switch closing times via NO SWITCH PLOTS.
+$OPEN, UNIT=LUNIT2 FILE=dc24.bin STATUS=OLD FORM=UNFORMATTED ! { Hold case
+START AGAIN { Load hibernating solution (except for separate extrema)
+ 9999 { Terminate modifications (none, here) to switching times
+C Cancel special output for MS Excel of DC-24 tables. Addition on 21 July 2007:
+C Type --- Ruler for file type of Excel output file:
+EXTREMA OUTPUT FOR EXCEL .off { Columns 29-32 carry optional file type
+$OPEN, UNIT=LUNIT2 FILE=dc24at40.ext STATUS=OLD FORM=UNFORMATTED RECL=16000 !
+C 345678901234567890 KIL KIL KIL KIL --- Ruler for (20X, 15I4) of next card:
+LOAD MORE SHOTS 3 { Load extrema of DC-24 minus shot number 3
+TOGGLE EXTREMA MODE { Change from default UNFORMATTED mode to card images
+$OPEN, UNIT=LUNIT2 FILE=dc24ct40.lis STATUS=OLD FORM=FORMATTED !
+LOAD MORE SHOTS 1 2 { Load additional history, minus shots 1 & 2
+C Following card means next case will have L2FORM = 0 within "REQUES"
+C whether code is overlaid or not. Otherwise, virtual computers would
+C have kept L2FORM = 1 whereas overlaid would have reset L2FORM = 0.
+TOGGLE EXTREMA MODE { Restore the default UNFORMATTED mode of "LOAD MORE SHOTS"
+MISCELLANEOUS DATA CARDS
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 0 0 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+TIME STEP LOOP { Transfer control to overlay 16 for a resumption of simulation
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+-1 100. GENA A1
+C Column positioning of "NO SWITCH PLOTS" on blank terminator is arbitrary:
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE
+C 4th of 4 total subcases will illustrate the repeated simulation of the
+C already-solved 2nd energization. By definition, only a single shot
+C will occur, and by means of KSTOUT = 0 we can look at time-step loop
+C output just as though there were no "STATISTICS". Such output now
+C can be followed by plotting (activated on 30 March 1989). Note that
+C the plot file header was created by the 2nd subcase of DC-24. It is
+C necessary to connect this since only time-step-loop output is produced
+C by "START AGAIN" usage such as here. Miscellaneous data parameter
+C ICAT = 2 will save the ".PL4" plot file, so subsequent, independent
+C plotting is possible (and is illustrated by the 2nd plot of the first
+C subcase of DC-54). There is no statistical tabulation for the present
+C subcase, of course. Variable KNTRPT = 2 repeats the 2nd shot of the
+C previously-solved 1st subcase of DC-24. The zero (not blank!) KSTOUT
+C provides desired time-step loop output.
+$OPEN, UNIT=LUNIT2 FILE=dc24.bin STATUS=OLD FORM=UNFORMATTED ! { Hold case
+START AGAIN { Request for awakening of hibernating solution
+ 9999 { Terminate modifications (none, here) to switching times
+C Cancel special output for MS Excel of DC-24 tables. Addition on 21 July 2007:
+C Type --- Ruler for file type of Excel output file:
+EXTREMA OUTPUT FOR EXCEL .off { Columns 29-32 carry optional file type
+$OPEN, UNIT=LUNIT2 FILE=dc24at40.ext STATUS=OLD FORM=UNFORMATTED RECL=16000 !
+C 345678901234567890 KIL KIL KIL KIL --- Ruler for (20X, 15I4) of next card:
+LOAD MORE SHOTS { Load extrema produced by 1st subcase of DC-24
+MISCELLANEOUS DATA CARDS
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 0 2 3
+C Preceding KNTRPT = 3 was changed from former 6 on 23 Sept 1998.
+C ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED
+ 1 1 0 0 1 0 2 1
+CHANGE PRINTOUT FREQUENCY
+ 1 1 20 10
+$CLOSE, UNIT=LUNIT4 STATUS=DELETE { Destroy empty date/time plot file of "SYSDEP"
+$OPEN, UNIT=LUNIT4 FILE=dc24b40d.pl4 STATUS=OVERLAY ! { C-like uses only header
+C READ PL4 HEADER { Messes up C-like usage of PL4
+C Transfer control to the time-step loop. |TIME STEP LOOP { Transfer
+C GENA GENC ENDA B1 ASW10
+C Reference angle A1 C1 A10 BSW1
+C
+C GENB ENDA
+C B1 A10
+C Random switching times for energization number 2 :
+C 1 1.8999095E-03 2 4.7979502E-03 3 7.5258324E-03
+C 18 .0018 .284217E-13 -.26148E-11 .284217E-12 0.0 0.0
+C .192639E-17 .966554E-16
+C *** Close switch "A1 " to "ASW1 " after 1.90000000E-03 sec.
+C 19 .0019 -.28422E-13 .26148E-11 -.28422E-12 0.0 0.0
+C .210598E-16 .966554E-16
+TIME STEP LOOP { Transfer control to overlay 16 for a resumption of simulation
+C 200 .02 18.40117142 -5.2655535 13.97952075 79.19748583 128.2703628
+C .4457755752 -1.28521406
+C Variable max : 141.9164096 61.55446116 25.22399908 371.6253603 334.5616569
+C 1.207725131 .5125980517
+C Times of max : .002 .0154 .0132 .0059 .0028
+C .0058 .0105
+C Variable min : -103.914014 -46.8051457 -41.9189588 -288.448852 -318.274018
+C -1.09393135 -1.83695142
+C Times of min : .0032 .0144 .0139 .0071 .0088
+C .0071 .017
+ PRINTER PLOT
+ 144 1. 0.0 10. ASW10 { Plot limits: (-3.183, 3.346)
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc40clik.dat b/benchmarks/dc40clik.dat
new file mode 100644
index 0000000..dbc590c
--- /dev/null
+++ b/benchmarks/dc40clik.dat
@@ -0,0 +1,421 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-40
+C This present data case restarts the "STATISTICS" (Monte Carlo) simulation
+C of DC-24, which ran only 3 energizations. When this 2nd half finishes,
+C 6 will have been completed, to be compared with "M39." answers of DC-24.
+C Yet answers differ due to different random number generator and use of the
+C seed (now, initialization only occurs once). As for the disk file that is
+C connected to UNIT=2 immediately below, note that it is disconnected 3
+C lines later, and dumxx.BIN is reconnected. This is to protect DC24clik.BIN
+C from a stray write. .... Finally, be careful of OPMC
+C Beware of PARALLEL.LIS entry for same USERID that might modify NENERG!
+$OPEN, UNIT=22 FILE=dc24clik.bin STATUS=OLD FORM=C-like ! { Hold case
+START AGAIN { Request for awakening of hibernating solution
+ 9999 { Terminate modifications (none, here) to switching times
+diagnostic 9
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24clik.bin on 22 to prevent damage
+$OPEN, UNIT=22 FILE=dc24at40.ext STATUS=OLD FORM=UNFORMATTED RECL=16000 !
+LOAD MORE SHOTS { Load the separate extrema produced by 3 shots made in DC-24
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24at40.ext on 22 to prevent damage
+$OPEN, UNIT=22 STATUS=SCRATCH FILE=dumxx.bin ! { Reconnect dummy .BIN on LUNIT2
+MISCELLANEOUS DATA CARDS
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 0 0 6
+C ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+C GENA GENC ENDA B1 ASW10
+C Reference angle A1 C1 A10 BSW1
+C
+C GENB ENDA
+C B1 A10
+C The following is DIAGNOSTIC from "RANDNZ" usage of overlay 12. Not a
+C normal case output, this is useful in case switching times are incorrect:
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.446592684878350000E+14
+C 0.198544027000000000E+09 0.046227133600041
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.137132374008640000E+14
+C 0.370179203200000000E+10 0.861890621483326
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.255679073858209000E+15
+C 0.396569462500000000E+10 0.923335232073441
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.273906562054126000E+15
+C 0.361268631800000000E+10 0.841144080739468
+C "RFUNL1/RANDNZ". KNT = 4. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.249524631297943000E+15
+C 0.421126952700000000E+10 0.980512594571337
+C Random switching times for energization number 4 :
+C 1 2.1466476E-03 2 4.4995694E-03 3 8.0648931E-03
+C 0.0 125.9695623 -58.920794 52.58141134 370.8688937 -424.516718
+C 1.249136867 -1.87200012
+C Times of maxima : .0023 .0114 .0094 .0049 .0078
+C .0049 .0171
+C diagnostic 9
+TIME STEP LOOP { Transfer control to overlay 16 for a resumption of simulation
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.290868174960364000E+15
+C 0.104773356000000000E+09 0.024394447915256
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.723659092556500000E+13
+C 0.386599910100000000E+10 0.900123059051111
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.267020691906970000E+15
+C 0.257511465000000000E+10 0.599565601442009
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.177860593760851000E+15
+C 0.170306619500000000E+10 0.396525998366997
+C "RFUNL1/RANDNZ". KNT = 5. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.117629079022456000E+15
+C 0.280968690400000000E+10 0.654181210324168
+C Random switching times for energization number 5 :
+C 1 2.0344905E-03 2 3.8690347E-03 3 6.3961916E-03
+C 0.0 131.4745297 -76.1213478 -90.4743742 472.0143285 -556.117151
+C 1.594127662 -1.83850686
+C Times of maxima : .0022 .0127 .0083 .0139 .0074
+C .0044 .0172
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.439822971502571000E+02 0.194062264772377000E+15
+C 0.275743720900000000E+10 0.642015880206600
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.190453430588422000E+15
+C 0.169578189400000000E+10 0.394829989876598
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.117125959636687000E+15
+C 0.220147476700000000E+10 0.512570786988363
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.152053660681924000E+15
+C 0.322846893200000000E+10 0.751686499454081
+C "RFUNL1/RANDNZ". KNT = 6. SY, D6, SEEDRN, D18 (result) follow ....
+C 0.000000000000000000E+00 0.222987120664309000E+15
+C 0.100859058100000000E+10 0.234830794157460
+C Random switching times for energization number 6 :
+C 1 2.0043546E-03 2 4.3397550E-03 3 5.2772330E-03
+C 0.0 131.4745297 -102.270651 45.1085527 370.2365789 -461.601966
+C 1.25947653 -1.88310377
+C Times of maxima : .0022 .0054 .0094 .0052 .0076
+C .02 .017
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 25 1.2500000 0.12500000E+03 0 0
+C 26 1.3000000 0.13000000E+03 1 1
+C 27 1.3500000 0.13500000E+03 2 3
+C 28 1.4000000 0.14000000E+03 1 4
+C 29 1.4500000 0.14500000E+03 2 6
+C Summary for following request: Mean = 1.35833333E+00 1.34924018E+00
+C Variance = 3.66666667E-03 4.10518277E-03
+C Standard deviation = 6.05530071E-02 6.40717002E-02
+-1 100. GENA A1
+-1 GENC C1 ENDA A10 { =2.53418455E-1, Variance = 3.02359400E-3
+ ASW10 BSW10 CSW10 { Mean=1.49453887E+0, Variance = 6.41172862E-2
+C MODTAB AINCR XMAXMX
+STATISTICS DATA 1 -10. 0.0 ---- Fixed number of 10 boxes
+-3 B1 BSW1 { Ungroup: Mean=1.07790313E+0, Variance = 1.44614228E-2
+STATISTICS DATA 1 .05 0.0 --- Return to p.u. box of 1/20
+-2 0. GENB B1 ENDA A10 { =1.11785582E+0, Variance = 1.92038029E-2
+STATISTICS DATA 1 -5.0 0.0 ---- Fixed number of 5 boxes
+-4 0. B1 BSW1 { Ungroup: Mean=1.27016791E+0, Variance = 8.50686724E-2
+C 12 ) -------------------------------------------------------------------------
+C Statistical distribution of peak energy for branch "B1 " to "BSW1 ".
+C Interval energy energy in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 5 0.9692791 0.66169358E+00 0 0
+C 6 1.1631349 0.79403229E+00 2 2
+C 7 1.3569907 0.92637101E+00 2 4
+C 8 1.5508465 0.10587097E+01 1 5
+C 9 1.7447023 0.11910484E+01 0 5
+C 10 1.9385582 0.13233872E+01 1 6
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.32468140E+00 1.27016791E+00
+C Variance = 8.51815081E-02 8.50686724E-02
+C Standard deviation = 2.91858713E-01 2.91665343E-01
+C Switch "A1 " to "ASW1 "
+C 8.33333377E-03 switch closings per column
+C Columns
+C 5 10 15 20 25 30
+C +----+----+----+----+----+----+ (Note: all "A" below did line
+C A * up before left shift,
+C A * in about column 127).
+C A *
+C A *
+C | * Pull in to col 80 ----> A
+C | * Pull in to col 80 ----> A
+C A *
+C | * Pull in to col 80 ----> A
+C A *
+C A *
+C A *
+C A *
+C | 2.0000E-03 * Pull in to col 80 ----> A
+C A *
+C | * Pull in to col 80 ----> A
+C A *
+C A *
+C A *
+C A *
+C A *
+C A *
+C A *
+C | * Pull in to col 80 ----> A
+C A *
+C A *
+C Time (scale = 1.44337567E-05 Sec/line)
+BLANK card ending statistical output variable requests
+BEGIN NEW DATA CASE
+C ======================================================================
+C 2nd of 4 subcases will follow an explanation of how to produce vector
+C plots of statistical distributions in Apollo window using input of the
+C preceding solution. See "STATPLOT" as described in Section I-F-1-g
+C of the rule book. Execute the following in a 2/3-height window with
+C font F7x13.B and nearly full width:
+C $ STATPLOT.EXE
+C Y 5 .9 1.9
+C HELP
+C GO
+C <<< Pasted data beginning with 1st row of the
+C <<< statistical tabulation of peak energy for
+C <<< branch "B1 " to "BSW1 ". This begins
+C <<< in row 10 and extends through row 20, followed
+C <<< 4 lines of summary statistics. See Rule Book.
+C LINE 1.4 0.1
+C LINE 1.8 0.1
+C LINE 1.0 1.0
+C ======================================================================
+C On to the 2nd subcase, which will illustrate statistical tabulation
+C of previously-generated energizations without the addition of any new
+C solutions. It also illustrates the combination of 2 sets of extrema,
+C with the 1st coming from the 1st subcase of DC-24 (just as with the
+C preceding data subcase) and the 2nd coming from the 3rd subcase of
+C DC-24. This illustrates the use of "LOAD NEXT PART" that announces
+C or requests concatenation of the 2nd set of extrema. Finally, there
+C is illustration of the erasure of energizations from each set. Since
+C both sets of data are really identical, killing one extrema in 1 file
+C and the remaining 2 in the other, in any combination, will result in
+C 3 remaining extrema that should tabulate identically to the 3 of DC-24
+$OPEN, UNIT=22 FILE=dc24clik.bin STATUS=OLD FORM=C-like ! { Hold case
+START AGAIN { Request for awakening of hibernating solution
+ 9999 { Terminate modifications (none, here) to switching times
+diagnostic 9
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24clik.bin on 22 to prevent damage
+$OPEN, UNIT=22 FILE=dc24at40.ext STATUS=OLD FORM=UNFORMATTED RECL=16000 !
+C 345678901234567890 KIL KIL KIL KIL --- Ruler for (20X, 15I4) of next card:
+LOAD MORE SHOTS 2 { Load extrema of DC-24 minus shot number 2
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24at40.ext on 22 to prevent damage
+TOGGLE EXTREMA MODE { Change from default UNFORMATTED mode to card images
+$OPEN, UNIT=22 FILE=dc24ct40.lis STATUS=OLD FORM=FORMATTED !
+LOAD MORE SHOTS 1 3 { Load additional history, minus shots 1 & 3
+C Following card means next case will have L2FORM = 0 within "REQUES"
+C whether code is overlaid or not. Otherwise, virtual computers would
+C have kept L2FORM = 1 whereas overlaid would have reset L2FORM = 0.
+TOGGLE EXTREMA MODE { Restore the default UNFORMATTED mode of "LOAD MORE SHOTS"
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24ct40.lis on 22 to prevent damage
+$OPEN, UNIT=22 STATUS=SCRATCH FILE=dumxx.bin ! { Reconnect dummy .BIN on LUNIT2
+MISCELLANEOUS DATA CARDS
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 0 0 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+TIME STEP LOOP { Transfer control to overlay 16 for a resumption of simulation
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+-1 100. GENA A1
+C &&&&&&&&&&&&& End request and documentation. Begin 3 coupled cards ......
+C 2 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 9 0.4500000 0.13635000E+03 0 0
+C 10 0.5000000 0.15150000E+03 3 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 4.75000000E-01 4.62734306E-01
+C Variance = 0.00000000E+00 9.53165933E-05
+C Standard deviation = 0.00000000E+00 9.76302173E-03
+-1 GENA A1 CONT.
+C 3 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENC " to "C1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 4 0.2000000 0.60600000E+02 0 0
+C 5 0.2500000 0.75750000E+02 2 2
+C 6 0.3000000 0.90900000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 2.41666667E-01 2.45766731E-01
+C Variance = 8.33333333E-04 2.19347831E-03
+C Standard deviation = 2.88675135E-02 4.68345845E-02
+-1 GENC C1 CONT.
+C 4 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "ENDA " to "A10 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 2 0.1000000 0.30300000E+02 0 0
+C 3 0.1500000 0.45450000E+02 2 2
+C 4 0.2000000 0.60600000E+02 1 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.41666667E-01 1.43690600E-01
+C Variance = 8.33333333E-04 9.61072666E-04
+C Standard deviation = 2.88675135E-02 3.10011720E-02
+-1 ENDA A10
+C 5 ) --------------------------------------------------------------------------
+C SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMARY SUMMAR
+C 5 ) --------------------------------------------------------------------------
+C A distribution of peak values among all output branches of the last data card
+C statistical distribution is for the maximum of the peaks at all of these outpu
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 9 0.4500000 0.13635000E+03 0 0
+C 10 0.5000000 0.15150000E+03 3 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 4.75000000E-01 4.62734306E-01
+C Variance = 0.00000000E+00 9.53165933E-05
+C Standard deviation = 0.00000000E+00 9.76302173E-03
+C 3456789012345678901234567890123456789012345678
+C MODTAB AINCR XMAXMX
+STATISTICS DATA 1 0.0 0.0 ---- Only individual
+-1 GENC C1 { =.245766731, Variance=2.19347831E-3}
+C ----------- Following is 2nd mini-switch plot, which is the 1st Gaussian :
+C Switch "B1 " to "BSW1 "
+C 1.32420007E-02 switch closings per column
+C Columns
+C 5 10 15 20 25 30
+C +----+----+----+----+----+----+
+C X
+C X
+C X
+C X
+C A*
+C A *
+C A *
+C A *
+C A *
+C A *
+C A *
+C A *
+C | 4.0000E-03 * Pulled 3 columns left ---> A
+C | * Pulled 3 columns left ---> A
+C A *
+C A *
+C A *
+C | * Pulled 3 columns left ---> A
+C A *
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 3rd of 4 total subcases, which will illustrate statistical tabulation
+C of previously-generated energizations without the addition of any new
+C solutions. It is like 2nd, only with a different erasure of 3 shots.
+C Tabulations are the same. Finally, it illustrates the omission of the
+C miniature character plots of switch closing times via NO SWITCH PLOTS.
+$OPEN, UNIT=22 FILE=dc24clik.bin STATUS=OLD FORM=C-like ! { Hold case
+START AGAIN { Request for awakening of hibernating solution
+ 9999 { Terminate modifications (none, here) to switching times
+diagnostic 9
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24clik.bin on 22 to prevent damage
+$OPEN, UNIT=22 FILE=dc24at40.ext STATUS=OLD FORM=UNFORMATTED RECL=16000 !
+C 345678901234567890 KIL KIL KIL KIL --- Ruler for (20X, 15I4) of next card:
+LOAD MORE SHOTS 3 { Load extrema of DC-24 minus shot number 3
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24at40.ext on 22 to prevent damage
+TOGGLE EXTREMA MODE { Change from default UNFORMATTED mode to card images
+$OPEN, UNIT=22 FILE=dc24ct40.lis STATUS=OLD FORM=FORMATTED !
+LOAD MORE SHOTS 1 2 { Load additional history, minus shots 1 & 2
+C Following card means next case will have L2FORM = 0 within "REQUES"
+C whether code is overlaid or not. Otherwise, virtual computers would
+C have kept L2FORM = 1 whereas overlaid would have reset L2FORM = 0.
+TOGGLE EXTREMA MODE { Restore the default UNFORMATTED mode of "LOAD MORE SHOTS"
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24ct40.lis on 22 to prevent damage
+$OPEN, UNIT=22 STATUS=SCRATCH FILE=dumxx.bin ! { Reconnect dummy .BIN on LUNIT2
+MISCELLANEOUS DATA CARDS
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 0 0 3
+C ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+TIME STEP LOOP { Transfer control to overlay 16 for a resumption of simulation
+C 1 ) --------------------------------------------------------------------------
+C Statistical distribution of peak voltage for branch "GENA " to "A1 ".
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 27 1.3500000 0.13500000E+03 0 0
+C 28 1.4000000 0.14000000E+03 1 1
+C 29 1.4500000 0.14500000E+03 2 3
+C Distribution parameters for .. data follow. Grouped data Ungrouped data
+C Mean = 1.40833333E+00 1.40208495E+00
+C Variance = 8.33333333E-04 8.75092111E-04
+C Standard deviation = 2.88675135E-02 2.95819558E-02
+-1 100. GENA A1
+C Column positioning of "NO SWITCH PLOTS" on blank terminator is arbitrary:
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE
+C 4th of 4 total subcases will illustrate the repeated simulation of the
+C already-solved 2nd energization. By definition, only a single shot
+C will occur, and by means of KSTOUT = 0 we can look at time-step loop
+C output just as though there were no "STATISTICS". Such output now
+C can be followed by plotting (activated on 30 March 1989). Note that
+C the plot file header was created by the 2nd subcase of DC-24. It is
+C necessary to connect this since only time-step-loop output is produced
+C by "START AGAIN" usage such as here. Miscellaneous data parameter
+C ICAT = 2 will save the ".PL4" plot file, so subsequent, independent
+C plotting is possible (and is illustrated by the 2nd plot of the first
+C subcase of DC-54). There is no statistical tabulation for the present
+C subcase, of course. Variable KNTRPT = 2 repeats the 2nd shot of the
+C previously-solved 1st subcase of DC-24. The zero (not blank!) KSTOUT
+C provides desired time-step loop output.
+$OPEN, UNIT=22 FILE=dc24clik.bin STATUS=OLD FORM=C-like ! { Hold case
+START AGAIN { Request for awakening of hibernating solution
+ 9999 { Terminate modifications (none, here) to switching times
+diagnostic 9
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24clik.bin on 22 to prevent damage
+$OPEN, UNIT=22 FILE=dc24at40.ext STATUS=OLD FORM=UNFORMATTED RECL=16000 !
+C 345678901234567890 KIL KIL KIL KIL --- Ruler for (20X, 15I4) of next card:
+LOAD MORE SHOTS { Load extrema produced by 1st subcase of DC-24
+$CLOSE, UNIT=22 STATUS=UNKNOWN { Disconnect dc24at40.ext on 22 to prevent damage
+$OPEN, UNIT=22 STATUS=SCRATCH FILE=dumxx.bin ! { Reconnect dummy .BIN on LUNIT2
+MISCELLANEOUS DATA CARDS
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 0 2 3
+C Preceding KNTRPT = 3 was changed from former 6 on 23 Sept 1998.
+C ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED
+ 1 1 0 0 1 0 2 1
+CHANGE PRINTOUT FREQUENCY
+ 1 1 20 10
+$CLOSE, UNIT=4 STATUS=DELETE { Destroy empty date/time plot file of "SYSDEP"
+$OPEN, UNIT=4 FILE=dc24b40d.pl4 STATUS=OVERLAY ! { C-like uses only header
+C READ PL4 HEADER { Messes up C-like usage of PL4
+C Transfer control to the time-step loop. |TIME STEP LOOP { Transfer
+C GENA GENC ENDA B1 ASW10
+C Reference angle A1 C1 A10 BSW1
+C
+C GENB ENDA
+C B1 A10
+C Random switching times for energization number 2 :
+C 1 1.8999095E-03 2 4.7979502E-03 3 7.5258324E-03
+C 18 .0018 .284217E-13 -.26148E-11 .284217E-12 0.0 0.0
+C .192639E-17 .966554E-16
+C *** Close switch "A1 " to "ASW1 " after 1.90000000E-03 sec.
+C 19 .0019 -.28422E-13 .26148E-11 -.28422E-12 0.0 0.0
+C .210598E-16 .966554E-16
+TIME STEP LOOP { Transfer control to overlay 16 for a resumption of simulation
+C 200 .02 18.40117142 -5.2655535 13.97952075 79.19748583 128.2703628
+C .4457755752 -1.28521406
+C Variable max : 141.9164096 61.55446116 25.22399908 371.6253603 334.5616569
+C 1.207725131 .5125980517
+C Times of max : .002 .0154 .0132 .0059 .0028
+C .0058 .0105
+C Variable min : -103.914014 -46.8051457 -41.9189588 -288.448852 -318.274018
+C -1.09393135 -1.83695142
+C Times of min : .0032 .0144 .0139 .0071 .0088
+C .0071 .017
+ PRINTER PLOT
+ 144 1. 0.0 10. ASW10 { Plot limits: (-3.183, 3.346)
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc41.dat b/benchmarks/dc41.dat
new file mode 100644
index 0000000..e9775b4
--- /dev/null
+++ b/benchmarks/dc41.dat
@@ -0,0 +1,519 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-41
+C Test of Semlyen frequency-dependent simulation code using high-order
+C data from John Hauer (former "HAUER SETUP"). This is the John Day to
+C Lower Monumental fault test, just like DC-31 (2nd order Semlyen) and
+C DCNEW-4 (high-order Marti). Here, continuous transposition is assumed
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ 20.E-6 20.E-3 60. 60.
+ 1 8 1 1 -1
+ 5 5 20 20 100 100
+ 0GENA BEGINA 14.
+ 0GENB BEGINBGENA BEGINA
+ 0GENC BEGINCGENA BEGINA
+C The following branch cards are from "HAUER SETUP" punch file:
+C #DATA FOR LINE SECTION 1: LENGTH = 0.1380000E+03
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 -0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 27. 60. 1 138.
+C 27. 6.0 1 138. 7 20
+C
+-1BEGINAENDA 0.22547E-02 0.74884E-03 1 1 14 6 3
+ 0.67519497E+02 0.22868008E+03 0.00000000E+00 0.62996694E-03 0.60000000E+02 0
+ 0., 0.232728400E+03, 0.505695185E-01, 0., 0.618279420E+03, 0.748306243E-01
+ 0., 0.460330237E+04, 0.227732022E+00, 0., 0.873771583E+04,-0.587245219E-01
+ 0., 0.900430932E+04, 0.249999225E-01, 0., 0.159407707E+05, 0.975160389E+00
+ 0., 0.194752175E+05, 0.117242152E+00, 0., 0.366005345E+05, 0.548528443E+00
+ 0., 0.654818466E+05,-0.150033701E+01, 0., 0.212800153E+06, 0.120734101E+02
+ 0., 0.271680247E+06,-0.185580738E+05, 0., 0.273142633E+06, 0.342711488E+05
+ 0., 0.275102479E+06,-0.160808604E+05, 0., 0.287226841E+06, 0.356251978E+03
+ 0., 0.464830983E+03,-0.469956828E-03, 0., 0.243280470E+05, 0.123116414E-03
+ 0., 0.135508543E+05,-0.279583141E-03, 0., 0.166820988E+06, 0.206387276E-03
+ 0., 0.151012880E+06,-0.350762015E-03, 0., 0.304998812E+07,-0.622090423E-04
+-1BEGINBENDB 0.35258E-02 0.74313E-03 2 2 14 2 3
+ 0.40944359E+01 0.80845419E+02 0.00000000E+00 0.10069636E-02 0.60000000E+02 0
+ 0., 0.827674470E+03, 0.398806056E-01, 0., 0.130501996E+06, 0.508365787E+00
+ 0., 0.252780509E+06,-0.280985689E+00, 0., 0.260749831E+06, 0.360866589E+00
+ 0., 0.544371051E+06,-0.152645223E+01, 0., 0.696229069E+06, 0.773993647E+01
+ 0., 0.768161125E+06,-0.566855648E+01, 0., 0.415043368E+07,-0.224486177E+00
+ 0., 0.860106666E+07,-0.180297330E+02, 0., 0.104572655E+08, 0.286577225E+03
+ 0., 0.118008018E+08,-0.243527045E+05, 0., 0.119761142E+08, 0.200319291E+06
+ 0., 0.120018677E+08,-0.177347835E+06, 0., 0.125804003E+08, 0.111275201E+04
+ 0., 0.000000000E+00, 0.000000000E+00, 0., 0.000000000E+00, 0.000000000E+00
+-1BEGINCENDC 0.35258E-02 0.74313E-03 3 3 14 2 3
+ 0.40944359E+01 0.80845419E+02 0.00000000E+00 0.10069636E-02 0.60000000E+02 0
+ 0., 0.827674470E+03, 0.398806056E-01, 0., 0.130501996E+06, 0.508365787E+00
+ 0., 0.252780509E+06,-0.280985689E+00, 0., 0.260749831E+06, 0.360866589E+00
+ 0., 0.544371051E+06,-0.152645223E+01, 0., 0.696229069E+06, 0.773993647E+01
+ 0., 0.768161125E+06,-0.566855648E+01, 0., 0.415043368E+07,-0.224486177E+00
+ 0., 0.860106666E+07,-0.180297330E+02, 0., 0.104572655E+08, 0.286577225E+03
+ 0., 0.118008018E+08,-0.243527045E+05, 0., 0.119761142E+08, 0.200319291E+06
+ 0., 0.120018677E+08,-0.177347835E+06, 0., 0.125804003E+08, 0.111275201E+04
+ 0., 0.000000000E+00, 0.000000000E+00, 0., 0.000000000E+00, 0.000000000E+00
+C ** TX MATRICES: FTX= 0.00000E+00
+ 0.57735026919E+00, 0., 0.70710678119E+00, 0., 0.40824829046E+00, 0.
+ 0.57735026919E+00, 0.,-0.70710678119E+00, 0., 0.40824829046E+00, 0.
+ 0.57735026919E+00, 0., 0.00000000000E+00, 0.,-0.81649658093E+00, 0.
+ 0.57735026919E+00, 0., 0.70710678119E+00, 0., 0.40824829046E+00, 0.
+ 0.57735026919E+00, 0.,-0.70710678119E+00, 0., 0.40824829046E+00, 0.
+ 0.57735026919E+00, 0., 0.00000000000E+00, 0.,-0.81649658093E+00, 0.
+C End of branch cards from "HAUER SETUP" punch file.
+C Modification on 15 February 1999: "1" punch was added to column 80 of the
+C 3rd and final phase of preceding Semlyen line. Output is identical.
+ RRR 10. { Resistor connects ANALYTIC source to ground
+BLANK card ending branch cards
+ ENDA .00413 1.0
+BLANK card ending switch cards (just the fault switch, here)
+14GENA 428. 60. -90.0 -1.
+14GENB 428. 60. -210.0 -1.
+14GENC 428. 60. 30.0 -1.
+C 27 October 2003, add the same new user-supplied source as featured in 7th
+C subcase of BENCHMARK DC-5. But here there is continuation into dT loop.
+C Show that phasor solution is as expected and no special problem results.
+C The only peculiarity is the need to key the frequency in columns 21-30. If
+C this is not done, the default value of 1 Hz will result. A final change is
+C the request for node voltage outputs. This was "1", which if left, would
+C add an output column that is identically zero for step 1 onward. This is
+C not interesting, so suppress this output by a switch to selective outputs.
+C Node V? Request> -Name-
+14RRR -1 60. ANALYTIC HYPERB
+C Preceding is defined as follows: Real part = 100. * Pi / Omega
+C Imaginary part = ( Real part + 1.0 ) / 2
+C So at 60 Hz, phasor = 5/6 + j 11/12
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.183407681766E-01
+C Last inject: GENC 370.65887281974 428. -.2242277044615 .44958452206004
+C Last inject: 214. 30.0000000 .38967701886034 119.9169563
+C Step Time ENDC ENDB ENDA BEGINC BEGINB
+C
+C 0 0.0 392.438957 -391.47028 -.96868127 376.114351 -376.10523
+C 1 .2E-4 393.416785 -390.51658 -2.9002095 373.022592 -371.61198
+C 2 .4E-4 391.718167 -392.23056 .512394524 371.605264 -374.09974
+ ENDC ENDB ENDA BEGINCBEGINBBEGINAGENA GENB GENC
+BLANK card ending request for node voltage outputs
+C Final step begins: 1000 .02 -224.41449 -471.83274 0.0 -91.175647
+C Final step ..... : -323.88611 368.601969 407.052189 -318.06599 -88.986204
+C Variable maxima : 586.693087 525.250186 448.452866 438.684658 447.869952
+C Times of maxima : .01492 .01068 .00414 .0154 .00984
+ PRINTER PLOT
+ 144 2. 0.0 20. ENDB ENDA { Axis limits: (-5.167, 5.239)
+ 144 1. 0.0 6.0 ENDB ENDA { Axis limits: (-4.555, 4.485)
+ CALCOMP PLOT
+ 144 2. 0.0 20. ENDB ENDA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 7 subcases is related to preceeding. The same 138-mile section of
+C 500-kV line is involved, but without frequency dependence for simplicity.
+C Rather than a fault to ground, the source of phase "a" is ended at 1 msec
+C (same effect, only at sending end rather than receiving end). Nice
+C transients are documented by a printer plot. This establishes the
+C reference for the radical new solution of the following 3rd subcase.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ .000050 .005 60. 60.
+ 1 1 1 3 1 -1 2
+ 5 5 20 20 100 100
+ JDGA JDA 15. { 1st of 3 branches in series with one
+ JDGB JDB 15. { section of K.C. Lee line. This is
+ JDGC JDC 15. { an approximation to source impedance
+C The following 3-phase, constant-parameter branch cards are produced by the
+C 2nd subcase of DC-59. For simplicity, the cards are inserted inside this
+C data file. Equally well, $INCLUDE or $INSERT on disk file dc59b.pch
+C could be used:
+$VINTAGE, 1 { Beginning of cards punched by DC-59b
+-1JDA LMA 3.01533E-01 6.91823E+02 1.19371E+05 1.38000E+02 1
+-2JDB LMB { See col 80 } 2.80266E-02 2.83599E+02 1.82176E+05 1.38000E+02 1 0
+-3JDC LMC
+$VINTAGE, 0 { last of cards punched by DC-59b
+C Modification on 15 February 1999: "3" punch was added to column 80 of the
+C 2nd phase of preceding distributed line. Output is identical except for
+C the interpreted data line itself. Because of the otherwise-unused in-line
+C comment, the "3" will be seen (unlike preceding subcase or DCNEW-4).
+ LMA 1000. { Resistive load at far end of 1st of 6 phases
+ LMB LMA { 2nd of 6 phases is terminated by the same R
+ LMC LMA { Etc. for phases 3 through 6. It is balanced
+BLANK card ending branch cards
+BLANK card ending switch cards
+14JDGA 303000. 60. 0. -1. .001
+14JDGB 303000. 60. -120. -1.
+14JDGC 303000. 60. 120. -1.
+BLANK card ending source cards
+ JDGA LMA JDGB LMB JDGC LMC
+BLANK card ending node names for selective voltage output
+ PRINTER PLOT
+ 144 1. 0.0 5.0 LMA LMB LMC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 7 subcases should produce identically the same solution as the
+C preceding subcase. Added 29 January 1999, this illustrates the new
+C "TO SUPPORTING PROGRAM" to derive line constants of the 138-mile line
+C section as were used in the 2nd subcase of DC-59. As should be explained
+C in the April, 1999, newsletter, this new in-line execution of supporting
+C programs first was envisioned by Prof. Juan A. Martinez Velasco of the
+C University of Catalunya in Barcelona, Spain.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ .000050 .005 60. 60.
+ 1 1 1 3 1 -1 2
+ 5 5 20 20 100 100
+ JDGA JDA 15. { 1st of 3 branches in series with one
+ JDGB JDB 15. { section of K.C. Lee line. This is
+ JDGC JDC 15. { an approximation to source impedance
+C Add /OUTPUT anywhere on right of following request to produce output of
+C the supporting program. Without this, all output will be suppressed.
+< TO SUPPORTING PROGRAM (NEXT) > { Request for a jump to a supporting program
+C The following data, through the blank card, is from 2nd subcase of DCNEW-3.
+LINE CONSTANTS
+BRANCH JDA LMA JDB LMB JDC LMC
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK CARD ENDING CONDUCTOR CARDS OF "LINE CONSTANTS" CASE
+100. 60.00 1 11 1 138. 1
+BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+$PUNCH, dc41c.pch ! { Output the just-created branch cards to a disk file
+BLANK card ending LINE CONSTANTS data cases { Last of supporting program data
+$CLOSE, UNIT=7 STATUS=KEEP { Disconnect file containing KC Lee branch cards
+$INSERT, dc41c.pch, { Dynamic connection of disk file created 3 lines above
+ LMA 1000. { Resistive load at far end of 1st of 3 phases
+ LMB LMA { 2nd of 3 phases is terminated by the same R
+ LMC LMA
+BLANK card ending branch cards
+BLANK card ending switch cards
+14JDGA 303000. 60. 0. -1. .001
+14JDGB 303000. 60. -120. -1.
+14JDGC 303000. 60. 120. -1.
+BLANK card ending source cards
+ JDGA LMA JDGB LMB JDGC LMC
+BLANK card ending node names for selective voltage output
+ PRINTER PLOT
+ 144 1. 0.0 5.0 LMA LMB LMC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 7 subcases illustrates selective branch current output for 2-phase
+C Semlyen line. This was added 11 December 2000. Branch cards for the
+C 2-phase line are as created by the 3rd subcase of DC-29. The network is
+C totally artificial since it represents 2 of the 3 phases of a 500-kV line
+C The new "Derive [Ti] from [Tv]" request also is illustrated (see the
+C April, 2001, newsletter). Only a single time step is taken --- enough
+C to verify correct and consistent output.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ 20.E-6 20.E-6 60. 60.
+ 1 8 0 1 0
+ 0GENA BEGINA 14. 1
+ 0GENB BEGINBGENA BEGINA 1
+C 0GENC BEGINCGENA BEGINA 1
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C SEMLYEN SETUP
+C $ERASE
+C BRANCH JDA LMA JDB LMB
+C TOLERANCES 10 5000. { Illustration only; value of FMED actually unchang
+C 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous da
+C LINE CONSTANTS
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C BLANK card ending conductor cards within "LINE CONSTANTS" data
+C 27. 5000. 138. { Transient frequen
+C 27. 60.00 138. { Phasor solution frequen
+C 27. 6.00 138. 6 20 { log loopi
+C BLANK card ending frequency cards of "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" data cases
+C L= 138.0 miles, rho= 27.0, ss freq= 60.00, NSS=0, KFIT=10, KPS=2, KYC=30
+-1BEGINAENDA 3.81668E-03 7.63488E-04 1 1 2 2 2 0
+ 1.90862630E+01 1.15862674E+02-1.30872176E-04 9.74276128E-04 6.00000000E+01
+ 0.00000E+00 2.24216E+04 7.46515E-01 0.00000E+00 2.38744E+03 2.53485E-01
+ 0.00000E+00 1.23894E+05-4.11230E-04 0.00000E+00 4.80703E+02-8.78400E-04
+-1BEGINBENDB 4.86411E-03 7.40372E-04 2 2 2 2 2 1
+ 1.59520125E+00 6.09143723E+01-2.53812008E-05 1.35128690E-03 6.00000000E+01
+ 0.00000E+00 4.07374E+05 9.54406E-01 0.00000E+00 2.40730E+03 4.55945E-02
+ 0.00000E+00 2.43743E+03-1.39286E-04 0.00000E+00 8.77099E+01-3.84337E-04
+NO IMAGINARY PART:
+ 1.0000000000000002E+00 -5.9460940886557245E-01
+ 6.9285574025886665E-01 1.0000000000000000E+00
+ 7.0805987238797719E-01 -4.9148565643201919E-01
+ 4.2216590194629711E-01 7.0805987238797719E-01
+YES, IMAGINARY PART: { Do-nothing request for return to default mode of complex
+Derive [Ti] from [Tv] { Do it. I.e., preceding [Ti] is not used.
+C Relative order of the preceding two declarations is arbitrary. Either is
+C voluntary, and either can come first, immediately after the matrix.
+BLANK card ending branch cards
+ ENDA .00413 1.0
+BLANK card ending switch cards (just the fault switch, here)
+14GENA 428. 60. -90.0 -1.
+14GENB 428. 60. -210.0 -1.
+C 14GENC 428. 60. 30.0 -1.
+BLANK card ending source cards
+ BEGINAENDA
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time BEGINA ENDA GENA GENB BEGINB
+C BEGINA BEGINB ENDB
+C 0 0.0 1.31770789 -1.9263914 .416683394 -.25532666 -.25532666
+C 1 .2E-4 4.58886445 1.51135697 .415961844 -.2528793 -.2528793
+BLANK card ending node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 7 subcases illustrates selective branch current output for 2-phase
+C Semlyen line. This was added 11 December 2000. It is identical to the
+C preceding subcase except that "Derive [Ti] from [Tv]" is not being used
+C to illustrate how the answer changes. Note inconsistent current at time
+C zero but consistent current for step 1.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ 20.E-6 20.E-6 60. 60.
+ 1 8 0 1 0
+ 0GENA BEGINA 14. 1
+ 0GENB BEGINBGENA BEGINA 1
+C 0GENC BEGINCGENA BEGINA 1
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C SEMLYEN SETUP
+C $ERASE
+C BRANCH JDA LMA JDB LMB
+C TOLERANCES 10 5000. { Illustration only; value of FMED actually unchang
+C 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous da
+C LINE CONSTANTS
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C BLANK card ending conductor cards within "LINE CONSTANTS" data
+C 27. 5000. 138. { Transient frequen
+C 27. 60.00 138. { Phasor solution frequen
+C 27. 6.00 138. 6 20 { log loopi
+C BLANK card ending frequency cards of "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" data cases
+C L= 138.0 miles, rho= 27.0, ss freq= 60.00, NSS=0, KFIT=10, KPS=2, KYC=30
+-1BEGINAENDA 3.81668E-03 7.63488E-04 1 1 2 2 2 0
+ 1.90862630E+01 1.15862674E+02-1.30872176E-04 9.74276128E-04 6.00000000E+01
+ 0.00000E+00 2.24216E+04 7.46515E-01 0.00000E+00 2.38744E+03 2.53485E-01
+ 0.00000E+00 1.23894E+05-4.11230E-04 0.00000E+00 4.80703E+02-8.78400E-04
+-1BEGINBENDB 4.86411E-03 7.40372E-04 2 2 2 2 2 1
+ 1.59520125E+00 6.09143723E+01-2.53812008E-05 1.35128690E-03 6.00000000E+01
+ 0.00000E+00 4.07374E+05 9.54406E-01 0.00000E+00 2.40730E+03 4.55945E-02
+ 0.00000E+00 2.43743E+03-1.39286E-04 0.00000E+00 8.77099E+01-3.84337E-04
+NO IMAGINARY PART:
+ 1.0000000000000002E+00 -5.9460940886557245E-01
+ 6.9285574025886665E-01 1.0000000000000000E+00
+ 7.0805987238797719E-01 -4.9148565643201919E-01
+ 4.2216590194629711E-01 7.0805987238797719E-01
+YES, IMAGINARY PART:
+C Derive [Ti] from [Tv] ---- disable this declaration of preceding subcase
+BLANK card ending branch cards
+ ENDA .00413 1.0
+BLANK card ending switch cards (just the fault switch, here)
+14GENA 428. 60. -90.0 -1.
+14GENB 428. 60. -210.0 -1.
+BLANK card ending source cards
+ BEGINAENDA
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time BEGINA ENDA GENA GENB BEGINB
+C BEGINA BEGINB ENDB
+C 0 0.0 1.3173033 -1.93736 .417090545 -.25540157 -.25506625
+C 1 .2E-4 4.46159339 1.51090777 .416403376 -.25292062 -.25292062
+BLANK card ending node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 7 subcases illustrates selective branch current output for 3-phase
+C Semlyen line. This was added 11 December 2000. There is no current
+C output for phase "a" whereas there is output for phases "b" and "c".
+C Also, the new "Derive [Ti] from [Tv]" is being used.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ 20.E-6 20.E-6 60. 60.
+ 1 8 0 1 0
+ 0GENA BEGINA 14. 1
+ 0GENB BEGINBGENA BEGINA 1
+ 0GENC BEGINCGENA BEGINA 1
+C L= 138.0MILES, RHO= 27.0, SS FREQ= 60.00, NSS=0, KFIT= 0, KPS=2, KYC=10
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 27. 5000. 1 138.
+C 27. 60.00 1 138.
+C 27. 6.00 1 138. 6 20
+C
+-1BEGINAENDA 0.55456E-02 0.77998E-03 1 1 2 2 3 0
+ 0.14938602E+02 0.90516313E+02-0.16261865E-03 0.14500324E-02 0.60000000E+02
+ 0.00000E+00 0.15161E+05 0.75119E+00 0.00000E+00 0.17105E+04 0.24881E+00
+ 0.00000E+00 0.59584E+03-0.11954E-02 0.00000E+00 0.39933E+05-0.74162E-03
+-1BEGINBENDB 0.74392E-02 0.74149E-03 2 2 2 2 3 1
+ 0.83801231E+00 0.38634735E+02-0.44536501E-04 0.20637999E-02 0.60000000E+02
+ 0.00000E+00 0.26608E+06 0.83767E+00 0.00000E+00 0.35627E+05 0.16233E+00
+ 0.00000E+00 0.13630E+03-0.49171E-03 0.00000E+00 0.32940E+05-0.75349E-04
+-1BEGINCENDC 0.42823E-02 0.74017E-03 3 3 2 2 3 1
+ 0.26535168E+01 0.67894100E+02-0.45225808E-04 0.11682248E-02 0.60000000E+02
+ 0.00000E+00 0.61698E+06 0.90903E+00 0.00000E+00 0.15239E+05 0.90969E-01
+ 0.00000E+00 0.25667E+03-0.34465E-03 0.00000E+00 0.11831E+05-0.28233E-04
+ 0.10000E+01 0.00000E+00 0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.71114E+00 0.00000E+00-0.41983E-15 0.00000E+00 0.10000E+01 0.00000E+00
+ 0.10000E+01 0.00000E+00-0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00 0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+ 0.22471E+00 0.00000E+00-0.27373E-15 0.00000E+00 0.84054E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00-0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+Derive [Ti] from [Tv]
+BLANK card ending branch cards
+ ENDA .00413 1.0
+C ENDA -1.0 1.0
+BLANK card ending switch cards (just the fault switch, here)
+14GENA 428. 60. -90.0 -1.
+14GENB 428. 60. -90.0 -1.
+14GENC 428. 60. -90.0 -1.
+BLANK card ending source cards
+ BEGINAENDA
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 5 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time BEGINA ENDA GENA GENB GENC BEGINB BEGINC
+C BEGINA BEGINB BEGINC ENDB ENDC
+C 0 0.0 .433757964 -1.3235974 .255657761 .262352453 .255657761 .262352453 .255657761
+C 1 .2E-4 3.68776594 2.16693321 .255416888 .262183584 .255416888 .262183584 .255416888
+BLANK card ending node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 7 subcases illustrates selective branch current output for 3-phase
+C Semlyen line. This was added 11 December 2000. It is identical to the
+C preceding subcase except that "Derive [Ti] from [Tv]" is not being used
+C to illustrate how the answer changes. Note inconsistent current at time
+C zero but correct current for step 1.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ 20.E-6 20.E-6 60. 60.
+ 1 8 0 1 0
+ 0GENA BEGINA 14. 1
+ 0GENB BEGINBGENA BEGINA 1
+ 0GENC BEGINCGENA BEGINA 1
+C L= 138.0MILES, RHO= 27.0, SS FREQ= 60.00, NSS=0, KFIT= 0, KPS=2, KYC=10
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 27. 5000. 1 138.
+C 27. 60.00 1 138.
+C 27. 6.00 1 138. 6 20
+C
+-1BEGINAENDA 0.55456E-02 0.77998E-03 1 1 2 2 3 0
+ 0.14938602E+02 0.90516313E+02-0.16261865E-03 0.14500324E-02 0.60000000E+02
+ 0.00000E+00 0.15161E+05 0.75119E+00 0.00000E+00 0.17105E+04 0.24881E+00
+ 0.00000E+00 0.59584E+03-0.11954E-02 0.00000E+00 0.39933E+05-0.74162E-03
+-1BEGINBENDB 0.74392E-02 0.74149E-03 2 2 2 2 3 1
+ 0.83801231E+00 0.38634735E+02-0.44536501E-04 0.20637999E-02 0.60000000E+02
+ 0.00000E+00 0.26608E+06 0.83767E+00 0.00000E+00 0.35627E+05 0.16233E+00
+ 0.00000E+00 0.13630E+03-0.49171E-03 0.00000E+00 0.32940E+05-0.75349E-04
+-1BEGINCENDC 0.42823E-02 0.74017E-03 3 3 2 2 3 1
+ 0.26535168E+01 0.67894100E+02-0.45225808E-04 0.11682248E-02 0.60000000E+02
+ 0.00000E+00 0.61698E+06 0.90903E+00 0.00000E+00 0.15239E+05 0.90969E-01
+ 0.00000E+00 0.25667E+03-0.34465E-03 0.00000E+00 0.11831E+05-0.28233E-04
+ 0.10000E+01 0.00000E+00 0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.71114E+00 0.00000E+00-0.41983E-15 0.00000E+00 0.10000E+01 0.00000E+00
+ 0.10000E+01 0.00000E+00-0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00 0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+ 0.22471E+00 0.00000E+00-0.27373E-15 0.00000E+00 0.84054E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00-0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+C Derive [Ti] from [Tv] ---- disable this declaration of preceding subcase
+BLANK card ending branch cards
+ ENDA .00413 1.0
+BLANK card ending switch cards (just the fault switch, here)
+14GENA 428. 60. -90.0 -1.
+14GENB 428. 60. -90.0 -1.
+14GENC 428. 60. -90.0 -1.
+BLANK card ending source cards
+ BEGINAENDA
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 5 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time BEGINA ENDA GENA GENB GENC BEGINB BEGINC
+C BEGINA BEGINB BEGINC ENDB ENDC
+C 0 0.0 .434025265 -1.3246378 .255853054 .262494222 .255853054 .262738399 .255858717
+C 1 .2E-4 3.66889251 2.16376453 .255617191 .262340836 .255617191 .262340836 .255617191
+BLANK card ending node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+$DISABLE { Begin discard of 4th subcase, which takes too long to execute
+C 8th of 7 subcases will produce a solution comparable to the 3rd, but
+C here constant-parameter K.C. Lee modeling of the line is replaced by
+C frequency-dependent JMarti modeling. This illustrates a more complex
+C in-line execution. On the other hand, JMARTI SETUP is relatively slow
+C to execute. That is why this 8th subcase will not be executed each time
+C the set of standard test cases is verified.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ .000050 .005 60. 60.
+ 1 1 1 3 1 -1 2
+ 5 5 20 20 100 100
+ JDGA JDA 15. { 1st of 3 branches in series with one
+ JDGB JDB 15. { circuit of the Marti line. This is
+ JDGC JDC 15. { an approximation to source impedance
+C Add /OUTPUT anywhere on right of following request to produce output of
+C the supporting program. Without this, all output will be suppressed.
+< TO SUPPORTING PROGRAM (NEXT) > { Request for jump to supporting programs
+C The following data, through the blank card, is from 2nd subcase of DCNEW-3.
+JMARTI SETUP, 1.0, { Note use of PDT0 = 1 to allow reduction of order
+$ERASE
+BRANCH JDA LMA JDB LMB JDC LMC
+LINE CONSTANTS
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+TRANSPOSED
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK CARD ENDING CONDUCTOR CARDS OF &LINE CONSTANTS& CASE
+100. 5000.0 1 138. 1 1
+100. 60.00 1 138. 1 1
+100. .01 1 138. 1 9 10 1
+BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+BLANK CARD ENDING "LINE CONSTANTS" CASES
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C SELECT +3 -3
+ 1 .48D-7
+ .30 30 0 1 1 1 0
+ .30 30 0 1 1 1 0 .0
+$PUNCH, dc41d.pch !
+BLANK card ending JMARTI SETUP data cases { Last of supporting program data
+$CLOSE, UNIT=7 STATUS=KEEP { Disconnect file containing JMarti branch cards
+$INSERT, dc41d.pch, { Dynamic connection of disk file created 3 lines above
+ LMA 1000. { Resistive load at far end of 1st of 3 phases
+ LMB LMA { 2nd of 3 phases is terminated by the same R
+ LMC LMA
+BLANK card ending branch cards
+BLANK card ending switch cards
+14JDGA 303000. 60. 0. -1. .001
+14JDGB 303000. 60. -120. -1.
+14JDGC 303000. 60. 120. -1.
+BLANK card ending source cards
+ JDGA LMA JDGB LMB JDGC LMC
+BLANK card ending node names for selective voltage output
+ PRINTER PLOT
+ 144 1. 0.0 5.0 LMA LMB LMC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+$ENABLE { End discard of 4th subcase, which takes too long to execute
+BLANK
+
diff --git a/benchmarks/dc42.dat b/benchmarks/dc42.dat
new file mode 100644
index 0000000..191a6e0
--- /dev/null
+++ b/benchmarks/dc42.dat
@@ -0,0 +1,240 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-42
+C Test of batch-mode Fourier series and "X-Y PLOT" capability. Also, a
+C Type-97 staircase time-varying resistance element, and Type 1-10 source
+C is present. A Type-91 compensation-based nonlinear resistor was added.
+C For answer to Fourier series, see EMTP Rule Book, page 43-m, HWD example
+C 1st of 3 data subcases, of which only two are real (3rd is a near-dummy)
+CHANGE PRINTOUT FREQUENCY
+ 10 5
+ 1.0 60.
+ 1 1
+ VALUE 1.0
+ COS 1.0 1
+ SIN 1.0 1
+ GEN LOAD 1.0
+97LOAD -1. 1
+ 0.0 1.0
+ 2.01 0.5
+ 6.01 2.0
+ 7.01 1.E35
+ 9999
+ A1 A2 5.E+3 1
+ A2 5.E+3
+91A2 3333. 1
+ 300000.
+ 300. 0.0
+ 200. 3.0
+ 150. 6.0
+ 150. 1000.
+ 9999.
+BLANK card ends branch cards
+BLANK card ends switch cards (none, for this case)
+ 1VALUE
+14COS 4.0 .02 0.0
+14SIN 5.0 .02 -90.
+14GEN 100. 60. -1.
+14A1 620000. .06 -50. -1.
+BLANK card ends source cards
+C Total network loss P-loss by summing injections = 1.922250000000E+07
+C Step Time LOAD VALUE COS SIN GEN A2
+C 0 0.0 50. 0.0 0.0 0.0 100. 199264.159
+C Comment card. NUMDCD = 5527. |C Next come the data ca
+C Another input card for Type 1-10 sources. | 3.4
+C 1 1.0 50. 3.4 3.96845881 .626666168 100. 272691.058
+C Another input card for Type 1-10 sources. |.8485282
+C 2 2.0 50. .8485282 3.87433264 1.24344944 100. 307819.308
+C Another input card for Type 1-10 sources. | 0.0
+C 3 3.0 50. 0.0 3.71910594 1.84062276 100. 32112.3483
+ LOAD VALUE COS SIN GEN A2
+BLANK card ends requests for program outputs (here, just node voltages)
+C Next come the data cards for user-defined Type-1 source on node "VALUE":
+ 3.4
+.8485282
+ 0.0
+-.434314
+ -.2
+-.848528
+ -.4
+-1.56569
+ 3.41
+.8500000
+ 0.0
+-.430000
+ -.2
+ 9999
+C Last step: 60 60. 100. 0.0 1.23606798 4.75528258 100.
+C Last step continued ..... : -17025.944 1.E-33 -113.50629 -116.91148
+ PRINTER PLOT
+ FOURIER ON 10
+C Note HPI=7.6 is a special request for reduction of end-time HMAX until
+C a match with the HMIN point (for periodicity) is found.
+ 1437.6 1.5 12. VALUE
+C --- Back up the ending time from point number 11 to point number 8 in
+C 8.4852820634841920E-1 0.0E+00 -1.5656900405883790E0 3.4100000858306880E+00
+C Harmonic Cosine Sine Complex Fraction of
+C number coefficient coefficient amplitude fundamental
+C 0 1.01249525324E-01 0.00000000000E+00 1.01249525324E-01 0.086661418
+C 1 1.13313862336E+00 -2.84609199533E-01 1.16833451383E+00 1.000000000
+C 2 5.00001057982E-01 -9.02500022203E-01 1.03174965377E+00 0.883094389
+C 3 -2.84610506422E-01 -8.50297213563E-01 8.96665206061E-01 0.767473010
+C 4 -6.01250493899E-01 0.00000000000E+00 6.01250493899E-01 0.514621871
+ 143 5. 0.5 8.0 VALUE
+C Begin the Fourier series computation using 8 equidistant points. The first
+C 3.40000009536743 8.48528206348419E-1 -4.00000005960464E-1 -1.565690040588379
+C Harmonic Cosine Sine Complex Fraction of
+C number coefficient coefficient amplitude fundamental
+C 0 9.99995265156E-02 0.00000000000E+00 9.99995265156E-02 0.085748909
+C 1 9.99999101967E-01 6.00000909627E-01 1.16619007691E+00 1.000000000
+C 2 9.00000024587E-01 5.00001057982E-01 1.02956354939E+00 0.882843689
+C 3 8.00000947207E-01 4.00000906647E-01 8.94428443672E-01 0.766966262
+C 4 6.00000495091E-01 0.00000000000E+00 6.00000495091E-01 0.514496313
+ FOURIER OFF
+ 143 8. 0.0 50. COS { Axis limits: (-4.000, 4.000)
+ X-Y PLOT
+ 10. -5. 5.0
+ 13. -6.5 6.5
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First and only line of multi-line, 78-byte, graph subheading text.
+ 193 5. 0.0 55. COS SIN { Axis limits: (-6.500, 6.500)
+ CALCOMP PLOT { Preceding was a line printer plot; switch to vector graphics
+ X-Y PLOT Horizontal Axis label123
+ 10. -5. 5.0
+ 8. -6.0 6.0
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ 143 5. 0.0 55. COS SIN 16-byte Heading Y-axis label
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 4 subcases modifies preceding data for nice bar charts. As built
+C in this standard test case, both 5 (the original) and 13 vertical bars
+C result. Screen plotting of Salford is slowed slightly by HP-GL output
+C due to shading of hollow rectangular shells of bars by interior vertical
+C lines. This progress is made 25 December 1997 as this case is added,
+C forcing later cases down. See mention in January, 1998, newsletter.
+CHANGE PRINTOUT FREQUENCY
+ 5 5 20 20
+ 1.0 60.
+ 1 1
+ VALUE 1.0
+BLANK card ends branch cards
+BLANK card ends switch cards (none, for this case)
+ 1VALUE
+BLANK card ends source cards (here, just user-defined Type-1 --- inline below)
+ 1 { Request for all node voltages outputs (here, just one)
+C Next come the data cards for user-defined Type-1 source on node "VALUE":
+ 3.4
+.8485282
+ 0.0
+-.434314
+ -.2
+-.848528
+ -.4
+-1.56569
+ 3.41
+.8500000
+ 0.0
+-.430000
+ -.2
+ 9999
+ FOURIER ON 10 { For 5 vertical bars
+ 1437.6 1.5 12. VALUE { For 5 vertical bars
+C The preceding produces bars so wide that internal filling by 8 vertical
+C lines (drawn after the outline of a bar is drawn) still leaves lots of
+C empty space. Nonetheless, the effect in MS Word 7 for Win95 is good.
+C The following 15 bars look great in Word 7:
+ FOURIER ON 15 { For 13 vertical bars
+ 1433.0 1.5 25. VALUE { For 13 vertical bars
+ PRINTER PLOT { Toggle to line printer plotting for next subcase as b4 Jan, 97
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 4 subcases tests the use of the branch name "SSNAME" (variable
+C SSONLY of the STARTUP file). The Type-91 true-nonlinear R(t) of
+C the first subcase is repeated twice. The first copy is unchanged, so it
+C provides a reference: no nonlinear element current in the phasor soution
+C and flashover so it is present only beginning on step 5. This is node
+C A2. The second copy, on node B2, has low phasor voltage because of
+C an extra 300-ohm resistor added just for the phasor solution. Voltage
+C on step 0 thus is small (21 kV). But the 300-ohm resistor is removed
+C after the phasor solution, so voltage immediately rises to 240 kV on
+C step 1. Then, since the flashover voltage was reduced to 100 kV, we
+C have a flashover, and for step 2 onward of the 2nd copy, the Type-91 R
+C is connected. With both NL elements flashed over, the 2 solutions are
+C close, but not identical. This is because of the time shift of 3 steps
+C (remember, R vs. t characteristics begin at the instant of flashover).
+C Note that the following data puts the "PHASOR" resistor as the last
+C branch, so that the EMTP will erase it completely before the time-step
+C loop, which is most efficient. Identical answers have been obtained by
+C replacing the single 300-ohm branch by two 600-ohm branches which can be
+C mixed anywhere among the branch cards.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 0.5 3.0 { Floating-point misc. data card
+ 1 1 1 1
+ GEN A2 5.E+3 1
+ A2 5.E+3
+91A2 3333. 1
+ 300000. { Original element will be felt on step 5 (step 4 exceeds 300 kV)
+ 300. 0.0
+ 200. 3.0
+ 150. 6.0
+ 150. 1000.
+ 9999.
+ GEN B2 5.E+3 1
+ B2 5.E+3
+ B2 NAME PHASOR 300.
+91B2 3333. 1
+ 100000. { Reduced flashover voltage means R(t) will be present for step 2
+ 300. 0.0
+ 200. 3.0
+ 150. 6.0
+ 150. 1000.
+ 9999.
+BLANK card ends branch cards
+BLANK card ends switch cards (none, for this case)
+14GEN 620000. .06 -50. -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C GEN |A2 *B2 *
+C A2 |TERRA *TERRA *GEN *
+C B2 |TERRA *TERRA *TERRA *GEN *
+C TERRA |A2 *A2 *B2 *B2 *B2 *
+C --------------+------------------------------
+BLANK card ends source cards
+C Total network loss P-loss by summing injections = 5.560071428571E+07
+C GEN 398528.31800565 620000. 115.28854913735 179.35714285714
+C -474947.5547338 -50.0000000 -137.3955426194 -50.0000000
+ 1 { Request the output of all node voltages
+C Step Time B2 A2 GEN A2 B2
+C TERRA TERRA
+C 0 0.0 21349.73132 199264.159 398528.318 0.0 0.0
+C 1 0.5 240232.7915 240232.7915 480465.583 0.0 0.0
+C 2 1.0 29216.89903 272691.0576 545382.1152 0.0 97.38966342
+C 3 1.5 30079.72946 295489.107 590978.214 0.0 106.163751
+C 4 2.0 29669.33084 307819.3075 615638.615 0.0 111.2599907
+C 5 2.5 28113.16869 33133.37738 618489.7112 110.4445913 112.4526748
+C 6 3.0 25585.44821 30509.93568 599430.5009 107.6821259 109.6519209
+ CALCOMP PLOT
+ 2Plot of both Type-91 voltages
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+ 143 .3 0.0 3.0 A2 B2 Type-91 nodes Voltages in [v]
+ PRINTER PLOT
+ 143 .6 0.0 3.0 A2 B2 { Axis limits: (0.000, 3.078)
+$ABORT { Illustration of request to abort this subcase but continue with next
+BLANK card ending plot cards --- needed to exit plotting where KILL is checked
+C This and any later cards of data subcase should not be executed due to abort
+$WIDTH, 79 { Switch to narrow output so case summary statistics will be compact
+XXXXX XXXXX XXXXX { 1st of several dummy data cards that should be skipped over
+YYYYY YYYYY YYYYY { 2nd of several dummy data cards that should be skipped over
+ZZZZZ ZZZZZ ZZZZZ { 3rd of several dummy data cards that should be skipped over
+AAAAA aaaaa AAAAA { 4th of several dummy data cards that should be skipped over
+bbbbb BBBBB bbbbb { 5th of several dummy data cards that should be skipped over
+CCCCC ccccc CCCCC { 6th of several dummy data cards that should be skipped over
+BEGIN NEW DATA CASE
+C 4th of 4 subcases is here just to service preceding $ABORT. Next, halt.
+$STOP { Illustrate user-requested termination of execution via input card
+CHANGE PRINTOUT FREQUENCY { 1st of otherwise-legal card that will not be used
+ 10 5 { 2nd of otherwise-legal card that will not be used
+PRINTED NUMBER WIDTH, 13, 2, { 3rd of otherwise-legal card that will not be used
+$MONITOR { 4th of otherwise-legal card that will not be used
+DISK PLOT DATA { 5th of otherwise-legal card that will not be used
+
diff --git a/benchmarks/dc43.dat b/benchmarks/dc43.dat
new file mode 100644
index 0000000..63fcea5
--- /dev/null
+++ b/benchmarks/dc43.dat
@@ -0,0 +1,166 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-43
+C Dynamic arc modeling donated to ATP by Mustafa Kizilcay, Universitat
+C Hannover Institut fur Elektrische Energieversorgung, Welfengarten 1,
+C 3000 Hannover 1, WEST GERMANY. This data file consists of two data
+C cases that were adapted to ATP from Hannover's "M28." CDC by WSM and
+C Mustafa on October 23rd, 1986. Results were explained by Mustafa to
+C the 1986 LEC meeting that was held in Leuven on October 27th, 1986.
+C The 1st of 2 subcases illustrates current interruption in an inductiv
+C circuit consisting of a voltage source in series with an inductance
+C and the circuit breaker arc (a Type-91, TACS-controlled, time-varying
+C resistor). Only thermal behavior of circuit breaker is considered.
+C The time-step size DELTAT has been increased from .2E-7 sec in order
+C to speed the simulation. This introduces substantial error, but the
+C shapes of curves remain valid. See comments preceding plot cards.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+C .2E-7 .25E-3 { Original card. Note increase of DELTAT to speed simulation.
+ .6E-7 .24E-3 { Decrease TMAX slightly, and triple the step size
+ 1 3 1 1 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID
+ GALT +G
+90SCHLT
+99STROM = 1.E6 * ABS(SCHLT)
+99GSTAT = STROM * STROM / (170000. + 890. * STROM)
+99GKOR = 1.003 * GSTAT
+99SSGNL = ISTEP - 9.
+99G' 58+GSTAT 1.0 .29E-6SSGNL GKOR
+88LSGNL = G' .LE. 1.E-6 .OR. GALT .LE. 1.E-6
+88G = 1.E-6 * LSGNL + G' * NOT(LSGNL)
+98RB = INVRS(G)
+33RB G GSTAT STROM SCHLT SSGNL LSGNL G' GALT GKOR
+77RB 1.
+77G' 1.
+77G 1.
+77GALT 1.
+BLANK card ending all TACS cards
+ GEN IND 31.8
+ SCHLT 1.E-6 1
+ IND SCHLT 1.E10
+91IND SCHLT TACS RB { R(t) controlled by TACS variable "RB" } 2
+BLANK card ending branch cards
+ IND SCHLT -1. 1.E20
+BLANK card ending switch cards
+14GEN 141421.4 1. 179.928 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 2.504876348524E+05
+C GEN -141421.2883382 141421.4 885.90010697039 707796.06505328
+C 177.71532574734 179.9280000 707795.51064266 89.9282868
+C Step Time IND SCHLT IND GEN SCHLT
+C SCHLT TERRA
+C
+C TACS TACS TACS TACS TACS
+C STROM SCHLT SSGNL LSGNL G'
+C *** Phasor I(0) = 8.8590011E+02 Switch "IND " to "SCHLT " closed
+C 0 0.0 0.0 .8859001E-3 .8859001E-3 -141421.288 885.900107
+C 0.0 0.0 0.0 0.0 1.0
+C *** Open switch "IND " to "SCHLT " after 6.00000000E-08 sec.
+C 1 .6E-7 0.0 .8856333E-3 .8856333E-3 -141421.288 885.6332743
+C 885.6332743 .8856333E-3 -8. 0.0 .8210062181
+C 2 .12E-6 1078.390644 .8853654E-3 1078.391529 -141421.288 885.3654244
+C 885.3654244 .8853654E-3 -7. 0.0 .8207138637
+ 1
+C 4000 .24E-3 -141421.396 -.141436E-6 -141421.396 -141421.396 -.141435538
+C .1414355377 -.141436E-6 3991. 1.0 .1175836E-6
+C Variable max : 21435.85382 .8859001E-3 21435.85383 -141421.288 885.900107
+C 885.6332743 .8856333E-3 3991. 1.0 1.0
+C Times of max : .19614E-3 0.0 .19614E-3 0.0 0.0
+C .6E-7 .6E-7 .24E-3 .20172E-3 0.0
+C Variable min : -164752.212 -.120238E-5 -164752.212 -141421.4 -1.20237999
+C 0.0 -.120238E-5 -8. 0.0 .1175836E-6
+C Times of min : .20136E-3 .19752E-3 .20136E-3 .19998E-3 .19752E-3
+C 0.0 .19752E-3 .6E-7 0.0 .24E-3
+ PRINTER PLOT
+C Original Hannover simulation with DELTAT = .2E-7 sec has limits for this 1st
+C plot variable (IND, SCHLT) of: minimum = -167207.752 at time 0.19952 msec;
+C maximum = 23261.09003 at time 0.19618 msec.
+ 185 2.186.204. IND SCHLT { Plot limits : (-1.645, 0.214)
+C Original Hannover simulation with DELTAT = .2E-7 sec has identical minimum
+C and maximum for 2nd plot, since R varies between model limits of 1.0 & 1.E6:
+ 195 2.192.204. TACS RB { Plot limits : (0.000, 1.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C Second of two subcases. Here the dynamic arc model is imbedded in a more
+C complicated problem. A short transmission line (modeled by single-phase,
+C cascaded Pi-circuits) produces arc reignition. Arc model has conductance
+C dependent parameters P(G) & TAU(G). TACS solution according to A. Gruetz.
+PRINTED NUMBER WIDTH, 13, 2,
+C 0.1E-6 400.E-6
+ .2E-6 400.E-6
+ 1 3 1 1 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+ GA +G
+90IND
+90SCHLT
+99STRM = 1.E6 * ABS(IND - SCHLT)
+99GST = STRM**1.351 / 81686.
+99GKOR = 1.0134 * GST
+88G" = GST - (GST-GA)*EXP(-DELTAT*INVRS(1.95E-6*GA**(-0.2)))
+88G' 60+GKOR +GKOR +G" 19. ISTEP
+88LSGNL = G' .LE. 1.E-6 .OR. GA .LE. 1.E-6
+88G = 1.E-6*LSGNL + G'*NOT(LSGNL)
+98RB = INVRS(G)
+33RB STRM GST G GA G' G" LSGNL GKOR
+77G 1.
+77G' 1.
+77RB 1.
+77GA 1.
+BLANK CARD ending TACS data
+ GEN IND 8.0
+ IND 15. 20.
+ 1LANF LPI2 0.15 0.003
+ 1LPI2 LPI3 LANF LPI2
+ 1LPI3 LPI4 LANF LPI2
+ 1LPI4 LPI5 LANF LPI2
+ 1LPI5 LPI6 LANF LPI2
+ 1LPI6 LANF LPI2
+ IND SCHLT 1.E-6 1
+ SCHLT LANF 1.E10
+91SCHLT LANF TACS RB { R(t) controlled by TACS variable "RB" } 2
+BLANK card ending branch cards
+ SCHLT LANF -1. 1.E20
+BLANK card ending switch cards
+14GEN 177720. 50. -3.6 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 9.711630317140E+04
+C
+C GEN 177369.31017627 177720. -3989.277855594 63550.495266844
+C -11159.13113075 -3.6000000 -63425.16149646 -93.5990147
+ GEN IND SCHLT LANF
+C Step Time SCHLT GEN IND SCHLT LANF
+C LANF
+C
+C TACS TACS TACS TACS TACS
+C GST G GA G' G"
+C *** Phasor I(0) = -4.0068784E+03 Switch "SCHLT " to "LANF " closed
+C 0 0.0 0.0 177369.3102 17964.49305 17964.49706 17964.49706
+C 0.0 1.0 1.0 1.0 0.0
+C *** Open switch "SCHLT " to "LANF " after 2.00000000E-07 sec.
+C 1 .2E-6 0.0 177370.011 17964.56422 17964.56822 17964.56822
+C .9008627603 .9129343213 1.0 .9129343213 .990336131
+C 2 .4E-6 -4320.27872 177370.7111 17143.06414 17143.06808 21463.3468
+C .8830444741 .8948772701 .9129343213 .8948772701 .9100706638
+C 3 .6E-6 -4491.59677 177371.4105 18332.40835 18332.41237 22824.00913
+C .9058958171 .918034821 .8948772701 .918034821 .8959289226
+BLANK card ending selective node voltage outputs
+C 2000 .4E-3 4723.577299 177369.3102 26328.99868 26328.99512 21605.41783
+C .7689432041 .7551157337 .7537084043 .7551157337 .7551157337
+C Variable max : 34213.83832 177720. 39750.9701 39750.96985 28499.88741
+C .9058958171 1.0 1.0 1.0 .990336131
+C Times of max : .2624E-3 .2E-3 .282E-3 .282E-3 .3062E-3
+C .6E-6 0.0 0.0 0.0 .2E-6
+C Variable min : -7935.82748 177369.3102 11591.62848 11591.62859 -3236.73514
+C 0.0 .6352189E-3 .6352189E-3 .6352189E-3 0.0
+C Times of min : .1686E-3 .4E-3 .1754E-3 .1754E-3 .1916E-3
+C 0.0 .2392E-3 .2394E-3 .2392E-3 0.0
+ PRINTER PLOT
+C Original Hannover simulation with DELTAT = .1E-6 sec has limits for this
+C plot that are very close: Plot limits : (-0.328, 3.991)
+C maximum = at time msec.
+ 14535. 350. SCHLT LANF Plot limits : (-0.323, 3.975)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK CARD
+
diff --git a/benchmarks/dc44.dat b/benchmarks/dc44.dat
new file mode 100644
index 0000000..e81d208
--- /dev/null
+++ b/benchmarks/dc44.dat
@@ -0,0 +1,51 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-44
+C Test of Type-16 controlled dc voltage source constructed and carefully
+C validated by Prof. Dommel. To compare, punch a value for the isolation
+C resistance R-epsiln (cols. 51-60 of 2nd Type-16 source card) equal to as
+C small a resistor as can be tolerated (1.E-8 is fine for 60-bit numbers).
+PRINTED NUMBER WIDTH, 13, 3, { Request 13-column output, with 3 separator blanks
+ .000050 .300
+ 1 5 1 1 -1
+ 10 10 100 100
+ VR A 0.5
+ GR 0.5
+BLANK card ending all branches
+BLANK card ending (here non-existent) switches
+11A -1 -1000.
+13A -1 250. 0.0 0.1 0.0 0.2 .01
+16VR 1 1.39 7380. 4.4 .040 .0103 1000.
+16GR -148000. 14800. -70000. 70000. 1.E-8 0.0 3
+14A -1 -1000. .001 0.0 0.0 0.0 -1. 1.E-6
+C The following forward and reverse flows are for 1st phasor branch:
+C VR 6879.99999 6879.99999 1000. 1000. .3439999995E7
+C 0.0 0.0 0.0 0.0 0.0
+C
+C A 6379.99999 6379.99999 -1000. 1000. -.3189999995E7
+C 0.0 0.0 0.0 180.0000 0.0
+BLANK card ending sources
+C Total network loss P-loss by summing injections = 6.060077433932E+07
+C
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C ...... TYP-16 -1.00000000E+03 0.00000000E+00 1.00000000E+03
+C
+C Step Time GR GR TYP-16 ...... VR
+C VR
+C *** Phasor I(0) = -1.0000000E+03 Switch "......" to "TYP-16" closed
+C 0 0.0 -7380. -500. -500.00001 -500.00001 6879.99999
+C 1 .5E-4 -7380. -500. -500.00001 -500.00001 6879.99999
+C 2 .1E-3 -7380. -500. -500.00001 -500.00001 6879.99999
+ 1
+C Final step: 6000 0.3 15276.8738 -612.5 -612.50001
+C Final step (cont.): -612.50001 -15889.374 -16501.874 1224.99999
+C Variable maxima : 15276.8738 -375. -375.00001 -375.00001 69628.6607
+C Times of maxima : 0.3 .11 .11 .11 .09115
+C Variable minima : -70027.223 -612.5 -612.50001 -612.50001 -15889.374
+C Times of minima : .09115 0.3 0.3 0.3 0.3
+ PRINTER PLOT { Axis limits: (-1.493, 7.000)
+ 18430. 0.0300. VR GR Source Voltage Voltage in volts
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc45.dat b/benchmarks/dc45.dat
new file mode 100644
index 0000000..d06f9be
--- /dev/null
+++ b/benchmarks/dc45.dat
@@ -0,0 +1,288 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-45
+C 1st half of split version of DC-33 . Rather than use TACS to integrate
+C flux during the simulation, that operation is now posponed until the post-
+C processing of compansion case DC-46. Connection is via LUNIT4 plot file.
+C Total of 4 subcases.
+C DISK PLOT DATA { Toggle the Apollo default of LUNIT4 = -4 to +4 (use disk)
+C $CLOSE, UNIT=4 STATUS=DELETE { Destroy empty date/time plot file of "SYSDEP"
+C $OPEN, UNIT=4 FILE=DC45TO46.pl4 ! { Expected to be C-like (for L4BYTE = 1 )
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .050
+ 1 1 1 1 1 -1 0 2
+ 5 5 20 20 100 100
+96 GEN 8888. 1.E-9 1
+ 1.0 -0.7
+ 2.0 0.9
+ 3.5 1.0
+ 9999.
+BLANK card ending branch cards
+BLANK card ending (here non-existent) switch cards
+14GEN 377. 60. -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses
+C --------------+------------------------------
+C GEN |TERRA *TERRA *
+C TERRA |GEN *GEN *
+C --------------+------------------------------
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 7.106450000000E-06
+C ---- Initial flux of coil " " to "GEN " = 1.00000000E-09
+C Inject: GEN 377. 377. .377E-16 2.6786345332877 .710645E-14
+C Inject: 0.0 0.0 -2.678634533288 -90.0000000 504.92260952473
+C Step Time GEN TERRA
+C GEN
+C 0 0.0 377. 0.0
+C 1 .5E-4 376.9330268 -.523564601
+C 2 .1E-3 376.7321312 -1.04694318
+C 3 .15E-3 376.3973844 -1.02374791
+C 4 .2E-3 375.9289054 -1.04551661
+C 5 .25E-3 375.3268607 -1.06725433
+C 10 .5E-3 370.3222935 -1.17520854
+ 1
+C 800 .04 -304.999407 1.070136441
+C 900 .045 -116.499407 2.765761443
+C 1000 .05 377. -1.4375
+C Variable maxima : 377. 3.499909256
+C Times of maxima : 0.0 .0125
+C Variable minima : -377. -3.49990923
+C Times of minima : .025 .0375
+ PRINTER PLOT
+ 194 4. 0.0 20. GEN { Axis limits: (-3.500, 3.500)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 4 subcases is unrelated to 1st (no hysteresis). But there is a
+C nonlinear inductor (Type-93, true-nonlinear element). This example
+C illustrates TACS control of the optional shunt current source that is
+C declared by the second data field (columns 21-26) of the TACS CONTROL
+C declaration. Since the controlling TACS signal is identically unity,
+C this injects an extra amp of current into node "TRAN" beginning on
+C the first time step. This would produce a discontinuity in the branch
+C current (GEN, TRAN) at time zero, were it not for exact cancellation
+C by a one-amp Type-11 current source that is connected to node "TRAN".
+C It will be noted that the current (GEN, TRAN) continues smoothly out
+C of the phasor solution. The current of the NL reactor (TRAN, TERRA)
+C shows a one-amp jump beginning on the first step, due to the internal,
+C TACS-controlled source (remember, the inductor current is continuous).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000200 .020
+ 1 1 1 1 1 -1 0 2
+ 5 5 10 10
+TACS HYBRID { We use TACS only to produce signal that controls shunt current
+99SHUNT = 1.0 { Unit current (dc source) is inserted in parallel with ZnO
+33SHUNT { Output only this one TACS variable that controls NL shunt current
+77SHUNT 1.0 { Initial condition required for smooth electrical step 1
+BLANK card ending all TACS data
+ GEN TRAN 2.0 1
+93TRAN 1.0 1.0 1
+ 0.0 0.0
+ 0.9 0.9
+ 2.0 1.1
+ 10. 1.2
+ 9999
+ TACS CONTROL SHUNT { Use 2nd of 3 names: for TACS-controled shunt current
+BLANK card ending branch cards
+BLANK card ending (here non-existent) switch cards
+14GEN 377. 60. -1.
+11TRAN -1 -1.0 { 1-amp external dc current cancels internal NL source
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.000018973436E+00
+C
+C GEN 377. 377. .00530514044263 1.000009486673 1.0000189734357
+C 0.0 0.0 -.9999954144499 -89.6960393 188.49913562381
+C
+C ---- Initial flux of coil "TRAN " to " " = 5.30514044E-03
+C
+C Step Time TRAN GEN TRAN GEN TACS
+C TERRA TRAN SHUNT
+C 0 0.0 376.9893897 377. .0053051404 .0053051404 1.0
+C 1 .2E-3 375.7677437 375.9289054 -.919419146 .0805808538 1.0
+ 1
+C 100 .02 114.1251632 116.4994069 .1871218422 1.187121842 1.0
+C Variable max : 376.9893897 377. .4424771753 1.442477175 1.0
+C Times of max : 0.0 0.0 .0042 .0042 0.0
+C Variable min : -376.817325 -376.880939 -2.44858983 -1.44858983 1.0
+C Times of min : .0084 .0084 .0124 .0124 0.0
+ PRINTER PLOT
+C -0.653 -0.353 -0.054 0.245 0.545 0.844 1.143 1.442
+C ------+---------+---------+---------+---------+---------+---------+---------+
+C BBBBBBBBBBBBBBBBBBBBBBBBBBBB*AA
+C BBBBB | AAAAAA
+C BBBBBBB | AAAAAAAA
+C BBBBB | AAAAA
+C BBBB | AAAA
+C BBBBBBBBBBBBBB AAAAAAAAAAAAAA
+C | BBB AAA
+C | BBBBBBBBBB AAAAAAAAA
+C BBBBBB AAAAAAA
+C BBBBB | AAAA
+C BBBBB | AAAAA
+C BBBBBBBB | AAAAAAAA
+C BB |AAAAAA
+ 194 4. 0.0 20. GEN TRAN TRAN { Axis limits: (-2.449, 1.442)
+ 144 4. 0.0 20. TRAN { Axis limits: (-3.768, 3.770)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 4 subcases is related to 2nd. There is the same nonlinear L(i)
+C inductor (Type-93, true-nonlinear element). This example illustrates
+C optional TACS control of the (i, PSI) characteristic by multiplicative
+C scaling. The TACS multiplier of "i" is declared by the third data
+C field (columns 27-32) of the "TACS CONTROL" card. For this example,
+C the TACS variable is FACTOR, which varies smoothly (via one half a
+C cosine cycle) from 2.0 to 1.0, thereby reducing the current that is
+C drawn by approximately a factor of two. The series resistor is small,
+C to it does not drop much voltage. As a result, the voltage, and hence
+C the peak flux of the inductor, are nearly constant. Only the current
+C increases by about a factor of two over the 10 msec "ramp" time. The
+C presence of resistance merely reduces this ideal result: the factor is
+C less than two --- maybe 1.5 or so.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000200 .030
+ 1 1 1 1 1 -1 0 2
+ 5 5 49 1 55 5
+TACS HYBRID { We use TACS only to produce signal that controls shunt current
+99FACTOR = 1.5 + COSINE + STEP { Scaling factor changes from 3 to 1 over 0-10ms
+14COSINE 0.5 50. { Smooth transition over 1st 10 msec } .010
+11STEP -0.5 50. { Hold COSINE value after 10 ms} .010
+33FACTORSTEP COSINE { Output only the 3 user-defined TACS variables
+77FACTOR 2.0 { Initial condition required for smooth electrical step 1
+BLANK card ending all TACS data
+ GEN TRAN 20. 1
+93TRAN 2.0 1.0 1
+ 0.0 0.0
+ 0.9 0.9
+ 2.0 1.1 { Execution does reach this 2nd seg of (i, PSI)
+ 9999
+ TACS CONTROL FACTOR { Use 3rd of 3 names: TACS-scaled curve (x,y)
+BLANK card ending branch cards
+BLANK card ending (here non-existent) switch cards
+14GEN 350. 50. -1.0
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.885536661314E+01
+C ---- Initial flux of coil "TRAN " to " " = 1.39586762E-01
+C GEN 350. 350. .27917352350367 2.2103250125975 48.855366613143
+C 0.0 0.0 -2.19262372629 -82.7439171 383.7091521007
+C
+C Step Time TRAN GEN TRAN GEN TACS
+C TERRA TRAN FACTOR
+C
+C 0 0.0 344.4165295 350. .2791735235 .2791735235 2.0
+C 1 .2E-3 340.9842812 349.3093549 .4162536857 .4162536857 1.999013364
+C 2 .4E-3 336.2117309 347.2401455 .5514207281 .5514207281 1.996057351
+C
+C 49 .0098 -347.838306 -349.309355 -.073552423 -.073552423 1.000986636
+C 50 .01 -347.141951 -350. -.14290245 -.14290245 1.0
+C 51 .0102 -345.0697 -349.309355 -.211982761 -.211982761 1.0
+ 1
+C 150 .03 -347.789928 -350. -.110503595 -.110503595 1.0
+C Variable maxima : 349.3458152 350. 3.110373844 3.110373844 2.0
+C Times of maxima : .0198 0.0 .0042 .0042 0.0
+C Variable minima : -348.491847 -350. -2.24512833 -2.24512833 1.0
+C Times of minima : .0298 .01 .0146 .0146 .01
+ PRINTER PLOT
+ 194 3. 0.0 30. GEN TRAN TACS FACTOR { Axis limits: (-2.245, 3.110)
+C CALCOMP PLOT { Repeat this same plot, only in high-resolution mode
+C 194 3. 0.0 30. GEN TRAN TACS FACTOR
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 4 subcases is related to 3rd. That nonlinear inductor L(i)
+C (Type-93, true-nonlinear element) has been made linear by reduction of
+C the flux-current characteristic to a single point. The result is a
+C TACS-controlled linear inductor L(t). Except that here dynamics are
+C involved (because L stores energy, and has history), this is the
+C inductive equivalent of commonly-used TACS-controlled resistance R(t).
+C Between time 0 and 100 msec, inductance is to be varied sinusoidally
+C between 125 mH and 500 mH. Disconnected branches BEGIN and END
+C correspond to these two limiting values, and they define assymptotes
+C of the transition between the two. The graph is smooth, and it shows
+C a smooth transition between the two steady-state assymptotes.
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .000400 .120
+ 1 1 1 1 1 -1
+ 5 5
+TACS HYBRID { We use TACS only to produce signal that controls shunt current
+99FACTOR = 2.5 + COSINE + STEP { Scale factor changes from 4 to 1 over 0-100 ms
+14COSINE 1.5 5.0 { Smooth transition over 1st 100 msec } .100
+11STEP -1.5 { Hold COSINE valu after 100 ms} .100
+33FACTORSTEP COSINE { Output only the 3 user-defined TACS variables
+77FACTOR 4.0 { Initial condition to make output signal smooth at t = 0
+77COSINE 1.5 { Initial condition to make output signal smooth at t = 0
+BLANK card ending all TACS data
+ GEN TRAN 35. { R of series R-L branch to ground } 1
+93TRAN 8.0 1.0 { i-steady and PSI-steady for phasors
+ 0.0 0.0 { Symmetric curve always begins at origin 0,0
+ 2.0 1.0 { Single (i, PSI) point defines L b4 FACTOR
+ 9999 { Terminate the characteristic after just the one point
+ TACS CONTROL FACTOR { Use 3rd of 3 names: TACS-scaled curve (x,y)
+C That is all we need for the TACS-controlled L of series R-L circuit. But
+C for a nice plot, we want assymptotic curves. The first in in the steady
+C state, corresponding to i-steady and PSI-steady of the Type-93 branch
+C card. This is L = PSI / i = 1.0 / 8.0 = 125 mH. Note that this matches
+C the initial signal. Initial FACTOR = 4.0 and the characteristic gives
+C L = PSI / i = 1.0 / 2.0 = 500 mH. Dividing by FACTOR gives 125 mH as the
+C initial inductance within the dT loop. So, show phasor flow:
+ GEN BEGIN 35. 125. { Branch flow is phasor solution
+C That was for the start. Next, we want the termination, which corresponds
+C to FACTOR = 1.0 so no scaling. I.e., L = 500 mH (the characteristic):
+ GEN END 35. 500. { Branch flo is assymptote for infinite t
+BLANK card ending branch cards
+C Switches are used only to measure the currents through the preceding two
+C branches. These are the two assymptotic signals of following plot:
+ BEGIN MEASURING 1
+ END MEASURING 1
+BLANK card ending switch cards
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C GEN |TRAN *BEGIN *END *
+C TRAN |TERRA *GEN *
+C BEGIN |TERRA *GEN *
+C END |TERRA *GEN *
+C TERRA |TRAN *BEGIN *END *
+C --------------+------------------------------
+14GEN 420. 50. -1.0
+C TRAN 234.06699294777 313.5412844237 5.3123716300638 7.9842632447061 -.677791157E-13 -.677791157E-13
+C 208.61634607684 41.7095865 -5.960467030767 -48.2904135 1251.698076461 1251.6980765
+C
+C TERRA 0.0 0.0 -5.312371630064 7.9842632447061 0.0
+C 0.0 0.0 5.9604670307669 131.7095865 0.0
+C Total network loss P-loss by summing injections = 2.350389825256E+03
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C BEGIN 5.31237163E+00 -5.96046703E+00 7.98426324E+00 -48.2904 0.00000000E+00 0.00000000E+00
+C END 5.67589241E-01 -2.54733456E+00 2.60980285E+00 -77.4387 0.00000000E+00 0.00000000E+00
+BLANK card ending source cards
+ GEN TRAN { Output node voltages for the controlled branch L(t) only
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 3 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time GEN TRAN BEGIN END GEN TACS TACS TACS
+C TERRA TERRA TRAN FACTOR STEP COSINE
+C *** Phasor I(0) = 5.3123716E+00 Switch "BEGIN " to " " closed in the steady-state.
+C *** Phasor I(0) = 5.6758924E-01 Switch "END " to " " closed in the steady-state.
+C 0 0.0 420. 234.06699 5.3123716 .56758924 5.3123716 4.0 0.0 1.5
+C 1 .4E-3 416.68817 206.10551 6.0166476 .88197067 6.0166476 3.9998816 0.0 1.4998816
+C 2 .8E-3 406.80493 174.8932 6.6262352 1.1824658 6.6260494 3.9995263 0.0 1.4995263
+C 3 .0012 390.50612 140.93094 7.1314997 1.464335 7.1307196 3.9989342 0.0 1.4989342
+BLANK card ending node voltage outputs
+C 290 .116 129.78714 208.41029 -4.028677 -2.244816 -2.246376 1.0 -1.5 0.0
+C 295 .118 339.78714 376.14579 .78854743 -1.037462 -1.038819 1.0 -1.5 0.0
+C 300 .12 420. 400.22543 5.3045736 .56616677 .5649877 1.0 -1.5 0.0
+C Variable maxima : 420. 409.93775 7.9767416 2.6063662 7.9698488 4.0 0.0 1.5
+C Times of maxima : 0.0 .0992 .0028 .0044 .0028 0.0 0.0 0.0
+C Variable minima : -420. -409.6697 -7.973184 -2.60532 -7.845698 1.0 -1.5 -1.499882
+C Times of minima : .01 .1092 .1128 .1144 .0128 0.1 0.1 .0996
+ CALCOMP PLOT
+C Orlando Hevia in Santa Fe, Argentina, supplied the following one-line
+C correction in E-mail dated 10 January 2007. He learned of the bad ATP data
+C during experimentation with the new GNU F95 compiler, which choked on this:
+C NOTE A MISTAKE IN DATA 120. IS ONE COLUMN TOO TO THE RIGHT
+C DATA FM1180 / '( I2, 2I1, E3.0, 2E4.0, E5.0, E4.0, 4A6, 2A16 )' /
+C -=---====----=====----
+C 19412. 0.0 120. BRANCH Vary linear L Inductor current
+ 19412. 0.0120. BRANCH Vary linear L Inductor current
+ BEGIN END GEN TRAN TACS FACTOR
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc46.dat b/benchmarks/dc46.dat
new file mode 100644
index 0000000..0f7b92b
--- /dev/null
+++ b/benchmarks/dc46.dat
@@ -0,0 +1,260 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-46
+C This is the 2nd half of the DC-45/46 matched pair, which together give
+C an approximation to the total of DC-33. Postprocessing using TACS is
+C involved. But note that here we skip every other point. Also, we use
+C DELTAT is an independent, predictable fashion, as the named delay on
+C a supplemental device that delays the signal GEN by one time step.
+C For answers that exactly agree with DC-33, decrease DELTAT from 100
+C to 50 microsec, and convert ",2," to ",1," on POSTPROCESS card.
+C 26 June 1995, modify as will be described in the July newsletter.
+C Original data case will be copied below. New 2nd subcase added.
+C --- template for next card. MULPPF LUNPPF L63TYP
+POSTPROCESS PLOT FILE 2 63 3
+$OPEN, UNIT=63 FILE=[]dc45.pl4 ! { Expected to be C-like (L4BYTE = 1)
+ .000100 .050 { Note DELTAT is twice that of DC-45, since use every 2nd step
+ 1 1 0 0 1 -1 0 2
+ 5 5 20 20 50 50
+TACS STAND ALONE
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+ 1NRG +POWER
+ 1.0
+ 0.0 1.0
+11GEN 1.0
+11CURR 2.0
+99POWER = GEN * ( -CURR )
+33GEN CURR POWER FLUX GEN_1 NRG
+C The following transport delay copies GEN, only delays the output by DELTAT
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+99GEN_1 53+GEN { Type-53 supplemental device with named delay} .001 DELTAT
+C Step Time GEN CURR POWER FLUX GEN_1
+C 0 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 1 1.00000E-04 3.76732E+02-1.04694E+00 3.94417E+02 1.88366E-02 0.00000E+00
+C 2 2.00000E-04 3.75929E+02-1.04552E+00 3.93040E+02 5.64697E-02 3.76732E+02
+C 3 3.00000E-04 3.74591E+02-1.08895E+00 4.07913E+02 9.39957E-02 3.75929E+02
+BLANK card ending all TACS data cards
+C 400 4.00000E-02 -3.04999E+02 1.07014E+00 3.26391E+02 5.68879E-01-2.96431E+02
+C 450 4.50000E-02 -1.16499E+02 2.76576E+00 3.22210E+02-9.69816E-01-1.29930E+02
+C 500 5.00000E-02 3.77000E+02-1.43750E+00 5.41938E+02-1.88500E-02 3.76732E+02
+C Row Name Minimum Maximum Time of min
+C 1 GEN -3.7700000000E+02 3.7700000000E+02 0.025000
+C 2 CURR -3.4999091625E+00 3.4999091625E+00 0.037500
+C 3 POWER -3.4019847371E+02 5.8499138215E+02 0.005200
+C 4 FLUX -1.0187551143E+00 9.8105511427E-01 0.012500
+C 5 GEN_1 -3.7700000000E+02 3.7697024536E+02 0.025100
+C 6 NRG 0.0000000000E+00 1.3570878894E+01 0.000000
+ PRINTER PLOT
+ 144 2. 0.0 20. POWER { Axis limits: (-3.402, 5.850)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DC-46
+C 2nd of 5 subcases produces the same solution, but illustrates the new
+C Type-25 TACS sources within a TACS HYBRID framework. Zero for LUNPPF
+C switches the I/O unit from 22 (LUNIT2 of preceding case) to the default
+C number 63. The $OPEN must follow the PPF declaration that makes
+C LUNPPF = 63 since for C-like files, this is needed for CIMAG2 to
+C define the handle LHTACS as required by POSTPF (POSTP1 & POSTP2).
+$CLOSE, UNIT=63 STATUS=KEEP { Disconnect file of preceding subcase
+C Template for next card. MULPPF LUNPPF L63TYP
+POSTPROCESS PLOT FILE 2 3
+$OPEN, UNIT=63 FILE=[]dc45.pl4 ! { Expected to be C-like (L4BYTE = 1)
+ .000100 .050 { Note DELTAT is twice that of DC-45, since use every 2nd step
+ 1 1 0 0 1 -1 0 2
+ 5 5 20 20 50 50
+TACS HYBRID
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+ 1NRG +POWER
+ 1.0
+ 0.0 1.0
+25GEN 1.0 { 1st of 2 sources is defined by 1st signal of .PL4 file
+25CURR 2.0 { 2nd of 2 sources is defined by 2nd signal of .PL4 file
+99POWER = GEN * ( -CURR )
+33GEN CURR POWER FLUX GEN_1 NRG
+C The following transport delay copies GEN, only delays the output by DELTAT
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+99GEN_1 53+GEN { Type-53 supplemental device with named delay} .001 DELTAT
+BLANK card ending all TACS data cards
+ BUS3 1.0
+BLANK card ending electric network branches
+BLANK card ending switches
+11BUS3 1.0
+BLANK card ending electric network source cards.
+BLANK card ending node voltage outputs
+ PRINTER PLOT
+ 194 2. 0.0 20. TACS POWER
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DC-46
+C 3rd of 5 subcases produces the same solution, but illustrates the new
+C connection to a plot file from MODELS. Just like with TACS, first line
+C of plot data at time t=0 is ignored. It is not required to use MODELS
+C as STAND ALONE, but can also be mixed with solution of a circuit.
+C Template for next card. MULPPF LUNPPF L63TYP
+POSTPROCESS PLOT FILE 2 63 3
+$OPEN, UNIT=63 FILE=[]dc45.pl4 ! { Expected to be C-like (L4BYTE = 1)
+ .000100 .050 { Note DELTAT is twice that of DC-45, since use every 2nd step
+ 1 1 0 0 1 -1 0 2
+ 5 5 20 20 50 50
+MODELS STAND ALONE
+INPUT gen {PL4(1)}, curr {PL4(2)}
+MODEL postprocess_example
+ INPUT voltage, current
+ VAR flux, energy, power, gen_1
+ INIT
+ integral(voltage) := 0
+ integral(power) := 0
+ histdef(voltage) := 0 -- needed for the delay function at t=0
+ ENDINIT
+ EXEC
+ flux := integral(voltage)
+ energy := integral(power)
+ power := voltage * current
+ gen_1 := delay(voltage, timestep)
+ ENDEXEC
+ENDMODEL
+USE postprocess_example AS test
+ INPUT voltage := gen, current := -curr
+ENDUSE
+RECORD gen AS gen curr AS curr
+ test.power AS power test.flux AS flux
+ test.gen_1 AS gen_1 test.energy AS nrg
+ENDMODELS
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 5 subcases is the same as the first except that a Pisa-format
+C .PL4 file is being used rather than a conventional, old, C-like .PL4
+C 12 March 2002, PPF was made compatible with Pisa-format C-like .PL4
+C files. In case the unit-63 .PL4 file is missing, it can be created
+C easily enough by simulation of DC-45. Make sure NEWPL4 in STARTUP
+C has value 2 before the simulation begins, however. When complete,
+C rename DC45.PL4 to DC45PISA.PL4. For PPF use, note that L63TYP
+C has been changed from value 3 (conventional C-like file) to value 4
+C (Pisa-format C-like):
+C --- template for next card. MULPPF LUNPPF L63TYP
+POSTPROCESS PLOT FILE 2 63 4 { 4 ==> Pisa-format
+$OPEN, UNIT=63 FILE=[]dc45pisa.pl4 ! { Expected to be C-like (L4BYTE = 1)
+C Note about preceding: Use of "[]" first became available for a $OPEN
+C file name on 14 December 2002. Following subcase also illustrates.
+ .000100 .050 { Note DELTAT is twice that of DC-45, since use every 2nd step
+ 1 1 0 0 1 -1 0 2
+ 5 5 20 20 50 50
+TACS STAND ALONE
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+ 1NRG +POWER
+ 1.0
+ 0.0 1.0
+11GEN 1.0
+11CURR 2.0
+99POWER = GEN * ( -CURR )
+33GEN CURR POWER FLUX GEN_1 NRG
+C The following transport delay copies GEN, only delays the output by DELTAT
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+99GEN_1 53+GEN { Type-53 supplemental device with named delay} .001 DELTAT
+BLANK card ending all TACS data cards
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 5 subcases is the same as the first except that a widexx-format
+C .PL4 file is being used rather than a conventional, old, C-like .PL4
+C 11 December 2002, PPF was made compatible with widexx-format .PL4 file.
+C In case the unit-63 .PL4 file is missing, it can be created easily
+C Make sure FMTPL4 in STARTUP has value "wide11" before the simulation
+C begins, however. When complete, rename DC45.PL4 to DC45WIDE.011
+C For PPF use, note that L63TYP has been changed from value 3 (for
+C conventional C-like file) to value 5 (widexx-format). About the 11,
+C it should be explained that this is the program limit for optimal
+C encoding. A better comparison requires 12, but if used, ATP will
+C drop the optimal and switch to normal E-field encoding. So, a column
+C width of 11 is used to produce the maximum precision while retaining
+C the desired optimal encoding. Using Mike Albert's free FC then will
+C show perfect agreement between this .LIS output and the .LIS output
+C of the first subcase except for 2 columns, which will differ in the
+C final digit or two. Look for newsletter writing on this subject in
+C the April, 2003, issue or later. Mustafa Kizilcay made the request
+C for widexx compatibility, and this data proves that it works. WSM.
+C --- template for next card. MULPPF LUNPPF L63TYP
+POSTPROCESS PLOT FILE 2 63 5
+$OPEN, UNIT=63 FILE=[]dc45wide.011 STATUS=OLD FORM=FORMATTED !
+ .000100 .050 { Note DELTAT is twice that of DC-45, since use every 2nd step
+ 1 1 0 0 1 -1 0 2
+ 5 5 20 20 50 50
+TACS STAND ALONE
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+ 1NRG +POWER
+ 1.0
+ 0.0 1.0
+11GEN 1.0
+11CURR 2.0
+99POWER = GEN * ( -CURR )
+33GEN CURR POWER FLUX GEN_1 NRG
+C The following transport delay copies GEN, only delays the output by DELTAT
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+99GEN_1 53+GEN { Type-53 supplemental device with named delay} .001 DELTAT
+BLANK card ending all TACS data cards
+ PRINTER PLOT
+ 144 2. 0.0 20. POWER { Axis limits: (-3.402, 5.850)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+
+
+BEGIN NEW DATA CASE
+C BENCHMARK DC-46
+C This is the 2nd half of the DC-45/46 matched pair, which together give
+C an approximation to the total of DC-33. Postprocessing using TACS is
+C involved. But note that here we skip every other point. Also, we use
+C DELTAT is an independent, predictable fashion, as the named delay on
+C a supplemental device that delays the signal GEN by one time step.
+C For answers that exactly agree with DC-33, decrease DELTAT from 100
+C to 50 microsec, and convert ",2," to ",1," on POSTPROCESS card.
+$OPEN, UNIT=22 FILE=dc45.pl4 ! { Expected to be C-like (L4BYTE = 1)
+POSTPROCESS PLOT FILE, 2, { Use every other step from ".PL4" plot file of DC-45
+ .000100 .050 { Note DELTAT is twice that of DC-45, since use every 2nd step
+ 1 1 0 0 1 -1 0 2
+ 5 5 20 20 50 50
+TACS STAND ALONE
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+ 1NRG +POWER
+ 1.0
+ 0.0 1.0
+11GEN 1.0
+11CURR 2.0
+99POWER = GEN * ( -CURR )
+33GEN CURR POWER FLUX GEN_1 NRG
+C The following transport delay copies GEN, only delays the output by DELTAT
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+99GEN_1 53+GEN { Type-53 supplemental device with named delay} .001 DELTAT
+C Step Time GEN CURR POWER FLUX GEN_1
+C 0 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 1 1.00000E-04 3.76732E+02-1.04694E+00 3.94417E+02 1.88366E-02 0.00000E+00
+C 2 2.00000E-04 3.75929E+02-1.04552E+00 3.93040E+02 5.64697E-02 3.76732E+02
+C 3 3.00000E-04 3.74591E+02-1.08895E+00 4.07913E+02 9.39957E-02 3.75929E+02
+BLANK card ending all TACS data cards
+C 400 4.00000E-02 -3.04999E+02 1.07014E+00 3.26391E+02 5.68879E-01-2.96431E+02
+C 450 4.50000E-02 -1.16499E+02 2.76576E+00 3.22210E+02-9.69816E-01-1.29930E+02
+C 500 5.00000E-02 3.77000E+02-1.43750E+00 5.41938E+02-1.88500E-02 3.76732E+02
+C Row Name Minimum Maximum Time of min
+C 1 GEN -3.7700000000E+02 3.7700000000E+02 0.025000
+C 2 CURR -3.4999091625E+00 3.4999091625E+00 0.037500
+C 3 POWER -3.4019847371E+02 5.8499138215E+02 0.005200
+C 4 FLUX -1.0187551143E+00 9.8105511427E-01 0.012500
+C 5 GEN_1 -3.7700000000E+02 3.7697024536E+02 0.025100
+C 6 NRG 0.0000000000E+00 1.3570878894E+01 0.000000
+ PRINTER PLOT
+ 144 2. 0.0 20. POWER { Axis limits: (-3.402, 5.850)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
+
diff --git a/benchmarks/dc46a.dat b/benchmarks/dc46a.dat
new file mode 100644
index 0000000..d8a3fa1
--- /dev/null
+++ b/benchmarks/dc46a.dat
@@ -0,0 +1,22 @@
+BEGIN NEW DATA CASE
+POSTPROCESS PLOT FILE 2 63 3
+$OPEN, UNIT=63 FILE=\data\dc45.pl4 ! { Expected to be C-like (L4BYTE = 1)
+ .000100 .002 { Note DELTAT is twice that of DC-45, since use every 2nd step
+ 1 1 0 0 1 -1 0 2
+ 20 20 50 50
+TACS STAND ALONE
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+ 1NRG +POWER
+ 1.0
+ 0.0 1.0
+11GEN 1.0
+11CURR 2.0
+99POWER = GEN * ( -CURR )
+33GEN CURR POWER FLUX GEN_1 NRG
+99GEN_1 53+GEN { Type-53 supplemental device with named delay} .001 DELTAT
+BLANK card ending all TACS data cards
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc47.dat b/benchmarks/dc47.dat
new file mode 100644
index 0000000..21f33b0
--- /dev/null
+++ b/benchmarks/dc47.dat
@@ -0,0 +1,751 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-47
+C Realistic large case with Type-59 S.M. and TACS modeling, as set up and
+C studied by Prof. Alfonso Capasso of the University of Rome during a 1980
+C visit to BPA. There are many cascaded, 25-mile, frequency-dependent,
+C 3-phase line sections that originally were represented using weighting
+C functions. But such code was removed from ATP around 1986, so for years
+C this case lay unused. It was resurrected during November of 1989 when Dan
+C Goldsworthy of BPA supplied replacement Marti branch cards. Dimensioning
+C of EMTP tables is tricky. Except for list sizes 20 and 22, twice default
+C dimensioning is adequate. On the other hand 3 times default dimensioning
+C of all lists fails quickly. For testing on Apollo, use: DEFAULT = 2.00,
+C and the following 3 cards blank except for list 20 = 13000 and list 22 =
+C 1750. Default sizes of these two are only 660 and 150, respectively.
+C 20 Oct 93, the new dynamic dimensioning of Salford EMTP saves the day.
+C The following five lines apply this old 1989 Apollo recommendation:
+C Answers change slightly on 10 February 1999 following the massive changes
+C from TEPCO (Tokyo Electric Power Company) in Japan. See April newsletter.
+C Most extrema agree to 6 decimal digits or more. All printer plots are
+C identical.
+C 16 February 2002, add the optional NBHDSW line to the following NLS
+C data structure. In fact, this does nothing since value 5.0 is the
+C default. But such a declaration is critically important for some data
+C that is overloaded with switches. For example, Hong Xiao's data NAVSYS
+C at Texas A&M had 894 switches. If the List 6 switch limit was 2500,
+C slightly more than a factor of 5.0 was required. Of course, the user
+C can only expand what exists (i.e., make sure VARDIM created the same or
+C greater NBHDSW space when the program was linked). Although use with
+C NLS is being illustrated here, the declaration applies to LISTSIZE,
+C too --- either as used prior to linking ATP, or as used at the start
+C of ATP execution. The total size of NBHDSW is equal to this factor
+C times the limit on switches (List 6). So, here, default List 6 is 40,
+C and 5 times this ==> 200 cells of NBHDSW are available for use. Much
+C more typically was created at linking time, of course.
+NEW LIST SIZES
+NBHDSW 5.0 { Five is the default factor for sizing switch vector NBHDSW
+DEFAULT 2.0
+BLANK
+C 0 0 0 0 0 0 0 0 3400 13000
+ 0 0 0 0 0 0 0 0 3540 13000
+ 0 1750
+ 240000 742
+ABSOLUTE TACS DIMENSIONS
+C Expand TACS Table 1 from 57 to 130 on 1 April 2007. Copy use from DC-2
+C without worrying about probably waste that might be involved:
+C 57 256 285 36 85 713 998 171 --- default
+ 130 65 80 20 70 325 120 115
+PRINTED NUMBER WIDTH, 13, 2, { Full precision on each of 8 columns of printout
+ .000100 .100 60.
+ 1 3 1 0 1 -1
+ 5 15 50 50 200 100
+TACS HYBRID
+C EXCITATION SYSTEM FOR THE COALSTRIP STEAM TURBINES.
+C CONVERSION TO MACHINE PER UNIT SYSTEM, SQRT(3)*RF/LAF.
+ 0VF +EFO .01862
+C FEED FORWARD PATH
+ 1EF1 -VT +UNITY -EFFBL1 195.6
+1.
+1. 1.3
+ 1EFO +EF1 -4.13 4.13
+1.
+1. .02
+C FEEDBACK PATH
+ 1EFFBL +EFO .164
+0. 1.
+1. 1.
+C SPEED GOVERNOR SYSTEM FOR COLSTRIP GENERATOR
+C CONVERSION OMEGA PER UNIT SYSTEM
+ 0DIFOME -UNITY +TACOME
+ 0PS1 +UNITY -KDIFOM -PGV
+ 0PS2 +PS1 10. -.4 .4
+ 0KDIFOM +DIFOME 20.
+ 1PGV +PS21 1.0 0. 1.1
+ 1.
+ 1.
+ 1PGV1 +PGV 1.
+ 1.
+ 1. .25
+ 1PGV2 +PGV1 1.
+ 1.
+ 1. 10.
+ 1PGV3 +PGV2 1.
+ 1.
+ 1. .5
+ 0PMT +PM1 +PM2 +PM3
+C POWER SYSTEM STABLIZER (PSS)
+C ADD SQUARED TERMINAL VOLTAGES
+ 0VMS +VSQA +VSQB +VSQC
+C FILTER TERMINAL VOLTAGE
+ 1VT +VRMS
+1.
+1. .0133
+C EMTP PARAMETERS PASSED TO TACS
+C TERMINAL VOLTAGE INPUTS
+90CSGENA
+90CSGENB
+90CSGENC
+C SHAFT SPEED INPUT
+C SPEED SOURCE FOR TACS
+92VEL1
+C COMPUTATIONS
+C SQUARE ROOT OF SUM OF SQUARED TERMINAL VOLTAGES.
+88VRMS SQRT VMS / 26000.
+C SQUARE INSTANTANEOUS TERMINAL VOLTAGES.
+99VSQA CSGENA* CSGENA
+99VSQB CSGENB* CSGENB
+99VSQC CSGENC* CSGENC
+C UNITY INITIAL INPUT TO S.M., DIVIDE BY INITIAL VF.
+98EFDPP 36.4528 * VF
+88PM1 .274 * PGV1
+88EFFBL1 = EFFBL
+88PS21 = PS2
+88PM2 .243 * PGV2
+88PM3 .483 * PGV3
+98FACTOR 1. * PMT
+C SWITCH FOR FREE-FORMAT.
+99TACOME = .002651* VEL1
+C FAST VALVING
+33EFO VT VF EFDPP EFFBL UNITY EF1
+33DIFOMEPGV PS1 PMT VEL1 TACOMEKDIFOM
+C INITIAL CONDITIONS
+77EF1 1.4730
+77EFO 1.4730
+77VT 1.0
+77VRMS 1.0
+77EFDPP 1.0
+77EFFBL 0.0
+77PS1 0.
+77PGV 1.
+77PGV1 1.
+77PGV2 1.
+77PGV3 1.
+77PMT 1.
+77TACOME 1.
+77VEL1 376.99
+BLANK card ending all TACS data
+C ** SOURCE IMPEDANCE CARDS ****
+ 0SOA BEGINA .001 1
+ 0SOB BEGINB .001 1
+ 0SOC BEGINC .001 1
+ 0V2A HSA 36. 1
+ 0V2B HSB 36. 1
+ 0V2C HSC 36. 1
+C LOAD AT THE RECEIVING END
+C ** SOURCE IMPEDANCE CARDS ****
+C SOURCE IMPEDANCE CARDS
+C SWITCH SHUNTS
+ 0GA G1A .001
+ 0GB G1B .001
+ 0GC G1C .001
+ 0GA G5A .001
+ 0GB G5B .001
+ 0GC G5C .001
+C 100MVAR SHUNT REACTORS
+ 0BEGINA 7.0 3025.
+ 0BEGINB 7.0 3025.
+ 0BEGINC 7.0 3025.
+ 0BVA 7.0 3025.
+ 0BVB 7.0 3025.
+ 0BVC 7.0 3025.
+ 014A 7.0 3025.
+ 014B 7.0 3025.
+ 014C 7.0 3025.
+ 0HSA 7.0 3025.
+ 0HSB 7.0 3025.
+ 0HSC 7.0 3025.
+C 225 MVAR SHUNT REACTORS
+ 05A 3.0 1344.
+ 05B 3.0 1344.
+ 05C 3.0 1344.
+ 0G4A 3.0 1344.
+ 0G4B 3.0 1344.
+ 0G4C 3.0 1344.
+C SHUNT REACTORS 100 MVAR
+ 0BEGINA 7.0 3025.
+ 0BEGINB 7.0 3025.
+ 0BEGINC 7.0 3025.
+ 0BVA 7.0 3025.
+ 0BVB 7.0 3025.
+ 0BVC 7.0 3025.
+C * 225 MVAR
+ 05AA 3.0 1344.
+ 05BB 3.0 1344.
+ 05CC 3.0 1344.
+ 0G8A 3.0 1344.
+ 0G8B 3.0 1344.
+ 0G8C 3.0 1344.
+C * 100 MVAR
+ 014AA 7.0 3025.
+ 014BB 7.0 3025.
+ 014CC 7.0 3025.
+ 0HSA 7.0 3025.
+ 0HSB 7.0 3025.
+ 0HSC 7.0 3025.
+C 25- MILE SECTION CARDS. For data, see normally unused bottom on DCNEW-5.
+C <++++++> Cards punched by support routine on 25-Nov-89 01.41.53 <++++++>
+C JMARTI SETUP, 1.0, { Note use of PDT0 = 1 to allow reduction of ord
+C BRANCH BEGINA1A BEGINB1B BEGINC1C
+C LINE CONSTANTS
+C 1.375 .0776 4 1.302 - 15.3 47.8 47.8
+C 1.375 .0776 4 1.302 - 16.2 48.8 48.8
+C 1.375 .0776 4 1.302 - 14.5 48.8 48.8
+C 2.375 .0776 4 1.302 0.0 76.8 76.8
+C 2.375 .0776 4 1.302 - 0.8 77.8 77.8
+C 2.375 .0776 4 1.302 + 0.8 77.8 77.8
+C 3.375 .0776 4 1.302 + 15.3 47.8 47.8
+C 3.375 .0776 4 1.302 + 14.5 48.8 48.8
+C 3.375 .0776 4 1.302 + 16.2 48.8 48.8
+C 0.5 3.56 4 0.495 - 12.0 109.3 109.3
+C 0.5 3.56 4 0.495 12.0 109.3 109.3
+C BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data
+C 100. 1000. 1 25.00 1 1
+C 100. 60. 1 25.00 1 1
+C 100. .001 1 25.00 1 9 10 1
+C BLANK card ending frequency cards of inbedded "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" cases (back to "JMARTI SETUP")
+C C 3456789012345678901234567890123456789012345678901234567890123456789012345678
+C C LECT +0 -3
+C 1
+C C .30 30 0 1 1 0 0
+C C .30 30 0 1 1 0 0 .0
+C .30 30 0 1 3 0 0
+-1BEGINA1A 2. 1.00 -2 3
+ 14 0.47293192457610910000E+03
+ -0.692872546664471400E+00 -0.289997290946665200E+01 -0.642465234009757800E+01
+ -0.263126866758512600E+02 -0.112197664116317600E+03 0.120003724331559200E+04
+ 0.534855106416246700E+04 0.265735664895556200E+05 0.102299437025596100E+06
+ 0.378064088036946100E+06 0.132921127921708400E+07 0.513934786170517100E+07
+ 0.925674681170112800E+07 0.288450507277665100E+08
+ 0.193740761292982800E+00 0.845745890606555900E+00 0.158002669592290500E+01
+ 0.166026211278831900E+01 0.245330041260623900E+01 0.189362602308108900E+02
+ 0.114161260221103000E+03 0.603227605191941700E+03 0.248970479870548400E+04
+ 0.984189709230105300E+04 0.371843313566798500E+05 0.154256975765183100E+06
+ 0.584765486140849700E+06 0.189661890222411100E+07
+ 16 0.14611089425809670000E-03
+ 0.321843918913226800E+00 0.162311293633336900E+01 0.215973805406543600E+01
+ 0.469951431259633000E+01 0.327308002733053700E+02 0.452437760931982100E+02
+ 0.328756421277238100E+03 0.200177420834287000E+04 -0.354515696612718900E+04
+ 0.155705219977707800E+05 0.151221170895251900E+05 0.106915368104621200E+06
+ -0.344719217999650700E+08 0.341080435346218900E+08 0.184594442012013500E+08
+ -0.182320460954986800E+08
+ 0.120261736819556900E+03 0.586377706864171600E+03 0.785729396647819200E+03
+ 0.153582968615116900E+04 0.292216408325832800E+04 0.197211684817117800E+04
+ 0.646946699809216000E+04 0.153758728646538300E+05 0.336431053557711100E+05
+ 0.298806156726226600E+05 0.626456551850810500E+05 0.108192223183447900E+06
+ 0.203944809477644400E+06 0.204148754287121900E+06 0.227695290201973200E+06
+ 0.227922985492175000E+06
+-2BEGINB1B 2. 1.00 -2 3
+ 11 0.24662476420370340000E+03
+ 0.768995655381981900E+03 0.357946515159924200E+03 0.605800489377626000E+03
+ 0.115846813162034100E+03 0.601598942354618800E+02 0.129603353249450600E+03
+ 0.124322546275003900E+03 0.590000752707421200E+02 0.220555895798305100E+04
+ 0.157374743868763000E+05 0.852520795579153100E+06
+ 0.260905187905774000E+01 0.411855521834657500E+01 0.771404316437598300E+01
+ 0.110187727317372200E+02 0.139680485049492400E+02 0.240091291541332100E+02
+ 0.394513496124981500E+02 0.678919942549256600E+02 0.217073311495445300E+04
+ 0.155198039317144100E+05 0.843266115513732800E+06
+ 10 0.13423855276504470000E-03
+ 0.156109695496983100E+02 0.207664299896075400E+03 0.253250298139870400E+03
+ 0.182704839566228600E+03 0.247234491946191700E+04 0.330281306977220200E+05
+ 0.979732483249094900E+05 0.551807975650099700E+05 0.155746415195975200E+07
+ 0.651738564168535400E+06
+ 0.379023174699368500E+04 0.493260943720562800E+05 0.620894169605181600E+05
+ 0.411709275865929300E+05 0.140741388619576300E+06 0.563969432263966900E+06
+ 0.731398783309924900E+06 0.828090639159713400E+06 0.285651731185617700E+07
+ 0.406516792268231300E+07
+-3BEGINC1C 2. 1.00 -2 3
+ 11 0.25189000703436050000E+03
+ 0.705625882215074600E+03 0.480037666605113300E+03 0.523476975958925000E+03
+ 0.101303478940912900E+03 0.730107254632987800E+02 0.135394935113372000E+03
+ 0.117137840471522300E+03 0.558311320674074200E+02 0.124472273810087900E+03
+ 0.627682104800954300E+04 0.240980689874141800E+06
+ 0.256960827808081800E+01 0.435244353197636700E+01 0.749429585075439400E+01
+ 0.106024369367294000E+02 0.138594221660724100E+02 0.239678957610427000E+02
+ 0.375429307533879400E+02 0.639863500328914500E+02 0.130791036571128600E+03
+ 0.615083978087696500E+04 0.237064293040221300E+06
+ 14 0.13539861053437450000E-03
+ 0.269179702767214200E+01 0.210140414716693800E+02 0.764589314809415700E+02
+ 0.110678295975407300E+03 0.129037590729584400E+03 0.154905865724887900E+03
+ 0.973468183688154800E+02 0.125397291104907200E+03 0.946997596373924000E+04
+ 0.324310548935950100E+05 0.405933736771673600E+05 0.230683862157762600E+06
+ -0.173236283555902400E+07 0.619672413081824600E+07
+ 0.127520846547645700E+04 0.991859082931559900E+04 0.352599882601353600E+05
+ 0.470219434319579600E+05 0.598736861767069000E+05 0.738954426067940100E+05
+ 0.481920080235604800E+05 0.616738461673569000E+05 0.420313332159116900E+06
+ 0.921318128971279800E+06 0.557714717553727900E+06 0.169631694566225400E+07
+ 0.116008957300778400E+08 0.716479108546823500E+07
+ 0.59100946 0.70710678 -0.40296093
+ 0.00000000 0.00000000 0.00000000
+ 0.54901333 0.00000000 0.82173291
+ 0.00000000 0.00000000 0.00000000
+ 0.59100946 -0.70710678 -0.40296093
+ 0.00000000 0.00000000 0.00000000
+-11A 2A BEGINA1A
+-21B 2B
+-31C 2C
+-12A 3A BEGINA1A
+-22B 3B
+-32C 3C
+-13A 4A BEGINA1A
+-23B 4B
+-33C 4C
+-14A C1A BEGINA1A
+-24B C1B
+-34C C1C
+ 0C1A BVA .001 138.
+ 0C1B BVB .001 138.
+ 0C1C BVC .001 138.
+ 0C2A G4A .001 70.
+ 0C2B G4B .001 70.
+ 0C2C G4C .001 70.
+ 0C3A 14A 128.
+ 0C3B 14B 128.
+ 0C3C 14C 128.
+ 0C4A BVA C1A BVA
+ 0C4B BVB C1A BVA
+ 0C4C BVC C1A BVA
+ 0C5A G8A C2A G4A
+ 0C5B G8B C2A G4A
+ 0C5C G8C C2A G4A
+-15A 6A BEGINA1A
+-25B 6B
+-35C 6C
+-16A 7A BEGINA1A
+-26B 7B
+-36C 7C
+-17A 8A BEGINA1A
+-27B 8B
+-37C 8C
+-18A 9A BEGINA1A
+-28B 9B
+-38C 9C
+-19A 10A BEGINA1A
+-29B 10B
+-39C 10C
+-110A 11A BEGINA1A
+-210B 11B
+-310C 11C
+-111A 12A BEGINA1A
+-211B 12B
+-311C 12C
+-112A 13A BEGINA1A
+-212B 13B
+-312C 13C
+-113A C2A BEGINA1A
+-213B C2B
+-313C C2C
+-1C3A 15A BEGINA1A
+-2C3B 15B
+-3C3C 15C
+-115A 16A BEGINA1A
+-215B 16B
+-315C 16C
+-116A 17A BEGINA1A
+-216B 17B
+-316C 17C
+-117A 18A BEGINA1A
+-217B 18B
+-317C 18C
+-118A HSA BEGINA1A
+-218B HSB
+-318C HSC
+C SECOND CIRCUIT
+-1BEGINA1AA BEGINA1A
+-2BEGINB1BB
+-3BEGINC1CC
+-11AA 2AA BEGINA1A
+-21BB 2BB
+-31CC 2CC
+-12AA 3AA BEGINA1A
+-22BB 3BB
+-32CC 3CC
+-13AA 4AA BEGINA1A
+-23BB 4BB
+-33CC 4CC
+-14AA C4A BEGINA1A
+-24BB C4B
+-34CC C4C
+-15AA 6AA BEGINA1A
+-25BB 6BB
+-35CC 6CC
+-16AA 7AA BEGINA1A
+-26BB 7BB
+-36CC 7CC
+-17AA 8AA BEGINA1A
+-27BB 8BB
+-37CC 8CC
+-18AA 9AA BEGINA1A
+-28BB 9BB
+-38CC 9CC
+-19AA 10AA BEGINA1A
+-29BB 10BB
+-39CC 10CC
+-110AA 11AA BEGINA1A
+-210BB 11BB
+-310CC 11CC
+-111AA 12AA BEGINA1A
+-211BB 12BB
+-311CC 12CC
+-112AA 13AA BEGINA1A
+-212BB 13BB
+-312CC 13CC
+-113AA C5A BEGINA1A
+-213BB C5B
+-313CC C5C
+C NO SERIES CAPS ON THE SECOND CKT OF GARRISON-HS LINE
+-114AA 15AA BEGINA1A
+-214BB 15BB
+-314CC 15CC
+-115AA 16AA BEGINA1A
+-215BB 16BB
+-315CC 16CC
+-116AA 17AA BEGINA1A
+-216BB 17BB
+-316CC 17CC
+-117AA 18AA BEGINA1A
+-217BB 18BB
+-317CC 18CC
+-118AA HSA BEGINA1A
+-218BB HSB
+-318CC HSC
+C LINE SHUNTS
+ 0BVA 5AA .001 1
+ 0BVB 5BB .001 1
+ 0BVC 5CC .001 1
+C 1 CKT GAR-HS LINE OUT
+ 0SA 5A 600.
+ 0SB 5B 600.
+ 0SC 5C 600.
+ 0SA S1A .001
+ 0SB S1B .001
+ 0SC S1C .001
+ 0S2A 14A 600.
+ 0S2B 14B 600.
+ 0S2C 14C 600.
+ 0S2A S3A .001
+ 0S2B S3B .001
+ 0S2C S3C .001
+ 0G2A G4A 600.
+ 0G2B G4B 600.
+ 0G2C G4C 600.
+ 0G2A G3A .001
+ 0G2B G3B .001
+ 0G2C G3C .001
+ 0G6A G8A 600.
+ 0G6B G8B 600.
+ 0G6C G8C 600.
+ 0G6A G7A .001
+ 0G6B G7B .001
+ 0G6C G7C .001
+ TRANSFORMER 2.0 1140. T1A 1.E5
+.188 912.
+.6 1026.
+1.5 1106.
+3.0 1163.
+6.0 1208.
+11.4 1244.
+21. 1277.
+50. 1300.
+250. 1350.
+ 9999
+ 1BVA .1 35.6 429.
+ 2BVS2A .1 .001 188.
+ 3TER1A TER1B .1 .071 13.8
+ TRANSFORMER T1A T1B
+ 1BVB
+ 2BVS2B
+ 3TER1B TER1C
+ TRANSFORMER T1A T1C
+ 1BVC
+ 2BVS2C
+ 3TER1C TER1A
+ TRANSFORMER T1A T2A
+ 1GAA
+ 2GAS2A
+ 3TER2A TER2B
+ TRANSFORMER T1A T2B
+ 1GAB
+ 2GAS2B
+ 3TER2B TER2C
+ TRANSFORMER T1A T2C
+ 1GAC
+ 2GAS2C
+ 3TER2C TER2A
+C *****GENERATOR TRANSFORMER*********************
+ TRANSFORMER 236.9 97.5T3A 1.E+5
+ 67.8 87.8
+236.9 97.5
+504.5 107.3
+ 9999
+ 1CSIA CSIB .0001 .001 26.
+ 2SOA .0001 34.57 317.
+ TRANSFORMER T3A T3B
+ 1CSIB CSIC
+ 2SOB
+ TRANSFORMER T3A T3C
+ 1CSIC CSIA
+ 2SOC
+ TRANSFORMER T3A T3D
+ 1CSGN1ACSGN1B
+ 2SOA
+ TRANSFORMER T3A T3E
+ 1CSGN1BCSGN1C
+ 2SOB
+ TRANSFORMER T3A T3F
+ 1CSGN1CCSGN1A
+ 2SOC
+C ***********************************************
+ 0CSIA .1
+ 0CSIB .1
+ 0CSIC .1
+ 0CSGN1A .1
+ 0CSGN1B .1
+ 0CSGN1C .1
+C ***********************************************
+ 0 BVS2A 529.
+ 0 BVS2B 529.
+ 0 BVS2C 529.
+ 0TER1A 9500.
+ 0TER1B 9500.
+ 0TER1C 9500.
+ 0 GAS2A 400.
+ 0 GAS2B 400.
+ 0 GAS2C 400.
+ 0TER2A 9500.
+ 0TER2B 9500.
+ 0TER2C 9500.
+BLANK card ending branch cards
+ BVA SA -1. 1.
+ BVB SB -1. 1.
+ BVC SC -1. 1.
+ S1A 5A -1. 1.
+ S1B 5B -1. 1.
+ S1C 5C -1. 1.
+ GA S2A -1. 1.0
+ GB S2B -1. 1.0
+ GC S2C -1. 1.0
+ S3A 14A -1. .085
+ S3B 14B -1. .085
+ S3C 14C -1. .085
+ G1A G2A -1. 1.30
+ G1B G2B -1. 1.030
+ G1C G2C -1. 1.030
+ G3A G4A -1. 1.010
+ G3B G4B -1. 1.010
+ G3C G4C -1. 1.010
+ G5A G6A -1. 1.34
+ G5B G6B -1. 1.034
+ G5C G6C -1. 1.034
+ G7A G8A -1. 1.014
+ G7B G8B -1. 1.014
+ G7C G8C -1. 1.014
+ C3A .01695 1.
+C *******MEASURING COALSTRIP GENERATOR ARMATURE CURRENT*******
+ CSGENACSIA MEASURING 1
+ CSGENBCSIB MEASURING 1
+ CSGENCCSIC MEASURING 1
+C ************************************************************
+BLANK card ending switch cards
+C *
+C *
+14V2A 452000. 60. -10. -1.
+14V2B 452000. 60. -130. -1.
+14V2C 452000. 60. 110. -1.
+59CSGENA 21229. 60. .0
+ CSGENB
+ CSGENC
+TOLERANCES 20
+PARAMETER FITTING 2.+00
+ 1 1 2 819.0 26.0 1600.
+BLANK CARD INDICATING NO SATURATION OF Q-AXIS OF MACHINE
+ .0013 .1284 1.236 1.222 .2197 .3482 .1776 .1742
+ 4.78 .53 .041 .067 .0861
+ 1 1.0 1.070 0.0 0.0
+BLANK card
+ 51
+ 1 1 2 3 4 11 14
+ 1 8 9 10
+ 21
+ 31
+BLANK CARD
+71EFDPP
+72FACTOR 1
+74VEL1 2
+ FINISH
+59CSGN1A 21229. 60. 0.0
+ CSGN1B
+ CSGN1C
+PARAMETER FITTING 2.+00
+ 1 1 2 819.0 26.0 1600.
+BLANK CARD INDICATING NO SATURATION OF Q-AXIS OF MACHINE
+ .0013 .1284 1.236 1.222 .2197 .3482 .1776 .1742
+ 4.78 .53 .041 .067 .0861
+ 1 1.0 1.070 0.0 0.0
+BLANK
+ 51
+ 1 1 2 3 4 11 14
+ 1 8 9 10
+ 21
+ 31
+BLANK CARD
+71EFDPP
+72FACTOR 1
+C BECAUSE THE TWO GENERATORS HAVE THE SAME SPEED IT IS NOT
+C NECESSARY TO USE THE SPEED OF THE SECOND GENERATOR AS TACS SOURC
+ FINISH
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C SOA |TERRA *TERRA *BEGINA*
+C BEGINA |TERRA *TERRA *SOA *1A *1AA *
+C SOB |TERRA *TERRA *BEGINB*
+C BEGINB |TERRA *TERRA *SOB *1B *1BB *
+C SOC |TERRA *TERRA *BEGINC*
+C BEGINC |TERRA *TERRA *SOC *1C *1CC *
+C V2A |HSA *
+C .... Etc. (many more rows)
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.435490932846E+08
+C MACH 1 Data parameters and initial conditions of next machine .....
+C "CSGENA" Unit 1
+C Id Iq Io
+C -2.09832081140E+04 1.82690972572E+04 8.06549008735E-10
+C Field current of the generator in units ... Total dc component
+C 2.4585598153E+03 2.4539876356E+03
+C Electromechanical torque of the generator ... total dc component
+C 1.9154270026E+00 1.8933493498E+00
+C ---- Initial flux of coil "T1A " to " " = 3.74851587E+02
+C ---- Initial flux of coil "T1B " to " " = -1.16312212E+03
+C Warning. Preceding flux exceeds the 1st segment. This means that the stead
+C ---- Initial flux of coil "T1C " to " " = 7.91924375E+02
+C ---- Initial flux of coil "T3A " to "CSIB " = 4.87345928E+01
+C ---- Initial flux of coil "T3B " to "CSIC " = -9.75282819E+01
+C Warning. Preceding flux exceeds the 1st segment. This means that the stead
+C ---- Initial flux of coil "T3C " to "CSIA " = 4.87941256E+01
+C ---- Initial flux of coil "T3D " to "CSGN1B" = 4.87345928E+01
+C ---- Initial flux of coil "T3E " to "CSGN1C" = -9.75282819E+01
+C Warning. Preceding flux exceeds the 1st segment. This means that the stead
+C ---- Initial flux of coil "T3F " to "CSGN1A" = 4.87941256E+01
+ BEGINABEGINBBEGINC
+ BVA BVB BVC GA GB GC
+ G4A G4B G4C G8A G8B G8C
+ C2A C2B C2C 10A 10B 10C 6A 6B 6C
+ C5A C5B C5C 10AA 10BB 10CC 6AA 6BB 6CC
+ CSIA CSIB CSIC CSGN1ACSGN1BCSGN1CSOA SOB SOC
+C Step Time BEGINA BEGINB BEGINC BVA BVB
+C
+C
+C GC G4A G4B G4C G8A
+C
+C
+C C2B C2C 10A 10B 10C
+C
+C
+C C5A C5B C5C 10AA 10BB
+C
+C
+C 6CC CSIA CSIB CSIC CSGN1A
+C
+C
+C SOB SOC CSGENA CSGENB CSGENC
+C CSIA CSIB CSIC
+C
+C V2A V2B V2C BVA BVB
+C HSA HSB HSC 5AA 5BB
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C I0 IF IA IB IC
+C
+C MACH 1 MACH 2 MACH 2 MACH 2 MACH 2
+C VEL 1 ID IQ I0 IF
+C
+C MACH 2 MACH 2 MACH 2 MACH 2 TACS
+C EFD TQ GEN ANG 1 VEL 1 EFO
+C
+C TACS TACS TACS TACS TACS
+C EFFBL UNITY EF1 DIFOME PGV
+C
+C TACS TACS
+C TACOME KDIFOM
+C *** Phasor I(0) = 9.3141980E+02 Switch "BVA " to "SA " closed
+C *** Phasor I(0) = -2.1484379E+02 Switch "BVB " to "SB " closed
+C *** Phasor I(0) = -7.3079055E+02 Switch "BVC " to "SC " closed
+C *** Phasor I(0) = 9.3142027E+02 Switch "S1A " to "5A " closed
+C *** Phasor I(0) = -2.1484535E+02 Switch "S1B " to "5B " closed
+C *** Phasor I(0) = -7.3078946E+02 Switch "S1C " to "5C " closed
+C *** Phasor I(0) = 1.8917593E+03 Switch "GA " to "S2A " closed
+C *** Phasor I(0) = -7.0729311E+02 Switch "GB " to "S2B " closed
+C *** Phasor I(0) = -1.1803057E+03 Switch "GC " to "S2C " closed
+C *** Phasor I(0) = 1.8917596E+03 Switch "S3A " to "14A " closed
+C *** Phasor I(0) = -7.0729599E+02 Switch "S3B " to "14B " closed
+C *** Phasor I(0) = -1.1803032E+03 Switch "S3C " to "14C " closed
+C *** Phasor I(0) = -9.4587964E+02 Switch "G1A " to "G2A " closed
+C *** Phasor I(0) = 3.5364656E+02 Switch "G1B " to "G2B " closed
+C *** Phasor I(0) = 5.9015285E+02 Switch "G1C " to "G2C " closed
+C *** Phasor I(0) = -9.4587982E+02 Switch "G3A " to "G4A " closed
+C *** Phasor I(0) = 3.5364800E+02 Switch "G3B " to "G4B " closed
+C *** Phasor I(0) = 5.9015160E+02 Switch "G3C " to "G4C " closed
+C *** Phasor I(0) = -9.4587964E+02 Switch "G5A " to "G6A " closed
+C *** Phasor I(0) = 3.5364656E+02 Switch "G5B " to "G6B " closed
+C *** Phasor I(0) = 5.9015285E+02 Switch "G5C " to "G6C " closed
+C *** Phasor I(0) = -9.4587982E+02 Switch "G7A " to "G8A " closed
+C *** Phasor I(0) = 3.5364800E+02 Switch "G7B " to "G8B " closed
+C *** Phasor I(0) = 5.9015160E+02 Switch "G7C " to "G8C " closed
+C *** Phasor I(0) = 2.2639721E+04 Switch "CSGENA" to "CSIA " closed
+C *** Phasor I(0) = -1.2935334E+04 Switch "CSGENB" to "CSIB " closed
+C *** Phasor I(0) = -9.7043863E+03 Switch "CSGENC" to "CSIC " closed
+C 0 0.0 404269.4395 -36345.7247 -367765.459 424359.4611 -84333.1188
+C -289436.093 451772.5587 -159713.498 -289437.588 451772.5587
+C -187973.815 -252930.485 447042.9429 -145948.56 -298112.48
+C 443329.9408 -187973.815 -252930.485 447042.9429 -145948.56
+C -331794.91 21229. -10614.5 -10614.5 21229.
+C -36343.631 -367766.638 22639.72062 -12935.3343 -9704.38629
+C -1927.84839 998.3131661 907.993979 931.4197995 -214.843795
+C .806549E-9 2458.559762 22639.72062 -12935.3343 -9704.38629
+C -.002099483 -20983.2062 18269.09946 -.134425E-8 2458.559762
+C -428.682116 1.91542705 134.2452118 -.002099483 1.473
+C 0.0 1.0 1.473 0.0 1.0
+C 1.0 0.0
+C 1 .1E-3 397129.7612 -20133.32 -376846.599 418465.6003 -67710.5661
+C -302506.957 448484.4919 -143505.185 -302508.399 448484.4919
+C -172703.477 -266495.267 443279.2437 -129655.083 -310805.237
+C 441481.0763 -172703.477 -266495.267 443279.2437 -129655.083
+C -343039.501 21237.96722 -10136.0111 -11101.9561 21237.96722
+C -20131.4818 -376847.601 22692.68415 -12202.5948 -10490.0893
+C -1930.51013 937.527959 970.8510997 920.1216638 -179.573848
+C -.31225E-10 2458.019684 22692.68415 -12202.5948 -10490.0893
+C -.006347691 -20963.4593 18287.60729 -.45505E-10 2458.019684
+C -428.682116 1.915678723 134.2451876 -.006347691 1.472999717
+C -.463451E-7 1.0 1.472886675 -.613373E-3 1.0
+C .9993866272 -.012267455
+BLANK card ending program output variables (just node voltages, here)
+C *** Open switch "S3B " to "14B " after 9.23000000E-02 sec.
+C 1000 0.1 456587.9539 72810.69446 -528451.693 518738.6488 36108.45381
+C -580084.928 558077.5006 -89099.3773 -580088.607 558077.5006
+C -82089.0245 -595679.834 559039.9578 -24740.4007 -590969.55
+C 554457.9176 -82089.0245 -595679.834 559039.9578 -24740.4007
+C -563417.016 24790.5224 -9299.2942 -15491.2282 24790.5224
+C 72810.84876 -528449.542 4177.258464 9977.667495 -14154.926
+C -899.895095 -123.78439 364.4939864 -20.5855009 671.1300102
+C -.325876E-9 1692.849684 4177.258464 9977.667495 -14154.926
+C .5571416296 8388.658546 15716.096 -.325264E-9 1692.849684
+C -541.656604 .5784421055 135.2190602 .5571416296 1.862272185
+C .0620160273 1.0 1.931667198 .8804374E-3 1.000154281
+C 1.000880437 .0176087484
+ PRINTER PLOT
+ 194 4. 12. 50. MACH 1TQ GEN { Axis limits: (-0.316, 3.238)
+ 194 4. 12. 50. MACH 2VEL 1 { Axis limits: (-0.835, 2.206)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc48.dat b/benchmarks/dc48.dat
new file mode 100644
index 0000000..902bbd4
--- /dev/null
+++ b/benchmarks/dc48.dat
@@ -0,0 +1,498 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-48
+C Demonstration of random switch opening: A Monte Carlo ("STATISTICS") study
+C only with random opening rather than the more common closing. The network
+C is purely resistive by design, in order that switch current is known to
+C have a current zero at 0.625 seconds. There are 3 parallel, independent
+C networks radially branched off of generator GEN to nodes LOAD, LOAD1,
+C and LOAD2. All 3 involve statistical opening. If a switch opens early
+C (before .625 sec), then negative peak of -100 at t = 3/4 will be kept
+C for extrema. If not (nearly half the time, since the mean of the switches
+C shorting LOAD, LOAD1, and LOAD2 to ground is t = 0.6, which is very
+C close to the current zero), the opening is delayed until t = .875, and
+C then the peak is +30.9 at the end time t = 0.9 seconds. Why? This is
+C because frequency equal to 2 Hz and use of BEGIN PEAK VALUE SEARCH at
+C 0.525 means that we ignore the positive peak at 0.5 sec, and we never
+C make the next one at 1.0 sec since TMAX = 0.9 sec. The negative peak
+C at 0.750 sec is seen only for the early opening at 0.625 sec. As for the
+C randomness, we have mixed random closing and opening as an illustration
+C of this new capability that first worked on 9 July 1987. All the actual
+C switchings of interest (three) use opening, whereas the reference switch
+C (one of two components of the opening time) uses random closing. Because
+C of use of built-in random numbers (data value XMAXMX is negative), all
+C computers should produce identical results. Confirmation of the actual
+C opening times can be deduced from the resultant peak voltage:
+C 1) For opening at 0.63 sec, source voltage appears at this time, and it
+C lasts through the end of the simulation. The negative peak occurs
+C at time 0.75 sec, and this shows up in the printout (the extrema
+C will have a value of -100.0 volts).
+C 2) For opening at 0.875 sec, source voltage appears at this time, and
+C only last through the positive rise toward the peak at 1.0 sec. But
+C this rise is prematurely ended at time TMAX = 0.90 sec, when the
+C voltage is 30.901699 volts, and this will be the extrema.
+C Not all computers require that variable NSEED of columns 73-80 of the
+C STATISTICS miscellaneous data card be punched, meaning use of the fixed
+C seed. But Apollo does require this, since built-in random numbers are no
+C different than installation-dependent ones: the VAX-11 algorithm is used.
+PRINTED NUMBER WIDTH, 18, 3, { Extra precision and separation for 3 variables
+CHANGE PRINTOUT FREQUENCY
+ 5 5
+BEGIN PEAK VALUE SEARCH, 0.525, { Ignore 1st cycle, which has time less than 1/2
+ .01 .90
+ 1 1 0 0 1 1 5
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 1
+ GEN LOAD 1.0 { 1st of 3 identical resistors hung from source
+ GEN LOAD1 1.0 { 2nd of 3 identical resistors hung from source
+ GEN LOAD2 1.0 { 3rd of 3 identical resistors hung from source
+ DUMY 1.0 { Connect independent Monte Carlo switch node
+BLANK card ending branch cards
+ DUMY .40 .06 STATISTICS { Reference
+C Preceding switch does nothing for network; but it is referenced by the two
+C dependent switches of LOAD1 and LOAD2. Following LOAD is independent:
+ LOAD .60 0.10 3333.STATISTICS { Independent
+ LOAD1 .20 0.08 3333.STATISTICSDUMY { Dependent
+C Mustafa's STAT*.DAT within \TEPCO introduces current margin Ie to open:
+C < n 1>< n 2>< Tclose ><Top/Tde >< Ie ><Vf/CLOP >< type >
+C GEN LOAD .0051 .0028868 3. 3333.STATISTICS 1
+C Make a comparable addition here, to the LOAD2 switch:
+C LOAD2 .20 0.08 3333.STATISTICSDUMY { Dependent
+C LOAD2 .20 0.08 40. 3333.STATISTICSDUMY { Dependent
+ LOAD2 .20 0.08 45. 3333.STATISTICSDUMY { Dependent
+C The preceding Ie = 40 advanced the LOAD2 switch-opening time slightly:
+C With zero or blank: Open switch "LOAD2 " to " " after 6.30000000E-01 sec.
+C With Ie = 40 amps : Open switch "LOAD2 " to " " after 6.00000000E-01 sec.
+C But this was just base case output. Extrema were not affected. Adding five
+C amps (40 becomes 45) affected the extrema, so data is left this way.
+BLANK card terminating switch cards
+14GEN 100. 2.0 -1.
+BLANK card terminating sources
+ LOAD LOAD1 LOAD2 GEN
+C Step Time LOAD LOAD1 LOAD2 GEN
+C
+C *** Phasor I(0) = 1.0000000E+02 Switch "LOAD " to " " closed
+C *** Phasor I(0) = 1.0000000E+02 Switch "LOAD1 " to " " closed
+C *** Phasor I(0) = 1.0000000E+02 Switch "LOAD2 " to " " closed
+C 0 0.0 0.0 0.0 0.0 100.
+C 1 .01 0.0 0.0 0.0 99.211470131448
+C 2 .02 0.0 0.0 0.0 96.858316112863
+BLANK card ending requests for program outputs (just node voltages, here)
+C *** Open switch "LOAD2 " to " " after 6.00000000E-01 sec.
+C 60 0.6 0.0 0.0 0.0 30.901699437494
+C *** Open switch "LOAD " to " " after 6.30000000E-01 sec.
+C *** Open switch "LOAD1 " to " " after 6.30000000E-01 sec.
+C 65 .65 -30.9016994375 -30.9016994375 -30.9016994375 -30.9016994375
+C 70 0.7 -80.9016994375 -80.9016994375 -80.9016994375 -80.9016994375
+C 75 .75 -100. -100. -100. -100.
+C 80 0.8 -80.90169943749 -80.90169943749 -80.90169943749 -80.90169943749
+C 85 .85 -30.90169943749 -30.90169943749 -30.90169943749 -30.90169943749
+C 90 0.9 30.901699437495 30.901699437495 30.901699437495 30.901699437495
+C Variable maxima: 30.901699437495 30.901699437495 30.901699437495 92.977648588825
+C Times of maxima: 0.9 0.9 0.9 .53
+C Variable minima: -100. -100. -100. -100.
+C Times of minima: .75 .75 .75 .75
+ PRINTER PLOT
+BLANK card ending non-existent plot cards for the base case
+C The following documents extrema for the 3rd shot as found on 22 March 2007:
+C Random switching times for energization number 3 :
+C 1 3.3795450E-01 2 4.3170384E-01 3 6.2506590E-01 4 6.5220506E-01
+C -100. -100. -100. -100.
+C Times of maxima : .75 .75 .75 .75
+C This is using Ie = 45 amps. Using an older version of ATP with this new
+C data should produce the following different and wrong answer:
+C -100. -100. 30.901699437495 -100.
+C Times of maxima : .75 .75 0.9 .75
+C How old? A month or more. The wrong answer corresponds to use of the
+C current margin Ie = 0 with either the old or the new program. As
+C pointed out by Prof. Mustafa Kizilcay about a month ago using other data,
+C ATP seemed to be ignoring current margin for the 2nd and later shots. In
+C response, WSM proposed avoidance by making TENERG of STARTUP negative
+C (simply append a minus sign). This was prior to correction of code, of
+C course. That 3rd output variable is the voltage at node LOAD2 ---
+C the node of the switch that has current chopping.
+STATISTICS DATA 1.0500001 0.0
+ LOAD
+ LOAD1
+ LOAD2
+C Note about change to preceding. The LOAD2 tabulation continues to span
+C compartments 7-20. However, compartment 7 used to have 2 but now it has
+C only one energization. Where did one of them move? To final compartment
+C 20 which increased from 3 to 4. The change of summary statistics is big:
+C Old solution : Mean = 7.15001430E-01 ... Variance = 1.26750507E-01
+C New solution : Mean = 8.45001690E-01 ... Variance = 8.45003380E-02
+C This is for "Grouped data." The "Ungrouped data" are comparable.
+C Add "FIND" usage with "DISK" output to demonstrate that Ie of the LOAD2
+C switch is not erased on 17 March 2007. Prior to correction of DICTAB,
+C this was the case according to a trouble report from Orlando Hevia.
+FIND { Enter interactive search for which shot and which variable gave extremum
+ LOAD LOAD1 { Search these 3 node voltages for extremum
+EXCLUDE { Repeat the preceding search after 1st excluding the just-found shot
+DISK /LIST /FULL { Create disk file of data for deterministic simulation of EXCLUDEd shot
+QUIT { Done locating extrema, so exit the "FIND" alternative
+C Historical note. Upon learning that we had corrected Ie treatment for Prof.
+C Mustafa Kizilcay, Orlando Hevia reminded the workers in Portland that he had
+C submitted a comparable complaint earlier. In his mail archive, he found a
+C message to BPA having time stamp Fri, 28 Jan 2005 17:37:39 -0300. Without
+C doubt, Orlando's complaint was the same, fundamentally. Why it was not
+C handled at the time remains unclear. In that an additional problem with
+C DISK output was noted, Orlando's complaint was more complete. How did
+C Orlando first note the phenomenon? He explained : "The first users that
+C discovered a problem with Ie and 3333 switches are a couple from Uruguay .."
+BLANK card ending requests for statistical tabulation
+BEGIN NEW DATA CASE
+C 2nd of 5 subcases verify that STATISTICS (Monte Carlo) can involve TACS.
+C The data comes from BPA's Dan Goldsworthy. Between August of 1993 and
+C May ?? of 1994 (see the July, 1994, newsletter), this was not possible.
+C Data is not at all realistic. TMAX is artificially small, etc..
+LINEAR BIAS USAGE { Reference angle will vary linearly rather than randomly
+PRINTED NUMBER WIDTH, 11, 1, { Restore default precision for dt-loop columns
+C $STARTUP, dc37star.dat { Use disk file for re-initialization at this point
+C This is a Monte Carlo case, for which TENERG is critical. But this
+C parameter is initialized only in the STARTUP file. For this 2nd or
+C later data case, we reinitialize via the preceding $STARTUP request
+CHANGE PRINTOUT FREQUENCY
+ 5 5 20 20
+ .000100 .020 60. 0.0
+ 1 1 0 0 1 0 0 0 3
+ 1 2 1 1
+TACS HYBRID CASE
+90PCBA
+90A1
+88PS5A = ABS(PCBA - A1)
+93STATA
+88PS2A 58+PLUS1 1000. 0.0 1.0 STATA
+88PS4A 56+PS2A 1.
+ -1.0 480.
+ 0.0 480.
+ 8.0 0.0
+ 1000.0 0.0
+ 9999.
+88PS6A = (PS5A - PS4A) .AND. STATA
+88CLSA 62+PLUS1 PS6A
+33PS5A PS2A PS4A PS6A
+33STATA
+33CLSA
+BLANK CARD ENDING TACS DATA CASE
+ SENDA PCBA 10.0 5.0
+ A1 10.0 15.
+ DUMMY 1.
+ STATA 1.
+BLANK CARD ENDING BRANCH CARDS
+ DUMMY .001 .000001 STATISTICS 0
+76STATA .005 .0015 STATISTICSDUMMY 0
+13PCBA A1 CLSA 13
+BLANK CARD ENDING SWITCH CARDS
+14SENDA 188.0 60. 0.0 -1.
+BLANK CARD ENDING SOURCES
+ PCBA A1
+C Step Time PCBA PCBA A1 PCBA TACS
+C A1 A1 PS5A
+C 0 0.0 188. 188. 0.0 0.0 0.0
+C 1 .1E-3 187.866421 187.866421 0.0 0.0 187.866421
+C 2 .2E-3 187.465873 187.465873 0.0 0.0 187.465873
+C 3 .3E-3 186.798926 186.798926 0.0 0.0 186.798926
+BLANK CARD ENDs NODE VOLTAGE OUTPUTS
+C 120 .012 -35.227687 -35.227687 0.0 0.0 35.2276871
+C Switch "PCBA " to "A1 " closing after 1.32000000E-02 sec.
+C 140 .014 0.0 70.7309673 70.7309673 .964122164 0.0
+C 160 .016 0.0 113.976248 113.976248 4.51879549 0.0
+C 180 .018 0.0 88.9755078 88.9755078 6.91674682 0.0
+C 200 .02 0.0 12.7036093 12.7036093 6.17355737 0.0
+C Variable maxima : 188. 188. 114.548243 7.06193095 187.985156
+C Times of maxima : 0.0 0.0 .0163 .0186 .0083
+C Variable minima : -187.98516 -187.98516 0.0 0.0 0.0
+C Times of minima : .0083 .0083 0.0 0.0 0.0
+BLANK CARD ending plot
+C Random switching times for energization number 1 :
+C 1 6.5564603E-03 2 9.7966634E-03
+C ==== Table dumping for all subsequent restorations. Time [sec] = 9.0000000E-4
+C Switch "PCBA " to "A1 " closing after 1.52000000E-02 sec.
+C 120. 188. 188. 125.885042 6.21833213 187.985156 10.25 480.
+C Times of maxima : 0.0 0.0 .016 .0189 .0083 .02 .1E-3
+C
+C MAIN20 dumps OVER12 dice seed SEEDSV = 5.7295779513082323E+01
+C Statistical distribution of peak voltage at node "A1 ". The base voltag
+C Interval voltage voltage in Frequency Cumulative
+C number in per unit physical units (density) frequency
+C 1 0.0500000 0.94165000E+01 2 2
+C 2 0.1000000 0.18833000E+02 0 2
+C < < Etc. (omit the zero rows) > >
+C 14 0.7000000 0.13183100E+03 1 3
+C Summary of preceding table follows: Grouped data Ungrouped data
+C Mean = 2.41666667E-01 2.22809327E-01
+C Variance = 1.40833333E-01 1.48931988E-01
+C Standard deviation = 3.75277675E-01 3.85917075E-01
+0 188.33 A1 { One and only request for statistical tabulation, of A1
+C Column positioning of "NO SWITCH PLOTS" on blank terminator is arbitrary:
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE
+C 3rd of 5 subcases verify that STATISTICS (Monte Carlo) works with MODELS
+C The case is similar to subcase 2, with TACS section converted to a model
+C Data is not at all realistic. TMAX is artificially small, etc..
+LINEAR BIAS USAGE { Reference angle will vary linearly rather than randomly
+PRINTED NUMBER WIDTH, 11, 1, { Restore default precision for dt-loop columns
+CHANGE PRINTOUT FREQUENCY
+ 5 5 20 20
+ .000100 .020 60. 0.0
+ 1 1 0 0 1 0 0 0 3
+ 1 2 1 1
+MODELS
+INPUT pcba { v(PCBA) } -- voltage at node PCBA
+ a1 { v(A1) } -- voltage at node A1
+ stata { switch(STATA) } -- switch status at node STATA
+OUTPUT clsa -- used to contol switch PCBA-A1
+MODEL subcase3
+ INPUT dv -- voltage across controlled switch
+ sw_status -- switch status of type-76 switch
+ OUTPUT sw_control
+ VAR sw_control, dvi, ps2, ps4, ps6, ps2x, ps2i
+ FUNCTION ptlst POINTLIST (-1E6,480),(0,480),(8,0),(1E6,0)
+ INIT
+ sw_control :=0
+ histdef(ps6):=0
+ integral(ps2x):=0
+ histdef(ps2x) :=0
+ ENDINIT
+ EXEC
+ ps2x := sw_status * 1000
+ ps2 := integral(ps2x) -- corresponds to TACS type-58
+ ps4 := ptlst(ps2) -- corresponds to TACS type-56
+ ps6 := (dv-ps4) AND sw_status
+ IF ps6>0 AND prevval(ps6)<=0 THEN -- corresponds to TACS type-62
+ sw_control := 1
+ ENDIF
+ ENDEXEC
+ENDMODEL
+USE subcase3 AS sub
+ INPUT dv:=abs(pcba-a1) -- voltage across controlled switch
+ sw_status:=stata -- status of type-76 switch
+ OUTPUT clsa:=sw_control -- control signal to controlled switch
+ENDUSE
+RECORD sub.dv AS dv
+ sub.ps2 AS ps2
+ sub.ps4 AS ps4
+ sub.ps6 AS ps6
+ stata AS stata
+ clsa AS clsa
+ENDMODELS
+ SENDA PCBA 10.0 5.0
+ A1 10.0 15.
+ DUMMY 1.
+ STATA 1.
+BLANK CARD ENDING BRANCH CARDS
+ DUMMY .001 .000001 STATISTICS 0
+76STATA .005 .0015 STATISTICSDUMMY 0
+13PCBA A1 CLSA 13
+BLANK CARD ENDING SWITCH CARDS
+14SENDA 188.0 60. 0.0 -1.
+BLANK CARD ENDING SOURCES
+ PCBA A1
+C Step Time PCBA PCBA A1 PCBA TACS TACS TACS TACS TACS TACS
+C A1 A1 DV PS2 PS4 PS6 STATA CLSA
+C 0 0.0 188. 188. 0.0 0.0 188. 0.0 480. 0.0 0.0 0.0
+C 1 .1E-3 187.866421 187.866421 0.0 0.0 187.866421 0.0 480. 0.0 0.0 0.0
+C 2 .2E-3 187.465873 187.465873 0.0 0.0 187.465873 0.0 480. 0.0 0.0 0.0
+C 3 .3E-3 186.798926 186.798926 0.0 0.0 186.798926 0.0 480. 0.0 0.0 0.0
+BLANK CARD ENDs NODE VOLTAGE OUTPUTS
+C 120 .012 -35.227687 -35.227687 0.0 0.0 35.2276871 6.05 117. 0.0 1.0 0.0
+C Switch "PCBA " to "A1 " closing after 1.32000000E-02 sec.
+C 140 .014 0.0 70.7309673 70.7309673 .964122164 0.0 8.05 0.0 0.0 1.0 1.0
+C 160 .016 0.0 113.976248 113.976248 4.51879549 0.0 10.05 0.0 0.0 1.0 1.0
+C 180 .018 0.0 88.9755078 88.9755078 6.91674682 0.0 12.05 0.0 0.0 1.0 1.0
+C 200 .02 0.0 12.7036093 12.7036093 6.17355737 0.0 14.05 0.0 0.0 1.0 1.0
+C Variable maxima : 188. 188. 114.548243 7.06193095 188. 14.05 480. 1.0 1.0 1.0
+C Times of maxima : 0.0 0.0 .0163 .0186 0.0 .02 0.0 .0132 .006 .0132
+C Variable minima : -187.98516 -187.98516 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C Times of minima : .0083 .0083 0.0 0.0 .0133 0.0 .014 0.0 0.0 0.0
+BLANK CARD ending plot
+C Random switching times for energization number 1 :
+C 1 6.5564603E-03 2 9.7966634E-03
+C ==== Table dumping for all subsequent restorations. Time [sec] = 9.00000000E-04
+C Switch "PCBA " to "A1 " closing after 1.52000000E-02 sec.
+C 120. 188. 188. 125.885042 6.21833213 188. 10.25 480. 1.0 1.0 1.0
+C Times of maxima : 0.0 0.0 .016 .0189 0.0 .02 0.0 .0152 .0098 .0152
+C
+C MAIN20 dumps OVER12 dice seed SEEDSV = 5.7295779513082323E+01
+C Statistical distribution of peak voltage at node "A1 ". The base voltage for per unit printout is V-base = 1.88330000E+02
+C Interval voltage voltage in Frequency Cumulative Per cent
+C number in per unit physical units (density) frequency .GE. current value
+C 1 0.0500000 0.94165000E+01 2 2 33.333333
+C 2 0.1000000 0.18833000E+02 0 2 33.333333
+C < < Etc. (omit the zero rows) > >
+C 14 0.7000000 0.13183100E+03 1 3 0.000000
+C Summary of preceding table follows: Grouped data Ungrouped data
+C Mean = 2.41666667E-01 2.22809327E-01
+C Variance = 1.40833333E-01 1.48931988E-01
+C Standard deviation = 3.75277675E-01 3.85917075E-01
+C
+0 188.33 A1 { One and only request for statistical tabulation, of A1
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE
+C 4th of 5 subcases is unrelated to other subcases other than that it
+C involves Monte Carlo simulation. It is added 27 November 2002 to
+C demonstrate that KIZILCAY F-DEPENDENT (KFD) modeling is compatible
+C with STATISTICS (and/or SYSTEMATIC or START AGAIN, although only
+C STATISTICS is demonstrated). As first reported by Ricardo Tenorio of
+C ABB in Vasteras, Sweden, there was incompatibility (execution would
+C hang after the 1st energization had begun) prior to correction on
+C 16 November 2002. Ricardo's initial complaint was about minimum dT (see
+C the January, 2003, newsletter), but shortly thereafter, privately, he
+C reported inability to use STATISTICS switches with KFD data. The data
+C used here is the same as will be found in the 7th subcase of DC-23.
+C Step size dT is plenty big, so there is no question of instability
+C caused by roundoff error. A switch has been added in series with the
+C voltage source, and the associated mean and standard deviation are
+C arbitrarily chosen to give a nice distribution of 4 energizations.
+C Finally, the sinusoidal source has been restored to 60 Hz (in DC-23,
+C 50 Hz was used in order that the period be a rounder number), and the
+C angle has been rotated so the voltage upon closure is small. I.e.,
+C the closures are artificially soft, intentionally, so the base case
+C plot has no big spike at 4 msec.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000100 .040
+ 5 1 1 0 1 -1 4
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 0
+ 60 20 100 100
+ ELEM 99. 1
+C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
+KIZILCAY F-DEPENDENT 6 1.00000E+000 S
+ 2.55564999999999990E-002 1.00000000000000000E+000
+ 2.58174256593059220E-006 1.26190169827623520E-003
+ 3.44528114161255420E-008 6.56757488674167030E-007
+ 2.16578732571550020E-012 6.22037676357393080E-010
+ 7.77318622992575270E-015 1.10717058895704090E-013
+ 2.25856143523397890E-019 5.18376352266273340E-017
+ 3.19918022205034290E-022 4.41171918010679540E-021
+BLANK card ending branch cards
+ GEN ELEM .004 .001 STATISTICS 1
+C Preceding column-80 punch really is not needed. It was added simply to
+C demonstrate that current output of the KFD branches agrees with it.
+BLANK card ending switch cards (none)
+14GEN 187794.214 60. 20. -1.
+BLANK card ending source cards
+ GEN
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN GEN ELEM
+C ELEM TERRA
+C 0 0.0 176468.8371 0.0 0.0
+C 5 .5E-3 161307.6987 0.0 0.0
+C 10 .1E-2 140432.1546 0.0 0.0
+C 15 .0015 114581.7315 0.0 0.0
+C 20 .002 84672.19336 0.0 0.0
+C 25 .0025 51763.10058 0.0 0.0
+C 30 .003 17020.27416 0.0 0.0
+C 35 .0035 -18325.504 0.0 0.0
+C 40 .004 -53022.092 0.0 0.0
+C *** Close switch "GEN " to "ELEM " after 4.10000000E-03 sec.
+C 45 .0045 -85840.3459 -1534.79533 -1534.79533
+C 50 .005 -115617.663 -2541.85468 -2541.85468
+BLANK card ending node voltage output requests
+ CALCOMP PLOT
+C 400 .04 -180519.385 -3271.23717 -3271.23717
+C Variable maxima : 187793.4818 4132.085734 4132.085734
+C Times of maxima : .0324 .0344 .0344
+C Variable minima : -187793.482 -5009.38242 -5009.38242
+C Times of minima : .0074 .0089 .0089
+C <Beg<End<Min>Max>Name1 Name2 Name3 Name4 16-byte title Y-axis label
+ 194 4. 0.0 40.-6.E34.E3ELEM dT = 100 usec H(s) current
+BLANK card ending base-case plot cards
+-2 4000. ELEM { -2 ==> tatistical tabulation of branch current
+C The preceding base current of 4K amps is close to the peak value of the
+C base-case (no-variance) solution. It results in per unit values of a
+C little more than 1. Using default compartment size of .05, this results
+C in reasonable compartment numbers, and a pleasing dispersion of results:
+C Statistical distribution of peak current for branch "ELEM " to " ". Base current for per unit output = 4.00000000E+03
+C Interval current current in Frequency Cumulative Per cent
+C number in per unit physical units (density) frequency .GE. current value
+C 22 1.1000000 4.40000000E+03 0 0 100.000000
+C 23 1.1500000 4.60000000E+03 1 1 75.000000
+C 24 1.2000000 4.80000000E+03 0 1 75.000000
+C 25 1.2500000 5.00000000E+03 1 2 50.000000
+C 26 1.3000000 5.20000000E+03 0 2 50.000000
+C 27 1.3500000 5.40000000E+03 1 3 25.000000
+C 28 1.4000000 5.60000000E+03 1 4 .000000
+C Summary of preceding table follows: Grouped data Ungrouped data
+C Mean = 1.26250000E+00 1.26057789E+00
+C Variance = 1.22916667E-02 1.35490825E-02
+C Standard deviation = 1.10867789E-01 1.16400526E-01
+BLANK card ending statistical tabulation requests
+BEGIN NEW DATA CASE
+C 5th of 5 subcases is a modified version of the 1st. The FIND command
+C is added as earlier illustrated in DC-24. That already illustrates the
+C use of DISK to create deterministic data SHOT*.DAT corresponding to
+C an EXCLUDE-d shot. But what DC-24 does not illustrate is RESIMULATE
+C to simulate the just-created data. Also missing was random opening and
+C use of the optional /MEMSAV switch. So, provide these here. This
+C data subset is added 6 October 2002. Until 27 November 2002, it was
+C the 4th subcase. Note it always must be last.
+PRINTED NUMBER WIDTH, 18, 3, { Extra precision and separation for 3 variables
+CHANGE PRINTOUT FREQUENCY
+ 5 5
+BEGIN PEAK VALUE SEARCH, 0.525, { Ignore 1st cycle, which has time less than 1/2
+ .01 .90
+C MEMSAV Note value 0 is keyed
+ 1 1 0 0 1 0 1 2
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 1
+ GEN LOAD 1.0 { 1st of 3 identical resistors hung from source
+ GEN LOAD1 1.0 { 2nd of 3 identical resistors hung from source
+ GEN LOAD2 1.0 { 3rd of 3 identical resistors hung from source
+ DUMY 1.0 { Connect independent Monte Carlo switch node
+BLANK card ending branch cards
+ DUMY .40 .06 STATISTICS { Reference
+C Preceding switch does nothing for network; but it is referenced by the two
+C dependent switches of LOAD1 and LOAD2. Following LOAD is independent:
+ LOAD .60 0.10 3333.STATISTICS { Independent
+ LOAD1 .20 0.08 3333.STATISTICSDUMY { Dependent
+ LOAD2 .20 0.08 3333.STATISTICSDUMY { Dependent
+BLANK card terminating switch cards
+14GEN 100. 2.0 -1.
+BLANK card terminating sources
+ LOAD LOAD1 LOAD2 GEN
+BLANK card ending requests for program outputs (just node voltages, here)
+ PRINTER PLOT
+$CLOSE, UNIT=4 STATUS=KEEP { Disconnect base-case .PL4 file for TPPLOT use
+$OPEN, UNIT=4 STATUS=C-like FILE=dummy.pl4 ! { Connect C-like scratch file
+BLANK card ending non-existent plot cards for the base case
+STATISTICS DATA 1.0500001 0.0
+ LOAD
+FIND { Enter interactive search for which shot and which variable gave extremum
+C Normally the user does not know which shot he wants, so he first will use
+C EXCLUDE to find the worst transients, and then he wants data for this.
+C See DC-24 for this technique. But it also is possible for the user manually
+C to name the shot of interest. This is what is done here:
+C EXCLUDE { Repeat the preceding search after 1st excluding the just-found shot
+C < Shot # Cols 25-32 are I8 data for shot # of interest
+DISK /LIST /MEMSAV 1 { Create determinstic disk file for shot # 1
+RESIMULATE { Abort this data case. Begin with SHOT0001.DAT just created by DISK
+C Any data card following RESIMULATE should be ignored. So, this is a good
+C place to add miscellaneous comments. Begin these with mention of /OPEN
+C --- another flag of the DISK subcommand that is not being illustrated.
+C Because there is no /OPEN qualifier, $OPEN and $CLOSE cards will be
+C converted to comment cards. If /OPEN were added, they would be passed
+C through without modification. Another unused feature is /FULL (see DC-24
+C for an illustration). Lack of /FULL means that switch times will be
+C optimally encoded but with a leading blank byte. This provides separation
+C from what precedes the number. Yes, one digit is being given up, but it is
+C highly unlikely that this will make any difference, considering the DELTAT
+C discretization of use. Use of /MEMSAV has no practical effect in this
+C case because the value keyed on the integer miscellaneous data card is zero.
+C This is deliberate. Normally, the field would be left blank, but if this
+C were the case, one could not be sure that the /MEMSAV flag was working.
+C The user will note that the zero is passed through, demonstrating opeation.
+C A final item: For the record, request cards that always are destroyed
+C (missing in the DISK output) are:
+C OMIT BASE CASE LINEAR BIAS USAGE
+C TRULY RANDOM NUMBERS MODELS PROCESSES EXTREMA
+C REPEATABLE RANDOM NUMBERS USER SUPPLIED SWITCH TIMES
+C RANDOM NUMBER GENERATOR SEED
+C 30 December 2003, add /CYCLE qualifier to continue to have T-open = 0.0
+C As Orlando Hevia observed in E-mail of that day, this normally is not the
+C engineering choice. Normally, a switch that closes should remain closed,
+C and DICTAB is being modified to do this. T-close = 1.E+9 will be seen on
+C the modified switch card. To restore 0.0, add /CYCLE (which will allow
+C the switch to cycle open again (the status at time zero).
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc49.dat b/benchmarks/dc49.dat
new file mode 100644
index 0000000..68d4d2a
--- /dev/null
+++ b/benchmarks/dc49.dat
@@ -0,0 +1,30 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-49
+C Companion case to DC-32, which had MEMSAV=1 use. Development was first
+C documented in Volume X EMTP Memoranda, 3 July 1980, Pagination MSDO.
+C Node LOADA has a one-ohm resistor connected to FAULT, and this in turn
+C is connected to ground via switch number one. This fault switch was open
+C during DC-32, but will here be closed at 12 msec (the 1st step beyond
+C the backed-off switching time of 11.99 msec).
+C $OPEN, UNIT=22 FILE=dc32to49.bin STATUS=OLD FORM=UNFORMATTED ! { (hold case)
+$OPEN, UNIT=LUNIT2 FILE=dc32.bin STATUS=OLD FORM=UNFORMATTED ! { (hold case)
+START AGAIN
+ 1 .011990
+ 9999
+$CLOSE, UNIT=LUNIT2 STATUS=KEEP
+$OPEN, UNIT=LUNIT2 STATUS=SCRATCH FORM=UNFORMATTED
+MISCELLANEOUS DATA CARDS
+ .000020 .018 .010
+ 1 1 0 0 1 0 0 2
+$OPEN, UNIT=LUNIT4 FILE=dc32.pl4 STATUS=APPEND ! { C-like usage adds at end
+C The following step numbers are a continuation of DC-32, which simulated
+C 500 steps (DELTAT = 20 microseconds, TMAX = 10 milliseconds).
+CHANGE PRINTOUT FREQUENCY
+ 500 1 502 2 510 10 550 50
+TIME STEP LOOP
+ PRINTER PLOT
+ 144 1. 10. 18. LOADA LOADB { Axis limits: (-2.784, 1.443)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc49old.dat b/benchmarks/dc49old.dat
new file mode 100644
index 0000000..525707f
--- /dev/null
+++ b/benchmarks/dc49old.dat
@@ -0,0 +1,73 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-49
+C Companion case to DC-32, which had MEMSAV=1 use. Development was first
+C documented in Volume X EMTP Memoranda, 3 July 1980, Pagination MSDO.
+C Node LOADA has a one-ohm resistor connected to FAULT, and this in turn
+C is connected to ground via switch number one. This fault switch was open
+C during DC-32, but will here be closed at 12 msec (the 1st step beyond
+C the backed-off switching time of 11.99 msec).
+$OPEN, UNIT=22 FILE=dc32to49.bin STATUS=OLD FORM=UNFORMATTED ! { (hold case)
+C $OPEN, UNIT=22 FILE=dc32.bin STATUS=OLD FORM=UNFORMATTED ! { (hold case)
+START AGAIN
+ 1 .011990
+ 9999
+$CLOSE, UNIT=22 STATUS=KEEP
+$OPEN, UNIT=22 STATUS=SCRATCH FORM=UNFORMATTED
+MISCELLANEOUS DATA CARDS
+ .000020 .018 .010
+ 1 1 0 0 1 0 0 2
+$OPEN, UNIT=4 FILE=dc32.pl4 STATUS=APPEND ! { C-like usage adds at end
+C The following step numbers are a continuation of DC-32, which simulated
+C 500 steps (DELTAT = 20 microseconds, TMAX = 10 milliseconds).
+CHANGE PRINTOUT FREQUENCY
+ 500 1 502 2 510 10 550 50
+C Step Time SECB SECA SECC AN4 AN5
+C CATH1 CATH2 CATH3 CATH4 CATH5
+C
+C AN6 AN5 AN4 CATH6 CATH5
+C
+C TRANC TRANB TRANA POLEB POLEA
+C
+C GENB GENC SECB SECA SECC
+C CATH1 CATH2 CATH3
+C TRANB TRANC
+C GENC GENA
+C 502 .01004 -211.3618 0.0 -239.0341 -46.136559 -300.6658
+C -141.67108 -141.67108 -141.67108 -67.862224 158.994718
+C -9.9160749 -77.285888 86.0849016 -141.67108 143.499575
+C -76.194786 -9.4236639 0.0 3.09902854 0.0
+C -.01815669 .012150754
+C Etc. (skip to next interesting event, which is the 1st switching):
+C Diode "SECA " to "CATH2 " opening after 1.02000000E-02 sec.
+C 510 .0102 -150.8714 0.0 -285.45775 -.45751033 -283.77559
+C -140.50318 -140.50318 -140.50318 -5.4593198 143.272405
+C -45.725494 -49.733993 97.8757247 -140.50318 145.412079
+C -48.641182 -45.235225 0.0 -.42793493 0.0
+C -.03153852 .006633174
+C Diode "AN4 " to "CATH4 " closing after 1.02200000E-02 sec.
+TIME STEP LOOP
+C Diode "SECC " to "CATH3 " opening after 1.72000000E-02 sec.
+C Diode "AN6 " to "CATH6 " opening after 1.72200000E-02 sec.
+C Diode "AN4 " to "CATH4 " closing after 1.77800000E-02 sec.
+C Diode "SECB " to "CATH1 " closing after 1.78400000E-02 sec.
+C 900 .018 0.0 0.0 -200.80168 0.0 -207.67249
+C -156.26361 -156.26361 -157.81916 105.964948 51.408884
+C -89.469147 18.0212454 73.9589646 -156.26361 41.4269674
+C 19.522284 -89.301354 12.9075961 1.99638332 0.0
+C -.00951582 -.00302247
+C Variable minima : -307.90065 -319.51502 -314.74562 -347.33303 -354.13903
+C -193.81352 -193.81352 -193.81352 -165.05691 -166.43183
+C -94.926015 -95.222122 -99.426568 -193.81352 38.4109479
+C -93.876407 -93.889586 -.89624956 -1.2792333 -.74181951
+C -.0346548 -.03640764
+C Times of minima : .00706 .00624 .00544 .0142 .015
+C .01488 .01488 .01488 .0146 .01626
+C .01564 .0148 .01646 .01488 .01726
+C .0173 .00312 .00372 .01552 .00216
+C .0177 .01604
+ PRINTER PLOT
+ 144 1. 10. 18. LOADA LOADB { Axis limits: (-2.784, 1.443)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc4bincl.dat b/benchmarks/dc4bincl.dat
new file mode 100644
index 0000000..a597ab7
--- /dev/null
+++ b/benchmarks/dc4bincl.dat
@@ -0,0 +1,12 @@
+93TRAN NAME Magnet .000 30. 3
+ -5.0 -100. { Unlike 1st subcase of DC-4, we here input
+ -.1 -50. { the 3rd quadrant of the characteristic as
+ -.02 -45. { explicit data points. This is required in
+ -.01 -40. { order latr to apply a 3rd-quadrant initial
+ -.000 -30. { condition and avoid "OVER13" KILL = 34.
+ .000 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
diff --git a/benchmarks/dc4bins.dat b/benchmarks/dc4bins.dat
new file mode 100644
index 0000000..fd25e66
--- /dev/null
+++ b/benchmarks/dc4bins.dat
@@ -0,0 +1,58 @@
+/SOURCE
+14GEN 377. 60. -1.
+/TACS
+TACS HYBRID
+ 1FLUX +GEN
+ 1.0
+ 0.0 1.0
+90GEN
+91GROUND
+99CURR -1.0* GROUND
+33FLUX GEN GROUNDCURR
+/OUTPUT
+ GEN
+/PLOT
+ CALCOMP PLOT { Needed because 1st subcase leaves plotting in PRINTER PLOT mode
+C Last step: 400 .02 116.4994069 2.765761424 -2.76576141 .9416257618
+C Last step continued .....: 116.4994069 2.765761424 -2.76576142
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ 194 2. 0.0 20. TACS CURR ABCDEFGHIJKLMNOP1234567890123456
+ X-Y PLOT Horizontal Axis label123
+ 10. -1.1 1.1
+ 8. -4.0 4.0
+ 194 4. 0.0 20. TACS FLUX TACS CURR Graph heading---Vertical axis la
+ X-Y PLOT Horizontal Axis label123
+ 9999. -1.1 1.1 "9999." returns to conventional (vs. time) plotting
+ 8. -4.0 4.0
+ PRINTER PLOT
+ 194 4. 0.0 20. TACS CURR { Axis limits: (-3.500, 3.500)
+C Now that all plotting is done with, let's illustrate the three declarations
+C that will choose the destination of any subsequent "CALCOMP PLOT" use:
+ SCREEN PLOT { If a vector plot were to follow, it would go only to the screen
+ PEN PLOT { If a vector plot were to follow, ... go only to CalComp plotter
+ SCREEN PEN { If a vector plot were to follow, .. go to both screen & plotter
+C The preceding 3 declarations really could only be tested by a user who
+C had both a vector-graphic screen and a CalComp plotter. Hence no use.
+C The following active card of DC-33 must be disabled for $INSERT use. The
+C problem is this. For $INCLUDE, the /LOAD FLOW disappears during data
+C assembly, leaving just comment cards that have nothing to do with any load
+C flow. So, they were tolerated. But not so for $INSERT which retains
+C the data for this non-existent feature. So, remove entire block:
+C /LOAD FLOW
+/BRANCH
+96GROUNDGEN 8888. 1.E-9 1
+ 1.0 -0.7
+ 2.0 0.9
+ 3.5 1.0
+ 9999.
+/REQUEST
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+/INITIAL
+ 2GROUND 0. { Node voltage initial condition in fact changes nothing
+C Initial conditions really are not a part of this problem, although we do want
+C to illustrate that they, too, can be sorted, and inserted after /LOADFLOW
+C The preceding redefinition of node voltage at GROUND changes zero to zero.
+/SWITCH
+ GROUND MEASURING 1
diff --git a/benchmarks/dc4cins.dat b/benchmarks/dc4cins.dat
new file mode 100644
index 0000000..5497e7c
--- /dev/null
+++ b/benchmarks/dc4cins.dat
@@ -0,0 +1,60 @@
+/SOURCE
+14GEN 377. 60. -1.
+/MODELS { 9 July 1995, the former /TACS was changed to this new class
+MODELS { Note the change; the 1st subcase had "TACS HYBRID" here
+INPUT GEN {V(GEN)}, GROUND {I(GROUND)}
+MODEL DC33
+INPUT gen, ground
+VAR flux, curr
+HISTORY gen {DFLT: 0}, flux {DFLT: 0}, ground {DFLT: 0}
+INIT
+ curr:=0
+ENDINIT
+EXEC
+ COMBINE AS INTEGRATOR
+ LAPLACE(flux/gen):=(1.0|S0)/(1.0|S1)
+ ENDCOMBINE
+ curr:=-ground
+ENDEXEC
+ENDMODEL
+USE DC33 AS DC33
+ INPUT GEN:=GEN, GROUND:=GROUND
+ENDUSE
+RECORD
+ DC33.FLUX AS FLUX
+ DC33.GEN AS GEN
+ DC33.GROUND AS GROUND
+ DC33.CURR AS CURR
+ENDRECORD
+ENDMODELS
+/OUTPUT
+ GEN
+/PLOT
+C Last step: 400 .02 116.4994069 2.765761424 -2.76576141 .9604757618
+C Variable maxima : 377. 3.499613141 3.499909256 1.00939921
+C Times of maxima : 0.0 .00415 .0125 .00415
+C Variable minima : -376.992558 -3.49990926 -3.49961314 -.990568949
+C Times of minima : .00835 .0125 .00415 .0125
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ CALCOMP PLOT
+ SCREEN PLOT
+ 194 2. 0.0 20. MODELSCURR ABCDEFGHIJKLMNOP1234567890123456
+ X-Y PLOT Horizontal Axis label123
+ 10. -1.1 1.1
+ 8. -4.0 4.0
+ 194 4. 0.0 20. MODELSFLUX MODELSCURR Graph heading---Vertical axis la
+ X-Y PLOT Horizontal Axis label123
+ 9999. -1.1 1.1 "9999." returns to conventional (vs. time) plotting
+ 8. -4.0 4.0
+/BRANCH
+96GROUNDGEN 8888. 1.E-9 1
+ 1.0 -0.7
+ 2.0 0.9
+ 3.5 1.0
+ 9999.
+/REQUEST
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+/SWITCH
+ GROUND MEASURING 1
diff --git a/benchmarks/dc4dins.dat b/benchmarks/dc4dins.dat
new file mode 100644
index 0000000..f45632f
--- /dev/null
+++ b/benchmarks/dc4dins.dat
@@ -0,0 +1,64 @@
+/MODELS
+MODELS { Request to begin MODELS data appears just once
+C End of fixed data. Begin variable /-cards, which can appear in any
+C order. To illustrate that TACS data really will be sorted to precede
+C MODELS data, note that /TACS follows /MODELS in the following.
+C I.e., we rely on /-card sorting to correct this. TACS data is
+C separate and distinct from MODELS data just as branch data is
+C separate and distinct from switch or source data.
+/MODELS
+INPUT deltav {TACS(vsw)}
+OUTPUT grid
+MODEL dc30
+ INPUT dv
+ VAR grid
+ OUTPUT grid
+ EXEC
+ IF abs(dv)>=1.5e8*t +1e5 THEN grid:=1 ELSE grid:=0 ENDIF
+ ENDEXEC
+ENDMODEL
+USE dc30 AS dc30
+ INPUT dv:=deltav
+ OUTPUT grid:=grid
+ENDUSE
+RECORD
+ dc30.dv AS dv
+/TACS
+TACS HYBRID { Request to begin TACS data appears just once
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW = BUS2 - BUS3
+27DV { MODELS variable DV will define Type-27 TACS source of the same name
+33BUS2 BUS3 VSW DV
+/BRANCH
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+/SWITCH
+ BUS2 BUS3 -1. 1.E9
+ NAME: Valve ! { Request "NAME: " of cols. 3-8 precedes A6 valve name in 9-14
+11BUS2R BUS3R 20. GRID 12
+/SOURCE
+14GEN 66500. 50. -2.0508 -1.
+/OUTPUT
+C Step Time BUS2R TACS TACS TACS TACS MODELS
+C BUS3R BUS2 BUS3 VSW DV DV
+C *** Phasor I(0) = -1.5049840E+01 Switch "BUS2 " to "BUS3 " closed in the steady-state.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C *** Open switch "BUS2 " to "BUS3 " after 1.00000000E-06 sec.
+C 1 .1E-5 0.0 64752.0751 64752.0751 0.0 0.0 0.0
+C 2 .2E-5 -506.98951 64680.6667 65187.6562 -506.98951 0.0 -506.98951
+C 3 .3E-5 -1509.364 64544.7937 66054.1577 -1509.364 -506.98951 -1509.364
+C 4 .4E-5 -2482.2238 64430.506 66912.7297 -2482.2238 -1509.364 -2482.2238
+C 5 .5E-5 -3414.3602 64348.9091 67763.2693 -3414.3602 -2482.2238 -3414.3602
+C End of /-card data. The only thing that remains are the various blank
+C cards that terminate the various data classes. Note the one for MODELS
+C (optional for MODELS, but necessary for sorting):
diff --git a/benchmarks/dc4drtt.dat b/benchmarks/dc4drtt.dat
new file mode 100644
index 0000000..6275ceb
--- /dev/null
+++ b/benchmarks/dc4drtt.dat
@@ -0,0 +1,62 @@
+KARD 2 2 2 3 3 4 4 4 5 5 6 6 6 6 7 7 7 7 8 8 8 8 9 9 9
+ 9 10 10 10 10 11 11 12 12 12 13 13 13 14 14 14 15 15 15 16 16 16 18 19 19
+ 20 20 21 21 22 22 23 23 24 24 26
+KARG 2 3 4 4 5 2 4 6 6 7 5 5 6 8 5 5 6 9 5 5 6 10 5 5 6
+ 11 5 5 6 12 4 13 4 5 14 4 5 15 4 5 16 4 5 17 4 5 18 1 7 13
+ 8 14 9 15 10 16 11 17 12 18 3
+KBEG 45 26 -7 26 -7 32 24 -7 26 -7 41 57 26 -7 41 62 26 -7 41 62 26 -7 41 62 26
+ -7 41 62 26 -7 26 -7 26 34 -7 26 34 -7 26 34 -7 26 34 -7 26 34 -7 3 17 1
+ 17 1 17 1 17 1 17 1 17 1 25
+KEND 50 31 13 32 12 37 30 20 39 22 46 62 39 22 46 67 39 22 46 67 39 22 46 67 39
+ 22 46 67 39 22 32 22 32 39 22 32 39 22 32 39 22 32 39 22 32 39 22 8 32 16
+ 32 16 32 16 32 16 32 16 32 16 30
+KTEX 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
+ 0 0 0 0 0 0 0 0 0 0 0
+$LISTON
+ IMINIMA = 300000.0*RRRRRR/6.283185307/AAAAAA**2
+ FACTOR = (200000.0/IMINIMA)**(0.2)
+ EEEEEEEEEEEEEE = IMINIMA*AAAAAA
+ VOLTI1__________ = EEEEEEEEEEEEEE/SQRT(1.0+1.0)
+ VOLTI2__________ = EEEEEEEEEEEEEE*FACTOR/SQRT(1.0+FACTOR)
+ VOLTI3__________ = EEEEEEEEEEEEEE*FACTOR**2.0/SQRT(1.0+FACTOR**2.0)
+ VOLTI4__________ = EEEEEEEEEEEEEE*FACTOR**3.0/SQRT(1.0+FACTOR**3.0)
+ VOLTI5__________ = EEEEEEEEEEEEEE*FACTOR**4.0/SQRT(1.0+FACTOR**4.0)
+ VOLTI6__________ = EEEEEEEEEEEEEE*FACTOR**5.0/SQRT(1.0+FACTOR**5.0)
+ KORRI1__________ = IMINIMA
+ KORRI2__________ = IMINIMA*FACTOR
+ KORRI3__________ = IMINIMA*FACTOR**2.0
+ KORRI4__________ = IMINIMA*FACTOR**3.0
+ KORRI5__________ = IMINIMA*FACTOR**4.0
+ KORRI6__________ = IMINIMA*FACTOR**5.0
+$LISTON
+99BUSBUS
+KORRI1__________VOLTI1__________
+KORRI2__________VOLTI2__________
+KORRI3__________VOLTI3__________
+KORRI4__________VOLTI4__________
+KORRI5__________VOLTI5__________
+KORRI6__________VOLTI6__________
+ 9999.
+$INSERT dc4DRTT2.dat WSMWSM
+$EOF User-supplied header cards follow. 24-Jun-04 10:04:06
+C Note about modification. The original file ended on changes to
+C card 24. Card 25 is the "9999." card, and I insert new card 26 to
+C test nested insert. This takes 1 more arg use, to replace cols. 21-26).
+ARG, BUSBUS, AAAAAA, RRRRRR
+NUM, AAAAAA, RRRRRR
+DEP, IMINIMA
+DEP, FACTOR
+DEP, EEEEEEEEEEEEEE
+DEP, VOLTI1__________
+DEP, VOLTI2__________
+DEP, VOLTI3__________
+DEP, VOLTI4__________
+DEP, VOLTI5__________
+DEP, VOLTI6__________
+DEP, KORRI1__________
+DEP, KORRI2__________
+DEP, KORRI3__________
+DEP, KORRI4__________
+DEP, KORRI5__________
+DEP, KORRI6__________
diff --git a/benchmarks/dc4drtt2.dat b/benchmarks/dc4drtt2.dat
new file mode 100644
index 0000000..1014ee8
--- /dev/null
+++ b/benchmarks/dc4drtt2.dat
@@ -0,0 +1,12 @@
+KARD 1
+KARG 1
+KBEG 53
+KEND 58
+KTEX 0
+ DUMMY 1.0 { " "
+C 2nd of two cards of DRTT2.LIB is just a fixed comment card.
+$EOF
+Note that argument AAAAAA is to fill the 6 blanks between the quotation marks.
+Because of the preceding "{", this is just a comment field, so will be
+ignored by ATP. As for the data, this is a 1-ohm resistor from new
+node DUMMY to ground. This should not modify the simulation at all.
diff --git a/benchmarks/dc4ins.dat b/benchmarks/dc4ins.dat
new file mode 100644
index 0000000..f529777
--- /dev/null
+++ b/benchmarks/dc4ins.dat
@@ -0,0 +1,22 @@
+/SOURCE
+14WHITE 1.02 60. 0.0 -1.
+/BRANCH
+ WHITE YELLOW .05 .20
+ YELLOWGREEN .05 .20
+ GREEN RED .05 .20
+ RED BLUE .10 .40
+/LOAD FLOW
+C Next come power constraints of the load flow. There will be one
+C for each non-slack generator:
+ RED -0.4 -.14 .85 1.15
+ GREEN 1.0 0.3 .85 1.15
+ BLUE -.15 .025 .85 1.15
+ YELLOW -0.6 -0.2 .85 1.15
+C The following load-flow miscellaneous data card has two peculiarities. The
+C use of VSCALE = 1.414 is the special flag requesting RMS rather than peak
+C voltages. The use of KTAPER = 0 ensures constant acceleration factors
+C (this works for this data).
+C NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA VSCALE KTAPER
+ 1 500 20 1 .00001 0.1 7.0 1.414 0
+/REQUEST
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
diff --git a/benchmarks/dc5.dat b/benchmarks/dc5.dat
new file mode 100644
index 0000000..2388354
--- /dev/null
+++ b/benchmarks/dc5.dat
@@ -0,0 +1,387 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-5
+C Saturable TRANSFORMER problem with the same basic solution as DC-4.
+C 1st of 7 subcases illustrates narrow (79-column) output.
+$WIDTH, 79, { Request narrow, 80-column LUNIT6 output as an illustration
+BEGIN PEAK VALUE SEARCH, -1, { Time of -1 is request to read following card
+ 0.5 1.5 2.5 3.5 { Limit extrema to these 2 subranges
+PRINTED NUMBER WIDTH, 10, 2, { Request max precision of 6 numbers in 80 bytes
+ .010 6.0
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+C The following $VINTAGE restoration is added 3 November 2001 to illustrate
+C the associated rejection message. The request is meaningless since there is
+C no preceding $VINTAGE request. For correct use, see later subcase.
+$VINTAGE, -1 { Cancel preceding $VINTAGE request, returning the value to zero
+ GEN GENT 1.E-3 3
+ LOAD 1.0E3 3
+ TRANSFORMER .005 30.TRANFF 1.E4 3
+ .005 30.
+ .01 40.
+ .02 45.
+ 0.1 50.
+ 5.0 100.
+ 9999
+ 1GENT OPEN 5.0 5.E4 50.
+ 2LOADFF 20. 2.E5 100.
+ OPEN 1.E7
+ TRANSFORMER TRANFF TRAN 3
+ 1GENT
+ 2LOAD
+BLANK card finishing all branch cards
+BLANK card ending non-existent switch cards
+14GEN 70. .1591549 -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C GEN |GENT *
+C GENT |GEN *TRANFF*TRAN *
+C LOAD |TERRA *TERRA *
+C TRANFF |GENT *OPEN *OPEN *OPEN *
+C OPEN |TERRA *TRANFF*TRANFF*TRANFF*
+C LOADFF |TERRA *
+C TRAN |TERRA *TERRA *TERRA *GENT *
+C TERRA |LOAD *LOAD *OPEN *LOADFF*TRAN *TRAN *TRAN *
+C |
+C --------------+------------------------------
+BLANK card terminating program source cards
+C Total network loss P-loss by summing injections = 8.286936503209E+00
+C Inject: GEN 70. .25769841013987 8.2869365032093 9.0194443548954
+C Inject: 0.0 -23.2507996 3.5604859026308 0.9187857
+C ---- Initial flux of coil "TRANFF" to "OPEN " = 3.08658228E-02
+C ---- Initial flux of coil "TRAN " to " " = -1.13293881E+01
+C Step Time GEN LOAD TRANFF TRAN LOAD TRAN
+C GENT TERRA OPEN TERRA
+C
+C GENT LOADFF OPEN TRANFF GEN TRANFF
+C OPEN
+C
+C TRAN GEN LOAD
+C TERRA GENT TERRA
+C 0 0.0 .2368E-3 116.1389 .0185382 63.72954 116.1389 63.72954
+C 69.99976 .0370763 69.98119 69.99973 70. .5144E-5
+C -.001888 .2367696 .1161389
+C 1 .01 .2378E-3 116.583 .0182286 63.83965 116.583 63.83965
+C 69.99626 .0364571 69.978 69.99623 69.9965 .5175E-5
+C -.001782 .237775 .116583
+ 1 { Request for all node voltage outputs
+C 600 6.0 .1743E-3 86.66574 .0264244 54.92308 86.66574 54.92308
+C 67.21171 .0528488 67.18516 67.21158 67.21189 .4076E-5
+C -.004558 .1742727 .0866657
+C Variable maxima : .3281E-3 123.4893 .0360051 61.35953 123.4893 61.35953
+C 67.21171 .0720101 67.18516 67.21158 67.21189 .6001E-5
+C .2904095 .3281234 .1234893
+C Times of maxima : 1.49 0.5 5.25 0.5 0.5 0.5
+C 6.0 5.25 6.0 6.0 6.0 .54
+C 1.49 1.49 0.5
+C Variable minima : -.349E-3 -122.626 -.033186 -63.9283 -122.626 -63.9283
+C -69.9997 -.066372 -69.9811 -69.9996 -69.9999 -.6E-5
+C -.32526 -.349375 -.122626
+C Times of minima : 4.67 3.56 2.51 3.35 3.56 3.35
+C 3.14 2.51 3.14 3.14 3.14 3.68
+C 4.76 4.67 3.56
+ PRINTER PLOT
+C Axis limits: (-2.544, 2.624)
+ 193 .5 0.0 4.0 LOAD GEN GENT
+BLANK card terminating plot cards
+$WIDTH, 132, { Done with 80 columns, so return to wide, 132-column LUNIT6 output
+BEGIN NEW DATA CASE
+C 2nd of 7 subcases. This is the former (before January, 1987) DC-43.
+C Test of [A], [R] usage ("USE AR"). For DIAGNOSTIC, see DCPRINT-14.
+C [A],[R] data cards used here were punched by 3rd subcase of DCNEW-8.
+C Solution can be checked by hand, since it is really just 1 big series
+C circuit, with an ideal transformer separating the primary & secondary.
+C The turns ratio is 2:1, with the primary being the high-voltage side.
+C Transformer has bottoms of primary and secondary grounded. The primary
+C has a 1-volt, 1-[rad/sec] sinusoidal voltage source, that is connected
+C to the transformer through a reactance X = j0.1. Values X = 0.1 ohm
+C and R = 0.2 ohm are next, coming from the [A], [R] matrices when
+C reflected entirely to the primary of the ideal transformer. Finally,
+C the secondary is closed through a 1-ohm resistor. Reflecting all to
+C the primary, R = 4.2 ohm, X = j0.2, or Z-tot = 4.2047592083257 at
+C an angle of 2.726226 degrees. Reciprocating gives phasor current
+C I-source = .23782576065627 at an angle of -2.726226 degrees. This
+C can be checked exactly. Then, correctness of the time-step solution
+C follows by smoothness (there is no discontinuity on the first step).
+PRINTED NUMBER WIDTH, 25, 2, { Request 25-column precision for 4 output columns
+C Apollo will not deliver more than about 16 digits of output, since
+C this is the precision limit of REAL*8. Hence the preceding width
+C request will in fact have more than two blank separator columns.
+ .100 6.0.1591549 { Note XOPT = 1 / (2 * Pi ), and w = 1.0 [rad/sec]
+ 1 1 1 1 1 -1
+ 5 5
+ GEN PRIM NAME Excite 0.1 { Branch named for later current output
+ USE AR { Col. 3-8 request switches to [A], [R] usage
+ 1SEC 40. .025
+ 2PRIM -20. 10. 0.1
+ USE RL { Col. 3-8 request returns to [R], [L] usage
+ SEC 1.0
+BLANK card ending branches
+BLANK card ending non-existent switches
+14GEN 1.0 .15915 0.0 -1.
+C The following forward and reverse flows are for 1st phasor branch:
+C GEN 1.0 1.0 .23755659127612 .23782576065627
+C 0.0 0.0 -.0113118686787 -2.7262268
+C
+C PRIM .99886884795867 .99915127584094 -.2375565912761 .23782576065627
+C -.0237549277475 -1.3623416 .01131186867874 177.2737732
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.187782956381E-01
+C Inject: GEN 1.0 1.0 .23755659127612 .23782576065627 .11877829563806
+C Inject: 0.0 0.0 -.0113118686787 -2.7262268 .00565593433937
+C
+C Step Time SEC PRIM GEN GEN
+C PRIM
+C 0 0.0 .4751131825522436 .9988688479586737 1.0 .2375565912761218
+C 1 0.1 .4749983247294277 .9962504852347109 .9950044753394702 .2374991623647137
+C 2 0.2 .470139617191015 .9836805108498354 .9800678118911468 .2350698085955073
+C 3 0.3 .460583675647767 .961282487768105 .9553392425962317 .2302918378238831
+ 1 XXXX { Cols. 1-2 requests all node voltage outputs; A6 nonblank ==> another
+-1Excite { Cols 1-2 type code "-1" ===> request for branch current outputs
+BLANK card terminating selective (and all node voltages) output requests
+C The secondary current need not be monitored, since it is twice
+C the primary current, and is equal to the voltage of node SEC.
+C 55 5.5 .3206618611460799 .690969577591206 .708549242853354 .1603309305730407
+C 60 6.0 .4498323687101901 .9523830926143848 .9601182008522722 .2249161843550953
+C Max : .4751131825522436 .9988688479586737 1.0 .2375565912761218
+C Times of max: 0.0 0.0 0.0 0.0
+C Min -.4756234626742181 -.9985549285218509 -.999131142217714 -.2378117313371089
+C T-min 3.200000000000002 3.200000000000002 3.100000000000001 3.200000000000002
+ PRINTER PLOT
+C Following plot shows in-phase V-prim and V-sec, with ratio about 2 to 1:
+ 143 1. 0.0 6.0 PRIM SEC { Axis limits: (-9.986, 9.989)
+C Following plot shows gen current, I = .23782576065627 /__ -2.726226 degrees
+ 193 1. 0.0 6.0 GEN PRIM { Axis limits: (-2.378, 2.376)
+BLANK card ending non-existent plot cards
+BEGIN NEW DATA CASE
+C 3rd of 7 subcases. Test of [A], [R] usage ("USE AR"), with the
+C branch cards punched by the 3rd subcase of DCNEW-8. Trivial 1-phase
+C problem. For identical network using [R], [L], see the 4th subcase
+PRINTED NUMBER WIDTH, 15, 2, { Request more than enough precision for 3 outputs
+ .0005 .050 50.
+ 1 1 1 1 2 -1
+ 5 5
+ S1 25.782 1
+$VINTAGE, 1
+$UNITS, 0., 0. {XOPT, COPT
+ USE AR
+ 1P1 609.14725451514 .05780196523054
+ 2S1 -355.0194488376 0.0
+ 207.17315316786 .16973833711262
+C $VINTAGE, 0
+C 3 November 2001, replace the preceding by just-added cancellation of
+C the preceding $VINTAGE,1. Of course, the starting value is zero:
+$VINTAGE, -1 { Cancel preceding $VINTAGE request, returning the value to zero
+BLANK card ending branches
+BLANK card ending non-existent switches
+14P1 311. 50. 000.0 0. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 5.418483002156E+03
+C P1 311. 311. 34.845549853093 34.95612473617 5418.483002156
+C 0.0 0.0 -2.77818502017 -4.5584667 432.0077706365
+C Step Time S1 P1 S1
+C TERRA
+C 0 0.0 524.252284827 311. 20.3340425424
+C 1 .5E-3 522.548672234 307.171073925 20.2679649458
+C 2 .1E-2 507.987759921 295.778576568 19.7031944737
+C 3 .0015 480.917065702 277.103029023 18.6532102126
+ 1
+C 95 .0475 -349.18551236 -219.91020895 -13.543771327
+C 100 .05 -524.24501851 -311. -20.333760706
+C Variable maxima : 524.252284827 311. 20.3340425424
+C Times of maxima : 0.0 0.0 0.0
+C Variable minima : -524.24501851 -311. -20.333760706
+C Times of minima : .01 .01 .01
+ PRINTER PLOT
+ 144 4. 0.0 20. S1 { Axis limits: (-5.242, 5.243)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 7 subcases. Test of [R], [wL] usage ("USE RL"), with the
+C branch cards punched by the 3rd subcase of DCNEW-8. This is the same
+C simulation as the preceding subcase, only [R],[L] replaces [A],[R]
+PRINTED NUMBER WIDTH, 15, 2, { Request more than enough precision for 3 outputs
+ .0005 .050 50.
+ 1 1 1 1 2 -1
+ 5 5
+ S1 25.782 1
+$VINTAGE, 1,
+$UNITS, 50., 0., {XOPT, COPT
+ USE RL
+ 1P1 .05780196523054 406.40657142442
+ 2S1 0.0 696.43307921366
+ .16973833711262 1194.949458531
+$VINTAGE, 0
+BLANK card ending branches
+BLANK card ending non-existent switches
+14P1 311. 50. 000.0 0. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 5.418483002158E+03
+C P1 311. 311. 34.845549853106 34.956124736168 5418.483002158
+C 0.0 0.0 -2.778185019985 -4.5584667 432.00777060763
+C Step Time S1 P1 S1
+C TERRA
+C 0 0.0 524.252284827 311. 20.3340425424
+C 1 .5E-3 522.548672234 307.171073925 20.2679649458
+C 2 .001 507.987759921 295.778576568 19.7031944737
+C 3 .0015 480.917065702 277.103029023 18.6532102126
+ 1
+C 95 .0475 -349.18551236 -219.91020895 -13.543771327
+C 100 .05 -524.24501851 -311. -20.333760706
+C Variable maxima : 524.252284827 311. 20.3340425424
+C Times of maxima : 0.0 0.0 0.0
+C Variable minima : -524.24501851 -311. -20.333760706
+C Times of minima : .03 .01 .03
+ PRINTER PLOT
+ 144 4. 0.0 20. S1 { Axis limits: (-5.242, 5.243)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 7 subcases is used to illustrate RENUMBER WITHOUT COUPLING
+C Same data as 1st subcase, but with two important changes. First, output is
+C wide (not 80-column). Second and critically important, the transient node
+C renumbering is different because of the following request that is introduced
+C in the January, 1999, newsletter. Output variables are the same, but the
+C "1" request for all node voltage outputs will change the order of occurance
+C of these variables in the output vector.
+RENUMBER WITHOUT COUPLING { Upset node renumbering; change output of all V-node
+PRINTED NUMBER WIDTH, 10, 2, { Request max precision of 6 numbers in 80 bytes
+ .010 .030 { Take only 3 steps (plenty to illustrate the effect)
+ 1 1 { Note no extrema (values would not agree, anyway)
+ GEN GENT 1.E-3 3
+ LOAD 1.0E3 3
+ TRANSFORMER .005 30.TRANFF 1.E4 3
+ .005 30.
+ .01 40.
+ .02 45.
+ 0.1 50.
+ 5.0 100.
+ 9999
+ 1GENT OPEN 5.0 5.E4 50.
+ 2LOADFF 20. 2.E5 100.
+ OPEN 1.E7
+ TRANSFORMER TRANFF TRAN 3
+ 1GENT
+ 2LOAD
+BLANK card finishing all branch cards
+BLANK card ending non-existent switch cards
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards
+ 1 { Request for all node voltage outputs
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 6th of 7 subcases is identical to the 2nd. But because KOMPAR > 4
+C (see the $DEPOSIT use immediately below), KOMPAR is interpreted
+C to be the output width of phasor and dT-loop numbers. It works. Not
+C only are the numbers reduced in precision, the dT-loop headings also
+C are adjusted to match. I.e., the 25 of the PRINTED NUMBER WIDTH
+C declaration below is overridden. Although operation was described in
+C the April, 1998, newsletter, an illustration (this data) did not
+C exist prior to 5 December 2001.
+C Add Type-15 USRFUN source on 28 July 2002 to illustrate this new
+C feature from Orlando Hevia. The USRFUN source provides a higher-
+C level replacement for ANALYTIC SOURCES USAGE that is illustrated
+C in DC-6. The same node name NODE1 will be used. The same signal
+C is generated.
+$DEPOSIT, KOMPAR=11, { Illustrate reduced field width of phasor & dT-loop #-s
+PRINTED NUMBER WIDTH, 25, 2, { Request 25-column precision for 4 output columns
+C Apollo will not deliver more than about 16 digits of output, since
+C this is the precision limit of REAL*8. Hence the preceding width
+C request will in fact have more than two blank separator columns.
+ .100 6.0.1591549 { Note XOPT = 1 / (2 * Pi ), and w = 1.0 [rad/sec]
+ 1 1 0 1 0 -1
+ 10 5
+ GEN PRIM NAME Excite 0.1 { Branch named for later current output
+ USE AR { Col. 3-8 request switches to [A], [R] usage
+ 1SEC 40. .025
+ 2PRIM -20. 10. 0.1
+ USE RL { Col. 3-8 request returns to [R], [L] usage
+ SEC 1.0
+ NODE1 1.0 { Dummy resistor serves to anchor USRFUN source
+BLANK card ending branches
+BLANK card ending non-existent switches
+14GEN 1.0 .15915 0.0 -1.
+C Each Type-15 USRFUN source must be provided by the user in the user-supplied
+C FUNCTION USRFUN. Here, illustrate type code 5 (CREST in columns 11-20) that
+C is identical to the ANALYT function of DC-6. There is a difference, however
+C Whereas ANALYT internally zeroed the function after T = .75 seconds, here
+C no such logic has been built into USRFUN. Instead, use T-stop of 71-80 to
+C zero the function beginning on time step number 8. Speaking of time steps,
+C modify the printout frequency to show the first 10 steps. About columns,
+C the request word "USRFUN " (note 2 trailing blanks) must occupy 43-50.
+C < BUS> < Index > Request T-start T-stop
+15NODE1 5.0 USRFUN 0.0 0.75
+BLANK card ending source cards
+C SEC .475113189 .475651527 .475113189 .475651527 .113122188 .113122188
+C -.02262374 -2.7262268 -.02262374 -2.7262268 0.0 0.0
+C
+C TERRA 0.0 0.0 -.47511319 .475651527 0.0
+C 0.0 0.0 .022623738 177.2737732 0.0
+C Total network loss P-loss by summing injections = 1.187782971625E-01
+C Note all of the white space surrounding the preceding phasor valus.
+C The precision is reduced but column positioning and headings are
+C unchanged. This is unlike dT-loop output, for which the headings,
+C too, are modified so as to maintain the same inter-# separation.
+ 1 XXXX { Cols. 1-2 requests all node voltage outputs; A6 nonblank ==> another
+-1Excite { Cols 1-2 type code "-1" ===> request for branch current outputs
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time SEC PRIM GEN NODE1 GEN
+C PRIM
+C 0 0.0 .47511319 .99886885 1.0 0.0 .23755659
+C 1 0.1 .47499833 .99625049 .99500448 40. .23749917
+C 2 0.2 .47013962 .98368051 .98006781 80. .23506981
+C 3 0.3 .46058368 .96128249 .95533924 95. .23029184
+C 4 0.4 .44642603 .92928025 .92106583 85. .22321301
+C 5 0.5 .42780811 .88799352 .87759001 75. .21390405
+C 6 0.6 .40491594 .8378348 .82534614 65. .20245797
+C 7 0.7 .37797823 .77930524 .76485619 55. .18898912
+C 8 0.8 .34726412 .7129896 .69672453 0.0 .17363206
+BLANK card terminating selective (and all node voltages) output requests
+C 60 6.0 .44983237 .95238309 .9601182 0.0 .22491619
+ PRINTER PLOT
+C Following plot shows in-phase V-prim and V-sec, with ratio about 2 to 1:
+ 143 1. 0.0 6.0 PRIM SEC { Axis limits: (-9.986, 9.989)
+BLANK card ending non-existent plot cards
+BEGIN NEW DATA CASE
+C 7th of 7 subcases is fundamentally different from preceding subcases
+C in that it involves a frequency scan rather than time simulation. But
+C there is similarity to the preceding subcase in the user-supplied
+C source code is involved. This tests USER10 as built into the UTPF
+C beginning 26 October 2003.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+C FMIMFS--DELFFS--FMAXFS--NPD-----
+C 11111111222222223333333344444444
+FREQUENCY SCAN 25.0 25.0 200.0 0 { F = 25, 50, ... 200
+ 0.00010 0.0
+ 1 1
+ RRR 10. { 10 ohm resistor so V = 10 * source curr } 1
+BLANK card ending branches
+BLANK card ending switches (none)
+ BOTH POLAR AND RECTANGULAR { Request for (in order): mag, angle, real, imag
+C Preceding is one of 3 alternatives. The other two are, after commented:
+C POLAR OUTPUT VARIABLES { 2nd of 3 alternatives for output gives mag, angle
+C RECTANGULAR OUTPUT VARIABLES { 3rd of 3 alternative outputs gives real, imag
+C Following ANALYTIC source is user-defined. The function name HYPERB must
+C be defined in USER10. Note T-start of cols. 61-70 is left blank as an
+C illustration that ATP automatically will set this to value -1.0 Amplitude
+C (columns 11-20) and frequency (columns 21-30) likewise will be defined
+C internally. Only columns 1-10, plus the text in 43-57, is required:
+C Node V? Request> -Name-
+14RRR -1 ANALYTIC HYPERB
+C Preceding is defined as follows: Real part = 100. * Pi / Omega
+C Imaginary part = ( Real part + 1.0 ) / 2
+BLANK card ending source cards
+ RRR { Node voltage will be 10 times the source current, note.
+BLANK card ending requests for node voltage output
+C Step F [Hz] RRR RRR RRR RRR RRR RRR RRR RRR
+C TERRA TERRA TERRA TERRA
+C 1 25. 25. 36.8699 20. 15. 2.5 36.8699 2.0 1.5
+C 2 50. 14.14214 45. 10. 10. 1.414214 45. 1.0 1.0
+C 3 75. 10.67187 51.34019 6.666667 8.333333 1.067187 51.34019 .6666667 .8333333
+C 4 100. 9.013878 56.30993 5.0 7.5 .9013878 56.30993 0.5 .75
+C 5 125. 8.062258 60.25512 4.0 7.0 .8062258 60.25512 0.4 0.7
+C 6 150. 7.45356 63.43495 3.333333 6.666667 .745356 63.43495 .3333333 .6666667
+C 7 175. 7.034898 66.03751 2.857143 6.428571 .7034898 66.03751 .2857143 .6428571
+C 8 200. 6.731456 68.19859 2.5 6.25 .6731456 68.19859 .25 .625
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc50.dat b/benchmarks/dc50.dat
new file mode 100644
index 0000000..106031c
--- /dev/null
+++ b/benchmarks/dc50.dat
@@ -0,0 +1,153 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-50
+C Test of the installation-dependent random number generator that is used
+C for Monte Carlo studies, ENTRY RANDNZ of RFUNL1. The 4444 means that
+C no simulation is actually to occur. Rather, after the input of switch
+C cards, there will be dice rolling and a statistical analysis of results.
+C Answers are repeatable: use of standard random numbers (column-80 punch)
+ 100.E-6 20.E-3 60.
+ { NENERG = 100 imaginary shots } 100
+C ISW ITEST IDICE KNTRPT NSEED
+ 4444 2 1 2 1
+ 0GENA A1 7. 3
+ 0GENB B1 7. 3
+ 0GENC C1 7.
+ 0ENDA A10 7.
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+ A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 1.0E-3 STATISTICSTARGET
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 8.E-3 2.E-3 STATISTICSA1 ASW1
+C The following two switches will be missing from the statistical output.
+C The first has a uniform distribution, while the second is deterministic.
+76B10 BSW10 10.E-3 1.E-3 STATISTICS
+ C10 CSW10 12.E-3 1.0
+C Switch pair 1 : "B1 " to "BSW1 " and "A1 " to "ASW1 ".
+C Sample: 0.0000 0.0000 0.0000 0.0400 0.0800 0.1700 0.3400 0.5500 0.7000
+C Sample: 0.9000 0.9400 0.9600 0.9900 1.0000 1.0000 1.0000
+BLANK card ending switch cards { Data input stops here, effectively
+C Switch pair 6 : "A10 " to "ASW10 " and "C1 " to "CSW1 ".
+C Sample: 0.0000 0.0000 0.0100 0.0300 0.0700 0.1400 0.2600 0.4500 0.6700
+C Sample: 0.8400 0.9300 0.9600 1.0000 1.0000 1.0000 1.0000
+C To omit miniature character plots of switching times, omit the following card:
+C Switch "A1 " to "ASW1 " ---- First mini printer plot that follows:
+C 4.45814013E-01 switch closings per column
+C Columns
+C 5 10 15 20 25 30
+C +----+----+----+----+----+----+
+C X
+C X
+C X
+C * A
+C A*
+C | X
+C | * A
+C | A*
+C A *
+C | * A
+C | A *
+C | * A
+C | 2.0000E-03 * A
+C | * A
+C | A *
+C | A *
+C | A *
+C | A *
+C | A *
+C A *
+C A*
+C X
+C X
+C X
+C X
+C Time (scale = 3.33333333E-05 Sec/line)
+BLANK card ending non-existent overlay-20 requests for statistical tabulations
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases is for random opening (1st was random closing only).
+C All random closing switches of preceding subcase have been converted to
+C random opening. Also, ITEST is set to 3 (extra random offset is only
+C for opening; preceding case had 2, which was only for closing). The
+C number of shots will be increased to 300 to illustrate better smoothness
+C (but restoring to 100 should produce tabulations identical to preceding)
+ 100.E-6 20.E-3 60.
+ { NENERG = 300 imaginary shots } 300
+C ISW ITEST IDICE KNTRPT NSEED
+ 4444 3 1 2 1
+ 0GENA A1 7. 3
+ 0GENB B1 7. 3
+ 0GENC C1 7.
+ 0ENDA A10 7.
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+ A1 ASW1 2.E-3 .1E-3 3333.STATISTICS
+ B1 BSW1 4.E-3 1.0E-3 3333.STATISTICSTARGET
+ C1 CSW1 6.E-3 1.E-3 3333.STATISTICS
+ A10 ASW10 8.E-3 2.E-3 3333.STATISTICSA1 ASW1
+C The following two switches will be missing from the statistical output.
+C The first has a uniform distribution, while the second is deterministic.
+76B10 BSW10 10.E-3 1.E-3 3333.STATISTICS
+ C10 CSW10 12.E-3 1.0
+C Switch pair 1 : "B1 " to "BSW1 " and "A1 " to "ASW1 ".
+C Time -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0.0000 0.5000
+C Sample 0.0000 0.0000 0.0000 0.0367 0.0667 0.1600 0.2933 0.5300 0.7000
+C Sample 0.8767 0.9367 0.9733 0.9933 1.0000 1.0000 1.0000
+BLANK card ending switch cards { Data input stops here, effectively
+C Switch pair 6 : "A10 " to "ASW10 " and "C1 " to "CSW1 ".
+C Time: -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0.0000 0.5000
+C Sample: 0.0000 0.0000 0.0133 0.0367 0.0800 0.1467 0.2633 0.4367 0.6500
+C Sample: 0.8133 0.9200 0.9667 0.9967 1.0000 1.0000 1.0000
+C Switch "A1 " to "ASW1 "
+C 1.32420000E+00 switch closings per column
+C Columns
+C 5 10 15 20 25 30
+C +----+----+----+----+----+----+
+C X
+C X
+C X
+C *A
+C |X
+C | *A
+C | * A
+C | A*
+C | A *
+C | * A
+C | A *
+C | * A
+C | 4.0000E-03 * A
+C | * A
+C | A *
+C | A*
+C | A*
+C | A *
+C | A *
+C |A*
+C |*A
+C X
+C X
+C X
+C X
+C Time (scale = 3.33333333E-05 Sec/line)
+BLANK card ending non-existent overlay-20 requests for statistical tabulations
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc51.dat b/benchmarks/dc51.dat
new file mode 100644
index 0000000..2b32ac2
--- /dev/null
+++ b/benchmarks/dc51.dat
@@ -0,0 +1,753 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-51
+C "FREQUENCY SCAN" use, with subsequent plotting of phasors vs. frequency
+C This test cases uses uniform spacing; See DC-52 for geometric spacing.
+C Because IOUTLP = 2, the solutions for step numbers 3 and 5 are omitted.
+C 1st of 3 data subcases (2 LINE MODEL FREQUENCY SCAN, LMFS, cases follow)
+FREQUENCY SCAN, 60., 20., 130., 0, { 60 < f < 130 Hz in 20-Hz increments
+ 0.1 0.0
+ 2 1 1 { IOUTLP (cols. 1-8) only prints every other point
+C Note col-80 punch of "1" on following branch to output current. This was
+C added in March of 1998 when original limitation to node volt was removed.
+C In the output, this current should be the same as node voltage at CUR.
+C The two quadruplets will be found side by side, ending the output vector.
+ LOAD MID .99 1.0 1
+C The following is a sampling resistor to produce a node voltage that is
+C proportional to branch current. Note 1.0 = .99 + .01 (next card):
+ MID .01
+C The following is a measurement transformer. It is used to produce a
+C node voltage (node "CUR") that is proportional to the branch current
+C of interest. For minimum error, leakage impedance should, of course,
+C be small. Magnetizing impedance is infinite. The turns ratio equals
+C the resistance of sampling resistor. See end Sec. 1.0G3 Rule Book.
+ TRANSFORMER TRAN
+ 9999
+ 1MID .0005 1.0
+ 2CUR .001 100.
+BLANK card ending branches
+BLANK card ending (here, non-existent) switches
+C The following request for complete output (rather than the default choice
+C of magnitude only) is read as part of source data, but it must precede the
+C first source. This is for FS use (HFS allows it anywhere among sources).
+ BOTH POLAR AND RECTANGULAR { Request for (in order): mag, angle, real, imag
+C Preceding is one of 3 alternatives. The other two are, after commented:
+C POLAR OUTPUT VARIABLES { 2nd of 3 alternatives for output gives mag, angle
+C RECTANGULAR OUTPUT VARIABLES { 3rd of 3 alternative outputs gives real, imag
+14LOAD 100. 60. -1.
+BLANK card ending sources
+C Column headings for the 5 output variables follow. These are divided ...
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C For each variable, magnitude is 1st, angle is 2nd, real part is 3rd, and imaginary is 4th. All 4 are labeled identically, note.
+C Step F [Hz] LOAD LOAD LOAD LOAD MID MID MID MID TRAN TRAN
+C TERRA TERRA TERRA TERRA
+C
+C TRAN TRAN CUR CUR CUR CUR LOAD LOAD LOAD LOAD
+C TERRA TERRA TERRA TERRA MID MID MID MID
+C 1 60. 100. 0.0 100. 0.0 .93571522 -20.655997 .875562973 -.33007946 .93571522 -20.655997
+C .875562973 -.33007946 93.571522 -20.655997 87.5562973 -33.007946 93.571522 -20.655997 87.5562973 -33.007946
+C The preceding agrees with what existed for many years prior to March of 1998:
+C mag:LOAD angle:LOAD mag:MID angle:MID mag:TRAN angle:TRAN mag:CUR angle:CUR
+C real:LOAD imag:LOAD real:MID imag:MID real:TRAN imag:TRAN real:CUR imag:CUR
+C ----- Output vector for step number 1. Frequency = 6.00000000E+01 Hz.
+C 1.0000000E+02 0.0000000E+00 9.3571522E-01 -2.0655997E+01 9.3571522E-01 -2.0655997E+01 9.3571522E+01 -2.0655997E+01
+C 1.0000000E+02 0.0000000E+00 8.7556297E-01 -3.3007946E-01 8.7556297E-01 -3.3007946E-01 8.7556297E+01 -3.3007946E+01
+-5LOAD { -5 ==> 2A6 name pairs for voltage differences (branch V)
+ MID TRAN { 0 ==> Request for the output of these node voltages
+-5CUR { -5 ==> 2A6 name pairs for voltage differences (branch V)
+BLANK card ending output requests
+C Printout for remaining steps follows. Note steps 2 and 4 are missing (IOUT=2)
+C 3 100. 100. 0.0 100. 0.0 .846733016 -32.141908 .7169568 -.45047724 .846733016 -32.141908
+C .7169568 -.45047724 84.6733016 -32.141908 71.69568 -45.047724 84.6733016 -32.141908 71.69568 -45.047724
+C 5 140. 100. 0.0 100. 0.0 .750845344 -41.336343 .563768731 -.49591688 .750845344 -41.336343
+C .563768731 -.49591688 75.0845344 -41.336343 56.3768731 -49.591688 75.0845344 -41.336343 56.3768731 -49.591688
+ PRINTER PLOT
+ F-SCAN COMPONENTS MAG ANGLE { Access "mag" and "angle" next
+C 19630. 60.150. CUR mag CUR angle { Axis limits: (-4.134, 9.357)
+ 18630. 60.150. CUR CUR { Node voltage at CUR is branch voltage to ground
+C The following card involves a deliberate spelling error in order to
+C show how this results in rejection of the card:
+ F-SCAN COMPONENTS REAL IMxx { Access "real" and "imag" next
+ F-SCAN COMPONENTS REAL IMAG { Access "real" and "imag" next
+C 19630. 60.150. CUR real CUR imag { Axis limits: (-4.959, 8.756)
+ 18630. 60.150. CUR CUR { Node voltage at CUR is branch voltage to ground
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 3 data subcases.
+C Illustration of LINE MODEL FREQUENCY SCAN (LMFS). For background of this
+C feature that was first available in ATP at the end of March, 1992, see the
+C story that appeared in the April, 1992, issue of Can/Am EMTP News. This new
+C feature is to compare any "line model" with the exact Pi-model of a single
+C segment of overhead line over an arbitrary range of frequencies. The user
+C instructions are attached at the end of this test case.
+C In the current case a single-circuit line generated by JMARTI SETUP is to
+C be tested.
+C DISK PLOT DATA { Has no effect as explained in Can/Am EMTP News of April, 1992
+C Warning! This is degenerate use for initial testing only.
+C Note following card will produce scan of 2 points only:
+C LINE MODEL FREQUENCY SCAN, 60, , 599.9, 1, , , { f-begin, f-end, points/decade
+LINE MODEL FREQUENCY SCAN, 60, , 599.9, 1, , , First
+ 40.E-6 -.0600 60.
+ 1 1 0 0 0 0 0 2
+C IOUT KSSOUT ICAT
+$INCLUDE, []dc51fs3.dat
+$INCLUDE, []dc51fs3z.dat, JDA###, LMA###, JDB###, LMB###, JDC###, LMC###,
+C []dc51fs3p.dat
+C Unused! ----- 2nd of 2 file names is not used for this single-circuit case
+C Observation about the following is added 21 November 2003. Normally, a
+C LINE CONSTANTS declaration would begin the data since it is this choice
+C (not CC or CP) that is desired. But when LMFS began, LC was the
+C only choice. It seems to be the default choice. Lack of the declaration
+C here no longer is recommended, but it does demonstrate the default choice:
+C LINE CONSTANTS { Activate this comment to prove that the solution is unchanged
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ennds conductor cards of "LINE CONSTANTS" data
+100. 5000. 1 138. 1 1
+BLANK card ending frequency cards of "LINE CONSTANTS" data
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 data subcases illustrates LINE MODEL FREQUENCY SCAN (LMFS) for
+C an untransposed double-circuit line generated by JMARTI SETUP.
+C DISK PLOT DATA { Has no effect as explained in Can/Am EMTP News of April, 1992
+C LINE MODEL FREQUENCY SCAN, 6, , 60000, 10, , , { f-begin, f-end, points/decade
+C Preceding free-format alternative was used successfully for more than a
+C decade. 2 September 2003, replace it by this fixed-format alternative:
+C f-begin del-f f-end #/dec FUNDFS
+LINE MODEL FREQUENCY SCAN 6.0 0.0 6.E4 10
+ 40.E-6 -.0600 60. 1.E-15
+ 1 1 0 0 0 0 0 2
+C IOUT KSSOUT ICAT
+$INCLUDE, []dc51fs6.dat { 1st of 2 $INCLUDE contains line section to be tested
+$INCLUDE, []dc51fs6z.dat,MR02A# ,MR04A# ,MR02B# ,MR04B# ,MR02C# ,MR04C#, $$
+C MR02D# ,MR04D# ,MR02E# ,MR04E# ,MR02F# ,MR04F#
+C []dc51fs6p.dat
+C []dc51fs6m.dat
+C Raw LINE CONSTANTS data for the overhead transmission line being considered:
+ 1.4138 .0497 4 1.603 -15. 52.0 A1-1
+ 1.4138 .0497 4 1.603 -16.06 53.06 A1-2
+ 1.4138 .0497 4 1.603 -13.94 53.06 A1-3
+ 2.4138 .0497 4 1.603 -25. 83.0 B1-1
+ 2.4138 .0497 4 1.603 -26.06 84.06 B1-2
+ 2.4138 .0497 4 1.603 -23.94 84.06 B1-3
+ 3.4138 .0497 4 1.603 -15. 114.0 C1-1
+ 3.4138 .0497 4 1.603 -16.06 115.06 C1-2
+ 3.4138 .0497 4 1.603 -13.94 115.06 C1-3
+ 4.4138 .0497 4 1.603 15. 114.0 A2-1
+ 4.4138 .0497 4 1.603 13.94 115.06 A2-2
+ 4.4138 .0497 4 1.603 16.06 115.06 A2-3
+ 5.4138 .0497 4 1.603 25. 83.0 B2-1
+ 5.4138 .0497 4 1.603 23.94 84.06 B2-2
+ 5.4138 .0497 4 1.603 26.06 84.06 B2-3
+ 6.4138 .0497 4 1.603 15. 52.0 C2-1
+ 6.4138 .0497 4 1.603 13.94 53.06 C2-2
+ 6.4138 .0497 4 1.603 16.06 53.06 C2-3
+ 0.5 3.56 4 .495 -7.0 150.7 OHGW-L
+ 0.5 3.56 4 .495 7.0 150.7 OHGW-R
+BLANK CARD ENDING CONDUCTOR CARDS OF "LINE CONSTANTS" CASE
+ 100. .001 1 53.00 1 1
+C RHO ] [FCAR] [ DIST ] S T
+BLANK card ending frequency cards of "LINE CONSTANTS" data
+ PRINTER PLOT
+ 186 .5 0.0 5.0 GENIA MAG Marti Section Z in Ohms
+ 196 .5 0.0 5.0 GENIA MAG Equivalent Pi Z in Ohms
+ 196 .5 0.0 5.0 GENIB % MAG Error Percent
+BLANK card ending batch-mode (CalComp) plot cards
+BEGIN NEW DATA CASE
+BLANK
+BEGIN NEW DATA CASE
+BLANK
+EOF { Instruct EMTP input code to ignore all following records of disk file
+
+
+
+
+ INSTRUCTIONS FOR USING "LINE MODEL FREQUENCY SCAN (LMFS)"
+
+
+
+ This is a new feature in the EMTP to compare any "line model" with
+the exact Pi-model of a single segment of overhead line over an arbitrary
+range of frequencies. The "line model" that is being tested can be any
+combination of linear branches, such as lumped elements, lines (constant
+distributed parameters, frequency-dependent representation of any type),
+coupled R-L elements, etc.
+
+ Set up an EMTP simulation data case similar to that of a "FREQUENCY SCAN"
+(ATP Rule Book, pp. II-18 to II-21 ) as follows:
+
+ (1) Use a new special request card: LINE MODEL FREQUENCY SCAN (or LMFS).
+ The data fields and their format on this card are the same as those for
+ the regular "FREQUENCY SCAN" case: FMIMFS, DELFFS, FMAXFS, NPD. Leave
+ the data field for DeltaF blank, and enter the number of points per
+ decade for the logarithmic (geometric) spacing as NPD. FMIMFS and
+ FMAXFS are the beginning and the ending frequencies respectively.
+
+ (2) Input the misc. data cards.
+
+ (3) Input the branch cards for "line model" to be tested.
+
+ (4) Input the appropriate generic data files which consist of the needed
+ branch cards and source cards by using $INCLUDE. Also required on
+ this card are the names of sending end and receiving end of each
+ phase of the line being tested. Eight generic data files for 3-,
+ 6- and 9-phase lines are provided along with the EMTP. They are
+ called "linescan#?.brn". "#" is the number of phases of the test
+ line. "?" is either z (zero-sequence), or p (positive-sequence), or
+ m (mutual-coupling). E.g., linescan6z.brn consists of the needed
+ branch cards and source cards for a "6"-phase "Z"ero-sequence
+ impedance test. Following is an example of the data cards for the
+ generic files which are needed for a 6-phase line LMFS case:
+
+ Col. 79-80
+$INCLUDE,linescanz6.brn,MR02A# ,MR04A# ,MR02B# ,MR04B# ,MR02C# ,MR04C#, $$
+C MR02D# ,MR04D# ,MR02E# ,MR04E# ,MR02F# ,MR04F#
+C linescanp6.brn
+C linescanm6.brn
+
+ Note that 12 node names are needed for a 6-phase line: MR02A and
+ MR04A are names of sending end and receiving end of the first phase
+ respectively, etc. "$$" in columns 79-80 indicate there is a
+ continuation card following the current $INCLUDE card. "C linescanp6.brn"
+ card provides the name of the file that EMTP can generate the needed
+ branch and source cards for the positive-sequence impedance test case;
+ and "C linescanm6.brn" provides information for generating mutual-
+ coupling impedance test case. One does not need the latter data card if
+ the test line is a single circuit.
+
+ (5) Input the geometry data of a single segment of overhead line. Prepare
+ this line geometry data just like one does for the standard "LINE CONSTANTS"
+ data except only ONE frequency card is needed. This frequency card needs
+ the following data: RHO (earth resistivity), FCAR (Carson accuracy),
+ DIST (length of the line), ISEG (segmentation option), MODAL
+ (transposition of the line). End this group of cards with a BLANK
+ card ending frequency card.
+
+ (6) Input optional plot card(s). E. g.,
+
+ PRINTER PLOT
+ 186 .2 0.0 5.0 GENIA MAG
+ 196 .2 0.0 5.0 GENIB % MAG
+
+ Like the "FREQUENCY SCAN" cases, the plotting of the node voltage output
+ variables are given the type of branch quantities. The results of the
+ tested line model are treated as branch voltages ("8" in column 4), those
+ of the exact Pi-model are treated as branch current, so are the percentage
+ errors ("9" in column 4.)
+
+ (7) Input the following three cards to end the data:
+
+ BLANK CARD ENDING PLOT REQUESTS
+ BEGIN NEW DATA CASE
+ BLANK
+
+
+
+ Three frequency scan cases are run and three output files are generated
+with this single set of data to give the zero-sequence, positive-sequence,
+and mutual (if multiple circuits) impedance check for the tested line model.
+
+ The line printer output includes tabulation of results of the requested
+node voltage output variables for the tested line model, for the exact Pi-
+model, and the percentage errors. Using IOUT (misc. data card) to control
+the frequency of this tabulation. Tabulation after 100 entries will be
+truncated. Be careful with input of KSSOUT on the misc. data card.
+
+ Like the "FREQUENCY SCAN" cases, the plotting of the node voltage output
+variables are given the type of branch quantities. The results of the tested
+line model are treated as branch voltages, those of the exact Pi-model are
+treated as branch current, so are the percentage errors.
+
+ If one wants to plot all the output variables, simply enter "ALL" to
+the prompt:
+
+ SEND NODE NAME & OPT. A24 DESCR. OR END ( ) :ALL
+
+then, provide information of number of phases and kind of impedance test at
+the prompt:
+
+ SEND A2 FILE SPECIFICATION:3P
+
+where "3" means 3-phase circuit, "P" means ploting of the results of
+Positive-sequence impedance test. TPPLOT at this point will automatically
+attach the appropriate pre-existing, user-controlled, plot data file
+LMPLT3P.DAT (i.e. one of the LMPLT##.DAT files), and complete the whole
+set of postscript output. In other words, the nodes specified in the
+LMPLT##.DAT defines what user means by "ALL".
+
+
+ Tsu-huei Liu
+ March 24, 1992
+
+
+Solution of DC51.LIS :
+---------------------
+
+ --- Pass 1. Card = 19. Ready to open $INCLUDE = dc51fs3.dat
+ --- Pass 1. Card = 121. Ready to open $INCLUDE = dc51fs3z.dat
+Alternative Transients Program (ATP), Salford 80386 translation. All rights reserved by Can/Am user group of Portland, Oregon, USA.
+ Date (dd-mth-yy) and time of day (hh.mm.ss) = 30-Jul-93 09.55.41 Name of disk plot file, if any, is D:37300955.pl4
+Consult the 800-page ATP Rule Book of the Can/Am EMTP User Group in Portland, Oregon, USA. Program is no older than July, 1992.
+Total size of LABCOM tables = 227363 INTEGER words. VARDIM List Sizes follow : 752 900 1500 150 7500 120
+ 2100 5250 225 480 150 150 15000 60 10800 120 12 15 4800 1980 300 450 12000 9 1200 252 4 9600
+--------------------------------------------------+--------------------------------------------------------------------------------
+Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
+ 0 1 2 3 4 5 6 7 8
+ 012345678901234567890123456789012345678901234567890123456789012345678901234567890
+--------------------------------------------------+--------------------------------------------------------------------------------
+Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
+Comment card. KOMPAR = 1. |C 2nd of 3 data subcases.
+Comment card. KOMPAR = 1. |C Illustration of LINE MODEL FREQUENCY SCAN (LMFS). For background of this
+Comment card. KOMPAR = 1. |C feature that was first available in ATP at the end of March, 1992, see the
+ < < < Etc. (section removed) > > >
+Blank card terminating frequency cards. |BLANK card ending frequency cards of "LINE CONSTANTS" data
+ 1) Freq [Hz] = 6.0000000E+01 Total network loss = 7.284400782006E+01
+ 2) Freq [Hz] = 6.0000000E+02 Total network loss = 5.660068288220E+02
+
+********************************************************************************
+* *
+* LINE MODEL FREQUENCY SCAN COMPARISON TABLE 30-Jul-93 *
+* ZERO-SEQUENCE IMPEDANCE TEST *
+* *
+*******************************************************************************************
+
+ LINE MODEL BEING TESTED EXACT-PI MODEL % ERROR
+
+ FREQUENCY NODE MAG ANG REAL IMAG MAG ANG REAL IMAG PCTMAG PCTANG
+
+ 6.000E+01 GENIA 3.258E+02 8.126E+01 4.950E+01 3.220E+02 3.240E+02 8.140E+01 4.845E+01 3.204E+02 .5405 -.173
+ GENIB 3.258E+02 8.126E+01 4.950E+01 3.220E+02 3.271E+02 8.142E+01 4.878E+01 3.235E+02 -.427 -.204
+ GENIC 3.258E+02 8.126E+01 4.950E+01 3.220E+02 3.240E+02 8.140E+01 4.845E+01 3.204E+02 .5405 -.173
+
+ 6.000E+02 GENIA 6.545E+02 5.425E+01 3.824E+02 5.312E+02 6.499E+02 5.467E+01 3.758E+02 5.303E+02 .7028 -.773
+ GENIB 6.545E+02 5.425E+01 3.824E+02 5.312E+02 6.574E+02 5.464E+01 3.804E+02 5.361E+02 -.44 -.716
+ GENIC 6.545E+02 5.425E+01 3.824E+02 5.312E+02 6.499E+02 5.467E+01 3.758E+02 5.303E+02 .7028 -.773
+
+Blank card terminating all plot cards. |BLANK card ending batch-mode plot cards
+Actual List Sizes for the preceding solution follow. 30-Jul-93 09.52.45
+ Size 1-10: 10 12 15 3 -9999 0 -9999 -9999 0 0
+ Size 11-20: -9999 30 -9999 -9999 -9999 0 0 0 23 470
+ Size 21-29: 18 -9999 27 -9999 -9999 -9999 -9999 -9999 -9999
+Seconds for overlays 1-5 : 1.207 0.000 1.207 --- (CP: I/O; tot)
+Seconds for overlays 6-11 : 1.430 0.000 1.430
+Seconds for overlays 12-15 : 0.000 0.000 0.000
+Seconds for time-step loop : 1.098 0.000 1.098
+Seconds after DELTAT-loop : 0.055 0.000 0.055
+ ---------------------------
+ Totals : 3.789 0.000 3.789
+
+EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY, STOP, BOTH, DIR) :
+ --- 35 cards of disk file read into card cache cells 1 onward.
+ --- Pass 1. Card = 20. Ready to open $INCLUDE = dc51fs3.dat
+ --- Pass 1. Card = 122. Ready to open $INCLUDE = dc51fs3p.dat
+Alternative Transients Program (ATP), Salford 80386 translation. All rights reserved by Can/Am user group of Portland, Oregon, USA.
+ Date (dd-mth-yy) and time of day (hh.mm.ss) = 30-Jul-93 09.56.45 Name of disk plot file, if any, is D:37300956.pl4
+Consult the 800-page ATP Rule Book of the Can/Am EMTP User Group in Portland, Oregon, USA. Program is no older than July, 1992.
+Total size of LABCOM tables = 227363 INTEGER words. VARDIM List Sizes follow : 752 900 1500 150 7500 120
+ 2100 5250 225 480 150 150 15000 60 10800 120 12 15 4800 1980 300 450 12000 9 1200 252 4 9600
+--------------------------------------------------+--------------------------------------------------------------------------------
+Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
+ 0 1 2 3 4 5 6 7 8
+ 012345678901234567890123456789012345678901234567890123456789012345678901234567890
+--------------------------------------------------+--------------------------------------------------------------------------------
+Comment card. KOMPAR = 1. |C data:GO
+Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
+Comment card. KOMPAR = 1. |C 2nd of 3 data subcases.
+Comment card. KOMPAR = 1. |C Illustration of LINE MODEL FREQUENCY SCAN (LMFS). For background of this
+Comment card. KOMPAR = 1. |C feature that was first available in ATP at the end of March, 1992, see the
+ < < < Etc. (section removed) > > >
+Blank card terminating frequency cards. |BLANK card ending frequency cards of "LINE CONSTANTS" data
+ 1) Freq [Hz] = 6.0000000E+01 Total network loss = 6.240924861294E+00
+ 2) Freq [Hz] = 6.0000000E+02 Total network loss = 7.142960437129E+00
+
+********************************************************************************
+* *
+* LINE MODEL FREQUENCY SCAN COMPARISON TABLE 30-Jul-93 *
+* POSITIVE-SEQUENCE IMPEDANCE TEST *
+* *
+********************************************************************************
+
+ LINE MODEL BEING TESTED EXACT-PI MODEL % ERROR
+
+ FREQUENCY NODE MAG ANG REAL IMAG MAG ANG REAL IMAG PCTMAG PCTANG
+
+ 6.000E+01 GENIA 8.329E+01 8.706E+01 4.276E+00 8.318E+01 8.381E+01 8.548E+01 6.605E+00 8.355E+01 -.624 1.845
+ GENIB 8.329E+01 -3.294E+01 6.990E+01 -4.529E+01 8.257E+01 -3.296E+01 6.927E+01 -4.492E+01 .8778 -.061
+ GENIC 8.329E+01 -1.529E+02 -7.417E+01 -3.789E+01 8.376E+01 -1.511E+02 -7.333E+01 -4.048E+01 -.561 1.219
+
+ 6.000E+02 GENIA 8.819E+01 -8.678E+01 4.952E+00 -8.805E+01 9.319E+01 -8.908E+01 1.488E+00 -9.317E+01 -5.36 -2.59
+ GENIB 8.819E+01 1.532E+02 -7.873E+01 3.974E+01 8.182E+01 1.544E+02 -7.379E+01 3.536E+01 7.784 -.764
+ GENIC 8.819E+01 3.322E+01 7.378E+01 4.832E+01 9.071E+01 3.412E+01 7.509E+01 5.089E+01 -2.77 -2.65
+
+
+Blank card terminating all plot cards. |BLANK card ending batch-mode plot cards
+Actual List Sizes for the preceding solution follow. 30-Jul-93 09.52.47
+ Size 1-10: 10 12 15 3 -9999 0 -9999 -9999 0 0
+ Size 11-20: -9999 30 -9999 -9999 -9999 0 0 0 23 470
+ Size 21-29: 18 -9999 27 -9999 -9999 -9999 -9999 -9999 -9999
+Seconds for overlays 1-5 : 1.262 0.000 1.262 --- (CP: I/O; tot)
+Seconds for overlays 6-11 : 0.496 0.000 0.496
+Seconds for overlays 12-15 : 0.000 0.000 0.000
+Seconds for time-step loop : 0.000 0.000 0.000
+Seconds after DELTAT-loop : 0.055 0.000 0.055
+ ---------------------------
+ Totals : 1.813 0.000 1.813
+
+ --- Pass 1. Card = 9. Ready to open $INCLUDE = dc51fs6.dat
+ --- Pass 1. Card = 193. Ready to open $INCLUDE = dc51fs6z.dat
+Alternative Transients Program (ATP), Salford 80386 translation. All rights reserved by Can/Am user group of Portland, Oregon, USA.
+ Date (dd-mth-yy) and time of day (hh.mm.ss) = 30-Jul-93 09.57.47 Name of disk plot file, if any, is D:37300957.pl4
+Consult the 800-page ATP Rule Book of the Can/Am EMTP User Group in Portland, Oregon, USA. Program is no older than July, 1992.
+Total size of LABCOM tables = 227363 INTEGER words. VARDIM List Sizes follow : 752 900 1500 150 7500 120
+ 2100 5250 225 480 150 150 15000 60 10800 120 12 15 4800 1980 300 450 12000 9 1200 252 4 9600
+--------------------------------------------------+--------------------------------------------------------------------------------
+Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
+ 0 1 2 3 4 5 6 7 8
+ 012345678901234567890123456789012345678901234567890123456789012345678901234567890
+--------------------------------------------------+--------------------------------------------------------------------------------
+Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
+Comment card. KOMPAR = 1. |C 3rd of 3 data subcases illustrates LINE MODEL FREQUENCY SCAN (LMFS) for
+Comment card. KOMPAR = 1. |C an untransposed double-circuit line generated by JMARTI SETUP.
+ < < < Etc. (section removed) > > >
+Blank card ending node names for voltage output. |BLANK CARD ENDING NODE VOLTAGE OUTPUTS ====================================
+ 2) Freq [Hz] = 7.5535525E+00 Total network loss = 1.460350203292E+01
+ 3) Freq [Hz] = 9.5093592E+00 Total network loss = 1.740069938004E+01
+ < < < Etc. (section removed) > > >
+ 40) Freq [Hz] = 4.7659694E+04 Total network loss = 2.219525952980E+03
+ 41) Freq [Hz] = 6.0000000E+04 Total network loss = 2.202395130215E+03
+Compute overhead line constants. Limit = 100 |
+Comment card. KOMPAR = 1. |C End of $INCLUDE. File name = 30
+Comment card. KOMPAR = 1. |C MR02D# ,MR04D# ,MR02E# ,MR04E# ,MR02F# ,MR04F#
+Comment card. KOMPAR = 1. |C dc51fs6p.dat
+Comment card. KOMPAR = 1. |C dc51fs6m.dat
+Comment card. KOMPAR = 1. |C Raw LINE CONSTANTS data for the overhead transmission line being considered:
+Line conductor card. 4.138E-01 4.970E-02 4 | 1.4138 .0497 4 1.603 -15. 52.0 A1-1
+Line conductor card. 4.138E-01 4.970E-02 4 | 1.4138 .0497 4 1.603 -16.06 53.06 A1-2
+ < < < Etc. (section removed) > > >
+Blank card terminating frequency cards. |BLANK card ending frequency cards of "LINE CONSTANTS" data
+ 1) Freq [Hz] = 6.0000000E+00 Total network loss = 1.163993843730E+01
+ 2) Freq [Hz] = 7.5535525E+00 Total network loss = 1.392642800817E+01
+ < < < Etc. (section removed) > > >
+ 40) Freq [Hz] = 4.7659694E+04 Total network loss = 2.223352249386E+03
+ 41) Freq [Hz] = 6.0000000E+04 Total network loss = 2.203817311869E+03
+
+********************************************************************************
+* *
+* LINE MODEL FREQUENCY SCAN COMPARISON TABLE 30-Jul-93 *
+* ZERO-SEQUENCE IMPEDANCE TEST *
+* *
+********************************************************************************
+
+ LINE MODEL BEING TESTED EXACT-PI MODEL % ERROR
+
+ FREQUENCY NODE MAG ANG REAL IMAG MAG ANG REAL IMAG PCTMAG PCTANG
+
+ 6.000E+00 GENIA 2.366E+01 8.006E+01 4.083E+00 2.331E+01 2.351E+01 8.070E+01 3.797E+00 2.320E+01 .6696 -.791
+ GENIB 2.368E+01 7.984E+01 4.176E+00 2.331E+01 2.381E+01 8.038E+01 3.979E+00 2.347E+01 -.552 -.671
+ GENIC 2.347E+01 7.996E+01 4.092E+00 2.311E+01 2.352E+01 8.055E+01 3.864E+00 2.320E+01 -.221 -.728
+ GENID 2.347E+01 7.996E+01 4.092E+00 2.311E+01 2.352E+01 8.055E+01 3.864E+00 2.320E+01 -.221 -.728
+ GENIE 2.368E+01 7.984E+01 4.176E+00 2.331E+01 2.381E+01 8.038E+01 3.979E+00 2.347E+01 -.552 -.671
+ GENIF 2.366E+01 8.006E+01 4.083E+00 2.331E+01 2.351E+01 8.070E+01 3.797E+00 2.320E+01 .6696 -.791
+
+ 7.554E+00 GENIA 2.914E+01 8.041E+01 4.857E+00 2.873E+01 2.901E+01 8.092E+01 4.577E+00 2.865E+01 .4326 -.641
+ GENIB 2.917E+01 8.030E+01 4.916E+00 2.876E+01 2.939E+01 8.073E+01 4.734E+00 2.900E+01 -.728 -.533
+ GENIC 2.892E+01 8.038E+01 4.831E+00 2.851E+01 2.904E+01 8.085E+01 4.616E+00 2.867E+01 -.408 -.581
+ GENID 2.892E+01 8.038E+01 4.831E+00 2.851E+01 2.904E+01 8.085E+01 4.616E+00 2.867E+01 -.408 -.581
+ GENIE 2.917E+01 8.030E+01 4.916E+00 2.876E+01 2.939E+01 8.073E+01 4.734E+00 2.900E+01 -.728 -.533
+ GENIF 2.914E+01 8.041E+01 4.857E+00 2.873E+01 2.901E+01 8.092E+01 4.577E+00 2.865E+01 .4326 -.641
+
+ < < < Etc. (section removed) > > >
+
+
+ 6.000E+04 GENIA 7.446E+02 -5.713E+00 7.409E+02 -7.413E+01 7.156E+02 -3.941E+00 7.139E+02 -4.919E+01 4.062 44.95
+ GENIB 7.249E+02 -1.238E+00 7.247E+02 -1.566E+01 7.120E+02 -3.456E-01 7.120E+02 -4.295E+00 1.804 258.2
+ GENIC 7.372E+02 -2.027E+00 7.367E+02 -2.607E+01 7.801E+02 -4.349E+00 7.779E+02 -5.916E+01 -5.51 -53.4
+ GENID 7.372E+02 -2.027E+00 7.367E+02 -2.607E+01 7.801E+02 -4.349E+00 7.779E+02 -5.916E+01 -5.51 -53.4
+ GENIE 7.249E+02 -1.238E+00 7.247E+02 -1.566E+01 7.120E+02 -3.456E-01 7.120E+02 -4.295E+00 1.804 258.2
+ GENIF 7.446E+02 -5.713E+00 7.409E+02 -7.413E+01 7.156E+02 -3.941E+00 7.139E+02 -4.919E+01 4.062 44.95
+
+Request for character (line printer) plotting. | PRINTER PLOT
+>> Plot card. 5.000E-01 0.000E+00 5.000E+00 | 186 .5 0.0 5.0 GENIA MAG MARTI SECTION Z IN OHMS
+
+30-Jul-93 09.57.47 1
+Plot type 8
+Node names GENIA MAG
+Time-axis legend : Frequency f in Hertz
+
+ Z IN OHMS ( x 10**( 3) )
+ 0.000 0.515 1.030 1.545 2.059 2.574 3.089 3.604 4.119 4.634 5.149 5.663 6.178 6.693
++---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
+|
+|
+|
+|
+|
+|
+| 0.5
+|
+|
+A
+|
+|A
+|A
+|A
+|A
+|A
+|
+| A
+| A
+| A
+| A
+| A
+|
+| A
+| 2.0 A
+| A
+| A
+| A
+|
+| A
+| 2.5 A
+| A
+| A
+| A
+|
+| A
+| 3.0 A
+| A
+| A
+| A
+|
+| A
+| 3.5 A
+| A
+| A
+| A
+|
+| A
+| 4.0 A
+| A
+| A
+| A
+|
+| A
+| 4.5 A
+| A
+| A
+| A
+End of graph.
+
+ < < < Etc. (section removed) > > >
+
+Blank card terminating all plot cards. |BLANK card ending batch-mode (CalComp) plot cards
+Actual List Sizes for the preceding solution follow. 30-Jul-93 09.52.59
+ Size 1-10: 19 24 39 6 -9999 0 -9999 -9999 0 0
+ Size 11-20: -9999 60 82 -9999 -9999 0 0 0 23 1073
+ Size 21-29: 72 -9999 90 -9999 -9999 -9999 -9999 -9999 -9999
+Seconds for overlays 1-5 : 1.703 0.000 1.703 --- (CP: I/O; tot)
+Seconds for overlays 6-11 : 8.461 0.000 8.461
+Seconds for overlays 12-15 : 0.000 0.000 0.000
+Seconds for time-step loop : 1.047 0.000 1.047
+Seconds after DELTAT-loop : 0.879 0.000 0.879
+ ---------------------------
+ Totals : 12.090 0.000 12.090
+
+EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY, STOP, BOTH, DIR) :
+ --- 44 cards of disk file read into card cache cells 1 onward.
+ --- Pass 1. Card = 10. Ready to open $INCLUDE = dc51fs6.dat
+ --- Pass 1. Card = 194. Ready to open $INCLUDE = dc51fs6p.dat
+Alternative Transients Program (ATP), Salford 80386 translation. All rights reserved by Can/Am user group of Portland, Oregon, USA.
+ Date (dd-mth-yy) and time of day (hh.mm.ss) = 30-Jul-93 09.58.00 Name of disk plot file, if any, is D:37300958.pl4
+Consult the 800-page ATP Rule Book of the Can/Am EMTP User Group in Portland, Oregon, USA. Program is no older than July, 1992.
+Total size of LABCOM tables = 227363 INTEGER words. VARDIM List Sizes follow : 752 900 1500 150 7500 120
+ 2100 5250 225 480 150 150 15000 60 10800 120 12 15 4800 1980 300 450 12000 9 1200 252 4 9600
+--------------------------------------------------+--------------------------------------------------------------------------------
+Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
+ 0 1 2 3 4 5 6 7 8
+ 012345678901234567890123456789012345678901234567890123456789012345678901234567890
+--------------------------------------------------+--------------------------------------------------------------------------------
+Comment card. KOMPAR = 1. |C data:GO
+Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
+Comment card. KOMPAR = 1. |C 3rd of 3 data subcases illustrates LINE MODEL FREQUENCY SCAN (LMFS) for
+Comment card. KOMPAR = 1. |C an untransposed double-circuit line generated by JMARTI SETUP.
+ < < < Etc. (section removed) > > >
+Blank card ending node names for voltage output. |BLANK CARD ENDING NODE VOLTAGE OUTPUTS ====================================
+ 2) Freq [Hz] = 7.5535525E+00 Total network loss = 2.186843544415E+00
+ 3) Freq [Hz] = 9.5093592E+00 Total network loss = 2.201132634968E+00
+ < < < Etc. (section removed) > > >
+ 40) Freq [Hz] = 4.7659694E+04 Total network loss = 5.301174275213E+01
+ 41) Freq [Hz] = 6.0000000E+04 Total network loss = 7.652463362163E+01
+Compute overhead line constants. Limit = 100 |
+ < < < Etc. (section removed) > > >
+Line conductor card. 4.138E-01 4.970E-02 4 | 1.4138 .0497 4 1.603 -15. 52.0 A1-1
+Line conductor card. 4.138E-01 4.970E-02 4 | 1.4138 .0497 4 1.603 -16.06 53.06 A1-2
+ < < < Etc. (section removed) > > >
+Blank card terminating frequency cards. |BLANK card ending frequency cards of "LINE CONSTANTS" data
+ 1) Freq [Hz] = 6.0000000E+00 Total network loss = 2.644053558159E+00
+ 2) Freq [Hz] = 7.5535525E+00 Total network loss = 2.646292442603E+00
+ < < < Etc. (section removed) > > >
+ 40) Freq [Hz] = 4.7659694E+04 Total network loss = 6.165455521027E+01
+ 41) Freq [Hz] = 6.0000000E+04 Total network loss = 9.153350121473E+01
+
+********************************************************************************
+* *
+* LINE MODEL FREQUENCY SCAN COMPARISON TABLE 30-Jul-93 *
+* POSITIVE-SEQUENCE IMPEDANCE TEST *
+* *
+********************************************************************************
+
+ LINE MODEL BEING TESTED EXACT-PI MODEL % ERROR
+
+
+ FREQUENCY NODE MAG ANG REAL IMAG MAG ANG REAL IMAG PCTMAG PCTANG
+
+ 6.000E+00 GENIA 2.626E+00 7.474E+01 6.912E-01 2.534E+00 2.604E+00 6.958E+01 9.085E-01 2.440E+00 .8639 7.416
+ GENIB 2.711E+00 -4.640E+01 1.869E+00 -1.963E+00 2.813E+00 -4.956E+01 1.825E+00 -2.141E+00 -3.65 -6.39
+ GENIC 2.663E+00 -1.655E+02 -2.578E+00 -6.683E-01 2.664E+00 -1.671E+02 -2.596E+00 -5.939E-01 -.008 -.987
+ GENID 2.608E+00 7.375E+01 7.299E-01 2.503E+00 2.625E+00 6.918E+01 9.329E-01 2.453E+00 -.653 6.599
+ GENIE 2.746E+00 -4.615E+01 1.902E+00 -1.980E+00 2.808E+00 -4.910E+01 1.839E+00 -2.123E+00 -2.21 -6.
+ GENIF 2.626E+00 -1.651E+02 -2.538E+00 -6.750E-01 2.644E+00 -1.677E+02 -2.583E+00 -5.654E-01 -.693 -1.52
+
+ 7.554E+00 GENIA 3.268E+00 7.756E+01 7.038E-01 3.191E+00 3.218E+00 7.334E+01 9.228E-01 3.083E+00 1.542 5.761
+ GENIB 3.368E+00 -4.312E+01 2.458E+00 -2.302E+00 3.467E+00 -4.578E+01 2.418E+00 -2.485E+00 -2.87 -5.8
+ GENIC 3.291E+00 -1.625E+02 -3.139E+00 -9.906E-01 3.285E+00 -1.635E+02 -3.150E+00 -9.335E-01 .1779 -.618
+ GENID 3.246E+00 7.675E+01 7.439E-01 3.160E+00 3.249E+00 7.288E+01 9.567E-01 3.105E+00 -.094 5.321
+ GENIE 3.405E+00 -4.296E+01 2.492E+00 -2.321E+00 3.463E+00 -4.529E+01 2.437E+00 -2.461E+00 -1.69 -5.13
+ GENIF 3.255E+00 -1.622E+02 -3.098E+00 -9.965E-01 3.251E+00 -1.641E+02 -3.126E+00 -8.919E-01 .1212 -1.16
+
+ < < < Etc. (section removed) > > >
+
+ 6.000E+04 GENIA 1.758E+02 5.490E+01 1.011E+02 1.438E+02 2.043E+02 5.199E+01 1.258E+02 1.610E+02 -14. 5.593
+ GENIB 2.032E+02 -1.852E+01 1.927E+02 -6.454E+01 2.288E+02 -1.702E+01 2.188E+02 -6.699E+01 -11.2 8.777
+ GENIC 8.011E+01 -1.524E+02 -7.101E+01 -3.709E+01 7.719E+01 -1.493E+02 -6.634E+01 -3.947E+01 3.787 2.124
+ GENID 1.186E+02 9.365E+01 -7.560E+00 1.184E+02 1.343E+02 8.904E+01 2.259E+00 1.343E+02 -11.7 5.186
+ GENIE 1.089E+02 -6.696E+01 4.262E+01 -1.002E+02 1.143E+02 -6.770E+01 4.338E+01 -1.058E+02 -4.72 -1.08
+ GENIF 1.970E+02 -1.591E+02 -1.841E+02 -7.034E+01 2.168E+02 -1.600E+02 -2.036E+02 -7.428E+01 -9.1 -.548
+
+Request for character (line printer) plotting. | PRINTER PLOT
+>> Plot card. 5.000E-01 0.000E+00 5.000E+00 | 186 .5 0.0 5.0 GENIA MAG MARTI SECTION Z IN OHMS
+
+30-Jul-93 09.58.00 1
+Plot type 8
+Node names GENIA MAG
+Time-axis legend : Frequency f in Hertz
+
+ Z IN OHMS ( x 10**( 3) )
+ 0.000 0.123 0.246 0.370 0.493 0.616 0.739 0.862 0.985 1.109 1.232 1.355 1.478 1.601
++---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
+
+ < < < Etc. (section removed) > > >
+
+Blank card terminating all plot cards. |BLANK card ending batch-mode (CalComp) plot cards
+Actual List Sizes for the preceding solution follow. 30-Jul-93 09.53.11
+ Size 1-10: 19 24 39 6 -9999 0 -9999 -9999 0 0
+ Size 11-20: -9999 60 82 -9999 -9999 0 0 0 23 1073
+ Size 21-29: 72 -9999 90 -9999 -9999 -9999 -9999 -9999 -9999
+Seconds for overlays 1-5 : 1.539 0.000 1.539 --- (CP: I/O; tot)
+Seconds for overlays 6-11 : 8.406 0.000 8.406
+Seconds for overlays 12-15 : 0.000 0.000 0.000
+Seconds for time-step loop : 0.934 0.000 0.934
+Seconds after DELTAT-loop : 0.879 0.000 0.879
+ ---------------------------
+ Totals : 11.758 0.000 11.758
+
+EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY, STOP, BOTH, DIR) :
+ --- 44 cards of disk file read into card cache cells 1 onward.
+ --- Pass 1. Card = 10. Ready to open $INCLUDE = dc51fs6.dat
+ --- Pass 1. Card = 194. Ready to open $INCLUDE = dc51fs6m.dat
+Alternative Transients Program (ATP), Salford 80386 translation. All rights reserved by Can/Am user group of Portland, Oregon, USA.
+ Date (dd-mth-yy) and time of day (hh.mm.ss) = 30-Jul-93 09.59.12 Name of disk plot file, if any, is D:37300959.pl4
+Consult the 800-page ATP Rule Book of the Can/Am EMTP User Group in Portland, Oregon, USA. Program is no older than July, 1992.
+Total size of LABCOM tables = 227363 INTEGER words. VARDIM List Sizes follow : 752 900 1500 150 7500 120
+ 2100 5250 225 480 150 150 15000 60 10800 120 12 15 4800 1980 300 450 12000 9 1200 252 4 9600
+--------------------------------------------------+--------------------------------------------------------------------------------
+Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
+ 0 1 2 3 4 5 6 7 8
+ 012345678901234567890123456789012345678901234567890123456789012345678901234567890
+--------------------------------------------------+--------------------------------------------------------------------------------
+Comment card. KOMPAR = 1. |C data:GO
+Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
+Comment card. KOMPAR = 1. |C 3rd of 3 data subcases illustrates LINE MODEL FREQUENCY SCAN (LMFS) for
+Comment card. KOMPAR = 1. |C an untransposed double-circuit line generated by JMARTI SETUP.
+ < < < Etc. (section removed) > > >
+Blank card ending node names for voltage output. |BLANK CARD ENDING NODE VOLTAGE OUTPUTS ====================================
+ 2) Freq [Hz] = 7.5535525E+00 Total network loss = 4.247788777322E+00
+ 3) Freq [Hz] = 9.5093592E+00 Total network loss = 4.950100153259E+00
+ < < < Etc. (section removed) > > >
+ 40) Freq [Hz] = 4.7659694E+04 Total network loss = 6.576631373437E+02
+ 41) Freq [Hz] = 6.0000000E+04 Total network loss = 7.406315999451E+02
+Compute overhead line constants. Limit = 100 |
+ < < < Etc. (section removed) > > >
+Blank card terminating frequency cards. |BLANK card ending frequency cards of "LINE CONSTANTS" data
+ 1) Freq [Hz] = 6.0000000E+00 Total network loss = 3.573399585181E+00
+ 2) Freq [Hz] = 7.5535525E+00 Total network loss = 4.146632333116E+00
+ < < < Etc. (section removed) > > >
+ 40) Freq [Hz] = 4.7659694E+04 Total network loss = 6.610984397030E+02
+ 41) Freq [Hz] = 6.0000000E+04 Total network loss = 7.522122408557E+02
+
+********************************************************************************
+* *
+* LINE MODEL FREQUENCY SCAN COMPARISON TABLE 30-Jul-93 *
+* MUTUAL IMPEDANCE TEST *
+* *
+********************************************************************************
+
+ LINE MODEL BEING TESTED EXACT-PI MODEL % ERROR
+
+ FREQUENCY NODE MAG ANG REAL IMAG MAG ANG REAL IMAG PCTMAG PCTANG
+
+ 6.000E+00 GENIA 1.335E+01 7.964E+01 2.401E+00 1.313E+01 1.327E+01 7.985E+01 2.339E+00 1.306E+01 .6346 -.259
+ GENIB 1.364E+01 7.935E+01 2.521E+00 1.341E+01 1.370E+01 7.978E+01 2.431E+00 1.348E+01 -.399 -.531
+ GENIC 1.326E+01 7.939E+01 2.442E+00 1.304E+01 1.330E+01 7.971E+01 2.377E+00 1.309E+01 -.261 -.395
+ GENID 1.021E+01 8.070E+01 1.650E+00 1.007E+01 1.023E+01 8.164E+01 1.487E+00 1.012E+01 -.187 -1.15
+ GENIE 1.004E+01 8.050E+01 1.656E+00 9.898E+00 1.011E+01 8.120E+01 1.547E+00 9.993E+00 -.765 -.855
+ GENIF 1.031E+01 8.062E+01 1.681E+00 1.017E+01 1.024E+01 8.181E+01 1.458E+00 1.014E+01 .6897 -1.46
+
+ 7.554E+00 GENIA 1.647E+01 8.025E+01 2.790E+00 1.623E+01 1.639E+01 8.042E+01 2.729E+00 1.617E+01 .4408 -.215
+ GENIB 1.684E+01 8.011E+01 2.892E+00 1.659E+01 1.693E+01 8.045E+01 2.810E+00 1.670E+01 -.545 -.42
+ GENIC 1.637E+01 8.010E+01 2.813E+00 1.612E+01 1.644E+01 8.035E+01 2.755E+00 1.621E+01 -.454 -.314
+ GENID 1.256E+01 8.075E+01 2.018E+00 1.239E+01 1.260E+01 8.151E+01 1.861E+00 1.246E+01 -.356 -.924
+ GENIE 1.234E+01 8.056E+01 2.023E+00 1.217E+01 1.246E+01 8.111E+01 1.924E+00 1.231E+01 -.979 -.685
+ GENIF 1.267E+01 8.061E+01 2.067E+00 1.250E+01 1.262E+01 8.158E+01 1.848E+00 1.249E+01 .4114 -1.19
+
+ < < < Etc. (section removed) > > >
+
+ 6.000E+04 GENIA 5.510E+02 1.845E+01 5.227E+02 1.744E+02 5.618E+02 2.101E+01 5.244E+02 2.015E+02 -1.91 -12.2
+ GENIB 5.619E+02 2.300E+01 5.173E+02 2.195E+02 5.683E+02 2.425E+01 5.182E+02 2.334E+02 -1.12 -5.17
+ GENIC 4.576E+02 1.536E+01 4.413E+02 1.212E+02 4.744E+02 1.321E+01 4.618E+02 1.084E+02 -3.53 16.24
+ GENID 3.301E+02 -2.650E+01 2.954E+02 -1.473E+02 3.577E+02 -2.794E+01 3.161E+02 -1.676E+02 -7.72 -5.15
+ GENIE 3.136E+02 -4.859E+01 2.075E+02 -2.352E+02 3.067E+02 -5.080E+01 1.939E+02 -2.377E+02 2.241 -4.36
+ GENIF 3.308E+02 -4.872E+01 2.182E+02 -2.486E+02 3.142E+02 -5.291E+01 1.895E+02 -2.506E+02 5.275 -7.93
+
+
+Request for character (line printer) plotting. | PRINTER PLOT
+>> Plot card. 5.000E-01 0.000E+00 5.000E+00 | 186 .5 0.0 5.0 GENIA MAG MARTI SECTION Z IN OHMS
+
+30-Jul-93 09.59.12 1
+Plot type 8
+Node names GENIA MAG
+Time-axis legend : Frequency f in Hertz
+
+ Z IN OHMS ( x 10**( 3) )
+ 0.000 0.254 0.507 0.761 1.015 1.268 1.522 1.776 2.029 2.283 2.537 2.790 3.044 3.298
++---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
+ < < < Etc. (section removed) > > >
+Blank card terminating all plot cards. |BLANK card ending batch-mode (CalComp) plot cards
+Actual List Sizes for the preceding solution follow. 30-Jul-93 09.53.22
+ Size 1-10: 19 24 39 3 -9999 0 -9999 -9999 0 0
+ Size 11-20: -9999 60 82 -9999 -9999 0 0 0 23 1073
+ Size 21-29: 72 -9999 90 -9999 -9999 -9999 -9999 -9999 -9999
+Seconds for overlays 1-5 : 1.703 0.000 1.703 --- (CP: I/O; tot)
+Seconds for overlays 6-11 : 8.133 0.000 8.133
+Seconds for overlays 12-15 : 0.000 0.000 0.000
+Seconds for time-step loop : 0.055 0.000 0.055
+Seconds after DELTAT-loop : 0.879 0.000 0.879
+ ---------------------------
+ Totals : 10.770 0.000 10.770
+
diff --git a/benchmarks/dc51fs3.dat b/benchmarks/dc51fs3.dat
new file mode 100644
index 0000000..cd84e0f
--- /dev/null
+++ b/benchmarks/dc51fs3.dat
@@ -0,0 +1,100 @@
+C <++++++> Cards punched by support routine on 18-SEP-91 07:44:12 <++++++>
+C JMARTI SETUP, 1.0, { Note use of PDT0 = 1 to allow reduction of ord
+C $ERASE
+C BRANCH JDA LMA JDB LMB JDC LMC
+C LINE CONSTANTS
+C C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+C TRANSPOSED
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C BLANK CARD ENDING CONDUCTOR CARDS OF &LINE CONSTANTS& CASE
+C 100. 5000.0 1 138. 1 1
+C 100. 60.00 1 138. 1 1
+C 100. .01 1 138. 1 9 10 1
+C BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+C BLANK CARD ENDING "LINE CONSTANTS" CASES
+C C 3456789012345678901234567890123456789012345678901234567890123456789012345678
+C C SELECT +3 -3
+C 1
+C .30 30 0 1 1 1 0
+-1JDA LMA 2. 1.00 -2
+ 18 0.47451831101101520716E+03
+ -0.120081062968756280E+01 -0.316405763313299632E+01 0.256932200009645957E+02
+ -0.602598085082801518E+02 -0.118714770735006967E+03 0.128352319683379002E+04
+ 0.591638248494403535E+04 0.294305250873326868E+05 0.116318975618842309E+06
+ 0.459249722758438496E+06 0.154677011972793328E+07 0.686025868803029985E+07
+ 0.156353274865705122E+08 0.237895960081606861E+08 0.117959279089827936E+08
+ 0.266824936920365375E+08 0.262710020538645065E+08 0.449665457754528895E+08
+ 0.327706249087525478E+00 0.897216954243087700E+00 0.165554332918055769E+01
+ 0.166586165459549870E+01 0.252939897370842093E+01 0.200105259629226495E+02
+ 0.124539630041500239E+03 0.659787753798185037E+03 0.279916904843576089E+04
+ 0.117767336727509653E+05 0.429820526044313583E+05 0.203664181161562348E+06
+ 0.973703332893284969E+06 0.304009234079002426E+07 0.611597333586299303E+07
+ 0.144324529645394124E+08 0.130708232833027234E+08 0.238306479572872124E+08
+ 14 0.86815077124698057372E-03
+ 0.559961665585920650E-01 0.275859097915883665E+00 0.366926548945632078E+00
+ 0.774887474980490445E+00 0.425201985771015500E+01 0.106499171813195073E+02
+ 0.593306574121119858E+02 0.420006316132136313E+03 0.116114239885902256E+04
+ 0.988217929186759875E+03 0.636655891176612408E+04 0.597536233496734858E+05
+ 0.181410761048913384E+08 -0.182098413600606746E+08
+ 0.220025857179597386E+02 0.104858693772257157E+03 0.142080244883049186E+03
+ 0.269881655369213689E+03 0.367818194911227330E+03 0.489749997951272086E+03
+ 0.117877893449694832E+04 0.282757087592563670E+04 0.432673390803872292E+04
+ 0.620251900121745700E+04 0.119248844933559833E+05 0.263190433404159467E+05
+ 0.203957306090427796E+05 0.204161263396518216E+05
+-2JDB LMB 2. 1.00 -2
+ 10 0.27918412198151782633E+03
+ 0.223477735420733927E+04 -0.114637808644082020E+04 0.562713463449037420E+03
+ 0.131558796963641711E+03 0.809731119998908557E+02 0.136543470872678377E+03
+ 0.638104438343413491E+02 0.134037028238825748E+03 0.550787007998715876E+04
+ 0.769156786393917573E+06
+ 0.339528899377900173E+01 0.372152580849274106E+01 0.742888229124818422E+01
+ 0.105057373139075598E+02 0.136164452778176321E+02 0.237989900635378331E+02
+ 0.384148838286085814E+02 0.733458103230969716E+02 0.265431564756950860E+04
+ 0.372575386817332641E+06
+ 20 0.74599392983292179768E-03
+ 0.180586864035276293E-01 0.319699506044472048E+01 0.313587709150663380E+01
+ 0.593232492400139511E+01 0.743853040279221212E+01 0.122443219959108647E+02
+ 0.182863037304053475E+02 0.523917784508005866E+02 0.367819898778271337E+03
+ 0.201527604162885450E+04 0.267044905126571362E+05 0.269463815651987079E+05
+ 0.180992629991478585E+06 -0.725032339277287792E+05 0.188139771569328430E+06
+ 0.730538307899732856E+06 0.433720089868115492E+09 -0.427070911861493215E+09
+ 0.269954519836530104E+09 -0.277687001930893905E+09
+ 0.743017923297392346E+01 0.125469958041855037E+04 0.133552980129450327E+04
+ 0.239867436518041035E+04 0.306582540434474976E+04 0.495594413211201390E+04
+ 0.740487156717725475E+04 0.217329459321606737E+05 0.176792957118680411E+05
+ 0.466108042744677241E+05 0.174043620363312366E+06 0.229769370467299781E+06
+ 0.351791281275438560E+06 0.367292903450297163E+06 0.614171445952830632E+06
+ 0.920861499455243247E+06 0.210947591534427053E+07 0.211158539125961496E+07
+ 0.180499533588652458E+07 0.180680033122241122E+07
+-3JDC LMC 2. 1.00 -2
+ 10 0.27918412198151782633E+03
+ 0.223477735420733927E+04 -0.114637808644082020E+04 0.562713463449037420E+03
+ 0.131558796963641711E+03 0.809731119998908557E+02 0.136543470872678377E+03
+ 0.638104438343413491E+02 0.134037028238825748E+03 0.550787007998715876E+04
+ 0.769156786393917573E+06
+ 0.339528899377900173E+01 0.372152580849274106E+01 0.742888229124818422E+01
+ 0.105057373139075598E+02 0.136164452778176321E+02 0.237989900635378331E+02
+ 0.384148838286085814E+02 0.733458103230969716E+02 0.265431564756950860E+04
+ 0.372575386817332641E+06
+ 20 0.74599392983292179768E-03
+ 0.180586864035276293E-01 0.319699506044472048E+01 0.313587709150663380E+01
+ 0.593232492400139511E+01 0.743853040279221212E+01 0.122443219959108647E+02
+ 0.182863037304053475E+02 0.523917784508005866E+02 0.367819898778271337E+03
+ 0.201527604162885450E+04 0.267044905126571362E+05 0.269463815651987079E+05
+ 0.180992629991478585E+06 -0.725032339277287792E+05 0.188139771569328430E+06
+ 0.730538307899732856E+06 0.433720089868115492E+09 -0.427070911861493215E+09
+ 0.269954519836530104E+09 -0.277687001930893905E+09
+ 0.743017923297392346E+01 0.125469958041855037E+04 0.133552980129450327E+04
+ 0.239867436518041035E+04 0.306582540434474976E+04 0.495594413211201390E+04
+ 0.740487156717725475E+04 0.217329459321606737E+05 0.176792957118680411E+05
+ 0.466108042744677241E+05 0.174043620363312366E+06 0.229769370467299781E+06
+ 0.351791281275438560E+06 0.367292903450297163E+06 0.614171445952830632E+06
+ 0.920861499455243247E+06 0.210947591534427053E+07 0.211158539125961496E+07
+ 0.180499533588652458E+07 0.180680033122241122E+07
diff --git a/benchmarks/dc51fs3p.dat b/benchmarks/dc51fs3p.dat
new file mode 100644
index 0000000..2da1c7e
--- /dev/null
+++ b/benchmarks/dc51fs3p.dat
@@ -0,0 +1,34 @@
+KARD 1 2 3 4 5 6
+KARG 1 3 5 2 4 6
+KBEG 9 9 9 3 3 3
+KEND 14 14 14 8 8 8
+KTEX 1 1 1 1 1 1
+C ** JUMPERS TO LINE MODEL SEGMENT FOR current injection
+ GENIA SEND_A .001 0
+ GENIB SEND_B .001 0
+ GENIC SEND_C .001 0
+C
+C ** JUMPERS TO SHORT CIRCUIT OTHER END OF LINE MODEL segment
+ RECV_A .001 0
+ RECV_B .001 0
+ RECV_C .001 0
+C
+C ** SHUNT RESISTANCE TO LIMIT RESONANT impedance to 100K ohms
+ GENIA 100.E3 0
+ GENIB 100.E3 0
+ GENIC 100.E3 0
+C
+C
+BLANK card ending branch cards
+BLANK card ending switch and valve cards
+C
+C
+C ** Current sources FOR IMPEDANCE MEASUREMENT
+14GENIA -1 1.00 60.0 0. -1.0
+14GENIB -1 1.00 60.0 -120. -1.0
+14GENIC -1 1.00 60.0 +120. -1.0
+BLANK card ending source cards
+C
+C ** OUTPUTS FOR impedance test
+ GENIA GENIB GENIC
+BLANK card ending names of nodes for node voltage output
diff --git a/benchmarks/dc51fs3z.dat b/benchmarks/dc51fs3z.dat
new file mode 100644
index 0000000..c837ceb
--- /dev/null
+++ b/benchmarks/dc51fs3z.dat
@@ -0,0 +1,34 @@
+KARD 1 2 3 4 5 6
+KARG 1 3 5 2 4 6
+KBEG 9 9 9 3 3 3
+KEND 14 14 14 8 8 8
+KTEX 1 1 1 1 1 1
+C ** Jumpers to LINE MODEL SEGMENT FOR CURRENT INJECTION
+ GENIA SEND_A .001 0
+ GENIB SEND_B .001 0
+ GENIC SEND_C .001 0
+C
+C ** JUMPERS TO short circuit OTHER END OF LINE MODEL SEGMENT
+ RECV_A .001 0
+ RECV_B .001 0
+ RECV_C .001 0
+C
+C ** Shunt resistance TO LIMIT RESONANT IMPEDANCE TO 100K OHMS
+ GENIA 100.E3 0
+ GENIB 100.E3 0
+ GENIC 100.E3 0
+C
+C
+BLANK card ending branch cards
+BLANK card ending switch and valve cards
+C
+C
+C ** CURRENT SOURCES FOR IMPEDANCE measurement
+14GENIA -1 1.00 60.0 0. -1.0
+14GENIB -1 1.00 60.0 - 0. -1.0
+14GENIC -1 1.00 60.0 0. -1.0
+BLANK card ending sources
+C
+C ** Outputs for IMPEDANCE TEST
+ GENIA GENIB GENIC
+BLANK card ending node names for voltage output
diff --git a/benchmarks/dc51fs6.dat b/benchmarks/dc51fs6.dat
new file mode 100644
index 0000000..bba4112
--- /dev/null
+++ b/benchmarks/dc51fs6.dat
@@ -0,0 +1,182 @@
+C <++++++> Cards punched by support routine on 24-Oct-89 11:44:12 <++++++>
+C JMARTI SETUP
+C BRANCH MR02A MR04A MR02B MR04B MR02C MR04C MR02D MR04D MR02E MR04E MR02F MR04
+C C
+C LINE CONSTANTS
+C C
+C C **** KEY WORDS SPECIFYING TYPE OF MODEL TO BE BUILT ****
+C C
+C C UNTRANSPOSED LINE MODEL
+C C TRANSPOSED
+C C SPECIAL DOUBLE CIRCUIT TRANSPOSED LINE
+C C
+C C **** CONDUCTOR CARDS ****
+C C
+C C 100" DBL CCT (TOWER 19M) WITH "SEAHAWK" CONDUCTOR - 3/16/81
+C C ========= 4-OHGW (.495" EHS STEEL) FOR COLSTRIP
+C C
+C 1.4138 .0497 4 1.603 -15. 52.0 A1-1
+C 1.4138 .0497 4 1.603 -16.06 53.06 A1-2
+C 1.4138 .0497 4 1.603 -13.94 53.06 A1-3
+C 2.4138 .0497 4 1.603 -25. 83.0 B1-1
+C 2.4138 .0497 4 1.603 -26.06 84.06 B1-2
+C 2.4138 .0497 4 1.603 -23.94 84.06 B1-3
+C 3.4138 .0497 4 1.603 -15. 114.0 C1-1
+C 3.4138 .0497 4 1.603 -16.06 115.06 C1-2
+C 3.4138 .0497 4 1.603 -13.94 115.06 C1-3
+C 4.4138 .0497 4 1.603 15. 114.0 A2-1
+C 4.4138 .0497 4 1.603 13.94 115.06 A2-2
+C 4.4138 .0497 4 1.603 16.06 115.06 A2-3
+C 5.4138 .0497 4 1.603 25. 83.0 B2-1
+C 5.4138 .0497 4 1.603 23.94 84.06 B2-2
+C 5.4138 .0497 4 1.603 26.06 84.06 B2-3
+C 6.4138 .0497 4 1.603 15. 52.0 C2-1
+C 6.4138 .0497 4 1.603 13.94 53.06 C2-2
+C 6.4138 .0497 4 1.603 16.06 53.06 C2-3
+C 0.5 3.56 4 .495 -7.0 150.7 OHGW-L
+C 0.5 3.56 4 .495 7.0 150.7 OHGW-R
+C BLANK CARD ENDING CONDUCTOR CARDS OF "LINE CONSTANTS" CASE
+C C RHO FREQ LENGTH SEGMENT G.W.
+C 100. 1000. 1 53.00 1 1
+C 100. 60. 1 53.00 1 1
+C 100. .001 1 53.00 1 9 10 1 1
+C BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+C BLANK CARD ENDING "LINE CONSTANTS" CASES
+C C 3456789012345678901234567890123456789012345678901234567890123456789012345678
+C C SELECT +6 -6
+C 1
+C .30 30 0 1 1 0 0
+-1MR02A MR04A 2. 0.00 -2 6
+ 20 0.67840828076250306822E+03
+ -0.117812664091835884E+00 -0.168043678611424857E+00 -0.203146040168673353E+00
+ -0.334242936664796986E+00 -0.197393231219099108E+01 -0.576868599864933795E+01
+ -0.161431573634744439E+02 0.834024102882779061E+01 -0.243750335903307347E+01
+ -0.664881394846277203E+03 -0.144070761757396031E+04 0.541589389352484432E+04
+ 0.228540922852072945E+05 0.797969708865229186E+05 0.249308588066404016E+06
+ 0.801893928867314244E+06 0.220840489698645240E+07 0.793683557833937369E+07
+ 0.132048313146078978E+08 0.400967804211615175E+08
+ 0.781288038250473049E-01 0.112576988883163032E+00 0.138937791152754342E+00
+ 0.227905802773770899E+00 0.370340602072765757E+00 0.581720608423274776E+00
+ 0.955416473305550462E+00 0.200406099747607858E+01 0.183435092858568538E+01
+ 0.237102436595163768E+01 0.473101516191457261E+01 0.452787512200884166E+02
+ 0.314641130780188575E+03 0.118906085227354833E+04 0.400948151171619884E+04
+ 0.137578825084006476E+05 0.414155022900920521E+05 0.158835209634385974E+06
+ 0.558778901453847415E+06 0.176746691609545867E+07
+ 21 0.32528145560576266241E-03
+ 0.112244883719644032E-01 0.135373578335516692E+00 0.177925146558561981E+00
+ 0.230398529819115877E+00 0.249987115960627559E+00 0.319452276270058011E+00
+ 0.244906540155881786E+00 0.541423348659036630E+00 0.346065244249793622E+02
+ 0.500149283943064216E+01 0.102793098418375394E+03 0.102373018169361046E+04
+ 0.114978235630152517E+04 -0.515338428883736015E+03 0.346516537690874884E+04
+ 0.114151226654371840E+05 0.225232458360224991E+05 0.985342178336232156E+07
+ -0.973414561458559707E+07 0.205291972485551611E+07 -0.221140191342626791E+07
+ 0.862775595076194968E+01 0.101787577667939658E+03 0.134596355134424186E+03
+ 0.169579611996866589E+03 0.189307409588613439E+03 0.245132052712709850E+03
+ 0.199993762485085739E+03 0.367641916548446773E+03 0.111313827696035173E+04
+ 0.112748361174320235E+04 0.214700172920126215E+04 0.629519624158694387E+04
+ 0.848449172073151021E+04 0.132923636232770841E+05 0.117400337357244061E+05
+ 0.251890819220483754E+05 0.350589159771538398E+05 0.853143117855563178E+05
+ 0.853996260973418975E+05 0.692167397636138921E+05 0.692859565033774415E+05
+-2MR02B MR04B 2. 0.00 -2 6
+ 9 0.31739254317920625681E+03
+ 0.711271346739046521E+03 0.833620089307804903E+02 0.116586402591923758E+03
+ 0.729116090030184836E+02 0.795984302425380292E+02 0.386917167495732386E+02
+ 0.335463781352845581E+04 0.113241950044376877E+06 0.180732715960772941E+07
+ 0.324312776117683743E+01 0.477839404130792555E+01 0.747684632844308972E+01
+ 0.100926845114510275E+02 0.169825980050532088E+02 0.296585259103894110E+02
+ 0.221320339738000985E+04 0.751594022908114421E+05 0.120592002913540485E+07
+ 15 0.29141800376881397657E-03
+ 0.325509778135708583E+01 0.334144604511724168E+02 0.457456806958786686E+02
+ 0.972923749843056527E+02 0.531594777341716167E+03 0.119174351528594525E+04
+ 0.885073157256288141E+04 -0.367788816759688547E+06 0.504123151554275479E+06
+ 0.246435477332644892E+06 0.507579868876181252E+06 0.545380489540555954E+10
+ -0.529763196542000580E+10 0.735701234673355579E+10 -0.751408638017744350E+10
+ 0.126813497317398651E+04 0.124909735786517758E+05 0.170785650690660295E+05
+ 0.332881235243052361E+05 0.439553195621231207E+05 0.546257281207353371E+05
+ 0.155276861202685424E+06 0.380997279283379554E+06 0.373198363507686474E+06
+ 0.680842474867501296E+06 0.129128712683760794E+07 0.391866911164038302E+07
+ 0.392258778075201996E+07 0.360856708131543314E+07 0.361217564839674579E+07
+-3MR02C MR04C 2. 0.00 -2 6
+ 9 0.27975855822857977273E+03
+ 0.728217154872103265E+03 0.177284350482270497E+03 0.107856811216481248E+03
+ 0.754224530635076746E+02 0.841059269248198689E+02 0.393316476361086487E+02
+ 0.843802508791947048E+03 0.228130712260747132E+05 0.128514586438683327E+07
+ 0.300892875415816441E+01 0.523535408305552785E+01 0.774435772254874166E+01
+ 0.106494933711386839E+02 0.176597915063327981E+02 0.296244154209850983E+02
+ 0.534472447911307995E+03 0.143775931127991553E+05 0.813891973058237229E+06
+ 15 0.28466038443210746030E-03
+ 0.278725830464495550E+01 0.224788696312001193E+02 0.471659013522844859E+02
+ 0.115734864306706342E+03 0.469166480506025948E+03 0.153992730770376147E+04
+ 0.214769635561878640E+05 0.294472093347256341E+05 0.829781094458501611E+05
+ 0.542287519435049966E+06 0.366607933235995646E+06 0.170248257605579590E+12
+ -0.194852279275838257E+12 0.184614018886443573E+12 -0.160011042211179901E+12
+ 0.102742344925430825E+04 0.812743010937231975E+04 0.170059821972149111E+05
+ 0.354092325640940544E+05 0.399963719461087458E+05 0.648630334310437538E+05
+ 0.244627706109525374E+06 0.463311029621299123E+06 0.333876513786867785E+06
+ 0.956570314106663573E+06 0.155345918131547025E+07 0.443225943773162551E+07
+ 0.443669169716935419E+07 0.449664666354590561E+07 0.450114331020944845E+07
+-4MR02D MR04D 2. 0.00 -2 6
+ 11 0.21770730904168729580E+03
+ 0.585150432759042701E+03 0.159878806021764376E+03 0.309272175354816795E+03
+ 0.878036799819706886E+02 0.489519477555247704E+02 0.874628944931351384E+02
+ 0.753059636093292255E+02 0.354733812975455436E+02 0.515084090356296656E+03
+ 0.177758170144382098E+04 0.178330344753210265E+05
+ 0.239638079669073756E+01 0.338958338339593768E+01 0.582715122966184484E+01
+ 0.838648749101285595E+01 0.108302229449360592E+02 0.187561378902552107E+02
+ 0.295629283150317370E+02 0.501599904801235468E+02 0.633241540916842155E+03
+ 0.217639363527052365E+04 0.218529365301557591E+05
+ 7 0.28438033912206705503E-03
+ 0.160717455172157315E+02 0.282215783039457904E+03 0.471023484226911307E+03
+ 0.247581339781508063E+03 0.121236538551047106E+05 0.426175007648550891E+05
+ 0.103399824527313467E+08
+ 0.238656099109075012E+04 0.430866120315540102E+05 0.715483066032631468E+05
+ 0.354490661070754795E+05 0.427449792107251531E+06 0.821137319462440792E+06
+ 0.115998209678911362E+08
+-5MR02E MR04E 2. 0.00 -2 6
+ 11 0.23418167245320603342E+03
+ 0.262207646062115100E+04 -0.191817948057271360E+04 0.368709578445900036E+03
+ 0.324891275674754780E+02 0.622602971946848243E+02 0.872590245579732482E+02
+ 0.769034813772095589E+02 0.350448729477154828E+02 0.817588989211319927E+03
+ 0.179408951415353317E+04 0.281949074819745365E+05
+ 0.289517558933643171E+01 0.302077245323474441E+01 0.593858227292413954E+01
+ 0.775957581662187668E+01 0.107499126862981651E+02 0.182831960305742101E+02
+ 0.293708395615783395E+02 0.490795271752576454E+02 0.994064087445715018E+03
+ 0.219480890054710017E+04 0.345133378974609586E+05
+ 12 0.28442730378187673504E-03
+ 0.282457082678804561E+01 0.381437770302374091E+02 0.434203601384115743E+02
+ 0.140059535215428866E+03 0.196911908089354426E+03 0.172973253402516121E+03
+ 0.355800092118562588E+03 0.121267362188434799E+05 0.443400598183743132E+05
+ 0.152433361376588495E+06 0.751811603841369622E+06 0.654187460803645570E+07
+ 0.870973067622408621E+03 0.115194566313334471E+05 0.136592879590469402E+05
+ 0.469279010999509628E+05 0.647987383672631404E+05 0.456932617200210079E+05
+ 0.557010050710267678E+05 0.420973193761421600E+06 0.782215236320389551E+06
+ 0.150731426928871544E+07 0.508357280883339699E+07 0.102526661885657161E+08
+-6MR02F MR04F 2. 0.00 -2 6
+ 11 0.23545952269312201111E+03
+ 0.267440707435991908E+04 -0.197170894616481633E+04 0.368609009784013551E+03
+ 0.318516562066519384E+02 0.617178984845618217E+02 0.861092101395885123E+02
+ 0.754182083019392167E+02 0.336823783511190342E+02 0.640110784543780824E+03
+ 0.181641658988565632E+04 0.217718336650894125E+05
+ 0.290248050686051817E+01 0.302442910418949307E+01 0.593571785316302414E+01
+ 0.773839554482049952E+01 0.106963063086643864E+02 0.181103272044255981E+02
+ 0.287381810583185135E+02 0.474178659439232746E+02 0.781025205335852434E+03
+ 0.221720744797730549E+04 0.266656757763615715E+05
+ 8 0.28443631035803977657E-03
+ 0.889261211573285060E+01 0.108754021585327621E+03 0.851836755259116813E+02
+ 0.216479141045935762E+03 0.115183318155717134E+05 0.126970641146333928E+05
+ 0.135964090146558912E+06 0.789521040168800764E+07
+ 0.184594222816107390E+04 0.229232234016356306E+05 0.175134538293066071E+05
+ 0.450578916565838517E+05 0.601242755588978645E+06 0.318510552726866677E+06
+ 0.166340306088024029E+07 0.941568751981083676E+07
+ 0.48938461 -0.48033004 -0.51882079 0.27336379 -0.29659589 -0.44576770
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.33445189 -0.01475809 -0.44009594 -0.47179484 0.58200813 0.22079324
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.38554460 0.51871500 -0.19271884 0.45020203 -0.27073494 0.50253507
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.38554460 0.51871500 0.19271884 -0.45020203 -0.27073494 -0.50253507
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.33445189 -0.01475809 0.44009594 0.47179484 0.58200813 -0.22079324
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.48938461 -0.48033004 0.51882079 -0.27336379 -0.29659589 0.44576770
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
diff --git a/benchmarks/dc51fs6m.dat b/benchmarks/dc51fs6m.dat
new file mode 100644
index 0000000..9a880c8
--- /dev/null
+++ b/benchmarks/dc51fs6m.dat
@@ -0,0 +1,62 @@
+KARD 1 2 3 4 5 6 10 11 12 13 14 15
+KARG 1 3 5 2 4 6 7 9 11 8 10 12
+KBEG 9 9 9 3 3 3 9 9 9 3 3 3
+KEND 14 14 14 8 8 8 14 14 14 8 8 8
+KTEX 1 1 1 1 1 1 1 1 1 1 1 1
+C ----- CCT 1 -------------- Impedance MEASUREMENT ------------------------
+C ** Jumpers TO LINE MODEL SEGMENT FOR CURRENT INJECTION
+ GENIA SEND_A .001 0
+ GENIB SEND_B .001 0
+ GENIC SEND_C .001 0
+C
+C ** Jumpers TO SHORT CIRCUIT OTHER END OF LINE MODEL SEGMENT
+ RECV_A .001 0
+ RECV_B .001 0
+ RECV_C .001 0
+C
+C ** Shunt RESISTANCE TO LIMIT RESONANT IMPEDANCE TO 100K OHMS
+ GENIA 100.E3 0
+ GENIB 100.E3 0
+ GENIC 100.E3 0
+C
+C
+C ----- CCT 2 -------------- Impedance MEASUREMENT ------------------------
+C ** Jumpers TO LINE MODEL SEGMENT FOR CURRENT INJECTION
+ GENID SEND_D .001 0
+ GENIE SEND_E .001 0
+ GENIF SEND_F .001 0
+C
+C ** Jumpers TO SHORT CIRCUIT OTHER END OF LINE MODEL SEGMENT
+ RECV_D .001 0
+ RECV_E .001 0
+ RECV_F .001 0
+C
+C ** Shunt RESISTANCE TO LIMIT RESONANT IMPEDANCE TO 100K OHMS
+ GENID 100.E3 0
+ GENIE 100.E3 0
+ GENIF 100.E3 0
+C -------------------------------------------------------------------------
+C
+BLANK card ending branch cards (within dc51fs6m.dat)
+BLANK card ending switch and value cards (within dc51fs6m.dat)
+C
+C
+C ** Current sources FOR IMPEDANCE MEASUREMENT
+14GENIA -1 1.00 60.0 0. -1.0
+14GENIB -1 1.00 60.0 - 0. -1.0
+14GENIC -1 1.00 60.0 0. -1.0
+C
+$DISABLE
+14GENID -1 1.00 60.0 0. -1.0
+14GENIE -1 1.00 60.0 - 0. -1.0
+14GENIF -1 1.00 60.0 0. -1.0
+$ENABLE
+C
+C
+BLANK card ending source cards (within dc51fs6m.dat
+C
+C ** Outputs for IMPEDANCE TEST
+ GENIA GENIB GENIC
+ GENID GENIE GENIF
+C
+BLANK card ending node voltage output (within dc51fs6m.dat)
diff --git a/benchmarks/dc51fs6p.dat b/benchmarks/dc51fs6p.dat
new file mode 100644
index 0000000..bc5a059
--- /dev/null
+++ b/benchmarks/dc51fs6p.dat
@@ -0,0 +1,60 @@
+KARD 1 2 3 4 5 6 10 11 12 13 14 15
+KARG 1 3 5 2 4 6 7 9 11 8 10 12
+KBEG 9 9 9 3 3 3 9 9 9 3 3 3
+KEND 14 14 14 8 8 8 14 14 14 8 8 8
+KTEX 1 1 1 1 1 1 1 1 1 1 1 1
+C ----- CCT 1 -------------- IMPEDANCE measurement ------------------------
+C ** JUMPERS TO LINE MODEL SEGMENT for current injection
+ GENIA SEND_A .001 0
+ GENIB SEND_B .001 0
+ GENIC SEND_C .001 0
+C
+C ** JUMPERS TO short circuit OTHER END OF LINE MODEL SEGMENT
+ RECV_A .001 0
+ RECV_B .001 0
+ RECV_C .001 0
+C
+C ** SHUNT RESISTANCE to limit RESONANT IMPEDANCE TO 100K OHMS
+ GENIA 100.E3 0
+ GENIB 100.E3 0
+ GENIC 100.E3 0
+C
+C
+C ----- CCT 2 -------------- Impedance MEASUREMENT ------------------------
+C ** JUMPERS TO LINE MODEL segment for CURRENT INJECTION
+ GENID SEND_D .001 0
+ GENIE SEND_E .001 0
+ GENIF SEND_F .001 0
+C
+C ** JUMPERS TO SHORT CIRCUIT other end OF LINE MODEL SEGMENT
+ RECV_D .001 0
+ RECV_E .001 0
+ RECV_F .001 0
+C
+C ** SHUNT RESISTANCE TO LIMIT resonant impedance TO 100K OHMS
+ GENID 100.E3 0
+ GENIE 100.E3 0
+ GENIF 100.E3 0
+C -------------------------------------------------------------------------
+C
+BLANK card ending branch cards
+BLANK card ending switch and valve cards
+C
+C
+C ** Current sources FOR IMPEDANCE MEASUREMENT
+14GENIA -1 1.00 60.0 0. -1.0
+14GENIB -1 1.00 60.0 -120. -1.0
+14GENIC -1 1.00 60.0 120. -1.0
+C
+14GENID -1 1.00 60.0 0. -1.0
+14GENIE -1 1.00 60.0 -120. -1.0
+14GENIF -1 1.00 60.0 120. -1.0
+C
+C
+BLANK card ending sources
+C
+C ** Outputs FOR IMPEDANCE TEST
+ GENIA GENIB GENIC
+ GENID GENIE GENIF
+C
+BLANK card ending node voltage outputs
diff --git a/benchmarks/dc51fs6z.dat b/benchmarks/dc51fs6z.dat
new file mode 100644
index 0000000..b87e749
--- /dev/null
+++ b/benchmarks/dc51fs6z.dat
@@ -0,0 +1,60 @@
+KARD 1 2 3 4 5 6 10 11 12 13 14 15
+KARG 1 3 5 2 4 6 7 9 11 8 10 12
+KBEG 9 9 9 3 3 3 9 9 9 3 3 3
+KEND 14 14 14 8 8 8 14 14 14 8 8 8
+KTEX 1 1 1 1 1 1 1 1 1 1 1 1
+C ----- CCT 1 -------------- IMPEDANCE MEASUREMENT ------------------------
+C ** JUMPERS TO LINE MODEL SEGMENT FOR CURRENT INJECTION
+ GENIA SEND_A .001 0
+ GENIB SEND_B .001 0
+ GENIC SEND_C .001 0
+C
+C ** JUMPERS TO SHORT CIRCUIT OTHER END OF LINE MODEL SEGMENT
+ RECV_A .001 0
+ RECV_B .001 0
+ RECV_C .001 0
+C
+C ** SHUNT RESISTANCE TO LIMIT RESONANT IMPEDANCE TO 100K OHMS
+ GENIA 100.E3 0
+ GENIB 100.E3 0
+ GENIC 100.E3 0
+C
+C
+C ----- CCT 2 -------------- IMPEDANCE MEASUREMENT ------------------------
+C ** JUMPERS TO LINE MODEL SEGMENT FOR CURRENT INJECTION
+ GENID SEND_D .001 0
+ GENIE SEND_E .001 0
+ GENIF SEND_F .001 0
+C
+C ** JUMPERS TO SHORT CIRCUIT OTHER END OF LINE MODEL SEGMENT
+ RECV_D .001 0
+ RECV_E .001 0
+ RECV_F .001 0
+C
+C ** SHUNT RESISTANCE TO LIMIT RESONANT IMPEDANCE TO 100K OHMS
+ GENID 100.E3 0
+ GENIE 100.E3 0
+ GENIF 100.E3 0
+C -------------------------------------------------------------------------
+C
+BLANK CARD ENDING BRANCH CARDS ============================================
+BLANK CARD ENDING SWITCH AND VALVE CARDS ==================================
+C
+C
+C ** CURRENT SOURCES FOR IMPEDANCE MEASUREMENT
+14GENIA -1 1.00 60.0 0. -1.0
+14GENIB -1 1.00 60.0 - 0. -1.0
+14GENIC -1 1.00 60.0 0. -1.0
+C
+14GENID -1 1.00 60.0 0. -1.0
+14GENIE -1 1.00 60.0 - 0. -1.0
+14GENIF -1 1.00 60.0 0. -1.0
+C
+C
+BLANK CARD ENDING SOURCES =================================================
+C
+C ** OUTPUTS FOR IMPEDANCE TEST
+ GENIA GENIB GENIC
+ GENID GENIE GENIF
+C
+BLANK CARD ENDING NODE VOLTAGE OUTPUTS ====================================
diff --git a/benchmarks/dc52.dat b/benchmarks/dc52.dat
new file mode 100644
index 0000000..c8e187a
--- /dev/null
+++ b/benchmarks/dc52.dat
@@ -0,0 +1,172 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-52
+C "FREQUENCY SCAN" use, with subsequent plotting of phasors vs. frequency
+C Unlike DC-51, this case uses geometric spacing: f-min, max = 1.0, 15 Hz;
+C two points/decade. Also, there is full phasor solution output, & CalComp
+PRINTED NUMBER WIDTH, 9, 2,
+FREQUENCY SCAN, 1.0, 0.0, 15., 2,
+ 1.0 0.0
+ 1 1 1 1 { Note request for phasor branch flows
+ SWIT LOAD 10.
+ LOAD 1000.
+-1SWIT OPEN .3055 5.82 .012 138.
+BLANK card ending all branches
+ GEN SWIT -1.
+BLANK card ending all switch cards
+ BOTH POLAR AND RECTANGULAR { Request for (in order): mag, angle, real, imag
+14GEN 1.0 0.5 -1.
+BLANK card ending source cards
+C Column headings for the 2 output variables follow. These are divided among the 3 possible FS variable classes as follows ....
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C For each variable, magnitude is 1st, angle is 2nd, real part is 3rd, and imaginary is 4th. All 4 are labeled identically, note.
+C Step F [Hz] GEN GEN GEN GEN LOAD LOAD LOAD LOAD
+C 1 1.0 1.0 0.0 1.0 0.0 .532018 57.8581 .283043 .450477
+C 2 3.1622777 1.0 0.0 1.0 0.0 .893248 26.7158 .797892 .401573
+C 3 10. 1.0 0.0 1.0 0.0 .98757 9.04306 .975295 .155223
+C 4 31.622777 1.0 0.0 1.0 0.0 .998736 2.88122 .997473 .050202
+C Preceding was new output. Following comments are left from pre-1998 output:
+C Total network loss P-loss by summing injections = 3.584784087208E-02
+C Inject: SWIT 1.0 1.0 .07169568174416 .08466776778383 .03584784087208
+C Inject: 0.0 0.0 -.0450373192002 -32.1359449 .02251865960008
+C ----- Output vector for step number 1. Frequency = 1.00000000E+00 Hz.
+C 1.0000000E+00 0.0000000E+00 5.3201804E-01 5.7858092E+01
+C 1.0000000E+00 0.0000000E+00 2.8304320E-01 4.5047724E-01
+ GEN LOAD
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+C Total network loss P-loss by summing injections = 1.272220336009E-04
+C ----- Output vector for step number 4. Frequency = 3.16227766E+01 Hz.
+C 1.0000000E+00 0.0000000E+00 9.9873589E-01 2.8812203E+00
+C 1.0000000E+00 0.0000000E+00 9.9747337E-01 5.0202049E-02
+ F-SCAN COMPONENTS ANGLE { Access a single "angle" next
+C 197 .2 0.0 1.6 -20. 60.LOAD angle
+ 147 .2 0.0 1.6 -20. 60.LOAD
+ PRINTER PLOT
+C 197 .4 0.0 1.6 LOAD angle { Axis limits: (0.000, 5.786)
+ 147 .4 0.0 1.6 LOAD { Axis limits: (0.000, 5.786)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 3 subcases illustrates LINE MODEL FREQUENCY SCAN (LMFS) for
+C a cable (CORE ONLY, 3 PHASE). Branch cards generated by JMARTI SETUP.
+C DISK PLOT DATA { Has no effect as explained in Can/Am EMTP News of April, 1992
+C DIAGNOSTIC 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+LINE MODEL FREQUENCY SCAN, 6, , 60000, 10, , , { f-begin, f-end, points/decade
+C LINE MODEL FREQUENCY SCAN, 6, , 599.9, 1, , , { f-begin, f-end, points/decade
+ 40.E-9 -.0600 60. 1.E-15
+ 1 1 0 0 0 0 0 2
+C IOUT KSSOUT ICAT
+$INCLUDE, []dc52fs3.dat { 1st of 2 $INCLUDE contains line section to be tested
+$INCLUDE, []dc51fs3z.dat, JDA###, LMA###, JDB###, LMB###, JDC###, LMC###,
+C []dc51fs3p.dat
+C Unused! ----- 2nd of 2 file names is not used for this single-circuit case
+CABLE CONSTANTS
+C Dimensioning of CABLE PARAMETERS (CP) is under manual control as the
+C following declaration illustrates. Normally, the user will omit such
+C information of columns 33-48, and the program will use available working
+C space to provide for the most burdensome possible case. While consistent,
+C this is wasteful. The resulting limit LV on phases will be smaller than
+C necessary. For data that is in danger of overflowing, an intelligent user
+C should consider the following manual allocation. In the following, LVPLUS
+C is the number of extra phases for use within SUBROUTINE CYMTRX. A value in
+C excess of 2 * LV, or non-positive, will result in the default 2 * LV.
+C But most data requires nothing like (3*LV,3*LV) for storage. In the
+C following, use of (39,39) is illustrated. No matter what is used, the
+C program should be protected. If inadequate, an error message should halt
+C execution within CYMTRX. Of course, the present data requires nothing
+C like (33,33) and (39,39). Rather, these numbers come from CABLE32.DAT
+C as used for testing by BPA's Dr. Tsu-huei Liu on 9 May 2000. The following
+C declaration is adequate to handle that 33-conductor data:
+C 345678901234567890123456789012<---- LV LVPLUS
+CABLE PARAMETERS 33 6
+ 2 -1 3 0 1 1 1
+ 1 1 1
+ 25.4E-3 45.6E-3
+ 6.8912E-8 1. 1. 3.52
+ 25.4E-3 45.6E-3
+ 6.8912E-8 1. 1. 3.52
+ 25.4E-3 45.6E-3
+ 6.8912E-8 1. 1. 3.52
+ 0.75 0.0 0.75 0.3 0.75 0.15
+C EARTH RESISTIVITY AND FREQUENCY CARDS
+ 20. 50. 90.1 { 1st of 3 is Xform matrix [T]
+BLANK card ending frequency cards of "CABLE CONSTANTS" data
+ PRINTER PLOT
+ 186 .5 0.0 5.0 GENIA MAG Marti Section Z in Ohms
+ 196 .5 0.0 5.0 GENIA MAG Equivalent Pi Z in Ohms
+ 196 .5 0.0 5.0 GENIB % MAG Error Percent
+BLANK card ending batch-mode (CalComp) plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases illustrates the use of MODELS with FREQUENCY SCAN.
+C Uses same circuit as first subcase. From Laurent Dube, 15 December 1997
+C For practical usage, there would be many more frequency points, and the
+C printout of phasor branch flows would be suppressed (1 --> 0 in column 32).
+FREQUENCY SCAN, 1.0, 0.0, 15., 2,
+ 1.0 0.0
+ 1 1 1 1 { Note request for phasor branch flows
+C ==============================================================================
+MODELS
+INPUT v_Re_swit {v(swit)} -- real part of voltage at node SWIT
+ v_Im_swit {imssv(swit)} -- imag part of voltage at node SWIT
+ v_Re_load {v(load)} -- real part of voltage at node LOAD
+ v_Im_load {imssv(load)} -- imag part of voltage at node LOAD
+ i_Re_swit {i(swit)} -- real part of current at switch SWIT
+ i_Im_swit {imssi(swit)} -- imag part of current at switch SWIT
+ state_swit {switch(swit)} -- state of switch SWIT (0=open, 1=closed)
+MODEL m1 -----------------------------------------------------------------------
+ VAR pass -- to verify that its value is kept between passes
+ INPUT v_Re_1 {dflt: 0} -- to verify that all types of inputs are
+ v_Im_1 {dflt: 0} -- accessed correctly
+ v_Re_2 {dflt: 0} -- (machine quantities are not tested here)
+ v_Im_2 {dflt: 0}
+ i_Re_1 {dflt: 0}
+ i_Im_1 {dflt: 0}
+ state_1 {dflt: 0}
+ INIT pass:=0 ENDINIT
+ EXEC
+ pass:=pass+1
+ write('************** In models, pass= ', pass)
+ write(' freq= ', t) -- <<=== <<====
+ write(' Re{v1}, Im{v1} = ', v_Re_1, ', ', v_Im_1 )
+ write(' Re{v2}, Im{v2} = ', v_Re_2, ', ', v_Im_2 )
+ write(' Re{i1}, Im{i1} = ', i_Re_1, ', ', i_Im_1 )
+ write(' state_1 = ', state_1 )
+ ENDEXEC
+ENDMODEL
+USE m1 as m1
+ INPUT v_Re_1 := v_Re_swit
+ v_Im_1 := v_Im_swit
+ v_Re_2 := v_Re_load
+ v_Im_2 := v_Im_load
+ i_Re_1 := i_Re_swit
+ i_Im_1 := i_Im_swit
+ state_1 := state_swit
+ENDUSE
+RECORD v_Re_swit AS vre1
+ v_Im_swit AS vim1
+ v_Re_load AS vre2
+ v_Im_load AS vim2
+ i_Re_swit AS ire1
+ i_Im_swit AS iim1
+ m1.state_1 AS state1
+ENDMODELS
+C Begin branches ===============================================================
+ SWIT LOAD 10.
+ LOAD 1000.
+-1SWIT OPEN .3055 5.82 .012 138.
+BLANK card ending all branches
+ GEN SWIT -1.
+BLANK card ending all switch cards
+14GEN 1.0 0.5 -1.
+BLANK card ending source cards
+ GEN LOAD
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+ PRINTER PLOT
+C 197 .5 0.0 1.6 0. 1.LOAD mag
+ 147 .5 0.0 1.6 0. 1.LOAD
+C C 197 .2 0.0 1.6 -20. 60.LOAD angle
+C C 197 .2 0.0 1.6 0. 1.LOAD real
+C C 197 .2 0.0 1.6 0. 1.VRE2 MODELS
+C C 197 .2 0.0 1.6 0. 1.LOAD imag
+C C 197 .2 0.0 1.6 0. 1.VIM2 MODELS
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc52fs3.dat b/benchmarks/dc52fs3.dat
new file mode 100644
index 0000000..336f9f9
--- /dev/null
+++ b/benchmarks/dc52fs3.dat
@@ -0,0 +1,89 @@
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C ***** UNTRANSPOSED JMARTI line segment ******
+C JMARTI SETUP, 1.0 ,
+C BRANCH JDA LMA JDB LMB JDC LMC
+C CABLE CONSTANTS
+C CABLE PARAMETERS
+C 2 -1 3 0 1 0 1
+C 1 1 1
+C 25.4E-3 45.6E-3
+C 6.8912E-8 1. 1. 3.52
+C 25.4E-3 45.6E-3
+C 6.8912E-8 1. 1. 3.52
+C 25.4E-3 45.6E-3
+C 6.8912E-8 1. 1. 3.52
+C 0.75 0.0 0.75 0.3 0.75 0.15
+C 20. 50. 90.1 { 1st of 3 is Xform matrix [
+C 20. 50. 90.1 { 2nd of 3 is not actually us
+C 20. 10. 6 10 90.1 { 3rd of 3 is frequency sc
+C BLANK card ending frequency cards
+C BLANK card ending "CABLE CONSTANTS" data cases
+C 1 .48D-7
+C .30 30 0 1 3 0 0
+-1JDA LMA 2. 1.00 -2 3
+ 7 0.25376356636937167400E+02
+ 0.665173005452765438E+03 0.640977028593130217E+04 0.535392097955731734E+05
+ 0.340428404820669792E+06 0.199897152215706977E+07 0.963989653872452677E+07
+ 0.910565125994938464E+08
+ 0.214313715832364239E+03 0.223090885422440443E+04 0.199783014907408579E+05
+ 0.136635082202814869E+06 0.859069361441494898E+06 0.442669865497044009E+07
+ 0.239415119140150734E+08
+ 15 0.19956659465770515100E-05
+ 0.296692996328928800E+02 0.117012707854763207E+03 0.134932521881456666E+03
+ 0.164827383595067318E+03 0.108449787993165024E+04 0.144615726359184792E+05
+ -0.184975894953051175E+05 0.122393263865140311E+06 0.101383685755951726E+07
+ 0.105717348739152793E+08 -0.269475820912093688E+10 0.265917395161774588E+10
+ 0.175425614768954029E+13 -0.352539502024596876E+13 0.177116275135400733E+13
+ 0.106515217554389220E+05 0.400684884402156386E+05 0.529360982724906353E+05
+ 0.513323811910192963E+05 0.923287805692157126E+05 0.405141538866742689E+06
+ 0.638409461071253755E+06 0.601459759832641692E+06 0.193334251754668635E+07
+ 0.379964082808650286E+07 0.995120094614566491E+07 0.996115214709180594E+07
+ 0.670372192481749971E+07 0.671042564674232808E+07 0.671713607238906529E+07
+-2JDB LMB 2. 1.00 -2 3
+ 24 0.19029401168533993900E+02
+ 0.481305583234702863E+04 -0.440465284207029618E+04 0.206832065195357063E+01
+ 0.212224892836004500E+03 0.397758399733874399E+03 0.107515650574549824E+03
+ 0.920230245129994558E+02 0.108087309682753557E+03 0.138125714918347939E+03
+ 0.157734402475561695E+03 0.190673864309385124E+03 0.235697606630499906E+03
+ 0.346215936184767430E+03 0.588206201439361167E+03 0.833743111151763288E+03
+ 0.129240070978618337E+04 0.277568508895989954E+04 0.792954431970450879E+04
+ 0.922628839243799012E+05 0.105602881488039834E+07 0.121721836396085891E+07
+ 0.973640239616211271E+06 0.166443629525233689E+07 0.148363569288007916E+07
+ 0.107920129123169815E+03 0.108314147241057626E+03 0.124222350982364660E+03
+ 0.143084074332770161E+04 0.283250134525180693E+04 0.159615927515942986E+04
+ 0.249113506745993846E+04 0.330361145519590446E+04 0.396125168097683991E+04
+ 0.460791237369117062E+04 0.556542333438755759E+04 0.691358418964702742E+04
+ 0.986955202404015654E+04 0.172189011760689573E+05 0.241063592758864398E+05
+ 0.374632156504402665E+05 0.803774719294023671E+05 0.231881439079030708E+06
+ 0.269648836296814262E+07 0.306185325695082583E+08 0.355031745195446164E+08
+ 0.273482948476902880E+08 0.498499066738180817E+08 0.429144169966093079E+08
+ 4 0.10871226858509815600E-05
+ -0.463243767213427306E+09 0.563693750487494844E+14 -0.112893091946672313E+15
+ 0.565241801416899219E+14
+ 0.679669768024900705E+08 0.466423496494563818E+08 0.466889919991059155E+08
+ 0.467356809911049679E+08
+-3JDC LMC 2. 1.00 -2 3
+ 21 0.18783899872332909800E+02
+ 0.135068370994146717E+05 -0.126484644455951093E+05 0.229483933350752569E+04
+ 0.902504335723442182E+03 0.262826027682691177E+03 0.236518202121024752E+04
+ 0.236335169230288876E+04 0.176836777187349299E+04 0.291395061999702648E+04
+ 0.730169947434901952E+04 0.112447098545351783E+05 0.209910130366073463E+05
+ 0.487057916955583642E+05 0.822228921897988330E+05 0.136609019074693003E+06
+ 0.197385605453893223E+06 0.438737737345854519E+06 0.113463444105051458E+07
+ 0.164738979919076758E+07 0.156300569709676109E+07 0.691224672029683739E+07
+ 0.115927731776600794E+03 0.116522361765402792E+03 0.372465430732917003E+04
+ 0.418933979313853252E+04 0.479195498125073300E+04 0.342415957165117798E+05
+ 0.369034978245207386E+05 0.261279633609572230E+05 0.452125223258925981E+05
+ 0.110262209079531677E+06 0.171198700391694584E+06 0.320884148031892954E+06
+ 0.741436587557828171E+06 0.125750858491814836E+07 0.209310376066883863E+07
+ 0.305858954503354338E+07 0.678452026391960867E+07 0.170145742368892655E+08
+ 0.231370141073123180E+08 0.243243101128682979E+08 0.283727951786970906E+08
+ 1 0.90046899865879086700E-06
+ 0.668796980766214133E+08
+ 0.668823489407480211E+08
+ 0.33644368 0.50000000 -0.33644326
+ -0.00033458 0.00000000 -0.00063149
+ 0.33644368 -0.50000000 -0.33644326
+ -0.00033458 0.00000000 -0.00063149
+ 0.34633623 0.00000000 0.65366657
+ 0.00065006 0.00000000 -0.00065006
diff --git a/benchmarks/dc53.dat b/benchmarks/dc53.dat
new file mode 100644
index 0000000..3bebfe6
--- /dev/null
+++ b/benchmarks/dc53.dat
@@ -0,0 +1,499 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-53
+C 1976 IEEE PES SSR test of Type-59 S.M. modeling with a six-mass rotor.
+C The 1st of 2 subproblems uses S.M. saturation, while the 2nd ignores it.
+C Modified under the direction of Prof. Juan Martinez in Barcelona, Spain.
+C At end of November, 1992, answer changes. Original data case is at end.
+PRINTED NUMBER WIDTH, 13, 2, { Full precision on each of 8 columns of printout
+ALTERNATE DIAGNOSTIC PRINTOUT, 9, 9, 9, 9,
+ .000100 .150 60.0 60.0
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 500 500
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+BLANK card terminating branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card terminating switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+TOLERANCES { Only change columns 51-60: NIOMAX = 20 } 20
+PARAMETER FITTING 1.
+ 6 5 6 2 1. 1. 892.4 26. -1800. 1907. 3050.
+ -1.
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813 { 1st rotor mass card
+ 2 .26 .046379 60.9591
+ 3 .22 .255958 90.81823
+ 4 .22 .263573 123.6634
+ 5 .258887 4.925036
+ 6 .0101995 { 6th and final mass
+BLANK
+ 51
+ 11
+ 21
+ 31
+BLANK
+ FINISH
+BLANK card terminating source cards
+C Total network loss P-loss by summing injections = 1.775782562050E+07
+C 1st gen: NAVL A 15038.245551065 21229. 9214.6926498239 27946.788742442
+C 1st gen: -14984.04523972 -44.8965620 -26383.94285136 -70.7480503
+C Id Iq Io
+C -3.09160628944E+04 1.46878029885E+04 -5.25097010895E-12
+C Field current of the generator: 4.5653502353E+03 4.5653502353E+03
+C Electromechanical torque of the gen ... 2.1243643866E+00 2.1243643866E+00
+C Exciter electromechanical torque ... 7.7723230262E-03 7.7723230262E-03
+C Critical level of total air-gap MMF ... 1.71429881387E+03 1.63168200357E+03
+C All rotor masses have angular velocity OMEGA = 3.76991118E+02 [radians/sec]
+C 86.9716299 86.1695376 85.3421110 84.5685376 83.8401898 83.7735234
+C Shaft torques T(i,i+1) between rotor masses "i" and "i+1", for i=1, 2,
+C 0.6396410129E+00 0.1193996557E+01 0.1663066633E+01 0.2132136710E+01
+ NAVH ANAVH BNAVH C
+C Step Time NAVH A NAVH B NAVH C MACH 1 MACH 1
+C ID IQ
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IG IKQ IA IB IC
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C TQ GEN TQ EXC ANG 1 ANG 2 ANG 3
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C VEL 1 VEL 2 VEL 3 VEL 4 VEL 5
+C 0 0.0 54291.79404 -385072.51 330780.7161 -30916.0629 14687.80299
+C -.75273E-13 .292655E-12 9214.69265 -27456.5111 18241.81844
+C 2.124364387 .007772323 86.97162992 86.16953762 85.34211102
+C .568434E-13 -.56843E-13 .568434E-13 0.0 -.56843E-13
+C 1 .1E-3 69839.72736 -390821.193 320981.4652 -30916.1137 14687.72194
+C .0014080836 .0048684281 10202.46318 -27633.4201 17430.95695
+C 2.124360609 .0077723236 86.97162992 86.16953762 85.34211102
+C .568434E-13 -.56843E-13 .113687E-12 .625278E-12 .1731394E-7
+BLANK card terminating output specifications (node voltages only, here)
+C *** Open switch "SWT C" to " " after 1.00100000E-01 sec.
+C ------ Type-59 S.M. number 1 at time 1.12000000E-01 sec .. 1 and 2.
+C ------ Type-59 S.M. number 1 at time 1.13700000E-01 sec .. 2 and 2.
+C ------ Type-59 S.M. number 1 at time 1.30100000E-01 sec .. 1 and 2.
+C ------ Type-59 S.M. number 1 at time 1.37400000E-01 sec .. 1 and 1.
+C 1500 .15 104309.3802 -348086.573 298677.2363 -21759.7047 -10943.295
+C 417.8108108 1357.808512 -9044.48114 -10806.1382 19850.61938
+C -.070295796 .0089410716 97.59730399 95.86730666 93.82046444
+C -.941992921 .2045176672 1.339725985 1.915083108 1.384124131
+C Variable max : 585313.3059 520085.4417 539525.0876 17835.73667 63381.56051
+C 988.5212215 3033.444336 72725.64358 62059.23923 72170.40257
+C 6.107369721 .0111718463 97.63617496 95.86730666 93.82046444
+C 9.612649456 6.486026888 3.485964779 3.136429198 3.837403559
+C Times of max : .1205 .1088 .115 .1131 .1253
+C .0431 .0428 .0386 .0766 .0323
+C .1269 .0898 .1486 .15 .15
+C .1324 .1339 .1383 .1117 .1064
+C Variable min : -531698.11 -567217.32 -539152.057 -90845.4903 -37996.1401
+C -878.277652 -3160.31004 -72191.0953 -67636.3644 -70191.1596
+C -1.13766495 .0074527254 85.34786543 85.03403222 84.47962018
+C -6.54365807 -2.66345876 -.92720609 -.946755214 -1.05667573
+C Times of min : .1116 .1177 .1235 .0308 .043
+C .1254 .1252 .0296 .0355 .0413
+C .1016 .1153 .0709 .0664 .0604
+C .109 .1084 .0511 .1383 .1367
+ CALCOMP PLOT
+ 19415. 150. MACH 1TQ GEN
+ PRINTER PLOT
+ 19415. 150. MACH 1TQ GEN { Axis limits: (-1.138, 6.107)
+ 19415. 150. MACH 1VEL 6 { Axis limits: (-1.311, 1.221)
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases ignores saturation of S.M. Note "-1800." becomes plus.
+C Modified with Guido's and Juan Martinez's approval during Oct., 1990.
+C Answers have changed. The original data case is unexecuted at end.
+ .000100 .150 60. 60.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 500 500 2000 2000
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+BLANK card terminating branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card terminating switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+PARAMETER FITTING 1. { +1800 below ignores saturation
+ 6 5 6 2 1. 1. 892.4 26. +1800. 1907. 3050.
+ +1.
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813
+ 2 .26 .046379 60.9591
+ 3 .22 .255958 90.81823
+ 4 .22 .263573 123.6634
+ 5 .258887 4.925036
+ 6 .0101995
+BLANK
+ 51
+ 11
+ 21
+ 31
+BLANK
+ FINISH
+BLANK card terminating source cards
+C Total network loss P-loss by summing injections = 1.775782562050E+07
+C last gen: EQV C 349966.92087687 389997. -1273.1121012 1348.5241961806
+C last gen: 172106.98504408 26.1870700 -444.6381511542 -160.7480946
+C Id Iq Io
+C -3.15542117823E+04 1.32614561915E+04 2.52046565230E-11
+C Field current of the generator: 4.3132669924E+03 4.3132669924E+03
+C Electromechanical torque of the generator: 2.1243643866E+00 2.1243643866E+00
+C Exciter electromechanical torque: 6.9376969460E-03 6.9376969460E-03
+C Critical level of total air-gap MMF ... 1.71429884454E+03 1.60523487584E+03
+C Shaft torques T(i,i+1) between rotor masses "i" and "i+1", for i=1, 2,
+C 0.6393906251E+00 0.1193529167E+01 0.1662415625E+01 0.2131302084E+01
+ NAVH ANAVH BNAVH C
+C Step Time NAVH A NAVH B NAVH C MACH 1 MACH 1
+C ID IQ
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IG IKQ IA IB IC
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C TQ GEN TQ EXC ANG 1 ANG 2 ANG 3
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C VEL 1 VEL 2 VEL 3 VEL 4 VEL 5
+C 0 0.0 54291.79404 -385072.51 330780.7161 -31554.2118 13261.45619
+C .266898E-12 .40723E-12 9214.69265 -27456.5111 18241.81844
+C 2.124364387 .0069376969 89.58635083 88.7845725 87.9574698
+C .568434E-13 -.56843E-13 .568434E-13 0.0 .568434E-13
+C 1 .1E-3 69839.72934 -390821.194 320981.465 -31554.2581 13261.37561
+C .001503732 .0051991311 10202.46318 -27633.4201 17430.95695
+C 2.124361136 .0069376975 89.58635083 88.7845725 87.9574698
+C .113687E-12 -.17053E-12 .568434E-13 .568434E-12 .1489752E-7
+BLANK card terminating output specifications (node voltages only, here)
+C *** Open switch "SWT C" to " " after 1.00100000E-01 sec.
+C 1500 .15 159611.2311 -295637.509 244451.986 -34560.0561 -28574.9636
+C 778.2659242 2549.495792 -22170.7519 -14139.568 36310.31987
+C -.573968078 .0088136672 102.0794654 99.88637088 97.31608451
+C 1.687650055 1.529396844 1.342594518 1.09484855 1.070643911
+C Variable max : 574220.0885 537207.0909 542581.4443 31490.93919 79432.90719
+C 1213.937639 3705.575724 76494.23421 59041.06889 77325.42412
+C 7.303244374 .010097191 102.0794654 99.88637088 97.31608451
+C 10.48984183 7.560864439 4.098092589 3.872103502 4.699362391
+C Times of max : .1203 .1264 .1146 .1135 .126
+C .0435 .0432 .1369 .0444 .1299
+C .1276 .0912 .15 .15 .15
+C .1357 .1366 .1377 .1157 .1122
+C Variable min : -496670.505 -585630.102 -581107.506 -95534.9427 -46519.8766
+C -1216.11132 -4455.25617 -78560.484 -67985.0772 -73775.13
+C -1.79621128 .0061658656 87.8638354 87.57123441 87.03732385
+C -6.75309545 -2.98526171 -.970772973 -1.6937898 -1.92537841
+C Times of min : .1292 .1177 .1233 .1385 .0433
+C .1261 .1259 .127 .0355 .1396
+C .1024 .1226 .0714 .0671 .061
+C .1108 .1104 .0516 .1399 .1379
+ PRINTER PLOT
+ 19415. 150. MACH 1TQ GEN { Axis limits: (-1.796, 7.303)
+ 19415. 150. MACH 1VEL 6 { Axis limits: (-1.617, 1.401)
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases is a scaled version of the 2nd. The network is in kV
+C rather than volts, as described in the July, 1995, newsletter. A single
+C step is taken --- enough for the user to compare with the 2nd subcase.
+PRINTED NUMBER WIDTH, 13, 2, { Full precision on each of 8 columns of printout
+ .000100 .0001 60.0 60.0
+ 1 -1 0 0
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+BLANK card terminating branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card terminating switch cards
+14EQV A 389.997 60. -93.81293 -1.
+14EQV B 389.997 60. -213.81293 -1.
+14EQV C 389.997 60. 26.18707 -1.
+59KILOVI
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+PARAMETER FITTING 1.
+ 6 5 6 2 1. 1. 892.4 26. 1800.
+BLANK
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+C <====EXTRS<=====HICO<======DSR<======DSM<======HSP<======DSD
+ 1 .3 .027691 33.68813 { 1st rotor mass card
+ 2 .26 .046379 60.9591
+ 3 .22 .255958 90.81823
+ 4 .22 .263573 123.6634
+ 5 .258887 4.925036
+ 6 .0101995 { 6th and final mass
+BLANK
+ 51
+ 11
+ 21
+ 31
+BLANK
+ FINISH
+BLANK card terminating source cards
+C Phase "a" injection Phase "b" injection
+C Magnitude Degrees Magnitude Degrees
+C Actual: 2.7946789E+01 -70.7480503 2.7946789E+01 169.2519497
+C Pos. seq.: 2.7946789E+01 -70.7480503 2.7946789E+01 169.2519497
+C Id Iq Io
+C -3.15542117823E+01 1.32614561915E+01 -4.10232039762E-14
+C Field current of the generator in units of [amperes]. Total dc component
+C 4.3132669924E-03 4.3132669924E-03
+C Electromechanical torque of the generator .... total dc component
+C 2.1243643866E-06 2.1243643866E-06
+C Exciter electromechanical torque in units .... Total dc component
+C 6.9376969460E-09 6.9376969460E-09
+C Critical level of total air-gap MMF .... 1.71429881387E+03 1.63168200357E+03
+C All rotor masses have angular velocity OMEGA = 3.76991118E+02 [radians/sec]
+C .... units of [Degrees] : 89.5863508 88.7845725 87.9574698 87.1841991
+C Shaft torques T(i,i+1) between rotor masses "i" and "i+1", for i=1, 2,
+C 0.6393906251E-06 0.1193529167E-05 0.1662415625E-05 0.2131302084E-05 0.693
+ NAVH ANAVH BNAVH C
+BLANK card terminating output specifications (node voltages only, here)
+C Step Time NAVH A NAVH B NAVH C MACH 1 MACH 1
+C ID IQ
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IG IKQ IA IB IC
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C TQ GEN TQ EXC ANG 1 ANG 2 ANG 3
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C VEL 1 VEL 2 VEL 3 VEL 4 VEL 5
+C 0 0.0 54.29179404 -385.07251 330.7807161 -31.5542118 13.26145619
+C -.12113E-18 -.49636E-18 9.21469265 -27.4565111 18.24181844
+C .2124364E-5 .6937697E-8 89.58635083 88.7845725 87.9574698
+C 0.0 -.56843E-13 -.56843E-13 -.56843E-13 0.0
+C 1 .1E-3 69.83972934 -390.821194 320.981465 -31.5542581 13.26137561
+C .1503732E-8 .5199131E-8 10.20246318 -27.6334201 17.43095695
+C .2124361E-5 .6937697E-8 89.58635083 88.7845725 87.9574698
+C 0.0 -.56843E-13 -.56843E-13 .511591E-12 .1489752E-7
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
+
+
+
+BEGIN NEW DATA CASE
+C BENCHMARK DC-53
+C 1976 IEEE PES SSR test of Type-59 S.M. modeling with a six-mass rotor.
+C The 1st of 2 subproblems uses S.M. saturation, while the 2nd ignores it.
+C This is old data case, as it existed prior to December, 1992 changes.
+C Only the 1st of 2 subcases, having saturation, was affected.
+PRINTED NUMBER WIDTH, 13, 2, { Full precision on each of 8 columns of printout
+ALTERNATE DIAGNOSTIC PRINTOUT, 9, 9, 9, 9,
+ .000100 .150 60.0 60.0
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 500 500
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+BLANK card terminating branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card terminating switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+TOLERANCES { Only change columns 51-60: NIOMAX = 20 } 20
+PARAMETER FITTING 1.
+ 6 5 6 2 1. 1. 892.4 26. -1800. 1907. 3050.
+ -1.
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813 { 1st rotor mass card
+ 2 .26 .046379 60.9591
+ 3 .22 .255958 90.81823
+ 4 .22 .263573 123.6634
+ 5 .258887 4.925036
+ 6 .0101995 { 6th and final mass
+BLANK
+ 51
+ 11
+ 21
+ 31
+BLANK
+ FINISH
+BLANK card terminating source cards
+C Total network loss P-loss by summing injections = 1.775782562050E+07
+C 1st gen: NAVL A 15038.245551065 21229. 9214.6926498239 27946.788742442
+C 1st gen: -14984.04523972 -44.8965620 -26383.94285136 -70.7480503
+C Id Iq Io
+C -3.09506921061E+04 1.46146898591E+04 1.05019402179E-12
+C Field current of the generator 4.7988284553E+03 4.7988284553E+03
+C Electromechanical torque of the generator 2.1243643866E+00 2.1243643866E+00
+C Exciter electromechanical torque 8.5876254010E-03 8.5876254010E-03
+C Critical level of total air-gap MMF .. 1.71429884454E+03 1.60523487584E+03
+ NAVH ANAVH BNAVH C
+C Step Time NAVH A NAVH B NAVH C MACH 1 MACH 1
+C ID IQ
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IG IKQ IA IB IC
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C TQ GEN TQ EXC ANG 1 ANG 2 ANG 3
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C VEL 1 VEL 2 VEL 3 VEL 4 VEL 5
+C 0 0.0 54291.79404 -385072.51 330780.7161 -30950.6921 14614.68986
+C .101141E-12 .353051E-13 9214.69265 -27456.5111 18241.81844
+C 2.124364387 .0085876254 87.10824973 86.30585072 85.47810772
+C -.56843E-13 0.0 .568434E-13 0.0 .568434E-13
+C 1 .1E-3 69851.88571 -390828.958 320977.072 -30950.731 14614.61128
+C .0013420986 .0046402859 10202.48781 -27633.4243 17430.93649
+C 2.124359795 .0085876259 87.10824973 86.30585072 85.47810772
+C .568434E-13 -.11369E-12 .568434E-13 .738964E-12 .2104355E-7
+BLANK card terminating output specifications (node voltages only, here)
+C ------ Type-59 S.M. number 1 at time 1.43500000E-01 sec .. 1 and 2.
+C ------ Type-59 S.M. number 1 at time 1.49100000E-01 sec .. 2 and 2.
+C 1500 .15 187116.742 -351444.492 130386.7404 -34997.4012 -2947.38066
+C 256.1673115 903.3100964 -2650.23838 -23402.7126 26052.95098
+C .8154064733 .0102479971 97.85801029 96.12500809 94.06169459
+C 2.131750238 1.898831743 1.583223454 .8996070354 .7581091459
+C Variable max : 599880.6502 490291.3628 529146.3385 15467.52417 61160.92185
+C 857.3479933 2578.07728 65109.53928 62005.88698 69266.69128
+C 6.04393663 .0118541764 97.85801029 96.12500809 94.06169459
+C 8.188834317 6.194209412 3.79960882 3.258297661 4.003948697
+C Times of max : .1204 .1263 .1319 .1145 .1277
+C .0459 .0455 .0879 .044 .0323
+C .1295 .0942 .15 .15 .15
+C .1353 .1368 .1386 .1168 .1124
+C Variable min : -524383.824 -498349.107 -581864.736 -84826.9292 -31261.6262
+C -838.566123 -2978.23206 -63004.8711 -66097.6721 -65643.9187
+C -.932290856 .008199039 85.6754021 85.30248399 84.71598666
+C -5.4368191 -2.31786936 -.816272039 -1.0322752 -1.34433634
+C Times of min : .1115 .1176 .1232 .0324 .0457
+C .1279 .1276 .0295 .0352 .0413
+C .1018 .1243 .071 .0665 .0605
+C .1102 .1101 .0512 .1403 .1391
+ CALCOMP PLOT
+ 19415. 150. MACH 1TQ GEN
+ PRINTER PLOT
+ 19415. 150. MACH 1TQ GEN { Axis limits: (-0.932, 6.044)
+ 19415. 150. MACH 1VEL 6 { Axis limits: (-1.289, 1.165)
+BLANK card terminating plot cards
+
+
+
diff --git a/benchmarks/dc53pl4.dat b/benchmarks/dc53pl4.dat
new file mode 100644
index 0000000..ddbe1dc
--- /dev/null
+++ b/benchmarks/dc53pl4.dat
@@ -0,0 +1,74 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-53
+C Omit 2nd subcase, add .PL4 output to 1st (here), and delete comments
+PRINTED NUMBER WIDTH, 13, 2, { Full precision on each of 8 columns of printout
+ALTERNATE DIAGNOSTIC PRINTOUT, 9, 9, 9, 9,
+ .000100 .150 60.0 60.0
+ 1 1 1 1 1 -1 1
+ 5 5 20 20 100 100 500 500
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+BLANK card terminating branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card terminating switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+TOLERANCES { Only change columns 51-60: NIOMAX = 20 } 20
+PARAMETER FITTING 1.
+ 6 5 6 2 1. 1. 892.4 26. -1800. 1907. 3050.
+ -1.
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813 { 1st rotor mass card
+ 2 .26 .046379 60.9591
+ 3 .22 .255958 90.81823
+ 4 .22 .263573 123.6634
+ 5 .258887 4.925036
+ 6 .0101995 { 6th and final mass
+BLANK
+ 51
+ 11
+ 21
+ 31
+BLANK
+ FINISH
+BLANK card terminating source cards
+ NAVH ANAVH BNAVH C
+BLANK card terminating output specifications (node voltages only, here)
+ PRINTER PLOT
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc54.dat b/benchmarks/dc54.dat
new file mode 100644
index 0000000..65d16ef
--- /dev/null
+++ b/benchmarks/dc54.dat
@@ -0,0 +1,54 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-54
+C Delayed plotting of DC-3 plot file via "REPLOT" usage. Format of the
+C connection ($OPEN,) may depend on computer due to different file names.
+C There are 3 subcases, with the first providing a character plot and the
+C remaining 2 providing vector plots (maybe not supported on all machines).
+DISK PLOT DATA { Toggle Apollo default of LUNIT4 = -4 to +4 for disk storage
+CUSTOM PLOT FILE { Request for REAL*8 .PL4 file (see July, 1995, newsletter)
+$CLOSE, UNIT=LUNIT4 STATUS=DELETE { Disconnect now-empty file connected by SYSDEP
+$OPEN, UNIT=LUNIT4 FILE=dc3.pl4 STATUS=OLD ! Connect C-like plot file from DC-3
+REPLOT { Request for connection to batch-mode plotting of EMTP
+ PRINTER PLOT { Switch from vector (the default mode) plotting to character
+ 144 1. 0.0 20. 18-A 18-B 18-C { Axis limits: (-1.276, 0.880)
+$CLOSE, UNIT=LUNIT4 STATUS=KEEP { Disconnect data file protects against damage
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 3 subcases. This sends two vector plots only to the screen.
+C DISK PLOT DATA { Toggle Apollo default of LUNIT4 = -4 to +4 for disk storage
+C CUSTOM PLOT FILE { Request for REAL*8 .PL4 file (see July, 1995, newsletter)
+$CLOSE, UNIT=LUNIT4 STATUS=DELETE { Disconnect now-empty file connected by SYSDEP
+$OPEN, UNIT=LUNIT4 FILE=dc3.pl4 STATUS=OLD ! Connect C-like plot file from DC-3
+REPLOT { Request for connection to batch-mode plotting of EMTP
+C Following CalComp declaration is required only because of preceding subcase:
+ CALCOMP PLOT { Switch from former "PRINTER PLOT" mode to this CalComp mode
+ SCREEN PLOT { Send "CALCOMP PLOT" output to the screen rather than plotter
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ 144 1. 0.0 10. 18-A 18-B 18-C Graph heading---Vertical axis la
+C Note that no titles are redefined for the following plot. Hence there will
+C be no multi-line sub-title, although the single-line title at top repeats.
+ 144 1. 0.0 10. 18-B
+$CLOSE, UNIT=LUNIT4 STATUS=KEEP { Disconnect data file protects against damage
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases. This sends two vector plots only to the plotter.
+C DISK PLOT DATA { Toggle Apollo default of LUNIT4 = -4 to +4 for disk storage
+C CUSTOM PLOT FILE { Request for REAL*8 .PL4 file (see July, 1995, newsletter)
+$CLOSE, UNIT=LUNIT4 STATUS=DELETE { Disconnect now-empty file connected by SYSDEP
+$OPEN, UNIT=LUNIT4 FILE=dc3.pl4 STATUS=OLD ! Connect C-like plot file from DC-3
+REPLOT { Request for connection to batch-mode plotting of EMTP
+C Following "PEN PLOT" declaration is disabled for Apollo only because the
+C average owner has no real CalComp (which was coded for Bernd Stein of FGH).
+C For GEOGRAF of MS-DOS version, this card should be enabled (it is needed):
+ PEN PLOT { Send "CALCOMP PLOT" output to the plotter rather than the screen
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ 144 1. 0.0 10. 18-A 18-B 18-C Graph heading---Vertical axis la
+ 144 1. 0.0 10. 18-A { Note this 2nd pen plot will have no labels
+$CLOSE, UNIT=LUNIT4 STATUS=KEEP { Disconnect data file protects against damage
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc55.dat b/benchmarks/dc55.dat
new file mode 100644
index 0000000..0bda0d2
--- /dev/null
+++ b/benchmarks/dc55.dat
@@ -0,0 +1,298 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-55
+C Illustration of "AVERAGE OUTPUT" usage, as applied to Hermann's example
+C "Remarks on opening action" that is to be found in the Rule Book section
+C on switches (page 28a for June, 1984 version). Because of averaging, the
+C "hash" that Hermann's photograph documents can no longer be detected.
+C Later (2nd and 3rd) subcases are unrelated: simple Type-18 source usage.
+C 4th subcase shows an alternative to the first, using damping resistors.
+C The 5th of 6 subcases has IDEAL TRANSFORMER (internally, this uses
+C the Type-18 source). Solution was wrong prior to correction on 25 Feb 01.
+C Finally, the 6th subcase illustrates the RECLOSE feature of switches.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+CHANGE PRINTOUT FREQUENCY
+ 5 5 10 10 90 1 100 10
+AVERAGE OUTPUT
+ .000100 .020
+ 1 1 1 1 1
+ BUS1 BUS2 .18 0.8 1
+ BUS3 22100.
+BLANK card ending branch cards
+ BUS2 BUS3 -1.0 0.0 { Will open on current zero at T = 9.4 msec
+BLANK card ending switch cards
+14BUS1 1.0 60. -90.
+BLANK card ending source cards
+C Step Time BUS3 BUS2 BUS1 BUS1
+C BUS2
+C *** Switch "BUS2 " to "BUS3 " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 .2634734E-5 .2634734E-5 .0188450913 .0011645523
+C 2 .2E-3 .183793E-4 .183793E-4 .0565084941 .0057945482
+C
+C 93 .0093 .6380267563 .6380267563 -.338677744 .1867579604
+C *** Open switch "BUS2 " to "BUS3 " after 9.40000000E-03 sec.
+C 94 .0094 .6385842673 .6385842673 -.373892773 .0596618907
+C 95 .0095 .638714397 -.442503423 -.408576479 -.00214456
+ 1
+C Final step: 200 .02 .6387095451 .944895187 .944895187 .693889E-17
+C Variable maxima : .638714397 .944895187 .9998026167 2.665085529
+C Times of maxima : .0095 .02 .0042 .0058
+C Variable minima : 0.0 -.999644736 -.999644736 -.00214456
+C Times of minima : 0.0 .0126 .0126 .0095
+ PRINTER PLOT
+ 144 3. 0.0 20. BUS1 BUS2 { Axis limits: (-9.996, 9.998)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C Second of 5 subcases is unrelated to the preceding first data subcase.
+C Test of Type-18 source (ideal transformer plus ungrounded source). There
+C are 3 disconnected subnetworks, each of which contains a single, trivial
+C Type-18 source usage. In order of use: 1) Ideal transformer alone (near
+C zero source); 2) Ideal transformer with a voltage source shifted by 90
+C degrees (so when added to external generator, the total phasor is 1.414
+C at an angle of -45 degrees; 3) Ungrounded voltage source alone. There
+C is no phasor solution for initial conditions in this 2nd subcase of DC-55
+PRINTED NUMBER WIDTH, 12, 2, { Tailor width so easy documentation within 80 cols
+CHANGE PRINTOUT FREQUENCY
+ 5 5 20 20
+ .000100 .024 1.E-12
+ 1 1 1 1 1
+ PRIM1 GEN 1.E-8 { Create node PRIM1 of unknown voltage }
+ PRIM2 GEN 1.E-8 { Create node PRIM2 of unknown voltage }
+ SEC1 0.5 { 1-ohm resistive load on primary trans. 1 }
+ SEC2 .25 { 1-ohm resistive load on primary trans. 2 }
+ PRIBOT 1.0 { 1/2 of resistor for ungrounded source }
+ PRITOPGEN 1.0 { other 1/2 of R for ungrounded source }
+BLANK card ending branch cards
+BLANK card ending switch cards
+14GEN 1.0 60. -90. { Network's real source is sine wave
+C Type-18 ideal transformer has both windings grounded. Primary goes to the
+C generator "GEN", while the secondary "SEC" drives a 1-ohm resistive load
+11PRIM1 1.E-12 { 1st primary terminal of ideal transformer; near-0 source
+18 00 1.414SEC1 { Ratio**2 = 2: step down, primary to secondary
+C End 1st transformer. Begin 2nd by adding 1-volt sinusoidal voltage source:
+14PRIM2 1.0 60. 0.0 { Add vectors: 1.414 /_-45 degrees
+18 00 2.0SEC2 { Ratio=2: step down, primary to secondary
+C End 2nd transformer. Begin 3rd device: effectively no transformer (since
+C both secondary nodes are grounded); ungrounded voltage source is a battery
+C that becomes nonzero only after TSTART = 6.0 msec --- in series with GEN
+11PRITOP 1.0 .006
+18PRIBOT 1.0 { Ratio is arbitrary since secondary nodes shorted to earth
+BLANK card ending source cards
+C Step Time 18TYP1 18TYP2 18TYP3 GEN SEC1 SEC2
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 .037701568 -.96159928 .018845091 .037690183 .026655009 -.48079964
+C 2 .2E-3 .07534956 -.92183209 .037663403 .075326806 .053272139 -.46091604
+C 3 .3E-3 .112890477 -.88075492 .056428192 .112856385 .079813567 -.44037746
+ 18TYP118TYP218TYP3GEN SEC1 SEC2 PRIBOTPRITOP
+BLANK card ending selective node voltage output requests
+C 240 .024 .368235756 1.29790103 -.31593772 .368124553 .26034268 .648950513
+C maxima : 1.0002231 1.41418563 .499960522 .999921044 .707157733 .707092816
+C Times max : .0042 .0229 .0042 .0042 .0042 .0229
+C minima : -1.0003021 -1.4141856 -1. -1. -.70721357 -.70709282
+C Times min : .0125 .0146 .0125 .0125 .0125 .0146
+ PRINTER PLOT
+C Both of the following curves are sinusoids. Curve "A" is pure SIN ( 377t )
+C whereas curve "B" is 1.414 * SIN ( 377t - 45 degrees ) for time t > 0.
+ 144 3. 0.0 18. 18TYP118TYP2 { Axis limits: (-1.414, 1.414)
+C The following plot drops vertically by 0.5 at 6 msec. Before the drop, it
+C is y = 0.5 * SIN ( 377t ); after 6 msec, y = 0.5 * ( SIN ( 377t ) - 1.0 )
+ 144 3. 0.0 24. 18TYP3 { Axis limits: (-1.000, 0.500)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 6 subcases repeats preceding 2nd case only with phasor solution.
+C Since transients are identical to preceding subcase (since no dynamics,
+C no energy storage), stop after the phasor solution in this subcase. It
+C will be noted that the only sinusoidal internal source of Type-18 usage
+C (the "14PRIM2" card) has TSTART = -1.0 so present for steady state.
+ .000100 -1.0 1.E-12 { TMAX < 0 ===> no transients
+ 1 1 1 1 1
+ PRIM1 GEN 1.E-8 { Create node PRIM1 of unknown voltage }
+ PRIM2 GEN 1.E-8 { Create node PRIM2 of unknown voltage }
+ SEC1 0.5 { 1-ohm resistive load on primary trans. 1 }
+ SEC2 .25 { 1-ohm resistive load on primary trans. 2 }
+ PRIBOT 1.0 { 1/2 of resistor for ungrounded source }
+ PRITOPGEN 1.0 { other 1/2 of R for ungrounded source }
+BLANK card ending branch cards
+BLANK card ending switch cards
+14GEN 1.0 60. -90. { Tstart = -1.0 ---> } -1.0
+C Type-18 ideal transformer has both windings grounded. Primary goes to the
+C generator "GEN", while the secondary "SEC" drives a 1-ohm resistive load
+11PRIM1 1.E-12 { 1st primary terminal of ideal transformer; near-0 source
+18 00 1.414SEC1 { Ratio**2 = 2: step down, primary to secondary
+C End 1st transformer. Begin 2nd by adding 1-volt sinusoidal voltage source
+C that is present in steady state, and which leads GEN by 90 degrees. Adding
+C these around the loop (KVL) gives 1.414 at an angle of -135 degrees, note:
+14PRIM2 1.0 60. 0.0 -1.0
+18 00 2.0SEC2 { Ratio=2: step down, primary to secondary
+C End 2nd transformer. Begin 3rd device: effectively no transformer (since
+C both secondary nodes are grounded); ungrounded voltage source is a battery
+C that becomes nonzero only after TSTART = 6.0 msec --- in series with GEN
+11PRITOP 1.0 .006
+18PRIBOT 1.0 { Ratio is arbitrary since secondary nodes shorted to earth
+C
+C Node-K Node-M Vk-magnitude Vm-magnitude Ikm-magnitude Pk (watts)
+C name name Vk-degrees Vm-degrees Ikm-degrees Qk (vars)
+C
+C PRIM1 .99999998999698 1.0 1.0003020856075 -.5001510378007
+C GEN -90.0000000 -90.0000000 90.0000000 .2879679111E-24
+C
+C PRIM2 .99999999 1.0 1.4142135431541 -.4999999814101
+C GEN -89.9999994 -90.0000000 44.9999998 -.499999995
+C
+$WIDTH, 79, { Request narrow output for phasor branch flows: easy to document
+BLANK card ending source cards
+C PRITOP 0.5 0.0 0.5 .125
+C TERRA -90.0000000 0.0 -90.0000000 0.0
+C Total network loss P-loss by summing injections = 7.501510357193E-01
+C
+C node Vk-magnitude Ik-magnitude Pk (watts) MVA (watts)
+C name Vk-degrees Ik-degrees Qk (vars) Power factor
+C
+C GEN 1.0 2.692862873031 1.2501510381699 1.3464314365155
+C -90.0000000 -111.7990223 .499999995 0.9284922
+C
+BLANK card ending selective node voltage output requests
+ PRINTER PLOT
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+$WIDTH, 132, { Back to wide output after injections but before outputs read
+C 4th of 6 subcases is modification of first. Rather than "AVERAGE OUTPUT"
+C to dampen oscillations of the series inductor, a parallel damping resistor
+C is used. The resistance value is automatically a function of the time-
+C step size thanks to use of the "DELTAT" request (BUS4 field of columns
+C 21-26). A theoretical formula for determining nominal damping resistance
+C is R = 16 * L [Henry] / dt, and here 16*L = 16 * .8 [mH] = .0128 [Henry].
+C The "DIVIDEDELTAT" request of columns 15-26 provides just such scaling.
+C Enter the value 16 * L [Henry] in the R-field of columns 27-32.
+C Only to produce a nicer (denser) character plot, the time step is halved.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+CHANGE PRINTOUT FREQUENCY
+ 5 5 20 20 185 1 205 5 220 20
+ .000050 .020
+ 1 1 1 1 1
+ BUS1 BUS2 .18 0.8 { Series R-L oscillates when opened} 1
+ BUS3 22100. { Capacitor disconnected by switch
+C Damping resistor is extra, placed in parallel with hanging R-L branch:
+ BUS1 BUS2 DIVIDEDELTAT .0128 { Nominal parallel R-damping is R = 16 * L / dt
+C BUS1 BUS4 128. { Equivalent branch would have R = .0128/1.E-4
+BLANK card ending branch cards
+ BUS2 BUS3 -1.0 0.0 { Will open on current zero at T = 9.4 msec
+BLANK card ending switch cards
+14BUS1 1.0 60. -90.
+BLANK card ending source cards
+C Step Time BUS3 BUS2 BUS1 BUS1
+C BUS2
+C *** Switch "BUS2 " to "BUS3 " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 .7458368E-6 .7458368E-6 .0188484397 .5856959E-3
+C 2 .1E-3 .4300663E-5 .4300663E-5 .0376901827 .002335936
+C 3 .15E-3 .1328333E-4 .1328333E-4 .0565185345 .0052368122
+C
+C 186 .0093 .6386376275 .6386376275 -.356411879 .1216511334
+C 187 .00935 .638831863 .638831863 -.373959206 .0578961619
+C *** Open switch "BUS2 " to "BUS3 " after 9.40000000E-03 sec.
+C 188 .0094 .6388812702 .6388812702 -.391373667 -.006239594
+C 189 .00945 .6388696593 -1.50023245 -.408649075 -.004263998
+C 190 .0095 .6388696593 .4233815153 -.425779292 .0033170344
+C 191 .00955 .6388696593 -1.1033345 -.442758231 -.002580376
+C 192 .0096 .6388696593 .0542933726 -.459579861 .0020073173
+C 193 .00965 .6388696593 -.875988712 -.476238204 -.001561525
+C 194 .0097 .6388696593 -.181754793 -.492727342 .0012147365
+ 1
+C 400 .02 .6388696593 .9510565163 .9510565163 .208083E-17
+C Variable maxima : .6388812702 .9510565163 .9999802609 2.66459913
+C Times of maxima : .0094 .02 .00415 .00575
+C Variable minima : 0.0 -1.50023245 -1. -.006239594
+C Times of minima : 0.0 .00945 .0125 .0094
+ PRINTER PLOT { Following plot is of region of oscillation following 9.4 msec
+ 144 .4 9.0 11. BUS1 BUS2 { Axis limits: (-1.500, 0.639)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 6 subcases demonstrates a simple Type-18 source that required
+C correction on 25 February 2001. The key structure is this: one or more
+C (in this case, two) terminal nodes of the Type-18 source that is used to
+C represent IDEAL TRANSFORMER has known voltage.
+ .0001 .0001 { One dT is all it takes to verify voltages now are continuous
+ 1 1 1 1
+ GENA 1.E7 { High resist. to ground provides connectivity
+ GENB GENA { 2nd of 3 is the same. Avoid KILL code
+ LOAD GENA { 3rd of 3 satisfies need for connectivity
+ IDEAL TRANSFORMER { Internally, ideal transformer is represented as Type-18
+ 1GENA GENB 1.0 { Winding 1 has rated voltage = 1.
+ 2LOAD 1.0 { Winding 2 has same rated voltage
+BLANK card ending branches
+BLANK card ending switches
+14GENA 10. 1.0 0.0 -1.0 10.0
+14GENB 10. 1.0 -120.0 -1.0 10.0
+BLANK card ending sources
+ GENA GENB LOAD
+C Step Time GENA GENB LOAD
+C 0 0.0 10. -5. 15.
+C 1 .1E-3 9.999998026 -4.99455762 14.99455564
+BLANK card ending node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 6 subcases illustrates the RECLOSE feature of time-controlled
+C switches, which became available 24 December 2001 as should be
+C described in some future newsletter story (July, 2002 or later). Data
+C comes from the 4th subcase, which provides half of the network. Time
+C is extended (doubled, in fact) to allow reclosing of the switch. Using
+C old modeling, this is done by means of a second time-controlled switch
+C in parallel with the first. Of course, only one switch or the other is
+C closed at any one time --- a requirement of switch logic. The same
+C solution is obtained using new modeling by a RECLOSE switch. Although
+C only two pairs of (T-close and T-open) are illustrated, in fact an
+C arbitrary number are allowed. When ATP is done with one (upon opening),
+C the next pair will replace the preceding pair. Storage is in List 10, so
+C is variably-dimensioned. Time-step size DELTAT has been doubled simply
+C to speed simulation. Finally, the source has been rotated 90 degrees to
+C speed the action (no need to waste time waiting for the first opening).
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+CHANGE PRINTOUT FREQUENCY
+ 5 5 55 1 155 5
+ .000100 .020
+ 1 1 1 1 1
+C Naming is as follows. Keep the original "BUS" names for the original
+C data. For the new alternative, replace BUS by GUS. This is for nodes
+C numbered 2 and 3. For Node 1 (the voltage source), no copy is required:
+ BUS1 BUS2 .18 0.8 { Series R-L oscillates when opened} 1
+ BUS1 GUS2 .18 0.8 { Series R-L oscillates when opened} 1
+ BUS3 22100. { Capacitor disconnected by switch
+ GUS3 22100. { Capacitor disconnected by switch
+C Damping resistor is extra, placed in parallel with hanging R-L branch:
+ BUS1 BUS2 DIVIDEDELTAT .0128 { Nominal parallel R-damping is R = 16 * L / dt
+ BUS1 GUS2 DIVIDEDELTAT .0128 { Nominal parallel R-damping is R = 16 * L / dt
+BLANK card ending branch cards
+C Switches: < T-close>< T-open > < Request> I
+C ______------__________---------- __________ _
+ BUS2 BUS3 -1.0 0.0 { Will open on current 0 at T = 5.8 msec } 1
+ BUS2 BUS3 .011 0.0 { Will open on current 0 at T = 14.9 msec }
+ GUS2 GUS3 -1.0 0.0 RECLOSE 3
+ .011 0.0 { 2nd pair of T-close and T-open follow 1st
+ 9999. { Bound to terminate last pair of switch T
+BLANK card ending switch cards
+14BUS1 1.0 60. 0.0
+BLANK card ending source cards
+ BUS1 BUS2 GUS2 { Request for the output of node voltages at these nodes
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 4 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GUS2 BUS1 BUS2 GUS2 BUS2 GUS2 BUS1 BUS1
+C GUS3 BUS3 GUS3 BUS2 GUS2
+C *** Switch "BUS2 " to "BUS3 " closed before 0.00000000E+00 sec.
+C *** Switch "GUS2 " to "GUS3 " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 0.0 .99928947 .15737E-3 .15737E-3 .06955678 .06955678 .06175106 .06175106
+C 2 .2E-3 0.0 .9971589 .74798E-3 .74798E-3 .19149551 .19149551 .18371105 .18371105
+C 3 .3E-3 0.0 .99361131 .00188315 .00188315 .31024774 .31024774 .30249987 .30249987
+BLANK card ending node voltage outputs
+C 200 .02 .08475006 .30901699 .30902085 .30902085 0.0 0.0 .30129E-7 .30129E-7
+C Variable maxima : 1.6703679 .99992104 1.8946387 1.8946387 1.8705409 1.8705409 1.8678888 1.8678888
+C Times of maxima : .015 .0167 .015 .015 .0028 .0028 .0028 .0028
+C Variable minima : -2.667432 -.999921 -2.354268 -2.354268 0.0 -.8127145 -.8114678 -.8114678
+C Times of minima : .0059 .0083 .0059 .0059 0.0 .0128 .0128 .0128
+ CALCOMP PLOT
+ 144 2. 0.0 20. BUS2 GUS2 { These 2 node voltages should coincide
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc56.dat b/benchmarks/dc56.dat
new file mode 100644
index 0000000..ce6b697
--- /dev/null
+++ b/benchmarks/dc56.dat
@@ -0,0 +1,148 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-56 (former DC-71 of "M39.")
+C First of a pair of cases providing batch-mode documentation of interactive
+C (SPY) capability. The basic data is from DC-4, to which $SPY cards
+C have been added. Included is all-enclusive SPY "HELP" output. Note
+C that SPY commands are preceded by "$SPY", and are followed by "$SPYEND"
+C (in this case, only one such group of SPY commands exists, although up to
+C 9 are allowed). The reserved disk file name "SPYFILE1.DAT" is created
+C by "MAIN00", and is connected to unit MUNIT6 of SPY by "CIMAGE", as
+C the "$SPY, SPYFILE1.DAT" command is processed. If run as a batch-mode
+C simulation, it will terminate at the nominal end-time TMAX = 8. But if
+C interactive execution (SPY) is used, remember that the case will terminate
+C only at the user's request (e.g., usage of the SPY command "STOP"). For
+C SPY use, other changes may also be desired, such as the conversion from
+C universal character plotting to computer-dependent vector-graphic plotting
+C (usually in a separate, third window). Applicable to Apollo for such a
+C change are the comment cards beginning with "C ---." (see 3 locations).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .020 8.0
+ 1 1 1 0 1 -1
+ 5 5 20 20 160 10
+ GEN TRAN 5.0 5.E4 3
+ TRAN 1.E4
+93TRAN .005 30. 3
+ -5.0 -100.
+ -.1 -50.
+ -.02 -45.
+ -.01 -40.
+ -.005 -30.
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN LOADG 255. 5.E4 3
+ LOADG 1.E-6
+BLANK card ending branch cards
+BLANK card ending switch cards
+14GEN 70. .1591549 -1.
+$SPY { Request of "CIMAGE" ($-card) to begin batch-mode SPY connection
+$DEBUG, 0, { 1st SPY command is trivial, ineffective change of DIAGNOSTIC
+ExamINE { Next SPY command is this involved and powerful memory display command
+CUT 0 { Begin with initialization (so far, EXAMINE SPY table has no rows)
+ADD { Desired EXAMINE symbols are added to zero-length table
+ISTEP { 1st of an arbitrarily long list of memory locations to be defined
+TMAX { 2nd of an arbitrarily long list of memory locations to be defined
+MEMSAV { 3rd of an arbitrarily long list of memory locations to be defined
+T { 4th of an arbitrarily long list of memory locations to be defined
+NCHAIN { Last of an arbitrarily long list of memory locations to be defined
+END { Exit the symbol-input loop; all EXAMINE symbols have been defined
+TABLE { Display all EXAMINE symbols and pointers defined so far
+FORM { Enter EXAMINE loop that allows the changing of output spacing
+1 6 { Symbol number 1, ISTEP, is to be allowed six columns of width
+2 8 { Symbol number 2, TMAX, is to be allowed 8 columns of width
+3 7 -5 { Symbols 3 onward (the next 5) are to be allowed 7 columns each
+SHOW { Display EXAMINE symbols and pointers defined so far (confirm changes)
+END { Exit the "FORM" loop, moving back to basic "EXAMINE" prompt
+SPY { Exit "EXAMINE" and return to the "SPY:" prompt
+names { Display the "EXAMINE" headings and output (just one line for this case)
+BRANCH { SPY request for display of the program branch table (a simple example)
+ALL { Display all rows of the branch table
+2,3 { Display a range of rows (just 2 and 3, here) of the branch table
+TOP { Display the first row (number 1) of the branch table
+BOT { Display the last row (number 4) of the branch table
+SPY { Exit the loop of the branch table display; back to "SPY:" prompt
+MENU { Show command menu (after 11 July 96, this no longer is in HELP)
+C 27 September 2010, add service for DICE where something nonblank follows
+C the familiar old request word. This is an extension to verify ATP's random
+C number generator independent of switches (e.g., STATISTICS use). ATP data
+C is not even needed, and in no way affects the result. The dice simply are
+C to be rolled a user-specified number of times and the result will be ploted
+C in the SPY window as a mini printer plot. The random number generator can
+C be either: 1) uniformly distributed over [0, 1] or 2) normally distributed
+C with mean zero and standard deviation of unity. Here we go, 2 trial runs :
+DICE BARS=51 { The width of printer plot will be this many columns (bars)
+DICE Uniform { Switch from Gaussian (normal) distribution to uniform distrib.
+DICE 5000 { Roll the dice 5K times and show the bell-shaped distribution
+C More about the preceding. Numbers can end with letter K, so DICE 5000 is
+C the same as DICE 5K (useful for much larger numbers such as 200K ). The
+C initial request for uniform distribution was necessary because the default
+C is Gaussian. The request for BARS=51 corresponds to a zero bar on the
+C left followed by 50 positive values as the the variable steps to unity on
+C the right. I.e., each bar represents 1/50 which is a nice round number.
+DICE BARS=81 { The width of printer plot will be this many columns (bars)
+DICE Gauss 5K { Switch back to the default normal distribution for 5K more rolls
+C More about the preceding. The 81 is one to many for an 80-column display
+C of the SPY window, so the first (value -4.0) will be omitted.
+HELP { Enter loop that provides information about any SPY command
+GO { First, request information about this single names SPY command
+TOP { Next, request information about the first SPY command (which is "NAMES")
+ { <CR> is key word number 28 --- the request for another "EXAMINE" output
+BOT { Next, request information about the last SPY command ("OVERVIEW")
+C ALL { Remove "C " before "ALL" to see all "HELP" text of the program
+SPY { Exit the "HELP" command; back to basic "SPY:" prompt
+BREAK { Request a pause in the simulation that will soon resume (after "GO")
+16, -101 { Illustration of interactive plotting will begin on time step 101
+GO { Begin EMTP execution; no "@" read until break point is reached
+PLOT { Having just broken at step 101, enter SPY plotting
+C ---. For 3-window SPY usage and vector plotting, comment out the MODE card
+C ---. that follows (assuming LTEK=1 for vector plots is set by STARTUP file)
+MODE { Toggle from vector (Apollo default) to character mode of plotting
+CHOICE { Request a list of the output variables, available for plotting
+NAME { Plot command to begin inputting the variable names
+TRAN { The first and only variable to be plotted will be this node voltage
+LAST { Exit the loop over plot input variables; back to basic plot command
+TIME { Request for actual plotting (in this case, a character plot)
+0, 2.0 { Time span of the character plot that is to begin immediately
+SPY { Exit plotting; back to "SPY:" command
+NAMES { Display the "EXAMINE" headings and output (just one line for this case)
+C Note: the preceding "NAMES" line is added 27 April 2010 to show 48-bit ISTEP
+C The previous display of step 0 is inadequate to verify use because a
+C zero REAL*8 corresponds to a zero INTEGER*4. The DC56.LIS file was
+C perfect even though MODELS DCN28.LIS showed ISTEP = 0 for all steps.
+C With this addition, if the address/type of ISTEP is bad, DC56.LIS will
+C confirm the situation along with DCN28.LIS It should be safer to
+C have such confirmation of 48-bit counting outside of MODELS as well as
+C within MODELS. If memory addresses of extended integer counting are
+C bad, the problem really is not due to MODELS.
+BREAK { Request a pause in the simulation that will soon resume (after "GO")
+16, -162 { Next SPY activity will recommence at time step number 162
+GO { Begin EMTP execution; no "@" read until break point is reached
+PLOT { Having just broken at step 162, enter SPY plotting
+FRONT 1.0 { The time scale will be chosen to provide only the latest 1.0 sec
+C ---. For 3-window SPY usage and vector plotting, change ROLLC to ROLLV:
+ROLLC { Toggle flag for rolling printer plot; rolling is now to begin.
+SPY { Exit plotting; back to "SPY:" command
+BREAK { Request a pause in the simulation that will soon resume (after "GO")
+16, -251 { Next SPY activity will recommence at time step number 251
+GO { Begin EMTP execution; no "@" read until break point is reached
+TIME { Trivial SPY command just to demonstrate that we have "SPY:" prompt
+NOROLL { End the rolling character plot as last SPY command before exit
+$SPYEND { Bound on in-line SPY commands; back to batch-mode program data
+BLANK card ending all electric sources
+C Total network loss P-loss by summing injections = 8.286714400785E+00
+C ---- Initial flux of coil "TRAN " to " " = -1.13295190E+01
+C 60 1.2 18.29171134 7.073352669 7.073352556 25.36506401 7.073352669
+C 80 1.6 -2.34791112 .3039748672 .303974844 -2.04393625 .3039748672
+C 100 2.0 -24.493162 -4.63708207 -4.63708206 -29.1302441 -4.63708207
+C // Service "BREAK". T = 0.20200E+01 16 = NCHAIN
+ GEN TRAN
+BLANK card ending requests for program output (here, just node voltages)
+C ---. All following cards will only be read for single-window execution:
+ PRINTER PLOT
+ 193 .5 0.0 5.0 TRAN LOADG GEN TRAN { Axis limits: (-3.493, 3.288)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc57.dat b/benchmarks/dc57.dat
new file mode 100644
index 0000000..d962ea9
--- /dev/null
+++ b/benchmarks/dc57.dat
@@ -0,0 +1,232 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-57 (former DC-71 of "M39." vintage)
+C The basic DC-30 problem has been augmented by batch-mode SPY commands as
+C an illustration of $SPY usage. See DC-56 (this is 2nd of 2 examples).
+C Unlike DC-56, this present case uses two sets of in-line $SPY data, so
+C it is more general. For SPY use, the user may desire conversion from
+C universal character plotting to computer-dependent vector-graphic plotting
+C (usually in a separate, third window). Applicable to Apollo for such a
+C change are the comment cards beginning with "C ---." (see two locations).
+C 1st of 2 subcases is the original for Salford EMTP. It involves one
+C vector plot, and no ROLL. For ROLL, see the 2nd subcase. Execution
+C with DISK will result in screen output that is limited to the vector
+C plots (1 from 1st subcase and 4 from 2nd). Execution using BOTH will
+C differ in that text will be outputted to the screen until the 1st vector
+C plot. Then, in effect, ATP switches from BOTH to DISK. March, 2002.
+$DEPOSIT, D4FACT=2.0 { Use SPY DEPOSIT to change CALCOMP PLOT time from STARTUP
+$DEPOSIT, NOCALC=-1 { We want screen graphics during DISK in spite of STARTUP
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ 1.0E-6 1.2E-3
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW BUS2 - BUS3
+99DRIVE ABS VSW
+99BREAK 1.5E+8* TIMEX + 1.0E+5
+98GRID 51+UNITY BREAK DRIVE
+33DUMMY TIMEX UNITY BUS2 BUS3 VSW DRIVE BREAK GRID
+BLANK card ending the last TACS data
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+BLANK card ending electric network branch cards
+ BUS2 BUS3 -1. 1.E9 2
+11BUS2R BUS3R 20. GRID 13
+$SPY { Request for batch-mode SPY connection: in-line SPY commands begin
+BRANCH { SPY request for a display of the program branch table (List 2)
+ALL { Display all rows of the branch table
+SPY { Exit the loop of the branch table display; back to "SPY:" prompt
+SOURCE
+TACS
+ALL
+SPY { Exit the loop of the TACS source table display; back to "SPY:" prompt
+time { Extra, do-nothing command makes the last something other than spy
+$SPYEND { Bound on in-line SPY commands; back to batch-mode program data
+BLANK card ending switch cards
+14GEN 66500. 50. -2.0508 -1.
+$SPY { Request for batch-mode SPY connection: in-line SPY commands begin
+SOURCE
+ELEC
+ALL
+SPY { Exit the loop of the electric source table display; back to "SPY:" prompt
+SWITCH { Show ATP storage related to switches
+ALL { Display all rows of switch table
+SPY { Exit the loop of the switch table display; back to "SPY:" prompt
+BREAK { Initiate a request for a later SPY break
+16, -750 { Next SPY break will be at .75E-3 seconds, which is step number 750
+GO { Begin EMTP execution; no "@" read until break point is reached
+PLOT { Having just broken at step 750, enter SPY plotting
+C ---. For 3-window SPY usage and vector plotting, comment out the MODE card
+C ---. that follows (assuming LTEK=1 for vector plots is set by STARTUP file)
+C MODE { Toggle from vector (Apollo default) to character mode of plotting
+SET COLUMN { Request a change in the output plotting width
+131 { The default width of 79 is now being changed to 131 for maximum accuracy
+CHOICE { Request a list of the output variables, available for plotting
+NAME { Plot command to begin inputting the variable names
+END { Step over node voltage input, and begin branch voltage input
+BUS2 BUS3 { The 1st and only variable to be plotted will be this branch voltage
+LAST { Exit the loop over plot input variables; back to basic plot command
+LABEL { Define labeling for plots, beginning with super title (next):
+Super Title Line
+Vertical axis
+1st of two lines of case title
+2nd and final line of case title
+end
+TIMEUNITS { Default time units of seconds are not convenient, so change to:
+4 { 4 ==> msec (scale by 1000 in labeling the time axis)
+ALL TIME { Perform the plot using all available time points
+SPY { Exit plotting; back to "SPY:" command
+BREAK { Request a pause in the simulation that will soon resume (after "GO")
+16, -1001 { Next SPY activity will recommence at time step number 1001
+GO { Begin EMTP execution; no "@" read until break point is reached
+TIME { Trivial SPY command before program stop, just to prove SPY activity
+$SPYEND { Bound on in-line SPY commands; back to batch-mode program data
+BLANK card ending all electric sources
+C Total network loss P-loss by summing injections = -1.885346136987E-07
+C Step Time BUS2 BUS2R BUS3R BUS2R BUS3
+C BUS3 BUS3R
+C
+C TACS TACS TACS TACS TACS
+C DUMMY TIMEX UNITY BUS2 BUS3
+C *** Phasor I(0) = -1.5049840E+01 Switch "BUS2 " to "BUS3 " closed
+C 0 0.0 0.0 0.0 64751.3498 64751.3498 64751.3498
+C 0.0 0.0 1.0 0.0 0.0
+C *** Open switch "BUS2 " to "BUS3 " after 1.00000000E-06 sec.
+C 1 .1E-5 0.0 0.0 64752.0751 64752.0751 64752.0751
+C .001998002 .1E-5 1.0 64752.0751 64752.0751
+C $OPEN, UNIT=42 STATUS=UNKNOWN FILE=DEBUG.LIS
+ 1 { Request for the output of all network node voltages
+C ---. All following cards will only be read for single-window execution:
+C Last step: 1200 .0012 105797.943 105797.943 -37370.689 68427.2546 -37370.689
+C Last step: .909282119 .0012 1.0 68427.2546 -37370.689
+C maxima : 177392.698 177392.698 102764.956 84422.9848 102764.956 84422.9848
+C maxima : .909282119 .0012 1.0 84422.9848 102764.956 177392.698
+C times max : .497E-3 .497E-3 .83E-4 .478E-3 .83E-4 .478E-3
+C times max : .0012 .0012 0.0 .478E-3 .83E-4 .497E-3
+ PRINTER PLOT
+ 184 .1 0.0 1.2 BUS2 BUS3 { Axis limits: (-0.386, 1.774)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases is appended 18 March 2002. This is modification of
+C the first. A big change was made for Salford, as Salford VECPLT in
+C the UTPF was reformed. Previously, SPY PLOT worked, but it was not
+C a ROLL-ing vector plot as Mingw32 ATP demonstrated in its separate plot
+C window for DISLIN graphics. Now, Salford EMTP, too, can have a ROLLing
+C vector SPY PLOT just as Mingw32 ATP did. There is a price, however:
+C Execution must be using DISK rather than BOTH (text output to the
+C screen is not possible). Also, NOCALC = -1 is required to enable
+C CALCOMP PLOT graphics (screen graphics) during DISK. Then, during
+C all plotting, the screen is held in graphic mode. Previously, TSTALL
+C was made positive to slow text output. Since text and graphics are
+C mixed for the ROLL-ing SPY PLOT in the dT loop, this still works. The
+C graphics continue to be slowed, even though text can not be seen on
+C the screen. Using default 50% overlap of plots, the first begins at
+C 1/4 msec, and extends through 1.0 msec. The 2nd then is (0.5, 1.5),
+C and the 3rd covers (1.0, 2.0), of which the simulation covers 80% when
+C T-max is reached. Finally, real CALCOMP PLOT produces a 4th plot.
+C All 4 should be in the .PS (PostScript) output, and will be found in
+C the ATPHPGL.* for HP-GL (one disk file per plot).
+$DEPOSIT, KSLOWR=5 { Use SPY DEPOSIT to change ROLL buffer from STARTUP value
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ 1.0E-6 1.8E-3
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+ 1DUMMY +UNITY
+ 1.0
+ 1.0 0.5E-3
+90BUS2
+90BUS3
+99VSW BUS2 - BUS3
+99DRIVE ABS VSW
+99BREAK 1.5E+8* TIMEX + 1.0E+5
+98GRID 51+UNITY BREAK DRIVE
+33DUMMY TIMEX UNITY BUS2 BUS3 VSW DRIVE BREAK GRID
+BLANK card ending the last TACS data
+ GEN BUS1 15.
+ BUS1 2.9
+ BUS1 BUS2 0.1
+ BUS2 0.1
+ BUS3 .017
+ BUS3 490.
+ BUS2 BUS2R 24.34
+ BUS3 BUS3R BUS2 BUS2R
+BLANK card ending electric network branch cards
+ BUS2 BUS3 -1. 1.E9 2
+11BUS2R BUS3R 20. GRID 13
+$SPY { Request for batch-mode SPY connection: in-line SPY commands begin
+BRANCH { SPY request for a display of the program branch table (List 2)
+ALL { Display all rows of the branch table
+SPY { Exit the loop of the branch table display; back to "SPY:" prompt
+SOURCE
+TACS
+ALL
+SPY { Exit the loop of the TACS source table display; back to "SPY:" prompt
+time { Extra, do-nothing command makes the last something other than spy
+$SPYEND { Bound on in-line SPY commands; back to batch-mode program data
+BLANK card ending switch cards
+14GEN 66500. 50. -2.0508 -1.
+$SPY { Request for batch-mode SPY connection: in-line SPY commands begin
+SOURCE
+ELEC
+ALL
+SPY { Exit the loop of the electric source table display; back to "SPY:" prompt
+SWITCH
+ALL
+SPY { Exit the loop of the switch table display; back to "SPY:" prompt
+BREAK { Initiate a request for a later SPY break
+16, -250 { Next SPY break will be at .25E-3 seconds, which is step number 250
+GO { Begin EMTP execution; no "@" read until break point is reached
+PLOT { Having just broken at step 750, enter SPY plotting
+C ---. For 3-window SPY usage and vector plotting, comment out the MODE card
+C ---. that follows (assuming LTEK=1 for vector plots is set by STARTUP file)
+C MODE { Toggle from vector (Apollo default) to character mode of plotting
+SET COLUMN { Request a change in the output plotting width
+131 { The default width of 79 is now being changed to 131 for maximum accuracy
+CHOICE { Request a list of the output variables, available for plotting
+NAME { Plot command to begin inputting the variable names
+END { Step over node voltage input, and begin branch voltage input
+BUS2 BUS3 { The 1st and only variable to be plotted will be this branch voltage
+LAST { Exit the loop over plot input variables; back to basic plot command
+LABEL { Define labeling for plots, beginning with super title (next):
+Super Title Line
+Vertical label
+FLUSH { Erase any multi-line case title now being stored (preceding subcase)
+1st of two lines of case title
+2nd and final line of case title
+END { Terminate this multi-line case title
+TIMEUNITS { Default time units of seconds are not convenient, so change to:
+4 { 4 ==> msec (scale by 1000 in labeling the time axis)
+TIME 0.0 1.0 { Plot 4 times as far as points now exist (0, 1/4 msec)
+ROLLV { Switch to ROLL-ing plot, Vector mode (not C ==> character)
+SPY { Exit plotting; back to "SPY:" command
+BREAK { Request a pause in the simulation that will soon resume (after "GO")
+16, -1001 { Next SPY activity will recommence at time step number 1001
+GO { Begin EMTP execution; no "@" read until break point is reached
+TIME { Trivial SPY command before program stop, just to prove SPY activity
+$SPYEND { Bound on in-line SPY commands; back to batch-mode program data
+BLANK card ending all electric sources
+C The following slows output just prior to entry into dT loop (and plotting).
+C This serves to hold the 1st plot on the screen for several seconds, & also
+C to slow following ROLL-ing SPY PLOTs of this subcase enough so the user is
+C able to study structure. Without TSTALL, the average PC is too fast, so:
+$DEPOSIT, TSTALL=0.1 { 1/10 second delay will occur after each printed line
+ 1 { Request for the output of all network node voltages
+ CALCOMP PLOT { Switch to vector plotting (preceding subcase had PRINTER PLOT)
+ 2Arbitrary 78-character case title text of which this is an example, I hope.
+ First of two lines of 78-byte graph subheading text.
+ Second and final such line of graph subheading text.
+ 184 .2 0.0 2.0 BUS2 BUS3 Graph heading---Vertical axis la
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc58.dat b/benchmarks/dc58.dat
new file mode 100644
index 0000000..b69f33b
--- /dev/null
+++ b/benchmarks/dc58.dat
@@ -0,0 +1,137 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-58 (DC-70 of "M39.")
+C 1st of 3 subcases illustrates DO KNT loop that entered the UTPF on
+C February 6, 1999. As initially implemented, only one loop is allowed,
+C and it creates an output data file having the fixed name DOFILE.DAT
+C (to be used with $INCLUDE as will be built internally; see .LIS).
+C Second important restruction: use must be in 1st subcase only, if two
+C or more subcases are to be stacked in 1 file for sequential execution.
+C That is why this addition to an old data file is made at the top rather
+C than at the bottom (common practice). As should be explained in the
+C April, 1999, newsletter, DO loops in data were inspired by Prof. Juan
+C A. Martinez Velasco of the University of Catalunya in Barcelona, Spain.
+C New 1st subcase of DC-8 is added 25 September 2001. Ideally, it
+C would be a new 2nd subcase here, but since each DO KNT loop must
+C be in the 1st subcase, placement here was impossible. Data is the
+C same, although part has been offloaded to a $INCLUDE file. This
+C proves that DO KNT loop can involve a $INCLUDE statement.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .020
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+C The /OUTPUT on the right of the following DO loop is optional. It will
+C result in output that documents progress of the loop. For small numbers of
+C passes (e.g., this illustration), such extra output is recommended. If no
+C such request is present, output will be suppressed during the DO loop.
+DO KNT=1, 5 /OUTPUT { Loop twice using PCVP index KNT (seen inside $PARAMETER)
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+_BUS1_ = KNT SERIALIZE 'NODE00'
+_BUS2_ = KNT + 1. SERIALIZE 'NODE00'
+C Note about SERIALIZE on the preceding 2 lines. This is optional. If
+C not present, there will be floating-point encoding of the right hand side.
+C What the SERIALIZE request does is request integer truncation of the
+C floating-point result followed by right-adjusted encoding of the following
+C root word using the integer value. The character string following the
+C key word is enclosed in apostrophes, and should have the same width as
+C the symbol on the left hand side.
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+-1_BUS1__BUS2_ .306 5.82 .012 100. { Half the length of original
+92_BUS2_ { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+ENDDO KNT
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14NODE01 408000. 60.
+BLANK card ending source data
+ 1
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 3 subcases was 1st before 6 February 99, and was DC-70 of "M39."
+C Illustration of nested $INCLUDE (2 levels, in this example), using data of
+C DC-4 as an example. The first $INCLUDE file contains the characteristic
+C (must be established as disk file "dc58inc1.dat", note) of the Type-93
+C saturable reactor, while files 2 and 3 in fact just add comment cards, so
+C they do not actually affect the solution. But to execute, these must have
+C disk file names "dc58inc2.dat" and "dc58inc3.dat", respectively. The
+C contents of these files follow, as documentation:
+C < < < < < < dc58incl1.dat :
+C -5.0 -100.
+C -.1 -50.
+C -.02 -45.
+C -.01 -40.
+C -.005 -30.
+C .005 30.
+C .01 40.
+C .02 45.
+C .10 50.
+C 5.0 100.
+C 9999
+C < < < < < < dc58incl2.dat :
+C Comment card is 1st of 2 cards in dc58inc2.dat. The second is $INCLUDE:
+C $INCLUDE, dc58inc3.dat,
+C < < < < < < dc58inc3.dat :
+C Contents of dc58inc3.dat are just 2 comment cards, with this being 1st
+C and this is the second and last
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .020 4.0
+ 1 1 1 0 1 -1
+ 5 5 20 20
+ GEN TRAN 5.0 5.E4 3
+ TRAN 1.E4
+93TRAN .005 30. 3
+$INCLUDE, dc58inc1.dat,
+ TRAN LOADG 255. 5.E4 3
+ LOADG 1.E-6
+BLANK card ending branches
+BLANK card ending switch cards (none, for this example)
+14GEN 70. .1591549 -1.
+$INCLUDE, dc58inc2.dat, { This 2nd INCLUDE has a 3rd one nested inside of it
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 8.286714400785E+00
+C Initial flux in coil "TRAN " to " " = -1.13295190E+01
+ GEN TRAN
+C Step Time GEN TRAN TRAN GEN TRAN
+C TRAN TERRA LOADG
+C 0 0.0 6.270257621 63.72974238 63.72974215 70. 63.72974238
+C 1 .02 6.042435541 63.94356493 63.9435647 69.98600047 63.94356493
+C 2 .04 5.812195789 64.13181171 64.13181147 69.9440075 64.13181171
+BLANK card ending output variables (only node voltages, for this example)
+C Final step begins: 200 4.0 2.441169053 -48.1962799 -48.1962797
+C cont. .. -45.7551108 -48.1962799 -.013963808 -.234726349 -.215942913
+C Variable maxima : 20.01585083 64.72838406 64.72838381 70. 64.72838406
+C Times of maxima : 1.16 .18 .18 0.0 .18
+ PRINTER PLOT
+ 1931.0 0.0 7.0 TRAN { Axis limits: (-0.140, 3.031)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases is the same as the second except that $PREFIX is not
+C being used. Instead, the [] are being buried in the $INCLUDE lines
+C themselves to demonstrate that this form, also, is accepted. The ending
+C time T-max is shortened, and plotting has been removed. Also remove
+C the request for extrema, which no longer are significant. 29 January 2004
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .020 0.1 { Shorten T-max to 1/40 of preceding to speed the simulation
+ 1 1 1 0 0 -1
+ 5 5 20 20
+ GEN TRAN 5.0 5.E4 3
+ TRAN 1.E4
+93TRAN .005 30. 3
+$INCLUDE, []dc58inc1.dat,
+ TRAN LOADG 255. 5.E4 3
+ LOADG 1.E-6
+BLANK card ending branches
+BLANK card ending switch cards (none, for this example)
+14GEN 70. .1591549 -1.
+$INCLUDE, []dc58inc4.dat, { This 4th INCLUDE is combination of previous 2 and 3
+BLANK card ending source cards
+ GEN TRAN
+BLANK card ending output variables (only node voltages, for this example)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc58inc1.dat b/benchmarks/dc58inc1.dat
new file mode 100644
index 0000000..a1753ef
--- /dev/null
+++ b/benchmarks/dc58inc1.dat
@@ -0,0 +1,11 @@
+ -5.0 -100.
+ -.1 -50.
+ -.02 -45.
+ -.01 -40.
+ -.005 -30.
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
diff --git a/benchmarks/dc58inc2.dat b/benchmarks/dc58inc2.dat
new file mode 100644
index 0000000..f1f7155
--- /dev/null
+++ b/benchmarks/dc58inc2.dat
@@ -0,0 +1,2 @@
+C Comment card is 1st of 2 cards in DC58INCL2.DAT. The second is $INCLUDE:
+$INCLUDE, dc58inc3.dat,
diff --git a/benchmarks/dc58inc3.dat b/benchmarks/dc58inc3.dat
new file mode 100644
index 0000000..2d26b48
--- /dev/null
+++ b/benchmarks/dc58inc3.dat
@@ -0,0 +1,2 @@
+C Contents of DC58INC3.DAT are just 2 comment cards, with this being 1st
+C and this is the second and last
diff --git a/benchmarks/dc58inc4.dat b/benchmarks/dc58inc4.dat
new file mode 100644
index 0000000..915cbe1
--- /dev/null
+++ b/benchmarks/dc58inc4.dat
@@ -0,0 +1,4 @@
+C Comment card is 1st of 2 cards in DC58INCL2.DAT. The second is $INCLUDE:
+C Destroy the 2nd level of $INCLUDE. Insert 3rd file content here:
+C Contents of DC58INC3.DAT are just 2 comment cards, with this being 1st
+C and this is the second and last
diff --git a/benchmarks/dc59.dat b/benchmarks/dc59.dat
new file mode 100644
index 0000000..a426875
--- /dev/null
+++ b/benchmarks/dc59.dat
@@ -0,0 +1,557 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-59 (DC-69 of "M39." vintage)
+C Use "LINE CONSTANTS" to punch on LUNIT7 the K.C. Lee EMTP branch cards
+C that represent a double-circuit BPA line. This 500-kV line is seventy
+C miles long, and it connects BPA substations "Raver" and "Chief Joseph"
+C 1st of 14 subcases illustrating different LINE CONSTANTS computations.
+C The 1st 7 are stacked to maintain control within LINE CONSTANTS whereas
+C later subcases are separated by BNDC (the more modern concept).
+C DIAGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+LINE CONSTANTS
+$ERASE { Flush the punched card buffer (in case 2nd or later subcase of usage)
+ENGLISH { Redundant request is unnecessary: English units are default choice
+BRANCH X2A X16A X2B X16B X2C X16C Y2A Y16A Y2B Y16B Y2C Y16C
+ 1 .375 .0776 4 .0 1.302 -21.17 51.04
+ 1 .375 .0776 4 .0 1.302 -22.00 50.00
+ 1 .375 .0776 4 .0 1.302 -22.83 51.04
+ 2 .375 .0776 4 .0 1.302 .83 79.14
+ 2 .375 .0776 4 .0 1.302 0.00 78.10
+ 2 .375 .0776 4 .0 1.302 -.83 79.14
+ 3 .375 .0776 4 .0 1.302 22.83 51.04
+ 3 .375 .0776 4 .0 1.302 22.00 50.00
+ 3 .375 .0776 4 .0 1.302 21.17 51.04
+ 4 .375 .0776 4 .0 1.302 103.83 51.04
+ 4 .375 .0776 4 .0 1.302 103.00 50.00
+ 4 .375 .0776 4 .0 1.302 102.17 51.04
+ 5 .375 .0776 4 .0 1.302 125.83 79.14
+ 5 .375 .0776 4 .0 1.302 125.00 78.10
+ 5 .375 .0776 4 .0 1.302 124.17 79.14
+ 6 .375 .0776 4 .0 1.302 147.83 51.04
+ 6 .375 .0776 4 .0 1.302 147.00 50.00
+ 6 .375 .0776 4 .0 1.302 146.17 51.04
+ 0 .500 2.6100 4 .0 .386 12.90 101.40
+ 0 .500 2.6100 4 .0 .386 -12.90 101.40
+ 0 .500 2.6100 4 .0 .386 137.90 101.40
+ 0 .500 2.6100 4 .0 .386 112.10 101.40
+BLANK card concludes conductor cards
+C Following is old format with "1" in column 28. Newer blank is equivalent:
+ 100.0 60.0 1 1 70. 1
+C 100.0 60.0 1 70. 1
+C 34567890123456789012345678
+BLANK card ends the one and only frequency card
+C [Z] begins: 1 1.894681E-01
+C [Z] begins: 8.966087E-01
+C [Z] begins: 2 1.784947E-01 2.253729E-01
+C [Z] begins: 3.444996E-01 8.518222E-01
+C Row 4 of [Z]: 4 1.585986E-01 1.711108E-01 1.643664E-01 1.958309E-01
+C Row 4 of [Z]: 2.109824E-01 2.106541E-01 2.563596E-01 8.847836E-01
+C Last modal row: 6 2.993735E-02 5.200153E-01 8.194303E-06 2.520181E+02
+C Last modal row: -7.248357E+00 2.519139E+02 1.825523E+05 5.939524E-05
+C Eigenvector matrix [Ti] for current transformation: I-phase = [Ti]*I-mode.
+C Row 1: 4.252163704717307E-01 -5.177320964654548E-01 -3.352440256724861E-01
+C Row 2: 3.825268921039306E-01 -3.979585318772536E-01 -4.744214714424082E-02
+C Last Z-surge row: 3.332489880161737E1 3.738497001800407E1 4.323487789067054E+1
+C Last Z-surge row: 9.030558505299203E1 1.029930778488600E2 3.620689931272090E+2
+C $VINTAGE, 1 --- Beginning of punched cards
+C -1X2A X16A 1.03897E+00 6.87061E+02 1.16853E+05-7.00000E+01 1 6
+C -2X2B X16B 6.04380E-02 4.22507E+02 1.67695E+05-7.00000E+01 1 6
+C -3X2C X16C 2.69166E-02 2.64252E+02 1.84104E+05-7.00000E+01 1 6
+C -4Y2A Y16A 2.72285E-02 2.73315E+02 1.82849E+05-7.00000E+01 1 6
+C -5Y2B Y16B 3.17288E-02 2.53688E+02 1.81665E+05-7.00000E+01 1 6
+C -6Y2C Y16C 2.99374E-02 2.51914E+02 1.82552E+05-7.00000E+01 1 6
+C $VINTAGE, 0
+C 0.42521637 -0.51773210 -0.33524403 -0.51955526 -0.26282070 0.37241506
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.38252689 -0.39795853 -0.04744215 0.02064266 0.58206662 -0.57594225
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.41576943 -0.27126091 0.62077426 0.47920372 -0.30351891 0.17203938
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.41576943 0.27126091 -0.62077426 0.47920372 -0.30351891 -0.17203938
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.38252689 0.39795853 0.04744215 0.02064266 0.58206662 0.57594225
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.42521637 0.51773210 0.33524403 -0.51955526 -0.26282070 -0.37241506
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+$PUNCH
+C 2nd of 9 data subcases within "LINE CONSTANTS" serves to demonstrate
+C the modeling of a continuously transposed 3-phase overhead line (col. 70
+C on the freq. card is left blank), output branch cards will be punched.
+C Solution of this and the following 3 subcases are taken from Sun 3/140
+C in August, 1991.
+BRANCH JDA LMA JDB LMB JDC LMC
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK CARD ENDING CONDUCTOR CARDS OF "LINE CONSTANTS" CASE
+100. 60.00 1 11 1 138. 1
+BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+C [Z] begins: 1 1.197867E-01
+C [Z] begins: 1.118869E+00
+C [Z] begins: 2 9.087789E-02 1.180123E-01
+C [Z] begins: 5.395449E-01 1.120899E+00
+C [Z] begins: 3 9.175069E-02 9.087789E-02 1.197867E-01
+C [Z] begins: 5.189221E-01 5.395449E-01 1.118869E+00
+C $VINTAGE, 1 --- Beginning of punched cards
+C -1JDA LMA 0.30153E+00 0.69182E+03 0.11937E+06 0.13800E+03 1
+C -2JDB LMB 0.28026E-01 0.28360E+03 0.18218E+06 0.13800E+03 1
+C -3JDC LMC
+C $VINTAGE, 0
+$PUNCH, dc59b.pch !
+C 3rd of 9 subcases: continuously-transposed, constant-parameter,
+C double-circuit line. This is unrealistic, physically. See the
+C following 4-th subcase for a better approximation of common use.
+BRANCH SENDA RECA SENDB RECB SENDC RECC SENDD RECD SENDE RECE SENDF RECF
+ 1.3636 .0561 4 0.0 1.602 -20.75 48.9 48.9
+ 1.3636 .0561 4 0.0 1.602 -19.25 48.9 48.9
+ 2.3636 .0561 4 0.0 1.602 - 0.75 76.4 76.4
+ 2.3636 .0561 4 0.0 1.602 0.75 76.4 76.4
+ 3.3636 .0561 4 0.0 1.602 19.25 48.9 48.9
+ 3.3636 .0561 4 0.0 1.602 20.75 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 129.25 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 130.75 48.9 48.9
+ 5.3636 .0561 4 0.0 1.602 149.25 76.4 76.4
+ 5.3636 .0561 4 0.0 1.602 150.75 76.4 76.4
+ 6.3636 .0561 4 0.0 1.602 169.25 48.9 48.9
+ 6.3636 .0561 4 0.0 1.602 170.75 48.9 48.9
+ 0.5 2.61 4 0.0 .386 -12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 137.1 113.3 113.3
+ 0.5 2.61 4 0.0 .386 162.9 113.3 113.3
+BLANK card ending conductors
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ 100. 60. 1 1 1 0 1.00 1
+BLANK card ending frequency cards
+C [Z] begins: 1 1.217123E-01
+C [Z] begins: 1.118839E+00
+C [Z] begins: 2 9.094958E-02 1.199341E-01
+C [Z] begins: 5.394596E-01 1.120869E+00
+C Row 4 of [Z]: 4 9.147597E-02 9.069011E-02 9.164961E-02 1.217127E-01
+C Row 4 of [Z]: 3.585129E-01 3.741915E-01 3.960704E-01 1.118836E+00
+C $VINTAGE, 1 --- Beginning of punched cards
+C -1SENDA RECA 0.57627E+00 0.87897E+03 0.10152E+06 0.10000E+01 1
+C -2SENDB RECB 0.30089E-01 0.31999E+03 0.17467E+06 0.10000E+01 1
+C -3SENDC RECC
+C -4SENDD RECD
+C -5SENDE RECE
+C -6SENDF RECF
+C $VINTAGE, 0
+$PUNCH, dc59c.pch !
+C 4th of 9 subcases will illustrate usage of the special request word
+C SPECIAL DOUBLE CIRCUIT TRANSPOSED. This is to represent a double-
+C circuit line in which each circuit is itself transposed, and which has
+C only zero-sequence coupling between the two circuits. There are two
+C idential 3-phase circuits.
+C Columns 69-70 on the frequency cards are left blank or integer zero.
+SPECIAL DOUBLE CIRCUIT TRANSPOSED
+BRANCH SENDA RECA SENDB RECB SENDC RECC SENDD RECD SENDE RECE SENDF RECF
+C Special transposed double circuit, constant parameter modeling
+ 1.3636 .0561 4 0.0 1.602 -20.75 48.9 48.9
+ 1.3636 .0561 4 0.0 1.602 -19.25 48.9 48.9
+ 2.3636 .0561 4 0.0 1.602 - 0.75 76.4 76.4
+ 2.3636 .0561 4 0.0 1.602 0.75 76.4 76.4
+ 3.3636 .0561 4 0.0 1.602 19.25 48.9 48.9
+ 3.3636 .0561 4 0.0 1.602 20.75 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 129.25 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 130.75 48.9 48.9
+ 5.3636 .0561 4 0.0 1.602 149.25 76.4 76.4
+ 5.3636 .0561 4 0.0 1.602 150.75 76.4 76.4
+ 6.3636 .0561 4 0.0 1.602 169.25 48.9 48.9
+ 6.3636 .0561 4 0.0 1.602 170.75 48.9 48.9
+ 0.5 2.61 4 0.0 .386 -12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 137.1 113.3 113.3
+ 0.5 2.61 4 0.0 .386 162.9 113.3 113.3
+BLANK card ending conductors
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ 100. 60. 1 1 1 0 1.00 1
+BLANK card ending frequency cards
+C [Z] begins: 1 1.217123E-01
+C [Z] begins: 1.118839E+00
+C [Z] begins: 2 9.094958E-02 1.199341E-01
+C [Z] begins: 5.394596E-01 1.120869E+00
+C Row 4 of [Z]: 4 9.147597E-02 9.069011E-02 9.164961E-02 1.217127E-01
+C Row 4 of [Z]: 3.585129E-01 3.741915E-01 3.960704E-01 1.118836E+00
+C $VINTAGE, 1 --- Beginning of punched cards
+C -1SENDA RECA 0.57627E+00 0.87897E+03 0.10152E+06 0.10000E+01 1
+C -2SENDB RECB 0.29879E-01 0.28421E+03 0.18255E+06 0.10000E+01 1
+C -3SENDC RECC 0.30932E-01 0.48704E+03 0.16609E+06 0.10000E+01 1
+C -4SENDD RECD
+C -5SENDE RECE
+C -6SENDF RECF
+C $VINTAGE, 0
+$PUNCH, dc59d.pch !
+C 5th of 9 subcases: Another case of "SPECIAL DOUBLE CIRCUIT TRANSPOSED",
+C the two single circuits here are not identical.
+SPECIAL DOUBLE CIRCUIT TRANSPOSED
+BRANCH SENDA RECA SENDB RECB SENDC RECC SENDD RECD SENDE RECE SENDF RECF
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 4.3636 .0561 4 0.0 1.602 129.25 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 130.75 48.9 48.9
+ 5.3636 .0561 4 0.0 1.602 149.25 76.4 76.4
+ 5.3636 .0561 4 0.0 1.602 150.75 76.4 76.4
+ 6.3636 .0561 4 0.0 1.602 169.25 48.9 48.9
+ 6.3636 .0561 4 0.0 1.602 170.75 48.9 48.9
+ 0.5 2.61 4 0.0 .386 -12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 137.1 113.3 113.3
+ 0.5 2.61 4 0.0 .386 162.9 113.3 113.3
+BLANK card ending conductors
+C 1 2 3 4 5 6 7 8
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+100. 60.00 1 1 1 1.00 1
+BLANK card ending frequency cards of LINE CONSTANTS data subcase
+C [Z] begins: 1 1.197873E-01
+C [Z] begins: 1.118865E+00
+C [Z] begins: 2 9.087852E-02 1.180131E-01
+C [Z] begins: 5.395402E-01 1.120893E+00
+C Row 4 of [Z]: 4 9.144082E-02 9.065542E-02 9.161373E-02 1.217127E-01
+C Row 4 of [Z]: 3.585503E-01 3.740201E-01 3.961049E-01 1.118836E+00
+C $VINTAGE, 1 --- Beginning of punched cards
+C -1SENDA RECA 0.57513E+00 0.87993E+03 0.10163E+06 0.10000E+01 1
+C -2SENDB RECB 0.28952E-01 0.28422E+03 0.18257E+06 0.10000E+01 1
+C -3SENDC RECC 0.30003E-01 0.48732E+03 0.16618E+06 0.10000E+01 1
+C -4SENDD RECD
+C -5SENDE RECE
+C -6SENDF RECF
+C $VINTAGE, 0
+$PUNCH, dc59e.pch !
+C 6th of 9 data subcases within "LINE CONSTANTS" demonstrates that a
+C single conductor can be handled properly. Prior to 26 June 1992, there
+C were no punched branch cards for this case. Now, there are!
+BRANCH JDA LMA
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+BLANK card ending conductor cards of "LINE CONSTANTS" case
+C 34567890123456789012345678901234567890123456789012345678901234567890
+100. 60.00 1 1 1 138. 1
+C 100. 60.00 1 138. 1 1
+$PUNCH, dc59f.pch !
+C $VINTAGE, 1
+C -1JDA LMA 0.11978E+00 0.56250E+01 0.18952E+04 0.13800E+03 1
+C $VINTAGE, 0
+BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+C 7th of 9 data subcases within "LINE CONSTANTS" demonstrates that
+C metric data for constant parameter distributed transposed line can be
+C handled properly. Prior to October 1, 1993, punched branch cards for
+C this case were correct but were in English units.
+METRIC
+BRANCH AM-28 AM-29 BM-28 BM-29 CM-28 CM-29
+C
+C ********** 2-CHUKAR, TOWER TYPE M1 ************
+C
+ 1.3636 .0324 4 4.069 -6.936 15.245
+ 1.3636 .0324 4 4.069 -6.479 15.245
+ 2.3636 .0324 4 4.069 -.2287 23.63
+ 2.3636 .0324 4 4.069 .2287 23.63
+ 3.3636 .0324 4 4.069 6.479 15.245
+ 3.3636 .0324 4 4.069 6.936 15.245
+ 0.5 1.621 4 .980 -4.574 36.314
+ 0.5 1.621 4 .980 +4.574 36.314
+BLANK
+ 100. 60. 11 11 1 32.195 1 44
+$PUNCH, dc59g.pch !
+BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+BLANK card ends this 7th of 7 "LINE CONSTANTS" data subcases
+C $VINTAGE, 1
+C $UNITS, 60., 0.0,
+C 1AM-28 AM-29 2.39624092E+00 2.23836748E+01 3.33648686E-01
+C 2BM-28 BM-29 1.81795847E+00 1.07078886E+01 -5.56044928E-02
+C 2.36074723E+00 2.24231290E+01 3.28969259E-01
+C 3CM-28 CM-29 1.83533629E+00 1.01489328E+01 -3.60285322E-02
+C 1.81795847E+00 1.07078886E+01 -5.56044928E-02
+C 2.39624092E+00 2.23836748E+01 3.33648686E-01
+C $VINTAGE, -1,
+C $UNITS, -1., -1., { Restore values that existed b4 preceding $UNITS
+C Note about preceding output. Both XOPT and COPT (the parameters of
+C the $UNITS card are under user control. XOPT = 60 means reactance in
+C ohms. This was produced by the "44" in columns 67-68 of the frequency
+C card. This is variable IPUN. Precede this by a minus sign to produce
+C alternative L in millihenries. Capacitance is similarly controlled by
+C variable ICAP in column 44. Value "1" as used above results in
+C microfarads whereas "0" would have produced the alternate micromhos.
+C This came from Michelis of KEMA as documented on comment cards in SUBR25.
+BEGIN NEW DATA CASE
+C 8th of 14 subcases using "LINE CONSTANTS" is the same as the
+C preceding except it punches distributed (K.C. Lee) branch cards rather
+C than a Pi-circuit. See explanation in April, 1998, newsletter. This
+C subcase is added 24 December 1997 as former 8th is shoved downward.
+LINE CONSTANTS
+METRIC
+BRANCH AM-28 AM-29 BM-28 BM-29 CM-28 CM-29
+ 1.3636 .0324 4 4.069 -6.936 15.245
+ 1.3636 .0324 4 4.069 -6.479 15.245
+ 2.3636 .0324 4 4.069 -.2287 23.63
+ 2.3636 .0324 4 4.069 .2287 23.63
+ 3.3636 .0324 4 4.069 6.479 15.245
+ 3.3636 .0324 4 4.069 6.936 15.245
+ 0.5 1.621 4 .980 -4.574 36.314
+ 0.5 1.621 4 .980 +4.574 36.314
+BLANK card ending conductor cards
+ 100. 60. 11 11 1 32.195 1 1
+$PUNCH, dc59h.pch !
+BLANK card ending frequency cards of "LINE CONSTANTS" case
+BLANK card ends stacked "LINE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+C 9-th subcase illustrates NODA SETUP with LINE rather than CABLE CONSTANTS
+C (see DC-27). The frequency scan deliberately has been reduced to make
+C the output small and execution quick. See January, 1995, newsletter.
+C NODA SETUP, 1, { Request Taku Noda's ARMA model fitter. 1 ==> F-scan printout
+NODA SETUP { Request Taku Noda's ARMA model fitter. No printout of F-scan
+ { Output file name (blank requests use of default TAKUNODA.CCC)
+2nd of 2 such lines (any number are allowed).
+NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
+LINE CONSTANTS
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data
+C 100. .01 138. 1 9 10 1
+100. 10. 138. 1 3 2 1
+100. 1.E6 138. 1 1
+BLANK card ending frequency cards of inbedded "LINE CONSTANTS" data
+BLANK card ending "LINE CONSTANTS" cases
+BNDC { Illustrate use of the abbreviated form of BEGIN NEW DATA CASE
+C 10-th subcase illustrates parameter variation by means of PCVP. Here a
+C supporting program (LINE CONSTANTS) is involved rather than simulation
+C (see DCNEW-25) or frequency scan of some form (see DCNEW-26). The
+C height of the transmission line will be raised during each of 3 passes.
+C This is a batch-mode variation of the old interactive SPY @5 demonstration.
+C For clarity, there is full printout (IOPCVP = 0). But for practical use,
+C the production user probably would toggle this switch to IOPCVP = 1 which
+C will have the effect of eliminating printout preceding LINE CONSTANTS for
+C the 2nd and later pass of the PCVP loop. See January, 1999, newsletter.
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 3 times with
+POCKET CALCULATOR VARIES PARAMETERS 3 0 0 { full printout
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+_HEIGHT1 = 22. + KNT * 10.0 { Conductor height h1 = 32, 42, 52 feet
+_HEIGHT2 = 35. + KNT * 10.0 { Conductor height h2 = 45, 55, 65 feet
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+$ERASE { Flush the punched card buffer (in case 2nd or later subcase of usage)
+LINE CONSTANTS
+BRANCH JDA LMA JDB LMB JDC LMC
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ 1 .375 .0776 4 1.302 -15.3_HEIGHT1 { <1st of 3>
+ 2 .375 .0776 4 1.302 0.0_HEIGHT2
+ 3 .375 .0776 4 1.302 +15.3_HEIGHT1
+BLANK card ending conductor cards
+ 100. 60.00 1 2 1
+BLANK card ending frequency cards
+$PUNCH, dc59j.pch !
+BLANK card ending LINE CONSTANTS data cases
+BEGIN NEW DATA CASE
+C 11-th subcase illustrates 2-dimensional parameter variation. The pocket
+C calculator (PCVP) provides the outer loop whereas F-scan provides the inner
+C loop. The same basic LINE CONSTANTS as preceding subcase is involved.
+C Printout is minimized by IOPCVP = 1 (no printout outside of LINE CONSTANTS
+C for the 2nd & later pass of the PCVP loop). See January, 1999, newsletter.
+C Change 24 February 1999: Make the number of decades of the F-scan loop
+C a variable to illustrate INTEGER encoding. The use is artificial, but
+C useful. Before the introduction of data symbol DCD (the # of decades),
+C constant value 1 was used. So, originally F=60, 129, 278, and 600.
+C That was 1 decade and 3 points/decade. Following the change, note that
+C DCD = 1. + 1.0001 / KNT has values 2.0001 and 1.5 for KNT = 1 & 2.
+C Integer truncation then gives 2 and 1, respectively. So, the first
+C pass steps through 2 decades: F=60, 129, 278, 600, 1292, 2784, and 6000.
+C The second pass steps through just one decade. Acknowledgement: As noted
+C in the newsletter, it was Prof. Juan Martinez in Barcelona, Spain, who
+C first requested integer encoding of data symbols as illustrated here. He
+C was not dealing with LINE CONSTANTS, but the need was comparable.
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 2 times with
+POCKET CALCULATOR VARIES PARAMETERS 2 1 0 { minimum printout
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+_HEIGHT1 = 22. + KNT * 10.0 { Conductor height h1 = 32, 42, 52 feet
+_HEIGHT2 = 35. + KNT * 10.0 { Conductor height h2 = 45, 55, 65 feet
+DCD = 1. + 1.0001 / KNT INTEGER { # of decades of F-scan is an integer
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+$ERASE { Flush the punched card buffer (in case 2nd or later subcase of usage)
+LINE CONSTANTS
+BRANCH JDA LMA JDB LMB JDC LMC
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ 1 .375 .0776 4 1.302 -15.3_HEIGHT1 { <1st of 3>
+ 2 .375 .0776 4 1.302 0.0_HEIGHT2
+ 3 .375 .0776 4 1.302 +15.3_HEIGHT1
+BLANK card ending conductor cards
+C Number of decades is I3 integer in columns 60 thru 62: XXX
+ 100. 60.00 0 0 0 138. 1 DCD 3 1
+BLANK card ending frequency cards
+$PUNCH, dc59k.pch !
+C Preceding output is a function of the file name, peculiarly. Here in a later
+C subcase, a distinct file name must be used to separate this output from that
+C of preceding subcases. Unfortunately, this results in preservation of just
+C the 2nd of 2 passes (KNT=2). If the data is copied to a separate disk file,
+C and if the name (dc59l.pch) is erased, output of the 1st pass, KNT=1, also
+C will be seen. That is the peculiarity of Salford EMTP operation. The .LIS
+C file is unaffected, however. It should always be complete. And, of course,
+C the listing of punched cards within this always will be complete.
+BLANK card ending LINE CONSTANTS data cases
+BEGIN NEW DATA CASE
+C 12th of 14 subcases illustrates correction to METRIC for X at 1 meter
+C spacing. Also, within the the same subcase, illustrate the new option
+C of metric with X at 1 foot spacing. Data added 28 May 1999.
+LINE CONSTANTS
+METRIC { 1st of 2 uses is for real metric, meaning X at 1 meter separation
+C X at 1 m ---- Number below is ohm/km at 1 meter separation
+ 1 0.0 0.0727 1 .337507 2.8143 0.00 0.500 0.50 1
+BLANK END of conductor data ... start of frequency data
+ 100.0 60.0 0 11 11 0 160.934 1 1 1
+BLANK END of frequency data
+METRIC WITH X AT 1 FOOT SPACING { Bastardized metric uses X at 1 foot separation
+C X @ 1 ft ---- Number below is ohm/km at 1 foot separation
+ 1 0.0 0.0727 1 .2479 2.8143 0.00 0.500 0.50 1
+BLANK END of conductor data ... start of frequency data
+ 100.0 60.0 0 11 11 0 160.934 1 1 1
+BLANK card ending frequency cards
+BLANK card ending LINE CONSTANTS data cases
+BEGIN NEW DATA CASE
+C 13th of 14 subcases illustrates modal speed in excess of the speed of
+C light. Data was sent by Orlando Hevia to Tsu-huei Liu, and then by the
+C latter to W. Scott Meyer around 15 December 2007. The excess speed was
+C traced to lack of skin effect --- modeling that makes no sense in this
+C day and age. So, while the skin effect remains discretionary, a warning
+C message will note any such lack : "*** Warning. Not all conductors
+C involve the skin effect. This is dangerous if frequency is not low."
+C A 2nd warning message will warn of impossible speed, should the speed of
+C light be exceeded: "**** Warning. The following velocity of propagation
+C for the positive sequence exceeds the speed of light. Does the user`s data
+C possibly ignore the skin effect (dangerous if frequency is not low)?"
+C Original data involved 4-conductor bundles, but the "4" on the right
+C was erased from column 80 of the conductor cards to speed execution and
+C simplify the illustration at the same time. 10 KHz is the frequency used,
+C and it is indeed too high to ignore the skin effect.
+LINE CONSTANTS
+METRIC
+ 1 0.0 0.0565 0 0.238 3.34 -15. 22. 7. 45. 45.
+ 2 0.0 0.0565 0 0.238 3.34 0.0 22. 7. 45. 45.
+ 3 0.0 0.0565 0 0.238 3.34 15. 22. 7. 45. 45.
+BLANK card ending conductor cards
+ 1.E3 10000. 000001 000000 0 0.0702 44
+C Sequence Surge impedance Attenuation velocity ...
+C magnitude(ohm) angle(degr.) db/km km/sec ...
+C Zero : 5.93085E+02 -5.10741E+00 1.93681E-01 2.51847E+05 ...
+C Positive: 3.16873E+02 -7.68631E-02 1.91130E-03 3.83055E+05 ...
+C This 383055 km/sec > 3 * 10**8 meters/sec = speed of light
+BLANK card ending frequency cards
+BLANK card ending LINE CONSTANTS data cases
+BEGIN NEW DATA CASE
+C 14th of 14 subcases illustrates punched cards for 10 or more phases.
+C This case of 12 phases comes from Prof. Michael Igel in Germany. It
+C originally was named IGELT.DAT with the T indicating transposed.
+C As received early during January of 2008, punched cards were wrong.
+C For phases 10 and later, -9 of the 9th phase was repeated rather
+C than being replaced by 10, 11, etc. (through 99 maximum). Of
+C course, Dr. Tsu-huei Liu rapidly corrected such output, as this
+C data subcase demonstrates. For the record, Prof. Igel is with:
+C Power Engineering Saar
+C Institute of Electrical Power Engineering
+C HTW - Hochschule für Technik und Wirtschaft
+C University of Applied Science, Saarbrücken, Germany
+C www.powerengs.de
+C Data was created using Prof. Igel's ATP Designer? It began:
+C ATPDesigner - Design and Simulation of Power Networks
+C Version 1.12.21 - 04.01.2008
+C Numeous comment cards (boiler plate of ATP Designer?) have been removed for
+C brevity, and the "4" in column 80 of each conductor card has been erased.
+C This has the effect of reducing each phase from a 4-conductor bundle to 1.
+C Most output has been suppressed by changing 1-flags to 0-flags on the
+C frequency card (the original has been preserved as a comment, note). About
+C geometry, Prof. Igel warns: "you should consider that the geometric data
+C of the lines 7, ... 12 are not taken from a existing tower. These data are
+C only grown in my head." This subcase was added by WSM 13 January 2008.
+LINE CONSTANTS
+METRIC
+$ERASE
+BRANCH A00025A00024B00025B00024C00025C00024A00002A00013B00002B00013C00002C00013
+BRANCH A00026A00027B00026B00027C00026C00027A00028A00029B00028B00029C00028C00029
+C I Resis___ React___ Horiz___ Vmid____ Alpha_ NB
+C Skin_ IX Diam____ Vtower__ Separ___ Name__
+ 15.E-18.509E-2 4 5.0000001.9000E13.4299E1 4.0000E14.50E1
+ 25.E-18.509E-2 4 5.0000001.6500E12.3800E1 4.0000E14.50E1
+ 35.E-18.509E-2 4 5.0000001.0000E12.3800E1 4.0000E14.50E1
+ 45.E-18.509E-2 4 5.000000-1.000E12.3800E1 4.0000E14.50E1
+ 55.E-18.509E-2 4 5.000000-1.650E12.3800E1 4.0000E14.50E1
+ 65.E-18.509E-2 4 5.000000-1.900E13.4299E1 4.0000E14.50E1
+ 75.E-18.509E-2 4 5.0000001.9000E15.000000 4.0000E14.50E1
+ 85.E-18.509E-2 4 5.0000001.6500E15.000000 4.0000E14.50E1
+ 95.E-18.509E-2 4 5.0000001.0000E15.000000 4.0000E14.50E1
+ 105.E-18.509E-2 4 5.000000-1.000E15.000000 4.0000E14.50E1
+ 115.E-18.509E-2 4 5.000000-1.650E15.000000 4.0000E14.50E1
+ 125.E-18.509E-2 4 5.000000-1.900E15.000000 4.0000E14.50E1
+BLANK card ending conductor cards
+C Rho___ Fcar______# #IZPR__# Dist____# S DEC PUN IT
+C Freq______ ICPR__ I IPIP M PNT MO
+C Original frequency card: 1 000001 011000 02.0000E1 11110 00
+1.0000E25.000000E1 1 000000 000000 02.0000E1 00000 00
+BLANK card ending frequency cards
+$PUNCH
+BLANK card ending LINE CONSTANTS data cases
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+
+
+
+BEGIN NEW DATA CASE
+C old. This was what existed for 11th subcase prior to 25 Feb 99.
+C 11-th subcase illustrates 2-dimensional parameter variation. The pocket
+C calculator (PCVP) provides the outer loop whereas F-scan provides the inner
+C loop. The same basic LINE CONSTANTS as preceding subcase is involved.
+C Printout is minimized by IOPCVP = 1 (no printout outside of LINE CONSTANTS
+C for the 2nd and later pass of the PCVP loop). See January, 1999, newsletter.
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 2 times with
+POCKET CALCULATOR VARIES PARAMETERS 2 1 0 { reduced printout
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+_HEIGHT1 = 22. + KNT * 10.0 { Conductor height h1 = 32, 42, 52 feet
+_HEIGHT2 = 35. + KNT * 10.0 { Conductor height h2 = 45, 55, 65 feet
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+$ERASE { Flush the punched card buffer (in case 2nd or later subcase of usage)
+LINE CONSTANTS
+BRANCH JDA LMA JDB LMB JDC LMC
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ 1 .375 .0776 4 1.302 -15.3_HEIGHT1 { <1st of 3>
+ 2 .375 .0776 4 1.302 0.0_HEIGHT2
+ 3 .375 .0776 4 1.302 +15.3_HEIGHT1
+BLANK card ending conductor cards
+ 100. 60.00 0 0 0 138. 1 1 3 1
+BLANK card ending frequency cards
+$PUNCH, dc59k.pch !
+BLANK card ending LINE CONSTANTS data cases
+
+
+
+
+C 7th of 7 data subcases within "LINE CONSTANTS" serves only to test
+C special features of the program. First, this second subcase is itself
+C unusual (more commonly, each will be solved as a separate data case).
+C Second, for illustration of the Rule Book, we include three remaining
+C special-request cards that were not illustrated by the first subcase.
+METRIC { This switch to metric units will illustrate cm/meter/kilometer units
+FREQUENCY { Request for
+ 1 .375 .0776 4 .0 1.302 -21.17 51.04
+ 2 .375 .0776 4 .0 1.302 .83 79.14
+ 3 .375 .0776 4 .0 1.302 22.83 51.04
+BLANK card concludes conductor cards
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+100.0 .600 70. 2 3 1
+BLANK card ends the one and only frequency card
+BLANK card ends this 6th of 6 "LINE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc59g.dat b/benchmarks/dc59g.dat
new file mode 100644
index 0000000..0901ba8
--- /dev/null
+++ b/benchmarks/dc59g.dat
@@ -0,0 +1,25 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-59 (DC-69 of "M39." vintage)
+C 7th of 7 data subcases within "LINE CONSTANTS" demonstrates that
+C metric data for constant parameter distributed transposed line can be
+C handled properly. Prior to October1, 1993, punched branch cards for
+C this case were correct but were in English units.
+LINE CONSTANTS
+METRIC
+BRANCH AM-28 AM-29 BM-28 BM-29 CM-28 CM-29
+ 1.3636 .0324 4 4.069 -6.936 15.245
+ 1.3636 .0324 4 4.069 -6.479 15.245
+ 2.3636 .0324 4 4.069 -.2287 23.63
+ 2.3636 .0324 4 4.069 .2287 23.63
+ 3.3636 .0324 4 4.069 6.479 15.245
+ 3.3636 .0324 4 4.069 6.936 15.245
+ 0.5 1.621 4 .980 -4.574 36.314
+ 0.5 1.621 4 .980 +4.574 36.314
+BLANK
+C 100. 60. 11 11 1 32.195 1 44
+ 100. 60. 11 11 1 32.195 1 1
+$PUNCH
+BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+BLANK card ends this 7th of 7 "LINE CONSTANTS" data subcases
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc6.dat b/benchmarks/dc6.dat
new file mode 100644
index 0000000..aa364dd
--- /dev/null
+++ b/benchmarks/dc6.dat
@@ -0,0 +1,96 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-6
+C Test degenerate SUBROUTINE ANALYT of UTPF: "ANALYTIC SOURCES USAGE"
+C Also, two disconnected subnetworks have been added to illustrate the
+C use of trapped charge. Node "TRAP" has nothing but a capacitor to
+C ground and excitation by a trapped-charge source. This node does hold
+C its charge. The 2nd subnetwork once was required (but no longer is)
+C because of the need to have at least one regular phasor source (with
+C TCLOSE < 0.0), so this regular phasor source "EXTRA" excites an R-C
+C circuit. First there is the continuation of the phasor solution, then
+C relaxation as the source is shorted (TSTOP=.45 sec), finally transient
+C charging when the Type-12 ramp begins (TSTART = 1.55 sec). If the
+C user wants to demonstrate that no regular phasor source is required,
+C after 8 May 1987, erase TSTART (columns 61-70) of source "EXTRA".
+C PRINTED NUMBER WIDTH, 14, 2, --- Replace by following 2 lines on 23 Aug 95
+$DEPOSIT, KOLWID=14 { Use SPY DEPOSIT to change column width from STARTUP value
+$DEPOSIT, KOLSEP=2 { Use SPY DEPOSIT to change col separation from STARTUP value
+$BLANK COMMENT { Set switch so any truly blank line will be ignored
+ANALYTIC SOURCES USAGE
+ 0.1 2.0
+ 1 1 1 1 1
+ NODE1 NODE2 1.0 1
+ NODE3 NODE4 NODE1 NODE2
+ NODE2 1.0E6
+ NODE4 NODE2
+C 1 November 2001, add the following extraneous $UNITS request. It has no
+C effect since there is no preceding $UNITS to undo. There will be a new
+C warning message about the irrelevance of the declaration, however:
+$UNITS, -1, -1 { Restore whatever XOPT and COPT existed before preceding $UNITS
+ TRAP 0.0 0.0 3.0E6 { Capacitor to hold trapped charge
+ CAP 2.8E6 { Capacitor of R-C subnetwork
+ EXTRA CAP 0.4 { Resistor of R-C connects source and capacitor
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+13NODE3 100. .25 50. .75 .75
+ 2NODE1 { Type-1 source. In fact, any number 1-9 can be used, as this proves
+14TRAP -1 1.0 1.E-4 { Trapped charge source } 5432.
+C ===========================================================================
+C Following "-1.0" of columns 61-70 is no longer required after 8 May 1987:
+C ===========================================================================
+C --TSTART--
+14EXTRA 1.2 0.5 { Need 1 regular phasor } -1.0 .45
+12EXTRA 1.0 1.0 1.55
+BLANK card ending all electric source cards
+C Total network loss P-loss by summing injections = 1.665475193014E+00
+C TRAP 1.0 1.0 0.0 .00188495559215 0.0 .94247779608E-3
+C 0.0 0.0 .00188495559215 90.000 -.9424777961E-3 0.0
+C
+C EXTRA 1.2 1.2 2.7757919883568 2.8857193150184 1.6654751930141
+C 0.0 0.0 .78889467132476 15.8654284 -.4733368027949
+ 2NODE2 -50.
+ 2NODE4 -50.
+ 3NODE2 -50.
+ 3NODE4 -50.
+C Step Time TRAP CAP NODE4 NODE2
+C
+C 0 0.0 1.0 .08968320466 -50. -50.
+C More Type-1 sources, numbers 1 onward. | 40. { Type-1 source c
+C 1 0.1 1.0 .18207215381 -45.71428571 -45.71428571
+C More Type-1 sources, numbers 1 onward. | 80. { Type-1 source c
+C 2 0.2 1.0 .2567706113 -35.6462585 -35.6462585
+C End last input card for Type-1 sources. | 9999
+C 3 0.3 1.0 .30645528965 -23.91804341 -23.91804341
+ 1 { Request the output of all network node voltages
+ 40. { Type-1 source card for 1st time step (formerly cols. 9-16 for "2")
+ 80. { Type-1 source card for 2nd time step (formerly cols. 9-16 for "2")
+ 9999 { Terminate such Type 1-10 source input
+C Last step: 20 2.0 1.0 .1622276802 3.0486553363 3.0486553363
+C Last step cont ... : 0.0 0.0 .45 -3.048655336
+C maxima: 1.0 .32625238865 10.132034354 10.132034354 95. 95. 1.2 118.918043
+C Times of max. : 0.1 0.4 0.8 0.8 0.3 0.3 0.0 0.0
+C Variable min. : 1.0 .08968320466 -50. -50. 0.0 0.0 0.0 -10.132034
+C Times of min. : 0.6 0.0 0.0 0.0 0.0 0.0 0.5 0
+C Addition of 31 March 2011 follows. $DEPOSIT is illustrated in many test
+C cases, but only for numeric parameters. Upon the discovery that there was
+C no illustration for A6 character variables, the following was added. Note
+C that CHVBAR is the "CHaracter Vertical BAR" of STARTUP which normally
+C will be the vertical bar of a standard keyboard. Change it to "1" for the
+C initial print plot only. I.e., restore the "|" after the 1st plot. WSM.
+$DEPOSIT, CHVBAR=1 { Use SPY DEPOSIT to change separator character from | to 1
+ PRINTER PLOT
+C The following plot card illustrates automatic plotting from zero through
+C the end time TMAX of the study. Columns 5-7 give the t-axis length in
+C inches, and columns 12-15 being negative is the flag to plot all time.
+C With a 5-inch axis and a time span of 0 through 2, result is 0.4 sec/in.
+C For vector-graphic use and units of [msec], see first subcase of DC-37.
+ 193 5. -1. NODE1 NODE2 { Axis limits: (-0.101, 1.189)
+$DEPOSIT, CHVBAR=| { Use SPY DEPOSIT to restore separator character of STARTUP
+ 143 .4 0.0 2.0 CAP { Axis limits: (0.000, 3.263)
+C The following truly blank line is added 20 February 1999 to illustrate use
+C of $BLANK COMMENT near the top. The next line is extraneous:
+
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc60.dat b/benchmarks/dc60.dat
new file mode 100644
index 0000000..073580e
--- /dev/null
+++ b/benchmarks/dc60.dat
@@ -0,0 +1,207 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-60 (DC-63 of "M39." vintage)
+C Generate Semlyen frequency-dependent branch cards for DC-61 simulation.
+C This is for an overhead transmission line of 4 phases from South Africa.
+C There are 2 ground wires that are not eliminated, followed by two phase
+C wire bundles of 4 individual conductors each (automatic bundling option)
+C Solution changes beginning 15 Oct 1988 due to Mustafa Kizilcay changes
+C Solution changed on 23 Oct 1990 due to Mustafa Kizilcay's modifications
+C (preceding commented data has been copied to bottom for preservation).
+SEMLYEN SETUP
+$ERASE
+BRANCH BUSA-1BUSB-1BUSA-2BUSB-2BUSA-3BUSB-3BUSA-4BUSB-4
+C 345678901234567890123456
+C 50 100 2 31 0 1 ???? WSMWSM. SPY PLOT dies in TDFIT. See TODO
+ 50 100 2 1 0 1 { 27 Sept 1987 abandon SPY PLOT try
+C 150 150 2 1 0 1 { Modify preceding for Oct, 1990 (Mustafa)
+LINE CONSTANTS
+METRIC
+ 1 .2 .273 4 1.7653 0. 39. 20.
+ 2 .2 .273 4 1.7653 30. 39. 20.
+ 3 .392 .0585 4 3.1750 2.3 27.5 8.5 50.8 45. 4
+ 4 .392 .0585 4 3.1750 32.3 27.5 8.5 50.8 45. 4
+BLANK card ending all conductor cards of embedded "LINE CONSTANTS" data case
+ 100. 5000. { Transient frequency } 375.
+ 100. 50. { Power frequency } 375.
+ 100. 5. { Logarithmic looping } 375. 6 13
+BLANK card ending frequency cards of embedded "LINE CONSTANTS" data case
+BLANK card ending "LINE CONSTANTS" data cases
+$PUNCH, dc60a.pch ! { Create file of branch cards that is used by DC-61
+C -1BUSA-1BUSB-1 4.66135E-03 1.51343E-03 1 1 2 2 4
+C 1.24062832E+01 1.36478386E+02 2.69566232E-04 2.96542998E-03 5.00000000E+01
+C 0.00000E+00 2.78943E+03 8.96815E-01 0.00000E+00 2.82127E+02 1.03185E-01
+C 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+C -1BUSA-2BUSB-2 7.53874E-03 1.28352E-03 2 2 2 2 4
+C 5.24979345E-01 5.57653032E+01 2.98359630E-05 3.16928949E-03 5.00000000E+01
+C 0.00000E+00 4.32886E+04 9.70952E-01 0.00000E+00 7.80994E+02 2.90477E-02
+C 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+C -1BUSA-3BUSB-3 3.02741E-03 1.25731E-03 3 3 2 2 4
+C 1.32033703E-01 1.34020415E+02 1.21011536E-06 1.22832398E-03 5.00000000E+01
+C 0.00000E+00 1.55166E+05 8.17954E-01 0.00000E+00 6.28350E+03 1.82046E-01
+C 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+C -1BUSA-4BUSB-4 2.78022E-03 1.25695E-03 4 4 2 2 4
+C 1.32366981E-01 1.45869410E+02 1.02314498E-06 1.12751348E-03 5.00000000E+01
+C 0.00000E+00 1.68593E+05 8.00343E-01 0.00000E+00 6.82607E+03 1.99657E-01
+C 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+C 8.71196E-01 0.00000E+00-6.82907E-01 0.00000E+00 1.00000E+00 0.00000E+00
+C -4.17499E-01 0.00000E+00
+C 8.83886E-01 0.00000E+00 5.54912E-01 0.00000E+00 4.08289E-01 0.00000E+00
+C 1.00000E+00 0.00000E+00
+C 1.00000E+00 0.00000E+00-9.54437E-01 0.00000E+00-3.66121E-01 0.00000E+00
+C 8.12296E-02 0.00000E+00
+C 9.95383E-01 0.00000E+00 1.00000E+00 0.00000E+00-1.44179E-01 0.00000E+00
+C -2.87785E-01 0.00000E+00
+C 1.37541E-01 0.00000E+00-1.35060E-01 0.00000E+00 6.63012E-01 0.00000E+00
+C -3.22845E-01 0.00000E+00
+C 1.37175E-01 0.00000E+00 1.05171E-01 0.00000E+00 2.58426E-01 0.00000E+00
+C 7.23501E-01 0.00000E+00
+C 3.80344E-01 0.00000E+00-4.21913E-01 0.00000E+00-5.68095E-01 0.00000E+00
+C 1.36871E-01 0.00000E+00
+C 3.80607E-01 0.00000E+00 4.48514E-01 0.00000E+00-2.39474E-01 0.00000E+00
+C -4.94318E-01 0.00000E+00
+C The preceding [Tv] and [Ti] became dated 27 November 2000 when wide
+C format 3E26.18 replaced the preceding narrow 6E12.5 as follows:
+C NO IMAGINARY PART { Read big paragraph about this in April, 2001, newsletter
+C 8.7119547363418204E-01 -6.8290399916049649E-01 1.0000000000000000E+00
+C -4.1751471137169216E-01
+C 8.8388614757606232E-01 5.5490882086169024E-01 4.0830470329277252E-01
+C 1.0000000000000000E+00
+C 1.0000000000000000E+00 -9.5443745577162542E-01 -3.6612132519723661E-01
+C 8.1233987662551091E-02
+C 9.9538310340828784E-01 1.0000000000000000E+00 -1.4418465250059978E-01
+C -2.8778382559374205E-01
+C 1.3754116813200981E-01 -1.3505887318129409E-01 6.6300444003574899E-01
+C -3.2285375114835768E-01
+C 1.3717544529936490E-01 1.0517024919034780E-01 2.5843487930520492E-01
+C 7.2349433296321430E-01
+C 3.8034372781882003E-01 -4.2191352219870149E-01 -5.6808980138853893E-01
+C 1.3687783149931779E-01
+C 3.8060712761124860E-01 4.4851503525080577E-01 -2.3948114907845639E-01
+C -4.9431125919891056E-01
+BLANK card ending "SEMLYEN SETUP" data cases
+BEGIN NEW DATA CASE
+C 2nd of 3 SEMLYEN SETUP data cases illustrates use for cables. First,
+C use the old, original CABLE CONSTANTS. The cable is 3-phase, so a total
+C of 6 conductors. Added 27 January 2001
+SEMLYEN SETUP
+$ERASE
+BRANCH SEND1 REC1 SEND2 REC2 SEND3 REC3 SEND4 REC4 SEND5 REC5 SEND6 REC6
+TOLERANCES 10 5000. { Illustration only; value of FMED actually unchanged
+ 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous data
+CABLE CONSTANTS
+ 2 -1 3 0 0 0 0 0 0 0 0 0
+ 2 2 2
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 2.500 0.0 2.730 0.0 2.960 0.0
+ 100. 50.E02 90.1
+ 100. 60.000 90.1
+ 100. 10. 6 10 90.1
+BLANK card ending frequency cards of "CABLE CONSTANTS" data
+BLANK card ending CABLE CONSTANTS data cases
+C $PUNCH { Display the Semlyen branch cards that have been created
+C The preceding was bad because cards of this 2nd subcase ended up
+C in the disk file of the 1st, which then caused trouble (KILL
+C termination) during use of DC-61. Solve this problem by naming
+C the output of this 2nd subcase, even though it is not used by
+C subsequent data case
+$PUNCH, dc60b.pch ! { Create file of branch cards separate from 1st subcase
+BLANK card ending SEMLYEN SETUP data cases
+BEGIN NEW DATA CASE
+C 3rd of 3 SEMLYEN SETUP data cases illustrates use for cables. This is
+C identical to the preceding subcase except CABLE CONSTANTS has been
+C replaced by newer CABLE PARAMETERS. Added 27 January 2001
+SEMLYEN SETUP
+$ERASE
+BRANCH SEND1 REC1 SEND2 REC2 SEND3 REC3 SEND4 REC4 SEND5 REC5 SEND6 REC6
+TOLERANCES 10 5000. { Illustration only; value of FMED actually unchanged
+ 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous data
+CABLE PARAMETERS { This 1 line is the only difference from preceding data case
+ 2 -1 3 0 0 0 0 0 0 0 0 0
+ 2 2 2
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 2.500 0.0 2.730 0.0 2.960 0.0
+ 100. 50.E02 90.1
+ 100. 60.000 90.1
+ 100. 10. 6 10 90.1
+BLANK card ending frequency cards of CABLE PARAMETERS data
+BLANK card ending "CABLE PARAMETERS" data cases
+$PUNCH { Display the Semlyen branch cards that have been created
+BLANK card ending SEMLYEN SETUP data cases
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+
+BEGIN NEW DATA CASE
+C BENCHMARK DC-60 (DC-63 of "M39." vintage)
+C Generate Semlyen frequency-dependent branch cards for DC-61 simulation.
+C This is for an overhead transmission line of 4 phases from South Africa.
+C There are 2 ground wires that are not eliminated, followed by two phase
+C wire bundles of 4 individual conductors each (automatic bundling option)
+C Solution changes beginning 15 Oct 1988 due to Mustafa Kizilcay changes
+C This is file prior to 23 Oct 1990 when Mustafa changed answers again.
+SEMLYEN SETUP
+$ERASE
+BRANCH BUSA-1BUSB-1BUSA-2BUSB-2BUSA-3BUSB-3BUSA-4BUSB-4
+C 345678901234567890123456
+C 50 100 2 31 0 1 ???? WSMWSM. SPY PLOT dies in TDFIT. See TODO
+ 50 100 2 1 0 1 { 27 Sept 1987 abandon SPY PLOT try
+C 150 150 2 1 0 1 { Modify preceding for Oct, 1990 (Mustafa)
+LINE CONSTANTS
+METRIC
+ 1 .2 .273 4 1.7653 0. 39. 20.
+ 2 .2 .273 4 1.7653 30. 39. 20.
+ 3 .392 .0585 4 3.1750 2.3 27.5 8.5 50.8 45. 4
+ 4 .392 .0585 4 3.1750 32.3 27.5 8.5 50.8 45. 4
+BLANK card ending all conductor cards of embedded "LINE CONSTANTS" data case
+ 100. 5000. { Transient frequency } 375.
+ 100. 50. { Power frequency } 375.
+ 100. 5. { Logarithmic looping } 375. 6 13
+BLANK card ending frequency cards of embedded "LINE CONSTANTS" data case
+BLANK card ending "LINE CONSTANTS" data cases
+$PUNCH
+C -1BUSA-1BUSB-1 4.66135E-03 1.51343E-03 1 1 2 2 4
+C 2.48913100E+01 1.34761598E+02 0.00000000E+00 2.97765695E-03 5.00000000E+01
+C 0.00000E+00 2.78943E+03 8.96815E-01 0.00000E+00 2.82127E+02 1.03185E-01
+C 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+C -1BUSA-2BUSB-2 7.53874E-03 1.28352E-03 2 2 2 2 4
+C 5.22828256E+00 5.55221551E+01 0.00000000E+00 3.16942993E-03 5.00000000E+01
+C 0.00000E+00 4.32886E+04 9.70952E-01 0.00000E+00 7.80994E+02 2.90477E-02
+C 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+C -1BUSA-3BUSB-3 3.02741E-03 1.25731E-03 3 3 2 2 4
+C 5.31735791E+01 1.23020566E+02 0.00000000E+00 1.22832457E-03 5.00000000E+01
+C 0.00000E+00 1.55166E+05 8.17954E-01 0.00000E+00 6.28350E+03 1.82046E-01
+C 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+C -1BUSA-4BUSB-4 2.78022E-03 1.25695E-03 4 4 2 2 4
+C 6.42684771E+01 1.30948331E+02 0.00000000E+00 1.12751395E-03 5.00000000E+01
+C 0.00000E+00 1.68593E+05 8.00343E-01 0.00000E+00 6.82607E+03 1.99657E-01
+C 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+C 8.71196E-01 0.00000E+00-6.82907E-01 0.00000E+00 1.00000E+00 0.00000E+00
+C -4.17499E-01 0.00000E+00
+C 8.83886E-01 0.00000E+00 5.54912E-01 0.00000E+00 4.08289E-01 0.00000E+00
+C 1.00000E+00 0.00000E+00
+C 1.00000E+00 0.00000E+00-9.54437E-01 0.00000E+00-3.66121E-01 0.00000E+00
+C 8.12296E-02 0.00000E+00
+C 9.95383E-01 0.00000E+00 1.00000E+00 0.00000E+00-1.44179E-01 0.00000E+00
+C -2.87785E-01 0.00000E+00
+C 1.37541E-01 0.00000E+00-1.35060E-01 0.00000E+00 6.63012E-01 0.00000E+00
+C -3.22845E-01 0.00000E+00
+C 1.37175E-01 0.00000E+00 1.05171E-01 0.00000E+00 2.58426E-01 0.00000E+00
+C 7.23501E-01 0.00000E+00
+C 3.80344E-01 0.00000E+00-4.21913E-01 0.00000E+00-5.68095E-01 0.00000E+00
+C 1.36871E-01 0.00000E+00
+C 3.80607E-01 0.00000E+00 4.48514E-01 0.00000E+00-2.39474E-01 0.00000E+00
+C -4.94318E-01 0.00000E+00
+BLANK card ending "SEMLYEN SETUP" data cases
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc61.dat b/benchmarks/dc61.dat
new file mode 100644
index 0000000..981de3e
--- /dev/null
+++ b/benchmarks/dc61.dat
@@ -0,0 +1,203 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-61 (DC-64 of "M39." vintage)
+C South African simulation uses Semlyen line representation punched by DC-60
+C Compare this 2-exponential simulation with high-order Hauer one of DC-62.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+POWER FREQUENCY, 50.,
+C PEAK VOLTAGE MONITOR { Original request is replaced by following 10 lines:
+C Columns 41-48 is taken to be a limit on node voltage. If this is exceeded,
+C ATP will halt. Note that keying "1" for MAXVLT in columns 33-40 is the same
+C as leaving the field blank. The default is "1", meaning a request for peak
+C node voltage. The alternate value "2" would be a request for peak branch
+C voltage. For HALTNV use, peak node voltage is required. As for the value
+C 1.E+300, this is close to the 32-bit Intel limit for floating-point math.
+C The limit is about 1.E+308. For more, see the 4th subcase of DC-37. WSM.
+C 3456789012345678901234567890123456789012345678
+C Ruler for following card: MAXVLT HALTNV { Format is: ( 32X, I8, E8.0 )
+PEAK VOLTAGE MONITOR 1 1.E300 { HALTNV use begins 9 Jan 2011
+ .000010 .020 50. 50.
+ 1 5 1 1 1 -1
+ 5 5 20 20 100 100 1000 1000
+ SA-3 BUSA-3 .1260.75
+ SA-4 BUSA-4 .1260.75
+ BUSA-1 2. .03
+ BUSA-2 2. .03
+ BUSA-3 FIL1 .1 47.12
+ FIL1 .1 90.76
+ FIL1 3. 74.24
+ FIL1 6.166.94 94.25
+ FIL1 12.314.16 11.06
+ FIL1 12.314.16 5.87
+ FIL2 .01 1021.
+ FIL2 .1 14.14
+ BUSA-4 FIL3 .1 47.12
+ FIL3 FIL4 .1 90.76
+ FIL3 FIL4 3. 74.24
+ FIL3 FIL4 6.166.94 94.25
+ FIL3 FIL4 12.314.16 11.06
+ FIL3 FIL4 12.314.16 5.87
+ FIL4 .01 1021.
+ FIL4 .01 14.14
+C &&&&&&&&&&&&&&&&& BEGIN LUNIT7 CARDS PUNCHED BY DC-63 (AUG. 1983) &&&&
+C L= 233.0MILES, RHO= 100.0, SS FREQ= 50.00, NSS=0, KFIT= 2, KPS=0, KYC= 1
+C METRIC
+C 1 .2 .273 4 1.7653 0. 39. 20.
+C 2 .2 .273 4 1.7653 30. 39. 20.
+C 3 .392 .0585 4 3.1750 2.3 27.5 8.5 50.8 45.
+C 4 .392 .0585 4 3.1750 32.3 27.5 8.5 50.8 45.
+C
+C 100. 5000. 1 375.
+C 100. 50. 1 375.
+C 100. 5. 1 375. 6 13
+C
+C -1BUSA-1BUSB-1 0.46613E-02 0.15134E-02 1 1 2 2 4
+C 0.12406072E+02 0.13647619E+03 0.26956084E-03 0.29653736E-02 0.50000000E+02
+C 0.00000E+00 0.27895E+04 0.89682E+00 0.00000E+00 0.28213E+03 0.10318E+00
+C 0.00000E+00 0.10000E+01 0.00000E+00 0.00000E+00 0.10000E+01 0.00000E+00
+C -1BUSA-2BUSB-2 0.75387E-02 0.12835E-02 2 2 2 2 4
+C 0.52771188E+00 0.55766835E+02 0.29991264E-04 0.31693770E-02 0.50000000E+02
+C 0.00000E+00 0.43289E+05 0.97097E+00 0.00000E+00 0.77845E+03 0.29034E-01
+C 0.00000E+00 0.10000E+01 0.00000E+00 0.00000E+00 0.10000E+01 0.00000E+00
+C -1BUSA-3BUSB-3 0.30274E-02 0.12573E-02 3 3 2 2 4
+C 0.13205030E+00 0.13401800E+03 0.12102672E-05 0.12283015E-02 0.50000000E+02
+C 0.00000E+00 0.15517E+06 0.81796E+00 0.00000E+00 0.62830E+04 0.18204E+00
+C 0.00000E+00 0.10000E+01 0.00000E+00 0.00000E+00 0.10000E+01 0.00000E+00
+C -1BUSA-4BUSB-4 0.27802E-02 0.12569E-02 4 4 2 2 4
+C 0.13237081E+00 0.14586679E+03 0.10231724E-05 0.11274909E-02 0.50000000E+02
+C 0.00000E+00 0.16860E+06 0.80035E+00 0.00000E+00 0.68259E+04 0.19965E+00
+C 0.00000E+00 0.10000E+01 0.00000E+00 0.00000E+00 0.10000E+01 0.00000E+00
+C 0.87120E+00 0.00000E+00-0.68291E+00 0.00000E+00 0.10000E+01 0.00000E+00
+C -0.41750E+00 0.00000E+00
+C 0.88389E+00 0.00000E+00 0.55491E+00 0.00000E+00 0.40829E+00 0.00000E+00
+C 0.10000E+01 0.00000E+00
+C 0.10000E+01 0.00000E+00-0.95444E+00 0.00000E+00-0.36612E+00 0.00000E+00
+C 0.81230E-01 0.00000E+00
+C 0.99538E+00 0.00000E+00 0.10000E+01 0.00000E+00-0.14418E+00 0.00000E+00
+C -0.28779E+00 0.00000E+00
+C 0.13754E+00 0.00000E+00-0.13506E+00 0.00000E+00 0.66301E+00 0.00000E+00
+C -0.32285E+00 0.00000E+00
+C 0.13718E+00 0.00000E+00 0.10517E+00 0.00000E+00 0.25843E+00 0.00000E+00
+C 0.72350E+00 0.00000E+00
+C 0.38034E+00 0.00000E+00-0.42191E+00 0.00000E+00-0.56809E+00 0.00000E+00
+C 0.13687E+00 0.00000E+00
+C 0.38061E+00 0.00000E+00 0.44851E+00 0.00000E+00-0.23947E+00 0.00000E+00
+C -0.49432E+00 0.00000E+00
+C &&&&&&&&&&&&&&&&& END LUNIT7 CARDS PUNCHED BY DC-63 &&&&&&&&
+C Preceding branch cards exist as non-comment data until 27 November 2000
+C when they are being replaced by more modern $INCLUDE use that makes
+C reference to cards punched by preceding DC-60:
+$INCLUDE, dc60a.pch, ! { Exclamation point to hold lower case is tolerated
+C In fact, it does nothing beginning 28 January 2001
+C At the same time, output of SEMLYEN SETUP is changing so [Tv] and [Ti]
+C use wide rather than preceding narrow format. But that newer data is
+C documented by output of DC-60, so need not be documented here.
+ TOWER 2.
+ BUSB-1 2. .03
+ BUSB-2 2. .03
+BLANK card ends all branch cards
+ BUSB-3TOWER .000995 1. 3
+BLANK cards ends all switch cards (here, just one, representing the fault)
+14SA-3 533000. 50. 0.0 -1.
+14SA-4 533000. 50. 180. -1.
+BLANK card ends source cards
+C Total network loss P-loss by summing injections = 1.227475331932E+07
+C 1st inject: SA-3 533000. 533000. 22.124947951506 1512.2473010922
+C 1st inject: 0.0 0.0 1512.0854428037 89.1617037
+C Last inject: SA-4 -533000. 533000. -23.93416394087 1518.1059386521
+C Last inject: .6527332453E-10 180.00000 -1517.917256232 -90.9033516
+C
+C Step Time BUSB-3 FIL2 TOWER FIL4 FIL3
+C TOWER
+C
+C BUSB-1 BUSA-2 BUSA-1 BUSA-4 BUSA-3
+C
+C 0 0.0 .101427E7 0.0 0.0 630.561229 3942.45992
+C -4.6091835 1.25763103 -3.3035273 -928794.53 927274.067
+C 1 .1E-4 .1014316E7 0.0 0.0 630.452909 3941.48093
+C -5.7370041 5.05435474 -4.8499099 -928814.11 927285.865
+ 1
+C Last step begins: 2000 .02 0.0 0.0 -4129.0322 3721.27842 -19338.153
+C Last step begins: 1060.61608 -481.80296 -509.22959 -915751.91 163602.568
+C Variable maxima : .1014355E7 0.0 5946.09635 40005.6129 123962.984
+C Variable maxima : 9268.51692 4258.29012 14305.2037 .1049562E7 927287.754
+C Times of maxima : .4E-4 0.0 .00723 .00952 .00505
+C Times of maxima : .00102 .00227 .00227 .01071 .2E-4
+ PRINTER PLOT
+ 2One section of 375 km.
+ 144 .6 0.0 7.0 BUSA-2 { Plot limits: (-0.647, 2.660)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 2nd of two subcases is the same as the preceding subcase except for one
+C change: the addition of "Derive [Ti] from [Tv]" immediately following
+C the Semlyen branch cards. The answers change a little. Even the limits
+C on the PRINTER PLOT are different. Date of addition: 11 December 2000.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+POWER FREQUENCY, 50.,
+PEAK VOLTAGE MONITOR
+ .000010 .020 50. 50.
+ 1 5 1 1 1 -1
+ 5 5 20 20 100 100 1000 1000
+ SA-3 BUSA-3 .1260.75
+ SA-4 BUSA-4 .1260.75
+ BUSA-1 2. .03
+ BUSA-2 2. .03
+ BUSA-3 FIL1 .1 47.12
+ FIL1 .1 90.76
+ FIL1 3. 74.24
+ FIL1 6.166.94 94.25
+ FIL1 12.314.16 11.06
+ FIL1 12.314.16 5.87
+ FIL2 .01 1021.
+ FIL2 .1 14.14
+ BUSA-4 FIL3 .1 47.12
+ FIL3 FIL4 .1 90.76
+ FIL3 FIL4 3. 74.24
+ FIL3 FIL4 6.166.94 94.25
+ FIL3 FIL4 12.314.16 11.06
+ FIL3 FIL4 12.314.16 5.87
+ FIL4 .01 1021.
+ FIL4 .01 14.14
+$INCLUDE, dc60a.pch, { This is normal use, without any "!" (see subcase 2)
+Derive [Ti] from [Tv]
+ TOWER 2.
+ BUSB-1 2. .03
+ BUSB-2 2. .03
+BLANK card ends all branch cards
+ BUSB-3TOWER .000995 1. 3
+BLANK cards ends all switch cards (here, just one, representing the fault)
+14SA-3 533000. 50. 0.0 -1.
+14SA-4 533000. 50. 180. -1.
+BLANK card ends source cards
+C First 16 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time BUSB-3 FIL2 TOWER FIL4 FIL3 FIL1 BUSB-3 BUSB-4 BUSB-2
+C TOWER
+C
+C BUSB-1 BUSA-2 BUSA-1 BUSA-4 BUSA-3 SA-3 SA-4 BUSB-3
+C TOWER
+C 0 0.0 .1009903E7 0.0 0.0 625.729384 3912.27257 -3290.8384 .1009903E7 -.100856E7 4.71090545
+C -4.7315816 1.50363292 -3.019058 -921677.25 923494.094 533000. -533000. 0.0
+C 1 .1E-4 .1009922E7 0.0 0.0 625.744428 3912.80237 -3291.3514 .1009922E7 -.100858E7 4.60636774
+C -4.6168248 2.20907585 -3.8531833 -921692.03 923507.81 532997.37 -532997.37 0.0
+C 2 .2E-4 .1009931E7 0.0 0.0 625.757165 3913.34087 -3291.8771 .1009931E7 -.100859E7 4.53586824
+C -4.5389958 2.951526 -4.73104 -921697.57 923512.279 532989.479 -532989.48 0.0
+ 1
+C 2000 .02 0.0 0.0 -4082.6074 3506.39056 -19843.969 33487.4084 -4082.6074 -994315.82 667.210123
+C 1019.1604 -477.59394 -495.04968 -910823.4 166982.83 533000. -533000. -2041.3037
+C
+C Overall simulation peak node voltage = 1.27438708E+06 occurred at bus "BUSB-4" at time [sec] = 9.42000000E-03
+C Extrema of output variables follow. Order and column positioning are the same as for the preceding time-step loop output.
+C Variable maxima : .1009931E7 0.0 5887.54564 39979.7091 122521.51 252007.816 .1009931E7 .1274387E7 5514.37962
+C 8875.03104 4249.33 13984.8846 .1041678E7 923512.279 533000. 533000. 2943.77282
+C Times of maxima : .2E-4 0.0 .00723 .00952 .00505 .00848 .2E-4 .00942 .00102
+C .00102 .00227 .00227 .01071 .2E-4 0.0 .01 .00723
+C Variable minima : 0.0 0.0 -7105.8822 -35654.766 -134500.78 -375615.01 -7105.8822 -.113035E7 -7267.3484
+C -11822.652 -1785.594 -1816.5115 -921697.57 -997977.99 -533000. -533000. -3552.9411
+C Times of minima : .00101 0.0 .01463 .01069 .00608 .00575 .01463 .00101 .00101
+C .00101 .01494 .0147 .2E-4 .0087 .01 0.0 .01463
+ PRINTER PLOT
+ 2One section of 375 km.
+ 144 .6 0.0 7.0 BUSA-2 { Plot limits: (-0.650, 2.600)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc62.dat b/benchmarks/dc62.dat
new file mode 100644
index 0000000..d271db8
--- /dev/null
+++ b/benchmarks/dc62.dat
@@ -0,0 +1,321 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-62 (DC-66 of "M39." vintage)
+C Same four-phase South African line simulation as in DC-61, only here a
+C high-order Hauer model ("HAUER SETUP", no longer in program) is used.
+C 25 November 2000, WSM converts [Tv] and [Ti] from original use of
+C free-format for complex elements to wide format for real parts only.
+C This involves use of NO IMAGINARY PART as described in a newsletter
+C (April 2001 or later).
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+PEAK VOLTAGE MONITOR
+POWER FREQUENCY, 50.,
+ .000010 .020 50. 50.
+ 1 5 1 1 1 -1
+ 5 5 20 20 100 100 1000 200
+ SA-3 BUSA-3 .1260.75
+ SA-4 BUSA-4 .1260.75
+ BUSA-1 2. .03
+ BUSA-2 2. .03
+ BUSA-3 FIL1 .1 47.12
+ FIL1 .1 90.76
+ FIL1 3. 74.24
+ FIL1 6.166.94 94.25
+ FIL1 12.314.16 11.06
+ FIL1 12.314.16 5.87
+ FIL2 .01 1021.
+ FIL2 .1 14.14
+ BUSA-4 FIL3 .1 47.12
+ FIL3 FIL4 .1 90.76
+ FIL3 FIL4 3. 74.24
+ FIL3 FIL4 6.166.94 94.25
+ FIL3 FIL4 12.314.16 11.06
+ FIL3 FIL4 12.314.16 5.87
+ FIL4 .01 1021.
+ FIL4 .01 14.14
+C &&&&&&&&&&&&&&&&&&&&&& BEGIN UNIT-13 CARDS PUNCHED BY DC-65 .
+C #DATA FOR LINE SECTION 1: LENGTH = 0.2330096E+03
+C METRIC
+C 1 .2 .273 4 1.7653 0. 39. 20.
+C 2 .2 .273 4 1.7653 30. 39. 20.
+C 3 .392 .0585 4 3.1750 2.3 27.5 8.5 50.8 45.
+C 4 .392 .0585 4 3.1750 32.3 27.5 8.5 50.8 45.
+C
+C 100. 5000. 1 375.
+C 100. 50. 1 375.
+C 100. 5. 1 375. 9 21
+C
+-1BUSA-1BUSB-1 0.74300E-02 0.13695E-02 1 1 14 6 4
+ 0.24524677E+02 0.13280541E+03 0.00000000E+00 0.29592165E-02 0.50000000E+02 0
+ 0., 0.301017131E+03, 0.240474368E-01, 0., 0.911921587E+04, 0.866135515E+01
+ 0., 0.142378188E+03, 0.467439158E-01, 0., 0.597875358E+05, 0.157341296E+05
+ 0., 0.129882539E+04, 0.158087056E+00, 0., 0.602061446E+05, 0.350951915E+05
+ 0., 0.108960413E+05,-0.108480154E+02, 0., 0.600607627E+05,-0.503745837E+05
+ 1., 0.289467030E+05, 0.211443554E+00, -1.,-0.537514515E+04,-0.421452862E+01
+ 0., 0.178074955E+04, 0.254168820E+00, 0., 0.315149545E+04, 0.732001459E+00
+ 0., 0.239325862E+04,-0.862687875E-01, 0., 0.618967874E+05,-0.453102444E+03
+ 0., 0.619168960E+01,-0.420104801E-02, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.157926984E+03,-0.556405973E-03, 0., 0.179349724E+04,-0.616894886E-03
+ 0., 0.154682388E+05,-0.740819400E-03, 0., 0.298676381E+06,-0.131478773E-02
+-1BUSA-2BUSB-2 0.77523E-02 0.12698E-02 2 2 14 6 4
+ 0.51203735E+01 0.54502236E+02 0.00000000E+00 0.31183848E-02 0.50000000E+02 0
+ 0., 0.313224674E+02,-0.663044870E-02, 0., 0.210626498E+06, 0.432723088E+01
+ 0., 0.182100421E+02, 0.260951895E-01, 0., 0.849632630E+06, 0.182628050E-02
+ 0., 0.227829005E+05, 0.478630198E+00, 0., 0.102901020E+07,-0.212641132E-02
+ 0., 0.124533203E+06, 0.211022159E+02, 0., 0.157231418E+07, 0.281738783E-03
+ 0., 0.142701493E+06,-0.267953188E+02, 0., 0.181740797E+07,-0.719862890E-04
+ 1., 0.398474670E+05, 0.418428806E+00, -1.,-0.214066736E+05, 0.125874270E+00
+ 1., 0.151593680E+06, 0.515504958E+00, -1.,-0.147087464E+06, 0.267749108E+00
+ 0., 0.365121200E+01,-0.350144906E-02, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.249321282E+04,-0.431759968E-04, 0., 0.182369337E+06,-0.242606205E-04
+ 0., 0.239163482E+02,-0.406028697E-02, 0., 0.207918724E+06,-0.123123552E-03
+-1BUSA-3BUSB-3 0.32619E-02 0.12582E-02 3 3 14 6 4
+ 0.53536833E+02 0.12389964E+03 0.00000000E+00 0.12908552E-02 0.50000000E+02 0
+ 0., 0.134598777E+06,-0.150159946E-01, 0., 0.140301928E+07,-0.753366163E-01
+ 0., 0.284966044E+02, 0.819451304E-01, 0., 0.666744070E+07, 0.157059296E+04
+ 0., 0.272105388E+05, 0.213806667E+00, 0., 0.782363486E+07, 0.971629566E+04
+ 0., 0.272559469E+06,-0.223283773E+00, 0., 0.799352013E+07,-0.800863365E+06
+ 0., 0.361659615E+06, 0.100462472E+01, 0., 0.799483818E+07, 0.792080675E+06
+ 0., 0.491172730E+05,-0.165633449E+00, 0., 0.599908733E+07,-0.177051614E+03
+ 0., 0.792280597E+05, 0.366175685E+00, 0., 0.698913494E+07,-0.232733391E+04
+ 0., 0.115763918E+02,-0.117805658E-02, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.197441131E+04,-0.373045199E-04, 0., 0.181295123E+06, 0.445567784E-04
+ 0., 0.976839246E+02,-0.202948282E-02, 0., 0.208740876E+06,-0.616217575E-04
+-1BUSA-4BUSB-4 0.30402E-02 0.12587E-02 4 4 6 6 4
+ 0.64988120E+02 0.13246385E+03 0.00000000E+00 0.12025589E-02 0.50000000E+02 0
+ 0., 0.169333103E+03, 0.332803226E-01, 0., 0.566559087E+06, 0.730448580E+00
+ 0., 0.680693506E+02, 0.708523592E-01, 0., 0.490942013E+07,-0.111902264E+01
+ 0., 0.602799468E+05, 0.326699789E+00, 0., 0.528347745E+07, 0.957741589E+00
+ 0., 0.646378180E+01,-0.792079833E-03, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.142573596E+03,-0.117927457E-02, 0., 0.182764058E+06, 0.449937719E-04
+ 0., 0.578852181E+02,-0.104480206E-02, 0., 0.209333115E+06,-0.690541063E-04
+C ** TX MATRICES: FTX= 0.50000E+04
+C For historical reasons, let's document data that existed prior to 25 Nov
+C 2000. This former use of free-format is being replaced by the following
+C use of fixed format that was copied from newer JMarti [T] : 3E26.0
+C 0.87142042642E+00, 0.,-0.68364313402E+00, 0., 0.99967944506E+00, 0.
+C -0.42048418843E+00, 0.,
+C 0.88407538153E+00, 0., 0.55548365361E+00, 0., 0.41119257618E+00, 0.
+C 0.99968059968E+00, 0.,
+C 0.99996548754E+00, 0.,-0.95428680565E+00, 0.,-0.36537856597E+00, 0.
+C 0.81709827065E-01, 0.,
+C 0.99535953259E+00, 0., 0.99993400837E+00, 0.,-0.14508479886E+00, 0.
+C -0.28684188937E+00, 0.,
+C 0.13749143884E+00, 0.,-0.13487437424E+00, 0., 0.66382281216E+00, 0.
+C -0.32097010954E+00, 0.,
+C 0.13713603525E+00, 0., 0.10502753896E+00, 0., 0.25667806258E+00, 0.
+C 0.72423739519E+00, 0.,
+C 0.38040412741E+00, 0.,-0.42207400039E+00, 0.,-0.56925331264E+00, 0.
+C 0.13593347464E+00, 0.,
+C 0.38065940953E+00, 0., 0.44863255553E+00, 0.,-0.23815031667E+00, 0.
+C -0.49588955641E+00, 0.,
+NO IMAGINARY PART: { This allows us to omit the imaginary part, which is zero:
+ 0.87142042642E+00 -0.68364313402E+00 0.99967944506E+00
+ -0.42048418843E+00
+ 0.88407538153E+00 0.55548365361E+00 0.41119257618E+00
+ 0.99968059968E+00
+ 0.99996548754E+00 -0.95428680565E+00 -0.36537856597E+00
+ 0.81709827065E-01
+ 0.99535953259E+00 0.99993400837E+00 -0.14508479886E+00
+ -0.28684188937E+00
+ 0.13749143884E+00 -0.13487437424E+00 0.66382281216E+00
+ -0.32097010954E+00
+ 0.13713603525E+00 0.10502753896E+00 0.25667806258E+00
+ 0.72423739519E+00
+ 0.38040412741E+00 -0.42207400039E+00 -0.56925331264E+00
+ 0.13593347464E+00
+ 0.38065940953E+00 0.44863255553E+00 -0.23815031667E+00
+ -0.49588955641E+00
+C &&&&&&&&&&&&&&&&&&&&&& END UNIT-13 CARDS PUNCHED BY DC-65 .
+ TOWER 2.
+ BUSB-1 2. .03
+ BUSB-2 2. .03
+BLANK card ends all branch cards
+ BUSB-3TOWER .000995 1. 3
+BLANK cards ends all switch cards (here, just one, representing the fault)
+14SA-3 533000. 50. 0.0 -1.
+14SA-4 533000. 50. 180. -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C SA-3 |BUSA-3*
+C BUSA-3 |SA-3 * FIL1*BUSB-3*
+C SA-4 |BUSA-4*
+C BUSA-4 |SA-4 * FIL3*BUSB-4*
+C BUSA-1 |TERRA *BUSB-1*
+C BUSA-2 |TERRA *BUSB-2*
+C FIL1 |TERRA *TERRA *TERRA *TERRA *TERRA *BUSA-3*
+C FIL2 |TERRA *TERRA *
+C FIL3 |BUSA-4* FIL4* FIL4* FIL4* FIL4* FIL4*
+C FIL4 |TERRA *TERRA * FIL3* FIL3* FIL3* FIL3* FIL3*
+C BUSB-1 |TERRA *BUSA-1*
+C BUSB-2 |TERRA *BUSA-2*
+C BUSB-3 |BUSA-3*TOWER *
+C BUSB-4 |BUSA-4*
+C TOWER |TERRA *BUSB-3*
+C TERRA |BUSA-1*BUSA-2* FIL1* FIL1* FIL1* FIL1* FIL1* FIL2* FIL2*
+C --------------+------------------------------
+BLANK card ends source cards
+C Total network loss P-loss by summing injections = 1.427244164239E+07
+C 1st inject: SA-3 533000. 533000. 27.206416840329 1511.633587503
+C 1st inject: 0.0 0.0 1511.3887368079 88.9687335
+C Last inject: SA-4 -533000. 533000. -26.3487112737 1515.8296473689
+C Last inject: 6527332453E-10 180.0000 -1515.600628549 -90.9959866
+C
+C Step Time BUSB-3 FIL2 TOWER FIL4 FIL3
+C TOWER
+C
+C BUSB-1 BUSA-2 BUSA-1 BUSA-4 BUSA-3
+C
+C 0 0.0 .1012112E7 0.0 0.0 630.150593 3939.80139
+C 161.608804 147.910277 -155.53173 -928190.23 927091.892
+C 1 .1E-4 .1011754E7 0.0 0.0 638.819613 4046.20822
+C 186.778615 22.6361792 -114.24647 -927914.88 927042.528
+ 1
+C Last step begins: 2000 .02 0.0 0.0 -3274.1701 1954.38677 -19609.364
+C Last step begins: 250.022661 -61.141145 257.948281 -951899.68 138624.063
+C Overall simulation peak node voltage = 1.31694423E+06 occurred at bus "BUSB-4"
+C Variable maxima : .1012112E7 0.0 6501.36843 40746.7902 124200.262
+C Variable maxima : 8139.84047 3396.88809 18096.1397 .1056252E7 927119.833
+C Times of maxima : 0.0 0.0 .00101 .00951 .0024
+C Times of maxima : .00102 .0023 .00227 .01074 .9E-4
+C Final 5 maxima : .1056252E7 927119.833 533000. 533000. 3250.68422
+C Associated times : .01074 .9E-4 0.0 .01 .00101
+ PRINTER PLOT
+ 2One section of 375 km.
+ 144 .6 0.0 7.0 BUSB-3BUSB-4 { Axis limits: (-1.087, 1.012)
+ CALCOMP PLOT
+ 144 .7 0.0 7.0 BUSB-3BUSB-4
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases halts immediately following the illustration of 5-phase
+C Semlyen branch card input. To the data of the preceding real case we add
+C an artificial 5th phase that is a copy of the 4th. But both terminal
+C nodes are grounded, to illustrate that such use should be possible. As
+C for [Tv] and [Ti], they were artificially constructed by making column 5
+C a copy of column 4 and row 5 a copy of row 4. It is the interpretation of
+C these matrices that are being illustrated (it looks OK). WSM, 25 Nov 2000
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+PEAK VOLTAGE MONITOR
+POWER FREQUENCY, 50.,
+ .000010 .020 50. 50.
+ 1 5 1 1 1 -1
+ 5 5 20 20 100 100 1000 200
+ SA-3 BUSA-3 .1260.75
+ SA-4 BUSA-4 .1260.75
+ BUSA-1 2. .03
+ BUSA-2 2. .03
+ BUSA-3 FIL1 .1 47.12
+ FIL1 .1 90.76
+ FIL1 3. 74.24
+ FIL1 6.166.94 94.25
+ FIL1 12.314.16 11.06
+ FIL1 12.314.16 5.87
+ FIL2 .01 1021.
+ FIL2 .1 14.14
+ BUSA-4 FIL3 .1 47.12
+ FIL3 FIL4 .1 90.76
+ FIL3 FIL4 3. 74.24
+ FIL3 FIL4 6.166.94 94.25
+ FIL3 FIL4 12.314.16 11.06
+ FIL3 FIL4 12.314.16 5.87
+ FIL4 .01 1021.
+ FIL4 .01 14.14
+C &&&&&&&&&&&&&&&&&&&&&& BEGIN UNIT-13 CARDS PUNCHED BY DC-65 .
+C #DATA FOR LINE SECTION 1: LENGTH = 0.2330096E+03
+C METRIC
+C 1 .2 .273 4 1.7653 0. 39. 20.
+C 2 .2 .273 4 1.7653 30. 39. 20.
+C 3 .392 .0585 4 3.1750 2.3 27.5 8.5 50.8 45.
+C 4 .392 .0585 4 3.1750 32.3 27.5 8.5 50.8 45.
+C
+C 100. 5000. 1 375.
+C 100. 50. 1 375.
+C 100. 5. 1 375. 9 21
+C
+-1BUSA-1BUSB-1 0.74300E-02 0.13695E-02 1 1 14 6 5
+ 0.24524677E+02 0.13280541E+03 0.00000000E+00 0.29592165E-02 0.50000000E+02 0
+ 0., 0.301017131E+03, 0.240474368E-01, 0., 0.911921587E+04, 0.866135515E+01
+ 0., 0.142378188E+03, 0.467439158E-01, 0., 0.597875358E+05, 0.157341296E+05
+ 0., 0.129882539E+04, 0.158087056E+00, 0., 0.602061446E+05, 0.350951915E+05
+ 0., 0.108960413E+05,-0.108480154E+02, 0., 0.600607627E+05,-0.503745837E+05
+ 1., 0.289467030E+05, 0.211443554E+00, -1.,-0.537514515E+04,-0.421452862E+01
+ 0., 0.178074955E+04, 0.254168820E+00, 0., 0.315149545E+04, 0.732001459E+00
+ 0., 0.239325862E+04,-0.862687875E-01, 0., 0.618967874E+05,-0.453102444E+03
+ 0., 0.619168960E+01,-0.420104801E-02, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.157926984E+03,-0.556405973E-03, 0., 0.179349724E+04,-0.616894886E-03
+ 0., 0.154682388E+05,-0.740819400E-03, 0., 0.298676381E+06,-0.131478773E-02
+-1BUSA-2BUSB-2 0.77523E-02 0.12698E-02 2 2 14 6 5
+ 0.51203735E+01 0.54502236E+02 0.00000000E+00 0.31183848E-02 0.50000000E+02 0
+ 0., 0.313224674E+02,-0.663044870E-02, 0., 0.210626498E+06, 0.432723088E+01
+ 0., 0.182100421E+02, 0.260951895E-01, 0., 0.849632630E+06, 0.182628050E-02
+ 0., 0.227829005E+05, 0.478630198E+00, 0., 0.102901020E+07,-0.212641132E-02
+ 0., 0.124533203E+06, 0.211022159E+02, 0., 0.157231418E+07, 0.281738783E-03
+ 0., 0.142701493E+06,-0.267953188E+02, 0., 0.181740797E+07,-0.719862890E-04
+ 1., 0.398474670E+05, 0.418428806E+00, -1.,-0.214066736E+05, 0.125874270E+00
+ 1., 0.151593680E+06, 0.515504958E+00, -1.,-0.147087464E+06, 0.267749108E+00
+ 0., 0.365121200E+01,-0.350144906E-02, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.249321282E+04,-0.431759968E-04, 0., 0.182369337E+06,-0.242606205E-04
+ 0., 0.239163482E+02,-0.406028697E-02, 0., 0.207918724E+06,-0.123123552E-03
+-1BUSA-3BUSB-3 0.32619E-02 0.12582E-02 3 3 14 6 5
+ 0.53536833E+02 0.12389964E+03 0.00000000E+00 0.12908552E-02 0.50000000E+02 0
+ 0., 0.134598777E+06,-0.150159946E-01, 0., 0.140301928E+07,-0.753366163E-01
+ 0., 0.284966044E+02, 0.819451304E-01, 0., 0.666744070E+07, 0.157059296E+04
+ 0., 0.272105388E+05, 0.213806667E+00, 0., 0.782363486E+07, 0.971629566E+04
+ 0., 0.272559469E+06,-0.223283773E+00, 0., 0.799352013E+07,-0.800863365E+06
+ 0., 0.361659615E+06, 0.100462472E+01, 0., 0.799483818E+07, 0.792080675E+06
+ 0., 0.491172730E+05,-0.165633449E+00, 0., 0.599908733E+07,-0.177051614E+03
+ 0., 0.792280597E+05, 0.366175685E+00, 0., 0.698913494E+07,-0.232733391E+04
+ 0., 0.115763918E+02,-0.117805658E-02, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.197441131E+04,-0.373045199E-04, 0., 0.181295123E+06, 0.445567784E-04
+ 0., 0.976839246E+02,-0.202948282E-02, 0., 0.208740876E+06,-0.616217575E-04
+-1BUSA-4BUSB-4 0.30402E-02 0.12587E-02 4 4 6 6 5
+ 0.64988120E+02 0.13246385E+03 0.00000000E+00 0.12025589E-02 0.50000000E+02 0
+ 0., 0.169333103E+03, 0.332803226E-01, 0., 0.566559087E+06, 0.730448580E+00
+ 0., 0.680693506E+02, 0.708523592E-01, 0., 0.490942013E+07,-0.111902264E+01
+ 0., 0.602799468E+05, 0.326699789E+00, 0., 0.528347745E+07, 0.957741589E+00
+ 0., 0.646378180E+01,-0.792079833E-03, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.142573596E+03,-0.117927457E-02, 0., 0.182764058E+06, 0.449937719E-04
+ 0., 0.578852181E+02,-0.104480206E-02, 0., 0.209333115E+06,-0.690541063E-04
+C -1FIVEA FIVEB 0.30402E-02 0.12587E-02 5 5 6 6 5
+-1 0.30402E-02 0.12587E-02 5 5 6 6 5
+ 0.64988120E+02 0.13246385E+03 0.00000000E+00 0.12025589E-02 0.50000000E+02 0
+ 0., 0.169333103E+03, 0.332803226E-01, 0., 0.566559087E+06, 0.730448580E+00
+ 0., 0.680693506E+02, 0.708523592E-01, 0., 0.490942013E+07,-0.111902264E+01
+ 0., 0.602799468E+05, 0.326699789E+00, 0., 0.528347745E+07, 0.957741589E+00
+ 0., 0.646378180E+01,-0.792079833E-03, 0., 0.100000000E+01, 0.000000000E+00
+ 0., 0.142573596E+03,-0.117927457E-02, 0., 0.182764058E+06, 0.449937719E-04
+ 0., 0.578852181E+02,-0.104480206E-02, 0., 0.209333115E+06,-0.690541063E-04
+C NO IMAGINARY PART: { This allows us to omit the imaginary part, which is zero:
+C The preceding declaration is not needed because the one in the 1st subcase
+C remains in effect. This is like a PRINTER PLOT declaration that way.
+C First of two transformation matrices is 5x5 [Tv]:
+ 0.87142042642E+00 -0.68364313402E+00 0.99967944506E+00
+ -0.42048418843E+00 -0.42048418843E+00
+ 0.88407538153E+00 0.55548365361E+00 0.41119257618E+00
+ 0.99968059968E+00 0.99968059968E+00
+ 0.99996548754E+00 -0.95428680565E+00 -0.36537856597E+00
+ 0.81709827065E-01 0.81709827065E-01
+ 0.99535953259E+00 0.99993400837E+00 -0.14508479886E+00
+ -0.28684188937E+00 -0.28684188937E+00
+ 0.99535953259E+00 0.99993400837E+00 -0.14508479886E+00
+ -0.28684188937E+00 -0.28684188937E+00 { End 5th row of [Tv]
+C 2nd of two transformation matrices is 5x5 [Ti]:
+ 0.13749143884E+00 -0.13487437424E+00 0.66382281216E+00
+ -0.32097010954E+00 -0.32097010954E+00
+ 0.13713603525E+00 0.10502753896E+00 0.25667806258E+00
+ 0.72423739519E+00 0.72423739519E+00
+ 0.38040412741E+00 -0.42207400039E+00 -0.56925331264E+00
+ 0.13593347464E+00 0.13593347464E+00
+ 0.38065940953E+00 0.44863255553E+00 -0.23815031667E+00
+ -0.49588955641E+00 -0.49588955641E+00
+ 0.38065940953E+00 0.44863255553E+00 -0.23815031667E+00
+ -0.49588955641E+00 -0.49588955641E+00 { End 5th row of [Ti]
+YES, IMAGINARY PART: { Illustrate optional return to default use of imaginary
+C The preceding has no effect for this data. But if the user wants to
+C cancel the NO IMAGINARY PART declaration of the first subcase, this
+C is the way to do it. Note such use would be required if old Semlyen
+C branch cards followed these newer ones having implied zeros.
+ TOWER 2.
+$STOP { Having illustrated 5-phase Semlyen data input (particularly [T]), halt
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc63.dat b/benchmarks/dc63.dat
new file mode 100644
index 0000000..63b3cb5
--- /dev/null
+++ b/benchmarks/dc63.dat
@@ -0,0 +1,1135 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-63
+C Third of 4 hvdc simulations follows DC-1 and DC-2, only is much smaller.
+C The 2-pole representation of dc-2 is here reduced to one end only. It was
+C produced from DC-2 by using two batteries to represent the California end.
+C To compare with BPA's EMTP, this would be the 3rd of 4 subcases within DC-1.
+C Answers agree with BPA EMTP exactly until there is one time-step difference
+C on value closings between step 700 and 800. These should be equally valid:
+C Valve "II-2 " to "IICC " closing after 3.82000000E-02 sec.
+C Valve "III-2 " to "IIICC " closing after 3.82000000E-02 sec.
+C The original BPA VAX EMTP closing times for these were one time step later.
+C Appended as a subcase is the 4th hvdc simulation ---- a single-pole version.
+USE TPPLOT BEGIN { The first such declaration precedes the data for TPPLOT
+SET JULES=0 { Request no lines of labeling from .PL4 file comments (none)
+SET MWINDO=0 { Disable automatic windows (here, we define them manually)
+SET JULOFF=0 { Zero the Y-pixel offset to allow space for case title (none)
+SET NCHSUP=0 { Zero the bytes of super title labeling (no such line wanted)
+SET NUMTIT=0 { Zero the # of lines of case title (none wanted)
+PL4 { Access to plot of ongoing simulation is via this basic command
+RAM { Special new (September, 1994) option to apply TPPLOT to EMTP
+# 1 2 3 4 6 8 12 13 14 { Name 9 curves to be plotted, by #
+WINDOW { The gateway to window plotting is the window command
+W1 { Begin the specification of window number 1 (top of 3 windows)
+Voltages somewhere
+kV
+-200 200 { <CR> is the same as a pair of zeros for Y-min and Y-max: auto scale
+2 .5 { Window height and separation in inches, respectively
+8 8 { Color numbers of outer and inner grids for window, respectively
+2 3 { Number of units on Y-axis and number of Y-axis numbers, respectively
+3 { Number of curves to be plotted in this window
+1 2 3 { Numbers of curves to be plotted (in order of selection by # command)
+W2 { Begin the definition of window number 2 (the middle of 3 windows)
+Voltages somewhere else
+kV
+-500 500 { Non-blank means these are manually-specified Y-axis limits
+2 .5 { Window height and separation in inches, respectively
+0 0 { Zero grid colors will suppress outer and inner grids, respectively
+4 2 { Number of units on Y-axis and number of Y-axis numbers, respectively
+3 { Number of curves to be plotted in this window
+4 5 6 { Numbers of the curves to be plotted (in order of selection by # command)
+W4 { Begin the specification of window number 4 (bottom of 3 windows)
+Currents in thyristors
+amps
+-1 1 { Non-blank means these are manually-specified Y-axis limits
+2 0.2 { Window height and separation in inches, respectively
+2 0 { Color numbers of outer and inner grids for window, respectively
+2 1 { Number of units on Y-axis and number of Y-axis numbers, respectively
+3 { Number of curves to be plotted in this window number 3
+7 8 9 { Numbers of curves to be plotted (in order of selection by # command)
+SHOW W { Display parameters associated with the 3 windows just defined
+END { Exit the WINDOW command; return to the basic plot prompt
+COLOR { Request to change pen colors to avoid weak ones for pens 7, 8, 9
+1 9 { Beginning index and length of color vector to be redefined
+14 10 15 12 13 11 14 10 15 { Vector of color numbers (1st 6 are default)
+ { <CR> bypasses radii of marking disks (use default values of zero)
+ { <CR> bypasses pixel widths of curves (use default values of unity)
+ROLL { After next plot is complete, curves will be extended automatically
+TIME 0 .020 { Define the page size to cover just over 1 cycle of time
+USE TPPLOT END { The 2nd such declaration ends the data for TPPLOT
+C For good demo of preceding ROLLing plot, Tmax really should be increased.
+C For a second use of ROLLing (real-time) plotting, see windowless DC-1.
+ .000050 .050 { Note Tmax here is only 2-1/2 pages of the ROLLing plot.
+ 1 1 1 3 1 -1
+ 5 5 20 20 100 100
+C DC LINE WITH 12-PULSE RECTIFIER/INVERTER OPERATION USING TACS ------------
+TACS HYBRID CASE FOR DC TERMINAL SIMULATION
+C * * * * * * * GRID TIMING VOLTAGES * * * * * * * * * * * * * *
+ PHA-BS +GENAS -GENBS
+ PHB-AS +GENBS -GENAS
+ PHB-CS +GENBS -GENCS
+ PHC-BS +GENCS -GENBS
+ PHC-AS +GENCS -GENAS
+ PHA-CS +GENAS -GENCS
+ 4 +NOT13
+ 9 +NOT18
+ 14 +NOT23
+ 19 +NOT28
+ 24 +NOT3
+ 29 +NOT8
+C ********* ZERO-ORDER BLOCK ON "TIMEX" FOR LIMIT OF 2 CYCLES *******
+C
+ TIMER +TIMEX 0.0 33.3-3
+90GENAS
+90GENBS
+90GENCS
+C $$$$$$ DECREASING RAMP FUNCTION FOR IGNITION ANGLE DELAY $$$$$$$$$$$$
+88ALPHAR -.1045045 * TIMER + 4.17-3
+C
+C -------------- RECTIFIER CONTROL LOGIC FOLLOWS --------------------
+88SA-B 52 +UNITY 0.0 PHA-BS
+88F1S 54 +SA-B 0.0 ALPHAR
+88F1SII 4 .AND. F1S
+88NOT3 .NOT. F1SII
+88F1SI 54 +F1SII 1.4E-3
+88SB-A 52 +UNITY 0.0 PHB-AS
+88F4S 54 +SB-A 0.0 ALPHAR
+88F4SII 9 .AND. F4S
+88NOT8 .NOT. F4SII
+88F4SI 54 +F4SII 1.4E-3
+88SB-C 52 +UNITY 0.0 PHB-CS
+88F3S 54 +SB-C 0.0 ALPHAR
+88F3SII 14 .AND. F3S
+88NOT13 .NOT. F3SII
+88F3SI 54 +F3SII 1.4E-3
+88SC-B 52 +UNITY 0.0 PHC-BS
+88F6S 54 +SC-B 0.0 ALPHAR
+88F6SII 19 .AND. F6S
+88NOT18 .NOT. F6SII
+88F6SI 54 +F6SII 1.4E-3
+88SC-A 52 +UNITY 0.0 PHC-AS
+88F5S 54 +SC-A 0.0 ALPHAR
+88F5SII 24 .AND. F5S
+88NOT23 .NOT. F5SII
+88F5SI 54 +F5SII 1.4E-3
+88SA-C 52 +UNITY 0.0 PHA-CS
+88F2S 54 +SA-C 0.0 ALPHAR
+88F2SII 29 .AND. F2S
+88NOT28 .NOT. F2SII
+88F2SI 54 +F2SII 1.4E-3
+C $$$$$$ INCREASING RAMP FUNCTION FOR IGNITION ANGLE DELAY $$$$$$$$$$$$
+C
+88ALPHAI +.076276 * TIMER + 4.17-3
+C
+C DELAY FIRING FOR BYPASS VALVES
+C
+88FIRE - UNITY
+77PHA-BS +166.1710
+77PHB-AS -166.1710
+77PHB-CS -332.3420
+77PHC-BS +332.3420
+77PHC-AS +166.1710
+77PHA-CS -166.1710
+77FIRE -1.0
+C AC CIRCUIT OF POLE 4, CELILO
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS,
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE AND 1 MILE (1.6 KM) OF 230 KV LINE.
+BLANK card ending TACS initial conditions (and also all TACS data)
+ 0GENAS BIGEA4 .01
+ 0GENBS BIGEB4GENAS BIGEA4
+ 0GENCS BIGEC4GENAS BIGEA4
+ 0BIGEA4 .86 114. 2.46
+ 0BIGEB4 BIGEA4
+ 0BIGEC4 BIGEA4
+ 0 BIGEA4 1.18 114. 1.28
+ 0 BIGEB4 BIGEA4
+ 0 BIGEC4 BIGEA4
+ 0BIGEA413AC4 .02 1.56
+ 0BIGEB413BC4 BIGEA413AC4
+ 0BIGEC413CC4 BIGEA413AC4
+ 013AC4 HPAC4 40.
+ 0HPAC4 13AC4 5.5
+ 013BC4 HPBC4 13AC4 HPAC4
+ 0HPBC4 13BC4 HPAC4 13AC4
+ 013CC4 HPCC4 13AC4 HPAC4
+ 0HPCC4 13CC4 HPAC4 13AC4
+ 0HPAC4 3.9
+ 0HPBC4 HPAC4
+ 0HPCC4 HPAC4
+ 0 13AC4 .93 44. .95
+ 0 13BC4 13AC4
+ 0 13CC4 13AC4
+ 013AC4 11AC4 GENAS BIGEA4
+ 013BC4 11BC4 GENAS BIGEA4
+ 013CC4 11CC4 GENAS BIGEA4
+ 011AC4 .82 44. 1.33
+ 011BC4 11AC4
+ 011CC4 11AC4
+ 011AC4 AC6 GENAS BIGEA4
+ 011BC4 BC6 GENAS BIGEA4
+ 011CC4 CC6 GENAS BIGEA4
+ 011AC4 AC2 GENAS BIGEA4
+ 011BC4 BC2 GENAS BIGEA4
+ 011CC4 CC2 GENAS BIGEA4
+C
+C -------------------------------- GROUP 6, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0VI-1 VICA 3000.
+ 0VICA VI-1 1.0
+ 0VI-3 VICB VI-1 VICA
+ 0VICB VI-3 VICA VI-1
+ 0VI-5 VICC VI-1 VICA
+ 0VICC VI-5 VICA VI-1
+ 0VI-4 AN6C VI-1 VICA
+ 0AN6C VI-4 VICA VI-1
+ 0VI-6 AN6C VI-1 VICA
+ 0AN6C VI-6 VICA VI-1
+ 0VI-2 AN6C VI-1 VICA
+ 0AN6C VI-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0CEL4 VDA6 1200. .1
+ 0CEL4 VDB6 CEL4 VDA6
+ 0CEL4 VDC6 CEL4 VDA6
+ 0AN6C VDA6 CEL4 VDA6
+ 0AN6C VDB6 CEL4 VDA6
+ 0AN6C VDC6 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA6 VICA 1000.
+ 0VICA VDA6 .25
+ 0VDB6 VICB VDA6 VICA
+ 0VICB VDB6 VICA VDA6
+ 0VDC6 VICC VDA6 VICA
+ 0VICC VDC6 VICA VDA6
+ 0CEL4 CTH6C VDA6 VICA
+ 0CTH6C CEL4 VICA VDA6
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC6Y TXA6 .203 .7
+ 0BC6Y TXB6 AC6Y TXA6
+ 0CC6Y TXC6 AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA6C VDA6 .202 .717
+ 0TXB6C VDB6 TXA6C VDA6
+ 0TXC6C VDC6 TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA6 99300.
+52TXA6C TXB6C 82715. 68946.
+51TXB6 TXA6
+52TXB6C TXC6C
+51TXC6 TXA6
+52TXC6C TXA6C
+C
+C -------------------------------------------------------------------------
+C -------------------------------- GROUP 2, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0II-1 IICA VI-1 VICA
+ 0IICA II-1 VICA VI-1
+ 0II-3 IICB VI-1 VICA
+ 0IICB II-3 VICA VI-1
+ 0II-5 IICC VI-1 VICA
+ 0IICC II-5 VICA VI-1
+ 0II-4 AN2C VI-1 VICA
+ 0AN2C II-4 VICA VI-1
+ 0II-6 AN2C VI-1 VICA
+ 0AN2C II-6 VICA VI-1
+ 0II-2 AN2C VI-1 VICA
+ 0AN2C II-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN6C VDA2 CEL4 VDA6
+ 0AN6C VDB2 CEL4 VDA6
+ 0AN6C VDC2 CEL4 VDA6
+ 0AN2C VDA2 CEL4 VDA6
+ 0AN2C VDB2 CEL4 VDA6
+ 0AN2C VDC2 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA2 IICA VDA6 VICA
+ 0IICA VDA2 VICA VDA6
+ 0VDB2 IICB VDA6 VICA
+ 0IICB VDB2 VICA VDA6
+ 0VDC2 IICC VDA6 VICA
+ 0IICC VDC2 VICA VDA6
+ 0AN6C CTH2C VDA6 VICA
+ 0CTH2C AN6C VICA VDA6
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC2Y TXA2 .22 2.07
+ 0BC2Y TXB2 AC2Y TXA2
+ 0CC2Y TXC2 AC2Y TXA2
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA2C VDA2 .07 .8343
+ 0TXB2C VDB2 TXA2C VDA2
+ 0TXC2C VDC2 TXA2C VDA2
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA2 99300.
+52TXA2C NS2 47951. 23174.
+51TXB2 TXA2
+52TXB2C NS2
+51TXC2 TXA2
+52TXC2C NS2
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NS2 1.E+10
+C
+C -------------------------------------------------------------------------
+C GROUND ELECTRODE CIRCUIT, CELILO
+ 0AN2C GR1C 1.0
+ 0GR1C ELEC1 AN2C GR1C
+ 0GR1C .06
+ 0ELEC1 GR2C AN2C GR1C
+ 0GR2C CELGR AN2C GR1C
+ 0GR2C GR1C
+ 0ELEC1 .43 22.
+C -------------------------------------------------------------------------
+C AC CIRCUIT OF POLE 3, CELILO
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS,
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE AND 1 MILE (1.6 KM) OF 230 KV LINE.
+C
+ 0GENAS BIGEA3GENAS BIGEA4
+ 0GENBS BIGEB3GENAS BIGEA4
+ 0GENCS BIGEC3GENAS BIGEA4
+ 0BIGEA3 BIGEA4
+ 0BIGEB3 BIGEA4
+ 0BIGEC3 BIGEA4
+ 0 BIGEA3 BIGEA4
+ 0 BIGEB3 BIGEA4
+ 0 BIGEC3 BIGEA4
+ 0BIGEA313AC3 BIGEA413AC4
+ 0BIGEB313BC3 BIGEA413AC4
+ 0BIGEC313CC3 BIGEA413AC4
+ 013AC3 HPAC3 13AC4 HPAC4
+ 0HPAC3 13AC3 HPAC4 13AC4
+ 013BC3 HPBC3 13AC4 HPAC4
+ 0HPBC3 13BC3 HPAC4 13AC4
+ 013CC3 HPCC3 13AC4 HPAC4
+ 0HPCC3 13CC3 HPAC4 13AC4
+ 0HPAC3 HPAC4
+ 0HPBC3 HPAC4
+ 0HPCC3 HPAC4
+ 0 13AC3 13AC4
+ 0 13BC3 13AC4
+ 0 13CC3 13AC4
+ 013AC3 11AC3 GENAS BIGEA4
+ 013BC3 11BC3 GENAS BIGEA4
+ 013CC3 11CC3 GENAS BIGEA4
+ 011AC3 11AC4
+ 011BC3 11AC4
+ 011CC3 11AC4
+ 011AC3 AC3 GENAS BIGEA4
+ 011BC3 BC3 GENAS BIGEA4
+ 011CC3 CC3 GENAS BIGEA4
+ 011AC3 AC5 GENAS BIGEA4
+ 011BC3 BC5 GENAS BIGEA4
+ 011CC3 CC5 GENAS BIGEA4
+C
+C -------------------------------- GROUP 1, CELILO ----------------------
+C !!!!!!!!!!!!!!!!!!!!! SYMMETRY !!!!!!!!!!!!!!!!
+ 0AN5C CEL3 .01
+C !!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!
+C -------------------------------- GROUP 3, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0III-1 IIICA VI-1 VICA
+ 0IIICA III-1 VICA VI-1
+ 0III-3 IIICB VI-1 VICA
+ 0IIICB III-3 VICA VI-1
+ 0III-5 IIICC VI-1 VICA
+ 0IIICC III-5 VICA VI-1
+ 0III-4 AN3C VI-1 VICA
+ 0AN3C III-4 VICA VI-1
+ 0III-6 AN3C VI-1 VICA
+ 0AN3C III-6 VICA VI-1
+ 0III-2 AN3C VI-1 VICA
+ 0AN3C III-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0CELGR VDA3 CEL4 VDA6
+ 0CELGR VDB3 CEL4 VDA6
+ 0CELGR VDC3 CEL4 VDA6
+ 0AN3C VDA3 CEL4 VDA6
+ 0AN3C VDB3 CEL4 VDA6
+ 0AN3C VDC3 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA3 IIICA VDA6 VICA
+ 0IIICA VDA3 VICA VDA6
+ 0VDB3 IIICB VDA6 VICA
+ 0IIICB VDB3 VICA VDA6
+ 0VDC3 IIICC VDA6 VICA
+ 0IIICC VDC3 VICA VDA6
+ 0CELGR CTH3C VDA6 VICA
+ 0CTH3C CELGR VICA VDA6
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC3Y TXA3 AC2Y TXA2
+ 0BC3Y TXB3 AC2Y TXA2
+ 0CC3Y TXC3 AC2Y TXA2
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA3C VDA3 TXA2C VDA2
+ 0TXB3C VDB3 TXA2C VDA2
+ 0TXC3C VDC3 TXA2C VDA2
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA3 TXA2
+52TXA3C NS3
+51TXB3 TXA2
+52TXB3C NS3
+51TXC3 TXA2
+52TXC3C NS3
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NS3 NS2
+C -------------------------------------------------------------------------
+C -------------------------------- GROUP 5, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0V-1 VCA VI-1 VICA
+ 0VCA V-1 VICA VI-1
+ 0V-3 VCB VI-1 VICA
+ 0VCB V-3 VICA VI-1
+ 0V-5 VCC VI-1 VICA
+ 0VCC V-5 VICA VI-1
+ 0V-4 AN5C VI-1 VICA
+ 0AN5C V-4 VICA VI-1
+ 0V-6 AN5C VI-1 VICA
+ 0AN5C V-6 VICA VI-1
+ 0V-2 AN5C VI-1 VICA
+ 0AN5C V-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN3C VDA5 CEL4 VDA6
+ 0AN3C VDB5 CEL4 VDA6
+ 0AN3C VDC5 CEL4 VDA6
+ 0AN5C VDA5 CEL4 VDA6
+ 0AN5C VDB5 CEL4 VDA6
+ 0AN5C VDC5 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA5 VCA VDA6 VICA
+ 0VCA VDA5 VICA VDA6
+ 0VDB5 VCB VDA6 VICA
+ 0VCB VDB5 VICA VDA6
+ 0VDC5 VCC VDA6 VICA
+ 0VCC VDC5 VICA VDA6
+ 0AN3C CTH5C VDA6 VICA
+ 0CTH5C AN3C VICA VDA6
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC5Y TXA5 AC6Y TXA6
+ 0BC5Y TXB5 AC6Y TXA6
+ 0CC5Y TXC5 AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA5C VDA5 TXA6C VDA6
+ 0TXB5C VDB5 TXA6C VDA6
+ 0TXC5C VDC5 TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA5 TXA6
+52TXA5C TXB5C
+51TXB5 TXA6
+52TXB5C TXC5C
+51TXC5 TXA6
+52TXC5C TXA5C
+C
+C
+C SMOOTHING REACTOR, CELILO, POLE 4 ===================
+ 0CEL4 S4- 500. 1
+C ============================
+C DC FILTERS, CELILO, POLE 4
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0S4- ELEC1 6.3 280. .7
+ 0S4- HP4C 2.5
+ 0HP4C ELEC1 100.
+ 0ELEC1 HP4C 7.0
+C ===========================================
+C SURGE CAPACITOR, CELILO, POLE 4
+ 0S4- SURC4 .7
+ 0SURC4 5.
+ 0SURC4 ELEC1 GENAS BIGEA4
+C ============================================================
+C SMOOTHING REACTOR, CELILO, POLE 3 ===================
+ 0CEL3 A3+ CEL4 S4-
+C ============================
+C DC FILTERS, CELILO, POLE 3
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+ 0A3+ ELEC1 S4- ELEC1
+ 0A3+ HP3C S4- HP4C
+ 0HP3C ELEC1 HP4C ELEC1
+ 0ELEC1 HP3C ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, CELILO, POLE 3
+ 0A3+ SURC3 S4- SURC4
+ 0SURC3 SURC4
+ 0SURC3 ELEC1 GENAS BIGEA4
+C ============================================================
+C
+C *************************************************************************
+C CELILO - SYLMAR LINE, 846 MILES (1362 KM)
+C *************************************************************************
+C
+-1S4- 4-282 .02 6.56 .0142 282.
+-2A3+ 3-282 .02 1.56 .0192 282.
+-14-282 4-564 S4- 4-282
+-23-282 3-564
+-14-564 R4- S4- 4-282
+-23-564 R3+
+C
+C
+C SMOOTHING REACTOR, SYLMAR, POLE 4 ===================
+ 0AN6S SYL4 CEL4 S4-
+C ============================
+C DC FILTERS, SYLMAR, POLE 4
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0R4- ELEC2 S4- ELEC1
+ 0R4- HP4 S4- HP4C
+ 0HP4 ELEC2 HP4C ELEC1
+ 0ELEC2 HP4 ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, SYLMAR, POLE 4
+ 0R4- SURS4 S4- SURC4
+ 0SURS4 SURC4
+ 0SURS4 ELEC2 GENAS BIGEA4
+C ============================================================
+C SMOOTHING REACTOR, SYLMAR, POLE 3 ===================
+ 0CTH5S SYL3 CEL4 S4-
+C ============================
+C DC FILTERS, SYLMAR, POLE 3
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0R3+ ELEC2 S4- ELEC1
+ 0R3+ HP3 S4- HP4C
+ 0HP3 ELEC2 HP4C ELEC1
+ 0ELEC2 HP3 ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, SYLMAR, POLE 3
+ 0R3+ SURS3 S4- SURC4
+ 0SURS3 SURC4
+ 0SURS3 ELEC2 GENAS BIGEA4
+C ============================================================
+C
+C LC CIRCUIT NEAR SMOOTHING REACTOR ON LINE AT SYLMAR ONLY ..........
+C
+ 0R4- CAP4 GENAS BIGEA4
+ 0CAP4 .06
+ 0CAP4 SYL4 1.0
+ 0R3+ CAP3 GENAS BIGEA4
+ 0CAP3 CAP4
+ 0CAP3 SYL3 CAP4 SYL4
+C AC CIRCUIT OF POLE 4, SYLMAR
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS AND
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE.
+ 0ELEC2 ELEC1
+C -------------------------------------------------------------------------
+C
+C AC CIRCUIT OF POLE 3, SYLMAR
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS AND
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE.
+C $$$$$$$$$$$$$$$$$$$$$$$$$ LEAKAGE CAPACITANCE ACROSS VALVES
+C
+ 0VICA CTH6C .001
+ 0VICB CTH6C VICA CTH6C
+ 0VICC CTH6C VICA CTH6C
+ 0AN6C VICA VICA CTH6C
+ 0AN6C VICB VICA CTH6C
+ 0AN6C VICC VICA CTH6C
+ 0IICA CTH2C VICA CTH6C
+ 0IICB CTH2C VICA CTH6C
+ 0IICC CTH2C VICA CTH6C
+ 0AN2C IICA VICA CTH6C
+ 0AN2C IICB VICA CTH6C
+ 0AN2C IICC VICA CTH6C
+ 0IIICA CTH3C VICA CTH6C
+ 0IIICB CTH3C VICA CTH6C
+ 0IIICC CTH3C VICA CTH6C
+ 0AN3C IIICA VICA CTH6C
+ 0AN3C IIICB VICA CTH6C
+ 0AN3C IIICC VICA CTH6C
+ 0VCA CTH5C VICA CTH6C
+ 0VCB CTH5C VICA CTH6C
+ 0VCC CTH5C VICA CTH6C
+ 0AN5C VCA VICA CTH6C
+ 0AN5C VCB VICA CTH6C
+ 0AN5C VCC VICA CTH6C
+BLANK card ending electric network branch cards
+C ((((((((((( BRIDGE CIRCUIT BREAKERS, CELILO ))))))))))))))))))))
+ AC6 AC6Y -10.E-3 10.E+3
+ BC6 BC6Y -10.E-3 10.E+3
+ CC6 CC6Y -10.E-3 10.E+3
+ AC2 AC2Y -10.E-3 10.E+3
+ BC2 BC2Y -10.E-3 10.E+3
+ CC2 CC2Y -10.E-3 10.E+3
+ AC3 AC3Y -10.E-3 10.E+3
+ BC3 BC3Y -10.E-3 10.E+3
+ CC3 CC3Y -10.E-3 10.E+3
+ AC5 AC5Y -10.E-3 10.E+3
+ BC5 BC5Y -10.E-3 10.E+3
+ CC5 CC5Y -10.E-3 10.E+3
+C
+C VALVES AT CELILO
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+11VI-1 CTH6C F2SI 1
+11VI-3 CTH6C F4SI 1
+11VI-5 CTH6C F6SI 13
+11VI-4 VICA F5SI 1
+11VI-6 VICB F1SI 1
+11VI-2 VICC F3SI 1
+11II-1 CTH2C F2SII 1
+11II-3 CTH2C F4SII 13
+11II-5 CTH2C F6SII 1
+11II-4 IICA F5SII 1
+11II-6 IICB F1SII 1
+11II-2 IICC F3SII 1
+11III-1 CTH3C F2SII 1
+11III-3 CTH3C F4SII 1
+11III-5 CTH3C F6SII 1
+11III-4 IIICA F5SII 1
+11III-6 IIICB F1SII 1
+11III-2 IIICC F3SII 1
+11V-1 CTH5C F2SI 13
+11V-3 CTH5C F4SI 1
+11V-5 CTH5C F6SI 1
+11V-4 VCA F5SI 1
+11V-6 VCB F1SI 1
+11V-2 VCC F3SI 1
+BLANK card ending switch and valve cards
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+14GENAS 191.88 60. - 90. -1.
+14GENBS 191.88 60. 150. -1.
+14GENCS 191.88 60. 30. -1.
+11R4- 260.00
+11R3+ -260.00
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C GENAS | BIGEA4*BIGEA3*
+C BIGEA4 | TERRA *TERRA *GENAS *13AC4 *
+C GENBS | BIGEB4*BIGEB3*
+C BIGEB4 | TERRA *TERRA *GENBS *13BC4 *
+C GENCS | BIGEC4*BIGEC3*
+BLANK card ending electric network source cards
+ S4- 4-282 4-564 R4- A3+ 3-282 3-564 R3+
+C Total network loss P-loss by summing injections = 3.860395580278E-01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C AC6 AC6Y -0.17537829E-02 -0.15130661E-03 0.17602977E-02
+C BC6 BC6Y 0.74585609E-03 0.15944738E-02 0.17602977E-02
+C CC6 CC6Y 0.10079268E-02 -0.14431672E-02 0.17602977E-02
+C < < Etc. for many more switches > >
+C Step Time VI-5 II-3 V-1 S4- 4-282 4-564
+C CTH6C CTH2C CTH5C
+C
+C R3+ VI-5 II-3 V-1 CEL4
+C CTH6C CTH2C CTH5C S4-
+C *** Phasor I(0) = -1.7537829E-03 Switch "AC6 " to "AC6Y " closed
+C *** Phasor I(0) = 7.4585609E-04 Switch "BC6 " to "BC6Y " closed
+C *** Phasor I(0) = 1.0079268E-03 Switch "CC6 " to "CC6Y " closed
+C *** Phasor I(0) = -1.7256922E-03 Switch "AC2 " to "AC2Y " closed
+C *** Phasor I(0) = 7.3073497E-04 Switch "BC2 " to "BC2Y " closed
+C *** Phasor I(0) = 9.9495722E-04 Switch "CC2 " to "CC2Y " closed
+C *** Phasor I(0) = -1.7256922E-03 Switch "AC3 " to "AC3Y " closed
+C *** Phasor I(0) = 7.3073497E-04 Switch "BC3 " to "BC3Y " closed
+C *** Phasor I(0) = 9.9495722E-04 Switch "CC3 " to "CC3Y " closed
+C *** Phasor I(0) = -1.7537829E-03 Switch "AC5 " to "AC5Y " closed
+C *** Phasor I(0) = 7.4585609E-04 Switch "BC5 " to "BC5Y " closed
+C *** Phasor I(0) = 1.0079268E-03 Switch "CC5 " to "CC5Y " closed
+C 0 0.0 92.4476735 -80.392419 -46.233822 -.6059E-12 -.5031E-12 .87008E-13
+C .12071E-13 0.0 0.0 0.0 -.7846E-15
+C 1 .5E-4 92.4314685 -81.253201 -44.71671 -.6103E-12 -.5175E-12 .87672E-13
+C -260. 0.0 0.0 0.0 -.7135E-15
+C 60 .003 39.3727405 -76.238222 52.7516794 -.7005E-12 -.8214E-12 257.446725
+C -260. 0.0 0.0 0.0 .53435E-17
+C Valve "II-6 " to "IICB " closing after 3.85000000E-03 sec.
+C Valve "III-6 " to "IIICB " closing after 3.85000000E-03 sec.
+C 80 .004 10.9218031 -49.021132 82.2441262 .351391677 254.918524 257.4592
+C -260. 0.0 0.0 0.0 .008847337
+C Valve "II-6 " to "IICB " opening after 4.40000000E-03 sec.
+C Valve "III-6 " to "IIICB " opening after 4.40000000E-03 sec.
+C 100 .005 -45.494471 -36.386851 73.4856334 135.946744 254.943229 257.471553
+C -260. 0.0 0.0 0.0 -.03160187
+BLANK card ending output variable requests (just node voltages, here)
+C Valve "V-5 " to "CTH5C " closing after 4.79500000E-02 sec.
+C Valve "VI-3 " to "CTH6C " opening after 4.83000000E-02 sec.
+C Valve "V-3 " to "CTH5C " opening after 4.83000000E-02 sec.
+C Valve "II-6 " to "IICB " closing after 4.93500000E-02 sec.
+C Valve "III-6 " to "IIICB " closing after 4.93500000E-02 sec.
+C Valve "II-4 " to "IICA " opening after 4.98000000E-02 sec.
+C Valve "III-4 " to "IIICA " opening after 4.98000000E-02 sec.
+C 1000 .05 0.0 -167.46575 -134.7388 251.510661 139.93783 117.983336
+C -260. .526265477 0.0 0.0 .527808483
+C Variable max:92.4476735 92.1922669 116.425574 579.298066 663.305228 663.489503
+C .12071E-13 .554084524 .929282825 .867170568 .872209101
+C Times of max : 0.0 .0252 .0216 .01455 .01245 .0109
+C 0.0 .04835 .02565 .0404 .02635
+C Variable min: -198.8722 -193.07964 -223.00837 -.9678E-12 -.1033E-11 .87008E-13
+C -260. -.10328566 -.02134205 -.07594113 -.0319449
+C Times of min : .00785 .0148 .01455 .002 .0025 0.0
+C .5E-4 .0218 .0468 .02695 .00505
+ PRINTER PLOT
+ 194 5. 0.0 50. VI-5 CTH6C { Axis limits : (-1.033, 5.541)
+ 144 5. 0.0 50. S4- { Axis limits : (0.000, 5.793)
+BLANK card terminating batch-mode plot cards
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases is for a 1-terminal, 1-pole simplified representation
+C with only two bridges total. It was produced from the preceding data case
+C by omitting the negative pole (reduction from two poles to a single pole).
+C To compare with BPA's EMTP, this would be the 4th of 4 subcases within DC-1.
+C Answers agree with BPA EMTP exactly until there is one time-step difference
+C on a value closing between step 700 and 800. This should be equally valid:
+C Valve "II-2 " to "IICC " closing after 3.82000000E-02 sec.
+C 4 September 2011, we illustrate new logic of SUBR14 which will use all of
+C available space of NBHDSW if declared space (LISTSIZE.DAT) is inadequate.
+C Rather than a real case, it is easier to force this use artificially. To
+C do this, we input a special set of LISTSIZE.DAT data with the optional
+C NDHDSW declaration having an empty factor of zero. This is the multiple
+C of List 6 for sizing NBHDSW, so ATP thinks NBHDSW has no space. This
+C will trigger the "try harder" logic of SUBR14 which will go get the real
+C limits as declared in LISTSIZE.BPA : List 6 is 1200 and the factor is 15,
+C so in fact the vector NBHDSW is dimensioned 18K. This will be documented
+C by two exceptional lines of output to the .LIS file:
+C === SUBR14. Switch connectivity of NBHDSW needs more space. From LISTSIZE.DAT, List 56 = 0
+C Expand this to use all of NBHDSW. J, KSWTCH, LSWTCH, List 56 = 7 18 40 18000
+C The 1st line documents the artificial List 56 (real data will not have 0).
+C 2nd line: valu 40 for LSWTCH is simply the default (not real) List-6 limit
+C as ordered immediately below. All list sizes can be default sizes except
+C for List 19 of TACS, which requires a little more space (we use 5K). The
+C data involves 18 switches (that is KSWTCH), and need for more space was
+C first detected on switch 7. Why not switch 1? Because the 1st 6 switches
+C are simple circuit breakers which touch no other switches. Switch 7 is a
+C valve connecting VI-1 with CTH6C, and this touches the 8th switch which
+C connects VI-3 to the same CTH6C. That triggered the new, better logic.
+NEW LIST SIZES
+NBHDSW 0.0 { Vector NBHDSW of LABCOM has size List 6 * this factor FNBHD
+ 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 5000 0
+ 0 0 0
+ 240000 742
+ .000050 .060
+ 1 1 1 3 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID CASE FOR DC TERMINAL SIMULATION
+C * * * * * * * GRID TIMING VOLTAGES * * * * * * * * * * * * * *
+ PHA-BS +GENAS -GENBS
+ PHB-AS +GENBS -GENAS
+ PHB-CS +GENBS -GENCS
+ PHC-BS +GENCS -GENBS
+ PHC-AS +GENCS -GENAS
+ PHA-CS +GENAS -GENCS
+ 4 +NOT13
+ 9 +NOT18
+ 14 +NOT23
+ 19 +NOT28
+ 24 +NOT3
+ 29 +NOT8
+C ********* ZERO-ORDER BLOCK ON "TIMEX" FOR LIMIT OF 2 CYCLES *******
+C
+ TIMER +TIMEX 0.0 33.3-3
+90GENAS
+90GENBS
+90GENCS
+C $$$$$$ DECREASING RAMP FUNCTION FOR IGNITION ANGLE DELAY $$$$$$$$$$$$
+88ALPHAR -.1045045 * TIMER + 4.17-3
+C
+C -------------- RECTIFIER CONTROL LOGIC FOLLOWS --------------------
+88SA-B 52 +UNITY 0.0 PHA-BS
+88F1S 54 +SA-B 0.0 ALPHAR
+88F1SII 4 .AND. F1S
+88NOT3 .NOT. F1SII
+88F1SI 54 +F1SII 1.4E-3
+88SB-A 52 +UNITY 0.0 PHB-AS
+88F4S 54 +SB-A 0.0 ALPHAR
+88F4SII 9 .AND. F4S
+88NOT8 .NOT. F4SII
+88F4SI 54 +F4SII 1.4E-3
+88SB-C 52 +UNITY 0.0 PHB-CS
+88F3S 54 +SB-C 0.0 ALPHAR
+88F3SII 14 .AND. F3S
+88NOT13 .NOT. F3SII
+88F3SI 54 +F3SII 1.4E-3
+88SC-B 52 +UNITY 0.0 PHC-BS
+88F6S 54 +SC-B 0.0 ALPHAR
+88F6SII 19 .AND. F6S
+88NOT18 .NOT. F6SII
+88F6SI 54 +F6SII 1.4E-3
+88SC-A 52 +UNITY 0.0 PHC-AS
+88F5S 54 +SC-A 0.0 ALPHAR
+88F5SII 24 .AND. F5S
+88NOT23 .NOT. F5SII
+88F5SI 54 +F5SII 1.4E-3
+88SA-C 52 +UNITY 0.0 PHA-CS
+88F2S 54 +SA-C 0.0 ALPHAR
+88F2SII 29 .AND. F2S
+88NOT28 .NOT. F2SII
+88F2SI 54 +F2SII 1.4E-3
+C $$$$$$ INCREASING RAMP FUNCTION FOR IGNITION ANGLE DELAY $$$$$$$$$$$$
+C
+88ALPHAI +.076276 * TIMER + 4.17-3
+C
+C DELAY FIRING FOR BYPASS VALVES
+C
+88FIRE - UNITY
+77PHA-BS +166.1710
+77PHB-AS -166.1710
+77PHB-CS -332.3420
+77PHC-BS +332.3420
+77PHC-AS +166.1710
+77PHA-CS -166.1710
+77FIRE -1.0
+C AC CIRCUIT OF POLE 4, CELILO
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS,
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE AND 1 MILE (1.6 KM) OF 230 KV LINE.
+BLANK card ending TACS initial conditions (and also all TACS data)
+ 0GENAS BIGEA4 .01
+ 0GENBS BIGEB4GENAS BIGEA4
+ 0GENCS BIGEC4GENAS BIGEA4
+ 0BIGEA4 .86 114. 2.46
+ 0BIGEB4 BIGEA4
+ 0BIGEC4 BIGEA4
+ 0 BIGEA4 1.18 114. 1.28
+ 0 BIGEB4 BIGEA4
+ 0 BIGEC4 BIGEA4
+ 0BIGEA413AC4 .02 1.56
+ 0BIGEB413BC4 BIGEA413AC4
+ 0BIGEC413CC4 BIGEA413AC4
+ 013AC4 HPAC4 40.
+ 0HPAC4 13AC4 5.5
+ 013BC4 HPBC4 13AC4 HPAC4
+ 0HPBC4 13BC4 HPAC4 13AC4
+ 013CC4 HPCC4 13AC4 HPAC4
+ 0HPCC4 13CC4 HPAC4 13AC4
+ 0HPAC4 3.9
+ 0HPBC4 HPAC4
+ 0HPCC4 HPAC4
+ 0 13AC4 .93 44. .95
+ 0 13BC4 13AC4
+ 0 13CC4 13AC4
+ 013AC4 11AC4 GENAS BIGEA4
+ 013BC4 11BC4 GENAS BIGEA4
+ 013CC4 11CC4 GENAS BIGEA4
+ 011AC4 .82 44. 1.33
+ 011BC4 11AC4
+ 011CC4 11AC4
+ 011AC4 AC6 GENAS BIGEA4
+ 011BC4 BC6 GENAS BIGEA4
+ 011CC4 CC6 GENAS BIGEA4
+ 011AC4 AC2 GENAS BIGEA4
+ 011BC4 BC2 GENAS BIGEA4
+ 011CC4 CC2 GENAS BIGEA4
+C
+C -------------------------------- GROUP 6, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0VI-1 VICA 3000.
+ 0VICA VI-1 1.0
+ 0VI-3 VICB VI-1 VICA
+ 0VICB VI-3 VICA VI-1
+ 0VI-5 VICC VI-1 VICA
+ 0VICC VI-5 VICA VI-1
+ 0VI-4 AN6C VI-1 VICA
+ 0AN6C VI-4 VICA VI-1
+ 0VI-6 AN6C VI-1 VICA
+ 0AN6C VI-6 VICA VI-1
+ 0VI-2 AN6C VI-1 VICA
+ 0AN6C VI-2 VICA VI-1
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0CEL4 VDA6 1200. .1
+ 0CEL4 VDB6 CEL4 VDA6
+ 0CEL4 VDC6 CEL4 VDA6
+ 0AN6C VDA6 CEL4 VDA6
+ 0AN6C VDB6 CEL4 VDA6
+ 0AN6C VDC6 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA6 VICA 1000.
+ 0VICA VDA6 .25
+ 0VDB6 VICB VDA6 VICA
+ 0VICB VDB6 VICA VDA6
+ 0VDC6 VICC VDA6 VICA
+ 0VICC VDC6 VICA VDA6
+ 0CEL4 CTH6C VDA6 VICA
+ 0CTH6C CEL4 VICA VDA6
+C
+C * * * * * Y-DELTA XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC6Y TXA6 .203 .7
+ 0BC6Y TXB6 AC6Y TXA6
+ 0CC6Y TXC6 AC6Y TXA6
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA6C VDA6 .202 .717
+ 0TXB6C VDB6 TXA6C VDA6
+ 0TXC6C VDC6 TXA6C VDA6
+C
+C <<<<<<<<<<<<<<< Y-DELTA TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA6 99300.
+52TXA6C TXB6C 82715. 68946.
+51TXB6 TXA6
+52TXB6C TXC6C
+51TXC6 TXA6
+52TXC6C TXA6C
+C
+C -------------------------------------------------------------------------
+C -------------------------------- GROUP 2, CELILO ----------------------
+C ####### ANODE REACTORS ###############
+ 0II-1 IICA VI-1 VICA
+ 0IICA II-1 VICA VI-1
+ 0II-3 IICB VI-1 VICA
+ 0IICB II-3 VICA VI-1
+ 0II-5 IICC VI-1 VICA
+ 0IICC II-5 VICA VI-1
+ 0II-4 AN2C VI-1 VICA
+ 0AN2C II-4 VICA VI-1
+ 0II-6 AN2C VI-1 VICA
+ 0AN2C II-6 VICA VI-1
+ 0II-2 AN2C VI-1 VICA
+ 0AN2C II-2 VICA VI-1
+C ###################### BYPASS ANODE REACTOR ##############
+C //////////////////////// VALVE DAMPERS /////////////////////
+ 0AN6C VDA2 CEL4 VDA6
+ 0AN6C VDB2 CEL4 VDA6
+ 0AN6C VDC2 CEL4 VDA6
+ 0AN2C VDA2 CEL4 VDA6
+ 0AN2C VDB2 CEL4 VDA6
+ 0AN2C VDC2 CEL4 VDA6
+C $$$$$$$$$ BUSHING REACTORS $$$$$$$$$$$$$$$
+ 0VDA2 IICA VDA6 VICA
+ 0IICA VDA2 VICA VDA6
+ 0VDB2 IICB VDA6 VICA
+ 0IICB VDB2 VICA VDA6
+ 0VDC2 IICC VDA6 VICA
+ 0IICC VDC2 VICA VDA6
+ 0AN6C CTH2C VDA6 VICA
+ 0CTH2C AN6C VICA VDA6
+C
+C * * * * * Y-Y XFMR LEAKAGE IMPEDANCE * * * * * * * *
+C +++++++++++ A.C. SOURCE SIDE +++++++++++
+ 0AC2Y TXA2 .22 2.07
+ 0BC2Y TXB2 AC2Y TXA2
+ 0CC2Y TXC2 AC2Y TXA2
+C +++++++++++ D.C. CONVERTER SIDE +++++++++
+ 0TXA2C VDA2 .07 .8343
+ 0TXB2C VDB2 TXA2C VDA2
+ 0TXC2C VDC2 TXA2C VDA2
+C
+C <<<<<<<<<<<<<<< Y-Y TRANSFORMER >>>>>>>>>>>>>>>>>>>>>
+51TXA2 99300.
+52TXA2C NS2 47951. 23174.
+51TXB2 TXA2
+52TXB2C NS2
+51TXC2 TXA2
+52TXC2C NS2
+C ------------------------- ISOLATING Y-Y XFMR FROM GROUND -----------
+ 0NS2 1.E+10
+C
+C -------------------------------------------------------------------------
+C GROUND ELECTRODE CIRCUIT, CELILO
+ 0AN2C GR1C 1.0
+ 0GR1C ELEC1 AN2C GR1C
+ 0GR1C .06
+ 0ELEC1 .43 22.
+C -------------------------------------------------------------------------
+C AC CIRCUIT OF POLE 3, CELILO
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS,
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE AND 1 MILE (1.6 KM) OF 230 KV LINE.
+C SMOOTHING REACTOR, CELILO, POLE 4 ===================
+ 0CEL4 S4- 500. 1
+C ============================
+C DC FILTERS, CELILO, POLE 4
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0S4- ELEC1 6.3 280. .7
+ 0S4- HP4C 2.5
+ 0HP4C ELEC1 100.
+ 0ELEC1 HP4C 7.0
+C ===========================================
+C SURGE CAPACITOR, CELILO, POLE 4
+ 0S4- SURC4 .7
+ 0SURC4 5.
+ 0SURC4 ELEC1 GENAS BIGEA4
+C ============================================================
+C *************************************************************************
+C CELILO - SYLMAR LINE, 846 MILES (1362 KM)
+C *************************************************************************
+C
+-1S4- 4-282 .02 6.56 .0142 282.
+-2A3+ 3-282 .02 1.56 .0192 282.
+-14-282 4-564 S4- 4-282
+-23-282 3-564
+-14-564 R4- S4- 4-282
+-23-564 R3+
+C
+C
+C SMOOTHING REACTOR, SYLMAR, POLE 4 ===================
+ 0AN6S SYL4 CEL4 S4-
+C ============================
+C DC FILTERS, SYLMAR, POLE 4
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0R4- ELEC2 S4- ELEC1
+ 0R4- HP4 S4- HP4C
+ 0HP4 ELEC2 HP4C ELEC1
+ 0ELEC2 HP4 ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, SYLMAR, POLE 4
+ 0R4- SURS4 S4- SURC4
+ 0SURS4 SURC4
+ 0SURS4 ELEC2 GENAS BIGEA4
+C ============================================================
+C SMOOTHING REACTOR, SYLMAR, POLE 3 ===================
+ 0CTH5S SYL3 CEL4 S4-
+C ============================
+C DC FILTERS, SYLMAR, POLE 3
+C CONSISTING OF 6TH AND HIGH-PASS FILTERS
+C
+ 0R3+ ELEC2 S4- ELEC1
+ 0R3+ HP3 S4- HP4C
+ 0HP3 ELEC2 HP4C ELEC1
+ 0ELEC2 HP3 ELEC1 HP4C
+C ===========================================
+C SURGE CAPACITOR, SYLMAR, POLE 3
+ 0R3+ SURS3 S4- SURC4
+ 0SURS3 SURC4
+ 0SURS3 ELEC2 GENAS BIGEA4
+C ============================================================
+C
+C LC CIRCUIT NEAR SMOOTHING REACTOR ON LINE AT SYLMAR ONLY ..........
+C
+ 0R4- CAP4 GENAS BIGEA4
+ 0CAP4 .06
+ 0CAP4 SYL4 1.0
+ 0R3+ CAP3 GENAS BIGEA4
+ 0CAP3 CAP4
+ 0CAP3 SYL3 CAP4 SYL4
+C AC CIRCUIT OF POLE 4, SYLMAR
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS AND
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE.
+ 0ELEC2 ELEC1
+C -------------------------------------------------------------------------
+C
+C AC CIRCUIT OF POLE 3, SYLMAR
+C CONSISTS OF 5TH,7TH,11TH,13TH, AND HIGH-PASS FILTERS AND
+C CCT BREAKERS FOR EACH 3-PHASE BRIDGE.
+C $$$$$$$$$$$$$$$$$$$$$$$$$ LEAKAGE CAPACITANCE ACROSS VALVES
+C
+ 0VICA CTH6C .001
+ 0VICB CTH6C VICA CTH6C
+ 0VICC CTH6C VICA CTH6C
+ 0AN6C VICA VICA CTH6C
+ 0AN6C VICB VICA CTH6C
+ 0AN6C VICC VICA CTH6C
+ 0IICA CTH2C VICA CTH6C
+ 0IICB CTH2C VICA CTH6C
+ 0IICC CTH2C VICA CTH6C
+ 0AN2C IICA VICA CTH6C
+ 0AN2C IICB VICA CTH6C
+ 0AN2C IICC VICA CTH6C
+BLANK card ending electric network branch cards
+C ((((((((((( BRIDGE CIRCUIT BREAKERS, CELILO ))))))))))))))))))))
+ AC6 AC6Y -10.E-3 10.E+3
+ BC6 BC6Y -10.E-3 10.E+3
+ CC6 CC6Y -10.E-3 10.E+3
+ AC2 AC2Y -10.E-3 10.E+3
+ BC2 BC2Y -10.E-3 10.E+3
+ CC2 CC2Y -10.E-3 10.E+3
+C
+C VALVES AT CELILO
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+11VI-1 CTH6C F2SI 1
+11VI-3 CTH6C F4SI 1
+11VI-5 CTH6C F6SI 13
+11VI-4 VICA F5SI 1
+11VI-6 VICB F1SI 1
+11VI-2 VICC F3SI 1
+11II-1 CTH2C F2SII 1
+11II-3 CTH2C F4SII 13
+11II-5 CTH2C F6SII 1
+11II-4 IICA F5SII 1
+11II-6 IICB F1SII 1
+11II-2 IICC F3SII 1
+BLANK card ending switch and valve cards
+C [[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]
+14GENAS 191.88 60. - 90. -1.
+14GENBS 191.88 60. 150. -1.
+14GENCS 191.88 60. 30. -1.
+11R4- 260.00
+11R3+ -260.00
+BLANK card ending electric network source cards
+C Total network loss P-loss by summing injections = 1.930197805538E-01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C AC6 AC6Y -0.17537829E-02 -0.15130661E-03 0.17602977E-02
+C BC6 BC6Y 0.74585608E-03 0.15944738E-02 0.17602977E-02
+C CC6 CC6Y 0.10079268E-02 -0.14431672E-02 0.17602977E-02
+C AC2 AC2Y -0.17256922E-02 -0.15254879E-03 0.17324216E-02
+C BC2 BC2Y 0.73073496E-03 0.15707677E-02 0.17324216E-02
+C CC2 CC2Y 0.99495722E-03 -0.14182189E-02 0.17324216E-02
+C VI-1 CTH6C Open Open Open
+C
+C GENCS 166.17295447816 191.88 -.3624911331317 .72614413549163
+C 95.94 30.0000000 .62919431331648 119.9470848
+ S4- 4-282 4-564 R4- A3+ 3-282 3-564 R3+
+C Step Time VI-5 II-3 S4- 4-282 4-564 R4-
+C CTH6C CTH2C
+C
+C VI-5 II-3 CEL4
+C CTH6C CTH2C S4-
+C *** Phasor I(0) = -1.7537829E-03 Switch "AC6 " to "AC6Y " closed
+C *** Phasor I(0) = 7.4585609E-04 Switch "BC6 " to "BC6Y " closed
+C *** Phasor I(0) = 1.0079268E-03 Switch "CC6 " to "CC6Y " closed
+C *** Phasor I(0) = -1.7256922E-03 Switch "AC2 " to "AC2Y " closed
+C *** Phasor I(0) = 7.3073497E-04 Switch "BC2 " to "BC2Y " closed
+C *** Phasor I(0) = 9.9495722E-04 Switch "CC2 " to "CC2Y " closed
+C 0 0.0 92.4476735 -80.392419 -.7733E-13 -.106E-12 -.4033E-13 .51245E-13
+C 0.0 0.0 -.1763E-14
+C 1 .5E-4 92.4314685 -81.253201 -.6891E-13 -.1173E-12 -.4559E-13 260.
+C 0.0 0.0 -.1605E-14
+C
+C 60 .003 39.3727405 -76.238222 .10266E-12 -.3965E-12 257.446725 260.
+C 0.0 0.0 .25576E-16
+C Valve "II-6 " to "IICB " closing after 3.85000000E-03 sec.
+C 80 .004 10.9210123 -49.022147 .363630979 254.918524 257.4592 260.
+C 0.0 0.0 .008845798
+C Valve "II-6 " to "IICB " opening after 4.40000000E-03 sec.
+C 100 .005 -33.737956 -24.630028 130.519221 254.943229 257.471553 260.
+C 0.0 0.0 -.02057533
+C Valve "II-1 " to "CTH2C " closing after 5.05000000E-03 sec.
+C Valve "VI-6 " to "VICB " closing after 5.30000000E-03 sec.
+C Valve "VI-6 " to "VICB " opening after 5.75000000E-03 sec.
+C Valve "II-1 " to "CTH2C " opening after 5.80000000E-03 sec.
+C Valve "VI-1 " to "CTH6C " closing after 6.50000000E-03 sec.
+C Valve "VI-1 " to "CTH6C " opening after 7.05000000E-03 sec.
+C
+C 700 .035 0.0 -123.32011 181.490229 155.439416 268.34801 260.
+C .250964556 0.0 .256905072
+C Valve "II-1 " to "CTH2C " closing after 3.54500000E-02 sec.
+C Valve "II-5 " to "CTH2C " opening after 3.57500000E-02 sec.
+C Valve "VI-1 " to "CTH6C " closing after 3.68500000E-02 sec.
+C Valve "VI-5 " to "CTH6C " opening after 3.72000000E-02 sec.
+C Valve "II-2 " to "IICC " closing after 3.82000000E-02 sec.
+C Valve "II-6 " to "IICB " opening after 3.87000000E-02 sec.
+C Valve "VI-2 " to "VICC " closing after 3.96000000E-02 sec.
+C 800 .04 -120.72051 -12.665015 138.181338 238.820605 227.470808 260.
+C 0.0 0.0 .822537008
+BLANK card ending output variable requests (just node voltages, here)
+C Valve "II-6 " to "IICB " opening after 5.54000000E-02 sec.
+C Valve "VI-2 " to "VICC " closing after 5.63000000E-02 sec.
+C Valve "VI-6 " to "VICB " opening after 5.68500000E-02 sec.
+C Valve "II-3 " to "CTH2C " closing after 5.76500000E-02 sec.
+C Valve "II-1 " to "CTH2C " opening after 5.83500000E-02 sec.
+C Valve "VI-3 " to "CTH6C " closing after 5.90500000E-02 sec.
+C Valve "VI-1 " to "CTH6C " opening after 5.96000000E-02 sec.
+C 1200 .06 -160.8791 0.0 282.172623 256.182494 395.98766 260.
+C 0.0 .840036806 .840753821
+C Variable max:92.4476735 46.4552844 544.762078 580.755428 541.946569 260.
+C .44972865 1.16857933 1.10230727
+C Times of max : 0.0 .041 .0444 .044 .02855 .5E-4
+C .03685 .04185 .0416
+C Variable min:-211.70165 -165.79475 -.1027E-12 -35.63939 -.1839E-12 .51245E-13
+C -.03932269 -.00819858 -.0265962
+C Times of min : .02335 .0508 .00385 .05325 .0015 0.0
+C .0372 .04575 .0231
+ PRINTER PLOT
+ 194 5. 0.0 60. VI-5 CTH6C { Axis limits : (-0.393, 4.497)
+ 144 5. 0.0 60. S4- { Axis limits : (0.000, 5.448)
+BLANK card terminating batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc64.dat b/benchmarks/dc64.dat
new file mode 100644
index 0000000..adbd4d3
--- /dev/null
+++ b/benchmarks/dc64.dat
@@ -0,0 +1,57 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-64
+C Example drawn from the dynamite EMTP Newsletter article by W. Scott Meyer,
+C "EMTP Data Modularization and Sorting ...," Volume 4, No. 2, Sec. V,
+C November, 1983. $PREFIX and $SUFFIX may be installation-dependent.
+C Miscellaneous data cards and TACS have been added to allow execution
+C to continue through the reading of switch cards, thereby documenting
+C the $INCLUDE evaluation and subsequent sorting. The $INCLUDE file
+C DC64INCL.DAT was created by 2nd subcase of companion data case DC-36.
+C For nearly identical case (except no use of dummy internal nodes, which
+C makes it less general), see DC-8 (associated with first subcase of DC-36).
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+$SUFFIX, .dat { File name of $INCLUDE will be followed by this file type
+$DUMMY, DUM000 { Offset for name of dummy nodes explicitely reaffirms defaults
+ .005 4.0 { DELTAT and TMAX are in fact arbitrary, since no simulation
+ 1 -1 1 1 1 { Arbitrary values, since no simulate
+TACS HYBRID
+99 FIRE1 = TIMEX
+99 FIRE2 = TIMEX
+99 FIRE3 = TIMEX
+13FAKE
+98 FIRE452+UNITY 1. 0. 0. TIMEX
+98 FIRE552+UNITY 1. 0. 0. TIMEX
+98 FIRE652+UNITY 1. 0. 0. TIMEX
+BLANK card ends all TACS data
+$INCLUDE, LIMARG = 20 { Reduce max # of arguments from default value of 1200
+$INCLUDE, dc64incl, ACNOD, #MINUS, ##PLUS, #FIRE { Note "##MID" of DC-8 missing
+BLANK card ending BRANCH cards
+BLANK card ending SWITCH cards
+$ABORT { Abort this simulation; restart ATP using next data set
+aaaaa bbbbb ccccc --- any data card such as this before BNDC should be ignored
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases will illustrate use of dependent variables within an
+C INCLUDE file. The 5th subcase of DC36 involved 3, and it created the
+C punch file DC36E.PCH that now will be used. Note the 2nd argument is
+C the line-to-line RMS voltage, which will be assumed to be 500 kV. This
+C is converted to line-to-neutral peak by dividing by the square root of 3
+C and multiplying by the square root of 2: 500000 * root (2/3) = 408248
+ .005 4.0 { DELTAT and TMAX are in fact arbitrary, since no simulation
+ 1 -1 0 { Arbitrary values, since no simulation will occur
+ JDAYA 1.0 { 1st of 3 nodes used to connect 3-phase source
+ JDAYB 1.0 { 2nd of 3 ...
+ JDAYC 1.0 { 3rd of 3 ...
+BLANK card ending BRANCH cards
+BLANK card ending SWITCH cards
+C $PREFIX, [] { $INCLUDE files are located in same place as this main data file
+$SUFFIX, .pch { File name of $INCLUDE will be followed by this file type
+C File Node Amplitude Hertz Degrees T-start
+$INCLUDE, dc36e, JDAY, 500.E+3, 50.0, -10.0, 0.0, { Subcase 5 of DC-36
+C Source. 4.08E+05 5.00E+01 -1.00E+01 0.00E+00 |14JDAYA 408248.29 50.0 -10.0 0.0
+C Source. 4.08E+05 5.00E+01 -1.30E+02 0.00E+00 |14JDAYB 408248.29 50.0 -130. 0.0
+C Source. 4.08E+05 5.00E+01 -2.50E+02 0.00E+00 |14JDAYC 408248.29 50.0 -250. 0.0
+BLANK card ending SOURCE cards
+$STOP { Input data interpretation is all we want to see, so halt execution
+BEGIN NEW DATA CASE
+BLANK
+EOF ---- Needed so "OVER1" or "SPYING" ("DATA") ends input here during reading
diff --git a/benchmarks/dc64incl.dat b/benchmarks/dc64incl.dat
new file mode 100644
index 0000000..d295126
--- /dev/null
+++ b/benchmarks/dc64incl.dat
@@ -0,0 +1,47 @@
+KARD 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14
+ 14 15 15 16 16 17 17 18 18 19 19 21 21 21 22 22 22 23 23 23 24 24 24 25 25
+ 25 26 26 26
+KARG 1 -1 1 -1 1 -3 1 -3 1 -5 1 -5 3 -4 3 -4 3 -6 3 -6 3 -2 3 -2 1
+ 2 1 2 1 2 1 3 1 3 1 3 2 4 -1 2 4 -3 2 4 -5 1 4 -4 1 4
+ -6 1 4 -2
+KBEG 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3
+ 9 3 9 3 9 3 9 3 9 3 9 9 65 3 9 65 3 9 65 3 9 65 3 9 65
+ 3 9 65 3
+KEND 7 14 7 14 7 14 7 14 7 14 7 14 8 14 8 14 8 14 8 14 8 14 8 14 7
+ 14 7 14 7 14 7 14 7 14 7 14 14 69 8 14 69 8 14 69 8 13 69 8 13 69
+ 8 13 69 8
+KTEX 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 1 1
+/BRANCH
+C3 BEGIN WITH ANODE REACTORS AND PARALLEL RESISTORS (6 PAIRS):
+ _NODEA__MID1 3000.
+ _NODEA__MID1 1.0
+ _NODEB__MID3 3000.
+ _NODEB__MID3 1.0
+ _NODEC__MID5 3000.
+ _NODEC__MID5 1.0
+ __PLUS__MID4 3000.
+ __PLUS__MID4 1.0
+ __PLUS__MID6 3000.
+ __PLUS__MID6 1.0
+ __PLUS__MID2 3000.
+ __PLUS__MID2 1.0
+C3 NEXT COME THE SNUBBER CIRCUITS, ACROSS VALVES AND ANODE REACTORS:
+ _NODEA_MINUS 1200. 0.1
+ _NODEB_MINUS 1200. 0.1
+ _NODEC_MINUS 1200. 0.1
+ _NODEA__PLUS 1200. 0.1
+ _NODEB__PLUS 1200. 0.1
+ _NODEC__PLUS 1200. 0.1
+C3 NEXT COME THE VALVES:
+/SWITCH
+11__MID1_MINUS _FIRE2
+11__MID3_MINUS _FIRE4
+11__MID5_MINUS _FIRE6
+11__MID4_NODEA _FIRE5
+11__MID6_NODEB _FIRE1
+11__MID2_NODEC _FIRE3
+$EOF User-supplied header cards follow. 11-Sep-88 10.41.14
+ARG, _NODE, _MINUS, __PLUS, _FIRE
+DUM, __MID1, __MID2, __MID3, __MID4, __MID5, __MID6
diff --git a/benchmarks/dc65.dat b/benchmarks/dc65.dat
new file mode 100644
index 0000000..9deb563
--- /dev/null
+++ b/benchmarks/dc65.dat
@@ -0,0 +1,63 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-65
+C The beginning case-marker card and the present comment cards represent
+C an exception that must be carefully remembered. They are an exception
+C to the rule that nothing must precede the definitions of argum. vectors
+C KARD, KARG, KBEG, KEND, and KTEX. Well, only here, in and around KARD
+C lines is such exceptional input allowed. Beginning with the very first
+C KARG card and ending with the last KTEX card, there must be nothing
+C but numbers. Now, about the data case, which was produced (except for
+C these exceptional cards at the top!) by the 3rd subcase of DC-36, which
+C uses "DATA BASE MODULE". There is a single argument, which is TMAX,
+C the end-time of the study. The basic problem is that of DC-4, which
+C has been modified by the removal of connectivity and phasor printout.
+C To see 42 steps, key "file_name" as follows: "dc65. , 0.42" (note
+C 3 or more blanks preceding the comma are required for automatic "dat".
+KARD 2
+KARG 1
+KBEG 13
+KEND 16
+KTEX 0
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .010 TMAX
+ 1 1 0 3 1 -1
+ 5 5 20 20
+ BRANCH NAME:First { Even though name could go on next card, use this instead
+ GEN TRAN 5.0 5.E4 3
+ TRAN NAME R-mag 1.E4
+93TRAN NAME Magnet .005 30. 3
+ 0.0 0.0 { 1st point being origin is request to reflect
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN LOADG 255. 5.E4 3
+C Note: original fixed-format card (next comment) converted to free-format:
+C LOADG 1.E-6
+0,LOADG, , , , 1.E-6, 0.0, 0.0, , , , , ,
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards.
+C Total network loss P-loss by summing injections = 8.286714400785E+00
+C Inject: GEN 70. 70. .23676326859385 .25769284993889 8.2867144007848
+C Inject: 0.0 0.0 -.1017288531066 -23.2514964 3.5605098587304
+C ---- Initial flux of coil "TRAN " to " " = -1.13295190E+01
+C Step Time GEN TRAN TRAN GEN TRAN
+C TRAN TERRA LOADG
+C 0 0.0 6.270257621 63.72974238 63.72974215 70. 63.72974238
+C 1 .01 6.156651781 63.83984825 63.83984802 69.99650003 63.83984825
+ GEN TRAN
+BLANK card ending program output-variable requests.
+C 42 .42 1.105583309 62.81064576 62.81064551 63.91622907 62.81064576
+C Variable maxima : 6.270257621 64.72841365 64.7284134 70. 64.72841365
+C Times of maxima : 0.0 .18 .18 0.0 .18
+C Variable minima : 1.105583309 62.81064576 62.81064551 63.91622907 62.81064576
+C Times of minima : .42 .42 .42 .42 .42
+ PRINTER PLOT
+$WIDTH, 79, { Switch to narrow output to minimiz output (rest is of no interest)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc66.dat b/benchmarks/dc66.dat
new file mode 100644
index 0000000..fab8e8c
--- /dev/null
+++ b/benchmarks/dc66.dat
@@ -0,0 +1,210 @@
+BEGIN NEW DATA CASE shots:40 part:-1
+C BENCHMARK DC-66
+C Parallel Monte Carlo simulation is the only legitimate reason for the
+C solution of this data case, which is derived from DC-24. See the
+C article by Meyer and Liu in the December, 1988, issue of EMTP News.
+C Note that the number of energizations has been set to NENERG = 999
+C whereas output is minimized: no connectivity, no phasor solution, and
+C finally, no miniature printer plots of switch times. About special
+C features, the central statistics file PARALLEL.LIS must exist before
+C the simulation has begun. If it does not, it should be created using
+C the INIT command of OPMC (OBSERVE PARALLEL MONTE CARLO). So as
+C to identify the process independent of the STARTUP file, note the
+C use of "USER IDENTIFICATION" to override USERID of STARTUP. The
+C creation of full tables (including "LABCOM" storage) is illustrated
+C (see MEMSAV = 1). This is why there is $OPEN usage on both units
+C LUNIT2 = 2 and LUNIT9 = 9. One solution needs this. But all the
+C remaining ones should have MEMSAV = 0, in which case the file OPEN
+C and CLOSE on unit LUNIT2 can and should be deleted.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+USER IDENTIFICATION Paris FORMATTED ! { Overrides A6 USERID of STARTUP for plots
+MINIMUM TABLE SIZES { Request creation of LISTSIZE.PMC during initialization
+CENTRAL STATISTICS FILE { Request word that precedes the disk file name
+c:\atp\parallel.lis { Leading percent sign avoids confusion of "/" in column 1
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+ 100.E-6 20.E-3 60.
+ 1 1 0 0 1 -1 0 0 200
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE shots:10 part:1
+C 2nd of 4 subcases will do 10 shots as the 1st of 4 parts (see preceding card)
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+USER IDENTIFICATION Paris FORMATTED ! { Overrides A6 USERID of STARTUP for plots
+MINIMUM TABLE SIZES { Request creation of LISTSIZE.PMC during initialization
+CENTRAL STATISTICS FILE { Request word that precedes the disk file name
+c:\atp\parallel.lis { Leading percent sign avoids confusion of "/" in column 1
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+ 100.E-6 20.E-3 60.
+ 1 1 0 0 1 -1 0 0 200
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE shots:15 part:2
+C 3rd of 4 subcases will do 15 shots as the 2nd of 4 parts (see preceding card)
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+USER IDENTIFICATION Paris FORMATTED ! { Overrides A6 USERID of STARTUP for plots
+MINIMUM TABLE SIZES { Request creation of LISTSIZE.PMC during initialization
+CENTRAL STATISTICS FILE { Request word that precedes the disk file name
+c:\atp\parallel.lis { Leading percent sign avoids confusion of "/" in column 1
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+ 100.E-6 20.E-3 60.
+ 1 1 0 0 1 -1 0 0 200
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE shots:12 part:4
+C 4th of 4 subcases will do 12 shots as the 4th of 4 parts (see preceding card)
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+USER IDENTIFICATION Paris FORMATTED ! { Overrides A6 USERID of STARTUP for plots
+MINIMUM TABLE SIZES { Request creation of LISTSIZE.PMC during initialization
+CENTRAL STATISTICS FILE { Request word that precedes the disk file name
+c:\atp\parallel.lis { Leading percent sign avoids confusion of "/" in column 1
+OMIT BASE CASE { Comment out this card, if a base case solution is to be added
+ 100.E-6 20.E-3 60.
+ 1 1 0 0 1 -1 0 0 200
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 1 1 0 0 1 { KSTOUT is blank, not 0! } 1
+ 2 2 10 10 { Printout frequency change only if base case
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+ ASW10 BSW10 CSW10 { Request for these node voltage outputs
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending statistical tabulation requests --- NO SWITCH PLOTS ---
+BEGIN NEW DATA CASE
+C 5th of 4 subcases shows the results of the preceding 4 using OPMC (OBSERVE ..
+CENTRAL STATISTICS FILE { Request word that precedes the disk file name
+c:\atp\parallel.lis { Leading percent sign avoids confusion of "/" in column 1
+OBSERVE PARALLEL MONTE CARLO
+SHOW ALL { Command of OPMC to show all parts active within central statistics file
+SHOW TOP { Show extra header records (supporting material)
+QUIT { Command of OPMC to quit this universal display routine
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc67.dat b/benchmarks/dc67.dat
new file mode 100644
index 0000000..313b673
--- /dev/null
+++ b/benchmarks/dc67.dat
@@ -0,0 +1,78 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-67
+C Conversion of saturable TRANSFORMER component to equivalent (but linear)
+C [R], [L]. Data comes from DC-5. Nonlinear characteristic is ignored
+C (it is the phasor I-steady and PSI-steady that are used for matrix).
+CHANGE TRANSFORMER { Special-request word transfers to special conversion code
+$ERASE { Rewind (erase) buffer of punched cards as we prepare to punch more
+ TRANSFORMER .005 30.TRANFF 1.E4 3
+ .005 30. { 1st point of (current, flux): characteristic
+ .01 40. { 2nd point of (current, flux): characteristic
+ .02 45. { 3rd point ...
+ 0.1 50. { 4th point ...
+ 5.0 100. { 5th and final point of (current, flux) char.
+ 9999 { Special terminator bounds characteristic (current = 9999)
+ 1GENT OPEN 5.0 5.E4 50. { 1st of 2 winding cards
+ 2LOADFF 20. 2.E5 100. { 2nd and final winding card
+C The second of two subcases is very similar to the first. I-steady and
+C PSI-steady are different, to change the matrix values. Also, the names
+C of the nodes have been altered.
+ TRANSFORMER .100 50.TRANFF 1.E4 3
+ .005 30. { 1st point of (current, flux): characteristic
+ .01 40. { 2nd point of (current, flux): characteristic
+ .02 45. { 3rd point ...
+ 0.1 50. { 4th point ...
+ 5.0 100. { 5th and final point of (current, flux) char.
+ 9999 { Special terminator bounds characteristic (current = 9999)
+ 1TOP1 BOT1 5.0 5.E4 50. { 1st of 2 winding cards
+ 2TOP2 BOT2 20. 2.E5 100. { 2nd and final winding card
+BLANK card ends saturable TRANSFORMER components to be converted to [R], [L].
+C <++++++> Cards punched by support routine on 04-MAY-91 02:30:31 <++++++>
+C 51GENT OPEN 5906.6393442623 .127950819672E7
+C 52LOADFF 11803.278688525 .245901639344E7
+C 23626.557377049 .511803278689E7
+C <++++++> Cards punched by support routine on 04-MAY-91 02:30:31 <++++++>
+C 51TOP1 BOT1 104.0099009901 297524.75247525
+C 52TOP2 BOT2 198.0198019802 495049.5049505
+C 416.0396039604 .11900990099E7
+$PUNCH { Flush the punched-card output of just-created Type-51, 52, ...
+BEGIN NEW DATA CASE
+C Artificial illustration of the conversion of pre- "M39." TACS data
+C to post-"M39." TACS data. Rather than being a coherent, consistent data
+C case, this is simply the random collection of many old components. Note
+C that all EMTP data cards preceding the TACS data itself is missing (there
+C is no provision for processing it). Data cards after the blank card that
+C ends TACS data have no effect, since they never will be processed.
+OLD TO NEW TACS { Transfer to utility that converts old TACS data to new
+ 1OUT1 +GEN
+ 1.0
+ 1.0 1.0
+99BREAK = 1.5E+8 * TIMEX + 1.0E+5
+98GRID 51+UNITY BREAK DRIVE
+BLANK card ending TACS function blocks
+ 1DC 1.0 -1.
+ 2GEN 100. 1.0 -1.
+BLANK card ending TACS source cards
+C A comment card will be added to demonstrate that these are preserved
+88DEV50I50+SOURCE 0.8
+88DEV51C51+UNITY 1.MIDDLESOURCE
+88DEV54V54+DEV52O -0.2 0.3 QUART
+88DEV55 55+SOURCE
+ -1.0
+ -0.5
+ 0.0
+ 0.5
+ 1.0
+ 9999.
+BLANK card ending TACS supplemental variables and devices
+ OUT1 GEN
+BLANK card ending TACS output requests
+ EQUIVR 2775. { Initial condition matches R during phasor solution
+BLANK card ending TACS initial conditions (and also all TACS data)
+$PUNCH, dc67b.pch ! { Hold lower case
+ PRINTER PLOT { Beginning of data following TACS data --- will be ignored
+ 143 .2 0.0 1.0 OUT1
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dc68.dat b/benchmarks/dc68.dat
new file mode 100644
index 0000000..f90371b
--- /dev/null
+++ b/benchmarks/dc68.dat
@@ -0,0 +1,1362 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-68
+C Illustration of MODELS using six of Laurent Dube's simple test cases
+C 1st of 16 data subcases. This was taken from Laurent's file TC1.DAT.
+C July of 1995, this is converted to the new MODELS STAND ALONE by
+C adding STAND ALONE to the MODELS declaration. Also, all data
+C between ENDMODELS & batch-mode plot cards (just BLANK) was deleted.
+ 0.1 1.00
+ 1 1 1 1 1
+MODELS STAND ALONE
+STORAGE integer pages:0 real pages:0 ENDSTORAGE
+MODEL tc1
+ VAR a
+ INPUT i
+ EXEC
+ a:=t
+ ENDEXEC
+ENDMODEL
+USE tc1 AS tc1a
+ INPUT i:=0
+ENDUSE
+RECORD tc1a.a AS a
+ENDMODELS
+C Step Time MODELS
+C A
+C 0 0.0 0.0
+C 1 0.1 0.1
+C 2 0.2 0.2
+C 3 0.3 0.3
+C 4 0.4 0.4
+C 5 0.5 0.5
+C 6 0.6 0.6
+C 7 0.7 0.7
+C 8 0.8 0.8
+C 9 0.9 0.9
+C 10 1.0 1.0
+C Variable maxima : 1.0
+C Times of maxima : 1.0
+C Variable minima : 0.0
+C Times of minima : 0.0
+BLANK card terminating plotting
+BEGIN NEW DATA CASE
+C Illustration of MODELS using six of Laurent Dube's simple test cases
+C 2nd of 16 data subcases. This was taken from Laurent's file TC2.DAT.
+ 0.001 0.01
+ 1 1 1 1 1
+MODELS
+INPUT elec90 {v(NOD1)}
+ elec91 {i(NOD2)}
+ elec93 {switch(NOD2)}
+ elec94 {imssv(NOD1)}
+ elec95 {imssi(NOD2)}
+MODEL TC2
+ INPUT i[90..95]
+ VAR a[90..95]
+ EXEC a[90..95]:=i[90..95] ENDEXEC
+ENDMODEL
+USE tc2 AS tc2
+ INPUT i[90]:=elec90
+ i[91]:=elec91
+ i[92]:=0
+ i[93]:=elec93
+ i[94]:=elec94
+ i[95]:=elec95
+ENDUSE
+RECORD tc2.a[90] AS a90
+ tc2.a[91] AS a91
+ tc2.a[92] AS a92
+ tc2.a[93] AS a93
+ tc2.a[94] AS a94
+ tc2.a[95] AS a95
+ENDMODELS
+ NOD1 NOD2 1.00
+BLANK card after last electric network branch
+ NOD2 MEASURING
+BLANK card ends switches
+14NOD1 100.0 50.0 -30. -1.0
+BLANK card after last electric network source
+ NOD1
+C Step Time NOD1 MODELS MODELS MODELS MODELS MODELS MODELS
+C A90 A91 A92 A93 A94 A95
+C *** Phasor I(0) = 8.6602540E+01 Switch "NOD2 " to " " closed in the steady-state.
+C 0 0.0 86.6025404 86.6025404 86.6025404 0.0 1.0 -50. -50.
+C 1 .1E-2 97.8147601 97.8147601 97.8147601 0.0 1.0 0.0 0.0
+C 2 .002 99.4521895 99.4521895 99.4521895 0.0 1.0 0.0 0.0
+C 3 .003 91.3545458 91.3545458 91.3545458 0.0 1.0 0.0 0.0
+BLANK card ends selective node voltage outputs
+C 8 .008 -40.673664 -40.673664 -40.673664 0.0 1.0 0.0 0.0
+C 9 .009 -66.913061 -66.913061 -66.913061 0.0 1.0 0.0 0.0
+C 10 .01 -86.60254 -86.60254 -86.60254 0.0 1.0 0.0 0.0
+C Variable maxima : 99.4521895 99.4521895 99.4521895 0.0 1.0 0.0 0.0
+C Times of maxima : .002 .002 .002 0.0 0.0 .1E-2 .1E-2
+C Variable minima : -86.60254 -86.60254 -86.60254 0.0 1.0 -50. -50.
+C Times of minima : .01 .01 .01 0.0 0.0 0.0 0.0
+BLANK card terminating plotting
+BEGIN NEW DATA CASE
+PRINTED NUMBER WIDTH, 12, 2, { Keep dT loop precision the same, but 2 blank separators
+C Illustration of MODELS using six of Laurent Dube's simple test cases
+C 3rd of 16 data subcases. This was taken from Laurent's file TC9.DAT.
+ 0.001 0.01
+ 1 1 1 1 0
+MODELS
+OUTPUT tacs1, tacs2, arcsh, arcch, arcth
+MODEL tc9
+ INPUT i {dflt:0}
+ VAR tacs[1..2]
+ OUTPUT tacs[1..2]
+ EXEC
+ tacs[1]:=cos(2*pi*1000/6*t)
+ tacs[2]:=sin(2*pi*1000/6*(t+startstep))
+ ENDEXEC
+ENDMODEL
+USE tc9 AS tc9
+ OUTPUT tacs1:=tacs[1]
+ tacs2:=tacs[2]
+ENDUSE
+C 21 September 2002, add HYPER to demonstrate corrected hyperbolic functions.
+C Previously, the inverse sinh, cosh, and tanh were missing. Dube did not halt
+C execution, however. Instead, he returned impossible function valu 88888.88..
+C as first reported by Orlando Hevia of Santa Fe, Argentina. WSM corrects XPR2
+C Note the internal names such as arcsinhyperbolic are impractically long.
+C This is done on purpose to demonstrate Dube's flexibility in this regard.
+MODEL HYPER -- module that serves only to verify 3 inverse hyperbolic function
+ VAR arcsinhyperbolic, arccoshyperbolic, arctanhyperbolic, arg
+ OUTPUT arcsinhyperbolic, arccoshyperbolic, arctanhyperbolic
+EXEC
+ arg := 200 * T -- argument of 3 function usages to follow
+ arcsinhyperbolic := ASINH( arg ) -- test hyperbolic arc sine over [0, 2]
+ IF arg >= 1.0 -- if arg of arc cosh is possible & arc tanh is impossible
+ THEN
+ arccoshyperbolic := ACOSH( arg ) -- test hyperbolic arc cosine over ...
+ arctanhyperbolic := -9999.
+ ELSE -- Alternate, if arg of arc cosh is impossible & arc tanh is possible:
+ arccoshyperbolic := -9999.
+ arctanhyperbolic := ATANH( arg ) -- test hyperbolic arc tangent over ...
+ ENDIF
+ENDEXEC
+ENDMODEL
+USE HYPER AS HYPER
+ OUTPUT ARCSH:=arcsinhyperbolic -- ATP output name ARCSH is connected to internal model name
+ OUTPUT ARCCH:=arccoshyperbolic -- ATP output name ARCCH is connected ...
+ OUTPUT ARCTH:=arctanhyperbolic -- ATP output name ARCTH is connected ...
+ENDUSE
+RECORD tacs1 AS tacs1
+ tacs2 AS tacs2
+ arcsh AS arcsh
+ arcch AS arcch
+ arcth AS arcth
+ENDMODELS
+ NOD1 NOD2 1.00
+ TACS2 NOD2 1.00
+ NOD2 NOD3 1.00
+BLANK card after last electric network branch
+ NOD2 MEASURING
+13NOD3 TACS1 1
+BLANK card ends switches
+17TACS2
+14NOD1 100.0 50.0 -1.0
+60TACS2
+BLANK card after last electric network source
+ TACS2
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 5 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time TACS2 MODELS MODELS MODELS MODELS MODELS
+C TACS1 TACS2 ARCSH ARCCH ARCTH
+C *** Phasor I(0) = 1.0000000E+02 Switch "NOD2 " to " " closed in the steady-state.
+C 0 0.0 0.0 1.0 .866025404 0.0 -9999. 0.0
+C Switch "NOD3 " to " " closing after 1.00000000E-03 sec.
+C 1 .1E-2 .866025404 0.5 .866025404 .19869011 -9999. .202732554
+C Switch "NOD3 " to " " opening after 2.00000000E-03 sec.
+C 2 .002 .866025404 -.5 .56655E-15 .39003532 -9999. .42364893
+C 3 .003 .56655E-15 -1. -.8660254 .568824899 -9999. .693147181
+BLANK card ends selective node voltage outputs
+C 4 .004 -.8660254 -.5 -.8660254 .732668256 -9999. 1.09861229
+C Switch "NOD3 " to " " closing after 5.00000000E-03 sec.
+C 5 .005 -.8660254 0.5 -.1133E-14 .881373587 0.0 -9999.
+C 6 .006 -.1133E-14 1.0 .866025404 1.01597313 .622362504 -9999.
+C 7 .007 .866025404 0.5 .866025404 1.13798205 .867014726 -9999.
+C Switch "NOD3 " to " " opening after 8.00000000E-03 sec.
+C 8 .008 .866025404 -.5 .36738E-15 1.24898333 1.04696792 -9999.
+C 9 .009 .36738E-15 -1. -.8660254 1.35044074 1.19291073 -9999.
+C 10 .01 -.8660254 -.5 -.8660254 1.44363548 1.3169579 -9999.
+BLANK card terminating plotting
+BEGIN NEW DATA CASE
+PRINTED NUMBER WIDTH, 11, 1, { Cancel preceding declaration (extra blank)
+C Illustration of MODELS using six of Laurent Dube's simple test cases
+C 4th of 16 data subcases. This was taken from Laurent's file TC10.DAT
+ 1.0 1.0
+ 1 1 1 1 1
+MODELS
+MODEL test
+COMMENT
+ Provides a quick check on the use of nested pointlist functions
+ for the representation of parametric curves.
+ Here the parameter is the variable 'r',
+ and the main functin is used as y=f(x,r)
+ using a=mainfun(x) at various values of r.
+ENDCOMMENT
+ FUNCTION fun1 POINTLIST (-inf,inf), (0,0), (inf,-inf)
+ FUNCTION fun2 POINTLIST (-inf,2*inf), (0,0), (inf,-2*inf)
+ FUNCTION fun3 POINTLIST (-inf,3*inf), (0,0), (inf,-3*inf)
+ FUNCTION fun4 POINTLIST (-inf,4*inf), (0,0), (inf,-4*inf)
+ FUNCTION mainfun POINTLIST
+ (0,0),(1,fun1(r)),(2,fun2(r)),(3,fun3(r)),(4,fun4(r))
+ FUNCTION ref(x,r):=-r*x --Same function in its analytic form
+ INPUT i
+ VAR a,r
+ INIT
+ r:=-1
+ WHILE r<5 DO
+ r:=r+1
+ write(' ')
+ write('r:',r)
+ FOR k:=0 to 3.5 by 0.5 DO
+ a:=mainfun(k)
+ write(' ',k,': ',a, ' ', ref(r,k))
+ ENDFOR
+ ENDWHILE
+ ENDINIT
+ EXEC
+ ENDEXEC
+ENDMODEL
+USE test AS test
+ INPUT i:=0
+ENDUSE
+ENDMODELS
+ NOD1 1.00
+BLANK card after last electric network branch
+BLANK card ends switches
+14NOD1 100.0 50.0 -1.0
+BLANK card after last electric network source
+ NOD1
+BLANK card ends selective node voltage outputs
+C Step Time NOD1
+C 0 0.0 100.
+C 1 1.0 100.
+C Variable maxima : 100.
+C Times of maxima : 0.0
+C Variable minima : 100.
+C Times of minima : 0.0
+BLANK card terminating plotting
+BEGIN NEW DATA CASE
+C Illustration of MODELS using six of Laurent Dube's simple test cases
+C 5th of 16 data subcases. This was taken from Laurent's file TC11.DAT
+ 0.1 1.00
+ 1 1 1 1 1
+MODELS
+MODEL tc11
+ VAR a
+ INPUT i
+ EXEC
+ a:=t
+ write ( 'Writing a line...' )
+ ENDEXEC
+ENDMODEL
+USE tc11 AS tc11
+ INPUT i:=0
+ENDUSE
+RECORD tc11.a AS a
+ENDMODELS
+ NOD1 1.00
+BLANK card after last electric network branch
+BLANK card ends switches
+14NOD1 100.0 50.0 -1.0
+BLANK card after last electric network source
+ NOD1
+C Step Time NOD1 TACS
+C A
+C 0 0.0 100. 0.0
+C 1 0.1 100. 0.1
+C 2 0.2 100. 0.2
+C 3 0.3 100. 0.3
+BLANK card ends selective node voltage outputs
+C 9 0.9 100. 0.9
+C 10 1.0 100. 1.0
+C Variable maxima : 100. 1.0
+C Times of maxima : 0.0 1.0
+C Variable minima : 100. 0.0
+C Times of minima : 0.0 0.0
+BLANK card terminating plotting
+BEGIN NEW DATA CASE
+C Illustration of MODELS using six of Laurent Dube's simple test cases
+C 6th of 16 data subcases. This was taken from Laurent's file TC13.DAT
+ 0.1 1.00
+ 1 1 1 1 1
+MODELS
+MODEL test
+ INPUT i
+ VAR a, b
+ HISTORY b
+ EXEC
+ a:=b {MAX:0.7}
+ b:=t
+ ENDEXEC
+ENDMODEL
+USE test AS test
+ INPUT i:=t
+ HISTORY b:=t
+ENDUSE
+RECORD test.a AS a
+ENDMODELS
+ NOD1 1.00
+BLANK card after last electric network branch
+BLANK card ends switches
+14NOD1 100.0 50.0 0.0
+BLANK card after last electric network source
+ NOD1
+C Step Time NOD1 TACS
+C A
+C 0 0.0 0.0 -.1
+C 1 0.1 100. 0.0
+C 2 0.2 100. 0.1
+C 3 0.3 100. 0.2
+C 4 0.4 100. 0.3
+BLANK card ends selective node voltage outputs
+C 9 0.9 100. 0.7
+C 10 1.0 100. 0.7
+C Variable maxima : 100. 0.7
+C Times of maxima : 0.1 0.9
+C Variable minima : 0.0 -.1
+C Times of minima : 0.0 0.0
+BLANK card terminating plotting
+BEGIN NEW DATA CASE
+C 7th of 16 subcases was added 22 August 1998 to illustrate a supplemental
+C variable that extends through column 80. Furthermore, it is unusual in
+C that it has no blank byte to the right of the equal sign in column 11.
+C The result is easily checked since, by inspection, it has value 9 + T.
+C For background text, see the July, 1998, newsletter. Dr. Yuan Bin called
+C our attention to this problem. But that was not the end. It was about a
+C year later that Carlos Mata pointed to the weakness of the correction: it
+C failed if column 80 contained a closed parenthesis. The correction was
+C fortified March 18, 1998, and new variable CARLOS confirms correct
+C operation. Note that the values of I1FG50 and CARLOS are equal.
+ABSOLUTE TACS DIMENSIONS
+ 10 90 100 20 30 400 350 60
+ .02 .10
+ 1 1 0 0
+TACS STAND ALONE
+99I1FG00 = 1.
+99I1FG02 = TIMEX
+99I1FG04 = 1.
+99I1FG06 = 1.
+99I1FG08 = 1.
+99I1FG10 = 1.
+99I1FG12 = 1.
+99I1FG14 = 1.
+99I1FG16 = 1.
+99I1FG18 = 1.
+98YUAN =I1FG00+I1FG02+I1FG04+I1FG06+I1FG08+I1FG10+I1FG12+I1FG14+I1FG16+I1FG18
+98CARLOS =I1FG00+I1FG02+I1FG04+I1FG06+I1FG08+I1FG10+I1FG12+ 1.5*(I1FG14+I1FG16)
+33YUAN CARLOS
+BLANK card ending all TACS data cards
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 16 subcases was added 18 August 1998 to illustrate new request words
+C that are related to repeatability of random numbers, or lack of it. Here
+C we illustrate repeatability, but the non-repeatable case really is the more
+C important. If the REPEATABLE card below is replaced by the comment card
+C that immediately precedes it, the new initialization of OVER8 (see the
+C October newsletter) is demonstrated. Previously, ATP GNU answers differed
+C from Salford and Watcom answers. Also illustrated is no output variable,
+C with MODELS doing all output. Of course, with only 2 energizations and
+C a dummy electric network, this is just a demonstrative shadow of the real
+C data case of interest (Gabor Furst's BACKFL.DAT). The dominant structural
+C feature is use of MODELS for all output of a SYSTEMATIC data case. There
+C _is_ a base case, although the engineering significance is not known.
+TRULY RANDOM NUMBERS { Alternative to following card removes repeatability
+REPEATABLE RANDOM NUMBERS { English-language override of NSEED 5 lines below
+C Note about preceding: Since the TRULY declaration is overridden by the
+C REPEATABLE declaration, in fact the TRULY declaration does nothing. But
+C it does illustrate acceptance by ATP.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .060 .300 { Time step is artificially large (5 steps to completion)
+ 1 1 1 2 1 -1 -2
+C ISW ITEST IDIST IMAX IDICE KSTOUT NSEED
+ 0 1 0 0 1 1
+ 5 5 20 20 { Printout frequency changes for base case
+MODELS HYBRID
+STORAGE integer pages:0 real pages:0 ENDSTORAGE
+MODEL tc1
+ VAR angle
+ INPUT i
+ INIT angle:=0
+ ENDINIT
+ EXEC
+ angle:= random()
+C write(' T =', t, ' MODELS random() yields =', angle )
+--- Only program output within dT loop is preceding output of variable ANGLE ---
+C To preceding output, add the energization number KNT to demonstrate
+C that a 4-byte integer is handled properly by XPR1 for WRITE(. GNU ATP
+C uses different code of IEIGHT for this than for ISTEP. WSM, 28 Aug 2010
+ write(' T =', t, 'KNT =', atp(knt), 'MODELS random() ==>', angle )
+ ENDEXEC
+ENDMODEL
+USE tc1 AS tc1a
+ INPUT i:=0
+ENDUSE
+C RECORD tc1a.angle AS angle { If activates, variable angle becomes ATP output
+ENDMODELS
+ GENA A1 1.
+ A1 1.
+ ASW1 1.
+BLANK card ending branch cards
+ A1 ASW1 4.E-3 .2E-3 2 SYSTEMATIC
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+BLANK card ending source cards
+BLANK card ending output variable requests (node voltages only, here)
+ PRINTER PLOT
+BLANK card ending plot cards (for base case only)
+BLANK card ending statistical tabulate (none possible, since no output variable)
+BEGIN NEW DATA CASE
+C 9th of 16 subcases is a meaningful case from Trainee Rod Price of BPA, who
+C assembled and tested the data during the summer and fall of 1989. The
+C study involves the 500-kV Coulee-Raver overhead line, and the model
+C includes series capacitors at Columbia. These capacitors are protected
+C by nonlinear resistors (ZnO modeling) that are monitored and bypassed
+C using MODELS. To see more interesting simulation, the end-time TMAX
+C should be increased to 100 msec. Reformulated by Laurent Dube 8 Aug 91
+C following his correction of a MODELS bug for Bob Wilson at Univ. of Idaho
+C in Moscow. It was observed that the answer of this 7-th subcase changed,
+C too (i.e., before it was wrong, although perhaps not by much)!
+C 14 Sept 1993, WSM adds $BLANK DATA below to protect the user who has
+C NOBLAN of STARTUP equal to unity (equivalent to $BLANK HALT to halt if
+C a true blank card is found. This MODELS data does use blank lines as
+C comments, and MODELS ignores the blanks. The important thing is to
+C prevent EMTP data input from halting before MODELS receives the blanks!
+C 14 October 2000, the addition of one IF-statement to OVER16 (see 8th
+C subcase of DCNEW-16 and January, 2001, newsletter) changes the answers
+C of this subcase slightly. To document this, output variables are have
+C been made more relevant. Differences follow the fault to ground. From
+C the .DBG file, the new logic is used 3 times:
+C OVER16 bypasses compensation. J, T = 43 2.000000000000E-02
+C OVER16 bypasses compensation. J, T = 43 3.150000000000E-02
+C OVER16 bypasses compensation. J, T = 43 4.990000000000E-02
+C It is not surprising that the difference shows up after step 400, which
+C corresponds to that switch closure at T = 20 msec (1st of 3 uses).
+C The following comparison shows how extrema are affected only slightly:
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 5 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time CR25A CR20A CRZ1A MODELS MODELS MODELS MODELS MODELS
+C CR30A TERRA CR20A VCAPA IZNA PZNA EZNA GAPA
+C Old maxima : 27237.7816 15421.0962 .445513E-4 39549.6402 .445515E-4 .139454E10 .500879 E7 1.0
+C New maxima : 26931.1785 15312.52 .445513E-4 39549.6402 .445515E-4 .135464E10 .4929451E7 1.0
+C Times of both : .03175 .0375 .0125 .0125 .0125 .028 .05 .0315
+C Old minima : -7552.2441 -28033.65 -7291.149 -191594.73 -7291.149 .432745E-9 0.0 0.0
+C New minima : -7466.2202 -28099.511 -7350.3614 -184341.43 -7350.3614 .432745E-9 0.0 0.0
+C Times of old : .0378 .02865 .02815 .02815 .02815 0.0 0.0 0.0
+C Times of new : .0378 .02865 .02805 .02805 .02805 0.0 0.0 0.0
+C About switching times, both have: Gap "CR25A " to "CR30A " closing
+C after 3.15000000E-02 sec. But openings differ by one time step:
+C Old: Gap "CR25A " to "CR30A " opening after 4.98500000E-02 sec.
+C New: Gap "CR25A " to "CR30A " opening after 4.99000000E-02 sec.
+PRINTED NUMBER WIDTH, 12, 2, { Cancel wider output of preceding subcase
+$BLANK DATA { Request old treatment of true blanks (not
+ .000050 .050 60.
+ 1 9 1 3 1 -1
+ 5 5 20 20 100 100
+C
+MODELS HYBRID
+
+INPUT -- declare names and function of all MODELS inputs from EMTP
+
+ vc3a {v(CR30A)} -- vc3a = voltage at node CR30A
+ vc2a {v(CR20A)} -- vc2a = voltage at node CR20A
+ vc3b {v(CR30B)} -- vc3b = voltage at node CR30B
+ vc2b {v(CR20B)} -- vc2b = voltage at node CR20B
+ vc3c {v(CR30C)} -- vc3c = voltage at node CR30C
+ vc2c {v(CR20C)} -- vc2c = voltage at node CR20C
+ iznoa {i(CRZ2A)} -- iznoa = current through switch at node CRZ2A
+ iznob {i(CRZ2B)} -- iznob = current through switch at node CRZ2B
+ iznoc {i(CRZ2C)} -- iznoc = current through switch at node CRZ2C
+
+OUTPUT -- declare names of MODELS outputs to EMTP
+
+ gapa, gapb, gapc -- switch control signals
+
+MODEL flash
+
+comment ****************************************************************
+* *
+* Function: set or cancel the gap firing control signal *
+* Inputs : voltage and current across ZnO resistor *
+* Output : the firing signal to the electrical ZnO component *
+* *
+************************************************************* endcomment
+
+ INPUT vcap -- voltage difference across series caps [Volts]
+ iczn -- ZNO current [Amps]
+
+ DATA Pset -- power setting [Megajoules/msec]
+ Eset -- energy setting [Megajoules]
+ fdel -- firing delay [msec]
+ fdur -- firing duration [msec]
+
+ VAR power -- power into ZnO resistor [Watts]
+ trip -- gap firing control signal [0 or 1]
+ energy -- energy into ZnO resistor [Joules]
+ tfire -- time at which the gap was last fired [sec]
+
+ OUTPUT trip
+
+ HISTORY INTEGRAL(power) {DFLT:0}
+
+ INIT trip:=0
+ tfire:=0
+ ENDINIT
+
+ EXEC
+ ------------------------------------------------------------------
+ power:=vcap*iczn
+ energy:=INTEGRAL(power)
+ ------------------------------------------------------------------
+ IF trip>0 -- is already firing
+ AND t-tfire>fdur*1.e-3 -- has exceeded firing duration
+ THEN
+ trip:=0 -- cancel the firing signal
+ tfire:=0 -- null the firing time
+ ENDIF
+ ------------------------------------------------------------------
+ IF trip=0 -- is not signaling to fire
+ AND tfire=0 -- firing condition not yet detected
+ AND ( power >= Pset * 1.e9 -- power setting exceeded
+ OR energy >= Eset * 1.e6 ) -- energy setting exceeded
+ THEN
+ tfire:=t -- set the firing detection time
+ ENDIF
+ ------------------------------------------------------------------
+ IF trip=0 -- is not signaling to fire
+ AND tfire>0 -- firing condition has been detected
+ AND t-tfire>=fdel*1.e-3 -- firing delay exceeded
+ THEN
+ trip:=1 -- set the firing signal
+ ENDIF
+ ------------------------------------------------------------------
+ ENDEXEC
+
+ENDMODEL
+
+USE flash AS flasha ----------------------------------- PHASE A ------
+
+ TIMESTEP MIN: 0.0005
+
+ INPUT vcap:=vc3a-vc2a -- voltage across caps
+ iczn:=iznoa -- current through ZnO resistor
+
+ DATA Pset:= 1 -- power setting [MJ/mS]
+ Eset:= 9 -- energy setting [MJ]
+ fdel:= 4 -- firing delay [msec]
+ fdur:=20 -- firing duration [msec]
+
+ OUTPUT gapa:=trip -- passes value of 'trip' to MODELS variable 'GAPA'
+
+ENDUSE -----------------------------------------------------------------
+
+USE flash AS flashb ----------------------------------- PHASE B ------
+
+ TIMESTEP MIN: 0.0005
+
+ INPUT vcap:=vc3b-vc2b -- voltage across caps
+ iczn:=iznob -- current through ZnO resistor
+
+ DATA Pset:= 1 -- power setting [MJ/mS]
+ Eset:= 9 -- energy setting [MJ]
+ fdel:= 4 -- firing delay [msec]
+ fdur:=20 -- firing duration [msec]
+
+ OUTPUT gapb:=trip -- passes value of 'trip' to MODELS variable 'GAPB'
+
+ENDUSE -----------------------------------------------------------------
+
+USE flash AS flashc ----------------------------------- PHASE C ------
+
+ TIMESTEP MIN: 0.0005
+
+ INPUT vcap:=vc3c-vc2c -- voltage across caps
+ iczn:=iznoc -- current through ZnO resistor
+
+ DATA Pset:= 1 -- power setting [MJ/mS]
+ Eset:= 9 -- energy setting [MJ]
+ fdel:= 4 -- firing delay [msec]
+ fdur:=20 -- firing duration [msec]
+
+ OUTPUT gapc:=trip -- passes value of 'trip' to MODELS variable 'GAPC'
+
+ENDUSE -----------------------------------------------------------------
+
+RECORD flasha.vcap AS VCAPA
+ flasha.iczn AS IZNA
+ flasha.power AS PZNA
+ flasha.energy AS EZNA
+ flasha.trip AS GAPA
+
+ENDMODELS
+C --------------------- End MODELS data, begin electric network:
+C **** Series Capacitors, Xc = 28.4 ohms
+C
+ CR20A CR30A 93.40
+ CR20B CR30B 93.40
+ CR20C CR30C 93.40
+C
+ CR20D CR30D 93.40
+ CR20E CR30E 93.40
+ CR20F CR30F 93.40
+C
+C **** Jumpers to help EMTP convergence with ZNO
+C
+ CRZ1A CRZ2A 0.01
+ CRZ1B CRZ2B 0.01
+ CRZ1C CRZ2C 0.01
+C
+ CRZ1D CRZ2D 0.01
+ CRZ1E CRZ2E 0.01
+ CRZ1F CRZ2F 0.01
+C
+C **** ZNO protection for Caps, I=1.8KA, 2.2 PU, alpha = 40, Vref =147.5
+C
+92CRZ1A CR20A 5555. 1
+ 147500. -1.
+ 1.0 40. .80
+ 9999.
+92CRZ1B CR20B CRZ1A CR20A 5555.
+92CRZ1C CR20C CRZ1A CR20A 5555.
+C
+92CRZ1D CR20D CRZ1A CR20A 5555.
+92CRZ1E CR20E CRZ1A CR20A 5555.
+92CRZ1F CR20F CRZ1A CR20A 5555.
+C
+C **** Source Impedances
+C
+51SRC1A RAVBA 0.1 20.0
+52SRC1B RAVBB 0.1 18.5
+53SRC1C RAVBC
+C
+51SRC1A RAVBA 300.0
+52SRC1B RAVBB 150.0
+53SRC1C RAVBC
+C
+C
+51SRC2A GRCBA 0.1 7.00
+52SRC2B GRCBB 0.1 10.7
+53SRC2C GRCBC
+C
+51SRC2A GRCBA 350.0
+52SRC2B GRCBB 150.0
+53SRC2C GRCBC
+C
+C *** LINE IMPEDANCES Values have been 1/4 to get high fault MVA ****
+C
+51CR50A CR30A 0.5 14.0
+52CR50B CR30B 8. 52.0
+53CR50C CR30C
+C
+51CR50D CR30D 0.5 14.0
+52CR50E CR30E 8. 52.0
+53CR50F CR30F
+C
+51CR01A CR20A 0.4 9.0
+52CR01B CR20B 5. 36.0
+53CR01C CR20C
+C
+51CR01D CR20D 0.4 9.0
+52CR01E CR20E 5. 36.
+53CR01F CR20F
+C
+C ***** BYPASS IMPEDANCE ****
+ CR20A CR25A 5. 0.23
+ CR20B CR25B 5. 0.23
+ CR20C CR25C 5. 0.23
+ CR20D CR25D 5. 0.23
+ CR20E CR25E 5. 0.23
+ CR20F CR25F 5. 0.23
+C **** PARALLEL RESISTOR
+ CR20A CR25A 200.
+ CR20B CR25B 200.
+ CR20C CR25C 200.
+ CR20D CR25D 200.
+ CR20E CR25E 200.
+ CR20F CR25F 200.
+BLANK card ending program branch cards.
+C **** TACS CONTROLLED CAP BYPASS SWITCHES *******
+C ** SWITCH 1
+12CR25A CR30A GAPA 11
+12CR25B CR30B GAPB 1
+12CR25C CR30C GAPC 1
+C 12CR25D CR30D GAPD 1
+C 12CR25E CR30E GAPE
+C 12CR25F CR30F GAPF
+ CR25D CR30D -1.0 10.
+ CR25E CR30E -1. 10.
+ CR25F CR30F -1. 10.
+C
+C **** Main Breaker Switches
+C
+ RAVBA CR50A -1.0 10.0
+ RAVBB CR50B -1.0 10.0
+ RAVBC CR50C -1.0 10.0
+C
+ RAVBA CR50D -1.0 10.0
+ RAVBB CR50E -1.0 10.0
+ RAVBC CR50F -1.0 10.0
+C
+ GRCBA CR01A -.006 10.0
+ GRCBB CR01B -.006 10.0
+ GRCBC CR01C -.006 10.0
+C
+ GRCBA CR01D -1.0 10.0
+ GRCBB CR01E -1.0 10.0
+ GRCBC CR01F -1.0 10.0
+C
+C *** ZNO current measuring switches ***
+C
+ CR30A CRZ2A -1. 1.
+ CR30B CRZ2B -1. 1.
+ CR30C CRZ2C -1. 1.
+ CR30D CRZ2D -1. 1.
+ CR30E CRZ2E -1. 1.
+ CR30F CRZ2F -1. 1.
+ CR20A 0.01998 10. { Fault switch, phase "a" to ground } 1
+BLANK card terminating program switch cards
+14SRC1A 440000. 60. -20.0 -1. 10.
+14SRC1B 440000. 60. 100.0 -1. 10.
+14SRC1C 440000. 60. 220.0 -1. 10.
+14SRC2A 440000. 60. 0.0 -1. 10.
+14SRC2B 440000. 60. 120.0 -1. 10.
+14SRC2C 440000. 60. 240.0 -1. 10.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C CR20A |TERRA *CR30A *CRZ1A *CR01A *CR25A *CR25A *
+C CR30A |CR20A *CRZ2A *CR50A *CR25A *
+C CR20B |CR30B *CRZ1B *CR01B *CR25B *CR25B *
+C CR30B |CR20B *CRZ2B *CR50B *CR25B *
+C CR20C |CR30C *CRZ1C *CR01C *CR25C *CR25C *
+C CR30C |CR20C *CRZ2C *CR50C *CR25C *
+C CR20D |CR30D *CRZ1D *CR01D *CR25D *CR25D *
+C CR30D |CR20D *CRZ2D *CR50D *CR25D *
+C Total network loss P-loss by summing injections = 8.848099600964E+07
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C CR25A CR30A Open Open Open
+C CR25B CR30B Open Open Open
+C CR25C CR30C Open Open Open
+C CR25D CR30D 9.29172435E+02 -1.77481409E+02 9.45970963E+02
+C CR25E CR30E -3.10882808E+02 8.93427637E+02 9.45970963E+02
+C CR25F CR30F -6.18289626E+02 -7.15946228E+02 9.45970963E+02
+BLANK card terminating program source cards.
+C End inject: SRC2C -220000. 440000. -1191.301327068 2345.3572211208
+C End inject: -381051.1776652 -120.0000000 -2020.272665456 -120.5267278
+C Step Time CR25A CR25A TACS TACS TACS TACS
+C CR30A CR30A VCAPA IZNA PZNA EZNA
+C *** Phasor I(0) = 9.2917243E+02 Switch "CR25D " to "CR30D " closed
+C *** Phasor I(0) = -3.1088281E+02 Switch "CR25E " to "CR30E " closed
+C *** Phasor I(0) = -6.1828963E+02 Switch "CR25F " to "CR30F " closed
+C < < Etc. (many switch currents) > >
+C 0 0.0 -143.44999 0.0 143.449993 .28697E-11 .411659E-9 0.0
+C 1 .5E-4 602.099261 0.0 -602.09926 -.68002E-6 .411659E-9 0.0
+C 2 .1E-3 1347.43459 0.0 -1347.4346 -.15198E-5 .411659E-9 0.0
+C 3 .15E-3 2092.2912 0.0 -2092.2912 -.23592E-5 .411659E-9 0.0
+BLANK card ending output variables requests (none here, since all column 80)
+C 300 .015 -23363.319 0.0 23363.3193 .263161E-4 .614832009 .014309206
+C *** Close switch "CR20A " to " " after 2.00000000E-02 sec.
+C 400 .02 37570.0647 0.0 -37570.065 -.42322E-4 1.59004745 .016928315
+C 500 .025 56444.8022 0.0 -56444.802 -.63583E-4 3.58891722 .022232887
+C 600 .03 183226.734 0.0 -183226.73 -5786.1028 .106017E10 .3650637E7
+C Gap "CR25A " to "CR30A " closing after 3.15000000E-02 sec.
+C 700 .035 0.0 -4433.8226 22742.1728 .256182E-4 .582612436 .4929451E7
+C 800 .04 0.0 -5450.0316 25576.0355 .288104E-4 .736855415 .4929451E7
+C 900 .045 0.0 4627.82167 -23165.41 -.26095E-4 .604499203 .4929451E7
+C Gap "CR25A " to "CR30A " opening after 4.99000000E-02 sec.
+C 1000 .05 -816.5929 0.0 3143.46664 .354099E-5 .011130982 .4929451E7
+C Variable max:184341.425 26931.1785 39549.6402 .445516E-4 .135464E10 .4929451E7
+C Times of max: .02805 .03175 .0125 .0125 .028 .05
+C Variable min: -39549.64 -7466.2202 -184341.43 -7350.3614 .411659E-9 0.0
+C Times of min: .0125 .0378 .02805 .02805 0.0 0.0
+ PRINTER PLOT
+ 194 5. 0.0 40. CR25A CR30A { Axis limits: (-0.747, 2.220)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+PRINTED NUMBER WIDTH, 12, 2, { Keep dT loop precision the same, but 2 blank separators
+C 10th of 16 subcases was added 10 April 2011 to illustrate very simple use
+C of POINTLIST within MODELS. Data comes from Orlando Hevia of Santa Fe,
+C Argentina. It establishes the standard of comparison for his alternative
+C SEEK function (see 11th subcase, which produces the same answer). Here
+C the (X,Y) points of POINTLIST number only 7. For much larger numbers of
+C points (e.g., 20200 for Orlando's TFGNMOD.DAT), Dube's POINTLIST is much
+C too slow. For much larger numbers of points, use Orlando's new SEEK as
+C will be illustrated by the following subcase. WSM.
+ 1.0 10.00 { Take ten steps, from 1 second to 10 seconds. This is "T"
+ 1 -1 { Print every step; do not bother saving points for plotting
+MODELS STAND ALONE
+MODEL SAMPLE
+VAR
+ X,Y,Z
+FUNCTION R POINTLIST
+(0, 69)
+(2, 50)
+(4, 142)
+(5, 142)
+(6, 188)
+(8, 73)
+(10, 100)
+INIT
+ X:=0
+ENDINIT
+EXEC
+X:=R(T)
+Y:=SQRT(X)*0.3
+Z:=R(SQRT(X)*0.3)
+ENDEXEC
+ENDMODEL
+USE SAMPLE AS SAMPLE
+ENDUSE
+RECORD
+ SAMPLE.X AS X
+ SAMPLE.Y AS Y
+ SAMPLE.Z AS Z
+ENDRECORD
+ENDMODELS
+C Column headings for the 3 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 3 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time MODELS MODELS MODELS
+C X Y Z
+C 0 0.0 69. 2.49198716 72.6314093
+C 1 1.0 59.5 2.31408729 64.4480155
+C 2 2.0 50. 2.12132034 55.5807358
+C 3 3.0 96. 2.93938769 93.2118338
+C 4 4.0 142. 3.57491259 122.445979
+C 5 5.0 142. 3.57491259 122.445979
+C 6 6.0 188. 4.11339276 144.608033
+C 7 7.0 130.5 3.4270979 115.646503
+C 8 8.0 73. 2.56320112 75.9072517
+C 9 9.0 86.5 2.79016129 86.3474191
+C 10 10. 100. 3.0 96.
+BLANK CARD ENDING PLOT CARDS
+BEGIN NEW DATA CASE
+$DEPOSIT, JSEEDR=0 { Reinitialize random # generator as if no preceding use
+C Note: the preceding $DEPOSIT is required because random # use here is
+C not the 1st of data case. Preceding subcases roll dice. Memory
+C of this is erased by setting JSEEDR to zero. WSM. 29 July 2011
+C This is for addition of GAUSS. Variable NORMAL below should be
+C identical in value to what is produced by TACS within subcase 2
+C of BENCHMARK DC-18. This works well for this subcase, but later
+C subcases then would have different random numbers. In order not
+C to change the random numbers of following subcases, we want to
+C restore at the end the JSEEDR value that exists at the beginning.
+C New logic of DEPOSI makes this possible. See 2nd $DEPOSIT below.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+C Preceding line allows the SEEK file to be remote if this main data file is
+PRINTED NUMBER WIDTH, 12, 2, { Keep dT loop precision the same, but 2 blank separators
+C 11th of 16 subcases was added 10 April 2011 to illustrate that Orlando
+C Hevia's new SEEK function of MODELS will produce the same answer as
+C the preceding 10th subcase, which uses POINTLIST. Data is too small for
+C there to be a reason to use SEEK instead of POINTLIST, of course. For
+C a more realistic illustration of the advantage of SEEK, see explanation
+C of the EEUG list server dated 11 June 2011. This includes the following
+C paragraph:
+C The inadequacy of MODELS POINTLIST for large data (many points of the
+C piecewise-linear X-Y function) was documented in detail in a paper that
+C was presented at the year-2006 EEUG conference. See "Determination of
+C an optimized energy storage size for a wind farm based on wind forecasts"
+C by Steve Völler, Christian Müller, and Johannes Verstege of the
+C University of Wuppertal in Germany. In this case, POINTLIST functioned
+C correctly, but was too slow to be practical. Those German users give new
+C meaning to the term industrial-strength. Would a reader believe 105K
+C pairs of (X, Y)? Yes, letter K as in one thousand. Mr. Dube obviously
+C did not imagine such use when he programmed his original logic. But
+C Orlando Hevia's new SEEK now provides an efficient alternative without
+C the need for compilation and linking of user-supplied source code.
+C This data too comes from Orlando Hevia of Santa Fe, Argentina. WSM.
+ 1.0 10.00 { Take ten steps, from 1 second to 10 seconds. This is "T"
+ 1 -1 { Print every step; do not bother saving points for plotting
+MODELS STAND ALONE
+C 3456789012345678901234567890123456789012345678 -- Ruler for following optional
+C < File Name> IPRMDL KOMPAC miscellaneous data card :
+MODELS MISC. DATA dc68seek. 0 0
+C Note about preceding. Special value KOMPAC = 8765 is required
+C to bypass the check on (X,Y) points of the function. Logic will
+C ensure that X never decreases (a fatal error). It also discards
+C all but the end points of each string of three or more identical
+C Y values. That is the 3rd of 3 params shown. As for the first,
+C see the substantial note below. Finally, the middle parameter,
+C IPRMDL, is just IPRSUP for the new MODELS code. I.e., it
+C provides diagnostic printout control. All 3 values will remain
+C in force unless redefined. So, for stacked subcases, there is
+C no need for repeated definition unless values are to be changed.
+MODEL SAMPLE
+VAR X,Y,Z, NORMAL
+FUNCTION seek FOREIGN seek {ixarg: 2}
+FUNCTION gauss FOREIGN gauss {ixarg: 2}
+EXEC
+C Of the three following EXEC lines, the first and the third use Orlando's
+C new SEEK function which is defined by the (X, Y) pairs of DC68SE37.DAT
+C where the root name "DC68SEEK." was read from the MODELS misc. data card.
+C The "37" that overwrites the "EK" of DC68SEEK corresponds to the second
+C argument of SEEK. If another function were involved, it would correspond
+C to a different subscript (any # < 100 million is legal). An arbitrary # of
+C such functions is allowed, and each can involve an arbitrary # of (X, Y)
+C as long as List 20 has adequate unused space. As for .DAT being the file
+C type, this follows from DATTYP of STARTUP because the user's file name
+C ended with a period. If there is no MODELS miscellaneous data, the default
+C disk file name SEEKDATA.DAT will be assumed by ATP. WSM.
+X:=SEEK(T, 37 )
+Y:=SQRT(X)*0.3
+Z:=SEEK(SQRT(X)*0.3, 37 )
+C In order that all data be seen, let's document the content of DC68SE37.DAT
+C which contains just the following 7 formatted lines:
+C 0, 69
+C 2, 50
+C 4, 142
+C 5, 142
+C 6, 188
+C 8, 73
+C 10, 100
+C This is just usual free-format data. Each line begins in column 1, and
+C the final line is known as ATP encounters an end-of-file mark. Neither
+C comment lines nor $-cards nor inline comments are allowed. This is not
+C an oversight. Rather, it is a way to speed execution for large files.
+C If the user wants to terminate his function prematurely, however, he
+C is allowed to add a line such as "-9999., 0" where the -9999 is
+C interpreted as a software EOF. For an illustration, see subcase # 15.
+C For some reason, Dube does not accept an in-line comment on the
+C following function. Perhaps not on any function? So, strip it off:
+C NORMAL:=gauss( T ) { Argument "T" in fact is unused, so is arbitrary
+NORMAL:=gauss( T )
+ENDEXEC
+ENDMODEL
+USE SAMPLE AS SAMPLE
+ENDUSE
+RECORD
+SAMPLE.X AS X
+SAMPLE.Y AS Y
+SAMPLE.Z AS Z
+SAMPLE.NORMAL AS NORMAL
+ENDRECORD
+ENDMODELS
+C MODELS "SEEK" function # 37 involves 7 pairs of (X,Y). These are stored in List-20 SCONST cells 3 through 16.
+C Column headings for the 4 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 4 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time MODELS MODELS MODELS MODELS
+C X Y Z NORMAL
+C 0 0.0 69. 2.49198716 72.6314093 .890624441
+C 1 1.0 59.5 2.31408729 64.4480155 -.26382016
+C 2 2.0 50. 2.12132034 55.5807358 -.41782888
+C 3 3.0 96. 2.93938769 93.2118338 .66418476
+C 4 4.0 142. 3.57491259 122.445979 .242122394
+C 5 5.0 142. 3.57491259 122.445979 -.38464212
+C 6 6.0 188. 4.11339276 142. -.9889959
+C 7 7.0 130.5 3.4270979 115.646503 -.26589058
+C 8 8.0 73. 2.56320112 75.9072517 -.73063403
+C 9 9.0 86.5 2.79016129 86.3474191 -.75107385
+C 10 10. 100. 3.0 96. .288485151
+C Size 11-20: 0 3 -9999 -9999 1744 0 0 0 23 15
+C The preceding line from 80-column case-summary statistics confirms that
+C 15 cells of List 20 storage are being used by SEEK. There are 6 points
+C for a total of 12 values. But for each function, there are two extra
+C cells. Finally, the last function must be bounded by a blank, so the
+C total is 2 * 6 + 2 + 1 = 15 as shown.
+C That was before adding GAUSS use. After the addition, this becomes:
+C Size 11-20: 0 4 -9999 -9999 1838 0 0 0 23 17
+$DEPOSIT, JSEEDR= -98789 { Flag for DEPOSI to restore value before previous use
+C Note about preceding line: As this use begins on 31 July 2011, service is
+C limited to a single variable (in this case, JSEEDR). For use here, JSEEDR
+C is a random variable. The user wants to restore whatever value JSEEDR had
+C at the instant it was zeroed by the preceding $DEPOSIT. The user can not do
+C this manually (old logic) because he does not know what the value was. But
+C ATP remembers the value within DEPOSI, and can do it. WSM. 31 July 2011
+BLANK CARD ENDING PLOT CARDS
+BEGIN NEW DATA CASE
+C 12th of 16 subcases was added 13 April 2011 to illustrate that Orlando
+C Hevia's new EGAUSS function of MODELS will perform Gaussian elimination.
+C This was the 1st of 4 stacked subcases within Orlando's file TFGNMOD.DAT
+C Solve the following 3 linear equations in 3 unknowns:
+C X1 + 4*X2 + X3 = 7
+C X1 + 6*X2 - X3 = 13
+C 2*X1 - X2 + 2*X3 = 5
+C THE INITIAL SOLUTION IS X1= 5, X2= 1, X3= -2, x4=18
+C THE ELEMENT N+1 OF SOLUTION IS THE DETERMINANT OF the coefficient matrix
+ 0.2 1.0 { Take 5 time steps, changing the matrix at each new step
+ 1 -1 { Suppress accumulation of plot points, which are unused
+MODELS STAND ALONE
+C 3456789012345678901234567890123456789012345678 -- Ruler for following optional
+C < File Name> IPRMDL KOMPAC miscellaneous data card :
+MODELS MISC. DATA dc68seek. 0 0
+C THE FUNCTION CAN BE USED AS FOLLOW:
+C
+C SOLUTION[1..N+1]:= EGAUSS(N,MATRIX[1..N*N+N])
+C
+C EGAUSS FROM GAUSSIAN ELIMINATION
+C
+MODEL solve
+FUNCTION egauss FOREIGN egauss {ixarg:100}
+ VAR arg[1..12]
+ VAR x[1..4]
+EXEC
+if t=0 then
+ arg[1]:=1.0
+ arg[2]:=4.0
+ arg[3]:=1.0
+ arg[4]:=1.0
+ arg[5]:=6.0
+ arg[6]:=-1.0
+ arg[7]:=2.0
+ arg[8]:=-1.0
+ arg[9]:=2.0
+ arg[10]:=7.0
+ arg[11]:=13.0
+ arg[12]:=5.0
+endif
+x[1..4]:=egauss(3,arg[1..12])
+write( 'Solution vector X =', x[1], x[2], x[3], ' Determinant =', x[4] )
+arg[1]:= arg[1]*2.0
+arg[12]:= arg[12]+1.0
+C Warning about the following use of RANDOM, which is the MODELS connection
+C to ATP's random number generator. For KOMPAR = 0 or 1 (set in STARTUP),
+C answers will be different every time the data is simulated, and different
+C program versions can not be compared (e.g., GNU vs. Salford). For purposes
+C of a test case, we want repeatability and comparability, so set KOMPAR = 3.
+C Also, position within the data case (here, the 12th subcase) may be critical
+C since future random numbers depend on past random numbers.
+arg[2]:=random()
+C arg[2]:= arg[1] * arg[12] --- a deterministic alternative to preceding line
+write('arg(1,12,2) =', arg[1], arg[12], arg[2] )
+ENDEXEC
+ENDMODEL
+USE solve AS solve
+ENDUSE
+ENDMODELS
+C Because there is no electric network, there is no usual output of the
+C time-step loop. Once the dT loop begins, the only output is from MODELS:
+C Blank card ends electric sources. KCONST = 1 |BLANK card ending dummy source that ATP added to TACS or MODELS STAND ALONE
+C X vector = 5.0 1.0 -2. Determinant = 18.
+C arg(1,12,2) = 2.0 6.0 .2328306E-9
+C Blank card ending requests for output variables. |BLANK card ending output requests (none) that ATP added to this STAND ALONE
+C Column headings for the 0 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C X vector = 3.111111111 1.777777778 .7777777784 Determinant = 8.999999999
+C arg(1,12,2) = 4.0 7.0 .1608161E-4
+C X vector = .7096617728 2.741941174 4.161308814 Determinant = 30.99993567
+C arg(1,12,2) = 8.0 8.0 .1107408979
+C X vector = .1640999973 3.031236365 5.351518185 Determinant = 74.55703641
+C arg(1,12,2) = 16. 9.0 .763080108
+C X vector = -.104457932 3.219802884 6.214359374 Determinant = 159.9476796
+C arg(1,12,2) = 32. 10. .1799780347
+C X vector = -.007328865 3.275392315 6.645025023 Determinant = 338.2800879
+C arg(1,12,2) = 64. 11. .902878134
+BLANK card ending plot requests
+BEGIN NEW DATA CASE
+C 13th of 16 subcases has the same solution as the preceding. It was added
+C 30 April 2011 to illustrate the LINSOL alternative to EGAUSS. The data
+C is compatible except that no value for the determinant of the coefficient
+C matrix is available. About history, SUBROUTINE LINSOL was provided by
+C MODELS author Laurent Dube, paid by BPA, as part of the original user-
+C supplied source code of MODELS. This dates to 1995 or 1996 (not part of
+C the original MODELS). Comment cards document the source and use:
+C Solves [a]*x=b using Crout's method with partial pivoting
+C Reference: Numerical Recipes chapter 2.
+C Modifies [a] and b, and returns b=x
+C Returns ierr=1 if [a] is singular, else returns ierr=0
+C Uses divzro as the smallest possible divisor value
+ 0.2 1.0 { Take 5 time steps, changing the matrix at each new step
+ 1 -1 { Suppress accumulation of plot points, which are unused
+MODELS STAND ALONE
+MODEL solve
+FUNCTION linsol FOREIGN linsol {ixarg:100}
+ VAR arg[1..12]
+ VAR x[1..4]
+EXEC
+if t=0 then
+C As written, LINSOL has been connected using the interface of Orlando's
+C EGAUSS. There is a complication, however. EGAUSS stored the matrix by
+C rows whereas LINSOL assumes storage by columns. Note the difference:
+C 1 2 3 4 5 6 7 8 9 -- Index of MODELS
+C 1,1 1,2 1,3 2,1 2,2, 2,3 3,1 3,2 3,3 -- Content for EGAUSS
+C 1,1 2,1 3,1 1,2 2,2, 3,2 1,3 2,3 3,3 -- Content for LINSOL
+C I.e., one is the transpose of the other. Of the 9 elements that must
+C be assigned, only the 3 diagonal elements are unchanged. One at a time:
+ arg[1]:=1.0 -- Element (1,1) of EGAUSS is a diagonal, so remains unchanged
+C arg[2]:=4.0 { Element (1,2) of EGAUSS had index 2, so index 4 of LINSOL:
+ arg[4]:=4.0
+C arg[3]:=1.0 { Element (1,3) of EGAUSS had index 3, so index 7 of LINSOL
+ arg[7]:=1.0
+C arg[4]:=1.0 { Element (2,1) of EGAUSS had index 4, so index 2 of LINSOL
+ arg[2]:=1.0
+ arg[5]:=6.0 -- Element (2,2) of EGAUSS is a diagonal, so remains unchanged
+C arg[6]:=-1.0 { Element (2,3) of EGAUSS had index 6, so index 8 of LINSOL
+ arg[8]:=-1.0
+C arg[7]:=2.0 { Element (3,1) of EGAUSS had index 7, so index 3 of LINSOL
+ arg[3]:=2.0
+C arg[8]:=-1.0 { Element (2,3) of EGAUSS had index 8, so index 6 of LINSOL
+ arg[6]:=-1.0
+ arg[9]:=2.0 -- Element (3,3) of EGAUSS is a diagonal, so remains unchanged
+C That was for the 3x3 square matrix. The right-hand-side vector is unchanged:
+ arg[10]:=7.0
+ arg[11]:=13.0
+ arg[12]:=5.0
+endif
+x[1..4]:=linsol(3,arg[1..12])
+write( 'Solution vector X =', x[1], x[2], x[3] )
+arg[1]:= arg[1]*2.0
+arg[12]:= arg[12]+1.0
+C arg[2]:=random() { Element (1,2) of EGAUSS had index 2, so index 4 of LINSOL
+ arg[4]:=random()
+C write('arg(1,12,2) =', arg[1], arg[12], arg[2] )
+write( 'arg(1,12,4) =', arg[1], arg[12], arg[4] )
+ENDEXEC
+ENDMODEL
+USE solve AS solve
+ENDUSE
+ENDMODELS
+C Because there is no electric network, there is no usual output of the
+C time-step loop. Once the dT loop begins, the only output is from MODELS:
+C Blank card ends electric sources. KCONST = 1 |BLANK card ending dummy source that ATP added to TACS or MODELS STAND ALONE
+C X vector = 5.0 1.0 -2.
+C arg(1,12,4) = 2.0 6.0 .2328306E-9
+C Blank card ending requests for output variables. |BLANK card ending output requests (none) that ATP added to this STAND ALONE
+C Column headings for the 0 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C X vector = 3.111111111 1.777777778 .7777777784
+C arg(1,12,4) = 4.0 7.0 .1608161E-4
+C X vector = .7096617728 2.741941174 4.161308814
+C arg(1,12,4) = 8.0 8.0 .1107408979
+C X vector = .1640999973 3.031236365 5.351518185
+C arg(1,12,4) = 16. 9.0 .763080108
+C X vector = -.104457932 3.219802884 6.214359374
+C arg(1,12,4) = 32. 10. .1799780347
+C X vector = -.007328865 3.275392315 6.645025023
+C arg(1,12,4) = 64. 11. .902878134
+BLANK card ending plot requests
+BEGIN NEW DATA CASE
+C 14th of 16 subcases was added 17 April 2011 to illustrate that Orlando
+C Hevia's new INVERT function of MODELS will indeed invert a matrix.
+C Data comes from Orlando Hevia of Santa Fe, Argentina.
+ 1.0 5.0 { Take 5 time steps, changing the matrix at each new step
+ 1 -1 { Suppress accumulation of plot points, which are unused
+MODELS STAND ALONE
+C The input matrix is on the left, its inverse is on the right:
+C ORIGINAL matrix INVERSE CALCULATED WITH QPRO
+C 1 2 3 -0.33333 0.151515 0.121212
+C 4 2 5 0.666667 -0.48485 0.212121
+C 6 3 2 -2E-17 0.272727 -0.18182
+C
+C DEFINE ALL THE VARIABLES TO BE PASSED TO INVERT AS OUTPUT
+C Since the matrix to be inverted is 3x3, 9 scalar variables are used :
+VAR a1, a2, a3, a4, a5, a6, a7, a8, a9
+C Next come 4 scalar dimensions of the call to inversion routine INVERT:
+C IXDATA: NUMBER ELEMENTS IN AN ARRAY XDATA OR ARGUMENTS, FOR EXAMPLE, THE
+C NUMBER OF EQUATIONS, A KEY TO INVERT OR TO CALCULATE DETERMINANT
+C
+C IXIN: NUMBER OF ELEMENTS IN THE INPUT ARRAY XIN. SQUARE OF NUMBER OF
+C EQUATIONS IN THIS CASE
+C
+C IXOUT: NUMBER OF ELEMENTS IN THE OUTPUT ARRAY XOUT. SQUARE OF NUMBER OF
+C EQUATIONS IN THIS CASE, 1 FOR DETERMINANT (NOt IMPLEMENTED)
+C
+C IXVAR: NUMBER OF ELEMENTS IN HISTORY ARRAY, NOt USED IN THIS CASE
+C
+C The following is the call to invert the matrix. IXIN is # of elements (9)
+C of the input matrix, IXOUT is the # of elements (9) of the output matrix.
+C The 1st and the 4th parameters (IXDATA and IXVAR, respectively) do not
+C depend on the matrix order (3 in this case).
+MODEL invert FOREIGN invert {ixdata:1, ixin:9, ixout:9, ixvar:0}
+USE invert AS invert
+ DATA xdata[1]:=3 -- Order of the matrices involved (here, 3)
+C The following defines the 9 cells of the input matrix XIN. Storage is by
+C rows. Note the trailing "t" which adds simulation time to each element of
+C the matrix at each time step :
+ INPUT xin[1..9] := [ 1.0, 2.0, 3.0,
+ 4.0, 2.0, 5.0,
+ 6.0, 3.0, 2.0 ] + t
+C The following connects the 9 elements of the output matrix (the inverse)
+C with variable names A1 through A9. This is done to interface with the
+C ATP output vector (the preceding subcase had no such connection, note) :
+ OUTPUT a1:=xout[1],a2:=xout[2],a3:=xout[3],
+ a4:=xout[4],a5:=xout[5],a6:=xout[6],
+ a7:=xout[7],a8:=xout[8],a9:=xout[9]
+ENDUSE
+RECORD
+ a1 AS a11
+ a2 AS a12
+ a3 AS a13
+ a4 AS a21
+ a5 AS a22
+ a6 AS a23
+ a7 AS a31
+ a8 AS a32
+ a9 as a33
+ENDMODELS
+C Column headings for the 9 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 9 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time MODELS MODELS MODELS MODELS MODELS MODELS MODELS MODELS MODELS
+C A11 A12 A13 A21 A22 A23 A31 A32 A33
+C 0 0.0 -.33333333 .151515152 .121212121 .666666667 -.48484848 .212121212 0.0 .272727273 -.18181818
+C 1 1.0 -.31914894 .14893617 .127659574 .574468085 -.46808511 .170212766 -.0212766 .276595745 -.19148936
+C 2 2.0 -.31147541 .147540984 .131147541 .524590164 -.45901639 .147540984 -.03278689 .278688525 -.19672131
+C 3 3.0 -.30666667 .146666667 .133333333 .493333333 -.45333333 .133333333 -.04 .28 -.2
+C 4 4.0 -.30337079 .146067416 .134831461 .471910112 -.4494382 .123595506 -.04494382 .280898876 -.20224719
+C 5 5.0 -.30097087 .145631068 .13592233 .45631068 -.44660194 .116504854 -.04854369 .281553398 -.2038835
+BLANK card ending plot requests
+BEGIN NEW DATA CASE
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+C Preceding line allows the SEEK file to be remote if this main data file is
+PRINTED NUMBER WIDTH, 12, 2, { Keep dT loop precision the same, but 2 blank separators
+C 15th of 16 subcases was added 21 April 2011 to illustrate extensions to
+C Orlando Hevia's SEEK function that were not tested by the preceding 11th
+C subcase. Data is similar. That is, function # 82 began as a copy of # 32
+C but is more general in that two redundant (X, Y) points have been added
+C (to be omitted by ATP) and the software EOF is used, permitting arbitrary
+C comment information at the bottom of DC68SE82.DAT Erasure of a no longer
+C used SEEK function also is illustrated.
+ 1.0 10.00 { Take ten steps, from 1 second to 10 seconds. This is "T"
+ 1 -1 { Print every step; do not bother saving points for plotting
+MODELS STAND ALONE
+C 3456789012345678901234567890123456789012345678 -- Ruler for following optional
+C < File Name> IPRMDL KOMPAC miscellaneous data card :
+C MODELS MISC. DATA dc68seek. 9 0
+MODEL SAMPLE
+C Of the 6 following variables, the last is a dummy variable that is used for
+C SEEK function erasure only. The returned funct value must be put somewhere.
+VAR X,Y,Z, X37, X49, XDUM
+FUNCTION seek FOREIGN seek {ixarg: 2}
+EXEC
+C Before using function # 82, let's use a second function, the old # 37:
+ IF t<4.0 THEN -- Execute only at the first 3 time steps
+C About the following WRITE( statement, note lack of indentation and
+C use of apostrophes (not quotation marks) to delimit the text. These
+C two details are required to maintain any lower case within the text :
+write( ' Use SEEK model # 37 for T < 4 only.' )
+ X37:=SEEK(T, 37 )
+ ENDIF -- Terminate 4-line IF block
+ IF t=6.0 THEN -- execute only on the 6th time step
+write( ' Erase SEEK function # 37 at T =6.' )
+ XDUM:=SEEK(T, -37 )
+ ENDIF -- Terminate 4-line IF block
+C The following 3 lines use SEEK function # 82, which is the same as # 37:
+X :=SEEK(T, 82 )
+Y:=SQRT(X)*0.3
+Z:=SEEK(SQRT(X)*0.3, 82 )
+C The following nested IF loop results in action only for steps 8 and 9:
+ IF t>7.0 THEN -- Execute only for time steps 8 or later
+ IF t<10.0 THEN -- Execute only for time steps 9 or earlier
+write( ' Use SEEK model # 49 for T = 7 or 8 only.' )
+ X49:=SEEK(T, 49 )
+ ENDIF -- Terminate inner 4-line IF block
+ ENDIF -- Terminate outer 6-line IF block
+C The following IF loop disconnects SEEK function # 49 on step 10:
+ IF t=10.0 THEN -- execute only on the 10th time step
+write( ' Erase SEEK function # 49 at T =10.' )
+ XDUM:=SEEK(T, -49 )
+ ENDIF -- Terminate 4-line IF block
+C In order that all data be seen, let's document the content of DC68SE82.DAT
+C which contains the following formatted lines. Note the 4 consecutive
+C Y values 142 (points 3 through 6 inclusive). Thus points 4 and 5 will be
+C omitted. ATP will store only 7 (X,Y) pairs. Note also the software EOF
+C (value X = -9999.) which allows arbitrary comment information to follow.
+C 0, 69
+C 2, 50
+C 4, 142
+C 4.3, 142,
+C 4.7, 142,
+C 5, 142
+C 6, 188
+C 8, 73
+C 10, 100
+C -9999., 0,
+ENDEXEC
+ENDMODEL
+USE SAMPLE AS SAMPLE
+ENDUSE
+RECORD
+SAMPLE.X AS X
+SAMPLE.Y AS Y
+SAMPLE.Z AS Z
+SAMPLE.X37 AS X37
+SAMPLE.X49 AS X49
+ENDRECORD
+ENDMODELS
+C Use SEEK model # 37 for T < 4 only.
+C MODELS "SEEK" function # 37 involves 7 pairs of (X,Y). These are stored in List-20 SCONST cells 3 through 16.
+C 3 or more consecutive, identical Y has allowed the omission of 2 incoming (X,Y) points. The next line reflects this fact.
+C MODELS "SEEK" function # 82 involves 7 pairs of (X,Y). These are stored in List-20 SCONST cells 19 through 32.
+C Blank card ending requests for output variables. |BLANK card ending output requests (none) that ATP added to this STAND ALONE
+C Column headings for the 5 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 5 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time MODELS MODELS MODELS MODELS MODELS
+C X Y Z X37 X49
+C 0 0.0 69. 2.49198716 72.6314093 69. 88888.8889
+C Use SEEK model # 37 for T < 4 only.
+C 1 1.0 59.5 2.31408729 64.4480155 59.5 88888.8889
+C Use SEEK model # 37 for T < 4 only.
+C 2 2.0 50. 2.12132034 55.5807358 50. 88888.8889
+C Use SEEK model # 37 for T < 4 only.
+C 3 3.0 96. 2.93938769 93.2118338 96. 88888.8889
+C 4 4.0 142. 3.57491259 122.445979 96. 88888.8889
+C 5 5.0 142. 3.57491259 122.445979 96. 88888.8889
+C Erase SEEK function # 37 at T =6.
+C MODELS erasure of SEEK function # 37 at time T = 6.00000E+00 sec has gained 16 cells of List 20. IFSEM = 16
+C 6 6.0 188. 4.11339276 142. 96. 88888.8889
+C 7 7.0 130.5 3.4270979 115.646503 96. 88888.8889
+C Use SEEK model # 49 for T = 7 or 8 only.
+C MODELS "SEEK" function # 49 involves 4 pairs of (X,Y). These are stored in List-20 SCONST cells 19 through 26.
+C 8 8.0 73. 2.56320112 75.9072517 96. 73.
+C Use SEEK model # 49 for T = 7 or 8 only.
+C 9 9.0 86.5 2.79016129 86.3474191 96. 86.5
+C Erase SEEK function # 49 at T =10.
+C MODELS erasure of SEEK function # 49 at time T = 1.00000E+01 sec has gained 10 cells of List 20. IFSEM = 16
+C 10 10. 100. 3.0 96. 96. 86.5
+BLANK CARD ENDING PLOT CARDS
+BEGIN NEW DATA CASE
+C 16th of 16 subcases was added 29 April 2011 to illustrate high-order
+C comparison between EGAUSS (see subcase 12) and LINSOL (see subcase 13).
+C The testing is ordered by using EGAUSS for order two (two equations in two
+C unknows). Normally the data would consist of 4 cells for the 2x2 matrix
+C [A] followed by 2 cells for the right hand side. Instead, cell 1 of the
+C 6 must be the special reserved key 23456. This is to be followed by five
+C parameters that dedicated code uses to generate the equation set. Matrix
+C order N is in cell 2. The matrix will be symmetrical, so transposition
+C (a difference between data of EGAUSS and data of LINSOL) is not an issue.
+C An offidiagonal in cell (I,J) will be given value -COEFF / SEPAR ** POWER
+C where SEPAR = IABS ( I - J ) is the distance from the diagonal. Each of
+C the diagonals A(I,I) will be the negative of the sum of all offidagonals
+C plus constant DIAG. The right hand side B(I) will equal RHS. So this
+C is the matrix of a set of resistors connecting each node with every other
+C node. Ground is a node, with DIAG being the admittance to ground. RHS
+C is the injected current at each node.
+C NEW LIST SIZES
+C 0 0 0 0 0 0 0 0 0 0
+C 0 0 0 0 0 0 0 0 0 100000
+C 0 0 0 0 0 10000 0 126000 0 0
+C 240000 742
+C About the preceding program dimensions, two are critical for high order use.
+C These are List 20 and List 28. Both are set to the limits of LISTSIZE.BPA
+C A third, List 26, must be twice the order of the equation set being solved.
+C In order to simplify things, the limiting value for this too has been used.
+C If order 31 below is changed to order 310 (this is arg[2]), uncomment the
+C preceding five NEW LIST SIZES data cards by removing "C " from the left.
+C Expect execution to take about 1000 times as long, of course. Note that 310
+C is close to the limit for List 20 equal to 100K since 3.1**2 is close to 10.
+ 0.2 1.0 { Take 5 time steps, changing the matrix at each new step
+ 1 -1 { Suppress accumulation of plot points, which are unused
+MODELS STAND ALONE
+MODEL solve
+FUNCTION egauss FOREIGN egauss {ixarg:100}
+ VAR arg[1..6]
+ VAR x[1..3]
+EXEC
+if t=0 then
+ arg[1]:=23456.0 -- Reserved key to request test of LINSOL and EGAUSS
+C arg[2]:=310.0 -- Matrix order of the equations being solved. This is N
+ arg[2]:= 31.0 -- Matrix order of the equations being solved. This is N
+ arg[3]:=2.0 -- Exponent to apply to separation. This is POWER
+ arg[4]:=1.0 -- Coefficient of matrix elements. This is COEFF
+ arg[5]:=1.0 -- Right hand side of each equation. This is RHS
+ arg[6]:=31.0 -- Constant term of each diagonal. This is DIAG
+endif
+x[1..2]:=egauss(2,arg[1..6]) -- The 1st arg, 2, is required for this test
+ENDEXEC
+ENDMODEL
+USE solve AS solve
+ENDUSE
+ENDMODELS
+BLANK card ending plot requests
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc68se37.dat b/benchmarks/dc68se37.dat
new file mode 100644
index 0000000..d48dcc6
--- /dev/null
+++ b/benchmarks/dc68se37.dat
@@ -0,0 +1,7 @@
+0, 69
+2, 50
+4, 142
+5, 142,
+6, 188
+8, 73
+10, 100
diff --git a/benchmarks/dc68se49.dat b/benchmarks/dc68se49.dat
new file mode 100644
index 0000000..4e99017
--- /dev/null
+++ b/benchmarks/dc68se49.dat
@@ -0,0 +1,4 @@
+5, 142,
+6, 188
+8, 73
+10, 100
diff --git a/benchmarks/dc68se82.dat b/benchmarks/dc68se82.dat
new file mode 100644
index 0000000..95a28fe
--- /dev/null
+++ b/benchmarks/dc68se82.dat
@@ -0,0 +1,15 @@
+0, 69
+2, 50
+4, 142
+4.3, 142,
+4.7, 142,
+5, 142,
+6, 188
+8, 73
+10, 100
+-9999., 0,
+The preceding software end-of-file requires only that X = -9999.
+Nothing following this will be read by ATP, so comments can be
+placed here without difficulty. About the (X,Y) characteristic,
+note that points 4 and 5 have been added compared with subcase 11.
+They are redundant, and will be discarded upon input.
diff --git a/benchmarks/dc7.dat b/benchmarks/dc7.dat
new file mode 100644
index 0000000..e3ccdf6
--- /dev/null
+++ b/benchmarks/dc7.dat
@@ -0,0 +1,300 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-7
+C Test of 200-km line energization example from proposed 1975 IEEE PES
+C Winter Meeting paper by Tripathy et al. The far end of the line has
+C an open-circuited transformer, which the Indians modeled as a parallel
+C connection of a saturable reactor and a capacitor. For the reactor, a
+C true nonlinearity (Type-93) has been placed in phase "a", and pseudo-
+C nonlinear ones (Type-98 modeling) are used for phases "b" and "c".
+C The reactor of phase "a" is actually driven onto the final segment
+C above the point (i=55.572, PSI=624) on step number 185 at t= .004625
+C seconds, so this represents a real stress test for the Type-93 element
+C 23 July 1983 ---- remove Type-98 modeling (replace with Type-93).
+PEAK VOLTAGE MONITOR
+PRINTED NUMBER WIDTH, 13, 2, { Full precision on each of 8 columns of printout
+ .000025 .020 60. 60.
+ 1 1 1 1 -1
+ 5 5 10 10 100 20
+C The following series capacitors represent 20% compensation of the
+C positive-sequence series line reactance at 60 Hz, at each end:
+ GENA SWA 89352.
+ GENB SWB GENA SWA
+ GENC SWC GENA SWA
+ RECA TRANA GENA SWA 1
+ RECB TRANB GENA SWA
+ RECC TRANC GENA SWA
+ TRANA GNDA 7.5398 1
+ GNDA .0001
+ TRANB 7.5398
+ TRANC 7.5398
+C The following piecewise-linear magnetization curve was constructed
+C from Tripathy's arc-tangent function (evaluation at regular intervals):
+93TRANA NAME 1st NL .559 300. 1
+ 0.0 0.0
+ .5590 300.
+ .9344 400.
+ 1.2555 450.
+ 1.8057 500.
+ 3.0251 550.
+ 4.9429 580.
+ 8.4609 600.
+ 13.092 610.
+ 28.847 620.
+ 55.572 624.
+ 753.46 628.
+ 9999
+C ------------- Following original, pseudo-nonlinear modeling upgraded:
+C 98TRANB NAME 2nd NL .559 300. 1
+C .5590 300.
+C .9344 400.
+C 1.2555 450.
+C 1.8057 500.
+C 3.0251 550.
+C 4.9429 580.
+C 8.4609 600.
+C 13.092 610.
+C 28.847 620.
+C 55.572 624.
+C 753.46 628.
+C 9999
+C BRANCH NAME:3rd NL
+C 98TRANC TRANB .559 300. 1
+C ------------- Preceding, original modeling was improved by replacement
+C on 23 July 1986 when multi-phase, Type-93, nonlinear
+C inductor logic was finally perfected. Instead of Type-98
+C modeling in phases "b" and "c", we copy the original,
+C true nonlinear modeling. Replacement cards follow:
+ BRANCH NAME:2nd NL ! { Hold lower case of this 2nd, but not following 3rd
+93TRANB TRANA .559 300. 1
+ BRANCH NAME:3rd NL
+93TRANC TRANA .559 300. 1
+C Although Tripathy's line was untransposed, we make the continuously-
+C transposed assumption here for simplicity, it will be noted:
+-1SENDA RECA .137681.07755.6806124.27
+-2SENDB RECB .03009.450289.5000124.27
+-3SENDC RECC
+BLANK card ends all branch cards
+ SWA SENDA 1.0
+ SWB SENDB 1.0
+ SWC SENDC 1.0
+BLANK card ends all switch cards
+14GENA 188000. 60. 0.0 -1.
+14GENB 188000. 60. 120. -1.
+14GENC 188000. 60. -120. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 0.000000000000E+00
+C Step Time GENA TRANA RECA TRANA TRANB
+C TERRA TERRA
+C *** Switch "SWA " to "SENDA " closed after 0.00000000E+00 sec.
+C *** Switch "SWB " to "SENDB " closed after 0.00000000E+00 sec.
+C *** Switch "SWC " to "SENDC " closed after 0.00000000E+00 sec.
+C 0 0.0 188000. 0.0 0.0 0.0 0.0
+C 1 .25E-4 187991.6504 .930228E-37 .930004E-37 -.57418E-39 0.0
+C 2 .5E-4 187966.6022 .482578E-37 .482013E-37 .545732E-44 -.24529E-53
+C 3 .75E-4 187924.8578 0.0 0.0 0.0 0.0
+C 4 .1E-3 187866.4209 0.0 0.0 0.0 0.0
+C 5 .125E-3 187791.2965 0.0 0.0 0.0 0.0
+C 10 .25E-3 187165.6493 0.0 0.0 0.0 0.0
+C 20 .5E-3 184670.0031 0.0 0.0 0.0 0.0
+C 30 .75E-3 180535.2129 368529.9098 368561.0118 .0356766432 -.018316651
+ GENA TRANA RECA
+BLANK card ending output variable requests (just node voltages, here)
+C Last step begins: 800 .02 58095.19494 -59199.4152 -58796.2914 1.081609222
+C Last step continued: .299848177 -.932282601 17.5862178 16.50460858
+C Variable max : 188000. 513558.5344 514002.0191 749.9628668 3.237548678
+C Times of max : 0.0 .0184 .0184 .00465 .01645
+C Variable min : -187999.072 -498079.391 -497500.143 -513.064439 -2505.93213
+C Times of min : .008325 .0077 .0077 .011675 .0073
+C -------------------------------------------------------------------------
+C To see how much improvement the 3-phase nonlinearity gives, compare these
+C values with the original solution with pseudo-nonlinear L(i) in "b", "c":
+C -------------------------------------------------------------------------
+C Last step begins: 800 .02 58095.19494 -50098.9838 -49701.5785 1.086096522
+C Last step continued: .3006006893 -.931914393 19.37948907 18.29339255
+C Variable max : 188000. 520082.5127 520520.0418 749.9593109 3.304226242
+C Times of max : 0.0 .0184 .0184 .00465 .01645
+C Variable min : -187999.072 -498611.424 -498032.337 -516.239708 -2590.47657
+C Times of min : .008325 .0077 .0077 .011675 .0073
+C Plots: { Axis limits: (-5.107, 7.760) { Axis limits: (-0.443, 7.760)
+ PRINTER PLOT { Axis limits: (-5.177, 7.760)
+ 194 2. 0.0 20. RECA TRANA CURRENT
+ 1 SMOOTH { Axis limits: (-0.439, 7.760)
+ 194 .1 4.5 5.0 RECA TRANA CURRENT IN AMPS
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 2nd of 4 subcases illustrates user-supplied FORTRAN to provide for smooth
+C modeling of magnetic saturation. Special logic presently is built into
+C only 2 modules: "INNONL" to bypass normal error checks on characteristic
+C (since parameters for hyperbolic tangent curve are inputted this way) and
+C to store these parameters in raw form in List-10 vectors CCHAR and VCHAR,
+C and second, "SOLVNL" to calculate "i" and di/dv for Newton's method
+C (as part of coupled nonlinear solution mixed with any other elements). A
+C single block of some 6 lines is involved in "INNONL" (see the check for
+C input text: ABUFF(33:39) .NE. 'FORTRAN'). A type-93 branch is being
+C used, although others pass through the same logic, so there is no magic
+C about this. Remembrance of this special component by "SOLVNL" is due
+C to numerical flag -333777 of first point of characteristic. Different
+C models could have different values in "SOLVNL", note --- no other code
+C is affected. The hyperbolic tangent saturation curve actually requires
+C only 2 cards of (x, y) characteristic, but a 3rd is required because of
+C existing Type-93 logic that extends the final segment by a factor of 1000
+C (this would overlay the 2nd point, otherwise). There are 2 reactors, and
+C these are coupled via the network, resulting in a 2 x 2 Netwon solution
+C within "SOLVNL". But there is a 2nd Newton solution that might not be
+C noticed --- to find the current given the flux (or voltage). This is one
+C dimensional. As for changes to "SOLVNL" for user-supplied FORTRAN, a
+C single block is involved, below the check for flag -333777. Finally,
+C data for the conventional Type-93 element was copied from DC-4.
+C 25 August 2001, add the following test of table dumping and restoring
+C half way through the simulation. Answers are not affected. Note the
+C definition precedes the last miscellaneous data card (a requirement if
+C TSTALL is being used, as here):
+$DEPOSIT, TSTALL=-0.5 { Negative TSTALL ===> experimental dump/restore of tables
+PEAK VOLTAGE MONITOR, 3, { Request network extrema of both node & branch voltage
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .020 4.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ GEN NODE 100. { Create unknown-voltage "NODE" for coupling
+ NODE TRAN 5.0 5.E4 1
+93TRAN .005 30. 1
+ 0.0 0.0
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN 1000. { Need to damp hash within previous NL element
+ NODE XXXX 500. { Current-limiting, phase-shifting resistor
+C User-supplied fortran follows. This is a regular Type-93 NL inductor until
+C the time-step loop. Note 3-card characteristic, followed by "9999" bound.
+C The characteristic parameter usage is: PSI = a * tanh ( b * i ) + c * i.
+93XXXX .08 35.0 3
+ -333777. 35.FORTRAN { -333777 = flag; a = peak iron flux
+ 20. 5.0FORTRAN { b = current mult; c = linear series L
+ 1.0 1.0FORTRAN FLUX { Dummy 3rd card to protect card 2
+ 9999 { End of user-supplied fortran (see request in cols. 33-39)
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards.
+C Total network loss P-loss by summing injections = 4.465360492400E+00
+C GEN 70. 70. .12758172835428 .13968171687261 4.4653604924
+C 0.0 0.0 -.0568672543615 -24.0240608 1.9903539026515
+C ---- Initial flux of coil "TRAN " to " " = 2.86434431E+00
+C ---- Initial flux of coil "XXXX " to " " = 3.08335629E+01
+ XXXX TRAN { Selective node voltage outputs: voltages across NL reactors
+C Step Time XXXX TRAN TRAN XXXX NODE
+C TERRA TERRA TRAN
+C 0 0.0 22.00346954 56.62762238 .4773907E-3 .0704767153 .0571050131
+C 1 .02 22.4849728 56.58915579 .6660853E-3 .0696258393 .0572552411
+C 2 .04 20.71249379 56.51611741 .8545941E-3 .0724907376 .0573707115
+BLANK card ending output requests
+C 200 4.0 8.696586066 -17.9578249 -.058915918 -.077940538 -.076873743
+C Variable max : 22.4849728 56.62762238 .0944331073 .1005485993 .0955171556
+C Times of max : .02 0.0 1.4 .34 1.32
+C Variable min : -40.5895565 -56.4586274 -.058915918 -.103607476 -.076873743
+C Times of min : 2.48 3.0 4.0 3.4 4.0
+ PRINTER PLOT
+ 143 .5 0.0 4.0 XXXX TRAN { Axis limits: (-5.646, 5.663)
+ 193 .5 0.0 4.0 XXXX TRAN { Axis limits: (-1.036, 1.005)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 3rd of 4 subcases is modification of 2nd as 1st described in January,
+C 1998, newsletter story. Orlando Hevia of Sante Fe, Argentina, suggests
+C use of SINH rather than TANH for modeling of some magnetic saturation.
+C The numerical flag -333777 of TANH becomes -444777 for SINH use.
+PEAK VOLTAGE MONITOR, 3, { Request network extrema of both node & branch voltage
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .020 4.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ GEN NODE 100. { Create unknown-voltage "NODE" for coupling
+ NODE TRAN 5.0 5.E4 1
+93TRAN .005 30. 1
+ 0.0 0.0
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN 1000. { Need to damp hash within previous NL element
+ NODE XXXX 500. { Current-limiting, phase-shifting resistor
+C User-supplied fortran follows. This is a regular Type-93 NL inductor until
+C the time-step loop. Note 3-card characteristic, followed by "9999" bound.
+C The characteristic parameter usage is: i = a * sinh ( b * psi ) + c * psi
+93XXXX .08 35.0 1
+ -444777. 4.E-5FORTRAN { -444777 = flag; a = 1st param
+ .16 6.E-5FORTRAN { b = 2nd of 3; c = 3rd of 3 params
+ 1.0 1.0FORTRAN { Dummy third card to protect card 2
+ 9999 { End of user-supplied fortran (see request in cols. 33-39)
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards.
+ XXXX TRAN { Selective node voltage outputs: voltages across NL reactors
+C 25 August 2001, add the following test of table dumping and restoring
+C on step number . Answers are not affected. Note the preceding subcase
+C used TSTALL, so had to be defined early. Not so if integer ISTDMP is
+C directly defined. This can be done at anwhere that will be read prior
+C to entry into the dT loop:
+$DEPOSIT, ISTDMP=80 { Time step # for experimental dump/restore of tables
+BLANK card ending output requests
+ PRINTER PLOT
+ 143 .5 0.0 4.0 XXXX TRAN { Axis limits: (-5.646, 5.663)
+ 193 .5 0.0 4.0 XXXX TRAN { Axis limits: (-1.036, 1.005)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 4th of 4 subcases is modification of 3rd as 1st described in January,
+C 1998, newsletter story. Orlando Hevia of Sante Fe, Argentina, suggests
+C use of PSI = A * i**B + C * i for modeling of some magnetic saturation.
+C The numerical flag -333777 of TANH becomes -555777 for i**B use.
+C Parameters are picked so solution to this 4th subcase approximates the
+C the solution to the 3rd. Printer plots have similar shapes and numbers.
+C 25 August 2001, cancel tests of table dumping and restoring (see two
+C preceding subcases). Note only TSTALL need be cancelled since ISTDMP
+C is cancelled automatically after each use. But TSTALL is not. TSTALL
+C will remain in effect for all later subcases, if not cancelled.
+$DEPOSIT, TSTALL=0.0 { Cancel experimental dumping and restoring of tables
+AUTO NAME { Toggle binary NMAUTO of STARTUP that controls branch/switch naming
+C The preceding is added 25 October 2002. It decreases List 7 from 9 to 3 as
+C the 6 network branches (there are no switches) no longer are being named.
+PEAK VOLTAGE MONITOR, 3, { Request network extrema of both node & branch voltage
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .020 4.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ GEN NODE 100. { Create unknown-voltage "NODE" for coupling
+ NODE TRAN 5.0 5.E4 1
+93TRAN .005 30. 1
+ 0.0 0.0
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN 1000. { Need to damp hash within previous NL element
+ NODE XXXX 500. { Current-limiting, phase-shifting resistor
+C User-supplied fortran follows. This is a regular Type-93 NL inductor until
+C the time-step loop. Note 3-card characteristic, followed by "9999" bound.
+C The characteristic parameter usage is: psi = a * i**B + c * i
+93XXXX .08 35.0 1
+ -555777. 100.FORTRAN { -555777 = flag; a = 1st param
+ .22 0.0FORTRAN { b = 2nd of 3; c = 3rd of 3 params
+ 1.0 1.0FORTRAN { Dummy third card to protect card 2
+ 9999 { End of user-supplied fortran (see request in cols. 33-39)
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards.
+ XXXX TRAN { Selective node voltage outputs: voltages across NL reactors
+BLANK card ending output requests
+ PRINTER PLOT
+ 143 .5 0.0 4.0 XXXX TRAN { Axis limits: (-5.646, 5.663)
+ 193 .5 0.0 4.0 XXXX TRAN { Axis limits: (-1.036, 1.005)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dc8.dat b/benchmarks/dc8.dat
new file mode 100644
index 0000000..92d7071
--- /dev/null
+++ b/benchmarks/dc8.dat
@@ -0,0 +1,153 @@
+BEGIN NEW DATA CASE
+C 1st of 2 subcases is added 24 Sept 2001 to illustrate $INCLUDE use within
+C the DO KNT loop. This subcase is related to the 1st subcase of DC-58.
+C It really should have been added as a new 2nd subcase there, but this was
+C not possible since DO KNT is not handled properly if the 2nd or later.
+C This request for $INCLUDE, too, came from Prof. Juan Martinez of UPC in
+C Barcelona, Spain. The $INCLUDE file does not change the answer. I.e.,
+C part of the data of DC-58 simply has been removed and placed in a separate
+C file. Other changes: TMAX has been shortened to speed execution, and
+C there are no extrema. But the resulting DC8.LIS file still compares
+C easily with DC58.LIS using Mike Albert's freeware FC.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .005
+ 1 1 1 0 0 -1
+ 33 1 40 10 100 50
+DO KNT=1, 5 /OUTPUT { Loop twice using PCVP index KNT (seen inside $PARAMETER)
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+_BUS1_ = KNT SERIALIZE 'NODE00'
+_BUS2_ = KNT + 1. SERIALIZE 'NODE00'
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+$INCLUDE, dc8incl0.dat { Disk file containts the following without "C " in 1-2:
+C -1_BUS1__BUS2_ .306 5.82 .012 100. { Half the length of original
+C 92_BUS2_ { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C C VREF VFLASH VZERO COL
+C 778000. -1.0 0.0 2.0
+C C COEF EXPON VMIN
+C 1250. 26. 0.5
+C 9999. { Bound on exponential segments (only one precedes)
+ENDDO KNT { Termination of DO KNT loop. Note a comment on it is tolerable
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14NODE01 408000. 60.
+BLANK card ending source data
+ 1
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DC-8
+C Example drawn from the dynamite EMTP Newsletter article by W. Scott Meyer,
+C "EMTP Data Modularization and Sorting ...," Volume 4, No. 2, Sec. V,
+C November, 1983. $PREFIX and $SUFFIX may be installation-dependent.
+C Miscellaneous data cards and TACS have been added to allow execution
+C to continue through the reading of switch cards, thereby documenting
+C the $INCLUDE evaluation and subsequent sorting. The $INCLUDE file
+C DC8INCL1.DAT was created by first subcase of companion data case DC-36.
+C For nearly identical case (except for use of dummy internal nodes, which
+C makes it more general), see DC-64 (associated with 2nd subcase of DC-36).
+C For the use of arguments without any $INCLUDE, see DC-65.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+$SUFFIX, .dat { File name of $INCLUDE will be followed by this file type
+ .005 4.0 { DELTAT and TMAX are in fact arbitrary, since no simulation
+ 1 -1 1 1 1
+TACS HYBRID
+99 FIRE1 = TIMEX
+99 FIRE2 = TIMEX
+99 FIRE3 = TIMEX
+13FAKE
+98 FIRE452+UNITY 1. 0. 0. TIMEX
+98 FIRE552+UNITY 1. 0. 0. TIMEX
+98 FIRE652+UNITY 1. 0. 0. TIMEX
+BLANK card ends all TACS data
+C The following two cards easily could be combined into a single one. But we
+C want to illustrate continuation cards. Note the "C" in column 1. Well,
+C there once was. Such a C still is permitted on a continuation card, but
+C it no longer is required, as the following illustrates:
+$INCLUDE, dc8incl1, ACNOD, #MINUS, ##PLUS, $$ { Branch & switch cards
+ #FIRE, ##MID { use continuation (request "$$") as an illustration
+BLANK card ending BRANCH cards { Key word "BRANCH" needed for sorting, note
+BLANK card ending SWITCH cards { Key word "SWITCH" needed for sorting, note
+$STOP { After switches read, modularization & sorting are confirmed, so halt
+EOF ---- Needed so "OVER1" or "SPYING" ("DATA") ends input here during reading
+========================================================================
+C The following is a view of DC8INCL1.DAT, which must be made
+C into a separate, supporting disk file if the companion test
+C case DC-36 has not already created it:
+========================================================================
+KARD 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14
+ 14 15 15 16 16 17 17 18 18 19 19 21 21 21 22 22 22 23 23 23 24 24 24 25 25
+ 25 26 26 26
+KARG 1 5 1 5 1 5 1 5 1 5 1 5 3 5 3 5 3 5 3 5 3 5 3 5 1
+ 2 1 2 1 2 1 3 1 3 1 3 2 4 5 2 4 5 2 4 5 1 4 5 1 4
+ 5 1 4 5
+KBEG 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3
+ 9 3 9 3 9 3 9 3 9 3 9 9 65 3 9 65 3 9 65 3 9 65 3 9 65
+ 3 9 65 3
+KEND 7 13 7 13 7 13 7 13 7 13 7 13 8 13 8 13 8 13 8 13 8 13 8 13 7
+ 14 7 14 7 14 7 14 7 14 7 14 14 69 7 14 69 7 14 69 7 13 69 7 13 69
+ 7 13 69 7
+KTEX 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 1 1
+/BRANCH
+C3 BEGIN WITH ANODE REACTORS AND PARALLEL RESISTORS (6 PAIRS):
+ ?????A?????1 3000.
+ ?????A?????1 1.0
+ ?????B?????3 3000.
+ ?????B?????3 1.0
+ ?????C?????5 3000.
+ ?????C?????5 1.0
+ ???????????4 3000.
+ ???????????4 1.0
+ ???????????6 3000.
+ ???????????6 1.0
+ ???????????2 3000.
+ ???????????2 1.0
+C3 NEXT COME THE SNUBBER CIRCUITS, ACROSS VALVES AND ANODE REACTORS:
+ ?????A?????? 1200. 0.1
+ ?????B?????? 1200. 0.1
+ ?????C?????? 1200. 0.1
+ ?????A?????? 1200. 0.1
+ ?????B?????? 1200. 0.1
+ ?????C?????? 1200. 0.1
+C3 NEXT COME THE VALVES:
+/SWITCH
+11?????1?????? ?????2
+11?????3?????? ?????4
+11?????5?????? ?????6
+11?????4?????A ?????5
+11?????6?????B ?????1
+11?????2?????C ?????3
+==========================================================================
+C End of DC8INCL1.DAT disk file; Begin documentation of final cards:
+==========================================================================
+C $INCLUDE, dc8incl1, ACNOD, #MINUS, ##PLUS, #FIRE, ##MID
+C ACNODA MID1 3000.
+C ACNODA MID1 1.0
+C ACNODB MID3 3000.
+C ACNODB MID3 1.0
+C ACNODC MID5 3000.
+C ACNODC MID5 1.0
+C PLUS MID4 3000.
+C PLUS MID4 1.0
+C PLUS MID6 3000.
+C PLUS MID6 1.0
+C PLUS MID2 3000.
+C PLUS MID2 1.0
+C ACNODA MINUS 1200. 0.1
+C ACNODB MINUS 1200. 0.1
+C ACNODC MINUS 1200. 0.1
+C ACNODA PLUS 1200. 0.1
+C ACNODB PLUS 1200. 0.1
+C ACNODC PLUS 1200. 0.1
+C BLANK card ending BRANCH cards
+C 11 MID1 MINUS FIRE2
+C 11 MID3 MINUS FIRE4
+C 11 MID5 MINUS FIRE6
+C 11 MID4ACNODA FIRE5
+C 11 MID6ACNODB FIRE1
+C 11 MID2ACNODC FIRE3
+C BLANK card ending SWITCH cards
+C $STOP
+====================================================================
+C End of documentation of data cards after $INCLUDE processing
+====================================================================
diff --git a/benchmarks/dc8incl0.dat b/benchmarks/dc8incl0.dat
new file mode 100644
index 0000000..b17512b
--- /dev/null
+++ b/benchmarks/dc8incl0.dat
@@ -0,0 +1,7 @@
+-1_BUS1__BUS2_ .306 5.82 .012 100. { Half the length of original
+92_BUS2_ { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
diff --git a/benchmarks/dc8incl1.dat b/benchmarks/dc8incl1.dat
new file mode 100644
index 0000000..eaa27c1
--- /dev/null
+++ b/benchmarks/dc8incl1.dat
@@ -0,0 +1,44 @@
+KARD 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14
+ 14 15 15 16 16 17 17 18 18 19 19 21 21 21 22 22 22 23 23 23 24 24 24 25 25
+ 25 26 26 26
+KARG 1 5 1 5 1 5 1 5 1 5 1 5 3 5 3 5 3 5 3 5 3 5 3 5 1
+ 2 1 2 1 2 1 3 1 3 1 3 2 4 5 2 4 5 2 4 5 1 4 5 1 4
+ 5 1 4 5
+KBEG 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3
+ 9 3 9 3 9 3 9 3 9 3 9 9 65 3 9 65 3 9 65 3 9 65 3 9 65
+ 3 9 65 3
+KEND 7 13 7 13 7 13 7 13 7 13 7 13 8 13 8 13 8 13 8 13 8 13 8 13 7
+ 14 7 14 7 14 7 14 7 14 7 14 14 69 7 14 69 7 14 69 7 13 69 7 13 69
+ 7 13 69 7
+KTEX 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 1 1
+/BRANCH
+C3 BEGIN WITH ANODE REACTORS AND PARALLEL RESISTORS (6 PAIRS):
+ ?????A?????1 3000.
+ ?????A?????1 1.0
+ ?????B?????3 3000.
+ ?????B?????3 1.0
+ ?????C?????5 3000.
+ ?????C?????5 1.0
+ ???????????4 3000.
+ ???????????4 1.0
+ ???????????6 3000.
+ ???????????6 1.0
+ ???????????2 3000.
+ ???????????2 1.0
+C3 NEXT COME THE SNUBBER CIRCUITS, ACROSS VALVES AND ANODE REACTORS:
+ ?????A?????? 1200. 0.1
+ ?????B?????? 1200. 0.1
+ ?????C?????? 1200. 0.1
+ ?????A?????? 1200. 0.1
+ ?????B?????? 1200. 0.1
+ ?????C?????? 1200. 0.1
+C3 NEXT COME THE VALVES:
+/SWITCH
+11?????1?????? ?????2
+11?????3?????? ?????4
+11?????5?????? ?????6
+11?????4?????A ?????5
+11?????6?????B ?????1
+11?????2?????C ?????3
diff --git a/benchmarks/dc9.dat b/benchmarks/dc9.dat
new file mode 100644
index 0000000..3319176
--- /dev/null
+++ b/benchmarks/dc9.dat
@@ -0,0 +1,1367 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DC-9
+C A collection of 28 simple cases for testing CASCADE LINE as described
+C in the April, 1998, newsletter. 26th is original DC-9 prior to April, 98.
+C 1st of 28 subcases is single-phase and constant parameter distributed.
+C It cascades two 100-mile sections of line, with ZnO only at the end.
+C Series resistance is at the mid-point, within CASCADE LINE.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .020
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .306 5.82 .012 100. { Half the length of original
+ 1 1 1.E-3 { Small resistor precedes line section
+ REPETITION 1 { Connect another 1 section of preceding 100 miles
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SENDA 408000. 60.
+BLANK card ending source data
+ 1
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 28 subcases is single-phase and constant-parameter distributed.
+C It cascades two 100-mile sections of line with ZnO at receiving end and
+C also at the mid-point (it is within CASCADE LINE as a shunt element).
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+92RECA { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials }
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .306 5.82 .012 100. { 1/4 the length of original
+92 1 0RECA { Copy Type-92 ZnO at the receiving end
+ REPETITION 1 { Connect another 1 section of preceding 100 miles
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SENDA 408000. 60.
+BLANK card ending source data
+ 1
+ 144 2. 0.0 20. RECA RECA01
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 28 subcases is the 1st, except that 4 sections of 50
+C miles are used rather than 2 sections of 100 miles. Also, series
+C resistance has been made sizable (10 ohms rather than .001 ohms).
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .306 5.82 .012 50. { 1/4 the length of original
+ 1 1 1.E+1 { Small resistor precedes line section
+ REPETITION 3 { Connect another 3 sections of preceding 50 miles
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SENDA 408000. 60.
+BLANK card ending source data
+ 1
+ 194 2. 0.0 20. RECA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 28 subcases is like 1st, except that the line is 3-phase rather
+C than single phase. Still constant-parameter distributed, each phase
+C has a very small resistor in series at the mid-point. The receiving
+C end has 3 compensation-based surge arresters as in DC-38.
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 30 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .305515.8187.01210 100. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 100. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+ 1 1 1.E-3 { Small resistor precedes line section
+ 2 2 1.E-3 { Small resistor precedes line section
+ 3 3 1.E-3 { Small resistor precedes line section
+ REPETITION 1 { Connect another 1 sections of preceding 100 miles
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
+92RECC 4444. { Phase "c" ZnO is piecewise-linear
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+C Exclamation point holds lower case of following, note:
+ RECA01RECa01RECA RECB01RECb01RECB RECC01RECc01RECC SENDA !
+BLANK card terminating names of node voltage outputs
+ 194 2. 0.0 20. RECA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 28 subcases is like preceding except that lumped elements are
+C shunt-connected rather than series, from conductors to ground.
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 30 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .305515.8187.01210 100. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 100. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+ 1 0 1.E-3 { Capacitance to neutral
+ 2 0 1.E-3
+ 3 0 1.E-3
+ REPETITION 1 { Connect another 1 sections of preceding 100 miles
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
+92RECC 4444. { Phase "c" ZnO is piecewise-linear
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+ 1
+ 194 2. 0.0 20. RECA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 28 subcases is like preceding except that shunt-connected lumped
+C elements are more involved. One dummy node (value -1) is used
+C as well as ground (value 0) and the conductors (values 1, 2, 3).
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 30 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .305515.8187.01210 100. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 100. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+ 1 -1 1.E-3 { Capacitance to neutral
+ 2 -1 1.E-3
+ 3 -1 1.E-3
+ -1 0 1.E-3 { Resistance from neutral to earth
+ REPETITION 1 { Connect another 1 sections of preceding 100 miles
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
+92RECC 4444. { Phase "c" ZnO is piecewise-linear
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+ 1
+ 194 2. 0.0 20. RECA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 28 subcases merely modularizes the data for a 2-phase line that
+C will be used next. It is a modification of 500-kV geometry of DC-59.
+C Preceding line sections were continously transposed. The next will be
+C highly unbalanced due to vertical configuration, note. Phase 1 has a
+C real 3-conductor bundle whereas phase 2 consists of just one conductor
+C twice the height, immediately above the 1st phase.
+LINE CONSTANTS
+$ERASE { Flush the punched card buffer (in case 2nd or later subcase of usage)
+ENGLISH { Redundant request is unnecessary: English units are default choice
+BRANCH JDA LMA JDB LMB
+ 1 .375 .0776 4 .0 1.302 .17 51.04 { Modification of DC-59a
+ 1 .375 .0776 4 .0 1.302 1.00 50.00
+ 1 .375 .0776 4 .0 1.302 1.83 51.04
+ 2 .375 .0776 4 .0 1.302 1.83 101.40 { 2nd phase is twice as high
+BLANK card concludes conductor cards
+C Following is old format with "1" in column 28. Newer blank is equivalent:
+ 100.0 5000.0 1 1 70. 1
+BLANK card ends the one and only frequency card
+$PUNCH
+BLANK card ends "LINE CONSTANTS" data subcase
+BEGIN NEW DATA CASE
+C 8th of 28 subcases is like 1st except that a 2-phase, untransposed
+C line is involved. This involves 1st use of transformation matrix,
+C note. Preceding line sections all were transposed. This one comes
+C from cards punched by 7th data subcase. Use of comments cards within
+C CASCADE LINE also are illustrated (note those series elements are not
+C actually being used; they are comment cards only). Only one phase is
+C excited, for more imbalance. There is no phasor solution, either.
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 30 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+$VINTAGE, 1
+-1JDA LMA 9.92820E+00 4.56745E+02 1.62458E+05-1.00000E+02 1 2
+-2JDB LMB 3.89217E-01 3.61489E+02 1.85363E+05-1.00000E+02 1 2
+$VINTAGE, 0
+ 0.91340878 -0.63245328
+ 0.00000000 0.00000000
+ 0.40704349 0.77459851
+ 0.00000000 0.00000000
+ REPETITION 1 { Connect another 1 section of preceding 100 miles
+C 1 1 1.E+1 { Small resistor precedes line section
+C 2 2 1.E+1 { Small resistor precedes line section
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92LMA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92LMB LMA 5555. 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14JDA 800000. 60. 0.
+BLANK card ending source data
+ 1
+ 194 2. 0.0 20. LMA LMB
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 9th of 28 subcases illustrates transposition without CASCADE LINE.
+C This establishes the answer for the following case. Note the first
+C section ends with (LMA001, LMB001) whereas the 2nd begins with
+C (LMB001, LMA001), which shows 1 --> 2 and 2 --> 1 (swap).
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .006
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+$VINTAGE, 1
+-1JDA LMA001 9.92820E+00 4.56745E+02 1.62458E+05-1.00000E+02 1 2
+-2JDB LMB001 3.89217E-01 3.61489E+02 1.85363E+05-1.00000E+02 1 2
+$VINTAGE, 0
+ 0.91340878 -0.63245328
+ 0.00000000 0.00000000
+ 0.40704349 0.77459851
+ 0.00000000 0.00000000
+-1LMB001LMA JDA LMA001
+-2LMA001LMB
+92LMA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92LMB LMA 5555. 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14JDA 800000. 60. 0. { 1st of 3 sources. Note balanced,
+14JDB 800000. 60. -120. { three-phase, sinusoidal excitation
+BLANK card ending source data
+ LMB001LMA001LMB LMA JDA JDB
+BLANK card terminating names of node voltage outputs
+ 194 .5 0.5 5.5 LMA LMB
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 10th of 28 subcases repeats the preceding. But here CASCADE LINE is
+C used to perform the transposition and connect the following (second)
+C line section. Answers should be identical to preceding case.
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .006
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+$VINTAGE, 1
+-1JDA LMA 9.92820E+00 4.56745E+02 1.62458E+05-1.00000E+02 1 2
+-2JDB LMB 3.89217E-01 3.61489E+02 1.85363E+05-1.00000E+02 1 2
+$VINTAGE, 0
+ 0.91340878 -0.63245328
+ 0.00000000 0.00000000
+ 0.40704349 0.77459851
+ 0.00000000 0.00000000
+ TRANSPOSITION 2 1 { Transpose 2 phases A --> B, B --> A
+C 1 1 1.E+1 { Small resistor precedes line section
+C 2 2 1.E+1 { Small resistor precedes line section
+ REPETITION 1 { Connect another 1 section of preceding 100 miles
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92LMA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92LMB LMA 5555. 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14JDA 800000. 60. 0. { 1st of 3 sources. Note balanced,
+14JDB 800000. 60. -120. { three-phase, sinusoidal excitation
+BLANK card ending source data
+ 1
+ 194 .5 0.5 5.5 LMA LMB
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 11th of 28 subcases illustrates transposition within CASCADE LINE use
+C 50-mile, 2-phase line section is unbalanced. After the 1st of these, we
+C transpose and connect another. This is done 3 times (4 * 50 = 200 miles).
+C diagnostic 9
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+$VINTAGE, 1
+-1JDA LMA 9.92820E+00 4.56745E+02 1.62458E+05 -50. 1 2
+-2JDB LMB 3.89217E-01 3.61489E+02 1.85363E+05 -50. 1 2
+$VINTAGE, 0
+ 0.91340878 -0.63245328
+ 0.00000000 0.00000000
+ 0.40704349 0.77459851
+ 0.00000000 0.00000000
+ TRANSPOSITION 2 1 { Transpose 2 phases A --> B, B --> A
+ REPETITION 1 { Connect another 1 section of 50 miles
+ TRANSPOSITION 2 1 { Transpose 2 phases A --> B, B --> A
+ REPETITION 1 { Connect another 1 section of 50 miles
+ TRANSPOSITION 2 1 { Transpose 2 phases A --> B, B --> A
+ REPETITION 1 { Connect another 1 section of 50 miles
+C 1 1 1.E+1 { Small resistor precedes line section
+C 2 2 1.E+1 { Small resistor precedes line section
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92LMA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92LMB LMA 5555. 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14JDA 408000. 60. 0. { 1st of 3 sources. Note balanced,
+C 14JDB 408000. 60. 0. { three-phase, sinusoidal excitation
+BLANK card ending source data
+ 1
+ 194 2. 0.0 20. LMA { LMB
+C 144 2. 0.0 20. JDA LMA LMA001
+C 144 2. 0.0 20. JDB LMB LMB001
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 12th of 28 subcases illustrates transposition within CASCADE LINE.
+C Preceding data case consisted of manual connection of 3 transpositions and
+C line sections following the original line section. That was manual. Here
+C the multiplicity is automated by INCLUDE TRANSPOSITION IN LOOP anywhere
+C on the REPETITION card. This is new and better as of April 24, 1998.
+C diagnostic 9
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+$VINTAGE, 1
+-1JDA LMA 9.92820E+00 4.56745E+02 1.62458E+05 -50. 1 2
+-2JDB LMB 3.89217E-01 3.61489E+02 1.85363E+05 -50. 1 2
+$VINTAGE, 0
+ 0.91340878 -0.63245328
+ 0.00000000 0.00000000
+ 0.40704349 0.77459851
+ 0.00000000 0.00000000
+ TRANSPOSITION 2 1 { Transpose 2 phases A --> B, B --> A
+ REPETITION 3 INCLUDE TRANSPOSITION IN LOOP { Connect another 3 sections of 50 miles
+C 1 1 1.E+1 { Small resistor precedes line section
+C 2 2 1.E+1 { Small resistor precedes line section
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92LMA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92LMB LMA 5555. 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14JDA 408000. 60. 0. { 1st of 3 sources. Note balanced,
+C 14JDB 408000. 60. 0. { three-phase, sinusoidal excitation
+BLANK card ending source data
+ 1
+ 194 2. 0.0 20. LMA { LMB
+C 144 2. 0.0 20. JDA LMA LMA001
+C 144 2. 0.0 20. JDB LMB LMB001
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 13th of 28 subcases illustrates transposition within CASCADE LINE.
+C Preceding created 200 miles of line using 4 sections of length 50 miles.
+C The only change here is 20 sections of 10 miles each. Each line section
+C is preceded by transposition, so this is close to continuous. The plot
+C here is smoother than preceding, but not greatly different.
+C diagnostic 9
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+$VINTAGE, 1
+-1JDA LMA 9.92820E+00 4.56745E+02 1.62458E+05 -10. 1 2
+-2JDB LMB 3.89217E-01 3.61489E+02 1.85363E+05 -10. 1 2
+$VINTAGE, 0
+ 0.91340878 -0.63245328
+ 0.00000000 0.00000000
+ 0.40704349 0.77459851
+ 0.00000000 0.00000000
+ TRANSPOSITION 2 1 { Transpose 2 phases A --> B, B --> A
+ REPETITION 19 INCLUDE TRANSPOSITION IN LOOP { Connect another 3 sections of 50 miles
+C 1 1 1.E+1 { Small resistor precedes line section
+C 2 2 1.E+1 { Small resistor precedes line section
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92LMA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92LMB LMA 5555. 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14JDA 408000. 60. 0. { 1st of 3 sources. Note balanced,
+C 14JDB 408000. 60. 0. { three-phase, sinusoidal excitation
+BLANK card ending source data
+ LMA001LMB001LMA006LMB006LMA011LMB011LMA016LMB016LMA LMB
+BLANK card ending node voltage outputs
+ 194 2. 0.0 20. LMA { LMB
+C 144 2. 0.0 20. JDA LMA LMA001
+C 144 2. 0.0 20. JDB LMB LMB001
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 14th of 28 subcases illustrates transposition without CASCADE LINE.
+C The preceding pair of cases was for 2 phases; the pair now beginning
+C is for 3 phases. This 1st of the pair establishes the answer for the
+C following case. Note the first section ends with (RECA01, RECB01, &
+C RECC01) whereas the 2nd begins with (RECC01, RECA01, & RECB01),
+C which shows 1 --> 2, 2 --> 3, and 3 --> 1 (a normal roll).
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .010
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+-1SENDA RECA01 .305515.8187.01210 100. 0 { 200-mile, constant-
+-2SENDB RECB01 .031991.5559.01937 100. 0 { parameter, 3-phase
+-3SENDC RECC01 { transmission line.
+-1RECC01RECA SENDA RECA01
+-2RECA01RECB
+-3RECB01RECC
+ RECB01 1.E-3 { Capacitance to neutral
+ RECC01 1.E-3
+ RECA01 1.E-3
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. 1
+92RECC 4444. 1
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+ RECC01RECB01RECA01RECC RECB RECA SENDA SENDB SENDC
+BLANK card terminating names of node voltage outputs
+ 194 1. 0.0 10. BRANCH
+ RECA RECB RECC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 15th of 28 subcases repeats the preceding. But here CASCADE LINE is
+C used to perform the transposition in the middle, and connect line
+C sections. Note the plural: rather than just 2 sections of 100 miles
+C each, here we have 4 sections of 50 miles each. Except for error of
+C discretization and interpolation of the line history, answers should
+C be the same as for the preceding subcase, however.
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .010
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .305515.8187.01210 50. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 50. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+ REPETITION 1 { Connect another 1 sections of preceding 50 miles, making 50
+ TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+ 1 0 1.E-3 { Capacitance to neutral
+ 2 0 1.E-3
+ 3 0 1.E-3
+ REPETITION 1 { Connect another 1 section of preceding 50 miles after R-L-C
+ REPETITION 1 { Connect another 1 section of preceding 50 miles, making 50
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. 1
+92RECC 4444. 1
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+ RECC02RECB02RECA02RECC RECB RECA SENDA SENDB SENDC
+BLANK card terminating names of node voltage outputs
+ 194 1. 0.0 10. BRANCH
+ RECA RECB RECC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 16th of 28 subcases repeats the preceding, only with 10 line sections
+C rather than 4. Total line length remains 200 miles, and transposition
+C occurs only in the middle (after 5 sections of 20 miles).
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .010
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .305515.8187.01210 20. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 20. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+ REPETITION 4 { Connect another 4 sections of preceding 20 miles, making 80
+ TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+ 1 0 1.E-3 { Capacitance to neutral
+ 2 0 1.E-3
+ 3 0 1.E-3
+ REPETITION 1 { Connect another 1 section of preceding 20 miles after R-L-C
+ REPETITION 4 { Connect another 4 sections of preceding 20 miles, making 80
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. 1
+92RECC 4444. 1
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+ RECC05RECB05RECA05RECC RECB RECA SENDA SENDB SENDC
+BLANK card terminating names of node voltage outputs
+ 194 1. 0.0 10. BRANCH
+ RECA RECB RECC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 17th of 28 subcases repeats the preceding, only with 20 line sections
+C rather than 10. Total line length remains 200 miles, and transposition
+C occurs only in the middle (after 10 sections of 10 miles).
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .010
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .305515.8187.01210 10. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 10. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+ REPETITION 9 { 9 more sections all by themselves (no lumped elements)
+ TRANSPOSITION 2 3 1 { Transpose A, B, C --> B, C, A
+ 1 0 1.E-3 { Capacitance to neutral
+ 2 0 1.E-3
+ 3 0 1.E-3
+ REPETITION 1 { 1 more section after 3 lumped elements
+ REPETITION 9 { 9 more sections all by themselves (no lumped elements)
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. 1
+92RECC 4444. 1
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+ RECC10RECB10RECA10RECC RECB RECA SENDA SENDB SENDC
+BLANK card terminating names of node voltage outputs
+ 194 1. 0.0 10. BRANCH
+ RECA RECB RECC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 18th of 28 subcases repeats the preceding, only with 40 line sections
+C rather than 10. Total line length remains 200 miles, and transposition
+C occurs only in the middle (after 20 sections of 5 miles). An important
+C difference is the series elements. In the preceding case, they were
+C used just once. Here, they are repeated 20 times. But since the
+C resistance is so small, answer is not changed appreciably. One final
+C difference is the addition of 8 dummy branches to force nodes NTOT
+C into 3 digits, which changes the interpretation on STOP CASCADE.
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000025 .010
+ 1 1 1 0 1 -1
+ 66 1 80 10 100 100
+ SENDA DUM1 1.0 { 1st of 8 dummy branches to increase NTOT
+ SENDA DUM1 1.0 { These branches are disconnected from line
+ SENDA DUM1 1.0
+ SENDA DUM1 1.0
+ SENDA DUM1 1.0
+ SENDA DUM1 1.0
+ SENDA DUM1 1.0
+ SENDA DUM1 1.0
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .305515.8187.01210 5. 0 { 200-mile, constant-
+-2SENDB RECB .031991.5559.01937 5. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+ REPETITION 19 { 9 more sections of 10 miles for 100 miles total
+ TRANSPOSITION 2 3 1 { 1 more sections; transpose A, B, C --> B, C, A
+ 1 0 1.E-3 { Capacitance to neutral
+ 2 0 1.E-3
+ 3 0 1.E-3
+ REPETITION 20 { 9 more sections of 10 miles for 100 miles total
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. 1
+92RECC 4444. 1
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+ RECC20RECB20RECA20RECC RECB RECA SENDA SENDB SENDC
+BLANK card terminating names of node voltage outputs
+ 194 1. 0.0 10. BRANCH
+ RECA RECB RECC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 19th of 28 subcases is like 8th, but it adds shunt-connected lumped
+C elements (capacitance) that involve a dummy node (number -1). The
+C dummy node is connected to ground by a 1-ohm resistor.
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .006
+ 1 1 1 0 1 -1
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+$VINTAGE, 1
+-1JDA LMA 9.92820E+00 4.56745E+02 1.62458E+05-1.00000E+02 1 2
+-2JDB LMB 3.89217E-01 3.61489E+02 1.85363E+05-1.00000E+02 1 2
+$VINTAGE, 0
+ 0.91340878 -0.63245328
+ 0.00000000 0.00000000
+ 0.40704349 0.77459851
+ 0.00000000 0.00000000
+ TRANSPOSITION 2 1 { Transpose the 2 phases: A --> B, B --> A
+ 1 -1 1.E-3 { Capacitance to neutral
+ 2 -1 1.E-3 { Capacitance to neutral
+ -1 0 1.0 { Resistance from neutral to earth
+ REPETITION 1 { 1 more sections of 100 miles for 200 miles total
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92LMA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92LMB LMA 5555. 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14JDA 408000. 60. 0. { 1st of 3 sources. Note balanced,
+14JDB 408000. 60. -120. { three-phase, sinusoidal excitation
+BLANK card ending source data
+ 1
+ 194 .5 0.5 5.5 LMA LMB
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 20th of 28 subcases is like the 1st, but with the addition of current
+C output for the series resistor in the middle. Also, resistance value
+C has been made sizable (20 ohms) to attenuate the surge.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000050 .020
+ 1 1 1 0 1 -1 2
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .306 5.82 .012 100. { Half the length of original
+ 1 1 2.E+1 { Sizable resistor precedes line section } 1
+ REPETITION 1 { Connect another section of preceding 100 miles, making 200
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SENDA 408000. 60.
+BLANK card ending source data
+ 1
+ 194 2. 0.0 20. RECA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 21th of 28 subcases is like preceding, but with 4 sections of 50 miles
+C rather than 2 of 100. The resistor is repeated 3 times, here, and each
+C section has its own output of current, of course. R = 10 ohms, note.
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1 2
+ 33 1 40 10 100 50
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+-1SENDA RECA .306 5.82 .012 50. { 1/4 the length of original
+ 1 1 1.E+1 { Small resistor precedes line section } 1
+ REPETITION 3 { Connect another 3 sections of preceding 50 miles, making 200
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA { Type 92 is for v-i curve } 5555. { 5555 flag is for exponentials } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 2.0
+C COEF EXPON VMIN
+ 1250. 26. 0.5
+ 9999. { Bound on exponential segments (only one precedes)
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SENDA 408000. 60.
+BLANK card ending source data
+ 1
+ 194 2. 0.0 20. RECA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 22nd of 28 subcases is same as DC-3, only built using CASCADE LINE.
+C One can use FC to compare this solution with DC-3. Comments from it:
+C Energization of 180-mile 3-phase line represented by 18 identical
+C Pi-sections. Transposed at 60 and 120 miles, note. XOPT = 3000.
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .010 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 1 1 1 -1
+ 5 5 10 10 20 20 { Escalating printout frequency
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+ 1GEN-A 18-B 34.372457.68.15781
+ 2GEN-B 18-C 35.735164.43-.031538.002451.79.16587
+ 3GEN-C 18-A 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+C Note that receiving-end names correspond to final phase position (B, C, A)
+C after two cyclic transpositions that will follow. The final line section
+C will connect (18-B17, 18-C17, 18-A17) with (18-B, 18-C, and 18-A).
+ REPETITION 5 { Connect another 5 sections of preceding 10 miles, making 50
+ TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+ REPETITION 6 { Connect another 6 sections of preceding 10 miles, making 60
+ TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+ REPETITION 6 { Connect another 6 sections of preceding 10 miles, making 60
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 23rd of 28 subcases is like preceding, except that it has added damping
+C as explained in the July, 1999, newsletter. Comments document this
+C exceptional, extra data card immediately following the line section.
+C The idea comes from Orlando Hevia. Value 100K ohms used here results
+C in graphically obvious damping (see screen plot) without changing the
+C peak value much. Initial ringing is essentially the same although
+C following noise disappears much more quickly.
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .010 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 1 1 1 -1
+ 5 5 10 10 20 20 { Escalating printout frequency
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+ 1GEN-A 18-B 34.372457.68.15781
+ 2GEN-B 18-C 35.735164.43-.031538.002451.79.16587
+ 3GEN-C 18-A 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+C For added, artificial damping, an extra card having blank columns 1-26
+C must immediately following the line section. Columns 27-32 carry the
+C value in ohms of resistor that will parallel each phase of each section:
+ 1.E5 { Damping resistor parallels each conductor
+C Note that receiving-end names correspond to final phase position (B, C, A)
+C after two cyclic transpositions that will follow. The final line section
+C will connect (18-B17, 18-C17, 18-A17) with (18-B, 18-C, and 18-A).
+ REPETITION 5 { Connect another 5 sections of preceding 10 miles, making 50
+ TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+ REPETITION 6 { Connect another 6 sections of preceding 10 miles, making 60
+ TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+ REPETITION 6 { Connect another 6 sections of preceding 10 miles, making 60
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+ 144 1. 0.0 10. -2. 2. 18-C 18-B 18-A
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 24th of 28 subcases begins illustration of frequency-dependent line
+C sections within CASCADE LINE. Begin with Semlyen F-dependence.
+C This initial subcase will connect 2 100-mile sections manually in
+C order to establish the right answer. No CASCADE LINE yet.
+PRINTED NUMBER WIDTH, 9, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 .004 60.
+ 1 1 1 1 0 -1
+ 30 5 50 10 100 100
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C SEMLYEN SETUP
+C $ERASE
+C BRANCH SENDA RECA SENDB RECB SENDC RECC
+C TOLERANCES 10 5000. { Illustration only; value of FMED actually unchang
+C 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous da
+C LINE CONSTANTS
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C BLANK card ending conductor cards within "LINE CONSTANTS" data
+C 100. 5000. 100. { Transient frequen
+C 100. 60.00 100. { Phasor solution frequen
+C 100. 6.00 100. 6 20 { log loopi
+C BLANK card ending frequency cards of "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" data cases
+C L= 100.0 miles, rho= 100.0, ss freq= 60.00, NSS=0, KFIT=10, KPS=2, KYC=30
+-1ASW1 A5A001 5.73657E-03 5.80501E-04 1 1 2 2 3
+ 1.29532159E+01 6.90147263E+01-1.54971081E-04 1.00826561E-03 6.00000000E+01
+ 0.00000E+00 1.99246E+04 7.80012E-01 0.00000E+00 2.39630E+03 2.19988E-01
+ 0.00000E+00 2.93896E+05-8.84697E-04 0.00000E+00 6.44826E+02-1.46889E-03
+-1BSW1 B5B001 6.99857E-03 5.37300E-04 2 2 2 2 3
+ 3.65631810E-01 3.01288921E+01-1.20641047E-05 1.41887940E-03 6.00000000E+01
+ 0.00000E+00 2.54663E+05 9.79674E-01 0.00000E+00 2.72320E+03 2.03258E-02
+ 0.00000E+00 9.43770E+03-1.26448E-04 0.00000E+00 5.92472E+01-4.28807E-04
+-1CSW1 C5C001 4.15601E-03 5.36306E-04 3 3 2 2 3
+ 1.50114817E+00 5.16927471E+01-1.74676422E-05 8.35146102E-04 6.00000000E+01
+ 0.00000E+00 6.39606E+05 9.69072E-01 0.00000E+00 2.23039E+03 3.09277E-02
+ 0.00000E+00 2.10503E+03-1.22603E-04 0.00000E+00 9.26329E+01-3.41262E-04
+ 1.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00-2.75271E-01 0.00000E+00
+ 7.22689E-01 0.00000E+00 4.43389E-13 0.00000E+00 1.00000E+00 0.00000E+00
+ 1.00000E+00 0.00000E+00-1.00000E+00 0.00000E+00-2.75271E-01 0.00000E+00
+ 4.17084E-01 0.00000E+00 5.00000E-01 0.00000E+00-3.01620E-01 0.00000E+00
+ 2.29906E-01 0.00000E+00 3.55101E-13 0.00000E+00 8.34169E-01 0.00000E+00
+ 4.17084E-01 0.00000E+00-5.00000E-01 0.00000E+00-3.01620E-01 0.00000E+00
+-1A5A001A5A ASW1 A5A001
+-1B5B001B5B
+-1C5C001C5C
+ 0A5A 1. 1
+ 0B5B 1. 1
+ 0C5C 1. 1
+ 0A5A001 1.E-3
+ 0B5B001 1.E-3
+ 0C5C001 1.E-3
+BLANK card ending branch cards
+BLANK card ending switch cards
+14ASW1 303. 60. 0.0 -1.
+14BSW1 303. 60. -120.0 -1.
+14CSW1 303. 60. 120.0 -1.
+BLANK card ending source cards
+ A5A A5A001B5B B5B001C5C C5C001
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 25th of 28 subcases repeats the preceding, only using CASCADE LINE
+C to connect together the two Semlyen F-dependent line sections.
+PRINTED NUMBER WIDTH, 9, 2, { Reduced precision
+ 100.E-6 .004 60.
+ 1 1 1 1 0 -1
+ 30 5 50 10 100 100
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C SEMLYEN SETUP
+C $ERASE
+C BRANCH SENDA RECA SENDB RECB SENDC RECC
+C TOLERANCES 10 5000. { Illustration only; value of FMED actually unchang
+C 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous da
+C LINE CONSTANTS
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C BLANK card ending conductor cards within "LINE CONSTANTS" data
+C 100. 5000. 100. { Transient frequen
+C 100. 60.00 100. { Phasor solution frequen
+C 100. 6.00 100. 6 20 { log loopi
+C BLANK card ending frequency cards of "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" data cases
+C L= 100.0 miles, rho= 100.0, ss freq= 60.00, NSS=0, KFIT=10, KPS=2, KYC=30
+-1ASW1 A5A 5.73657E-03 5.80501E-04 1 1 2 2 3
+ 1.29532159E+01 6.90147263E+01-1.54971081E-04 1.00826561E-03 6.00000000E+01
+ 0.00000E+00 1.99246E+04 7.80012E-01 0.00000E+00 2.39630E+03 2.19988E-01
+ 0.00000E+00 2.93896E+05-8.84697E-04 0.00000E+00 6.44826E+02-1.46889E-03
+-1BSW1 B5B 6.99857E-03 5.37300E-04 2 2 2 2 3
+ 3.65631810E-01 3.01288921E+01-1.20641047E-05 1.41887940E-03 6.00000000E+01
+ 0.00000E+00 2.54663E+05 9.79674E-01 0.00000E+00 2.72320E+03 2.03258E-02
+ 0.00000E+00 9.43770E+03-1.26448E-04 0.00000E+00 5.92472E+01-4.28807E-04
+-1CSW1 C5C 4.15601E-03 5.36306E-04 3 3 2 2 3
+ 1.50114817E+00 5.16927471E+01-1.74676422E-05 8.35146102E-04 6.00000000E+01
+ 0.00000E+00 6.39606E+05 9.69072E-01 0.00000E+00 2.23039E+03 3.09277E-02
+ 0.00000E+00 2.10503E+03-1.22603E-04 0.00000E+00 9.26329E+01-3.41262E-04
+ 1.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00-2.75271E-01 0.00000E+00
+ 7.22689E-01 0.00000E+00 4.43389E-13 0.00000E+00 1.00000E+00 0.00000E+00
+ 1.00000E+00 0.00000E+00-1.00000E+00 0.00000E+00-2.75271E-01 0.00000E+00
+ 4.17084E-01 0.00000E+00 5.00000E-01 0.00000E+00-3.01620E-01 0.00000E+00
+ 2.29906E-01 0.00000E+00 3.55101E-13 0.00000E+00 8.34169E-01 0.00000E+00
+ 4.17084E-01 0.00000E+00-5.00000E-01 0.00000E+00-3.01620E-01 0.00000E+00
+ 1 0 1.E-3 { Capacitance to neutral
+ 2 0 1.E-3
+ 3 0 1.E-3
+ REPETITION 1 { Connect another 1 sections of preceding 50 miles, making 200
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+ 0A5A 1. 1
+ 0B5B 1. 1
+ 0C5C 1. 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14ASW1 303. 60. 0.0 -1.
+14BSW1 303. 60. -120.0 -1.
+14CSW1 303. 60. 120.0 -1.
+BLANK card ending source data
+ A5A A5A001B5B B5B001C5C C5C001
+BLANK card ending node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 26th of 28 subcases is like preceding subcase, but Semlyen line
+C modeling is replaced by J. Marti line modeling. Still two 100-mile
+C sections are cascaded, however.
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .020
+ 1 1 1 0 1 -1
+ 30 5 50 10 100 100
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C ***** UNTRANSPOSED JMARTI line segment ******
+C JMARTI SETUP, 1.0, { Note use of PDT0 = 1 to allow reduction of ord
+C $ERASE
+C BRANCH SENDA RECA SENDB RECB SENDC RECC
+C LINE CONSTANTS
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data
+C 100. 5000. 100. 1 1
+C 100. 60.00 100. 1 1
+C 100. .01 100. 1 9 10 1
+C BLANK card ending frequency cards of inbedded "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" cases (back to "JMARTI SETUP")
+C 1 .48D-7
+C .30 30 0 1 3 0 0
+-1SENDA RECA 1. 1.00 -2 3
+ 18 4.7483546376731072800E+02
+ -1.18006161060646209E+00 -3.16766872020413360E+00 2.55699269092638702E+01
+ -6.01797009623673489E+01 -1.18859418694219202E+02 1.28219132925008535E+03
+ 5.89997491758850629E+03 2.93123960674098963E+04 1.15769990477470027E+05
+ 4.56828075863527542E+05 1.53829254905850161E+06 6.82459590531661455E+06
+ 1.55607339315315970E+07 2.31961726607006118E+07 1.43948936484195535E+07
+ 2.41675279090378210E+07 2.45138250143723451E+07 4.76943011379202083E+07
+ 3.21677891370685698E-01 8.97689663361987301E-01 1.65645914803404449E+00
+ 1.66683409949634776E+00 2.53097172028723927E+00 2.00062220020147664E+01
+ 1.24317532805618115E+02 6.57762750995805277E+02 2.78828659956286174E+03
+ 1.17239579054727201E+04 4.27765179903550234E+04 2.02713498468649341E+05
+ 9.69491855126972544E+05 2.97097124115793128E+06 7.38395608260167297E+06
+ 1.21069716520713456E+07 1.32941233143761196E+07 2.52144300149374009E+07
+ 14 6.2012595281792895700E-04
+ 9.21163821482878787E-02 4.49959993192020458E-01 5.85569758182220901E-01
+ 1.39148640698697257E+00 5.62298197490835961E+00 1.70440712502643735E+01
+ 1.13333401654647077E+02 5.08692785290631662E+02 2.44410769027288780E+03
+ 9.94922166773389450E+02 1.34258890978641612E+04 7.13108058148054174E+05
+ 6.17020585096151010E+07 -6.24326786990908981E+07
+ 3.32380162906116326E+01 1.56591584681817097E+02 2.11026421609272604E+02
+ 4.12916697658035276E+02 4.68653759455945079E+02 7.14803232315465494E+02
+ 1.93593005557436050E+03 3.70931080902511576E+03 6.84113065949658449E+03
+ 9.03279886786780117E+03 1.87891647818270213E+04 3.39154192586971549E+04
+ 3.11467431507017864E+04 3.11778898938524981E+04
+-2SENDB RECB 1. 1.00 -2 3
+ 13 2.8580875771920489100E+02
+ 3.81761650263625780E+03 -2.69529267120074792E+03 4.45018223196032978E+02
+ 2.14658087789413543E+02 8.97324539735147795E+01 1.30479996048504689E+02
+ 6.83066754726465888E+01 7.46726687815945383E+01 1.34027409744895681E+03
+ 2.50078920872312984E+03 1.87804658322097858E+04 3.91074617528546777E+05
+ 5.62682417249109410E+06
+ 3.58668998822370755E+00 3.76679183632024107E+00 7.06439014940525656E+00
+ 1.09721623541976090E+01 1.40506300112179279E+01 2.34292433673431511E+01
+ 4.07689465036720549E+01 7.97671181460381150E+01 1.29186371424101322E+03
+ 2.42269462582384268E+03 1.82406263537032428E+04 3.79870364151798015E+05
+ 5.48842772234612518E+06
+ 12 5.3730880510797227400E-04
+ 2.52028254243671146E+00 4.01109349623009948E+01 6.96402856688803383E+01
+ 3.57989358491384949E+01 5.71230525753107032E+02 6.38898075449796034E+03
+ 4.78340405101482902E+04 3.41271841771830660E+04 5.07996697693548748E+05
+ 1.11163339089429100E+07 -1.33632800675941563E+09 1.32461460664639903E+09
+ 4.94199695306566128E+02 7.83643468932789893E+03 1.32162679948852129E+04
+ 6.60156366445954882E+03 2.62734388612854382E+04 1.06907548589068698E+05
+ 2.12743847016397224E+05 2.51865691934913310E+05 6.08900683349632076E+05
+ 1.18332010282752617E+06 1.34471502915186296E+06 1.34605974418101414E+06
+-3SENDC RECC 1. 1.00 -2 3
+ 14 2.7244405820675621000E+02
+ 3.17764328769020324E+02 3.84056941911861316E+02 7.78154566307962341E+02
+ 1.03108316719518073E+02 2.00907813594929423E+02 7.57757504866314662E+01
+ 1.33832891336631036E+02 6.58793101560571018E+01 6.29912275222635501E+01
+ 9.49916573832233411E+01 1.15740687395458577E+03 2.61294978694073052E+03
+ 1.54518909503364667E+04 6.88065437367142179E+05
+ 2.24584095184176836E+00 5.75878919400151102E+00 3.82714998158506692E+00
+ 6.71993501533223281E+00 1.07191091989576162E+01 1.36101548287774819E+01
+ 2.35649762525126896E+01 3.87434226439781427E+01 7.02935629984925754E+01
+ 1.04171009267287304E+02 1.11593305416259068E+03 2.53309850094363765E+03
+ 1.49935463738342951E+04 6.69557374591290136E+05
+ 19 5.4249643968434541500E-04
+ 5.03387350941083417E-02 6.52560754647720121E+00 6.22874555413331255E+00
+ 1.10921489856047871E+01 1.43892714677717013E+01 2.19646982905073643E+01
+ 2.39955726673266483E+01 1.21934358335957640E+02 1.92937966105206875E+03
+ 2.44231984427209682E+03 2.02708309307978635E+04 -4.49273698439439250E+04
+ 2.83136618112942728E+05 3.18181274590489164E+05 3.43779403231728764E+05
+ 4.56485000780035210E+09 -4.47900949758226872E+09 8.07451970047741032E+09
+ -8.16128522933274556E+09
+ 1.81395392158859572E+01 2.39258438884147018E+03 2.16963528059100600E+03
+ 3.94822566442155040E+03 5.27570056810359165E+03 7.69075350487642664E+03
+ 8.80973914669594160E+03 3.76208534925462009E+04 5.81576243785037660E+04
+ 6.47439571523925988E+04 1.97383423873635883E+05 6.74981934148844798E+05
+ 5.87155884247283801E+05 1.28272476890128758E+06 1.75714198326300784E+06
+ 7.85922959411724192E+06 7.86708882371135429E+06 6.80579508985397965E+06
+ 6.81260088494382892E+06
+ 0.57153211 0.70710678 -0.41762015
+ 0.00000000 0.00000000 0.00000000
+ 0.58881414 0.00000000 0.80696147
+ 0.00000000 0.00000000 0.00000000
+ 0.57153211 -0.70710678 -0.41762015
+ 0.00000000 0.00000000 0.00000000
+ 1 0 1.E-3 { Capacitance to neutral } 3
+ 2 0 1.E-3
+ 3 0 1.E-3
+ REPETITION 1 { Connect another 1 sections of preceding 100 miles
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+92RECA 5555. { 1st card of 1st of 3 ZnO } 1
+C VREF VFLASH VZERO COL
+ 778000. -1.0 0.0 4.0
+C COEF EXPON VMIN
+ 625. 26. 0.5
+ 9999.
+92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
+92RECC 4444. { Phase "c" ZnO is piecewise-linear
+C VREF VFLASH VZERO
+ 0.0 -1.0 0.0
+ 1.0 582400. { First point of i-v curve.
+ 2.0 590800. { Data is copied from DC-39
+ 5.0 599200. { which was used to create
+ 10. 604800. { the ZnO branch cards that
+ 20. 616000. { are used in phases "a" &
+ 50. 630000. { "b". But there is some
+ 100. 644000. { distortion due to the use
+ 200. 661920. { of linear rather than the
+ 500. 694400. { more accurate exponential
+ 1000. 721280. { modeling, of course.
+ 2000. 756000.
+ 3000. 778400. { Last point of i-v curve.
+ 9999. { Terminator for piecewise-linear characteristic
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 408000. 60. -120. { three-phase, sinusoidal excitation
+14SENDC 408000. 60. 120. { with no phasor solution.
+BLANK card ending source data
+ SENDA RECA01SENDB RECB01SENDC RECC01
+BLANK card ending the specification of program outputs (node voltages, here)
+ CALCOMP PLOT
+ 194 2. 0.0 20. RECA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DC-9
+C 27th of 28 subcases is a modification of the original DC-9, which
+C for some 24 years carried CASCADED PI usage. Data has been converted
+C from CASCADED PI (now gone as of April, 1998) to CASCADE LINE
+ 0.0 0.0 60.
+ 0 0 1 1
+ CASCADE LINE { Request for February, 1998 replacement of old CASCADED PI
+ 1RA1 MIDA .877 8.40 .1628
+ 2RB1 MIDB .747 4.14-.0252 .852 8.43 .1559
+ 3RC1 MIDC .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571
+ REPETITION 1 { Connect another 1 section of preceding
+C Ok, we now are at nodes 2A1, 2B1, and 2C1 of Fig. 1 in Sect. IV-F of the
+C Rule Book. Next, we must roll, connect some lumped elements in series,
+C and finally another (just one) line section:
+ TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+C 1 1 1.E-3 { Poor approximation to short circuit ignored
+ 2 2 1.E18
+ 3 3 13.1449.071
+ REPETITION 1 { Loop once over preceding lumped elements and line section
+C Ok, we now are at nodes 4C1, 4A1, and 4B1 of Fig. 1. Next, we must
+C roll, connect some lumped elements in series, and finally another line
+C section. If final line section is split in half, each half is very close
+C to original above, so we can stay within CASCADE LINE longer:
+ TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+ 1 1 13.14
+ 2 2 13.14
+ 3 3 13.1449.071
+ 1 -1 13.1449.071
+ 2 -1 13.1449.071
+ 3 -1 13.1449.071
+ 0 -1 5.0 13.14
+C REPETITION 1
+C TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
+C 1 1 13.14
+C 2 2 13.14
+C 3 3 13.1449.071
+C 1 -1 13.1449.071
+C 2 -1 13.1449.071
+C 3 -1 13.1449.071
+C 0 -1 5.0 13.14
+C REPETITION 1
+C Note: the preceding comment cards are equivalent to the following line:
+ REPETITION 2 INCLUDE TRANSPOSITION IN LOOP { Replace preceding comments
+ STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
+C Final line section was split in two. Originally, it was approximately one
+C double-length section. It becomes two single-length sections of which the
+C first of the two is defined by the preceding REPETITION loop. That leaves
+C one single-length section to be connected manually:
+ 1MIDA GENA .877 8.40 .1628
+ 2MIDB GENB .747 4.14-.0252 .852 8.43 .1559
+ 3MIDC GENC .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571
+BLANK card ending branch cards
+BLANK card ending switch cards (none for this problem)
+14RA1 424.35 60. 10.0 -.1
+14RB1 424.35 60. -110.0 -.1
+14RC1 424.35 60. 130.0 -.1
+14GENA 424.35 60. 0.0 -.1
+14GENB 424.35 60. -120.0 -.1
+14GENC 424.35 60. 120.0 -.1
+$WIDTH, 79, { Request narrow, 80-column LUNIT6 output as an illustration
+BLANK card ending source cards
+BLANK card ending selective node voltage outputs (none for this problem)
+ PRINTER PLOT
+BLANK card ending plot cards (none allowed for CASCADED PI use, actually)
+BEGIN NEW DATA CASE
+$WIDTH, 132, { Restore normal 132-column LUNIT6 output for this subcase
+C DIAGNOSTIC 0 0 3 { Produce [Y] of CASCADE PI in the .DBG file
+C 28th of 28 subcases is the original DC-9 data from April of 1998. This
+C is appended 2 August 2009 as the old CASCADED PI code is added back
+C into ATP. We do add $PUNCH to illustrate the punching of [Y] on
+C branch cards. Compare this output with the data of DC-11. WSM.
+C Illustration of many "CASCADED PI" features. See DCPRINT-25 if any
+C trouble, and DC-10 for comparison (same solution only manual cascade).
+ 0.0 0.0 60.
+ 0 0 1 1
+ CASCADED PI 3 60.0
+ 1RA1 GA1 .877 8.40 .1628
+ 2RB1 GB1 .747 4.14-.0252 .852 8.43 .1559
+ 3RC1 GC1 .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571
+ 1.0 2 0 0 1 1 2 3
+ 1.0 1 1 0 0 2 3 1
+ 2 999999
+ 3 13.1449.071
+BLANK card ending first Class-5 (Series R-L-C) set of data
+ 1.0 1 1 1 0 3 1 2
+ 1 13.14
+ 2 13.14
+ 3 13.1449.071
+BLANK card ending 2nd Class-5 (Series R-L-C) set of data
+ 1 -1 13.1449.071
+ 2 -1 13.1449.071
+ 3 -1 13.1449.071
+ -1 5.0 13.14
+BLANK card ending first Class-6 (Shunt R-L-C) set of data
+ 2.0 1 -1 -1 1 1 2 3
+ 1 .829 8.46 .1571
+ 2 .723 4.17-.0277 .852 8.43 .1559
+ 3 .735 3.47-.0067 .747 4.14-.0252 .877 8.40 .1628
+C Activate the following comment for full precision of [Y] on punched cards:
+C $VINTAGE, 2, { Request maximum of 27 columns of precision (not 16) for TR, TX
+ STOP CASCADE
+BLANK card ending branch cards
+C In 1998, [Y] was obtained from diagnostic output of overlay 3. As code is
+C restored in August of 2009, this no longer is necessary. [Y] automatically
+C is placed on branch cards in the punch buffer. It only remains for the user
+C to flush them. Any time after STOP CASCADE should work. WSM.
+$PUNCH { Output the branch [Y] as could be used for data in DC-11
+BLANK card ending switch cards (none for this problem)
+14GA1 424.35 60. 0.0 -.1
+14RA1 424.35 60. 10.0 -.1
+14GB1 424.35 60. -120.0 -.1
+14RB1 424.35 60. -110.0 -.1
+14GC1 424.35 60. 120.0 -.1
+14RC1 424.35 60. 130.0 -.1
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 9.311041032866E+03
+C 1st gen: RA1 417.90316999073 424.35 -.0131358847782 .05382578726276
+C 1st gen: 73.687604192962 10.00000 .05219831324431 104.1253709
+C End last gen: -12.95674346101 44.419110587004 -6432.468410934 9424.6247887975
+C End last gen: -42.48741206788 -106.9593405 -6888.171205186 -0.6825172
+BLANK card ending selective node voltage outputs (none for this problem)
+ PRINTER PLOT
+BLANK card ending plot cards (none allowed for CASCADED PI use, actually)
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn1.dat b/benchmarks/dcn1.dat
new file mode 100644
index 0000000..5cdbf19
--- /dev/null
+++ b/benchmarks/dcn1.dat
@@ -0,0 +1,883 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-1
+C Test of automatic U.M. initialization using Type-4 (the induction) mode.
+C Continuation of steady-state only (no real transient). No external rotor
+C circuit. Machine rating is as follows:
+C 2.541 MVA, 4.2 KV, 4 POLE ( 85.67% efficiency at 0.846 PF
+C and 14.0E+3 NM.; KIPP TORQUE = 79.157E+3 NM, SLP = 24.3% )
+POWER FREQUENCY, 60, { Corrects possible 50-Hz declaration of European STARTUP
+ABSOLUTE U.M. DIMENSIONS, 20, 2, 50, 60,
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000200 .100
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+C --------- ROTOR EXTERNAL RESISTANCES
+ BUSA2 BUSAS2 1.0E-4 10.0 1
+ BUSB2 BUSBS2BUSA2 BUSAS2
+ BUSC2 BUSCS2BUSA2 BUSAS2
+C --------- CONNECTIVITY OF EMTP FOR ELECTRIC NETWORK
+ BUSAS2 1.0E+6
+ BUSBS2 BUSAS2
+ BUSCS2 BUSAS2
+C --------- MECHANICAL NETWORK COMPONENTS
+ BUSMG BUSMGR .4548 1
+ BUSMGR BUSMG BUSMGR
+ BUSMG 9.8E+7 1
+C -------- FOR MEASUREMENT OF ELECTROMECHANICAL TORQUE
+ BUSMS BUSMG 1.0E-6 1
+BLANK card ending branch cards
+BLANK card ending nonexistent switch cards
+C --------- SOURCES FOR INFINITE BUS
+14BUSAS2 3000.0 60.0 0.0 -1.0
+14BUSBS2 3000.0 60.0 -120.0 -1.0
+14BUSCS2 3000.0 60.0 +120.0 -1.0
+C --------- 3-PHASE SOURCES AT ROTOR SIDE (ACTUAL FREQ SET BY SS):
+C --------- MECHANICAL INPUT TORQUE (ACTUAL VALUE SET BY SS):
+14BUSMS -1 0.000001 0.00001 -1.0
+19 UM { Beginning of U.M. data
+ 1
+BLANK CARD ENDING CLASS 1 UM DATA CARDS
+C UM-1 MACHINE TABLE :
+ 4 111BUSMG 2 0.1885
+ 0.02358
+ 0.02358
+2.0 0.0 BUSMS
+C UM-1 COIL TABLE
+ BUSA2 1
+0.412 0.0012 BUSB2 1
+0.412 0.0012 BUSC2 1
+0.110 0.0012 1
+0.110 0.0012 1
+ 1
+BLANK card terminating all U.M. data
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C BUSA2 |BUSAS2*UM1TLA*
+C BUSAS2 |TERRA *BUSA2 *
+C BUSB2 |BUSBS2*UM1TLB*
+C BUSBS2 |TERRA *BUSB2 *
+C BUSC2 |BUSCS2*UM1TLC*
+C BUSCS2 |TERRA *BUSC2 *
+C BUSMG |TERRA *BUSMGR*BUSMS *UM1MCC*
+C BUSMGR |TERRA *BUSMG *
+C BUSMS |BUSMG *
+C UM1TLA |BUSA2 *
+C UM1TLB |BUSB2 *
+C UM1TLC |BUSC2 *
+C UM1MCC |BUSMG *
+C TERRA |BUSAS2*BUSBS2*BUSCS2*BUSMG *BUSMGR*
+C --------------+------------------------------
+BLANK card ending all electric-network sources
+C Total network loss P-loss by summing injections = 1.399999999990E+01
+C Total network loss P-loss by summing injections = 1.879270126241E+04
+C Total network loss P-loss by summing injections = 1.879220126241E+04
+C Total network loss P-loss by summing injections = 1.880006219404E+04
+C Last inject: BUSCS2 -1500. 3000. 182.2227379651 376.33814334153
+C Last inject: 2598.0762113533 120.0000 329.27992939481 61.0399614
+ BUSAS2BUSA2 BUSMG { Selective node voltage outputs
+C Step Time BUSAS2 BUSA2 BUSMG BUSA2 BUSMG
+C BUSAS2 BUSMGR
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1
+C OMEGM THETAM IPA IPB IPC
+C 0 0.0 3000. 1784.374675 184.725648 -194.050415 203.0844855
+C 184.725648 .7853981634 -194.050415 376.2746528 -182.224238
+C 1 .2E-3 2991.476701 1834.302202 184.7256479 -217.778001 203.0844854
+C 184.725648 .822343293 -217.778001 374.6919354 -156.913934
+BLANK card terminating output variable requests
+C 500 0.1 3000. 1783.984613 184.7241591 -193.987564 203.0828486
+C 184.725648 19.25796297 -193.987564 376.1921117 -182.204548
+C Variable maxima : 3000. 1928.26504 184.725648 376.2415171 203.0844855
+C 184.725648 19.25796297 376.2415171 376.2781467 376.2139786
+C Times of maxima : 0.0 .001 0.0 .0944 0.0
+C 0.0 0.1 .0944 .0166 .0722
+C Variable minima : -3000. -1928.26734 184.7241591 -376.246896 203.0828486
+C 184.725648 .7853981634 -376.246896 -376.228394 -376.231626
+C Times of minima : .075 .026 0.1 .0194 0.1
+C 0.0 0.0 .0194 .0916 .0972
+ PRINTER PLOT
+ 194 10 0.0 100 UM-1 OMEGM UM-1 THETAM { Plot limits: (0.000, 1.847)
+ 194 20 0.0 100 BUSMG BUSMGRUM-1 TQGEN { Plot limits: (-4.168, 0.203)
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 2nd of 7 subcases is related to first. Solution is nearly the same. Two
+C changes have been made. First, prediction rather than compensation is
+C used ("1" in column 15 on 2nd card). Second, two copies of the induction
+C machine are in parallel (armature terminals). The two machines do have
+C separate (but identical) mechanical networks, however. The impedance that
+C connects armature coils to the infinite bus has been halved in order to
+C keep the solution the same until the fault (armature phase "a" to ground)
+C at 20 msec. This simulation has been stopped at 50 msec, but others have
+C run to 1/2 second with interesting results. For example, fault current
+C still shows a sizable dc offset that is decaying very slowly. The speed
+C demonstrates a small but troublesome oscillation on each time step. If
+C the fault switch is erased, then the simulation agrees closely with the
+C first subcase.
+POWER FREQUENCY, 60, { Corrects possible 50-Hz declaration of European STARTUP
+ABSOLUTE U.M. DIMENSIONS, 20, 2, 50, 60,
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000200 .050
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 1 105 5 120 20
+C Impedance (series R-L) connects armature coils with sinusoidal sources:
+ BUSA2 BUSAS2 .50E-4 5.0 1
+ BUSB2 BUSBS2BUSA2 BUSAS2
+ BUSC2 BUSCS2BUSA2 BUSAS2
+C --------- CONNECTIVITY OF EMTP FOR ELECTRIC NETWORK
+ BUSAS2 .50E+6
+ BUSBS2 BUSAS2
+ BUSCS2 BUSAS2
+C ======== Begin mechanical network for 1st of 2 parallel induction machines:
+ BUSMG BUSMGR .4548 1
+ BUSMGR BUSMG BUSMGR
+ BUSMG 9.8E+7 1
+ BUSMG 9.8E+7 1
+ BUSMS BUSMG 1.0E-6 { To measure electromagnetic torque } 1
+C ======== Begin mechanical network for 2nd of 2 parallel induction machines:
+ GUSMG GUSMGR .4548 1
+ GUSMGR GUSMG GUSMGR
+ GUSMG 9.8E+7 1
+ GUSMS GUSMG 1.0E-6 { To measure electromagnetic torque } 1
+BLANK card ending branch cards
+ BUSA2 .0199 1.0 { Retard by dt/2 so close at 20 msec } 1
+BLANK card terminating all switch cards
+C --------- SOURCES FOR INFINITE BUS
+14BUSAS2 3000.0 60.0 0.0 -1.0
+14BUSBS2 3000.0 60.0 -120.0 -1.0
+14BUSCS2 3000.0 60.0 +120.0 -1.0
+C --------- 3-PHASE SOURCES AT ROTOR SIDE (ACTUAL FREQ SET BY SS):
+C --------- MECHANICAL INPUT TORQUE (ACTUAL VALUE SET BY SS):
+14BUSMS -1 0.000001 0.00001 -1.0
+14GUSMS -1 0.000001 0.00001 -1.0
+19 UM { Beginning of U.M. data
+ 1 1
+BLANK CARD ENDING CLASS 1 UM DATA CARDS
+C UM-1 MACHINE TABLE :
+ 4 111BUSMG 2 0.1885
+ 0.02358
+ 0.02358
+2.0 0.0 BUSMS
+C UM-1 COIL TABLE
+ BUSA2 1
+0.412 0.0012 BUSB2 1
+0.412 0.0012 BUSC2 1
+0.110 0.0012 1
+0.110 0.0012 1
+ 1
+ 4 111GUSMG 2 0.1885
+ 0.02358
+ 0.02358
+2.0 0.0 GUSMS
+ BUSA2 1
+0.412 0.0012 BUSB2 1
+0.412 0.0012 BUSC2 1
+0.110 0.0012 1
+0.110 0.0012 1
+ 1
+BLANK card terminating all U.M. data
+BLANK card ending all electric-network sources
+C Total network loss P-loss by summing injections = 1.434204163862E+06
+C Total network loss P-loss by summing injections = 1.746481733467E+06
+C Total network loss P-loss by summing injections = 2.447413291234E+07
+C Total network loss P-loss by summing injections = 2.447413191234E+07
+C Total network loss P-loss by summing injections = 2.447414763420E+07
+C Step Time BUSAS2 BUSA2 BUSMG BUSA2 BUSA2
+C TERRA BUSAS2
+C
+C BUSMS GUSMG GUSMG GUSMS UM-1
+C BUSMG GUSMGR TERRA GUSMG TQGEN
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1
+C IPB IPC IE1 IE2 IE3
+C
+C UM-2 UM-2 UM-2 UM-2 UM-2
+C IPA IPB IPC IE1 IE2
+C 0 0.0 3000. 1784.374675 184.725648 0.0 -388.10083
+C -3965.07077 203.0844855 0.0 -3965.07077 -4168.15526
+C 376.2746528 -182.224238 62.0743506 -362.34101 -87.7863885
+C -194.050415 376.2746528 -182.224238 62.0743506 -362.34101
+C 1 .2E-3 2991.476701 1834.404076 184.725648 0.0 -435.553965
+C -3965.07077 203.0844854 -.092693806 -3965.07077 -4168.06256
+C 374.6920465 -156.915064 161.7505543 -308.470816 146.7202621
+C -217.776982 374.6920465 -156.915064 161.7505543 -308.470816
+ BUSAS2BUSA2 BUSMG { Selective node voltage outputs
+BLANK card terminating output variable requests
+C 250 .05 3000. 0.0 183.9807585 -1085.80689 804.5211912
+C -3965.07077 201.4660671 -114.046535 -3965.07077 -3834.24844
+C 480.8586416 -288.589529 192.2606971 -403.962505 211.7018082
+C -150.261378 499.5514745 -288.045306 219.3886975 -425.409154
+C Variable max : 3000. 1928.308447 184.725648 3888.235034 2395.399979
+C -3965.07077 203.0844855 3222.786447 -3965.07077 13430.35234
+C 480.8586416 536.090637 1076.526092 1065.863054 274.4477824
+C 1549.98802 499.5514745 544.7564009 1078.265346 1064.943318
+C Times of maxima : 0.0 .001 0.0 .0374 .0292
+C .0412 0.0 .032 .0412 .0272
+C .05 .0388 .0306 .0276 .0244
+C .0374 .05 .0388 .0306 .0276
+C Variable minima : -3000. -1928.21025 183.9697478 -6518.05923 -785.871968
+C -3965.07077 201.4385025 -17586.9944 -3965.07077 -7353.74079
+C -465.029322 -560.658809 -574.664871 -544.13558 -1315.26592
+C -2074.00287 -474.993058 -576.837968 -574.678392 -556.13293
+C Times of minima : .025 .0094 .0478 .0288 .0208
+C 0.0 .0478 .0272 0.0 .032
+C .042 .0472 .026 .049 .029
+C .0286 .042 .0472 .026 .049
+ PRINTER PLOT
+C 193.05 0.0 .5 165.185.UM-1 OMEGM UM-2 OMEGM { Plot limits: ()
+ 194 5. 0.0 50 UM-1 TQGEN UM-2 TQGEN { Plot limits: (-0.739, 1.343)
+C 193.05 0.0 .5 UM-1 TQGEN UM-2 TQGEN { Plot limits: ()
+ 194 10 0.0 50 BUSA2 { Plot limits: (-6.518, 3.888)
+C 193.05 0.0 .5 BUSA2 { Plot limits: ()
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 3rd of 7 subcases is unrelated to preceding 2. Oh, the U.M. is involved
+C as an induction motor, but this subcase illustrates troubled starting
+C from zero. The data is from Gabor Furst of suburban Vancouver, B.C.,
+C Canada. In E-mail dated April 8th, he wrote about attached data files
+C TCOMP.DAT and TPRED.DAT (compensation and prediction, respectively).
+C Using prediction and no automatic initialization, one observes
+C divergence of the iteration for mechanical speed OMEGM on step 3.
+C This is for TPRED. TCOMP has no such trouble (see following subcase).
+C WINDSYN is Gabor Furst's MS Windows program that generates data for
+C the U.M. From comments that follow, WINDSYN seems to have been used
+C to produce the data. There were several "/" cards for sorting, but WSM
+C removed them to simplify the data. He also removed AVERAGE OUTPUT,
+C since it had nothing to do with the troubled iteration for speed. The
+C maximum number of iterations for U.M. speed is MAXZNO, which originally
+C was introduced as the iteration limit for ZnO surge arresters. Since the
+C default value is 50, this has been reduced to 20. Even 10 would be fine.
+C Additional iterations do not help. As the .DBG file will show, speed
+C is neither converging nor diverging; it just bounces around over a very
+C wide range that includes both positive and negative values. The three
+C switches in series with the armature windings were removed without effect.
+C Subcases 3, 4, and 5 were added to DCN1 on 18 April 2003. WSM.
+C WindSyn test case
+C generated on 4/7/03 for RoundDamp
+PRINTED NUMBER WIDTH, 11, 1, { Return to default precision for dT loop columns
+ZINC OXIDE 20 { MAXZNO is used as iteration limit for omega of U.M.
+POWER FREQUENCY, 50.0,
+ .50E-4 .020
+ 1 1 1 1
+C Note about preceding dT and T-max. Obviously, T-max is immaterial since
+C the simulation will end on step 3. As for dT, 50 usec is the value Gabor
+C Furst used. It can be changed over a wide range without affecting the halt
+C on step 3. As dT becomes smaller, the speed error becomes bigger. Smaller
+C dT (50 usec already is small) provides no help. Shown below, OMEGM is on
+C the order of 1.E+13 as the iteration diverges. Using 1/2 msec, this will
+C drop to 1.E9. Yes, better, but still completely wrong. The correct value
+C is less than unity (the machine started with speed equal to zero).
+C ELECTRIC NETWORK DATA
+C BUS**>BUS**>BUS**>BUS**><****R<****L<****
+C short circuit level = 83 MVA
+C the machine rating entered was 834.47 kVA
+ SRCA MOTA .767 3.83
+ SRCB MOTB .767 3.83
+ SRCC MOTC .767 3.83
+ MOTA 1.E06
+ MOTB 1.E06
+ MOTC 1.E06
+C
+ INERS INER 1.E-6
+ IX 7.E+07 {inetia in uF}
+C the damping term in ohms
+ INER .11 {damping 1/mho}
+BLANK card ending BRANCHes
+ INERS IX -1 1000.
+BLANK card ending SWITCHes
+C SOURCE DATA
+C .......1.........2.........3.........4.........5.........6.........7.........8
+C Source voltages
+14SRCA 8164.965 50.00 0.0 { Vt }
+14SRCB 8164.965 50.00 240.0
+14SRCC 8164.965 50.00 120.0
+C next the source records required
+C source for the mechanical analogue
+14INERS -1 0.000001 .0000001
+C Note about 4 preceding Type-14 sources. Gabor Furst had T-start = -1.0
+C in columns 61-70. This added a phasor solution, but it did not help. The
+C error termination on Step 3 is unaffect, so WSM removed the phasor solution.
+19 { Begin U.M. data, which is an electrical source of type 19 (columns 1-2)
+C Col.2 = 0 Decoupled, = 1 Autoinitialize ----- Col. 15 =0 Compensation, =1 Prediction
+ 0 1 { Col. 2 ==> no automatic initialization; col. 15 ==> prediction
+BLANK
+ 3 1 111 INER 2 .157 { Col. 2 ==> Type-3 U.M.
+ 1.125287
+ 1.125287
+C Armature coils
+ MOTA 1
+ .980484 .031413 MOTB 1
+ .980484 .031413 MOTC 1
+C Rotor coils
+ 2.388701 .031413 1
+ 2.388701 .031413 1
+BLANK card ending U.M. data
+BLANK card ending SOURCEs
+C .......1.........2.........3.........4.........5.........6.........7.........8
+C NODE VOLTAGE OUTPUT
+ MOTA MOTB MOTC
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Final 7 output variables pertain to Type-19 U.M. components (names are generated internally);
+C Step Time MOTA MOTB MOTC UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM IPA IPB IPC IE1 IE2
+C *** Phasor I(0) = 1.9294775E-17 Switch "INERS " to "IX " closed in the steady-state.
+C 0 0.0 8164.95874 -4082.4879 -4082.4709 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 8163.9516 -3970.9169 -4193.0347 -.1455E-10 0.0 -8326.4506 4049.95584 4276.49477 -9920.3201 155.828901
+C 2 .1E-3 .7986173E9 -.333422E9 -.465196E9 -.157354E9 213.40578 -.809326E9 .3378925E9 .4714332E9 -.965174E9 .8156453E8
+BLANK card ending requests for node voltage output
+C ------------------------------------------------------------------------------------------------------------------------------------
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
+C ------------------------------------------------------------------------------------------------------------------------------------
+C You lose, fella. The EMTP logic has detected an error condition ...
+C KILL code number Overlay number Nearby statement number
+C 91 19 14400
+C KILL = 91. The mechanical speed iteration of the U.M. has failed to converge within iteration limit ITUMAX = 20 at time T =
+C 1.50000000E-04. This is for machine number JM = 1, which has a required convergence tolerance EPSOM = 1.57000000E-01. It is
+C possible that the time-step DELTAT of the simulation is too large, or that EPSOM or ITUMAX is too small. These are easily
+C checked. More complicated is nonconvergence due to an error with U.M. data, about which little can be said in general.
+C Further information supporting this KILL = 91 error stop can be found
+C toward the end of the .DBG file. Values of the OMEGM iteration appear:
+C Error. Speed iteration did not converge. Look at the series of speeds:
+C 2.76E+13 -9.62E+11 -2.36E+13 -2.20E+13 -2.95E+13 2.56E+13 2.46E+13 -2.89E+13
+C -2.43E+13 2.64E+13 -2.71E+13 5.11E+12 -2.55E+13 6.30E+12 2.69E+13 -3.06E+12
+C 2.19E+13 -7.18E+12 2.92E+13 -1.72E+13 -4.27E+12
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 4th of 7 subcases is the same as the preceding except that prediction has
+C been replaced by compensation. In theory, this is TCOMP. But in fact,
+C Gabor mistakenly sent a synchronous machine for TPRED and TCOMP. The same
+C phenomenon can be illustrated using these, but that is not being done.
+C Subsequent reception of TPREDB and TCOMPB contained the desired Type-3
+C data, and this, in fact, is what is being used. This simulation only
+C lasts 2.5 cycles, but can be extended to 1/4 second to see that OMEGM does
+C reach its terminal load speed of nearly 157 radians/sec (the synchronous
+C mechanical speed corresponding to zero slip).
+C WindSyn test case
+C generated on 4/13/03 for Single Cage UM 3 - decoupled start with compensation
+NEW LIST SIZES
+BLANK { Default dimensioning is adequate for List 1 through 10
+ 0 0 36400
+BLANK { Default dimensioning is adequate for List 21 through 30
+ 240000 { Final card of VARDIM data is for offsets for supporting programs
+C The preceding 5 cards size tables for much longer simulations. If dT is
+C smaller and/or T-max is much larger, List 13 will truncate batch-mode plots
+C over the entire timespan. The preceding 36400 is the limit in LISTSIZE.BPA
+POWER FREQUENCY, 50.0,
+C AVERAGE OUTPUT { Activate to suppress trap rule oscillation in armature volt.
+ .000500 .050
+ 1 1 1 1 1 -1
+ 5 5
+C ELECTRIC NETWORK DATA
+C BUS**>BUS**>BUS**>BUS**><****R<****L<****
+C short circuit level = 83 MVA
+C the machine rating entered was 834.47 kVA
+ SRCA MOTA .767 3.83
+ SRCB MOTB .767 3.83
+ SRCC MOTC .767 3.83
+ MOTA 1.E06
+ MOTB 1.E06
+ MOTC 1.E06
+C
+ INERS INER 1.E-6
+ IX 7.E+07 {inetia in uF}
+C the damping term in ohms
+ INER .11 {damping 1/mho}
+BLANK ending BRANCHes
+ INERS IX -1 1000.
+BLANK card ending SWITCHes
+C SOURCE DATA
+C .......1.........2.........3.........4.........5.........6.........7.........8
+C Source voltages
+14SRCA 8164.965 50.00 0.0 { Vt }
+14SRCB 8164.965 50.00 240.0
+14SRCC 8164.965 50.00 120.0
+C
+C next the source records required
+C source for the mechanical analogue
+14INERS -1 0.000001 .0000001
+C Note about 4 preceding Type-14 sources. Gabor Furst had T-start of cols.
+C 61-70 equal to -1.0, but the effect was to add a small trapezoidal rule
+C oscillation to the armature voltages. This then was removed by his use of
+C AVERAGE OUTPUT. Well, removing the phasor solution not only saves the work
+C of this computation, it also eliminates the trapezoidal rule oscillation
+C and does away with the need for AVERAGE OUTPUT. Otherwise, the startup
+C seems unaffected. So, no phasor solution. Since the machine begins with
+C all variables equal to zero, it is not surprising that the phasor solution
+C did little good. Without the phasor solution, this simulation is similar
+C to DC-35, note. Each starts a 3-phase induction motor without either auto
+C initialization or manually-supplied initial conditions. Each begins with
+C all variables equal to zero.
+C UM dat
+19
+C Col.2 = 0 Decoupled, = 1 Autoinitialize ----- Col. 15 =0 Compensation, =1 Prediction
+ 0 0 { Col. 2 ==> no automatic initialization; col. 15 ==> compensation
+BLANK
+C 3 1 111 INER 2 .157 { Gabor's EPSOM
+ 3 1 111 INER 2 .005
+C Note about preceding. Gabor had EPSOM = .157, which is 0.1% of 157 radians
+C per second. This is the default value: the speed iteration will continue
+C until the change is less than 0.1% or synchronous speed = 2 * 3.14 * 50 =
+C 314 rad/sec. But this is electrical. For mechanical, 2 pole pairs will
+C reduce this to 157 rad/sec. Well, the effect of using EPSOM = .157 is
+C hash that looks almost like (but is not) trapezoidal rule oscillation. The
+C frequency is high, but less than 0.5/dT of the trapezoidal rule. Lowered
+C EPSOM has no physical effect, & effects the overall simulation negligibly.
+C But the hash looks bad. To prove that EPSOM is responsible, WSM decreases
+C the tolerance, thereby making the OMEGM curve perfectly smooth.
+ 1.125287
+ 1.125287
+C Armature coils
+ MOTA 1
+ .980484 .031413 MOTB 1
+ .980484 .031413 MOTC 1
+C Rotor coils
+ 2.388701 .031413 1
+ 2.388701 .031413 1
+BLANK card ending U.M. data
+BLANK card ending SOURCEs
+ MOTA MOTB MOTC
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Final 7 output variables pertain to Type-19 U.M. components (names are generated internally);
+C Step Time MOTA MOTB MOTC UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM IPA IPB IPC IE1 IE2
+C *** Switch "INERS " to "IX " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-3 7578.83363 -2749.8665 -4828.9671 -.8882E-14 0.0 -30.178727 10.9499 19.2288271 -35.938915 5.69216487
+C 2 .1E-2 7266.22683 -1583.9333 -5682.2935 -.49474828 0.0 -88.512952 27.9245391 60.5884132 -105.37025 22.452127
+C 3 .0015 6775.59911 -383.70148 -6391.8976 -5.3447769 0.0 -142.14459 35.0395236 107.105068 -169.12977 49.5195201
+C 4 .002 6119.87287 821.040152 -6940.913 -21.8133 0.0 -189.82973 32.3949561 157.434779 -225.74199 85.8908064
+C 5 .0025 5314.27286 2001.14898 -7315.4218 -59.931159 0.0 -230.46855 20.3228376 210.145711 -273.90453 130.343662
+C 10 .005 -161.65687 6576.68037 -6415.0235 -1020.0826 .015959779 -302.60731 -155.04575 457.653057 -358.12087 419.838698
+BLANK card ending request for node voltage outputs
+C 100 .05 -7657.0908 3639.92922 4017.16154 -3480.5588 2.07810665 67.2105663 -384.61622 317.405655 9.05104642 474.85305
+C Variable maxima: 7663.44456 7638.23782 7699.01515 12225.9976 3.05521655 428.48451 354.32403 561.493051 509.492281 713.091662
+C Times of maxima: .02 .0465 .013 .045 .0405 .0145 .041 .0075 .0145 .009
+C Variable minima: -7657.0908 -7725.8797 -7609.1885 -17792.623 0.0 -390.53593 -582.50024 -348.59254 -470.03027 -425.76675
+C Times of minima: .05 .0165 .043 .0345 0.0 .0445 .0105 .038 .045 .0395
+ CALCOMP PLOT
+ 144 5. 0.0 50. MOTA MOTB MOTC
+ 194 5. 0.0 50. BRANCH
+ UM-1 IPA UM-1 IPB UM-1 IPC
+ 194 5. 0.0 50. UM-1 IE1 UM-1 IE2
+ 194 5. 0.0 50. UM-1 TQGEN
+ 194 5. 0.0 50. -1. 3.0UM-1 OMEGM
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 5th of 7 subcases is a corrected version of the 3rd. Gabor Furst
+C reported his discovery in E-mail dated April 14th. He proposed that
+C we "initialize ... with the machine breaker open, thus the machine
+C isolated from the system, using autoinitialization for which prediction
+C ought to work. Then we close the breaker say in the first time step.
+C ... the run did not fail, but the ensuing transient was not the same
+C as obtained from the regular compensation ... Then something suddenly
+C dawned on me. ... I decided to fool ATP into reading a starting
+C frequency of 0.1 Hz, this the constant FREQ in record 1. Lo and behold
+C this worked. The results were the same as the run with the decoupled
+C compensation method." As stored by WSM, the latest data files have
+C names TCOMPNEW and TPREDNEW.
+C WindSyn test case
+C generated on 4/13/03 for Single Cage UM 3 - decoupled start with compensation
+NEW LIST SIZES
+BLANK
+ 0 0 36400
+BLANK
+ 240000
+POWER FREQUENCY, 50.0,
+C AVERAGE OUTPUT { No longer need to remove hash (smaller EPSOM solves this)
+ .000500 .050
+ 1 1 1 1 1 -1
+ 5 5
+C ELECTRIC NETWORK DATA
+C BUS**>BUS**>BUS**>BUS**><****R<****L<****
+C short circuit level = 83 MVA
+C the machine rating entered was 834.47 kVA
+ SRCA BUSMA .767 3.83
+ SRCB BUSMB .767 3.83
+ SRCC BUSMC .767 3.83
+ MOTA 1.E06
+ MOTB 1.E06
+ MOTC 1.E06
+C
+ INERS INER 1.E-6
+ IX 7.E+07 {inetia in uF}
+C the damping term in ohms
+ INER .11 {damping 1/mho}
+BLANK card ending BRANCHes
+C Following 3 switches have T-close = dT/2. They will close on 1st time step:
+ BUSMA MOTA .000025 1000.
+ BUSMB MOTB .000025 1000.
+ BUSMC MOTC .000025 1000.
+ INERS IX -1. 1000.
+BLANK card ending SWITCHes
+C SOURCE DATA
+C .......1.........2.........3.........4.........5.........6.........7.........8
+C Source voltages
+14SRCA 8164.965 50.00 0.0 { Vt } -1.
+14SRCB 8164.965 50.00 240.0 -1.
+14SRCC 8164.965 50.00 120.0 -1.
+C
+C next the source records required
+C source for the mechanical analogue
+14INERS -1 0.000001 .0000001 -1.
+C UM dat
+19
+C Col.2 = 0 Decoupled, = 1 Autoinitialize ----- Col. 15 =0 Compensation, =1 Prediction
+ 1 1 { Col. 2 ==> automatic initialization; col. 15 ==> compensation
+BLANK
+C Note about following. As for preceding subcase, EPSOM has been reduced
+C from the default .157 to .005 to eliminate trapezoidal-rule-like hash. That
+C is a detail, but not critically important. What is critically important
+C is the addition of a believable initial frequency. Gabor used 0.1, and
+C WSM arbitrarily reduces this (after all, the machine begins at zero) to .02:
+C 3 1 111 INER 2 .157 0.1 { Gabor's card
+ 3 1 111 INER 2 .005 .02
+ 1.125287
+ 1.125287
+ 0.0 INERS
+C Armature coils
+ MOTA 1
+ .980484 .031413 MOTB 1
+ .980484 .031413 MOTC 1
+C Rotor coils
+ 2.388701 .031413 1
+ 2.388701 .031413 1
+BLANK card ending U.M. data
+C Total network loss P-loss by summing injections = 5.000000000000E-01
+C Total network loss P-loss by summing injections = 5.000000000000E-01
+C Total network loss P-loss by summing injections = 5.179447380305E-01
+C Total network loss P-loss by summing injections = 1.794473528970E-02
+BLANK card ending SOURCEs
+C .......1.........2.........3.........4.........5.........6.........7.........8
+C NODE VOLTAGE OUTPUT
+ MOTA MOTB MOTC
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Final 7 output variables pertain to Type-19 U.M. components (names are generated internally);
+C Step Time MOTA MOTB MOTC UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM IPA IPB IPC IE1 IE2
+C *** Phasor I(0) = -2.7471728E-06 Switch "INERS " to "IX " closed in the steady-state.
+C 0 0.0 0.0 0.0 0.0 0.0 .062831853 0.0 0.0 0.0 0.0 0.0
+C *** Close switch "BUSMA " to "MOTA " after 5.00000000E-04 sec.
+C *** Close switch "BUSMB " to "MOTB " after 5.00000000E-04 sec.
+C *** Close switch "BUSMC " to "MOTC " after 5.00000000E-04 sec.
+C 1 .5E-3 0.0 0.0 0.0 0.0 -.00681755 0.0 0.0 0.0 0.0 0.0
+C 2 .1E-2 6889.95385 -1506.2217 -5383.7322 -.1421E-13 -.00681755 -54.409056 11.8944338 42.5146218 -21.051495 -64.794511
+C 3 .0015 6774.81805 -449.01361 -6325.8044 -1.7336905 -.00681755 -134.73081 21.3086355 113.422179 -63.308508 -160.38081
+C 4 .002 6346.75373 699.055774 -7045.8095 -15.789751 -.00681755 -169.06787 8.33061014 160.737257 -104.6984 -201.10611
+C 5 .0025 5296.81585 1959.48466 -7256.3005 -48.513561 -.00681755 -198.66848 -11.619478 210.287956 -152.37686 -236.14834
+C 10 .005 -72.939405 6516.97381 -6444.0344 -921.49692 .009585296 -253.15369 -206.10455 459.258236 -455.87668 -299.54205
+BLANK card ending request for node voltage outputs
+C 100 .05 -7628.9146 3673.42423 3955.49034 -2802.3519 2.11520703 113.847447 -403.726 289.878558 -477.50811 61.7298745
+C Variable maxima: 7647.20791 7607.33076 7662.95758 12363.5249 3.10899113 461.052708 354.903207 540.669936 431.477956 547.201164
+C Times of maxima: .02 .0465 .0135 .045 .0405 .014 .041 .007 .0395 .014
+C Variable minima: -7628.9146 -7700.2932 -7587.2219 -18068.854 -.00681755 -390.16525 -600.55828 -358.58824 -711.87989 -472.887
+C Times of minima: .05 .0165 .0435 .035 .004 .044 .0105 .0375 .0085 .0445
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+ 144 5. 0.0 50. MOTA MOTB MOTC
+ 194 5. 0.0 50. BRANCH
+ UM-1 IPA UM-1 IPB UM-1 IPC
+ 194 5. 0.0 50. UM-1 IE1 UM-1 IE2
+ 194 5. 0.0 50. UM-1 TQGEN
+ 194 5. 0.0 50. -1. 3.0UM-1 OMEGM
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 7 subcases illustrates the starting of 2 parallel induction
+C motors. Compensation is used, and the two machines are separated by
+C two stub lines (short distributed-parameter transmission lines that
+C isolate the uses of compensation). The two machines are identical;
+C each is a copy of that used in the 4th subcase. The stub lines include
+C use of "Stub line, dT =" to free the data from dependence on dT. Much
+C larger time step dT is being used as an illustration. Whereas Gabor Furst
+C supplied the data with dT = 5 usec, note that 0.2 msec is being used.
+C Plots of machine torque, speed, and armature current are little affected
+C by the huge increase. The speed is slightly reduced. This seems right:
+C as the stub lines lengthen, they represent a higher impedance.
+C Single Cage UM 3 - decoupled initialization with compensation of two
+C parallel units on the same bus, using delay lines to permit compensation.
+C the delay line is the minimum length for DELTAT = 5 usec.
+NEW LIST SIZES
+BLANK { Default dimensioning is adequate for List 1 through 10
+ 0 0 36400
+BLANK { Default dimensioning is adequate for List 21 through 30
+ 240000 { Final card of VARDIM data is for offsets for supporting programs
+PRINTED NUMBER WIDTH, 10, 2, { dT loop output is width 10 including 2 blanks
+POWER FREQUENCY, 50.,
+C AVERAGE OUTPUT
+C Note about preceding. The terminal voltage begins with some hash that
+C takes a cycle or so to disappear. Perhaps Gabor Furst added the request
+C to average successive output points in an attempt to remove this hash.
+C But the hash disappears naturally, and in any case is not seen in any
+C of the other plots. It seems best to omit AVERAGE OUTPUT. This assures
+C the user that what he sees is what the trapezoidal rule really produced.
+ .000200 .050 { Gabor Furst's original data had dT = 5 usec & T-max = 3 sec
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+C ELECTRIC NETWORK DATA
+C BUS**>BUS**>BUS**>BUS**><****R<****L<****
+C short circuit level = 83 MVA
+C the machine rating entered was 834.47 kVA
+ SRCA BUSMA .767 3.83
+ SRCB BUSMB .767 3.83
+ SRCC BUSMC .767 3.83
+C DELAY LINE TO MOTOR #1
+-1BUSMA MOTA 0.001 .0987 0.408 1.00 { Stub line, dT = 5.E-6
+-2BUSMB MOTB 0.001 .0987 0.408 1.00
+-3BUSMC MOTC
+C DELAY LINE TO MOTOR #2
+-1BUSMA MOT2A 0.001 .0987 0.408 1.00 { Stub line, dT = 5.E-6
+-2BUSMB MOT2B 0.001 .0987 0.408 1.00
+-3BUSMC MOT2C
+C Note about preceding "{ Stub line ..." declaration. This can begin in
+C any column. However, the string beginning with the comment symbol and
+C ending with the equal sign is fixed. It is to be followed by the value
+C of DELTAT for which the line was designed. Without this new feature, use
+C of the original DELTAT = 5.E-6 would have been fine, but 10.E-6 would
+C have failed. A KILL = 29 error message from overlay 12 would report: "The
+C distributed parameter branch card connecting ... is associated with a
+C propagation mode having a travel time equal to 6.34583328E-06 seconds.
+C But this is less than the time-step size DELTAT, which is illegal. ..."
+C Of course, the dT value is free-format. Note that there is an implied
+C restriction to narrow-format (as shown). Input data is limited to 80
+C columns, and a switch to the wide alternative of $VINTAGE, 1, would not
+C allow sufficient space for the required tag.
+ INERS INER 1.E-6
+ IX 7.E+07 {inetia in uF}
+C the damping term in ohms
+ INER .11 {damping 1/mho}
+C
+ INERS2INER2 1.E-6
+ IX2 7.E+07 {inetia in uF}
+C the damping term in ohms
+ INER2 .11 {damping 1/mho}
+BLANK card ending BRANCHes
+ INERS IX -1 1000.
+ INERS2IX2 -1 1000.
+BLANK card ending SWITCHes
+C .......1.........2.........3.........4.........5.........6.........7.........8
+C SOURCE DATA
+C .......1.........2.........3.........4.........5.........6.........7.........8
+C Source voltages
+14SRCA 8164.965 50.00 0.0 { Vt } -1.
+14SRCB 8164.965 50.00 240.0 -1.
+14SRCC 8164.965 50.00 120.0 -1.
+C next the source records required
+C source for the mechanical analogue
+14INERS -1 0.000001 .0000001 -1.
+14INERS2-1 0.000001 .0000001 -1.
+C UM dat
+19
+C Col.2 = 0 Decoupled, = 1 Autoinitialize ----- Col. 15 =0 Compensation, =1 Prediction
+ 0 0 { Col. 2 ==> no automatic initialization; col. 15 ==> compensation
+BLANK
+ 3 1 111 INER 2 .005
+ 1.125287
+ 1.125287
+C Armature coils
+ MOTA 1
+ .980484 .031413 MOTB 1
+ .980484 .031413 MOTC 1
+C Rotor coils
+ 2.388701 .031413 1
+ 2.388701 .031413 1
+C MOTOR #2
+ 3 1 111 INER2 2 .005
+ 1.125287
+ 1.125287
+C Armature coils
+ MOT2A 1
+ .980484 .031413 MOT2B 1
+ .980484 .031413 MOT2C 1
+C Rotor coils
+ 2.388701 .031413 1
+ 2.388701 .031413 1
+C
+BLANK ending U.M. data
+BLANK card ending SOURCEs
+C Total network loss P-loss by summing injections = 8.383893803907E+03
+ MOTA MOTB MOTC MOT2A MOT2B MOT2C
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Final 14 output variables pertain to Type-19 U.M. components (names are generated internally);
+C Step Time MOTA MOTB MOTC MOT2A MOT2B MOT2C UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM IPA IPB IPC
+C
+C UM-1 UM-1 UM-2 UM-2 UM-2 UM-2 UM-2 UM-2 UM-2
+C IE1 IE2 TQGEN OMEGM IPA IPB IPC IE1 IE2
+C *** Phasor I(0) = 1.9294775E-17 Switch "INERS " to "IX " closed in the steady-state.
+C *** Phasor I(0) = 1.9294775E-17 Switch "INERS2" to "IX2 " closed in the steady-state.
+C 0 0.0 8292.999 -4204.56 -4088.44 8292.999 -4204.56 -4088.44 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .2E-3 7873.737 -3552.14 -4321.6 7873.737 -3552.14 -4321.6 -.67E-15 0.0 -25.9511 12.45117 13.49991
+C -30.9139 .7212851 -.67E-15 0.0 -25.9511 12.45117 13.49991 -30.9139 .7212851
+C 2 .4E-3 7448.395 -2919.71 -4528.69 7448.395 -2919.71 -4528.69 -.057368 0.0 -50.2764 22.71035 27.56607
+C -59.8784 3.339283 -.057368 0.0 -50.2764 22.71035 27.56607 -59.8784 3.339283
+C 3 .6E-3 6736.265 -2173.17 -4563.09 6736.265 -2173.17 -4563.09 -.334498 0.0 -72.5229 30.6493 41.87361
+C -86.3546 7.717967 -.334498 0.0 -72.5229 30.6493 41.87361 -86.3546 7.717967
+BLANK card ending request for node voltage outputs
+C 250 .05 -6924.74 3242.656 3682.084 -6924.74 3242.656 3682.084 -4162.72 1.765433 64.78601 -344.98 280.1937
+C 26.66602 423.799 -4162.72 1.765433 64.78601 -344.98 280.1937 26.66602 423.799
+C Variable maxima: 8292.999 6906.117 7023.04 8292.999 6906.117 7023.04 9190.36 2.47045 375.2239 326.9388 512.8368
+C 447.0417 636.5509 9190.36 2.47045 375.2239 326.9388 512.8368 447.0417 636.5509
+C Times of maxima: 0.0 .0466 .0128 0.0 .0466 .0128 .0446 .0402 .0144 .041 .0074
+C .0144 .009 .0446 .0402 .0144 .041 .0074 .0144 .009
+C Variable minima: -7141.3 -6993.5 -6921.3 -7141.3 -6993.5 -6921.3 -14054.6 0.0 -353.402 -514.36 -321.777
+C -423.298 -393.798 -14054.6 0.0 -353.402 -514.36 -321.777 -423.298 -393.798
+C Times of minima: .0102 .0164 .0024 .0102 .0164 .0024 .0344 0.0 .0444 .0108 .0378
+C .0446 .0396 .0344 0.0 .0444 .0108 .0378 .0446 .0396
+ CALCOMP PLOT
+ 144 5. 0.0 50. MOTA MOT2B MOTC
+ 194 5. 0.0 50. BRANCH
+ UM-1 IPA UM-2 IPB UM-2 IPC
+ 194 5. 0.0 50. UM-1 IE1 UM-2 IE2
+ 194 5. 0.0 50. UM-1 TQGEN UM-2 TQGEN
+ 194 5. 0.0 50. -1. 3.0UM-1 OMEGM UM-2 OMEGM
+C About the preceding plots, not that variables of UM-1 and UM-2 have been
+C mixed on the same plot. This is for the first 3. Since both machines are
+C in parallel, and have comparable solutions, it makes little difference
+C which machine is monitored. The final 2 plots show torque for both machines
+C and mechanical speed for both machines. In each case, the two curves lie
+C on top of each other.
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 7th of 7 subcases illustrates the starting of 2 parallel induction
+C motors. Compensation is used, yet the two machines are separated by
+C two resistors rather than the two stub lines of the preceding subcase.
+C Needless to say, this should not work. The result should be an error
+C termination. But this does not happen. Instead, the simulation seems
+C physically valid. Why? Data added by WSM on 15 May 2003. Gabor Furst
+C of suburban Vancouver, B.C., Canada, is the source of the data, and the
+C original discoverer of the phenomenon.
+C VERIFY U.M. COMPENSATION { Request for additional verification of compensation
+C The preceding did not help. It did not result in a KILL code, so omit.
+NEW LIST SIZES
+BLANK { Default dimensioning is adequate for List 1 through 10
+ 0 0 36400
+BLANK { Default dimensioning is adequate for List 21 through 30
+ 240000 { Final card of VARDIM data is for offsets for supporting programs
+PRINTED NUMBER WIDTH, 10, 2, { dT loop output is width 10 including 2 blanks
+POWER FREQUENCY, 50.,
+C Single Cage UM 3 - decoupled initialization of two oarallel motors with compensation
+C on the same bus, using a small separating resistance, no delay line
+ .000200 .050 { Gabor Furst's original data had dT = 50 usec & T-max = 3 sec
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+C short circuit level = 83 MVA
+C the machine rating entered was 834.47 kVA
+ SRCA BUSMA .767 3.83
+ SRCB BUSMB .767 3.83
+ SRCC BUSMC .767 3.83
+C separation resistance to enable compensation used
+ BUSMA BUSM2A .0001
+ BUSMB BUSM2B .0001
+ BUSMC BUSM2C .0001
+C
+ INERS INER 1.E-6
+ IX 7.E+07 {inetia in uF}
+C the damping term in ohms
+ INER .11 {damping 1/mho}
+C
+ INERS2INER2 1.E-6
+ IX2 7.E+07 {inetia in uF}
+C the damping term in ohms
+ INER2 .11 {damping 1/mho}
+BLANK card ending BRANCHes
+ BUSMA MOTA -1 1000.
+ BUSMB MOTB -1 1000.
+ BUSMC MOTC -1 1000.
+ BUSM2AMOT2A -1 1000.
+ BUSM2BMOT2B -1 1000.
+ BUSM2CMOT2C -1 1000.
+ INERS IX -1 1000.
+ INERS2IX2 -1 1000.
+BLANK card ending SWITCHes
+14SRCA 8164.965 50.00 0.0 { Vt }
+14SRCB 8164.965 50.00 240.0
+14SRCC 8164.965 50.00 120.0
+C Note about 3 preceding sinusoidal sources that drive the armature. These
+C were present in the steady state (T-start < 0), but the result was sizable
+C hash in the terminal voltages MOTA, MOTB, and MOTC. Since the machine is
+C not rotating, anyway, little should be lost by omitting this phasor
+C excitation. In fact, doing so removes the hash.
+C source for the mechanical analogue:
+14INERS -1 0.000001 .0000001 -1
+14INERS2-1 0.000001 .0000001 -1
+C UM dat
+19 { Begin U.M. data, which is an electrical source of type 19 (columns 1-2)
+C Col.2 = 0 Decoupled, = 1 Autoinitialize ----- Col. 15 =0 Compensation, =1 Prediction
+ 0 0 { Col. 2 ==> no automatic initialization; col. 15 ==> compensation
+BLANK
+ 3 1 111 INER 2 .005
+ 1.125287
+ 1.125287
+C Armature coils
+ MOTA 1
+ .980484 .031413 MOTB 1
+ .980484 .031413 MOTC 1
+C Rotor coils
+ 2.388701 .031413 1
+ 2.388701 .031413 1
+C MOROR #2
+ 3 1 111 INER2 2 .005
+ 1.125287
+ 1.125287
+C Armature coils
+ MOT2A 1
+ .980484 .031413 MOT2B 1
+ .980484 .031413 MOT2C 1
+C Rotor coils
+ 2.388701 .031413 1
+ 2.388701 .031413 1
+C
+BLANK ending U.M. data
+BLANK card ending SOURCEs
+ MOTA MOTB MOTC MOT2A MOT2B MOT2C
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Final 14 output variables pertain to Type-19 U.M. components (names are generated internally);
+C Step Time MOTA MOTB MOTC MOT2A MOT2B MOT2C UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM IPA IPB IPC
+C
+C UM-1 UM-1 UM-2 UM-2 UM-2 UM-2 UM-2 UM-2 UM-2
+C IE1 IE2 TQGEN OMEGM IPA IPB IPC IE1 IE2
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSMA " to "MOTA " closed in the steady-state.
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSMB " to "MOTB " closed in the steady-state.
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSMC " to "MOTC " closed in the steady-state.
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSM2A" to "MOT2A " closed in the steady-state.
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSM2B" to "MOT2B " closed in the steady-state.
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSM2C" to "MOT2C " closed in the steady-state.
+C *** Phasor I(0) = 1.9294775E-17 Switch "INERS " to "IX " closed in the steady-state.
+C *** Phasor I(0) = 1.9294775E-17 Switch "INERS2" to "IX2 " closed in the steady-state.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .2E-3 7240.705 -3225.84 -4014.87 7240.704 -3225.84 -4014.87 .222E-15 0.0 -11.6229 5.178161 6.444723
+C -13.8456 .8710926 .111E-15 0.0 -11.6229 5.17816 6.444722 -13.8456 .8710925
+C 2 .4E-3 7174.532 -2801.06 -4373.47 7174.529 -2801.06 -4373.47 -.011547 0.0 -34.6415 14.79876 19.84276
+C -41.2606 3.46871 -.011547 0.0 -34.6415 14.79876 19.84276 -41.2606 3.46871
+C 3 .6E-3 7080.386 -2366.65 -4713.73 7080.38 -2366.65 -4713.73 -.126229 0.0 -57.1634 22.94012 34.22327
+C -68.0724 7.758324 -.126229 0.0 -57.1634 22.94011 34.22326 -68.0724 7.758322
+BLANK card ending request for node voltage outputs
+C 500 0.1 7163.172 -3287. -3876.18 7163.163 -3286.96 -3876.2 -3508.64 4.758604 -93.893 346.3427 -252.45
+C 85.2129 -430.499 -3508.8 4.761365 -93.8933 346.3423 -252.449 85.22058 -430.497
+C Variable maxima: 7240.705 7193.512 7308.916 7240.704 7193.504 7308.921 9757.768 4.758604 396.7719 362.7327 522.4827
+C 472.4152 655.3924 9757.762 4.761365 396.7715 362.7323 522.482 472.4147 655.3916
+C Times of maxima: .2E-3 .0866 .0132 .2E-3 .0866 .0132 .0648 0.1 .0142 .081 .0074
+C .0142 .009 .0648 0.1 .0142 .081 .0074 .0142 .009
+C Variable minima: -7218.2 -7310.4 -7175.71 -7218.2 -7310.4 -7175.71 -14940.3 0.0 -377.803 -532.812 -350.203
+C -451.967 -440.193 -14940.2 0.0 -377.803 -532.811 -350.203 -451.967 -440.192
+C Times of minima: .0898 .0164 .0632 .0898 .0164 .0632 .0546 0.0 .0844 .0106 .0776
+C .0854 .0802 .0546 0.0 .0844 .0106 .0776 .0854 .0802
+ CALCOMP PLOT
+ 144 5. 0.0 50. MOTA MOT2B MOTC
+ 194 5. 0.0 50. BRANCH
+ UM-1 IPA UM-2 IPB UM-2 IPC
+ 194 5. 0.0 50. UM-1 IE1 UM-2 IE2
+ 194 5. 0.0 50. UM-1 TQGEN UM-2 TQGEN
+ 194 5. 0.0 50. -1. 3.0UM-1 OMEGM UM-2 OMEGM
+C About the preceding plots, note that variables of UM-1 and UM-2 have been
+C mixed on the same plot. This is for the first 3. Since both machines are
+C in parallel, and have comparable solutions, it makes little difference
+C which machine is monitored. The final 2 plots show torque for both machines
+C and mechanical speed for both machines. In each case, the two curves lie
+C on top of each other.
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcn10.dat b/benchmarks/dcn10.dat
new file mode 100644
index 0000000..275ba4f
--- /dev/null
+++ b/benchmarks/dcn10.dat
@@ -0,0 +1,212 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-10
+C Test of U.M. for the option of data that is nearly compatible with the
+C Type-59 S.M. Like DCNEW-9, only here compensation will NOT be employed
+C Also, the general interface to send any U.M. variables to TACS will be
+C illustrated, even though TACS does nothing with those variables.
+UM TO TACS { Declaration for special connection of Type-92 TACS sources to U.M.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+NAMES ARE LEFT ADJUSTED { ATP will halt if any A6 name begins with a blank
+C NAMES ARE RIGHT ADJUSTED { ATP will halt if any A6 name ends with a blank
+C Left-adjusted names are the most common, but right-adjusted names also are
+C possible as the preceding comment demonstrates. Protection against failure
+C to do either begins 11 January 2001. Once turned on, either service remains
+C in effect unless and/or until the other is declared, or execution ends. That
+C is why declaration here in the first subcase is sufficient for illustration
+C of KILL = 81 in the 2nd subcase.
+ .000200 .150 60. 60.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID { We use TACS only to illustrate the definition by U.M. variables
+92TQGEN { Name of Type-92 TACS source must be the same as 1st of 2 U.M. variabl
+C Note that the preceding connection was especially simple because there
+C is no need to be concerned about the number of the U.M. (here, only 1).
+C More generally, the otherwise unused columns 41-52 have been reserved
+C for the machine variable as 2A6 information. E.g., "UM-1 OMEGM ".
+C In this case, note that the name of columns 3-8 is arbitrary. But for
+C the simple case (here) where columns 41-52 are blank, the 1st machine
+C that has an output variable matching the name of columns 3-8 will be
+C accepted for the connection. The 2nd of 2 connections will follow. On
+C a comment card, first, will the the simplied form. It will be followed
+C by the real connection in general form. Note that within TACS, the
+C U.M. variable IE1 has been given the name FIELD:
+C 92IE1 { 2nd of 2 Type-92 TACS sources would be this way if simplified form
+92FIELD UM-1 IE1 { Connect IE1 of UM-1 to FIELD
+33TQGEN FIELD { Output the just-defined variables (should equal U.M. outputs)
+BLANK card ending all TACS data
+$BLANK HALT { Halt execution if any truly blank card is found (see 2nd subcase)
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+BLANK card ending branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card ending switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+19 UM
+ SMDATA 1 { The "1" in column 15 requests prediction (not compensation)
+BLANK card ending Class-1 U.M. data cards
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+C TOLERANCES 10. .0001 .00001
+PARAMETER FITTING 1.
+ 6 5 2 1. 1. 892.4 26. +1800. 1907. 3050.
+C -1.
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813 BUSM1
+ 2 .26 .046379 60.9591
+ 3 .22 .255958 90.81823 BUSM3
+ 4 .22 .263573 123.6634 BUSM4
+ 5 .258887 4.925036 BUSM5
+ 6 .0101995 BUSM6
+C Note about the preceding 6 mass cards of Type-59 S.M. data. The name of
+C columns 71-76 of any one is for the associated mechanical node that EMTP
+C will create (needed for capacitor to ground). Beginning 24 August 1993,
+C this can be left blank if the user is willing to accept a default name of
+C the form "MASSXX" where the last 2 bytes will be serialized 01, 02, ...
+C By erasing the name BUSM2 on the second card, name MASS02 will replace
+C this for output identification of the speed or angle of mass 2.
+ 11111111 333333
+ FINISH
+BLANK card ending all U.M. data cards
+BLANK card ending all source cards (including the U.M.)
+C Total network loss P-loss by summing injections = 1.775796786600E+07
+C Total network loss P-loss by summing injections = 7.638165971780E+16
+C Total network loss P-loss by summing injections = 7.637910321429E+16
+C Total network loss P-loss by summing injections = 7.638932291442E+16
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C SWT A Open Open Open
+C SWT B Open Open Open
+C SWT C Open Open Open
+C BUSM2 BUSM1 -6.37300003E+05 2.75937500E+01 6.37300004E+05
+C BUSM3 BUSM2 -1.18962667E+06 7.40000000E+01 1.18962667E+06
+C BUSM4 BUSM3 -1.65698001E+06 3.29125000E+02 1.65698004E+06
+C BUSM5 BUSM4 -2.12433334E+06 5.92375000E+02 2.12433343E+06
+C BUSM6 BUSM5 0.00000000E+00 -1.01718750E+01 1.01718750E+01
+C
+C EQV C 349966.92087687 389997. -1273.107108884 1348.5187481005
+C 172106.98504408 26.1870700 -444.6359221728 -160.7481140
+ NAVH ANAVH BNAVH C
+C Step Time BUSM1 MASS02 BUSM3 BUSM4 BUSM5 BUSM6 NAVH A NAVH B
+C TERRA TERRA TERRA TERRA TERRA TERRA
+C
+C NAVH C MASS02 BUSM3 BUSM4 BUSM5 BUSM6 TACS TACS
+C BUSM1 MASS02 BUSM3 BUSM4 BUSM5 TQGEN FIELD
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN IPA IPB IPC IE1 IE2 IE3 IE4
+C *** Phasor I(0) = -6.3730000E+05 Switch "BUSM2 " to "BUSM1 " closed
+C *** Phasor I(0) = -1.1896267E+06 Switch "BUSM3 " to "BUSM2 " closed
+C *** Phasor I(0) = -1.6569800E+06 Switch "BUSM4 " to "BUSM3 " closed
+C *** Phasor I(0) = -2.1243333E+06 Switch "BUSM5 " to "BUSM4 " closed
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSM6 " to "BUSM5 " closed
+C 0 0.0 376.9911184 376.9911184 376.9911184 376.9911184 376.9911184 376.9911184 54291.46171 -385072.283
+C 330780.8214 -637300.003 -.1189627E7 -.165698E7 -.2124333E7 0.0 0.0 0.0
+C .21243333E7 9214.54515 -27456.1142 18241.56904 4313.224983 0.0 0.0 0.0
+C 1 .2E-3 376.9911184 376.9911184 376.9911184 376.9911184 376.9911187 376.9911184 85269.74103 -396001.181
+C 310731.44 -637300.003 -.1189627E7 -.165698E7 -.2124333E7 -.192711E-3 .21243018E7 4313.233628
+C .21243018E7 11174.95518 -27770.8483 16595.89276 4313.233628 .6697334554 .6667285885 .2799719954
+C 2 .4E-3 376.9911184 376.9911184 376.9911184 376.9911184 376.9911198 376.9911184 115771.1286 -404685.302
+C 288914.173 -637300.003 -.1189627E7 -.165698E7 -.2124333E7 -.001299907 .21242469E7 4313.23836
+C .21242469E7 13071.84176 -27927.6144 14855.77263 4313.23836 1.005987367 1.411747548 .5923226394
+BLANK card ending output requests (here, just node voltages)
+C *** Open switch "SWT C" to " " after 1.00200000E-01 sec.
+C 750 .15 378.9579362 378.7971923 378.5677025 378.0740682 377.9402794 362.6550115 65967.40283 -252359.489
+C 236314.7086 -.1741593E7 -.3694241E7 -.8111971E7 -.3604052E7 -368811.077 -460638.075 5379.270269
+C -460638.075 -21046.2714 -15182.1684 36228.43977 5379.270269 -9232.64421 26381.86541 10855.49107
+C maxima : 387.546885 384.6217924 381.1685641 380.8913616 381.7465385 390.8419992 669322.4023 586897.097
+C 532948.8001 656967.1906 .13443971E7 .27857511E7 .10534159E7 763826.7801 .71276709E7 6509.720036
+C .71276709E7 75438.29546 60328.31828 75306.29416 6509.720036 45317.49759 40466.3349 15877.68389
+C Times of max : .1358 .1368 .1382 .116 .1124 .12 .1202 .1264
+C .1148 .1226 .1234 .1258 .0582 .1342 .1276 .0908
+C .1276 .1368 .0444 .1298 .0908 .1382 .0434 .0434
+C minima : 370.1878672 373.9938537 376.0186341 375.3497638 375.1213723 361.1452453 -592541.345 -633283.817
+C -571219.198 -.1828159E7 -.3694241E7 -.8111971E7 -.4003952E7 -499216.781 -.1775882E7 0.0
+C -.1775882E7 -76280.1719 -68226.6079 -73182.9387 3602.587589 -55011.5332 -43534.6089 -18695.7515
+C Times of min : .111 .1106 .0518 .1402 .138 .1464 .1116 .1178
+C .1234 0.1 .15 .15 .1406 .1078 .1024 0.0
+C .1024 .127 .0356 .0414 .1156 .1132 .126 .1258
+ PRINTER PLOT
+ 19415. 150. UM-1 TQGEN { Axis limits : (-1.776, 7.128)
+ 18415. 150. BUSM6 { Axis limits : (0.000, 3.908)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 2nd subcase illustrates halt due to NAMES ARE LEFT ADJUSTED (NALA) as
+C left over from the 1st subcase. Data is from 3rd subcase of DC-20 as
+C added 11 January 2001. All TACS variables except 1 have been deleted,
+C and this one (OUT1) has been shifted right by one byte to create an
+C error. Also, on the electrical side, NOD2 has been shifted right
+C by one byte. So, there are two errors. Either one would be enough
+C to halt execution.
+ .0001 0.02
+ 1 1 1 1 1 -1
+ 10 10 100 100
+TACS HYBRID
+ 1 OUT1 +GEN1
+ 1.0
+ 1.0 1.0
+14GEN1 100000. 400.0 -1.0
+33 OUT1
+BLANK card ends final TACS data
+ NOD1 NOD2 1.00
+BLANK card after last electric network branch
+ NOD2 -1.0 1.0
+BLANK card ends switches
+14NOD1 -1 100.0 50.0 -1.0
+BLANK card after last electric network source
+C Auxiliary name " OUT1 " is not properly left-adjusted or right-adjusted. This is for TEXVEC cell 15 out of a total of 18.
+C Bus name " NOD2 " is not properly left-adjusted or right-adjusted. This is for node number 3 out of a total of 3.
+C ------------------------------------------------------------------------------------------------------------------------------------
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ ... Etc. (boiler plate until we come to following)
+C KILL code number Overlay number Nearby statement number
+C 81 4 8299
+C KILL = 81. A 6-character data name is not properly left-adjusted or right-adjusted as the preceding warning message documents. Of
+ NOD1 NOD2
+BLANK card ends selective node voltage outputs
+BLANK card terminating plotting
+BEGIN NEW DATA CASE
+C Non-existent 3rd data subcase is used only to illustrate termination
+C on a truly blank card. This will happen because $BLANK HALT appears
+C earlier (in fact, in a preceding data subcase). As explained in the
+C October, 1993, newsletter, STARTUP variable NOBRAN could be used
+C instead of this $-card, which is restricted to just this disk file.
+
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BLANK { 14 Dec 94, we add more, to make 5 even when comments are destroyed
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn11.dat b/benchmarks/dcn11.dat
new file mode 100644
index 0000000..607d84c
--- /dev/null
+++ b/benchmarks/dcn11.dat
@@ -0,0 +1,338 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-11
+C Test of Type-59 S.M. model as inserted into SCE Navaho SSR simulation.
+C Data is close to DC-53 except for two critical changes. For second
+C subcase, only the switching times differ, whereas a very large time
+C step (1.0 msec) is illustrated. For the first subcase, imbalance has
+C been added, some branches have been removed, as have all 3 switches.
+C Modified under the direction of Prof. Juan Martinez in Barcelona, Spain.
+C At end of November, 1992, answer changes. Original data case is at end.
+C Answers change again 10 February 1999 following massive changes from
+C TEPCO (Tokyo Electric Power Company) in Japan. See April newsletter.
+C But changes are negligible physically. The printer plot is identical
+C most extrema numbers agree to 5th or 6th decimal digits or more.
+C Also, 2nd subcase is unaffected, just as DC-53 was unaffected.
+PRINTED NUMBER WIDTH, 11, 2, { 10 output columns/line, 2 blanks between columns
+ .000100 .150 60. 60. { Note normal, small time step of 100 micros.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 6885. { 1st of 3 is not equal to 2nd
+ MCC1 BMCC2 B 8285. { Middle branch has value of DC-53
+ MCC1 CMCC2 C 9685. { 3rd of 3 is not equal to 2nd
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+BLANK card ending branch cards
+C The switching of DC-53 is absent here; no such disturbance.
+BLANK card ending switch cards (nonexistent in this case)
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+59NAVL A 22680.58 60. -54.0211
+ NAVL B 22979.09 -173.4837 { Note imbalance of phase "b"
+ NAVL C 23016.47 65.6058 { Note imbalance of phase "c"
+ 1 1 2 1. 1. 892.4 26. -1800. 1971. 3050.
+ { Q-axis saturation card } -1.
+1.699938 1.66 1.66 1.79 1.66 1.665788
+1.68448 1.58 1.58 1.71 1.58 1.82859
+.13 .001048657.003712619.005256733.01838716
+ 1 1. .8626875
+BLANK card ending rotor mass cards
+ 11
+ 21
+ 31
+ 51
+BLANK card that ends all Type-59 S.M. output requests
+ FINISH
+BLANK card ending all source cards (including the U.M.)
+C Total network loss P-loss by summing injections = 1.163302277902E+07
+C Last gen: EQV C 349966.92087687 389997. -971.2639768061 994.56516956163
+C Last gen: 172106.98504408 26.1870700 214.02374602844 167.5731328
+C negative sequence current. CMNEG, CANEG = 1.7691466407E+03 -2.4102642
+C zero sequence current. CMZER, CAZER = 2.6519080001E-10 3.1004260
+C Phase "a" injection Phase "b" injection
+C Magnitude Degrees Magnitude Degrees
+C Actual: 2.3843232E+04 -106.1941936 2.0780921E+04 134.0864766
+C Pos. seq.: 2.2360894E+04 -103.7977668 2.2360894E+04 136.2022332
+C Id, Iq, Io : -2.53616898057E+04 7.45565606771E+03 -4.58934787522E-10
+C Field current of the generator: 4.9045746694E+03 4.9015187243E+03
+C Electromechanical torque: 1.1286120653E+00 1.3137425906E+00
+C Critical level of total air-gap MMF: 1.64767809698E+03 1.56827192364E+03
+ NAVH ANAVH BNAVH C
+C Step Time NAVH A NAVH B NAVH C MACH 1 MACH 1 MACH 1
+C ID IQ I0
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IA IB IC EFD MFORCE MANG
+C 0 0.0 5599.6834 -385524.4 377160.9 -25361.69 7455.6561 -.4589E-9
+C -6649.729 -14458.19 21107.915 -513.7626 2779.1613 .28315792
+C 1 .1E-3 26730.203 -393133.6 363540.77 -25187.57 7475.4887 .25147E-8
+C -5775.752 -15005.47 20781.226 -513.7626 2779.3697 .28320007
+C 2 .2E-3 38231.503 -399254.6 358065.86 -25015.67 7506.4801 -.3989E-8
+C -4893.915 -15531.11 20425.027 -513.7626 2779.6132 .28328413
+BLANK card ending output requests (here, just node voltages)
+C 1500 .15 8215.5099 -385535.2 374535.31 -25151.67 7386.4018 -.662E-12
+C -6559.891 -14365.26 20925.15 -513.7626 2779.4552 .28226463
+C Variable max: 435639.24 432010.75 447141.66 -22925.62 11916.607 .68779E-8
+C 24027.489 20616.106 22620.101 -513.7626 2794.7473 .29938993
+C Times of max: .0208 .0763 .0318 .0268 .0373 .9E-3
+C .0883 .0938 .049 0.0 .037 .0374
+C Variable min: -435608.2 -433039.4 -447067.2 -28120.71 7280.2589 -.6854E-8
+C -24045.91 -20648.92 -22645.71 -513.7626 2778.2618 .28204632
+C Times of min: .0292 .0012 .0235 .0977 .0581 .8E-3
+C .0966 .1355 .0407 0.0 .016 .1082
+ PRINTER PLOT
+ 194 5. 50. MACH 1TQ GEN { Axis limits: (0.000, 1.514)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 2nd of two subcases showing Type-59 S.M. simulation. Here we balance
+C the electric network (see MCC1 A to MCC2 A and following 2 R-L-C
+C branches --- all equal), and run with 10 times the time-step size.
+C --- Modified with Guido's and Juan Martinez's approval during Oct., 1990.
+C --- Answers have changed. The original data case is unexecuted at end.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .001 .150 60. 60. { Note abnormally large time-step size
+ 1 1 1 1 1 -1
+ 5 5 20 20
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285. { Unlike 1st subcase, here balance
+ MCC1 BMCC2 B 8285. { Unlike 1st subcase, here balance
+ MCC1 CMCC2 C 8285. { Unlike 1st subcase, here balance
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+BLANK card ending branch cards
+ SWT A 0. .075 { DC-53 uses T-clo, T-open: .01661667 .09161667
+ SWT B 0. .075 { DC-53 uses T-clo, T-open: .01661667 .09161667
+ SWT C 0. .075 { DC-53 uses T-clo, T-open: .01661667 .09161667
+BLANK card ending switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+C Following TOLERANCES card is new (added 13 October 1990).
+C Note: After Prof. Juan Martinez's changes of October, 1989, the speed
+C iteration of the Type-59 S.M. has been slowed for some reason.
+C The old data used the default limit of 10 iterations, which led
+C to an error stop on the first time-step. We increase the limit
+C to 20 one year later, and all is well. WSM and JM, 13 October 90
+TOLERANCES 20
+PARAMETER FITTING 2. { +1800 below ignores saturation
+ 6 5 6 2 1. 1. 892.4 26. 1800.
+BLANK card for Q-axis saturation?
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813
+ 2 .26 .046379 60.9591
+ 3 .22 .255958 90.81823
+ 4 .22 .263573 123.6634
+ 5 .258887 4.925036
+ 6 .0101995
+BLANK card ending rotor mass cards
+ 2 5 6 8 2
+ 51
+ 11
+ 31
+ 41
+BLANK card that ends all Type-59 S.M. output requests
+ FINISH
+BLANK card ending all source cards (including the U.M.)
+C Total network loss P-loss by summing injections = 1.775782562050E+07
+C Last gen: EQV C 349966.92087687 389997. -1273.1121012 1348.5241961806
+C Last gen: 172106.98504408 26.1870700 -444.6381511542 -160.7480946
+C Id, Iq, Io : -3.15542117823E+04 1.32614561915E+04 2.52046565230E-11
+C Field current of the generator: 4.3132669924E+03 4.3132669924E+03
+C Electromechanical torque: 2.1243643866E+00 2.1243643866E+00
+C Exciter electromechanical torque: 6.9376969460E-03 6.9376969460E-03
+C Critical level of total air-gap MMF: 1.64767815421E+03 1.54285260456E+03
+ NAVH ANAVH BNAVH C
+C Step Time NAVH A NAVH B NAVH C MACH 1 MACH 1
+C ID IQ
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IG IKQ IA IB IC
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C TQ GEN TQ EXC ANG 2 ANG 5 ANG 6
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C VEL 4 VEL 5 VEL 6 TOR 1 TOR 2
+C *** Switch "SWT A" to " " closed after 0.00000000E+00 sec.
+C *** Switch "SWT B" to " " closed after 0.00000000E+00 sec.
+C *** Switch "SWT C" to " " closed after 0.00000000E+00 sec.
+C 0 0.0 54291.79404 -385072.51 330780.7161 -31554.2118 13261.45619
+C -.1483E-11 -.77929E-11 9214.69265 -27456.5111 18241.81844
+C 2.124364387 .0069376969 88.7845725 86.45613646 86.39662907
+C 0.0 .568434E-13 0.0 .6393906251 1.193529167
+C 1 .001 174073.2365 -337932.389 163859.1521 -35450.7946 14276.51122
+C -19.0383823 -65.3413592 20939.5491 -30711.2398 9771.69074
+C 2.353853632 .0069876924 88.7845725 86.45583635 86.39662625
+C -.39289E-4 -.01047592 -.984784E-4 .6393906251 1.193529171
+BLANK card ending output requests (here, just node voltages)
+C 150 .15 104120.6498 -549880.101 370127.7961 -10378.3288 61259.50668
+C -918.769883 -3222.21883 50081.07325 -27679.4258 -22401.6474
+C 4.077244752 .0059772423 97.53252996 96.26891526 90.87958692
+C 3.298889083 4.442742009 18.01072049 .3456291178 .4410601898
+C Variable max: 584560.4323 523526.0746 482640.6539 24211.12592 73069.06183
+C 1218.279553 3694.25919 70874.41849 58367.25927 74193.34934
+C 6.953584119 .0099150625 100.2577288 96.26891526 99.81642058
+C 4.363352162 4.570081111 18.01072049 1.793972008 3.631195484
+C Times of max: .104 .143 .147 .097 .11
+C .028 .027 .12 .028 .113
+C .111 .075 .135 .15 .116
+C .144 .095 .15 .083 .133
+C Variable min: -515451.327 -592812.443 -535266.411 -88064.2423 -46392.7197
+C -1106.26611 -4026.24392 -73843.3003 -66442.5528 -70813.3153
+C -1.64765566 .0059717165 87.73359188 85.82030263 85.38065158
+C -1.43086845 -1.52953914 -15.1785599 -.657183376 -1.30826843
+C Times of min: .145 0.1 .106 .015 .027
+C .11 .11 .11 .019 .025
+C .086 .149 .05 .023 .034
+C .123 .12 .129 .106 .106
+ PRINTER PLOT
+ 194 5. 50. MACH 1ID { Axis limits: (-8.806, 0.000)
+ CALCOMP PLOT
+ 19415. 150. MACH 1TQ GEN
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK
+
+
+
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-11
+C Test of Type-59 S.M. model as inserted into SCE Navaho SSR simulation.
+C Data is close to DC-53 except for two critical changes. For second
+C subcase, only the switching times differ, whereas a very large time
+C step (1.0 msec) is illustrated. For the first subcase, imbalance has
+C been added, some branches have been removed, as have all 3 switches.
+C This is old data case, as it existed prior to December, 1992 changes.
+C Only the 1st of 2 subcases, having saturation, was affected.
+PRINTED NUMBER WIDTH, 11, 2, { 10 output columns/line, 2 blanks between columns
+ .000100 .150 60. 60. { Note normal, small time step of 100 micros.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 6885. { 1st of 3 is not equal to 2nd
+ MCC1 BMCC2 B 8285. { Middle branch has value of DC-53
+ MCC1 CMCC2 C 9685. { 3rd of 3 is not equal to 2nd
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+BLANK card ending branch cards
+C The switching of DC-53 is absent here; no such disturbance.
+BLANK card ending switch cards (nonexistent in this case)
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+59NAVL A 22680.58 60. -54.0211
+ NAVL B 22979.09 -173.4837 { Note imbalance of phase "b"
+ NAVL C 23016.47 65.6058 { Note imbalance of phase "c"
+ 1 1 2 1. 1. 892.4 26. -1800. 1971. 3050.
+ { Q-axis saturation card } -1.
+1.699938 1.66 1.66 1.79 1.66 1.665788
+1.68448 1.58 1.58 1.71 1.58 1.82859
+.13 .001048657.003712619.005256733.01838716
+ 1 1. .8626875
+BLANK card ending rotor mass cards
+ 11
+ 21
+ 31
+ 51
+BLANK card that ends all Type-59 S.M. output requests
+ FINISH
+BLANK card ending all source cards (including the U.M.)
+C Total network loss P-loss by summing injections = 1.163302277902E+07
+C Last gen: EQV C 349966.92087687 389997. -971.2639768061 994.56516956163
+C Last gen: 172106.98504408 26.1870700 214.02374602844 167.5731328
+C negative sequence current. CMNEG, CANEG = 1.7691466407E+03 -2.4102642
+C zero sequence current. CMZER, CAZER = 2.7353740917E-10 -3.0706010
+C Phase "a" injection Phase "b" injection
+C Magnitude Degrees Magnitude Degrees
+C Actual: 2.3843232E+04 -106.1941936 2.0780921E+04 134.0864766
+C Pos. seq.: 2.2360894E+04 -103.7977668 2.2360894E+04 136.2022332
+C Id, Iq, Io : -2.53612689520E+04 7.45708752411E+03 -4.72587309806E-10
+C Field current of the generator: 5.5452995580E+03 5.5422562163E+03
+C Electromechanical torque: 1.1130233521E+00 1.3137425906E+00
+C Critical level of total air-gap MMF: 1.64767815421E+03 1.54285260456E+03
+ NAVH ANAVH BNAVH C
+C Step Time NAVH A NAVH B NAVH C MACH 1 MACH 1 MACH 1
+C ID IQ I0
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IA IB IC EFD MFORCE MANG
+C 0 0.0 5599.6834 -385524.4 377160.9 -25361.27 7457.0875 -.4505E-9
+C -6649.729 -14458.19 21107.915 -580.9228 3395.4664 .22584782
+C 1 .1E-3 13085.416 -390180.1 374232. -25223.92 7476.9523 .25149E-8
+C -5796.276 -15015.04 20811.319 -580.9228 3395.6875 .2259019
+C 2 .2E-3 37828.479 -398608.8 357822.77 -25088.33 7504.2792 -.3991E-8
+C -4936.097 -15549.08 20485.175 -580.9228 3395.9341 .22598696
+BLANK card ending output requests (here, just node voltages)
+C 1500 .15 6837.3696 -387443.2 377929.02 -25561.24 8765.6491 -.272E-11
+C -5791.244 -15542.29 21333.536 -580.9228 3400.4457 .22974172
+C Variable max: 437711.89 436396.74 452297.2 -23535.78 11308.112 .6877E-8
+C 23270.336 21727.34 22760.711 -580.9228 3410.6932 .24092559
+C Times of max: .0208 .0096 .0318 .0685 .0375 .9E-3
+C .0382 .1271 .0825 0.0 .0371 .0376
+C Variable min: -437366.3 -434952.8 -452173.8 -27271.05 7457.0875 -.6855E-8
+C -23480. -21940.25 -22982.56 -580.9228 3395.4664 .22584782
+C Times of min: .0292 .018 .0068 .0398 0.0 .001
+C .0299 .0854 .0408 0.0 0.0 0.0
+ PRINTER PLOT
+ 194 5. 50. MACH 1TQ GEN { Axis limits: (0.000, 1.474)
+BLANK card ending all plot cards
+
diff --git a/benchmarks/dcn12.dat b/benchmarks/dcn12.dat
new file mode 100644
index 0000000..872f311
--- /dev/null
+++ b/benchmarks/dcn12.dat
@@ -0,0 +1,2334 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-12
+C Automatic steady-state initialization for Type-4 U.M. (a 3-phase induction
+C machine). Power coils are non-compensated. Rotor coils have external
+C resistances. Apply a step to the input torque at 0.02 sec (step 100).
+C Rating: 720 KVA, 4.2 KV, 4-pole ( 85.67% efficiency at 0.846 pf
+C and 14.0E+3 NM.; Kipp torque = 45.09E+2 NM, slip = 2.5%)
+C 4 May 2006, append the 8 subcases of IM.DAT making a total of 9. This
+C is to document use of the new Type-56 Induction Machine from TEPCO.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ABSOLUTE U.M. DIMENSIONS, 20, 2, 50, 60
+0.0002 0.900
+ 1 2 0 0 1 -1
+ 5 5 20 20 100 1 110 10 200 200
+C --------- ROTOR EXTERNAL RESISTANCES
+ BUSA1 1.E-10 1
+ BUSB1 BUSA1 1
+ BUSC1 BUSA1 1
+C -------- TRANSMISSION LINES
+ BUSA2 BUSAS2 1.0E-4 10.0 1
+ BUSB2 BUSBS2BUSA2 BUSAS2 1
+ BUSC2 BUSCS2BUSA2 BUSAS2 1
+C --------- CONNECTIVITY OF EMTP FOR ELECTRIC NETWORK
+ BUSAS2 1.0E+6
+ BUSBS2 BUSAS2
+ BUSCS2 BUSAS2
+C --------- MECHANICAL NETWORK COMPONENTS
+ BUSMG BUSMGR .4548 1
+ BUSMGR BUSMG BUSMGR
+ BUSMG 9.8E+7 { Rotor mass = capacitance } 1
+C ------- Near-zero resistance to measure electromechanical torque (a current):
+ BUSMS BUSMG 1.0E-6 1
+BLANK card ending all branch cards
+BLANK card ending all (here, nonexistent) switch cards
+C --------- SOURCES FOR INFINITE BUS
+14BUSAS2 3000.0 60.0 0.0 -1.0
+14BUSBS2 3000.0 60.0 -120.0 -1.0
+14BUSCS2 3000.0 60.0 +120.0 -1.0
+C ----------- Mechanical input torque, with value set by steady-state solution:
+14BUSMS -1 0.000001 0.00001 -1.0
+C -------- Step change to input torque occurs at time .020 seconds (Step 100):
+14BUSMS -1 3900.0 0.00001 +0.02
+C ----------------------- Type-4 U.M. (3-phase induction machine) data follows:
+19 UM
+ 1 1
+BLANK card ending Class-1 U.M. data
+C UM-1 MACH TABLE
+ 4 111BUSMG 2 0.0188
+ 0.02358
+ 0.02358
+2.0 BUSMS
+C UM-1 COIL TABLE
+ BUSA2 1
+0.412 0.0012 BUSB2 1
+0.412 0.0012 BUSC2 1
+0.110 0.0012 BUSB1 1
+0.110 0.0012 BUSC1 1
+ BUSA1 1
+BLANK card ending all U.M. data cards
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = 7.171020819312E+05
+C Total network loss P-loss by summing injections = 8.732408663441E+05
+C Total network loss P-loss by summing injections = 1.223706646064E+07
+C Total network loss P-loss by summing injections = 1.223706596064E+07
+C Total network loss P-loss by summing injections = 1.223707382155E+07
+C Zero-th time step documents initial conditions, cut on right edge:
+ BUSAS2BUSA2 BUSA1 BUSMG
+C Step Time BUSAS2 BUSA2 BUSA1 BUSMG BUSA1
+C TERRA
+C
+C BUSB2 BUSC2 BUSMG BUSMG BUSMS
+C BUSBS2 BUSCS2 BUSMGR TERRA BUSMG
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1
+C IPA IPB IPC IE1 IE2
+C 0 0.0 3000. 1784.374676 .1471233E-7 184.725648 147.1233291
+C 376.2746526 -182.224238 203.0844855 0.0 -3965.07077
+C -194.050415 376.2746526 -182.224238 0.0 0.0
+C 1 .2E-3 2991.476701 1834.404076 .1467203E-7 184.7256479 146.7202619
+C 374.6920464 -156.915064 203.0844854 -.092695802 -3965.07077
+C -217.776982 374.6920464 -156.915064 161.7505543 -308.470816
+BLANK card ending output requests (node voltages only, here)
+C For some unknown reason, these agree with VAX to only 4 or 5 digits, often:
+C 4500 0.9 3000. 2139.363254 -.929034E-9 188.3186232 -9.29033753
+C 206.6043639 -188.546337 207.0345461 -12.7407524 -65.0707659
+C -18.0580266 206.6043639 -188.546337 15.99476461 -6.70442708
+C Variable max : 3000. 2142.192646 .1471233E-7 189.143889 147.1233291
+C 376.2746526 376.1164039 207.9418304 3898.215212 -65.0707659
+C 376.0215626 376.2746526 376.1164039 228.3663773 6.204481463
+C Times of max : 0.0 .5668 0.0 .2202 0.0
+C 0.0 .0222 .2202 .0202 .8786
+C .011 0.0 .0222 .0544 .3316
+C Variable min : -3000. -2142.13595 -.123856E-8 184.7253125 -12.385633
+C -375.871946 -376.188889 203.0841166 -661.121518 -3965.07077
+C -376.241942 -375.871946 -376.188889 -24.9469672 -362.34101
+C Times of min : .075 .5418 .564 .02 .564
+C .0082 .0138 .02 .3084 0.0
+C .0194 .0082 .0138 .3076 0.0
+ PRINTER PLOT
+ 193 .1 0.0 0.9 UM-1 TQGEN { Axis limits: (-4.168, 0.389)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 9 subcases of BENCHMARK DCNEW-12 is added 4 May 2006.
+C 1st of 8 data subcases that illustrate Type-56 TEPCO IM (induction machine).
+C Begin several illustrations of TEPCO (Tokyo Electric Power Company in Japan)
+C IM (Induction Machine) model that entered the UTPF on 7 April 2006. The
+C coding is by Cao Xinglin of TEPCO Systems Corp, as communicated to BPA via
+C Atsushi Kurita of TEPCO. Number 56 is the new ATP source type code that is
+C to appear in columns 1-2 at the beginning of IM data. First, ATPIG56.DAT
+C The TEPCO data had 21 permanently-closed switches of which only 6 have been
+C retained. The remainder were removed without any confusion or difficulty
+C in order to drop nonessenttial and unrelated complexity. The six switches
+C that have been retained serve to pass armature currents of the two parallel
+C machines to TACS. The phasor solution output of the switches clearly shows
+C opposite directions for the power flow: positive (out) of the generator IG1
+C and negative (into) the motor IM1. The phasor solution provides very good
+C initialization, and simulation of this continues for 1.25 cycles in the dT
+C loop to demonstrate stability of the steady state. Most machine variables
+C are nearly constant as extrema clearly demonstrate. The original TEPCO data
+C simulated to 10 seconds (5000 cycles) to demonstrate longer-term stability,
+C but this has been drastically shortened to save computer time.
+C G400 PG=500kW,QG=-232kVar
+C L300 PL=250kW
+C L400 PL=200kW,QL=-259kVar
+C M400 PL=50kW,QL=27kVar
+C MODE G400:LV
+PRINTED NUMBER WIDTH, 11, 1, { Restore values that are common within STARTUP
+POWER FREQUENCY, 50., { So one cycle is 20 msec, note
+C 0.00025 10. 0.0 0.0 --- TEPCO's T-max was 10 seconds, note
+ 0.00025 .025 0.0 0.0 { 1.25 cycles is enough to verify steady state
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+33VIG PIGEN QIGEN PIM QIM
+C
+C /// G1 BRANCH VOLTAGE MONITOR ///
+ VAB +N400A -N400B 1.0
+90N400A -1.0
+90N400B -1.0
+90N400C -1.0
+91IG1A -1.0
+91IG1B -1.0
+91IG1C -1.0
+91IM1A -1.0
+91IM1B -1.0
+91IM1C -1.0
+C /// VOLTAGE FEED BACK ///
+99VIG = SQRT(N400A*N400A+N400B*N400B+N400C*N400C)/6600.0
+C /// POWER MONITOR(I.G.) ///
+99QIG1 = IG1A*(N400B-N400C)
+99QIG2 = IG1B*(N400C-N400A)
+99QIG3 = IG1C*(N400A-N400B)
+99QIGEN = (QIG1+QIG2+QIG3)/SQRT(3.0)
+99PIGEN = N400A*IG1A+N400B*IG1B+N400C*IG1C
+99PPIG = PIGEN/1000000.
+99QQIG = QIGEN/1000000.
+99QIM1 = IM1A*(N400B-N400C)
+99QIM2 = IM1B*(N400C-N400A)
+99QIM3 = IM1C*(N400A-N400B)
+99QIM = (QIM1+QIM2+QIM3)/SQRT(3.0)
+99PIM = N400A*IM1A+N400B*IM1B+N400C*IM1C
+99PPIM = PIM/1000000.
+99QQIM = QIM/1000000.
+C
+C /// TACS OUTPUT VARIABLES ///
+C 33PPIG QQIG PPIM QQIM
+C /// TACS INITIAL CONDITIONS ///
+77VIG 1.00478
+77PPIG .5000
+77QQIG -.232
+77PIGEN 500000.
+77QIGEN -232000.
+77PIM -50000.
+77QIM -27600.
+C
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+BLANK card ends TACS data
+C /// NETWORK DATA ///
+$VINTAGE, 1
+C Bus1->Bus2->Bus3->Bus4-><---------R(ohm)<----------L(mH)<---------C(mmF)
+C *** XS *** ( j0.012(pu) : 0.1663869437mH )
+ N100A N200A .1663869437
+ N100B N200B N100A N200A
+ N100C N200C N100A N200A
+C *** XT *** ( j0.075(pu) : 1.039918398mH )
+ N200A N300A 1.039918398
+ N200B N300B N200A N300A
+ N200C N300C N200A N300A
+C *** ZL *** ( 0.2+j0.312(pu) : 0.8712ohm,4.326060536mH )
+ N300A N400A 0.871200000 4.326060536
+ N300B N400B N300A N400A
+ N300C N400C N300A N400A
+C ***OUTSIDE LOAD*** ACCB POWER FLOW P=250W
+ N300A 174.2211826
+ N300B N300A
+ N300C N300A
+C ***INSIDE LOAD*** ( 1.00478)
+ N400A 221.1645148
+ N400B N400A
+ N400C N400A
+ N400A 18.56624062
+ N400B N400A
+ N400C N400A
+$VINTAGE, 0
+C
+BLANK card ends electric network branches
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+C /// SWITCH DATA ///
+C Only 6 of the 21 original switches are retained. This allows separate
+C names for the two IM busses even though the two are in parallel. In
+C fact, IG1A is the same as IM1A, etc. for B and C:
+ IG1A N400A MEASURING
+ IG1B N400B MEASURING
+ IG1C N400C MEASURING
+ IM1A N400A MEASURING
+ IM1B N400B MEASURING
+ IM1C N400C MEASURING
+BLANK card ends switches
+C /// SOURCE DATA ///
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.0pu:5388.87743v)
+14N100A 5388.87743 50.0 0.0 -1.0
+14N100B 5388.87743 50.0 -120.0 -1.0
+14N100C 5388.87743 50.0 -240.0 -1.0
+C
+C |BUS | | SLIP || TM0 |
+C | A6 | | E10.6 || E10.6 |
+56IG1A -0.785129 0.0
+56IG1B
+56IG1C
+C CLASS2
+C TY <NP>< RMVA >< RSKV >< FREQ >
+ 0 1 0.625 6.6 50.0
+C Rs || Lsl || Rr || Lrl || Msru || Msrs || Flxs |
+C E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 |
+0.0113 0.0903 0.0093 0.114 4.3
+C CLASS3
+C | M || D || EMSOM | |NM|P|E|M|
+C | E10.6 || E10.6 || E10.6 | |I4|I2I2I2
+ 1.12 0.0 1 1 1
+C CLASS4
+C T || TM | |TBUS|
+C E10.6 || E10.6 | | A6 |
+C 0.02 .000264555
+ 9999 { Special terminator for any Class-4 data of Type-56 IM
+C CLASS5
+C | BUS|N|
+C | A4 |I2
+ FINISH { Key word that ends data for this particular (the 1st of 2) IM
+C |BUS | | SLIP || TM0 |
+C | A6 | | E10.6 || E10.6 |
+56IM1A 2.736296 0.0
+56IM1B
+56IM1C
+C CLASS2
+C TY <NP>< RMVA >< RSKV >< FREQ >
+ 0 1 0.0625 6.6 50.0
+C Rs || Lsl || Rr || Lrl || Msru || Msrs || Flxs |
+C E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 |
+0.062 0.075 0.031 0.075 2.58
+C CLASS3
+C | M || D || EMSOM | |NM|P|E|M|
+C | E10.6 || E10.6 || E10.6 | |I4|I2I2I2
+ 1.97 0.0 1 1 1
+C CLASS4
+C T || TM | |TBUS|
+C E10.6 || E10.6 | | A6 |
+C 0.02 .000264555
+ 9999 { Special terminator for any Class-4 data of Type-56 IM
+C CLASS5
+C | BUS|N|
+C | A4 |I2
+ FINISH { Key word that ends data for this particular (the 2nd of 2) IM
+BLANK card terminating ATP source cards
+C Total network loss P-loss by summing injections = 8.693842500266E+01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C IG1A N400A 6.13352336E+01 2.91346671E+01 6.79031642E+01 25.4080 1.66673295E+05 -7.75683916E+04
+C IG1B N400B -5.43625497E+00 -6.76852040E+01 6.79031642E+01 -94.5920 1.66673295E+05 -7.75683916E+04
+C IG1C N400C -5.58989787E+01 3.85505369E+01 6.79031642E+01 145.4080 1.66673295E+05 -7.75683916E+04
+C IM1A N400A -6.18285824E+00 3.35138837E+00 7.03274769E+00 151.5403 -1.66673368E+04 -9.20498467E+03
+C IM1B N400B 5.99381659E+00 3.67881812E+00 7.03274769E+00 31.5403 -1.66673368E+04 -9.20498467E+03
+C IM1C N400C 1.89041650E-01 -7.03020649E+00 7.03274769E+00 -88.4597 -1.66673368E+04 -9.20498467E+03
+C
+C Column headings for the 29 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 24 output variables belong to IM (with "IM" an internally-added upper name of pair).
+C Next 5 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1
+C P Q ISA ISB ISC IRA IRB IRC WR ANG
+C
+C IM-1 IM-1 IM-2 IM-2 IM-2 IM-2 IM-2 IM-2 IM-2 IM-2
+C TQ TM P Q ISA ISB ISC IRA IRB IRC
+C
+C IM-2 IM-2 IM-2 IM-2 TACS TACS TACS TACS TACS
+C WR ANG TQ TM VIG PIGEN QIGEN PIM QIM
+C *** Phasor I(0) = 6.1335234E+01 Switch "IG1A " to "N400A " closed in the steady-state.
+C *** Phasor I(0) = -5.4362550E+00 Switch "IG1B " to "N400B " closed in the steady-state.
+C *** Phasor I(0) = -5.5898979E+01 Switch "IG1C " to "N400C " closed in the steady-state.
+C *** Phasor I(0) = -6.1828582E+00 Switch "IM1A " to "N400A " closed in the steady-state.
+C *** Phasor I(0) = 5.9938166E+00 Switch "IM1B " to "N400B " closed in the steady-state.
+C *** Phasor I(0) = 1.8904165E-01 Switch "IM1C " to "N400C " closed in the steady-state.
+C 0 0.0 500019.886 -232705.17 61.3352336 -5.436255 -55.898979 -11.518219 60.1819687 -48.66375 316.625821 1.57079633
+C 1608.95108 1608.95108 -50002.011 -27614.954 -6.1828582 5.99381659 .18904165 -.58621064 -5.1267795 5.71299012
+C 305.562938 1.57079633 -148.95686 -148.95686 1.0047 500000. -232000. -50000. -27600.
+C 1 .25E-3 500145.619 -232725.27 58.8756131 -.11553737 -58.760076 -11.479526 60.1817443 -48.702218 316.625814 1.64995278
+C 1609.32268 1608.95108 -49988.051 -27614.135 -6.4248212 5.68592478 .738896446 -.57282271 -5.1329244 5.70574715
+C 305.562934 1.64718706 -148.91265 -148.95686 1.00481726 500145.619 -232725.27 -49988.051 -27614.135
+C 2 .5E-3 500279.634 -232738.55 56.0518759 5.20801006 -61.259886 -11.440363 60.1804072 -48.740044 316.625795 1.72910923
+C 1609.6677 1608.95108 -49976.514 -27614.492 -6.6274021 5.34328199 1.28412013 -.55938995 -5.1392418 5.69863173
+C 305.562921 1.72357779 -148.87311 -148.95686 1.00485913 500279.634 -232738.55 -49976.514 -27614.492
+BLANK card ending names of ATP output variables (none for this case)
+C 100 .025 500666.577 -231710.46 -29.009861 67.689943 -38.680082 -7.5010766 58.7427696 -51.241693 316.626251 9.48642268
+C 1610.05009 1608.95108 -50027.397 -27567.289 -3.3454225 -3.6840913 7.02951382 .767497344 -5.7887829 5.02128552
+C 305.560218 9.20981993 -148.95965 -148.95686 1.00485987 500666.577 -231710.46 -50027.397 -27567.289
+C Variable max: 501351.888 -230444.64 67.8036384 67.9774295 67.7273265 -7.5010766 60.1819687 -48.66375 316.62671 9.48642268
+C 1612.20306 1608.95108 -49882.18 -27466.013 7.01961078 7.02912135 7.02951382 .767497344 -5.1267795 5.71299012
+C 305.562938 9.20981993 -148.58255 -148.95686 1.0049302 501351.888 -230444.64 -49882.18 -27466.013
+C Times of max: .005 .01 .0185 .00525 .012 .025 0.0 0.0 .021 .025
+C .0045 0.0 .0045 .009 .0115 .01825 .025 .025 0.0 0.0
+C 0.0 .025 .00475 0.0 .1E-2 .005 .01 .0045 .009
+C Variable min: 499173.557 -232738.55 -67.822794 -67.743906 -67.960287 -11.518219 58.7427696 -51.241693 316.623142 1.57079633
+C 1605.49808 1608.95108 -50027.634 -27615.163 -7.0288686 -7.0157093 -7.0236834 -.58621064 -5.7887829 5.02128552
+C 305.560211 1.57079633 -148.96079 -148.95686 1.0047 499173.557 -232738.55 -50027.634 -27615.163
+C Times of min: .015 .5E-3 .0085 .01525 .002 0.0 .025 .025 .009 0.0
+C .0145 0.0 .024 .75E-3 .0215 .00825 .015 0.0 .025 .025
+C .02175 0.0 .02375 0.0 0.0 .015 .5E-3 .024 .75E-3
+ PRINTER PLOT { No need for vector plotting as all variables are smooth
+ 1942.5 0. 25. BRANCH { Plot limits: (-7.029, 7.029)
+ IM-2 ISA IM-2 ISB IM-2 ISC
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 3rd of 9 subcases of BENCHMARK DCNEW-12 is added 4 May 2006.
+C 2nd of 8 data subcases that illustrate Type-56 TEPCO IM (induction machine).
+C For background of the model, see top of 1st subcase. This second case is a
+C simplification of ATPIGT56.DAT which has just a single IM. Like the first
+C subcase, this second one involves no transient. The phasor solution merely
+C is continued for one cycle to confirm the sinusoidal steady state. Of the
+C original 19 permanently-closed switches, only 10 could be eliminated without
+C tampering with TACS control system logic. The 9 switches that remain are
+C used to pass currents to TACS. As for outputs, these have been reduced
+C drastically by elimination of the request for every node voltage (a 1-punch
+C in column 2). This reduces the voltage outputs from 31 to 0.
+POWER FREQUENCY, 50
+C 0.00025 1.0 0.0 0.0 { TEPCO simulation extended to Tmax = 1 sec
+ 0.00025 .020 0.0 0.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+TACS HYBRID
+C OUTPUT
+33VIG PPIG QQIG TM
+C
+88FLG1 = TIMEX .GE. 0.1
+88FLG2 = TIMEX .GE. 0.5
+88TM = 1.0+FLG1*0.2+FLG2*0.3
+77TM 1.0
+C /// G1 BRANCH VOLTAGE MONITOR ///
+ VAB +N400A -N400B 1.0
+90N400A -1.0
+90N400B -1.0
+90N400C -1.0
+91IG1A -1.0
+91IG1B -1.0
+91IG1C -1.0
+C /// VOLTAGE FEED BACK ///
+99VIG = SQRT(N400A*N400A+N400B*N400B+N400C*N400C)/6600.0
+C /// POWER MONITOR(I.G.) ///
+99QIG1 = IG1A*(N400B-N400C)
+99QIG2 = IG1B*(N400C-N400A)
+99QIG3 = IG1C*(N400A-N400B)
+99QIGEN = (QIG1+QIG2+QIG3)/SQRT(3.0)
+99PIGEN = N400A*IG1A+N400B*IG1B+N400C*IG1C
+99PPIG = PIGEN/1000000.
+99QQIG = QIGEN/1000000.
+C
+C *************** CONTROLL MODEL BLOCK **************
+C
+90N300A -1.0
+90N300B -1.0
+90N300C -1.0
+91N250A -1.0
+91N250B -1.0
+91N250C -1.0
+C /// POWER MONITOR ACCB(BETWEEN N250 AND N300) ///
+99QCB1 = N250A*(N300B-N300C)
+99QCB2 = N250B*(N300C-N300A)
+99QCB3 = N250C*(N300A-N300B)
+99QACCB = ((QCB1+QCB2+QCB3)/SQRT(3.0))/1000.
+99PACCB = (N300A*N250A+N300B*N250B+N300C*N250C)/1000.
+C 33PACCB
+C 33QACCB
+C /// L300 P & Q ///
+91N400AD -1.0
+91N400BD -1.0
+91N400CD -1.0
+99QCB5 = N400AD*(N400B-N400C)
+99QCB6 = N400BD*(N400C-N400A)
+99QCB7 = N400CD*(N400A-N400B)
+99QACCB1 = ((QCB5+QCB6+QCB7)/SQRT(3.0))/1000000.
+99PACCB1 = (N400A*N400AD+N400B*N400BD+N400C*N400CD)/1000000.
+C 33PACCB1
+C 33QACCB1
+C
+C /// TACS OUTPUT VARIABLES ///
+C 33PPIG QQIG VIG
+C /// TACS INITIAL CONDITIONS ///
+77VIG 1.00478
+77PPIG .5000
+77QQIG -.232
+77PIGEN 500000.
+77QIGEN -232000.
+77PACCB 0.0
+77QACCB 6.25
+BLANK card ends TACS data
+$VINTAGE, 1
+C Bus1->Bus2->Bus3->Bus4-><---------R(ohm)<----------L(mH)<---------C(mmF)
+C *** XS *** ( j0.012(pu) : 0.1663869437mH )
+ N100A N200A .1663869437
+ N100B N200B N100A N200A
+ N100C N200C N100A N200A
+C *** XT *** ( j0.075(pu) : 1.039918398mH )
+ N200A N250A 1.039918398
+ N200B N250B N200A N250A
+ N200C N250C N200A N250A
+C *** ZL *** ( 0.2+j0.312(pu) : 0.8712ohm,4.326060536mH )
+ N300A N400A 0.871200000 4.326060536
+ N300B N400B N300A N400A
+ N300C N400C N300A N400A
+C ***OUTSIDE LOAD*** ACCB POWER FLOW P=250W
+ N300A 174.2211826
+ N300B N300A
+ N300C N300A
+C ***INSIDE LOAD***
+ N400A N400AD 176.7332792
+ N400B N400BDN400A N400AD
+ N400C N400CDN400A N400AD
+ N400ADN400A 16.56943663
+ N400BDN400B N400ADN400A
+ N400CDN400C N400ADN400A
+$VINTAGE, 0
+BLANK card terminating branch cards
+ N250A N300A -1.0 8.10
+ N250B N300B -1.0 8.10
+ N250C N300C -1.0 8.10
+ IG1A N400A MEASURING 1
+ IG1B N400B MEASURING 1
+ IG1C N400C MEASURING 1
+ N400AD MEASURING
+ N400BD MEASURING
+ N400CD MEASURING
+BLANK card ending switch cards
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.0pu:5388.87743v)
+14N100A 5388.87743 50.0 0.0 -1.0
+14N100B 5388.87743 50.0 -120.0 -1.0
+14N100C 5388.87743 50.0 -240.0 -1.0
+C CLASS1
+C |BUS | | SLIP || TM0 |
+C | A6 | | E10.6 || E10.6 |
+56IG1A -0.785129
+56IG1B
+56IG1C
+C CLASS2
+C TY <NP>< RMVA >< RSKV >< FREQ >
+ 0 1 0.625 6.6 50.0
+C Rs || Lsl || Rr || Lrl || Msru || Msrs || Flxs |
+C E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 |
+0.0113 0.0903 0.0093 0.114 4.3
+C CLASS3
+C | M || D || EMSOM | |NM|P|E|M|
+C | E10.6 || E10.6 || E10.6 | |I4|I2I2I2
+ 1.12 0.0 1 1 1
+C CLASS4
+C T || TM | |TBUS|
+C E10.6 || E10.6 | | A6 |
+C 0.1 1.1 TM
+ 0.1 1.2
+ 0.5 1.5
+ 9999 { Special terminator for any Class-4 data (here, 2 cards)
+C CLASS5
+C | BUS|N|
+C | A4 |I2
+C 73PGEN 1
+ FINISH { Key word that ends data for this particular (the one and only) IM
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = 7.668433002012E+01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C N250A N300A 9.48674141E-03 -7.08165989E-01 7.08229529E-01 -89.2325 2.55614433E+01 1.90801481E+03
+C N250B N300B -6.18033107E-01 3.45867235E-01 7.08229529E-01 150.7675 2.55614433E+01 1.90801481E+03
+C N250C N300C 6.08546366E-01 3.62298754E-01 7.08229529E-01 30.7675 2.55614433E+01 1.90801481E+03
+C IG1A N400A 6.13353129E+01 2.91346959E+01 6.79032482E+01 25.4080 1.66673707E+05 -7.75685834E+04
+C IG1B N400B -5.43626967E+00 -6.76852871E+01 6.79032482E+01 -94.5920 1.66673707E+05 -7.75685834E+04
+C IG1C N400C -5.58990432E+01 3.85505912E+01 6.79032482E+01 145.4080 1.66673707E+05 -7.75685834E+04
+C N400AD 3.04150988E+01 2.84265505E+01 4.16310823E+01 43.0644 0.00000000E+00 0.00000000E+00
+C N400BD 9.41056550E+00 -4.05535235E+01 4.16310823E+01 -76.9356 0.00000000E+00 0.00000000E+00
+C N400CD -3.98256643E+01 1.21269730E+01 4.16310823E+01 163.0644 0.00000000E+00 0.00000000E+00
+C
+C Column headings for the 19 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 12 output variables belong to IM (with "IM" an internally-added upper name of pair).
+C Next 4 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time IG1A IG1B IG1C IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1
+C N400A N400B N400C P Q ISA ISB ISC IRA IRB
+C
+C IM-1 IM-1 IM-1 IM-1 IM-1 TACS TACS TACS TACS
+C IRC WR ANG TQ TM VIG PPIG QQIG TM
+C *** Phasor I(0) = 9.4867414E-03 Switch "N250A " to "N300A " closed in the steady-state.
+C *** Phasor I(0) = -6.1803311E-01 Switch "N250B " to "N300B " closed in the steady-state.
+C *** Phasor I(0) = 6.0854637E-01 Switch "N250C " to "N300C " closed in the steady-state.
+C *** Phasor I(0) = 6.1335313E+01 Switch "IG1A " to "N400A " closed in the steady-state.
+C *** Phasor I(0) = -5.4362697E+00 Switch "IG1B " to "N400B " closed in the steady-state.
+C *** Phasor I(0) = -5.5899043E+01 Switch "IG1C " to "N400C " closed in the steady-state.
+C *** Phasor I(0) = 3.0415099E+01 Switch "N400AD" to " " closed in the steady-state.
+C *** Phasor I(0) = 9.4105655E+00 Switch "N400BD" to " " closed in the steady-state.
+C *** Phasor I(0) = -3.9825664E+01 Switch "N400CD" to " " closed in the steady-state.
+C 0 0.0 61.3353129 -5.4362697 -55.899043 500021.122 -232705.75 61.3353129 -5.4362697 -55.899043 -11.518226 60.1820406
+C -48.663815 316.625821 1.57079633 1608.95506 1608.95506 1.0047 0.5 -.232 1.0
+C 1 .25E-3 58.8756985 -.11556078 -58.760138 500146.874 -232725.18 58.8756985 -.11556078 -58.760138 -11.47952 60.1818161
+C -48.702296 316.625814 1.64995278 1609.32678 1608.95506 1.004818 .500146874 -.23272518 1.0
+C 2 .5E-3 56.0520126 5.20791534 -61.259928 500280.855 -232736.13 56.0520126 5.20791534 -61.259928 -11.440292 60.1804828
+C -48.740191 316.625795 1.72910923 1609.67255 1608.95506 1.00485787 .500280855 -.23273613 1.0
+BLANK card ending output variables (none specified here)
+C 80 .02 61.3263774 -5.4750126 -55.851365 499968.129 -232316.99 61.3263774 -5.4750126 -55.851365 -8.3606667 59.018657
+C -50.65799 316.626716 7.90328979 1608.32331 1608.95506 1.00485137 .499968129 -.23231699 1.0
+C Variable maxima: 67.8022815 67.9777456 67.7244575 501371.216 -230406.62 67.8022815 67.9777456 67.7244575 -8.3606667 60.1820406
+C -48.663815 316.626716 7.90328979 1612.25579 1608.95506 1.00491917 .501371216 -.23040662 1.0
+C Times of maxima: .0185 .00525 .012 .005 .01 .0185 .00525 .012 .02 0.0
+C 0.0 .02 .02 .0045 0.0 .1E-2 .005 .01 0.0
+C Variable minima: -67.822135 -67.74161 -67.961789 499154.6 -232736.13 -67.822135 -67.74161 -67.961789 -11.518226 59.018657
+C -50.65799 316.623113 1.57079633 1605.43816 1608.95506 1.0047 .4991546 -.23273613 1.0
+C Times of minima: .0085 .01525 .002 .015 .5E-3 .0085 .01525 .002 0.0 .02
+C .02 .009 0.0 .0145 0.0 0.0 .015 .5E-3 0.0
+ 1942.5 0. 25. BRANCH { Plot limits: (-6.796, 6.798)
+ IG1A N400A IG1B N400B IG1C N400C
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 4th of 9 subcases of BENCHMARK DCNEW-12 is added 4 May 2006.
+C 3rd of 8 data subcases that illustrate Type-56 TEPCO IM (induction machine).
+C For background of the model, see top of 1st subcase. This third case is a
+C simplification of IGTMT56.DAT which has just a single IM. Like the first
+C two, this third subcase involves no transient. The phasor solution merely
+C is continued for one cycle to confirm the sinusoidal steady state. Of the
+C original 19 permanently-closed switches, only 10 could be eliminated without
+C tampering with TACS control system logic. 6 of the 9 switches that remain
+C are used to pass currents to TACS. As for outputs, these have been reduced
+C drastically by elimination of the request for every node voltage (a 1-punch
+C in column 2). This reduces the voltage outputs from 31 to 0.
+POWER FREQUENCY, 50
+C
+C 0.00025 1.0 0.0 0.0 --- TEPCO's T-max was 1.0 seconds, note
+ 0.00025 .020 0.0 0.0 { 1 cycle is enough to verify steady state
+ 1 1 1 1 1 -1
+ 5 5 20 20
+TACS HYBRID
+C OUTPUT
+33VIG PPIG QQIG TM
+C
+88FLG1 = TIMEX .GE. 0.1
+88FLG2 = TIMEX .GE. 0.5
+C 88TM = 1.0+FLG1*0.2+FLG2*0.3
+88TM = 1.0+FLG1*0.4838+FLG2*0.3709
+77TM 1.0
+C /// G1 BRANCH VOLTAGE MONITOR ///
+ VAB +N400A -N400B 1.0
+90N400A -1.0
+90N400B -1.0
+90N400C -1.0
+91IG1A -1.0
+91IG1B -1.0
+91IG1C -1.0
+C /// VOLTAGE FEED BACK ///
+99VIG = SQRT(N400A*N400A+N400B*N400B+N400C*N400C)/6600.0
+C /// POWER MONITOR(I.G.) ///
+99QIG1 = IG1A*(N400B-N400C)
+99QIG2 = IG1B*(N400C-N400A)
+99QIG3 = IG1C*(N400A-N400B)
+99QIGEN = (QIG1+QIG2+QIG3)/SQRT(3.0)
+99PIGEN = N400A*IG1A+N400B*IG1B+N400C*IG1C
+99PPIG = PIGEN/1000000.
+99QQIG = QIGEN/1000000.
+C
+C *************** CONTROLL MODEL BLOCK **************
+C
+90N300A -1.0
+90N300B -1.0
+90N300C -1.0
+91N250A -1.0
+91N250B -1.0
+91N250C -1.0
+C /// POWER MONITOR ACCB(BETWEEN N250 AND N300) ///
+99QCB1 = N250A*(N300B-N300C)
+99QCB2 = N250B*(N300C-N300A)
+99QCB3 = N250C*(N300A-N300B)
+99QACCB = ((QCB1+QCB2+QCB3)/SQRT(3.0))/1000.
+99PACCB = (N300A*N250A+N300B*N250B+N300C*N250C)/1000.
+C 33PACCB
+C 33QACCB
+C /// L300 P & Q ///
+91N400AD -1.0
+91N400BD -1.0
+91N400CD -1.0
+99QCB5 = N400AD*(N400B-N400C)
+99QCB6 = N400BD*(N400C-N400A)
+99QCB7 = N400CD*(N400A-N400B)
+99QACCB1 = ((QCB5+QCB6+QCB7)/SQRT(3.0))/1000000.
+99PACCB1 = (N400A*N400AD+N400B*N400BD+N400C*N400CD)/1000000.
+C 33PACCB1
+C 33QACCB1
+C
+C /// TACS OUTPUT VARIABLES ///
+C 33PPIG QQIG VIG
+C /// TACS INITIAL CONDITIONS ///
+77VIG 1.00478
+77PPIG .5000
+77QQIG -.232
+77PIGEN 500000.
+77QIGEN -232000.
+77PACCB 0.0
+77QACCB 6.25
+C IM TORQUE
+C 99TM =TIMEX
+C 88TM =TIMEX .GE. 0.1
+$DISABLE
+C ---FOR.IG.No1(1/4)---
+C ====== TIME OF MOTOR TO GEN MODE =====
+77MSLIP -0.785129
+11MOTGEN 0.0 -1.0
+90BUSMG -1.0
+99MSLIP = (1.0-BUSMG/(2.*PI*50.))*100.
+33MSLIP
+99BUSMS =(TIMEX.GE.MOTGEN)*1592
+$ENABLE
+BLANK card ending TACS data
+C /// NETWORK DATA ///
+$VINTAGE, 1
+C Bus1->Bus2->Bus3->Bus4-><---------R(ohm)<----------L(mH)<---------C(mmF)
+C *** XS *** ( j0.012(pu) : 0.1663869437mH )
+ N100A N200A .1663869437
+ N100B N200B N100A N200A
+ N100C N200C N100A N200A
+C *** XT *** ( j0.075(pu) : 1.039918398mH )
+ N200A N250A 1.039918398
+ N200B N250B N200A N250A
+ N200C N250C N200A N250A
+C *** ZL *** ( 0.2+j0.312(pu) : 0.8712ohm,4.326060536mH )
+ N300A N400A 0.871200000 4.326060536
+ N300B N400B N300A N400A
+ N300C N400C N300A N400A
+C ***OUTSIDE LOAD*** ACCB POWER FLOW P=250W
+ N300A 174.2211826
+ N300B N300A
+ N300C N300A
+C ***INSIDE LOAD***
+ N400A N400AD 176.7332792
+ N400B N400BDN400A N400AD
+ N400C N400CDN400A N400AD
+ N400ADN400A 16.56943663
+ N400BDN400B N400ADN400A
+ N400CDN400C N400ADN400A
+$VINTAGE, 0
+C
+$DISABLE
+C ---FOR.IG.No1(2/4)---
+C --------- MECHANICAL NETWORK COMPONENTS
+C Tm=1.12 :M :2H ==> 7.09E+6 pole:1
+C --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
+ BUSMG 7.09E6
+C -------- FOR MEASUREMENT OF ELECTROMECHANICAL TORQUE
+ BUSMS BUSMG 1.0E-8
+$ENABLE
+BLANK card ending branch cards
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+C /// SWITCH DATA ///
+ N250A N300A -1.0 8.10
+ N250B N300B -1.0 8.10
+ N250C N300C -1.0 8.10
+ IG1A N400A MEASURING 1
+ IG1B N400B MEASURING 1
+ IG1C N400C MEASURING 1
+ N400AD MEASURING
+ N400BD MEASURING
+ N400CD MEASURING
+BLANK card ending switch cards
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+$DISABLE
+C ---FOR.IG.No1(3/4)---
+14BUSMS -1 0.0001 0.0001 .0 -1.0
+$ENABLE
+C /// SOURCE DATA ///
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.0pu:5388.87743v)
+14N100A 5388.87743 50.0 0.0 -1.0
+14N100B 5388.87743 50.0 -120.0 -1.0
+14N100C 5388.87743 50.0 -240.0 -1.0
+C CLASS1
+C |BUS | | SLIP || TM0 |
+C | A6 | | E10.6 || E10.6 |
+56IG1A -0.785129 0.0
+56IG1B
+56IG1C
+C CLASS2
+C TY <NP>< RMVA >< RSKV >< FREQ >
+ 0 1 0.625 6.6 50.0
+C Rs || Lsl || Rr || Lrl || Msru || Msrs || Flxs |
+C E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 |
+0.0113 0.0903 0.0093 0.114 4.3
+C CLASS3
+C | M || D || EMSOM | |NM|P|E|M|
+C | E10.6 || E10.6 || E10.6 | |I4|I2I2I2
+ 1.12 0.0 1 1 1
+C CLASS4
+C T || TM | |TBUS|
+C E10.6 || E10.6 | | A6 |
+ TM
+ 9999 { Special terminator for any Class-4 data of Type-56 IM
+C CLASS5
+C | BUS|N|
+C | A4 |I2
+C 73PGEN 1
+ FINISH
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 7.668433002012E+01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C N250A N300A 9.48674141E-03 -7.08165989E-01 7.08229529E-01 -89.2325 2.55614433E+01 1.90801481E+03
+C N250B N300B -6.18033107E-01 3.45867235E-01 7.08229529E-01 150.7675 2.55614433E+01 1.90801481E+03
+C N250C N300C 6.08546366E-01 3.62298754E-01 7.08229529E-01 30.7675 2.55614433E+01 1.90801481E+03
+C IG1A N400A 6.13353129E+01 2.91346959E+01 6.79032482E+01 25.4080 1.66673707E+05 -7.75685834E+04
+C IG1B N400B -5.43626967E+00 -6.76852871E+01 6.79032482E+01 -94.5920 1.66673707E+05 -7.75685834E+04
+C IG1C N400C -5.58990432E+01 3.85505912E+01 6.79032482E+01 145.4080 1.66673707E+05 -7.75685834E+04
+C N400AD 3.04150988E+01 2.84265505E+01 4.16310823E+01 43.0644 0.00000000E+00 0.00000000E+00
+C N400BD 9.41056550E+00 -4.05535235E+01 4.16310823E+01 -76.9356 0.00000000E+00 0.00000000E+00
+C N400CD -3.98256643E+01 1.21269730E+01 4.16310823E+01 163.0644 0.00000000E+00 0.00000000E+00
+C
+C Column headings for the 19 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 12 output variables belong to IM (with "IM" an internally-added upper name of pair).
+C Next 4 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time IG1A IG1B IG1C IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1
+C N400A N400B N400C P Q ISA ISB ISC IRA IRB
+C
+C IM-1 IM-1 IM-1 IM-1 IM-1 TACS TACS TACS TACS
+C IRC WR ANG TQ TM VIG PPIG QQIG TM
+C *** Phasor I(0) = 9.4867414E-03 Switch "N250A " to "N300A " closed in the steady-state.
+C *** Phasor I(0) = -6.1803311E-01 Switch "N250B " to "N300B " closed in the steady-state.
+C *** Phasor I(0) = 6.0854637E-01 Switch "N250C " to "N300C " closed in the steady-state.
+C *** Phasor I(0) = 6.1335313E+01 Switch "IG1A " to "N400A " closed in the steady-state.
+C *** Phasor I(0) = -5.4362697E+00 Switch "IG1B " to "N400B " closed in the steady-state.
+C *** Phasor I(0) = -5.5899043E+01 Switch "IG1C " to "N400C " closed in the steady-state.
+C *** Phasor I(0) = 3.0415099E+01 Switch "N400AD" to " " closed in the steady-state.
+C *** Phasor I(0) = 9.4105655E+00 Switch "N400BD" to " " closed in the steady-state.
+C *** Phasor I(0) = -3.9825664E+01 Switch "N400CD" to " " closed in the steady-state.
+C 0 0.0 61.3353129 -5.4362697 -55.899043 500021.122 -232705.75 61.3353129 -5.4362697 -55.899043 -11.518226 60.1820406
+C -48.663815 316.625821 1.57079633 1608.95506 1608.95506 1.0047 0.5 -.232 1.0
+C 1 .25E-3 58.8756985 -.11556078 -58.760138 500146.874 -232725.18 58.8756985 -.11556078 -58.760138 -11.47952 60.1818161
+C -48.702296 316.625814 1.64995278 1609.32678 1608.95506 1.004818 .500146874 -.23272518 1.0
+C 2 .5E-3 56.0520126 5.20791534 -61.259928 500280.855 -232736.13 56.0520126 5.20791534 -61.259928 -11.440292 60.1804828
+C -48.740191 316.625795 1.72910923 1609.67255 1608.95506 1.00485787 .500280855 -.23273613 1.0
+BLANK card ending names for output purposes (none here)
+C 80 .02 61.3263774 -5.4750126 -55.851365 499968.129 -232316.99 61.3263774 -5.4750126 -55.851365 -8.3606667 59.018657
+C -50.65799 316.626716 7.90328979 1608.32331 1608.95506 1.00485137 .499968129 -.23231699 1.0
+C Variable maxima: 67.8022815 67.9777456 67.7244575 501371.216 -230406.62 67.8022815 67.9777456 67.7244575 -8.3606667 60.1820406
+C -48.663815 316.626716 7.90328979 1612.25579 1608.95506 1.00491917 .501371216 -.23040662 1.0
+C Times of maxima: .0185 .00525 .012 .005 .01 .0185 .00525 .012 .02 0.0
+C 0.0 .02 .02 .0045 0.0 .1E-2 .005 .01 0.0
+C Variable minima: -67.822135 -67.74161 -67.961789 499154.6 -232736.13 -67.822135 -67.74161 -67.961789 -11.518226 59.018657
+C -50.65799 316.623113 1.57079633 1605.43816 1608.95506 1.0047 .4991546 -.23273613 1.0
+C Times of minima: .0085 .01525 .002 .015 .5E-3 .0085 .01525 .002 0.0 .02
+C .02 .009 0.0 .0145 0.0 0.0 .015 .5E-3 0.0
+ PRINTER PLOT { No need for vector plotting as all variables are smooth
+C For variety, let's not repeat the 50-Hz ac sinusoids of the preceding two
+C subcases. Instead, let's plot the rotor angle ANG which should be a
+C perfect ramp if rotor speed is constant.
+ 1942.5 0. 25. BRANCH { Plot limits: ( 0.000, 7.903 )
+ IM-1 ANG
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 5th of 9 subcases of BENCHMARK DCNEW-12 is added 4 May 2006.
+C 4th of 8 data subcases that illustrate Type-56 TEPCO IM (induction machine).
+C For background of the model, see top of 1st subcase. This fourth case is a
+C simplification of DCN12T56.DAT, so named because it is like DCN12 (in long
+C form, DCNEW-12) except that the U.M. of that old standard test case has been
+C replaced by a Type-56 IM. Unlike the preceding 3 IM illustrations, this one
+C _does_ involve transients. A comment card of that old data states: "Apply
+C a step to the input torque at 0.02 sec (step 100). Unlike the preceding
+C illustrations, there is no TACS (control system modeling). Also, 1 phasor
+C solution for initial conditions suffices (compare with the five of DCNEW-12,
+C each indicated by 1 line of output that begins "Total network loss P-loss
+C by summing injections = ..."). Of course, the compensation of DCNEW-12 is
+C nowhere to be seen. The TEPCO IM does not use compensation. Also gone is
+C the external rotor inertia that Prof. Hian Lauw modeled using a capacitor
+C (that unforgetable electrical analog used with the U.M.). Machine variable
+C names are are a little different, but are easily recognizable. For example,
+C the PRINTER PLOT of shaft torque (UM-1, TQGEN) has become (IM-1, TQ).
+C But the shape is the same: a slightly underdamped rise to a constant. In
+C fact, the plot limits are nearly the same. DCNEW-12 has ( -4.168 0.389 )
+C whereas this new IM simulation produces ( -4.168 0.388 ).
+C About solution speed, WSM's old 133-MHz Pentium PC running real MS-DOS to
+C support DBOS reports the following: DCNEW-12 TEPCO 56
+C Seconds for overlays 1-5 : 2.088 2.033
+C Seconds for overlays 6-11 : 0.220 0.220
+C Seconds for overlays 12-15 : 0.165 0.165
+C Seconds for time-step loop : 2.637 1.484
+C Seconds after DELTAT-loop : 0.330 0.385
+C --------------------
+C Totals : 5.440 4.286
+C Bob Schultz reported: 7.80 6.59
+C (this final row is the total job time, written only on the screen). So,
+C at least for the default tolerances used, there would seem to be no worry
+C that the Type-56 TEPCO IM simulates substantially slower. The surprising
+C preceding result shows faster simulation even though compensation is not
+C being used. Who would have predicted this? WSM's congratulations to Mr.
+C Cao for a job well done. WSM. 10 April 2006
+PRINTED NUMBER WIDTH, 12, 2, { 1 fewer digit than DCN12 so 2 rows are enough
+0.0002 0.900
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 1 110 10 200 200
+C -------- TRANSMISSION LINES
+ BUSA2 BUSAS2 1.0E-4 10.0 1
+ BUSB2 BUSBS2BUSA2 BUSAS2 1
+ BUSC2 BUSCS2BUSA2 BUSAS2 1
+C --------- CONNECTIVITY OF EMTP FOR ELECTRIC NETWORK
+ BUSAS2 1.0E+6
+ BUSBS2 BUSAS2
+ BUSCS2 BUSAS2
+BLANK card ending all branch cards
+BLANK card ending all (here, nonexistent) switch cards
+C --------- SOURCES FOR INFINITE BUS
+14BUSAS2 3000.0 60.0 0.0 -1.0
+14BUSBS2 3000.0 60.0 -120.0 -1.0
+14BUSCS2 3000.0 60.0 +120.0 -1.0
+C ----------- Mechanical input torque, with value set by steady-state solution:
+C |BUS | | SLIP || TM0 |
+C | A6 | | E10.6 || E10.6 |
+56BUSA2 2.0
+56BUSB2
+56BUSC2
+C CLASS2
+C TY <NP>< RMVA >< RSKV >< FREQ >
+ 0 2 0.72 4.2 60.0
+C Rs || Lsl || Rr || Lrl || Msru || Msrs || Flxs |
+C E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 |
+0.0168163 0.0184649 0.0044898 0.0184649 0.3628347
+C CLASS3
+C | M || D || EMSOM | |NM|P|E|M|
+C | E10.6 || E10.6 || E10.6 | |I4|I2I2I2
+ 4.8361824 0.05425244 1 1 1
+C CLASS4
+C T || TM | |TBUS|
+C E10.6 || E10.6 | | A6 |
+ 0.02 -0.070204
+ 9999 { Special terminator for any Class-4 data of Type-56 IM
+C CLASS5
+C | BUS|N|
+C | A4 |I2
+ FINISH
+BLANK card ending all source cards
+C Bus K Phasor node voltage Phasor branch current Power flow Power loss
+C Bus M Rectangular Polar Rectangular Polar P and Q P and Q
+C
+C BUSA2 1784.3750743312 1928.5009532126 -194.050261711 376.33642682066 -291068.3111111 7.0814553076206
+C -731.5200070041 -22.2916012 322.44937910011 121.0395584 -216709.4929969 266964.5756532
+C
+C BUSAS2 3000. 3000. 194.05026171096 376.33642682066 291075.39256644
+C 0.0 0.0 -322.4493791001 -58.9604416 483674.06865017
+C
+C Total network loss P-loss by summing injections = 8.732396776993E+05
+C Node Source node voltage Injected source current Injected source power
+C name Rectangular Polar Rectangular Polar P and Q MVA and P.F.
+C
+C BUSAS2 3000. 3000. 194.05326171096 376.33797371872 291079.89256644 564506.96057808
+C 0.0 0.0 -322.4493791001 -58.9600503 483674.06865017 0.5156356
+C
+C Column headings for the 17 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 12 output variables belong to IM (with "IM" an internally-added upper name of pair).
+C Step Time BUSAS2 BUSA2 BUSA2 BUSB2 BUSC2 IM-1 IM-1 IM-1 IM-1
+C BUSAS2 BUSBS2 BUSCS2 P Q ISA ISB
+C
+C IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1
+C ISC IRA IRB IRC WR ANG TQ TM
+C 0 0.0 3000. 1784.37507 -194.05026 376.274485 -182.22422 -873204.93 -650128.48 -194.05026 376.274485
+C -182.22422 -147.12317 -161.36673 308.4899 184.725648 1.57079633 -4168.1528 -3965.0683
+C 1 .2E-3 2991.4767 1835.51059 -217.76576 374.681612 -156.91585 -873758.65 -650481.06 -217.76576 374.681612
+C -156.91585 -146.71413 -161.74471 308.458843 184.725648 1.64468659 -4167.9016 -3965.0683
+C 2 .4E-3 2965.95523 1874.03852 -240.24413 370.961295 -130.71716 -873055.73 -650212.21 -240.24413 370.961295
+C -130.71716 -146.30323 -162.12329 308.426525 184.725647 1.71857685 -4167.6433 -3965.0683
+ BUSAS2BUSA2
+BLANK card ending output requests (node voltages only, here)
+C 4500 0.9 3000. 2139.14561 -18.05955 206.541811 -188.48226 -81144.03 -729966.82 -18.05955 206.541811
+C -188.48226 9.2806015 -16.003198 6.72259646 188.318532 340.252637 -259.39252 -65.075052
+C Variable maxima : 3000. 2142.5602 375.961666 376.274485 375.920036 38275.6628 -648850.48 375.961666 376.274485
+C 375.920036 12.3551834 24.9125877 308.4899 189.143066 340.252637 387.73688 -65.075052
+C Times of maxima : 0.0 .5834 .011 0.0 .0222 .3106 .0082 .011 0.0
+C .0222 .564 .3076 0.0 .22 0.9 .3086 .02
+C Variable minima : -3000. -2142.6793 -376.12582 -375.68519 -376.20297 -873758.65 -769663.96 -376.12582 -375.68519
+C -376.20297 -147.12317 -228.11722 -6.2184031 184.7252 1.57079633 -4168.4668 -3965.0683
+C Times of minima : .025 .5584 .0194 .0082 .0138 .2E-3 .1896 .0194 .0082
+C .0138 0.0 .0546 .3312 .0198 0.0 .0138 0.0
+ PRINTER PLOT
+ 193 .1 0.0 1.0 IM-1 TQ { Axis limits: (-4.168, 0.388)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 9 subcases of BENCHMARK DCNEW-12 is added 4 May 2006.
+C 5th of 8 data subcases that illustrate Type-56 TEPCO IM (induction machine).
+C For background of the model, see top of 1st subcase. This fifth case is a
+C simplification of WSMATPIG.DAT which has just a single IM. Like the first
+C three, this second subcase involves no transient. The phasor solution merely
+C is continued for one cycle to confirm the sinusoidal steady state. Of the
+C original 19 permanently-closed switches, only 10 could be eliminated without
+C tampering with TACS control system logic. The 9 switches that remain are
+C used to pass 6 currents and 3 voltages to TACS. As for outputs, these have
+C been reduced drastically by elimination of the request for every node voltage
+C (a 1-punch in column 2). This reduces the voltage outputs from 31 to 0. New
+C is illustration of the declaration to size IM tables within the working space
+C of List 25. This is immediately below. The Type-56 TEPCO IM and Prof. Hian
+C Lauw's Type-19 U.M. share the same working space, so what is not used by one
+C model is available for the other. There should be protection against any
+C attempt to use more space than exists.
+C LIM56 LIMTM { 32X, 2I8 data
+ABSOLUTE I.M. DIMENSIONS 3 12 { 2 and 10 are the defaults
+POWER FREQUENCY, 50
+PRINTED NUMBER WIDTH, 11, 1, { This is the default choice; return to its use
+C 0.00025 1.0 0.0 0.0 { Original TEPCO simulation was to 1.0 second
+ 0.00025 .020 0.0 0.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+TACS HYBRID
+C OUTPUT
+33VIG PPIG QQIG
+C
+C /// G1 BRANCH VOLTAGE MONITOR ///
+ VAB +N400A -N400B 1.0
+90N400A -1.0
+90N400B -1.0
+90N400C -1.0
+91IG1A -1.0
+91IG1B -1.0
+91IG1C -1.0
+C /// VOLTAGE FEED BACK ///
+99VIG = SQRT(N400A*N400A+N400B*N400B+N400C*N400C)/6600.0
+C /// POWER MONITOR(I.G.) ///
+99QIG1 = IG1A*(N400B-N400C)
+99QIG2 = IG1B*(N400C-N400A)
+99QIG3 = IG1C*(N400A-N400B)
+99QIGEN = (QIG1+QIG2+QIG3)/SQRT(3.0)
+99PIGEN = N400A*IG1A+N400B*IG1B+N400C*IG1C
+99PPIG = PIGEN/1000000.
+99QQIG = QIGEN/1000000.
+C
+C *************** CONTROLL MODEL BLOCK **************
+C
+90N300A -1.0
+90N300B -1.0
+90N300C -1.0
+91N250A -1.0
+91N250B -1.0
+91N250C -1.0
+C /// POWER MONITOR ACCB(BETWEEN N250 AND N300) ///
+99QCB1 = N250A*(N300B-N300C)
+99QCB2 = N250B*(N300C-N300A)
+99QCB3 = N250C*(N300A-N300B)
+99QACCB = ((QCB1+QCB2+QCB3)/SQRT(3.0))/1000.
+99PACCB = (N300A*N250A+N300B*N250B+N300C*N250C)/1000.
+C 33PACCB
+C 33QACCB
+C /// L300 P & Q ///
+91N400AD -1.0
+91N400BD -1.0
+91N400CD -1.0
+99QCB5 = N400AD*(N400B-N400C)
+99QCB6 = N400BD*(N400C-N400A)
+99QCB7 = N400CD*(N400A-N400B)
+99QACCB1 = ((QCB5+QCB6+QCB7)/SQRT(3.0))/1000000.
+99PACCB1 = (N400A*N400AD+N400B*N400BD+N400C*N400CD)/1000000.
+C 33PACCB1
+C 33QACCB1
+C
+C /// TACS OUTPUT VARIABLES ///
+C 33PPIG QQIG VIG
+C /// TACS INITIAL CONDITIONS ///
+77VIG 1.00478
+77PPIG .5000
+77QQIG -.232
+77PIGEN 500000.
+77QIGEN -232000.
+77PACCB 0.0
+77QACCB 6.25
+$DISABLE
+C ---FOR.IG.No1(1/4)---
+C ====== TIME OF MOTOR TO GEN MODE =====
+77MSLIP -0.785129
+11MOTGEN 0.0 -1.0
+90BUSMG -1.0
+99MSLIP = (1.0-BUSMG/(2.*PI*50.))*100.
+33MSLIP
+99BUSMS =(TIMEX.GE.MOTGEN)*1592
+$ENABLE
+BLANK card ending TACS data
+C /// NETWORK DATA ///
+$VINTAGE, 1
+C Bus1->Bus2->Bus3->Bus4-><---------R(ohm)<----------L(mH)<---------C(mmF)
+C *** XS *** ( j0.012(pu) : 0.1663869437mH )
+ N100A N200A .1663869437
+ N100B N200B N100A N200A
+ N100C N200C N100A N200A
+C *** XT *** ( j0.075(pu) : 1.039918398mH )
+ N200A N250A 1.039918398
+ N200B N250B N200A N250A
+ N200C N250C N200A N250A
+C *** ZL *** ( 0.2+j0.312(pu) : 0.8712ohm,4.326060536mH )
+ N300A N400A 0.871200000 4.326060536
+ N300B N400B N300A N400A
+ N300C N400C N300A N400A
+C ***OUTSIDE LOAD*** ACCB POWER FLOW P=250W
+ N300A 174.2211826
+ N300B N300A
+ N300C N300A
+C ***INSIDE LOAD***
+ N400A N400AD 176.7332792
+ N400B N400BDN400A N400AD
+ N400C N400CDN400A N400AD
+ N400ADN400A 16.56943663
+ N400BDN400B N400ADN400A
+ N400CDN400C N400ADN400A
+$VINTAGE, 0
+C
+$DISABLE
+C ---FOR.IG.No1(2/4)---
+C --------- MECHANICAL NETWORK COMPONENTS
+C Tm=1.12 :M :2H ==> 7.09E+6 pole:1
+C --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
+ BUSMG 7.09E6
+C -------- FOR MEASUREMENT OF ELECTROMECHANICAL TORQUE
+ BUSMS BUSMG 1.0E-8
+$ENABLE
+BLANK card ending branch cards
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+C /// SWITCH DATA ///
+ N250A N300A -1.0 8.10
+ N250B N300B -1.0 8.10
+ N250C N300C -1.0 8.10
+ IG1A N400A MEASURING 1
+ IG1B N400B MEASURING 1
+ IG1C N400C MEASURING 1
+ N400AD MEASURING
+ N400BD MEASURING
+ N400CD MEASURING
+BLANK card ending switch cards
+C /// SOURCE DATA ///
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.0pu:5388.87743v)
+14N100A 5388.87743 50.0 0.0 -1.0
+14N100B 5388.87743 50.0 -120.0 -1.0
+14N100C 5388.87743 50.0 -240.0 -1.0
+C CLASS1
+C |BUS | | SLIP || TM0 |
+C | A6 | | E10.6 || E10.6 |
+56IG1A -0.785129 0.0
+56IG1B
+56IG1C
+C CLASS2
+C TY <NP>< RMVA >< RSKV >< FREQ >
+ 0 1 0.625 6.6 50.0
+C Rs || Lsl || Rr || Lrl || Msru || Msrs || Flxs |
+C E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 |
+0.0113 0.0903 0.0093 0.114 4.3
+C CLASS3
+C | M || D || EMSOM | |NM|P|E|M|
+C | E10.6 || E10.6 || E10.6 | |I4|I2I2I2
+ 1.12 0.0 1 1 1
+C CLASS4
+C T || TM | |TBUS|
+C E10.6 || E10.6 | | A6 |
+C 0.02 .000264555
+ 9999 { Special terminator for any Class-4 data of Type-56 IM
+C CLASS5
+C | BUS|N|
+C | A4 |I2
+C 73PGEN 1
+ FINISH { Key word that ends data for this particular (the one and only) IM
+BLANK CARD ending source cards
+C Total network loss P-loss by summing injections = 7.668433002012E+01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C N250A N300A 9.48674141E-03 -7.08165989E-01 7.08229529E-01 -89.2325 2.55614433E+01 1.90801481E+03
+C N250B N300B -6.18033107E-01 3.45867235E-01 7.08229529E-01 150.7675 2.55614433E+01 1.90801481E+03
+C N250C N300C 6.08546366E-01 3.62298754E-01 7.08229529E-01 30.7675 2.55614433E+01 1.90801481E+03
+C IG1A N400A 6.13353129E+01 2.91346959E+01 6.79032482E+01 25.4080 1.66673707E+05 -7.75685834E+04
+C IG1B N400B -5.43626967E+00 -6.76852871E+01 6.79032482E+01 -94.5920 1.66673707E+05 -7.75685834E+04
+C IG1C N400C -5.58990432E+01 3.85505912E+01 6.79032482E+01 145.4080 1.66673707E+05 -7.75685834E+04
+C N400AD 3.04150988E+01 2.84265505E+01 4.16310823E+01 43.0644 0.00000000E+00 0.00000000E+00
+C N400BD 9.41056550E+00 -4.05535235E+01 4.16310823E+01 -76.9356 0.00000000E+00 0.00000000E+00
+C N400CD -3.98256643E+01 1.21269730E+01 4.16310823E+01 163.0644 0.00000000E+00 0.00000000E+00
+C Column headings for the 18 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 12 output variables belong to IM (with "IM" an internally-added upper name of pair).
+C Next 3 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time IG1A IG1B IG1C IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1
+C N400A N400B N400C P Q ISA ISB ISC IRA IRB
+C
+C IM-1 IM-1 IM-1 IM-1 IM-1 TACS TACS TACS
+C IRC WR ANG TQ TM VIG PPIG QQIG
+C 0 0.0 61.3353129 -5.4362697 -55.899043 500021.122 -232705.75 61.3353129 -5.4362697 -55.899043 -11.518226 60.1820406
+C -48.663815 316.625821 1.57079633 1608.95506 1608.95506 1.0047 0.5 -.232
+C 1 .25E-3 58.8756985 -.11556078 -58.760138 500146.874 -232725.18 58.8756985 -.11556078 -58.760138 -11.47952 60.1818161
+C -48.702296 316.625814 1.64995278 1609.32678 1608.95506 1.004818 .500146874 -.23272518
+C 2 .5E-3 56.0520126 5.20791534 -61.259928 500280.855 -232736.13 56.0520126 5.20791534 -61.259928 -11.440292 60.1804828
+C -48.740191 316.625795 1.72910923 1609.67255 1608.95506 1.00485787 .500280855 -.23273613
+BLANK CARD ending names for output (none here)
+C 80 .02 61.3263774 -5.4750126 -55.851365 499968.129 -232316.99 61.3263774 -5.4750126 -55.851365 -8.3606667 59.018657
+C -50.65799 316.626716 7.90328979 1608.32331 1608.95506 1.00485137 .499968129 -.23231699
+C Variable max:67.8022815 67.9777456 67.7244575 501371.216 -230406.62 67.8022815 67.9777456 67.7244575 -8.3606667 60.1820406
+C -48.663815 316.626716 7.90328979 1612.25579 1608.95506 1.00491917 .501371216 -.23040662
+C Times of max: .0185 .00525 .012 .005 .01 .0185 .00525 .012 .02 0.0
+C 0.0 .02 .02 .0045 0.0 .1E-2 .005 .01
+C Variable min:-67.822135 -67.74161 -67.961789 499154.6 -232736.13 -67.822135 -67.74161 -67.961789 -11.518226 59.018657
+C -50.65799 316.623113 1.57079633 1605.43816 1608.95506 1.0047 .4991546 -.23273613
+C Times of min: .0085 .01525 .002 .015 .5E-3 .0085 .01525 .002 0.0 .02
+C .02 .009 0.0 .0145 0.0 0.0 .015 .5E-3
+ PRINTER PLOT { No need for vector plotting as all variables are smooth
+ 194 2. 0. 20. BRANCH { Plot limits: (-6.796, 6.798)
+ IM-1 ISA IM-1 ISB IM-1 ISC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 9 subcases of BENCHMARK DCNEW-12 is added 4 May 2006.
+C 6th of 8 data subcases that illustrate Type-56 TEPCO IM (induction machine).
+C For background of the model, see top of 1st subcase. This sixth subcase
+C is a simplification of WSM12TAC.DAT which is like DCN12 (in long form,
+C DCNEW-12) except that the U.M. of that old standard test case has been
+C replaced by a Type-56 IM. The solution here seems to be the same as the 4th
+C subcase except that TACS is involved, and is used to initiate the transient
+C rather than such special capability within the Type-56 IM model itself.
+PRINTED NUMBER WIDTH, 12, 2, { 1 fewer digit than DCN12 so 2 rows are enough
+C ABSOLUTE U.M. DIMENSIONS, 20, 2, 50, 60
+0.0002 0.900
+ 1 3 1 1 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID
+33TM { The only TACS output variable will be this torque TM, which is a step
+88FLG1 = TIMEX .GE. 0.02
+88TM = 1.0-FLG1*0.98358791
+77TM 1.0
+BLANK
+C -------- TRANSMISSION LINES
+ BUSA2 BUSAS2 1.0E-4 10.0 1
+ BUSB2 BUSBS2BUSA2 BUSAS2 1
+ BUSC2 BUSCS2BUSA2 BUSAS2 1
+C --------- CONNECTIVITY OF EMTP FOR ELECTRIC NETWORK
+ BUSAS2 1.0E+6
+ BUSBS2 BUSAS2
+ BUSCS2 BUSAS2
+BLANK card ending all branch cards
+BLANK card ending all (here, nonexistent) switch cards
+C --------- SOURCES FOR INFINITE BUS
+14BUSAS2 3000.0 60.0 0.0 -1.0
+14BUSBS2 3000.0 60.0 -120.0 -1.0
+14BUSCS2 3000.0 60.0 +120.0 -1.0
+C |BUS | | SLIP || TM0 |
+C | A6 | | E10.6 || E10.6 |
+56BUSA2 2.0
+56BUSB2
+56BUSC2
+C CLASS2
+C TY <NP>< RMVA >< RSKV >< FREQ >
+ 0 2 0.72 4.2 60.0
+C Rs || Lsl || Rr || Lrl || Msru || Msrs || Flxs |
+C E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 |
+0.0168163 0.0184649 0.0044898 0.0184649 0.3628347
+C CLASS3
+C | M || D || EMSOM | |NM|P|E|M|
+C | E10.6 || E10.6 || E10.6 | |I4|I2I2I2
+ 4.8361824 0.05425244 1 1 1
+C CLASS4
+C T || TM | |TBUS|
+C E10.6 || E10.6 | | A6 |
+ 0.02 -0.0702041 TM
+ 9999
+C CLASS5
+C | BUS|N|
+C | A4 |I2
+ FINISH { Key word that ends data for this particular (the one and only) IM
+BLANK card ending all source cards
+C Total network loss P-loss by summing injections = 8.732396776993E+05
+C Node Source node voltage Injected source current Injected source power
+C name Rectangular Polar Rectangular Polar P and Q MVA and P.F.
+C BUSAS2 3000. 3000. 194.05326171096 376.33797371872 291079.89256644 564506.96057808
+C 0.0 0.0 -322.4493791001 -58.9600503 483674.06865017 0.5156356
+ BUSAS2BUSA2 { Names of nodes for voltage output
+C Column headings for the 18 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 12 output variables belong to IM (with "IM" an internally-added upper name of pair).
+C Next 1 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time BUSAS2 BUSA2 BUSA2 BUSB2 BUSC2 IM-1 IM-1 IM-1 IM-1
+C BUSAS2 BUSBS2 BUSCS2 P Q ISA ISB
+C
+C IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 TACS
+C ISC IRA IRB IRC WR ANG TQ TM TM
+C 0 0.0 3000. 1784.37507 -194.05026 376.274485 -182.22422 -873204.93 -650128.48 -194.05026 376.274485
+C -182.22422 -147.12317 -161.36673 308.4899 184.725648 1.57079633 -4168.1528 -3965.0683 1.0
+C 1 .2E-3 2991.4767 1835.51059 -217.76576 374.681612 -156.91585 -873758.65 -650481.06 -217.76576 374.681612
+C -156.91585 -146.71413 -161.74471 308.458843 184.725648 1.64468659 -4167.9016 -3965.0683 1.0
+C 2 .4E-3 2965.95523 1874.03852 -240.24413 370.961295 -130.71716 -873055.73 -650212.21 -240.24413 370.961295
+C -130.71716 -146.30323 -162.12329 308.426525 184.725647 1.71857685 -4167.6433 -3965.0683 1.0
+BLANK card ending output requests (node voltages only, here)
+C 4500 0.9 3000. 2139.14389 -18.055352 206.54004 -188.48469 -81125.234 -729968.29 -18.055352 206.54004
+C -188.48469 9.31443983 -15.992732 6.67829219 188.318584 340.24976 -259.2923 -65.075057 .01641209
+C Variable maxima : 3000. 2142.56391 375.961666 376.274485 375.939009 38282.079 -648850.48 375.961666 376.274485
+C 375.939009 12.4231891 24.885902 308.4899 189.143064 340.24976 387.735739 -65.075057 1.0
+C Times of maxima : 0.0 .5834 .011 0.0 .0222 .3106 .0082 .011 0.0
+C .0222 .5642 .308 0.0 .2204 0.9 .309 .0204 0.0
+C Variable minima : -3000. -2142.6794 -376.12582 -375.69165 -376.20297 -873758.65 -769666.51 -376.12582 -375.69165
+C -376.20297 -147.12317 -228.64774 -6.1496539 184.725187 1.57079633 -4168.4668 -3965.0683 .01641209
+C Times of minima : .025 .5584 .0194 .025 .0138 .2E-3 .1896 .0194 .025
+C .0138 0.0 .0548 .3318 .0202 0.0 .0138 0.0 .0202
+ PRINTER PLOT
+ 193 .1 0.0 1.0 IM-1 TQ IM-1 TM { Axis limits: (-4.168, 0.388)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 9 subcases of BENCHMARK DCNEW-12 is added 4 May 2006.
+C 7th of 8 data subcases that illustrate Type-56 TEPCO IM (induction machine).
+C For background of the model, see top of 1st subcase. This seventh case is a
+C simplification of ATPSGIUM.DAT which has no Type-56 IM. Instead, it uses
+C the U.M. to model an induction machine. It establishes the standard of
+C comparison for the following subset which replaces the U.M. by a Type-56 IM.
+C Like the first three subcases, this seventh one involves no transient. The
+C phasor solution merely is continued for one cycle to confirm the sinusoidal
+C steady state. Of the original 33 permanently-closed switches, only 12 could
+C be eliminated without tampering with TACS control system logic, leaving 21.
+C There is a lot of TACS modeling, and this required more storage than the
+C usual 3 * default of List 19. So, NEW LIST SIZES has been added to expand
+C the space for TACS while at the same time reducing a lot of other sizes.
+C Different from previous illustrations, Type-58 S.M. modeling is used.
+NEW LIST SIZES
+ 70 60 50 20 250 50 300 0 0 0
+ 0 20 0 0 0 0 0 0 12500 0
+ 0 0 0
+ 240000
+ABSOLUTE TACS DIMENSIONS
+C 40 170 200 50 120 2500 350 180
+C Expand various TACS Tables on 1 April 2007. Force acceptance
+C without worrying about probable waste that might be involved:
+C 57 256 285 36 85 713 998 171 --- default
+C Tacs table number 1 2 3 4 5 6 7 8
+C Present figure 145 64 32 50 91 2229 212 165
+C Program limit 230 65 80 50 170 8000 420 300
+ 230 65 80 50 170 8000 420 300
+PRINTED NUMBER WIDTH, 12, 2, { 1 fewer digit than DCN12 so 2 rows are enough
+POWER FREQUENCY, 50
+C 0.00025 10. 0.0 0.0 { Note TEPCO Tmax was 10 seconds
+ 0.00025 .020 0.0 0.0 { 1 cycle is enough to verify steady state
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID
+C OUTPUT
+33VT4 PPG4 QQG4
+33VT5 PPG5 QQG5
+C
+C /// G1 S.G. GOVERNOR MODEL G400///
+00WGREF4 +PLUS1 1.0
+99GOVNR4 = -WGREF4+WGFBK4
+C
+99GOV014 = GOVNR4*(1/0.04/0.1)
+99GOV3R4 = GOV034*(1.0/0.1)
+00GOV024 +GOV014 -GOV3R4 1.0
+01GOV034 +GOV024 1.0
+ 1.0
+ 1.0
+99GOV044 = PLUS1-GOV034
+99GOV054 = GOV044*(1.0/0.6)
+99TQTR4 = TQT4*(1.0/0.6)
+00GOV064 +GOV054 -TQTR4 1.0
+01TQT4 +GOV064 1.0 -0.02 1.1
+ 1.0
+ 1.0
+C /// G1 S.G. GOVERNOR MODEL G500///
+00WGREF5 +PLUS1 1.0
+99GOVNR5 = -WGREF5+WGFBK5
+C
+99GOV015 = GOVNR5*(1/0.04/0.1)
+99GOV3R5 = GOV035*(1.0/0.1)
+00GOV025 +GOV015 -GOV3R5 1.0
+01GOV035 +GOV025 1.0
+ 1.0
+ 1.0
+99GOV045 = PLUS1-GOV035
+99GOV055 = GOV045*(1.0/0.6)
+99TQTR5 = TQT5*(1.0/0.6)
+00GOV065 +GOV055 -TQTR5 1.0
+01TQT5 +GOV065 1.0 -0.02 1.1
+ 1.0
+ 1.0
+C
+C /// G1 S.G. AVR MODEL G400///
+C
+77DROOP4 0.0
+77DROP14 0.0
+77DROP24 0.0
+99DROP24 = DROP14*0.04
+99PUFB14 = (PUFBK4+DROP24)*(1.0/0.035)
+99VGFBR4 = VGFBK4*(1.0/0.035)
+00PUFB24 +PUFB14 -VGFBR4 1.0
+99LLIM24 = (TIMEX.LT.0.001)*VGREF4+(TIMEX.GE.0.001)*(-9999.)
+99ULIM24 = (TIMEX.LT.0.001)*VGREF4+(TIMEX.GE.0.001)*9999.
+01VGFBK4 +PUFB24 1.0 LLIM24ULIM24
+ 1.0
+ 1.0
+C
+99AVR014 = VGREF4-VGFBK4
+99LLIM14 = (TIMEX.LT.0.001)*0.0+(TIMEX.GE.0.001)*(-10.0)
+99ULIM14 = (TIMEX.LT.0.001)*0.0+(TIMEX.GE.0.001)*(10.0)
+01AVR024 +AVR014 1.0 LLIM14ULIM14
+ 10.0
+ 1.56
+99AVR034 = AVR014*(10.0*1.56/1.56)
+C
+99AVR044 = AVR024+AVR034+GAIN4
+99AVR054 = AVR044*(1.0/0.2)
+99AVR7R4 = AVR074*(1.0/0.2)
+99AVR064 = AVR054-AVR7R4
+99LLIM34 = (TIMEX.LT.0.001)*GAIN4+(TIMEX.GE.0.001)*(-9999.)
+99ULIM34 = (TIMEX.LT.0.001)*GAIN4+(TIMEX.GE.0.001)*9999.
+01AVR074 +AVR064 1.0 LLIM34ULIM34
+ 1.0
+ 1.0
+99EF4 = AVR074/GAIN4
+C
+C /// G1 S.G. AVR MODEL G500///
+C
+77DROOP5 0.0
+77DROP15 0.0
+77DROP25 0.0
+99DROP25 = DROP15*0.04
+99PUFB15 = (PUFBK5+DROP25)*(1.0/0.035)
+99VGFBR5 = VGFBK5*(1.0/0.035)
+00PUFB25 +PUFB15 -VGFBR5 1.0
+99LLIM25 = (TIMEX.LT.0.001)*VGREF5+(TIMEX.GE.0.001)*(-9999.)
+99ULIM25 = (TIMEX.LT.0.001)*VGREF5+(TIMEX.GE.0.001)*9999.
+01VGFBK5 +PUFB25 1.0 LLIM25ULIM25
+ 1.0
+ 1.0
+C
+99AVR015 = VGREF5-VGFBK5
+99LLIM15 = (TIMEX.LT.0.001)*0.0+(TIMEX.GE.0.001)*(-10.0)
+99ULIM15 = (TIMEX.LT.0.001)*0.0+(TIMEX.GE.0.001)*(10.0)
+01AVR025 +AVR015 1.0 LLIM15ULIM15
+ 10.0
+ 1.56
+99AVR035 = AVR015*(10.0*1.56/1.56)
+C
+99AVR045 = AVR025+AVR035+GAIN5
+99AVR055 = AVR045*(1.0/0.2)
+99AVR7R5 = AVR075*(1.0/0.2)
+99AVR065 = AVR055-AVR7R5
+99LLIM35 = (TIMEX.LT.0.001)*GAIN5+(TIMEX.GE.0.001)*(-9999.)
+99ULIM35 = (TIMEX.LT.0.001)*GAIN5+(TIMEX.GE.0.001)*9999.
+01AVR075 +AVR065 1.0 LLIM35ULIM35
+ 1.0
+ 1.0
+99EF5 = AVR075/GAIN5
+C
+C /// SG BRANCH VOLTAGE MONITOR ///
+ VAB4 +N400A -N400B 1.0
+ VAB5 +N500A -N500B 1.0
+90N400A -1.0
+90N400B -1.0
+90N400C -1.0
+91GSG4A -1.0
+91GSG4B -1.0
+91GSG4C -1.0
+91IM4A -1.0
+91IM4B -1.0
+91IM4C -1.0
+90N500A -1.0
+90N500B -1.0
+90N500C -1.0
+91GSG5A -1.0
+91GSG5B -1.0
+91GSG5C -1.0
+92SGOMG4 -1.0
+92SGOMG5 -1.0
+C /// VOLTAGE FEED BACK G400///
+99PUFBK4 = SQRT(N400A*N400A + N400B*N400B + N400C*N400C)/6600.0
+00VT4 +PUFBK4 1.0
+C /// POWER MONITOR(S.G.) ///
+99QSG4A = GSG4A*(N400B-N400C)
+99QSG4B = GSG4B*(N400C-N400A)
+99QSG4C = GSG4C*(N400A-N400B)
+99QSGEN4 = (QSG4A+QSG4B+QSG4C)/SQRT(3.0)
+99PSGEN4 = N400A*GSG4A+N400B*GSG4B+N400C*GSG4C
+99PPG4 = PSGEN4/1000000.
+99QQG4 = QSGEN4/1000000.
+C /// VOLTAGE FEED BACK G500///
+99PUFBK5 = SQRT(N500A*N500A + N500B*N500B + N500C*N500C)/6600.0
+00VT5 +PUFBK5 1.0
+C /// POWER MONITOR(S.G.) ///
+99QSG5A = GSG5A*(N500B-N500C)
+99QSG5B = GSG5B*(N500C-N500A)
+99QSG5C = GSG5C*(N500A-N500B)
+99QSGEN5 = (QSG5A+QSG5B+QSG5C)/SQRT(3.0)
+99PSGEN5 = N500A*GSG5A+N500B*GSG5B+N500C*GSG5C
+99PPG5 = PSGEN5/1000000.
+99QQG5 = QSGEN5/1000000.
+C
+99QIM1 = IM4A*(N400B-N400C)
+99QIM2 = IM4B*(N400C-N400A)
+99QIM3 = IM4C*(N400A-N400B)
+99QIM = (QIM1+QIM2+QIM3)/SQRT(3.0)
+99PIM = N400A*IM4A+N400B*IM4B+N400C*IM4C
+99PPIM = PIM
+99QQIM = QIM
+33PPG4 PPG5 QQG4 QQG5 PPIM QQIM
+C *************** CONTROLL MODEL BLOCK **************
+C /// G400 ///
+99DROOP4 = (QSGEN4-QSGI4)/625000./VT4
+00DROP14 +DROOP4
+99WGFBK4 = SGOMG4/314.159265
+99RPMSG4 = 30.0*SGOMG4/PI
+C /// G500 ///
+99DROOP5 = (QSGEN5-QSGI5)/625000./VT5
+00DROP15 +DROOP5
+99WGFBK5 = SGOMG5/314.159265
+99RPMSG5 = 30.0*SGOMG5/PI
+C
+90N300A -1.0
+90N300B -1.0
+90N300C -1.0
+91N250A -1.0
+91N250B -1.0
+91N250C -1.0
+C /// POWER MONITOR ACCB(BETWEEN N250 AND N300) ///
+99QCB1 = N250A*(N300B-N300C)
+99QCB2 = N250B*(N300C-N300A)
+99QCB3 = N250C*(N300A-N300B)
+99QACCB = ((QCB1+QCB2+QCB3)/SQRT(3.0))/1000.
+99PACCB = (N300A*N250A+N300B*N250B+N300C*N250C)/1000.
+C 33PACCB
+C 33QACCB
+C /// L300 P & Q ///
+91N300AD -1.0
+91N300BD -1.0
+91N300CD -1.0
+99PACCB3 = (N300A*N300AD+N300B*N300BD+N300C*N300CD)/1000.
+C 33PACCB3
+C /// L400 P & Q ///
+91N400AD -1.0
+91N400BD -1.0
+91N400CD -1.0
+99QCB4 = N400AD*(N400B-N400C)
+99QCB5 = N400BD*(N400C-N400A)
+99QCB6 = N400CD*(N400A-N400B)
+99QACCB4 = ((QCB4+QCB5+QCB6)/SQRT(3.0))/1000.
+99PACCB4 = (N400A*N400AD+N400B*N400BD+N400C*N400CD)/1000.
+C 33PACCB4
+C 33QACCB4
+C /// L500 P & Q ///
+91N500AD -1.0
+91N500BD -1.0
+91N500CD -1.0
+99QCB7 = N500AD*(N500B-N500C)
+99QCB8 = N500BD*(N500C-N500A)
+99QCB9 = N500CD*(N500A-N500B)
+99QACCB5 = ((QCB7+QCB8+QCB9)/SQRT(3.0))/1000000.
+99PACCB5 = (N500A*N500AD+N500B*N500BD+N500C*N500CD)/1000000.
+C 33PACCB5
+C 33QACCB5
+C
+C 33EF4 EF5
+C /// TACS GOV,AVR REF ///
+11VGREF4 1.00758 -1.0
+11VGREF5 1.01249 -1.0
+C IF/AGLINE
+11GAIN4 2.661027 -1.0
+11GAIN5 2.655261 -1.0
+11QSGI4 242000.0 -1.0
+11QSGI5 242000.0 -1.0
+C /// TACS INITIAL CONDITIONS ///
+77PPIM -300000.
+77QQIM -167000.
+77PPG4 .500000
+77QQG4 .242000
+77VGREF4 1.00758
+77VGFBK4 1.00758
+77PUFBK4 1.00758
+77VT4 1.00758
+77VGREF5 1.01249
+77PUFBK5 1.01249
+77VGFBK5 1.01249
+77VT5 1.01249
+77PPG5 .500000
+77QQG5 .242000
+C Vini/0.035
+77VGFBR4 28.78800
+77PUFB14 28.78800
+C GAIN4/0.2:2.661027
+77AVR7R4 13.3051350
+77AVR054 13.3051350
+C GAIN4:
+77AVR044 2.661027
+77AVR074 2.661027
+C G500
+C Vini/0.035
+77VGFBR5 28.9282857
+77PUFB15 28.9282857
+C GAIN5/0.2:2.655261
+77AVR055 13.2763050
+77AVR7R5 13.2763050
+C GAIN5
+77AVR045 2.655261
+77AVR075 2.655261
+C
+77PUFB24 0.0
+77AVR065 0.0
+77RPMSG4 3000.0
+77WGREF4 1.0
+77WGFBK4 1.0
+77SGOMG4 314.159265
+77TQT4 1.0
+77GOVNR4 0.0
+77GOV014 0.0
+77GOV024 0.0
+77GOV034 0.0
+77GOV3R4 0.0
+77GOV044 1.0
+77GOV054 1.66666667
+77GOV064 0.0
+77TQTR4 1.66666667
+77AVR014 0.0
+77AVR024 0.0
+77AVR034 0.0
+77AVR064 0.0
+77EF4 1.0
+77WGREF5 1.0
+77WGFBK5 1.0
+77SGOMG5 314.159265
+77TQT5 1.0
+77PUFB25 0.0
+77RPMSG5 3000.0
+77GOVNR5 0.0
+77GOV015 0.0
+77GOV025 0.0
+77GOV035 0.0
+77GOV3R5 0.0
+77GOV045 1.0
+77GOV055 1.66666667
+77GOV065 0.0
+77TQTR5 1.66666667
+77AVR015 0.0
+77AVR025 0.0
+77AVR035 0.0
+77EF5 1.0
+C
+C ---FOR.IM.No1(1/4)---
+C ====== TIME OF MOTOR TO GEN MODE =====
+77MSLIPM 2.719739
+90BUSMGM -1.0
+99MSLIPM = (1.0-BUSMGM/(2.*PI*50.))*100.
+C 300kW/2*PI*F
+99BUSMSM =954.9
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+BLANK CARD
+C /// NETWORK DATA ///
+$VINTAGE, 1
+C Bus1->Bus2->Bus3->Bus4-><---------R(ohm)<----------L(mH)<---------C(mmF)
+C *** XS *** ( j0.012(pu) : 0.1663869437mH )
+ N100A N200A .1663869437
+ N100B N200B N100A N200A
+ N100C N200C N100A N200A
+C *** XT *** ( j0.075(pu) : 1.039918398mH )
+ N200A N250A 1.039918398
+ N200B N250B N200A N250A
+ N200C N250C N200A N250A
+C *** ZL *** ( 0.2+j0.312(pu) : 0.8712ohm,4.326060536mH )
+ N300A N400A 0.871200000 4.326060536
+ N300B N400B N300A N400A
+ N300C N400C N300A N400A
+C ***OUTSIDE LOAD*** ACCB POWER FLOW P=400KW
+ N300A N300AD 108.8762611
+ N300B N300BDN300A N300AD
+ N300C N300CDN300A N300AD
+C ***INSIDE LOAD***
+ N400A N400AD 986.5321930
+ N400B N400BDN400A N400AD
+ N400C N400CDN400A N400AD
+ N400ADN400A 1727.590765
+ N400BDN400B N400ADN400A
+ N400CDN400C N400ADN400A
+C *** ZL *** ( 0.2+j0.312(pu) : 0.8712ohm,4.326060536mH )
+ N400A N500A 0.871200000 4.326060536
+ N400B N500B N400A N500A
+ N400C N500C N400A N500A
+C ***INSIDE LOAD*** ( )
+ N500A N500AD 177.9930622
+ N500B N500BDN500A N500AD
+ N500C N500CDN500A N500AD
+ N500ADN500A 588.6919231
+ N500BDN500B N500ADN500A
+ N500CDN500C N500ADN500A
+$VINTAGE, 0
+C ---FOR.IM.No1(2/4)---
+C Tm=1.97 :M :2H ==> 7.49E+6 pole:1 1.97*0.375MVA/(2*PI*F)**2
+ BUSMGM 7.49E6
+C -------- FOR MEASUREMENT OF ELECTROMECHANICAL TORQUE
+ BUSMSMBUSMGM 1.0E-8
+BLANK CARD
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+C /// SWITCH DATA ///
+ N250A N300A -1.0 10.0
+ N250B N300B -1.0 10.0
+ N250C N300C -1.0 10.0
+ GSG4A N400A MEASURING
+ GSG4B N400B MEASURING
+ GSG4C N400C MEASURING
+ IM4A N400A MEASURING 1
+ IM4B N400B MEASURING 1
+ IM4C N400C MEASURING 1
+ GSG5A N500A MEASURING
+ GSG5B N500B MEASURING
+ GSG5C N500C MEASURING
+ N300AD MEASURING
+ N300BD MEASURING
+ N300CD MEASURING
+ N400AD MEASURING
+ N400BD MEASURING
+ N400CD MEASURING
+ N500AD MEASURING
+ N500BD MEASURING
+ N500CD MEASURING
+BLANK CARD
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+C /// SOURCE DATA ///
+C ---FOR.IM.No1(3/4)---
+14BUSMSM-1 0.0001 0.0001 .0 -1.0
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.0pu:5388.87743v)
+14N100A 5388.87743 50.0 0.0 -1.0
+14N100B 5388.87743 50.0 -120.0 -1.0
+14N100C 5388.87743 50.0 -240.0 -1.0
+C *** 59 TYPE S.G. G400 ***
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.00758pu)
+58GSG4A 5429.72512 50.0 0.724
+58GSG4B
+58GSG4C
+TOLERANCES 50.0 1.E-4 1.E-5 10
+PARAMETER FITTING 1.0
+C 1-2:NM NUMBER OF MASS ON THE SHAFT
+C 3-4:KM MASS (OF MOTOR OR GENERATOR) NUMBER
+C 5-6:KE EXCITER MASS NUMBER
+C RMVA:VOLT-AMPERE RATING UNIT IS MVA
+C RKV :RATED LINE-TO-LINE VOLTAGE UNIT IS KV
+C AGLINE:VALUE OF THE FIELD CURRENT IN AMPERES WHICH WILL PRODUCE RATED ARMATURE VOLTAGE.
+C S1,S2:SATURATION CURVE
+C ....<--- :NP NUMBER OF POLES<RMVA-----<RKV------<AGLINE---<S1-------<S2-------
+ 1 1 2 0.625 6.6 +2000.
+BLANK CARD Q-AXIS SATURATION DATA IS ZERO SETTING
+C Ra----->XL------->Xd------->Xq------->Xd'------>Xq'------>Xd''----->Xq''----->
+0.0235 0.098 2.33 2.22 0.215 2.22 0.161 0.21
+C Td0'--->Tq0'----->Td0''---->Tq0''---->X0------->Rn------->Xn------->
+1.55 0.0 0.032 0.295 0.1032
+C 1-2:ML MASS NUMBER
+C HICO:The moment of intertia of mass number "ML". Unit is (million pound-feet)/(rad/sec**2))....
+C <EXTRS----<HICO-----<DSR------<DSM------<HSP------<DSD------<BUS--
+ 1 1.0 5.91314E-4
+BLANK CARD TERMINATING MASS CARDS
+$DISABLE
+ 1 14
+ 21
+ 31
+ 51
+$ENABLE
+BLANK CARD
+71EF4
+72TQT4 1
+74SGOMG4 2
+ FINISH
+C *** 59 TYPE S.G. G500 ***
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.01249p.u.)
+58GSG5A 5456.18451 50.0 1.16
+58GSG5B
+58GSG5C
+TOLERANCES 50.0 1.E-4 1.E-5 10
+PARAMETER FITTING 1.0
+C 1-2:NM NUMBER OF MASS ON THE SHAFT
+C 3-4:KM MASS (OF MOTOR OR GENERATOR) NUMBER
+C 5-6:KE EXCITER MASS NUMBER
+C RMVA:VOLT-AMPERE RATING UNIT IS MVA
+C RKV :RATED LINE-TO-LINE VOLTAGE UNIT IS KV
+C AGLINE:VALUE OF THE FIELD CURRENT IN AMPERES WHICH WILL PRODUCE RATED ARMATURE VOLTAGE.
+C S1,S2:SATURATION CURVE
+C ....<--- :NP NUMBER OF POLES<RMVA-----<RKV------<AGLINE---<S1-------<S2-------
+ 1 1 2 0.625 6.6 +2000.
+BLANK CARD Q-AXIS SATURATION DATA IS ZERO SETTING
+C Ra----->XL------->Xd------->Xq------->Xd'------>Xq'------>Xd''----->Xq''----->
+0.0235 0.098 2.33 2.22 0.215 2.22 0.161 0.21
+C Td0'--->Tq0'----->Td0''---->Tq0''---->X0------->Rn------->Xn------->
+1.55 0.0 0.032 0.295 0.1032
+C 1-2:ML MASS NUMBER
+C HICO:The moment of intertia of mass number "ML". Unit is (million pound-feet)/(rad/sec**2))....
+C <EXTRS----<HICO-----<DSR------<DSM------<HSP------<DSD------<BUS--
+ 1 1.0 5.91314E-4
+BLANK CARD TERMINATING MASS CARDS
+$DISABLE
+ 1 14
+ 21
+ 31
+ 51
+$ENABLE
+BLANK CARD
+71EF5
+72TQT5 1
+74SGOMG5 2
+ FINISH
+C --------- UM TYPE 4 (IND.MACH) DATA
+19
+ 1 1
+BLANK CARD ENDING CLASS 1 UM DATA CARDS
+C UM-1 MACHINE TABLE :
+C --I----1----I----2----I----3----I----4----I----5----I----6
+ 4 BUSMGM 1 0.0001
+0. 0.95
+ 0.95
+C slip=2.719739 v=1.00758pu
+ 2.719739 0.0 BUSMSM
+C UM-1 COIL TABLE
+7.202 0.0277 IM4A
+7.202 0.0277 IM4B
+7.202 0.0277 IM4C
+3.601 0.0277
+3.601 0.0277
+3.601 0.0277
+BLANK CARD ending U.M. data
+BLANK CARD ending sources
+C Total network loss P-loss by summing injections = 6.465526932823E+06
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C N250A N300A 2.51255296E-03 -1.55308344E+00 1.55308548E+00 -89.9073 6.76991997E+00 4.18423111E+03
+C N250B N300B -1.34626599E+00 7.74365788E-01 1.55308548E+00 150.0927 6.76991997E+00 4.18423111E+03
+C N250C N300C 1.34375344E+00 7.78717657E-01 1.55308548E+00 30.0927 6.76991997E+00 4.18423111E+03
+C GSG4A N400A 6.17654057E+01 -2.89353708E+01 6.82071918E+01 -25.1018 1.66678584E+05 8.06681202E+04
+C GSG4B N400B -5.59414690E+01 -3.90227250E+01 6.82071918E+01 -145.1018 1.66678584E+05 8.06681202E+04
+C GSG4C N400C -5.82393666E+00 6.79580958E+01 6.82071918E+01 94.8982 1.66678584E+05 8.06681202E+04
+C IM4A N400A -3.70884429E+01 2.00063377E+01 4.21403149E+01 151.6566 -9.99956771E+04 -5.55824247E+04
+C IM4B N400B 3.58702181E+01 2.21163649E+01 4.21403149E+01 31.6566 -9.99956771E+04 -5.55824247E+04
+C IM4C N400C 1.21822477E+00 -4.21227026E+01 4.21403149E+01 -88.3434 -9.99956771E+04 -5.55824247E+04
+C GSG5A N500A 6.16852582E+01 -2.83272148E+01 6.78785841E+01 -24.6656 1.66684112E+05 8.06702138E+04
+C GSG5B N500B -5.53747168E+01 -3.92573933E+01 6.78785841E+01 -144.6656 1.66684112E+05 8.06702138E+04
+C GSG5C N500C -6.31054146E+00 6.75846081E+01 6.78785841E+01 95.3344 1.66684112E+05 8.06702138E+04
+C N300AD 4.94900247E+01 -8.74559074E-06 4.94900247E+01 0.0000 0.00000000E+00 0.00000000E+00
+C N300BD -2.47450199E+01 -4.28596143E+01 4.94900247E+01 -120.0000 0.00000000E+00 0.00000000E+00
+C N300CD -2.47450048E+01 4.28596230E+01 4.94900247E+01 120.0000 0.00000000E+00 0.00000000E+00
+C N400AD 5.62982343E+00 -9.93396450E+00 1.14183432E+01 -60.4587 0.00000000E+00 0.00000000E+00
+C N400BD -1.14179773E+01 9.14121415E-02 1.14183432E+01 179.5413 0.00000000E+00 0.00000000E+00
+C N400CD 5.78815390E+00 9.84255236E+00 1.14183432E+01 59.5413 0.00000000E+00 0.00000000E+00
+C N500AD 3.12448854E+01 -2.88753581E+01 4.25444376E+01 -42.7430 0.00000000E+00 0.00000000E+00
+C N500BD -4.06292364E+01 -1.26211854E+01 4.25444376E+01 -162.7430 0.00000000E+00 0.00000000E+00
+C N500CD 9.38435098E+00 4.14965436E+01 4.25444376E+01 77.2570 0.00000000E+00 0.00000000E+00
+ IM4A { Name just one node for voltage output. This provides variety
+C Column headings for the 16 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 12 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time IM4A IM4A IM4B IM4C TACS TACS TACS TACS TACS
+C N400A N400B N400C VT4 PPG4 QQG4 VT5 PPG5
+C
+C TACS TACS TACS TACS TACS TACS TACS
+C QQG5 PPG4 PPG5 QQG4 QQG5 PPIM QQIM
+C 0 0.0 5429.29164 -37.088443 35.8702181 1.21822477 1.00758 0.5 .242 1.01249 0.5
+C .242 0.5 0.5 .242 .242 -300000. -167000.
+C 1 .25E-3 5408.04051 -38.546862 34.0271397 4.51972263 1.00774091 .497417362 .242085856 1.01270569 .497427839
+C .242085941 .497417362 .497427839 .242085856 .242085941 -300060.54 -166784.28
+C 2 .5E-3 5352.10311 -39.767667 31.973725 7.79394194 1.00765329 .497480094 .242098254 1.01261362 .497474823
+C .242095109 .497480094 .497474823 .242098254 .242095109 -300055.21 -166785.1
+BLANK CARD ending node voltage outputs
+C 80 .02 5429.77262 -37.07804 35.8620845 1.21595556 1.00766919 .497422726 .242679222 1.01261812 .497466894
+C .242802626 .497422726 .497466894 .242679222 .242802626 -299930.2 -166731.59
+C Variable maxima : 5429.77262 42.1298428 42.1257726 42.1525059 1.00774091 0.5 .244128008 1.01270569 0.5
+C .243805907 0.5 0.5 .244128008 .243805907 -299835.77 -166731.59
+C Times of maxima : .02 .0115 .01825 .005 .25E-3 0.0 .009 .25E-3 0.0
+C .00925 0.0 0.0 .009 .00925 .01475 .02
+C Variable minima : -5429.9429 -42.142689 -42.161443 -42.109874 1.00758 .496996734 .242 1.01249 .497205573
+C .242 .496996734 .497205573 .242 .242 -300179.44 -167081.7
+C Times of minima : .01 .0015 .00825 .015 0.0 .01525 0.0 0.0 .01525
+C 0.0 .01525 .01525 0.0 0.0 .00375 .008
+ PRINTER PLOT { No need for vector plotting as all variables are smooth
+ 194 2. 0. 20. BRANCH { Plot limits: (-4.216, 4.215)
+ IM4A N400A IM4B N400B IM4C N400C
+BLANK CARD ending plot cards
+BEGIN NEW DATA CASE
+C 9th of 9 subcases of BENCHMARK DCNEW-12 is added 4 May 2006.
+C 8th of 8 data subcases that illustrate Type-56 TEPCO IM (induction machine).
+C For background of the model, see top of 1st subcase. This eighth case is a
+C simplification of ATPSGI58.DAT which replaces the U.M. of the 7th subcase
+C by a Type-56 IM. Like the 7th subcase, this one involves no transient. The
+C phasor solution merely is continued for one cycle to confirm the sinusoidal
+C steady state. Of the original 33 permanently-closed switches, only 12 could
+C be eliminated without tampering with TACS control system logic, leaving 21.
+C There is a lot of TACS modeling, and this required more storage than the
+C usual 3 * default of List 19. So, NEW LIST SIZES has been added to expand
+C the space for TACS while at the same time reducing a lot of other sizes.
+NEW LIST SIZES
+ 70 60 50 20 250 50 300 0 0 0
+ 0 30 0 0 0 0 0 0 12500 0
+ 0 0 0
+ 240000
+ABSOLUTE TACS DIMENSIONS
+C 40 170 200 50 120 2500 350 180
+C Expand various TACS Tables on 1 April 2007. Force acceptance
+C without worrying about probable waste that might be involved:
+C 57 256 285 36 85 713 998 171 --- default
+C Tacs table number 1 2 3 4 5 6 7 8
+C Present figure 145 64 32 49 89 2190 207 163
+C Program limit 230 65 80 50 170 8000 420 300
+ 230 65 80 50 170 8000 420 300
+PRINTED NUMBER WIDTH, 12, 2, { 1 fewer digit than DCN12 so 2 rows are enough
+POWER FREQUENCY, 50
+C 0.00025 10. 0.0 0.0 { Note TEPCO Tmax was 10 seconds
+ 0.00025 .020 0.0 0.0 { 1 cycle is enough to verify steady state
+ 1 1 1 1 1 -1
+ 5 5 20 20
+TACS HYBRID
+C OUTPUT
+33VT4 PPG4 QQG4
+33VT5 PPG5 QQG5
+C
+C /// G1 S.G. GOVERNOR MODEL G400///
+00WGREF4 +PLUS1 1.0
+99GOVNR4 = -WGREF4+WGFBK4
+C
+99GOV014 = GOVNR4*(1/0.04/0.1)
+99GOV3R4 = GOV034*(1.0/0.1)
+00GOV024 +GOV014 -GOV3R4 1.0
+01GOV034 +GOV024 1.0
+ 1.0
+ 1.0
+99GOV044 = PLUS1-GOV034
+99GOV054 = GOV044*(1.0/0.6)
+99TQTR4 = TQT4*(1.0/0.6)
+00GOV064 +GOV054 -TQTR4 1.0
+01TQT4 +GOV064 1.0 -0.02 1.1
+ 1.0
+ 1.0
+C /// G1 S.G. GOVERNOR MODEL G500///
+00WGREF5 +PLUS1 1.0
+99GOVNR5 = -WGREF5+WGFBK5
+C
+99GOV015 = GOVNR5*(1/0.04/0.1)
+99GOV3R5 = GOV035*(1.0/0.1)
+00GOV025 +GOV015 -GOV3R5 1.0
+01GOV035 +GOV025 1.0
+ 1.0
+ 1.0
+99GOV045 = PLUS1-GOV035
+99GOV055 = GOV045*(1.0/0.6)
+99TQTR5 = TQT5*(1.0/0.6)
+00GOV065 +GOV055 -TQTR5 1.0
+01TQT5 +GOV065 1.0 -0.02 1.1
+ 1.0
+ 1.0
+C
+C /// G1 S.G. AVR MODEL G400///
+C
+77DROOP4 0.0
+77DROP14 0.0
+77DROP24 0.0
+99DROP24 = DROP14*0.04
+99PUFB14 = (PUFBK4+DROP24)*(1.0/0.035)
+99VGFBR4 = VGFBK4*(1.0/0.035)
+00PUFB24 +PUFB14 -VGFBR4 1.0
+99LLIM24 = (TIMEX.LT.0.001)*VGREF4+(TIMEX.GE.0.001)*(-9999.)
+99ULIM24 = (TIMEX.LT.0.001)*VGREF4+(TIMEX.GE.0.001)*9999.
+01VGFBK4 +PUFB24 1.0 LLIM24ULIM24
+ 1.0
+ 1.0
+C
+99AVR014 = VGREF4-VGFBK4
+99LLIM14 = (TIMEX.LT.0.001)*0.0+(TIMEX.GE.0.001)*(-10.0)
+99ULIM14 = (TIMEX.LT.0.001)*0.0+(TIMEX.GE.0.001)*(10.0)
+01AVR024 +AVR014 1.0 LLIM14ULIM14
+ 10.0
+ 1.56
+99AVR034 = AVR014*(10.0*1.56/1.56)
+C
+99AVR044 = AVR024+AVR034+GAIN4
+99AVR054 = AVR044*(1.0/0.2)
+99AVR7R4 = AVR074*(1.0/0.2)
+99AVR064 = AVR054-AVR7R4
+99LLIM34 = (TIMEX.LT.0.001)*GAIN4+(TIMEX.GE.0.001)*(-9999.)
+99ULIM34 = (TIMEX.LT.0.001)*GAIN4+(TIMEX.GE.0.001)*9999.
+01AVR074 +AVR064 1.0 LLIM34ULIM34
+ 1.0
+ 1.0
+99EF4 = AVR074/GAIN4
+C
+C /// G1 S.G. AVR MODEL G500///
+C
+77DROOP5 0.0
+77DROP15 0.0
+77DROP25 0.0
+99DROP25 = DROP15*0.04
+99PUFB15 = (PUFBK5+DROP25)*(1.0/0.035)
+99VGFBR5 = VGFBK5*(1.0/0.035)
+00PUFB25 +PUFB15 -VGFBR5 1.0
+99LLIM25 = (TIMEX.LT.0.001)*VGREF5+(TIMEX.GE.0.001)*(-9999.)
+99ULIM25 = (TIMEX.LT.0.001)*VGREF5+(TIMEX.GE.0.001)*9999.
+01VGFBK5 +PUFB25 1.0 LLIM25ULIM25
+ 1.0
+ 1.0
+C
+99AVR015 = VGREF5-VGFBK5
+99LLIM15 = (TIMEX.LT.0.001)*0.0+(TIMEX.GE.0.001)*(-10.0)
+99ULIM15 = (TIMEX.LT.0.001)*0.0+(TIMEX.GE.0.001)*(10.0)
+01AVR025 +AVR015 1.0 LLIM15ULIM15
+ 10.0
+ 1.56
+99AVR035 = AVR015*(10.0*1.56/1.56)
+C
+99AVR045 = AVR025+AVR035+GAIN5
+99AVR055 = AVR045*(1.0/0.2)
+99AVR7R5 = AVR075*(1.0/0.2)
+99AVR065 = AVR055-AVR7R5
+99LLIM35 = (TIMEX.LT.0.001)*GAIN5+(TIMEX.GE.0.001)*(-9999.)
+99ULIM35 = (TIMEX.LT.0.001)*GAIN5+(TIMEX.GE.0.001)*9999.
+01AVR075 +AVR065 1.0 LLIM35ULIM35
+ 1.0
+ 1.0
+99EF5 = AVR075/GAIN5
+C
+C /// SG BRANCH VOLTAGE MONITOR ///
+ VAB4 +N400A -N400B 1.0
+ VAB5 +N500A -N500B 1.0
+90N400A -1.0
+90N400B -1.0
+90N400C -1.0
+91GSG4A -1.0
+91GSG4B -1.0
+91GSG4C -1.0
+91IM4A -1.0
+91IM4B -1.0
+91IM4C -1.0
+90N500A -1.0
+90N500B -1.0
+90N500C -1.0
+91GSG5A -1.0
+91GSG5B -1.0
+91GSG5C -1.0
+92SGOMG4 -1.0
+92SGOMG5 -1.0
+C /// VOLTAGE FEED BACK G400///
+99PUFBK4 = SQRT(N400A*N400A + N400B*N400B + N400C*N400C)/6600.0
+00VT4 +PUFBK4 1.0
+C /// POWER MONITOR(S.G.) ///
+99QSG4A = GSG4A*(N400B-N400C)
+99QSG4B = GSG4B*(N400C-N400A)
+99QSG4C = GSG4C*(N400A-N400B)
+99QSGEN4 = (QSG4A+QSG4B+QSG4C)/SQRT(3.0)
+99PSGEN4 = N400A*GSG4A+N400B*GSG4B+N400C*GSG4C
+99PPG4 = PSGEN4/1000000.
+99QQG4 = QSGEN4/1000000.
+C /// VOLTAGE FEED BACK G500///
+99PUFBK5 = SQRT(N500A*N500A + N500B*N500B + N500C*N500C)/6600.0
+00VT5 +PUFBK5 1.0
+C /// POWER MONITOR(S.G.) ///
+99QSG5A = GSG5A*(N500B-N500C)
+99QSG5B = GSG5B*(N500C-N500A)
+99QSG5C = GSG5C*(N500A-N500B)
+99QSGEN5 = (QSG5A+QSG5B+QSG5C)/SQRT(3.0)
+99PSGEN5 = N500A*GSG5A+N500B*GSG5B+N500C*GSG5C
+99PPG5 = PSGEN5/1000000.
+99QQG5 = QSGEN5/1000000.
+C
+99QIM1 = IM4A*(N400B-N400C)
+99QIM2 = IM4B*(N400C-N400A)
+99QIM3 = IM4C*(N400A-N400B)
+99QIM = (QIM1+QIM2+QIM3)/SQRT(3.0)
+99PIM = N400A*IM4A+N400B*IM4B+N400C*IM4C
+99PPIM = PIM
+99QQIM = QIM
+33PPG4 PPG5 QQG4 QQG5 PPIM QQIM
+C *************** CONTROLL MODEL BLOCK **************
+C /// G400 ///
+99DROOP4 = (QSGEN4-QSGI4)/625000./VT4
+00DROP14 +DROOP4
+99WGFBK4 = SGOMG4/314.159265
+99RPMSG4 = 30.0*SGOMG4/PI
+C /// G500 ///
+99DROOP5 = (QSGEN5-QSGI5)/625000./VT5
+00DROP15 +DROOP5
+99WGFBK5 = SGOMG5/314.159265
+99RPMSG5 = 30.0*SGOMG5/PI
+C
+90N300A -1.0
+90N300B -1.0
+90N300C -1.0
+91N250A -1.0
+91N250B -1.0
+91N250C -1.0
+C /// POWER MONITOR ACCB(BETWEEN N250 AND N300) ///
+99QCB1 = N250A*(N300B-N300C)
+99QCB2 = N250B*(N300C-N300A)
+99QCB3 = N250C*(N300A-N300B)
+99QACCB = ((QCB1+QCB2+QCB3)/SQRT(3.0))/1000.
+99PACCB = (N300A*N250A+N300B*N250B+N300C*N250C)/1000.
+C 33PACCB
+C 33QACCB
+C /// L300 P & Q ///
+91N300AD -1.0
+91N300BD -1.0
+91N300CD -1.0
+99PACCB3 = (N300A*N300AD+N300B*N300BD+N300C*N300CD)/1000.
+C 33PACCB3
+C /// L400 P & Q ///
+91N400AD -1.0
+91N400BD -1.0
+91N400CD -1.0
+99QCB4 = N400AD*(N400B-N400C)
+99QCB5 = N400BD*(N400C-N400A)
+99QCB6 = N400CD*(N400A-N400B)
+99QACCB4 = ((QCB4+QCB5+QCB6)/SQRT(3.0))/1000.
+99PACCB4 = (N400A*N400AD+N400B*N400BD+N400C*N400CD)/1000.
+C 33PACCB4
+C 33QACCB4
+C /// L500 P & Q ///
+91N500AD -1.0
+91N500BD -1.0
+91N500CD -1.0
+99QCB7 = N500AD*(N500B-N500C)
+99QCB8 = N500BD*(N500C-N500A)
+99QCB9 = N500CD*(N500A-N500B)
+99QACCB5 = ((QCB7+QCB8+QCB9)/SQRT(3.0))/1000000.
+99PACCB5 = (N500A*N500AD+N500B*N500BD+N500C*N500CD)/1000000.
+C 33PACCB5
+C 33QACCB5
+C
+C 33EF4 EF5
+C /// TACS GOV,AVR REF ///
+11VGREF4 1.00758 -1.0
+11VGREF5 1.01249 -1.0
+C IF/AGLINE
+11GAIN4 2.661027 -1.0
+11GAIN5 2.655261 -1.0
+11QSGI4 242000.0 -1.0
+11QSGI5 242000.0 -1.0
+C /// TACS INITIAL CONDITIONS ///
+77PPIM -300000.
+77QQIM -167000.
+77PPG4 .500000
+77QQG4 .242000
+77VGREF4 1.00758
+77VGFBK4 1.00758
+77PUFBK4 1.00758
+77VT4 1.00758
+77VGREF5 1.01249
+77PUFBK5 1.01249
+77VGFBK5 1.01249
+77VT5 1.01249
+77PPG5 .500000
+77QQG5 .242000
+C Vini/0.035
+77VGFBR4 28.78800
+77PUFB14 28.78800
+C GAIN4/0.2:2.661027
+77AVR7R4 13.3051350
+77AVR054 13.3051350
+C GAIN4:
+77AVR044 2.661027
+77AVR074 2.661027
+C G500
+C Vini/0.035
+77VGFBR5 28.9282857
+77PUFB15 28.9282857
+C GAIN5/0.2:2.655261
+77AVR055 13.2763050
+77AVR7R5 13.2763050
+C GAIN5
+77AVR045 2.655261
+77AVR075 2.655261
+C
+77PUFB24 0.0
+77AVR065 0.0
+77RPMSG4 3000.0
+77WGREF4 1.0
+77WGFBK4 1.0
+77SGOMG4 314.159265
+77TQT4 1.0
+77GOVNR4 0.0
+77GOV014 0.0
+77GOV024 0.0
+77GOV034 0.0
+77GOV3R4 0.0
+77GOV044 1.0
+77GOV054 1.66666667
+77GOV064 0.0
+77TQTR4 1.66666667
+77AVR014 0.0
+77AVR024 0.0
+77AVR034 0.0
+77AVR064 0.0
+77EF4 1.0
+77WGREF5 1.0
+77WGFBK5 1.0
+77SGOMG5 314.159265
+77TQT5 1.0
+77PUFB25 0.0
+77RPMSG5 3000.0
+77GOVNR5 0.0
+77GOV015 0.0
+77GOV025 0.0
+77GOV035 0.0
+77GOV3R5 0.0
+77GOV045 1.0
+77GOV055 1.66666667
+77GOV065 0.0
+77TQTR5 1.66666667
+77AVR015 0.0
+77AVR025 0.0
+77AVR035 0.0
+77EF5 1.0
+C
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+BLANK CARD
+C /// NETWORK DATA ///
+$VINTAGE, 1
+C Bus1->Bus2->Bus3->Bus4-><---------R(ohm)<----------L(mH)<---------C(mmF)
+C *** XS *** ( j0.012(pu) : 0.1663869437mH )
+ N100A N200A .1663869437
+ N100B N200B N100A N200A
+ N100C N200C N100A N200A
+C *** XT *** ( j0.075(pu) : 1.039918398mH )
+ N200A N250A 1.039918398
+ N200B N250B N200A N250A
+ N200C N250C N200A N250A
+C *** ZL *** ( 0.2+j0.312(pu) : 0.8712ohm,4.326060536mH )
+ N300A N400A 0.871200000 4.326060536
+ N300B N400B N300A N400A
+ N300C N400C N300A N400A
+C ***OUTSIDE LOAD*** ACCB POWER FLOW P=400KW
+ N300A N300AD 108.8762611
+ N300B N300BDN300A N300AD
+ N300C N300CDN300A N300AD
+C ***INSIDE LOAD***
+ N400A N400AD 986.5321930
+ N400B N400BDN400A N400AD
+ N400C N400CDN400A N400AD
+ N400ADN400A 1727.590765
+ N400BDN400B N400ADN400A
+ N400CDN400C N400ADN400A
+C *** ZL *** ( 0.2+j0.312(pu) : 0.8712ohm,4.326060536mH )
+ N400A N500A 0.871200000 4.326060536
+ N400B N500B N400A N500A
+ N400C N500C N400A N500A
+C ***INSIDE LOAD*** ( )
+ N500A N500AD 177.9930622
+ N500B N500BDN500A N500AD
+ N500C N500CDN500A N500AD
+ N500ADN500A 588.6919231
+ N500BDN500B N500ADN500A
+ N500CDN500C N500ADN500A
+$VINTAGE, 0
+BLANK CARD
+C --*----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
+C /// SWITCH DATA ///
+ N250A N300A -1.0 10.0
+ N250B N300B -1.0 10.0
+ N250C N300C -1.0 10.0
+ GSG4A N400A MEASURING
+ GSG4B N400B MEASURING
+ GSG4C N400C MEASURING
+ IM4A N400A MEASURING 1
+ IM4B N400B MEASURING 1
+ IM4C N400C MEASURING 0
+ GSG5A N500A MEASURING
+ GSG5B N500B MEASURING
+ GSG5C N500C MEASURING
+ N300AD MEASURING
+ N300BD MEASURING
+ N300CD MEASURING
+ N400AD MEASURING
+ N400BD MEASURING
+ N400CD MEASURING
+ N500AD MEASURING
+ N500BD MEASURING
+ N500CD MEASURING
+BLANK CARD
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.0pu:5388.87743v)
+14N100A 5388.87743 50.0 0.0 -1.0
+14N100B 5388.87743 50.0 -120.0 -1.0
+14N100C 5388.87743 50.0 -240.0 -1.0
+C *** 59 TYPE S.G. G400 ***
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.00758pu)
+58GSG4A 5429.72512 50.0 0.724
+58GSG4B 5429.72512 50.0 -119.276
+58GSG4C 5429.72512 50.0 -239.276
+TOLERANCES 50.0 1.E-4 1.E-5 10
+PARAMETER FITTING 1.0
+C ....<--- :NP NUMBER OF POLES<RMVA-----<RKV------<AGLINE---<S1-------<S2-------
+ 1 1 2 0.625 6.6 +2000.
+BLANK CARD Q-AXIS SATURATION DATA IS ZERO SETTING
+C Ra----->XL------->Xd------->Xq------->Xd'------>Xq'------>Xd''----->Xq''----->
+0.0235 0.098 2.33 2.22 0.215 2.22 0.161 0.21
+C Td0'--->Tq0'----->Td0''---->Tq0''---->X0------->Rn------->Xn------->
+1.55 0.0 0.032 0.295 0.1032
+C 1-2:ML MASS NUMBER
+C HICO:The moment of intertia of mass number "ML". Unit is (million pound-feet)/(rad/sec**2))....
+C <EXTRS----<HICO-----<DSR------<DSM------<HSP------<DSD------<BUS--
+ 1 1.0 5.91314E-4
+BLANK CARD TERMINATING MASS CARDS
+BLANK CARD
+71EF4
+72TQT4 1
+74SGOMG4 2
+ FINISH
+C *** 59 TYPE S.G. G500 ***
+C <BUS----<VOLT-----<FREQ-----<ANGLE----(1.01249p.u.)
+58GSG5A 5456.18451 50.0 1.16
+58GSG5B 5456.18451 50.0 -118.84
+58GSG5C 5456.18451 50.0 -238.84
+TOLERANCES 50.0 1.E-4 1.E-5 10
+PARAMETER FITTING 1.0
+C ....<--- :NP NUMBER OF POLES<RMVA-----<RKV------<AGLINE---<S1-------<S2-------
+ 1 1 2 0.625 6.6 +2000.
+BLANK CARD Q-AXIS SATURATION DATA IS ZERO SETTING
+C Ra----->XL------->Xd------->Xq------->Xd'------>Xq'------>Xd''----->Xq''----->
+0.0235 0.098 2.33 2.22 0.215 2.22 0.161 0.21
+C Td0'--->Tq0'----->Td0''---->Tq0''---->X0------->Rn------->Xn------->
+1.55 0.0 0.032 0.295 0.1032
+C 1-2:ML MASS NUMBER
+C HICO:The moment of intertia of mass number "ML". Unit is (million pound-feet)/(rad/sec**2))....
+C <EXTRS----<HICO-----<DSR------<DSM------<HSP------<DSD------<BUS--
+ 1 1.0 5.91314E-4
+BLANK CARD TERMINATING MASS CARDS
+BLANK CARD
+71EF5
+72TQT5 1
+74SGOMG5 2
+ FINISH
+C |BUS | | SLIP || TM0 |
+C | A6 | | E10.6 || E10.6 |
+56IM4A 2.719739 0.0
+56IM4B
+56IM4C
+C CLASS2
+C TY <NP>< RMVA >< RSKV >< FREQ >
+ 0 1 0.375 6.6 50.0
+C Rs || Lsl || Rr || Lrl || Msru || Msrs || Flxs |
+C E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 || E10.6 |
+0.062 0.075 0.031 0.075 2.58
+C CLASS3
+C | M || D || EMSOM | |NM|P|E|M|
+C | E10.6 || E10.6 || E10.6 | |I4|I2I2I2
+ 1.97 0.0 1 1 1
+C CLASS4
+C T || TM | |TBUS|
+C E10.6 || E10.6 | | A6 |
+C 0.02 .000264555
+ 9999
+C CLASS5
+C | BUS|N|
+C | A4 |I2
+ FINISH
+BLANK CARD ending source cards
+C Total network loss P-loss by summing injections = 1.000121334411E+06
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C N250A N300A 2.51255296E-03 -1.55308344E+00 1.55308548E+00 -89.9073 6.76991997E+00 4.18423111E+03
+C N250B N300B -1.34626599E+00 7.74365788E-01 1.55308548E+00 150.0927 6.76991997E+00 4.18423111E+03
+C N250C N300C 1.34375344E+00 7.78717657E-01 1.55308548E+00 30.0927 6.76991997E+00 4.18423111E+03
+C GSG4A N400A 6.17662457E+01 -2.88761587E+01 6.81828545E+01 -25.0564 1.66682896E+05 8.05074090E+04
+C GSG4B N400B -5.58906098E+01 -3.90530585E+01 6.81828545E+01 -145.0564 1.66682896E+05 8.05074090E+04
+C GSG4C N400C -5.87563589E+00 6.79292172E+01 6.81828545E+01 94.9436 1.66682896E+05 8.05074090E+04
+C IM4A N400A -3.70892829E+01 1.99471256E+01 4.21129757E+01 151.7280 -9.99999888E+04 -5.54217136E+04
+C IM4B N400B 3.58193589E+01 2.21466984E+01 4.21129757E+01 31.7280 -9.99999888E+04 -5.54217136E+04
+C IM4C N400C 1.26992399E+00 -4.20938240E+01 4.21129757E+01 -88.2720 -9.99999888E+04 -5.54217136E+04
+C GSG5A N500A 6.16852582E+01 -2.83272148E+01 6.78785841E+01 -24.6656 1.66684112E+05 8.06702138E+04
+C GSG5B N500B -5.53747168E+01 -3.92573933E+01 6.78785841E+01 -144.6656 1.66684112E+05 8.06702138E+04
+C GSG5C N500C -6.31054146E+00 6.75846081E+01 6.78785841E+01 95.3344 1.66684112E+05 8.06702138E+04
+C N300AD 4.94900247E+01 -8.74559074E-06 4.94900247E+01 0.0000 0.00000000E+00 0.00000000E+00
+C N300BD -2.47450199E+01 -4.28596143E+01 4.94900247E+01 -120.0000 0.00000000E+00 0.00000000E+00
+C N300CD -2.47450048E+01 4.28596230E+01 4.94900247E+01 120.0000 0.00000000E+00 0.00000000E+00
+C N400AD 5.62982343E+00 -9.93396450E+00 1.14183432E+01 -60.4587 0.00000000E+00 0.00000000E+00
+C N400BD -1.14179773E+01 9.14121415E-02 1.14183432E+01 179.5413 0.00000000E+00 0.00000000E+00
+C N400CD 5.78815390E+00 9.84255236E+00 1.14183432E+01 59.5413 0.00000000E+00 0.00000000E+00
+C N500AD 3.12448854E+01 -2.88753581E+01 4.25444376E+01 -42.7430 0.00000000E+00 0.00000000E+00
+C N500BD -4.06292364E+01 -1.26211854E+01 4.25444376E+01 -162.7430 0.00000000E+00 0.00000000E+00
+C N500CD 9.38435098E+00 4.14965436E+01 4.25444376E+01 77.2570 0.00000000E+00 0.00000000E+00
+C Column headings for the 26 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 12 output variables belong to IM (with "IM" an internally-added upper name of pair).
+C Next 12 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Step Time IM4A IM4B IM-1 IM-1 IM-1 IM-1 IM-1 IM-1 IM-1
+C N400A N400B P Q ISA ISB ISC IRA IRB
+C
+C IM-1 IM-1 IM-1 IM-1 IM-1 TACS TACS TACS TACS
+C IRC WR ANG TQ TM VT4 PPG4 QQG4 VT5
+C
+C TACS TACS TACS TACS TACS TACS TACS TACS
+C PPG5 QQG5 PPG4 PPG5 QQG4 QQG5 PPIM QQIM
+C 0 0.0 -37.089283 35.8193589 -299999.97 -166265.14 -37.089283 35.8193589 1.26992399 -3.3020869 -30.789557
+C 34.0916437 305.614953 1.57079633 -893.94476 -893.94476 1.00758 0.5 .242 1.01249
+C 0.5 .242 0.5 0.5 .242 .242 -300000. -167000.
+C 1 .25E-3 -38.530914 33.9675872 -299996.42 -166298.13 -38.530914 33.9675872 4.56332653 -3.2222768 -30.827832
+C 34.0501083 305.61495 1.64720007 -893.73559 -893.94476 1.00780767 .497455836 .241616478 1.01275637
+C .497447005 .242093747 .497455836 .497447005 .241616478 .242093747 -299996.42 -166298.13
+C 2 .5E-3 -39.73648 31.9076793 -299887.98 -166278.12 -39.73648 31.9076793 7.82880046 -3.1419208 -30.867462
+C 34.0093826 305.61494 1.7236038 -893.55897 -893.94476 1.00766614 .49747865 .241619001 1.01263793
+C .497469507 .242096958 .49747865 .497469507 .241619001 .242096958 -299887.98 -166278.12
+BLANK card ending names for output variables (none here)
+C 80 .02 -37.095485 35.7780641 -300088.5 -165860.96 -37.095485 35.7780641 1.31742052 3.16334023 -34.036289
+C 30.8729489 305.612633 7.68306549 -893.8068 -893.94476 1.00768225 .49747812 .242225269 1.01263226
+C .49750592 .242807717 .49747812 .49750592 .242225269 .242807717 -300088.5 -165860.96
+C Variable maxima : 42.0472768 42.088666 -299449.52 -165559.49 42.0472768 42.088666 42.0016152 3.16334023 -30.789557
+C 34.0916437 305.614953 7.68306549 -892.13839 -893.94476 1.00780767 0.5 .243498409 1.01275637
+C 0.5 .243680337 0.5 0.5 .243498409 .243680337 -299449.52 -165559.49
+C Times of maxima : .0115 .01825 .0045 .00975 .0115 .01825 .005 .02 0.0
+C 0.0 0.0 .02 .00475 0.0 .25E-3 0.0 .009 .25E-3
+C 0.0 .00925 0.0 0.0 .009 .00925 .0045 .00975
+C Variable minima : -42.060504 -42.029619 -300088.5 -166298.13 -42.060504 -42.029619 -42.056444 -3.3020869 -34.036289
+C 30.8729489 305.612633 1.57079633 -893.94476 -893.94476 1.00758 .497098096 .241616478 1.01249
+C .497272118 .242 .497098096 .497272118 .241616478 .242 -300088.5 -167000.
+C Times of minima : .0015 .00825 .02 .25E-3 .0015 .00825 .015 0.0 .02
+C .02 .02 0.0 0.0 0.0 0.0 .01525 .25E-3 0.0
+C .01525 0.0 .01525 .01525 .25E-3 0.0 .02 0.0
+ PRINTER PLOT { No need for vector plotting as all variables are smooth
+ 194 2. 0. 20. BRANCH { Plot limits: (-4.206, 4.209)
+ IM4A N400A IM4B N400B IM-1 ISC
+C Note the replacement of the 3rd switch current by the 3rd stator current in
+C the preceding plot. They should be the same. Compare with the preceding
+C subcase for which the plot of switch currents had limits (-4.216, 4.215).
+BLANK CARD ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
+Note: ATPIGUM.DAT is being ignored because it does not involve any
+ Type-56 IM modeling.
+
+ IGIMUM.DAT is being ignored for the same reason. This accounts
+ for all 10 of the data cases tested by RUNIM.BAT; 8 have been
+ retained and massaged whereas 2 have been ignored.
diff --git a/benchmarks/dcn13.dat b/benchmarks/dcn13.dat
new file mode 100644
index 0000000..76ba763
--- /dev/null
+++ b/benchmarks/dcn13.dat
@@ -0,0 +1,305 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-13
+C 1st of 6 test cases that generate data for Noda F-dependence of DCN-14
+C Like TAKU12, only here 200 miles long for DC-38 (not 180 as for DC-3).
+C Use only 1 phase of 3-phase, 500-kV line --- Phase 1, plus closest
+C ground wire. This gives Noda approximation for use with DC-37.
+C NODA SETUP, 1, { Request Taku Noda's ARMA model fitter. 1 ==> F-scan printout
+NODA SETUP { Request Taku Noda's ARMA model fitter. No printout of F-scan
+DCN14A.CCC { Output file name (blank requests use of default TAKUNODA.CCC)
+C =============================================================================
+HOMOGENEOUS LINE { declares that this case is for a homogeneous line
+C * This time, only "HOMOGENEOUS LINE" is available. This means
+C homogeneous, frequency-dependent transmission line.
+C * More options will be add in the future, for example, "CORONA LINE"
+C with nonlinear corona branches inside the line model, and
+C "CREAT LINE" with creat capacitances inside the line model.
+C == Fitting Parameters =======================================================
+ 50.0E-6 { time step (if negative, optimum time step request) <<<<<<<<<<<<<
+ 4 12 { min and max orders for voltage deformation matrix [H]
+ 1 6 { min and max orders for characteristic admittance matrix [Y0]
+C 3.0 0.5 2.0 { error constants: EpsA, EpsM1, EpsM2 in percent
+ 1.0, 0.1, 3.0, 5 { error constants: EpsA, EpsM1, EpsM2 in %, MAX ITARATION <<<
+NO SYMMETRY { pair(s) of phases having symmetry (here, none)
+C -----------------------------------------------------------------------------
+C * The fitting parameter part consists of 4 lines.
+C * ARMAfit will determin the best order for each phase in the range
+C specified in the above. The recommended values are :
+C 4, 12 for voltage deformation matrix [H]
+C 1, 6 for characteristic admittance matrix [Y0]
+C Too big order does not give accurate fitting and stability.
+C * The meaning of the error constants above is as follows :
+C EpsA : permitted error in the stage of Least-Square fitting
+C EpsM1 : error determining modal traveling timings
+C EpsM2 : error detecting dominant modes in each phase response
+C The recommended values are :
+C EpsA = 3.0 %, EpsM1 = 0.5 %, EpsM2 = 2.0 %
+C Too small value does not give accurate fitting, because the line
+C parameters given by CABLE PARAMETERS, CABLE CONSTANTS, or LINE
+C CONSTANTS include errors due to many approximations, assumptions,
+C and numerical calculations. An ARMA model does not reproduce
+C a frequency characteristic which cannot exist physically.
+C * If phase #1 and #3 have symmetry regarding to the center line of
+C the line configuration, we can specify as the above, and then
+C ARMAfit will take care of the symmetry to reduce the fitting time.
+C If more than 2 pairs of phases have symmetry, we can specify as
+C follows : 1, 4 2, 5 3, 6 { three pairs.
+C * The next part will be the frequency scan from CABLE PARAMETERS,
+C CABLE CONSTANTS, or LINE CONSTANTS.
+C =============================================================================
+NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
+LINE CONSTANTS
+BRANCH GEN-A 18-A GEN-B 18-B GEN-C 18-C
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data
+C 100. 5000. 180. 1 1
+C 100. 60.00 180. 1 1
+C 100. .01 180. 1 9 10 1
+100. 10. 200. 1 3 10 1
+100. 1.E6 200. 1 1
+BLANK card ending frequency cards of inbedded "LINE CONSTANTS" data
+C At this point, disk file DCN14A.CCC has been created. This is input
+C to Taku Noda's fitter --- a separate Salford DBOS program that will
+C produce data (disk file DCN14A.DAT) for branch cards of DCN14.DAT
+BLANK card ending "LINE CONSTANTS" cases
+BEGIN NEW DATA CASE
+C 2nd of 6 subcases
+C 1994-1995, this was at end of DC-27. This is for a single-phase
+C cable (core and sheath). Cable data came from CESI (see DCNEW-6).
+C NODA SETUP, 1, { Request Taku Noda's ARMA model fitter. 1 ==> F-scan printout
+NODA SETUP { Request Taku Noda's ARMA model fitter. No printout of F-scan
+DCN14B.CCC { Output file name (blank requests use of default TAKUNODA.CCC)
+HOMOGENEOUS LINE { declares that this case is for a homogeneous line
+C -1. { time step (if negative, optimum time step request) <<<<<<<<<<<<<
+ 3.0E-6 { time step (if negative, optimum time step request) <<<<<<<<<<<<<
+ 4 12 { min and max orders for voltage deformation matrix [H]
+ 1 6 { min and max orders for characteristic admittance matrix [Y0]
+C 3.0 0.5 3.0 { error constants: EpsA, EpsM1, EpsM2 in percent --- out 3 Dec 95
+ 1.0, 0.1, 3.0, 5 { error constants: EpsA, EpsM1, EpsM2 in %, MAX ITARATION <<<
+NO SYMMETRY { pair(s) of phases having symmetry (here, none)
+NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
+CABLE CONSTANTS
+CABLE PARAMETERS { Transfer to new (August, 1994) cable constants code
+C MISCELLANEOUS DATA CARD
+ 2 -1 1 0 1 0 0 0
+C CARDS INDICATING NUMBER OF CONDUCTORS PER SC COAXIAL CABLE
+ 2
+C GEOMETRICAL AND PHYSICAL DATA CARDS
+ .0206 .02865 .06395 .0689 .0775
+ 1.775E-8 1. 1. 3.5 9.1E-8 1. 1. 2.25
+C CROSS-SECTION LOCATION CARD
+ 1.05 0.
+C EARTH RESISTIVITY AND FREQUENCY CARDS
+ 300. 1. 6 10 600.
+ 300. 1.E8 600.
+BLANK card ending frequency cards within CABLE PARAMETERS
+C At this point, disk file DCN14B.CCC has been created. This is input
+C to Taku Noda's fitter --- a separate Salford DBOS program that will
+C produce data (disk file DCN14B.DAT) for branch cards of DCN14.DAT
+BLANK card ending "CABLE CONSTANTS" data cases
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-13
+C 3rd of 6 subcases
+C Generate data to represent 180-miles of BPA 500-kV overhead line as studied
+C in DC-3. Output is used within DCNEW-14 which repeats the
+C simulation using Taku Noda's frequency dependence rather than 18 Pi-circuits
+C NODA SETUP, 1, { Request Taku Noda's ARMA model fitter. 1 ==> F-scan printout
+NODA SETUP { Request Taku Noda's ARMA model fitter. No printout of F-scan
+DCN14C.CCC { Output file name (blank requests use of default TAKUNODA.CCC)
+C =============================================================================
+HOMOGENEOUS LINE { declares that this case is for a homogeneous line
+ 50.0E-6 { time step (if negative, optimum time step request) <<<<<<<<<<<<<
+ 4 12 { min and max orders for voltage deformation matrix [H]
+ 1 6 { min and max orders for characteristic admittance matrix [Y0]
+C 3.0 0.5 2.0 { error constants: EpsA, EpsM1, EpsM2 in percent
+ 1.0, 0.1, 3.0, 5 { error constants: EpsA, EpsM1, EpsM2 in %, MAX ITARATION <<<
+ 1, 3 { pair(s) of phases having symmetry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
+C --- 1st, look at the LINE CONSTANTS data for John Day to Lower Monumental
+C This is 500-kV, so use for DC-3 (close enough for government work):
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 -0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 27. 60. 1 138.
+C 27. 6.0 1 138. 7 20
+CABLE CONSTANTS
+CABLE PARAMETERS { Use for overhead line because of LINE CONSTANTS trouble
+ 1 2 1 0 1 0 0 0 0 0 0 0 { transposed line
+ 3 2 2 1
+2.03454E-2 .5550E-2 .49022E-2 0.0 .4572 0.0
+ 3.90E-8 1.0 12.24E-8 1.0 { rho = cross-sec. area * Rdc / l
+ 15.24 15.24 -6.096 23.622 23.622 0.
+ 15.24 15.24 6.096 30.0228 30.0228 -3.93192
+ 30.0228 30.0228 3.93192
+C Next come 2 frequency cards. The first loops over meaningful frequencies for
+C the line length (here 1 Hz through 100 kHz: 10 points/decade for 5 decades)
+C The second is for a single nearly-infinite frequency (here 100 MHz):
+ 27. 1.0 5 10 289682. { 180 miles is about 290 Km
+ 27. 1.E8 289682. { 2nd of 2 is for high freq
+BLANK card ending frequency cards within CABLE PARAMETERS
+C At this point, disk file DCN14C.CCC has been created. This is input
+C to Taku Noda's fitter --- a separate Salford DBOS program that will
+C produce data (disk file DCN14C.DAT) for branch cards used by DCN14.DAT
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 4th of 6 subcases
+C Generate data to represent 138-miles of BPA 500-kV overhead line as studied
+C in DC-31 and DC-41. Output is used within DCNEW-14 which repeats the
+C simulation using Taku Noda's frequency dependence rather than Hauer (DC-41)
+C or Semlyen (DC-31).
+C NODA SETUP, 1, { Request Taku Noda's ARMA model fitter. 1 ==> F-scan printout
+NODA SETUP { Request Taku Noda's ARMA model fitter. No printout of F-scan
+DCN14D.CCC { Output file name (blank requests use of default TAKUNODA.CCC)
+HOMOGENEOUS LINE { declares that this case is for a homogeneous line
+ 20.0E-6 { time step (if negative, optimum time step request) <<<<<<<<<<<<<
+ 4 12 { min and max orders for voltage deformation matrix [H]
+ 1 6 { min and max orders for characteristic admittance matrix [Y0]
+C 3.0 0.5 2.0 { error constants: EpsA, EpsM1, EpsM2 in percent
+ 1.0, 0.1, 3.0, 5 { error constants: EpsA, EpsM1, EpsM2 in %, MAX ITARATION <<<
+ 1, 3 { pair(s) of phases having symmetry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
+C --- 1st, look at the LINE CONSTANTS data for John Day to Lower Monumental
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 -0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 27. 60. 1 138.
+C 27. 6.0 1 138. 7 20
+CABLE CONSTANTS
+CABLE PARAMETERS { Use for overhead line because of LINE CONSTANTS trouble
+ 1 2 1 0 1 0 0 0 0 0 0 0 { transposed line
+ 3 2 2 1
+2.03454E-2 .5550E-2 .49022E-2 0.0 .4572 0.0
+ 3.90E-8 1.0 12.24E-8 1.0 { rho = cross-sec. area * Rdc / l
+ 15.24 15.24 -6.096 23.622 23.622 0.00
+ 15.24 15.24 6.096 30.0228 30.0228 -3.93192
+ 30.0228 30.0228 3.93192
+C Next come 2 frequency cards. The first loops over meaningful frequencies for
+C the line length (here 1 Hz through 100 kHz: 10 points/decade for 5 decades)
+C The second is for a single nearly-infinite frequency (here 100 MHz):
+ 27. 1.0 5 10 222089. { 138 miles is about 222 Km
+ 27. 1.E8 222089. { 2nd of 2 is for high freq
+BLANK card ending frequency cards within CABLE PARAMETERS
+C At this point, disk file DCN14D.CCC has been created. This is input
+C to Taku Noda's fitter --- a separate Salford DBOS program that will
+C produce data (disk file DCN14D.DAT) for branch cards used by DCN14.DAT
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 5th of 6 subcases
+C NODA SETUP, 1, { Request Taku Noda's ARMA model fitter. 1 ==> F-scan printout
+NODA SETUP { Request Taku Noda's fitter, for which data follows
+DCN14E.CCC { Output file name (blank requests use of default TAKUNODA.CCC)
+HOMOGENEOUS LINE { declares that this case is for a homogeneous line
+ 10.0E-6 { time step (if negative, optimum time step request) <<<<<<<<<<<<<
+ 4 12 { min and max orders for voltage deformation matrix [H]
+ 1 6 { min and max orders for characteristic admittance matrix [Y0]
+C 3.0 0.5 2.0 { error constants: EpsA, EpsM1, EpsM2 in percent
+ 1.0, 0.1, 3.0, 5 { error constants: EpsA, EpsM1, EpsM2 in %, MAX ITARATION <<<
+ 1, 6, 2, 5, 3, 4 { pair(s) of phases having symmetry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
+C At this point, we have LINE CONSTANTS data, so would like to use this.
+C But, it is not smooth enough for Noda, so use CABLE PARAMETERS
+C approximate equivalent of the following:
+C COULEE-RAVER 500-KV
+C 1.3636 .05215 4 1.602 -17.1875 49.06
+C 1.3636 .05215 4 1.602 -18.25 48.0
+C 1.3636 .05215 4 1.602 -19.3125 49.06
+C 2.3636 .05215 4 1.602 -27.1875 85.06
+C 2.3636 .05215 4 1.602 -28.25 84.0
+C 2.3636 .05215 4 1.602 -29.3125 85.06
+C 3.3636 .05215 4 1.602 -17.1875 121.06
+C 3.3636 .05215 4 1.602 -18.25 120.0
+C 3.3636 .05215 4 1.602 -19.3125 121.06
+C 4.3636 .05215 4 1.602 17.1875 121.06
+C 4.3636 .05215 4 1.602 18.25 120.0
+C 4.3636 .05215 4 1.602 19.3125 121.06
+C 5.3636 .05215 4 1.602 27.1875 85.06
+C 5.3636 .05215 4 1.602 28.25 84.0
+C 5.3636 .05215 4 1.602 29.3125 85.06
+C 6.3636 .05215 4 1.602 17.1875 49.06
+C 6.3636 .05215 4 1.602 18.25 48.0
+C 6.3636 .05215 4 1.602 19.3125 49.06
+C 0.5 2.61 4 .386 -9.0 163.96
+C 0.5 2.61 4 .386 9.0 163.96
+CABLE CONSTANTS
+BRANCH A1 A2 B1 B2 C1 C2 A'1 A'2 B'1 B'2 C'1 C'2
+CABLE PARAMETERS
+ 1 0 1 0 1 0 0 0 0 0 0 0
+ 6 2 3 1
+2.03454E-2 .5550E-2 .49022E-2 0.0 .521 0.0
+C The data ".521 m" above is average separation of phase wires in the bundle
+C i.e., ( 1.501ft + 1.501ft + 2.125ft ) / 3 = 1.709 ft = .521 m
+C Data on the following card are resistivities and relative permeabilities
+C of phase wires and ground wires
+C 3.8995E-8 1.0 12.24E-8 1.0 { modified rho to match rho in double.dat
+ 2.92E-8 1.0 9.501E-8 1.0
+ 14.846 14.846 -5.563 25.819 25.819 -8.611
+ 36.791 36.791 -5.563 36.791 36.791 5.563
+ 25.818 25.819 8.611 14.846 14.846 5.563
+ 49.975 49.975 -2.743 49.975 49.975 2.743
+ 100. 1.0 6 10 80450. { 50 miles is about 80 Km
+ 100. 1.E8 80450. { 2nd of 2 is for high freq
+BLANK card ending frequency cards within CABLE PARAMETERS
+C At this point, disk file DCN14E.CCC has been created. This is input
+C to Taku Noda's fitter --- a separate Salford DBOS program that will
+C produce data (disk file DCN14E.DAT) for branch cards used by DCN14.DAT
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-13
+C 6th of 6 subcases
+C Generate data to represent 180-miles of BPA 500-kV overhead line as studied
+C in DC-3. Output is used within DCNEW-14 which repeats the
+C simulation using Taku Noda's frequency dependence rather than 18 Pi-circuits
+C NODA SETUP, 1, { Request Taku Noda's ARMA model fitter. 1 ==> F-scan printout
+NODA SETUP { Request Taku Noda's ARMA model fitter. No printout of F-scan
+DCN14F.CCC { Output file name (blank requests use of default TAKUNODA.CCC)
+C =============================================================================
+HOMOGENEOUS LINE { declares that this case is for a homogeneous line
+ 50.0E-6 { time step (if negative, optimum time step request) <<<<<<<<<<<<<
+ 4 12 { min and max orders for voltage deformation matrix [H]
+ 1 6 { min and max orders for characteristic admittance matrix [Y0]
+C 3.0 0.5 2.0 { error constants: EpsA, EpsM1, EpsM2 in percent
+ 1.0, 0.1, 3.0, 5 { error constants: EpsA, EpsM1, EpsM2 in %, MAX ITARATION <<<
+ 1, 3 { pair(s) of phases having symmetry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+NODA SETUP END { Bound of fitter data; begin LINE CONSTANTS data
+LINE CONSTANTS
+UNTRANSPOSED { Request conventional untransposed representation
+C --- 1st comes line geometry for John Day to Lower Monumental
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 -0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ending conductor cards
+C Next come 2 frequency cards. The first loops over meaningful frequencies for
+C the line length (here 1 Hz through 100 kHz: 10 points/decade for 5 decades)
+C The second is for a single nearly-infinite frequency (here 100 MHz):
+ 27. 1.0 1 180. 5 10
+ 27. 1.E8 1 180.
+BLANK card ending frequency cards
+C At this point, disk file DCN14F.CCC has been created. This is input
+C to Taku Noda's fitter --- a separate Salford DBOS program that will
+C produce data (disk file DCN14F.DAT) for branch cards used by DCN14.DAT
+BLANK card ending LINE CONSTANTS data subcases
+
+
+
+
diff --git a/benchmarks/dcn14.dat b/benchmarks/dcn14.dat
new file mode 100644
index 0000000..5755054
--- /dev/null
+++ b/benchmarks/dcn14.dat
@@ -0,0 +1,466 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-14
+C 1st of 7 simulations using Taku Noda frequency dependence
+C Test of Taku Noda's frequency dependence for 500-Kv line energization
+C that was adapted from BENCHMARK DC-37. There is only one phase, so
+C this is a zero-sequence energization. The external Noda file DCN14A.DAT
+C was produced by Taku's fitter as it processed DCN14A.CCC (see DCN13.DAT).
+C DIAGNOSTIC 9 9 9
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .020
+ 1 1 1 1 1 -1
+ 5 5 20 20
+-1SEND REC Noda line DCN14A.DAT SHOW 5 {
+ REC 100. { R = 100 ohms at receiving end
+ PHASOR 1.0 { Extra node for sinusoidal value
+-1SENDOPRECOP Noda line DCN14A.DAT SHOW 5 {
+-1SENDOPREC37 .306 5.82 .012 200.
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 408000. 60. -1.
+14SENDOP 408000. 60.
+C 14PHASOR 171783. 60. -63.03864 -1. Sept, 95
+C 14PHASOR 167553. 60. -63.92034 -1. { 24 Oct 95
+14PHASOR 161945. 60. -65.23648 -1. { 15 Dec 95
+BLANK card ending source data
+C SEND 408000. 408000. 828.88239617701 1454.6091982437 .16909200882E9 .287215850537E8
+C 0.0 0.0 -1195.341747336 -55.2615112 .243849716456E9 43849716.4564481
+C
+C REC 73659.800560567 167553.22961161 -736.5980056057 1675.5322961161 -.14037042377E9
+C -150493.5830348 -63.9203429 1504.9358303482 116.0796571 .19681465346E-8
+C Total network loss P-loss by summing injections = 1.420609591332E+10
+C Step Time RECOP REC REC37 SEND PHASOR SENDOP
+C 0 0.0 0.0 73659.80056 0.0 408000. 73659.70723 0.0
+C 1 .5E-4 0.0 76407.32341 1689.017016 407927.5198 76483.18702 407927.5198
+C 2 .1E-3 0.0 79203.65163 1710.134462 407710.1048 79279.49271 407710.1048
+C 3 .15E-3 0.0 81971.46352 1730.644305 407347.8324 82047.63077 407347.8324
+ 1
+C 400 .02 346718.6299 165886.2597 -124994.318 126078.9337 165889.8045 126078.9337
+C Variable maxima : 735330.9757 167562.0623 829744.565 408000. 167551.9757 407991.9464
+C Times of maxima : .00205 .0196 .0168 0.0 .00295 .01665
+C Variable minima : -736625.335 -167610.097 -883109.582 -407991.946 -167552.349 -407991.946
+C Times of minima : .00625 .0113 .00765 .00835 .0113 .00835
+ 144 2. 0.0 20. PHASOR REC
+ 144 2. 0.0 20. RECOP REC37
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 7 simulations using Taku Noda frequency dependence
+C Test of Taku Noda's frequency dependence for all 3 phases (uncoupled) of
+C 600 meters of 2-wire (core, sheath) cable that feed a GIS substation. This
+C data came from Dr. Ivano Bonfanti of CESI in the summer of 1994. Using
+C JMARTI modeling, the natural oscillation after deenergization is
+C underdamped, and is unstable. Taku Noda stabilized this! The original
+C simulation had dT = 1 usec and Tmax = 60 msec. To speed the simulation
+C we increased the step size and decreased the end-time. See story in the
+C January, 1995, newsletter.
+ 3.E-06 15.E-03 50.
+ 500 3 1 1 1
+C NO LOAD OPENING
+C FEEDING SYSTEM MODEL Xo/Xd = 1.5 IEC OSCILLATIONS
+C
+51SORGERRETEIR 7.697 11.56
+52SORGESRETEIS 0.465 7.70
+53SORGETRETEIT
+ RETEIRCELLAR 33.0 2.27
+ CELLAR 8.55 1.9
+ CELLAR .9425
+ RETEISCELLAS 33.0 2.27
+ CELLAS 8.55 1.9
+ CELLAS .9425
+ RETEITCELLAT 33.0 2.27
+ CELLAT 8.55 1.9
+ CELLAT .9425
+C
+C AUTOTRANSFORMER MODEL (3 WINDs, SINGLE PHASE)
+C
+ TRANSFORMER .554 1560.INTERR6.6E+5
+ 9999
+ 1T1000RTR400R .855 130.3464.1
+ 2TR400R 1.E-62309.4
+ 3TERZIR 1.1E-3 .0803 122.
+ T1000R 109. 4.6E-3
+ T1000RTR400R 513. 5.7E-3
+ TR400R 230. 4.9E-3
+ TR400RTERZIR 324. 2.1E-3
+ TERZIR 88. 5.7E-3
+ TRANSFORMER .554 1560.INTERR6.6E+5
+ 9999
+ 1T1000STR400S .855 130.3464.1
+ 2TR400S 1.E-62309.4
+ 3TERZISTERZFS 1.1E-3 .0803 122.
+ T1000S 109. 4.6E-3
+ T1000STR400S 513. 5.7E-3
+ TR400S 230. 4.9E-3
+ TR400STERZIS 324. 2.1E-3
+ TERZIS 88. 5.7E-3
+ TRANSFORMER .554 1560.INTERR6.6E+5
+ 9999
+ 1T1000TTR400T .855 130.3464.1
+ 2TR400T 1.E-62309.4
+ 3TERZITTERZFT 1.1E-3 .0803 122.
+ T1000T 109. 4.6E-3
+ T1000TTR400T 513. 5.7E-3
+ TR400T 230. 4.9E-3
+ TR400TTERZIT 324. 2.1E-3
+ TERZIT 88. 5.7E-3
+C
+C CONNECTIONS AMONG TERTIARIES
+C
+ TERZIS .59E-3
+ TERZIS 15. 30.E-3
+ TERZFSTERZIT .59E-3
+ TERZIT 15. 30.E-3
+ TERZFTTERZIR 1.3E-3
+ TERZIR 15. 66.E-3
+C --------------------------------------------------------------------
+C
+C 600 m CABLE - SINGLE PIECE
+C
+C PHASE R
+C
+-1T1000RLINEIR Noda line DCN14B.DAT SHOW 5 { 1 of 2
+-2 GUAI2R
+C
+C PHASE S -
+C
+-1T1000SLINEIS Noda line DCN14B.DAT SHOW 5 { 1 of 2
+-2 GUAI2S
+C
+C PHASE T -
+C
+-1T1000TLINEIT Noda line DCN14B.DAT SHOW 5 { 1 of 2
+-2 GUAI2T
+C --------------------------------------------------------------------
+C
+C Overhead line (JMARTI modeling) connected to cable; it is open ended
+C
+-1LINEIRLINEFR 2. 0.00 -2 3
+ 6 0.41594447322080191000E+03
+ -0.670999919281493567E+04 0.115596661243669278E+05 0.993927202053121437E+04
+ 0.437799474890913553E+05 0.615071877212520224E+06 0.484919159975218028E+07
+ 0.126247917999855034E+03 0.125541194952814835E+03 0.131618421672545515E+04
+ 0.303558850109017385E+04 0.221727916316544798E+05 0.187747576728828368E+06
+ 6 0.94711343051337508200E-05
+ 0.627144078924490600E+02 0.380804893328911476E+03 0.174977451831839358E+04
+ 0.348074471363108660E+04 0.113940782723808953E+05 0.101795194165061461E+07
+ 0.870408197488144106E+04 0.491231452549212191E+05 0.122949026800477048E+06
+ 0.101854126642379532E+06 0.193028023946739763E+06 0.116009868370252406E+07
+-2LINEISLINEFS 2. 0.00 -2 3
+ 2 0.23495426137547622100E+03
+ 0.145541128869323956E+03 0.317230857963757554E+05
+ 0.769613905473121634E+02 0.169101759187606077E+05
+ 2 0.94676914504312110400E-05
+ -0.565298558630553235E+05 0.348690682154812385E+07
+ 0.613123991654509772E+07 0.345523296629063972E+07
+-3LINEITLINEFT 2. 0.00 -2 3
+ 2 0.18990790696897147400E+03
+ 0.715297322023219522E+02 0.126259964321454504E+04
+ 0.643449751540205739E+02 0.114317717964364147E+04
+ 1 0.95267726581649492100E-05
+ 0.625041670201623627E+07
+ 0.625078786252403353E+07
+ 0.55923422 -0.70710678 0.44272643
+ 0.00000000 0.00000000 0.00000000
+ 0.61197564 0.00000000 -0.77973496
+ 0.00000000 0.00000000 0.00000000
+ 0.55923422 0.70710678 0.44272643
+ 0.00000000 0.00000000 0.00000000
+C 600 m CABLE SHEAT GROUNDING
+ GUAI2R 1.E-03
+ GUAI2S 1.E-03
+ GUAI2T 1.E-03
+C --------------------------------------------------------------------
+BLANK CARD ENDING BRANCHES
+C SWITCH CARDS
+ RETEIRTR400R -1. 1.E-06 3
+ RETEISTR400S -1. 1.E-06 3
+ RETEITTR400T -1. 1.E-06 3
+BLANK CARD ENDING SWITCHES
+C SOURCE CARDS
+14SORGER 326600. 50. -10. -1. 1.
+14SORGES 326600. 50. -130. -1. 1.
+14SORGET 326600. 50. -250. -1. 1.
+BLANK CARD ENDING SOURCES
+ TR400RTR400STR400TT1000RT1000ST1000TLINEIRLINEISLINEIT
+BLANK CARD ENDING NODE VOLTAGE REQUEST
+ 1441.5 0.0 15. TR400RTR400STR400T
+BLANK CARD ENDING PLOT REQUEST
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-14
+C 3rd of 7 simulations using Taku Noda frequency dependence
+C Test of Taku Noda's frequency dependence for 500-Kv line energization
+C The 18 old (around 1970), cascaded Pi-circuits in DC-3 have been
+C replaced by reference to the external Nodal file DCN14C.DAT (see below).
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .100 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 1 1 1 -1 2
+ 5 5 10 10 20 20 100 100 { Printout
+-1GEN-A 18-A Noda line DCN14C.DAT SHOW 2 { 1 of 3 }
+-2GEN-B 18-B { 2 of 3 }
+-3GEN-C 18-C { 1 of 3 }
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+C Step Time 18-C 18-B 18-A E-A E-B E-C M-C
+C POLE-A POLE-B POLE-C GEN-C
+C *** Switch "E-A " to "POLE-A" closed after 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-4 0.0 0.0 0.0 0.0 -.298225E-4 0.0 0.0 .433681E-20
+C 2 .1E-3 0.0 0.0 0.0 0.0 -.596344E-4 0.0 0.0 .867362E-20
+C 3 .15E-3 0.0 0.0 0.0 0.0 -.892467E-4 0.0 0.0 .130104E-19
+C 4 .2E-3 0.0 0.0 0.0 0.0 -.118807E-3 0.0 0.0 .173472E-19
+C 5 .25E-3 0.0 0.0 0.0 0.0 -.148281E-3 0.0 0.0 .21684E-19
+C 10 .5E-3 0.0 0.0 0.0 0.0 -.29411E-3 0.0 0.0 .433681E-19
+C 20 .1E-2 0.0 -.1156E-19 -.26977E-19 -.26977E-19 -.574156E-3 0.0 0.0 .867362E-19
+C 40 .002 0.0 -.042648677 -.042653832 -.192009171 -.001055655 0.0 0.0 .173472E-18
+BLANK card ending output variables requests (node voltages, here)
+C 2000 0.1 0.0 -.951949629 .9242773228 .0636028753 -.0031009 .0016317758 .0014052925 0.0
+C Variable maxima : 0.0 1.414644389 1.532499021 1.725016394 .0053208621 .0068965948 .0062319486 .0017896749
+C Times of maxima : 0.0 .023 .017 .0131 .01055 .01595 .0179 .006
+C Variable minima : 0.0 -1.96464238 -1.21489183 -1.30405718 -.004371267 -.004528488 -.006055026 -.002037552
+C Times of minima : 0.0 .0156 .0264 .02125 .0161 .022 .01425 .012
+ 144 2. 0.0 20. 18-A 18-B 18-C
+ 14410. 0.0100. 18-A 18-B 18-C
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 7 simulations using Taku Noda frequency dependence
+C Test of Taku Noda's frequency dependence for a fault on a 3-phase line.
+C The old (around 1980) Hauer frequency dependence in DC-41 has been
+C replaced by reference to the external Nodal file DCN14D.DAT (see below).
+C IPLOT has been decreased to unity (DC-41 had 8) so all details can be seen.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 9 output columns)
+ 20.E-6 20.E-3 60. 60.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+ 0GENA BEGINA 14.
+ 0GENB BEGINBGENA BEGINA
+ 0GENC BEGINCGENA BEGINA
+C Taku Noda's 3_phase line follows. See DCNEW-13 for creation of the data:
+C $LISTOFF
+-1BEGINAENDA Noda line DCN14D.DAT SHOW 5 { 1 of 3
+-2BEGINBENDB
+-3BEGINCENDC
+ ENDC 1.E18
+C $LISTON
+BLANK card ending branch cards
+ ENDA .00413 1.0
+BLANK card ending switch cards (just the fault switch, here)
+14GENA 428. 60. -90.0 -1.
+14GENB 428. 60. -210.0 -1.
+14GENC 428. 60. 30.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = -1.013945364547E+01
+C GENC 370.65887281974 428. -.4805293859127 .93518318711039 -3.21188654066 200.12920204162
+C 214. 30.0000000 .80228367970955 120.9195832 -200.1034264941 -0.0160491
+C Step Time ENDC ENDB ENDA BEGINC BEGINB BEGINA GENA GENB GENC
+C
+C 0 0.0 398.546371 -399.93767 -1.9823321 381.890844 -382.3653 .22786864 .26207E-13 -370.65887 370.658873
+C 1 .2E-4 396.229497 -401.60165 1.39573871 379.97479 -384.04649 3.4865286 3.2270134 -372.26184 369.03483
+C 2 .4E-4 394.45906 -403.31911 4.87008728 378.294669 -385.67355 6.81831965 6.45384335 -373.84365 367.389809
+C 3 .6E-4 392.661642 -405.02177 8.33699876 376.588353 -387.28347 10.1450332 9.6803064 -375.40421 365.723902
+ 1
+C 1000 .02 -297.12285 -545.53844 0.0 -90.750721 -331.99965 367.631455 407.052189 -318.06599 -88.986204
+C Variable maxima : 627.936494 580.071468 461.651958 440.730397 458.783591 441.364716 427.998648 427.99985 427.99985
+C Times of maxima : .0145 .00948 .00414 .01532 .01014 .00416 .00416 .00972 .01528
+C Variable minima : -686.76985 -589.84135 -1.9823321 -492.71846 -441.34178 -413.11665 -428. -427.9994 -427.9994
+C Times of minima : .00602 .01928 0.0 .00676 .0014 .01306 .0125 .01806 .00694
+ CALCOMP PLOT
+ 144 2. 0.0 20. ENDC ENDB ENDA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 7 simulations using Taku Noda frequency dependence is 6-phase
+C (double circuit) simulation from Robert Hasibar of BPA. Trivial example.
+C * TRANSIENT STUDY - TEST OF MARTI VS NODA *
+C * LINE MODELS, DOUBLE CCT LINE, 500 KV, 50 MILES *
+C * LINE ENERGIZING TRANSIENT *
+ 10.E-6 50.E-3 60. 0.0
+ 1 3 0 0 1 -1
+ 5 5 20 20 100 100
+51SENDA BUSA 2. 23.
+52SENDB BUSB 3. 60.
+53SENDC BUSC
+C ------- CONNECTION TO ENERGIZED CCT, OPEN AT END
+ 0BUSA A'1 .001
+ 0BUSB B'1 .001
+ 0BUSC C'1 .001
+-1A1 A2 Noda line DCN14E.DAT SHOW 5 { 1 of 6 }
+-2B1 B2
+-3C1 C2
+-4A'1 A'2
+-5B'1 B'2
+-6C'1 C'2
+BLANK
+C ------ SWITCHES CLOSING ON ONE CCT, OPEN ENDED
+ BUSA A1 4.00E-3 10.00 1
+ BUSB B1 4.00E-3 10.00 1
+ BUSC C1 5.00E-3 10.00 1
+BLANK card ending switch cards
+14SENDA 449.0 60. 0.0 -1.
+14SENDB 449.0 60. -120.0 -1.
+14SENDC 449.0 60. 120.0 -1.
+BLANK card ending source cards
+ A1 B1 C1 A'1 B'1 C'1
+ A2 B2 C2 A'2 B'2 C'2
+C First 12 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A1 B1 C1 A'1 B'1 C'1 A2 B2 C2
+C
+C
+C A'2 B'2 C'2 BUSA BUSB BUSC
+C A1 B1 C1
+C 0 0.0 -47.555111 13.2189276 97.5574018 466.992437 -236.49344 -229.76061 -47.534179 13.5543977 98.3705012
+C 469.7859 -237.50992 -230.23688 0.0 0.0 0.0
+C 1 .1E-4 -47.55419 14.3348568 98.5451711 468.117239 -232.73895 -230.38265 -47.199522 14.3042986 98.9495346
+C 470.213646 -235.11275 -231.02914 0.0 0.0 0.0
+BLANK card ending node voltage outputs
+C 5000 .05 480.786349 -277.80271 -196.03887 480.786311 -277.80253 -196.03878 455.975175 -288.37514 -224.15388
+C 509.351281 -277.122 -165.19716 .120430376 .254870926 -.16641182
+C Variable maxima : 539.744875 695.834292 649.312458 539.744347 695.834921 649.310907 681.214671 952.100849 858.770718
+C 679.373497 910.604531 800.998841 1.41622866 1.95524118 2.20395638
+C Times of maxima : .0163 .00734 .00958 .0163 .00734 .00958 .01596 .00702 .00929
+C .01647 .00728 .00985 .01343 .01656 .0079
+C Variable minima : -592.97516 -677.85138 -538.36103 -592.97451 -677.85157 -538.36051 -707.88181 -817.48709 -616.73697
+C -749.2678 -901.75017 -598.57197 -1.0836199 -2.2438628 -1.6491224
+C Times of minima : .00789 .01463 .01798 .00789 .01463 .01798 .0087 .01518 .01794
+C .00808 .01464 .01739 .02072 .00831 .00622
+ 144 .5 3.0 8.0 A2 B2 C2
+ 144 .5 3.0 8.0 A'2 B'2 C'2
+ 144 5. 0.0 50. A2 B2 C2
+ 144 5. 0.0 50. A'2 B'2 C'2
+BLANK .... PLOTS
+BLANK ---- CASE
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-14
+C 6th of 7 simulations using Taku Noda frequency dependence
+C Test of Taku Noda's frequency dependence for 500-Kv line energization
+C The 18 old (around 1970), cascaded Pi-circuits in DC-3 have been
+C replaced by reference to the external Nodal file DCN14F.DAT (see below).
+C This is untransposed. For corresponding transposed, see 3rd subcase
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .100 3000. { XOPT = 3 KHz means reactance in ohms at this freq.
+ 1 1 1 1 1 -1
+ 5 5 10 10 20 20 100 100 { Printout
+-1GEN-A 18-A Noda line DCN14F.DAT SHOW 2 { 1 of 3 }
+-2GEN-B 18-B { 2 of 3 }
+-3GEN-C 18-C { 1 of 3 }
+ 0M-A GEN-A 400.0 { 400 Ohm closing resistors, to be shorted by
+ 0M-B GEN-B 400.0 { breaker poles at times 9.98, 14, and 14
+ 0M-C GEN-C 400.0 { msec, respectively.} 1
+ 0POLE-AM-A 15.0
+ 0POLE-BM-B 15.0
+ 0POLE-CM-C 15.0
+BLANK card ending branch cards
+ E-A POLE-A 0. 20.0 1
+ E-B POLE-B 0.00398 20.0 { Closing will be at 4.0 msec, all computer } 3
+ E-C POLE-C 0.00398 20.0 { This backoff from 4.0 was needed by PRIME } 1
+ M-A GEN-A 0.00998 20.0 { Breaker poles across 400 Ohm closing
+ M-B GEN-B 0.013998 20.0 { resistors. Note artificial opening
+ M-C GEN-C 0.013998 20.0 { time (in fact, there is no opening).
+BLANK card ending switches
+14E-A -1.0 60.0 -90.0
+14E-B -1.0 60.0 -210.0
+14E-C -1.0 60.0 30.0
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+ 144 2. 0.0 20. 18-A 18-B 18-C
+ 144 2. 10. 30. 18-A 18-B 18-C
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-14
+C 7th of 7 simulations uses the 180-mile line of preceding data, but with
+C 15 ohms of source impedance. Illustrate FREQUENCY SCAN as mentioned
+C in the October, 1999, newsletter. Add this data 30 Aug 1999.
+FREQUENCY SCAN, 150., 2., 300., 0, { 160 < f < 300 Hz in 2-Hz increments
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 -1.0 60. { XOPT = 60 Hz means reactance in ohms at this freq.
+ 1 1 1 0 1
+ E-A GEN-A 15.
+ E-B GEN-B 15.
+ E-C GEN-C 15.
+-1GEN-A 18-A Noda line DCN14F.DAT SHOW 2 { 1 of 3 }
+-2GEN-B 18-B { 2 of 3 }
+-3GEN-C 18-C { 1 of 3 }
+BLANK card ending branch cards
+BLANK card ending switches
+ POLAR OUTPUT VARIABLES { 1st of 3 alternatives for output gives mag, angle
+C Preceding is one of 3 alternatives. The other two are, after commented:
+C BOTH POLAR AND RECTANGULAR { Request for (in order): mag, angle, real, imag
+C RECTANGULAR OUTPUT VARIABLES { 3rd of 3 alternative outputs gives real, imag
+14E-A -4.0 60.0 -90.0 -1.
+14E-B -4.0 60.0 -210.0 -1.
+14E-C -4.0 60.0 30.0 -1.
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+ F-SCAN COMPONENTS MAG ANGLE { Access "mag" and "angle" next
+ 14614.160.300. 18-A 18-A
+C 18630. 60.150. CUR CUR { Node voltage at CUR is branch voltage to ground
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+C BENCHMARK DCNEW-14
+C 31 Aug 99. Is preceding 7th subcase correct? Curves are nice and
+C smooth, so it might be. But there are trouble signs as the following
+C data will demonstrate. One does not even need FREQUENCY SCAN to
+C show the trouble. Return to 14F and add phasor solution. It will
+C be found that the total network loss is negative. Also, sinusoidal
+C continuation in the dT loop indicates discontinuity on 1st step. It
+C is not large, but it is there. The graph clearly shows error in
+C the initialization. Why?
+C Total network loss P-loss by summing injections = -1.011651505719E-03
+C Node Source node voltage Injected source current Injected source power
+C name Rectangular Polar Rectangular Polar P and Q MVA and P.F.
+C
+C E-A -.244921271E-15 4.0 -.0062090388311 .00621276289868 -.4301610373E-3 .01242552579737
+C 4.0 90.0000000 -.2150805186E-3 -178.0160729 -.0124180776621 -0.0346191
+C
+C E-B 3.4641016151378 4.0 .00279398778041 .0061561611401 -.6462844164E-3 .0123123222802
+C -2. -30.0000000 .00548561320782 63.0088877 -.012295348567 -0.0524909
+C
+C E-C -3.464101615138 4.0 .00312691699591 .00631003036364 .64793947977E-4 .01262006072728
+C -2. -150.0000000 -.0054807730559 -60.2941694 -.0126198943936 0.0051342
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .020 60. { XOPT = 60 Hz means reactance in ohms at this freq.
+ 1 1 1 1 1
+ E-A GEN-A 15.
+ E-B GEN-B 15.
+ E-C GEN-C 15.
+-1GEN-A 18-A Noda line \data\DCN14F.DAT SHOW 2 { 1 of 3 }
+-2GEN-B 18-B { 2 of 3 }
+-3GEN-C 18-C { 1 of 3 }
+BLANK card ending branch cards
+BLANK card ending switches
+C POLAR OUTPUT VARIABLES { 1st of 3 alternatives for output gives mag, angle
+C Preceding is one of 3 alternatives. The other two are, after commented:
+C BOTH POLAR AND RECTANGULAR { Request for (in order): mag, angle, real, imag
+C RECTANGULAR OUTPUT VARIABLES { 3rd of 3 alternative outputs gives real, imag
+14E-A -4.0 60.0 -90.0 -1.
+14E-B -4.0 60.0 -210.0 -1.
+14E-C -4.0 60.0 30.0 -1.
+BLANK card ending sources
+ 18-C 18-B 18-A
+BLANK card ending output variables requests (node voltages, here)
+ 144 2. 0.0 20. 18-A 18-B 18-C
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcn14a.dat b/benchmarks/dcn14a.dat
new file mode 100644
index 0000000..b892c18
--- /dev/null
+++ b/benchmarks/dcn14a.dat
@@ -0,0 +1,28 @@
+C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
+C
+HOMOGENEOUS LINE
+ 1 5.00000E-05 { number of phase, simulation time step
+C
+C *** VOLTAGE DEFORMATION MATRIX [H]
+C
+C PHASE (1,1)
+ 5.00000E-05 1.24597E-03 { time step, minimum traveling time
+ 4 { optimum order
+ 0 5.969431914164398E-02 1.000000000000000E+00
+ 1 2.289971547980218E-01 -5.985243545688631E-01
+ 2 3.762498447625687E-03 -6.347502688893164E-01
+ 3 -1.457411458419343E-01 1.418271271277303E-01
+ 4 -8.539973950602750E-02 1.536456265335129E-01
+C
+C *** CHARACTERISTIC ADMITTANCE MATRIX [Y0]
+C
+C PHASE (1,1)
+ 5.00000E-05 { time step
+ 4 { optimum order
+ 0 2.614944102110727E-03 1.000000000000000E+00
+ 1 -5.535421233252427E-03 -2.071873741368711E+00
+ 2 2.176948359452540E-03 7.383297450571961E-01
+ 3 1.827868851940790E-03 7.546724356210192E-01
+ 4 -1.084298021598133E-03 -4.211041919965391E-01
+C
+C
diff --git a/benchmarks/dcn14b.dat b/benchmarks/dcn14b.dat
new file mode 100644
index 0000000..9115133
--- /dev/null
+++ b/benchmarks/dcn14b.dat
@@ -0,0 +1,77 @@
+C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
+C
+HOMOGENEOUS LINE
+ 2 3.00000E-06 { number of phase, simulation time step
+C
+C *** VOLTAGE DEFORMATION MATRIX [H]
+C
+C PHASE (1,1)
+ 3.00000E-06 6.75805E-06 { time step, minimum traveling time
+ 4 { optimum order
+ 0 7.286049449792022E-04 1.000000000000000E+00
+ 1 9.906262384163144E-01 -4.176351660398795E-03
+ 5 -7.373001706215802E-01 -1.119114441375865E-03
+ 6 -2.938106476069763E-03 3.194032706542605E-04
+ 7 -7.978731493703800E-04 -7.446053117704493E-01
+C
+C PHASE (1,2)
+ 3.00000E-06 6.75805E-06 { time step, minimum traveling time
+ 8 { optimum order
+ 0 4.046754522503577E-03 1.000000000000000E+00
+ 1 -9.969170216901739E-01 -2.306020096476430E+00
+ 2 2.280757828006307E+00 1.493341523851259E+00
+ 3 -1.479584912487246E+00 4.211252852435258E-02
+ 5 3.074953921470504E-01 -4.159037605810046E-01
+ 6 -7.280006677887518E-02 2.812879244985315E-01
+ 7 4.065780940365870E-01 -1.282938858666938E-01
+ 8 -9.736179650260008E-01 5.211741372806977E-02
+ 9 5.240418972746891E-01 -1.864142010977771E-02
+C
+C PHASE (2,1)
+NO RESPONSE
+C
+C PHASE (2,2)
+ 3.00000E-06 6.75805E-06 { time step, minimum traveling time
+ 8 { optimum order
+ 0 5.350262997980100E-03 1.000000000000000E+00
+ 1 -1.395681110784445E-02 -3.440851233533544E-01
+ 2 1.326166915384821E-02 -9.422265136728691E-01
+ 3 -4.168173211843362E-03 3.636967840895941E-01
+ 5 -9.971258034764495E-03 -3.860830890183709E-02
+ 6 7.092036781583107E-02 1.178156965846012E-02
+ 7 5.328145292137466E-01 2.250885115296594E-02
+ 8 -6.070387276387101E-02 -3.265606762258792E-02
+ 9 -4.706488084757210E-01 2.255960549925552E-02
+C
+C *** CHARACTERISTIC ADMITTANCE MATRIX [Y0]
+C
+C PHASE (1,1)
+ 3.00000E-06 { time step
+ 5 { optimum order
+ 0 3.859542086576558E-02 1.000000000000000E+00
+ 1 -1.110332759098080E-01 -2.871951390491078E+00
+ 2 7.112978820441651E-02 1.832093247528086E+00
+ 3 6.693288919989086E-02 1.737752651066777E+00
+ 4 -9.609912638600680E-02 -2.483978126630408E+00
+ 5 3.047430402604619E-02 7.860836185842369E-01
+C
+C PHASE (1,2)
+ 3.00000E-06 { time step
+ 5 { optimum order
+ 0 -3.859508433897017E-02 1.000000000000000E+00
+ 1 1.112169949748113E-01 -2.876786331606199E+00
+ 2 -7.162342507198295E-02 1.844983338516370E+00
+ 3 -6.654070346806802E-02 1.727647969083082E+00
+ 4 9.605911324538668E-02 -2.483099568000865E+00
+ 5 -3.051689534122890E-02 7.872545920698329E-01
+C
+C PHASE (2,2)
+ 3.00000E-06 { time step
+ 4 { optimum order
+ 0 6.704851552109256E-02 1.000000000000000E+00
+ 1 -1.296043867660216E-01 -1.916319805628241E+00
+ 2 4.306150700206237E-03 3.773516364302083E-02
+ 3 1.120161398584670E-01 1.673773569348989E+00
+ 4 -5.376641914874569E-02 -7.951889076587744E-01
+C
+C
diff --git a/benchmarks/dcn14c.dat b/benchmarks/dcn14c.dat
new file mode 100644
index 0000000..5a4c437
--- /dev/null
+++ b/benchmarks/dcn14c.dat
@@ -0,0 +1,120 @@
+C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
+C
+HOMOGENEOUS LINE
+ 3 5.00000E-05 { number of phase, simulation time step
+C
+C *** VOLTAGE DEFORMATION MATRIX [H]
+C
+C PHASE (1,1)
+ 5.00000E-05 1.02333E-03 { time step, minimum traveling time
+ 4 { optimum order
+ 0 1.443372099351530E-02 1.000000000000000E+00
+ 1 5.674707936439972E-01 -2.213712948218999E+00
+ 2 -1.216877824615872E+00 1.411155508329739E+00
+ 3 7.464684138440453E-01 -1.022152523789019E-01
+ 4 -1.103264678961453E-01 -9.405063431077212E-02
+C
+C PHASE (1,2)
+ 5.00000E-05 1.02333E-03 { time step, minimum traveling time
+ 7 { optimum order
+ 0 -2.791461642069847E-03 1.000000000000000E+00
+ 1 -2.954728928897438E-01 -3.969559300014527E+00
+ 2 1.251332380697392E+00 5.922131236667756E+00
+ 3 -1.918568302607040E+00 -3.788220233081747E+00
+ 4 1.156352059341086E+00 5.057271572500741E-01
+ 5 1.965868241862606E-02 5.389878915997826E-01
+ 6 -2.983846376517990E-01 -2.355529857438397E-01
+ 7 8.787417233413977E-02 2.648623735673994E-02
+C
+C PHASE (1,3)
+ 5.00000E-05 1.02333E-03 { time step, minimum traveling time
+ 7 { optimum order
+ 0 -2.791460714097602E-03 1.000000000000000E+00
+ 1 -2.954728965445490E-01 -3.969558722504415E+00
+ 2 1.251332209744265E+00 5.922129352743413E+00
+ 3 -1.918567702168378E+00 -3.788218087499293E+00
+ 4 1.156351361374158E+00 5.057262906071653E-01
+ 5 1.965891702885150E-02 5.389878284107508E-01
+ 6 -2.983845445280063E-01 -2.355528867216630E-01
+ 7 8.787411580834784E-02 2.648622899860549E-02
+C
+C PHASE (2,1)
+ 5.00000E-05 1.02333E-03 { time step, minimum traveling time
+ 7 { optimum order
+ 0 -2.791461386549456E-03 1.000000000000000E+00
+ 1 -2.954728937207253E-01 -3.969559246501973E+00
+ 2 1.251332365293889E+00 5.922131076751647E+00
+ 3 -1.918568251693904E+00 -3.788220084080545E+00
+ 4 1.156352011187948E+00 5.057271420501863E-01
+ 5 1.965868228979945E-02 5.389878446623542E-01
+ 6 -2.983846163726222E-01 -2.355529636890973E-01
+ 7 8.787416440275590E-02 2.648623484172534E-02
+C
+C PHASE (2,2)
+ 5.00000E-05 1.02333E-03 { time step, minimum traveling time
+ 4 { optimum order
+ 0 1.443372099395003E-02 1.000000000000000E+00
+ 1 5.674707936420907E-01 -2.213712948295643E+00
+ 2 -1.216877824659896E+00 1.411155508440316E+00
+ 3 7.464684139031922E-01 -1.022152524074021E-01
+ 4 -1.103264679107750E-01 -9.405063431719396E-02
+C
+C PHASE (2,3)
+SAME AS 2, 1
+C
+C PHASE (3,1)
+SAME AS 1, 3
+C
+C PHASE (3,2)
+SAME AS 1, 2
+C
+C PHASE (3,3)
+SAME AS 1, 1
+C
+C *** CHARACTERISTIC ADMITTANCE MATRIX [Y0]
+C
+C PHASE (1,1)
+ 5.00000E-05 { time step
+ 4 { optimum order
+ 0 3.055262298341744E-03 1.000000000000000E+00
+ 1 -9.165137077555383E-03 -2.985938931099106E+00
+ 2 9.275825886473464E-03 2.997521942120895E+00
+ 3 -3.277191155910626E-03 -1.037176549371371E+00
+ 4 1.112400567632687E-04 2.559355003902293E-02
+C
+C PHASE (1,2)
+ 5.00000E-05 { time step
+ 5 { optimum order
+ 0 -5.142589432561739E-04 1.000000000000000E+00
+ 1 1.646134446341264E-03 -3.251717047763426E+00
+ 2 -1.639034202449516E-03 3.353063568385085E+00
+ 3 1.780243579355588E-04 -5.416854826552239E-01
+ 4 5.478096450157691E-04 -9.689459919827055E-01
+ 5 -2.186753035996956E-04 4.092849548087791E-01
+C
+C PHASE (1,3)
+ 5.00000E-05 { time step
+ 5 { optimum order
+ 0 -5.142589459420627E-04 1.000000000000000E+00
+ 1 1.646134630414743E-03 -3.251717386216864E+00
+ 2 -1.639034728620719E-03 3.353064587107179E+00
+ 3 1.780248650769529E-04 -5.416865171521971E-01
+ 4 5.478094863645750E-04 -9.689456253198268E-01
+ 5 -2.186753073062834E-04 4.092849423742300E-01
+C
+C PHASE (2,2)
+ 5.00000E-05 { time step
+ 4 { optimum order
+ 0 3.055262298301144E-03 1.000000000000000E+00
+ 1 -9.165137099811368E-03 -2.985938938412141E+00
+ 2 9.275825949523170E-03 2.997521962709356E+00
+ 3 -3.277191215104367E-03 -1.037176568618670E+00
+ 4 1.112400752038880E-04 2.559355601089206E-02
+C
+C PHASE (2,3)
+SAME AS 1, 2
+C
+C PHASE (3,3)
+SAME AS 1, 1
+C
+C
diff --git a/benchmarks/dcn14d.dat b/benchmarks/dcn14d.dat
new file mode 100644
index 0000000..16732ed
--- /dev/null
+++ b/benchmarks/dcn14d.dat
@@ -0,0 +1,125 @@
+C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
+C
+HOMOGENEOUS LINE
+ 3 2.00000E-05 { number of phase, simulation time step
+C
+C *** VOLTAGE DEFORMATION MATRIX [H]
+C
+C PHASE (1,1)
+ 2.00000E-05 7.65070E-04 { time step, minimum traveling time
+ 5 { optimum order
+ 0 1.634680122743764E-02 1.000000000000000E+00
+ 1 5.206331712485042E-01 -2.923063615032820E+00
+ 2 -1.556744476718157E+00 3.090441022286113E+00
+ 3 1.636943269932634E+00 -1.397256455092740E+00
+ 4 -7.465587020332506E-01 2.383698858324649E-01
+ 5 1.295668710812874E-01 -8.302822274442364E-03
+C
+C PHASE (1,2)
+ 2.00000E-05 7.65070E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 -7.014731601185900E-03 1.000000000000000E+00
+ 1 -2.526427879600038E-01 -4.991376507522455E+00
+ 2 1.359122143233154E+00 9.714963411447028E+00
+ 3 -2.651909534824436E+00 -8.455802590758138E+00
+ 4 2.188430448126846E+00 1.403890251884100E+00
+ 5 -1.821402756442904E-01 3.349278231307157E+00
+ 6 -9.499887702177091E-01 -2.818613065781518E+00
+ 7 6.221087581680896E-01 9.026986324514164E-01
+ 8 -1.259652492804643E-01 -1.050383630171599E-01
+C
+C PHASE (1,3)
+ 2.00000E-05 7.65070E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 -7.014852932180746E-03 1.000000000000000E+00
+ 1 -2.526413138742912E-01 -4.991490997076841E+00
+ 2 1.359150000027424E+00 9.715463294920708E+00
+ 3 -2.652044498612255E+00 -8.456628213253694E+00
+ 4 2.188653172257823E+00 1.404468123900867E+00
+ 5 -1.822832754490423E-01 3.349228266220471E+00
+ 6 -9.499918884648708E-01 -2.818768176779127E+00
+ 7 6.221514277731158E-01 9.027775002549259E-01
+ 8 -1.259787707257214E-01 -1.050497981766758E-01
+C
+C PHASE (2,1)
+ 2.00000E-05 7.65070E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 -7.014875061589763E-03 1.000000000000000E+00
+ 1 -2.526416637581949E-01 -4.991448792389100E+00
+ 2 1.359139781818117E+00 9.715269221995056E+00
+ 3 -2.651992694805142E+00 -8.456283834549016E+00
+ 4 2.188560653776896E+00 1.404190559030579E+00
+ 5 -1.822132442849975E-01 3.349298458703469E+00
+ 6 -9.500036654121499E-01 -2.818732432230227E+00
+ 7 6.221398785435693E-01 9.027528038069907E-01
+ 8 -1.259741708165086E-01 -1.050459843574403E-01
+C
+C PHASE (2,2)
+ 2.00000E-05 7.65070E-04 { time step, minimum traveling time
+ 5 { optimum order
+ 0 1.634680122745785E-02 1.000000000000000E+00
+ 1 5.206331712483433E-01 -2.923063615040727E+00
+ 2 -1.556744476722558E+00 3.090441022290071E+00
+ 3 1.636943269934621E+00 -1.397256455081961E+00
+ 4 -7.465587020276071E-01 2.383698858260282E-01
+ 5 1.295668710781211E-01 -8.302822274914965E-03
+C
+C PHASE (2,3)
+SAME AS 2, 1
+C
+C PHASE (3,1)
+SAME AS 1, 3
+C
+C PHASE (3,2)
+SAME AS 1, 2
+C
+C PHASE (3,3)
+SAME AS 1, 1
+C
+C *** CHARACTERISTIC ADMITTANCE MATRIX [Y0]
+C
+C PHASE (1,1)
+ 2.00000E-05 { time step
+ 4 { optimum order
+ 0 3.075933692463484E-03 1.000000000000000E+00
+ 1 -9.423080431921643E-03 -3.051075450094170E+00
+ 2 9.885804560618088E-03 3.178487844288851E+00
+ 3 -3.806048116449330E-03 -1.203725760917014E+00
+ 4 2.673902978187516E-04 7.631336988962403E-02
+C
+C PHASE (1,2)
+ 2.00000E-05 { time step
+ 5 { optimum order
+ 0 -4.984686936165751E-04 1.000000000000000E+00
+ 1 1.550995282371442E-03 -3.160234840540234E+00
+ 2 -1.449840443748530E-03 3.060859930065863E+00
+ 3 2.505680685735637E-05 -2.164636434491773E-01
+ 4 5.877698893949631E-04 -1.108711897165093E+00
+ 5 -2.155128412584812E-04 4.245504511267935E-01
+C
+C PHASE (1,3)
+ 2.00000E-05 { time step
+ 5 { optimum order
+ 0 -4.984686847399497E-04 1.000000000000000E+00
+ 1 1.550994971005756E-03 -3.160234272276718E+00
+ 2 -1.449839494813657E-03 3.060858052835369E+00
+ 3 2.505574081421364E-05 -2.164614247127801E-01
+ 4 5.877703758919583E-04 -1.108712976194292E+00
+ 5 -2.155129081581439E-04 4.245506203865269E-01
+C
+C PHASE (2,2)
+ 2.00000E-05 { time step
+ 4 { optimum order
+ 0 3.075933692400385E-03 1.000000000000000E+00
+ 1 -9.423080459930639E-03 -3.051075459234357E+00
+ 2 9.885804634453481E-03 3.178487868166087E+00
+ 3 -3.806048179905128E-03 -1.203725781274680E+00
+ 4 2.673903155112521E-04 7.631337551023810E-02
+C
+C PHASE (2,3)
+SAME AS 1, 2
+C
+C PHASE (3,3)
+SAME AS 1, 1
+C
+C
diff --git a/benchmarks/dcn14e.dat b/benchmarks/dcn14e.dat
new file mode 100644
index 0000000..9196b4a
--- /dev/null
+++ b/benchmarks/dcn14e.dat
@@ -0,0 +1,422 @@
+C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
+C
+HOMOGENEOUS LINE
+ 6 1.00000E-05 { number of phase, simulation time step
+C
+C *** VOLTAGE DEFORMATION MATRIX [H]
+C
+C PHASE (1,1)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 5 { optimum order
+ 0 -1.820449358845869E-02 1.000000000000000E+00
+ 1 5.750592530603305E-01 -1.304988217890632E+00
+ 2 -5.395055881438786E-01 -2.956559642042579E-01
+ 3 -4.711408144619113E-01 9.294011226417515E-01
+ 4 6.625704288641090E-01 -3.904245063588455E-01
+ 5 -1.973184906856412E-01 7.316526857293001E-02
+C
+C PHASE (1,2)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 -9.211288200221253E-03 1.000000000000000E+00
+ 1 -1.417244058922043E-01 -4.508645700553578E+00
+ 2 8.014089429365220E-01 7.614359007854310E+00
+ 3 -1.565034904886514E+00 -5.171721901207178E+00
+ 4 1.384102826084890E+00 -2.212949450310290E-01
+ 5 -4.383859807220958E-01 2.136027138340319E+00
+ 6 -1.261162699550283E-01 -8.967558981146823E-01
+ 7 1.134611914365543E-01 3.585754238771107E-03
+ 8 -1.850011080190381E-02 4.444654447119257E-02
+C
+C PHASE (1,3)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 1.691710594325642E-03 1.000000000000000E+00
+ 1 -9.664774269656204E-02 -5.094427927847075E+00
+ 2 4.614567373155429E-01 1.081229974522734E+01
+ 3 -9.459440845115551E-01 -1.246001759907420E+01
+ 4 1.060572610255421E+00 8.670163774404315E+00
+ 5 -7.242486016121505E-01 -4.008450650157182E+00
+ 6 3.291338377581127E-01 1.403163126155819E+00
+ 7 -1.038317992025898E-01 -3.743441072312586E-01
+ 8 1.781733209945929E-02 5.161363860398079E-02
+C
+C PHASE (1,4)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 7 { optimum order
+ 0 6.010555813858434E-03 1.000000000000000E+00
+ 1 -6.391923497246116E-02 -3.018219017565491E+00
+ 2 8.903648845903421E-02 2.231442489415442E+00
+ 3 1.216673216887752E-01 1.603376398251159E+00
+ 4 -3.272059103061751E-01 -2.928189585759270E+00
+ 5 1.936122648073129E-01 1.143016835443267E+00
+ 6 3.982849923798457E-03 3.721441281773494E-02
+ 7 -2.318433541239298E-02 -6.864149353667948E-02
+C
+C PHASE (1,5)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 6 { optimum order
+ 0 1.745451513885777E-02 1.000000000000000E+00
+ 1 -1.408964668979102E-01 -2.926765017320501E+00
+ 2 2.053298319854510E-01 2.382266769323588E+00
+ 3 1.303376914760308E-01 7.079790313864891E-01
+ 4 -4.784754819194331E-01 -2.043645891645196E+00
+ 5 3.443692691264522E-01 1.069516845332284E+00
+ 6 -7.811935881829171E-02 -1.893503903918445E-01
+C
+C PHASE (1,6)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 1.076773797534795E-02 1.000000000000000E+00
+ 1 -3.082861389179323E-01 -4.036899324080916E+00
+ 2 1.036363491800832E+00 5.481736549599319E+00
+ 3 -1.029325423833567E+00 -1.235189728355480E+00
+ 4 -4.931472440809845E-01 -4.050617593149470E+00
+ 5 1.721484803252787E+00 4.275449323793868E+00
+ 6 -1.285271272281329E+00 -1.620510189923721E+00
+ 7 3.789843487045305E-01 1.609703343860601E-01
+ 8 -3.157030261969317E-02 2.506062769807806E-02
+C
+C PHASE (2,1)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 -1.116924622191583E-02 1.000000000000000E+00
+ 1 -2.286213312429682E-01 -4.639055694613412E+00
+ 2 1.258732833626315E+00 8.308418894594341E+00
+ 3 -2.498926526249618E+00 -6.660267686475108E+00
+ 4 2.354858713231138E+00 1.381504198073491E+00
+ 5 -9.782856153972982E-01 1.296084890090691E+00
+ 6 2.776238430522800E-02 -7.804800033231928E-01
+ 7 9.183614271653773E-02 7.090384837820783E-02
+ 8 -1.618735476742084E-02 2.289155326732724E-02
+C
+C PHASE (2,2)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 4 { optimum order
+ 0 -1.870077114995310E-02 1.000000000000000E+00
+ 1 8.447550466740950E-01 -1.358409234431250E+00
+ 2 -1.040630028289381E+00 8.360881545012997E-03
+ 3 -1.177369707329462E-01 3.385043005980365E-01
+ 4 3.397795005477427E-01 1.906259332314379E-02
+C
+C PHASE (2,3)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 -7.126192723265815E-03 1.000000000000000E+00
+ 1 -6.940915676233129E-02 -4.060900871997705E+00
+ 2 4.024879696076717E-01 5.328824683615105E+00
+ 3 -7.095222395561835E-01 -5.674300628316951E-01
+ 4 4.264035302418893E-01 -4.630271805273972E+00
+ 5 1.680988199147881E-01 3.763777136952146E+00
+ 6 -3.476892445025494E-01 -4.887939381796398E-01
+ 7 1.610249275574338E-01 -5.021479548295720E-01
+ 8 -2.426841377745294E-02 1.569428125453229E-01
+C
+C PHASE (2,4)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 6 { optimum order
+ 0 -9.823632738044446E-04 1.000000000000000E+00
+ 1 -5.847277777141779E-02 -4.062522089612343E+00
+ 2 2.385654488438660E-01 6.362840498373406E+00
+ 3 -3.589513916083727E-01 -4.612640966770036E+00
+ 4 2.448019073696510E-01 1.297571370768184E+00
+ 5 -6.875346174732695E-02 1.040792413913173E-01
+ 6 3.792638189592632E-03 -8.932802691083100E-02
+C
+C PHASE (2,5)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 4.928693552063745E-03 1.000000000000000E+00
+ 1 -9.994172376053111E-02 -4.356166214844768E+00
+ 2 3.201857761172300E-01 6.831851082501528E+00
+ 3 -2.916681493137933E-01 -3.306942375994469E+00
+ 4 -2.274012489423471E-01 -2.976918876890802E+00
+ 5 6.433213964717783E-01 4.848038709751604E+00
+ 6 -4.908956854946107E-01 -2.610566564231565E+00
+ 7 1.588207828650521E-01 6.214638763937025E-01
+ 8 -1.734984149478499E-02 -5.075963595645942E-02
+C
+C PHASE (2,6)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 1.663735633510400E-02 1.000000000000000E+00
+ 1 -2.352620041234276E-01 -4.258774729916155E+00
+ 2 6.781097185167516E-01 6.458072807623049E+00
+ 3 -4.881841950261403E-01 -2.785384426618644E+00
+ 4 -7.553385375581491E-01 -3.250738776562411E+00
+ 5 1.639615786258839E+00 4.815535352959639E+00
+ 6 -1.201984171606008E+00 -2.523480192474770E+00
+ 7 3.924729687840988E-01 5.932229196462226E-01
+ 8 -4.606692158092449E-02 -4.845295294819264E-02
+C
+C PHASE (3,1)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 4.502252037804154E-03 1.000000000000000E+00
+ 1 -2.028953640871758E-01 -4.464640765726056E+00
+ 2 8.372569367278720E-01 7.702213922566358E+00
+ 3 -1.367390127186634E+00 -6.189616433690076E+00
+ 4 1.016031958858107E+00 2.149209296810993E+00
+ 5 -2.873088725740847E-01 -4.495489915337939E-01
+ 6 1.551627303662298E-02 5.743375972255866E-01
+ 7 -3.557521814009607E-02 -4.095799989500917E-01
+ 8 1.986216132761648E-02 8.762537377340793E-02
+C
+C PHASE (3,2)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 -8.543062778354421E-03 1.000000000000000E+00
+ 1 -8.433196693931977E-02 -4.176476342281367E+00
+ 2 4.950521677218623E-01 5.917702042769532E+00
+ 3 -9.026777809112294E-01 -1.737143729718833E+00
+ 4 6.225887204079393E-01 -3.567716085456782E+00
+ 5 6.526192209635821E-02 3.479217013080263E+00
+ 6 -3.201459239047119E-01 -7.193738370155720E-01
+ 7 1.558953689269164E-01 -3.131981731716024E-01
+ 8 -2.309944461946108E-02 1.169891117938790E-01
+C
+C PHASE (3,3)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 4 { optimum order
+ 0 -9.592107091308533E-03 1.000000000000000E+00
+ 1 9.117597055975096E-01 -1.362293955540065E+00
+ 2 -1.180821508519519E+00 -5.116422737894101E-02
+ 3 -1.206767343066024E-01 4.089355281685734E-01
+ 4 4.005288236054523E-01 5.725979751842032E-03
+C
+C PHASE (3,4)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 -5.298750475323026E-03 1.000000000000000E+00
+ 1 -4.419578804887726E-02 -4.367488028438621E+00
+ 2 2.762693587862101E-01 6.828965052299458E+00
+ 3 -5.337994254096440E-01 -3.429627595547015E+00
+ 4 4.335299518227569E-01 -2.132625641611581E+00
+ 5 -7.806266849290433E-02 3.121899942807616E+00
+ 6 -9.656141905990519E-02 -9.908418708825006E-01
+ 7 5.633253078961140E-02 -1.067496152877778E-01
+ 8 -8.213789911924837E-03 7.646775666059945E-02
+C
+C PHASE (3,5)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 7 { optimum order
+ 0 -1.311107125426699E-03 1.000000000000000E+00
+ 1 -7.652052196328984E-02 -4.949644430361765E+00
+ 2 3.895743940810275E-01 9.841818688388603E+00
+ 3 -7.639523745669841E-01 -9.750573653179178E+00
+ 4 7.362279122414467E-01 4.587618875662723E+00
+ 5 -3.453727282057475E-01 -4.328532144881355E-01
+ 6 5.830012914047354E-02 -4.060823132668843E-01
+ 7 3.054296398502213E-03 1.097160472676668E-01
+C
+C PHASE (3,6)
+ 1.00000E-05 2.78479E-04 { time step, minimum traveling time
+ 8 { optimum order
+ 0 1.060025342648437E-02 1.000000000000000E+00
+ 1 -1.727187413399021E-01 -4.236513482905280E+00
+ 2 5.175081038824737E-01 6.330817863018998E+00
+ 3 -4.044200665101635E-01 -2.481385368481112E+00
+ 4 -5.123851133196808E-01 -3.636971710015763E+00
+ 5 1.192020995167054E+00 5.086337294916203E+00
+ 6 -8.899057981031765E-01 -2.617180031199672E+00
+ 7 2.945699263538578E-01 6.008542708829498E-01
+ 8 -3.526955955684442E-02 -4.595883435220900E-02
+C
+C PHASE (4,1)
+SAME AS 3, 6
+C
+C PHASE (4,2)
+SAME AS 3, 5
+C
+C PHASE (4,3)
+SAME AS 3, 4
+C
+C PHASE (4,4)
+SAME AS 3, 3
+C
+C PHASE (4,5)
+SAME AS 3, 2
+C
+C PHASE (4,6)
+SAME AS 3, 1
+C
+C PHASE (5,1)
+SAME AS 2, 6
+C
+C PHASE (5,2)
+SAME AS 2, 5
+C
+C PHASE (5,3)
+SAME AS 2, 4
+C
+C PHASE (5,4)
+SAME AS 2, 3
+C
+C PHASE (5,5)
+SAME AS 2, 2
+C
+C PHASE (5,6)
+SAME AS 2, 1
+C
+C PHASE (6,1)
+SAME AS 1, 6
+C
+C PHASE (6,2)
+SAME AS 1, 5
+C
+C PHASE (6,3)
+SAME AS 1, 4
+C
+C PHASE (6,4)
+SAME AS 1, 3
+C
+C PHASE (6,5)
+SAME AS 1, 2
+C
+C PHASE (6,6)
+SAME AS 1, 1
+C
+C *** CHARACTERISTIC ADMITTANCE MATRIX [Y0]
+C
+C PHASE (1,1)
+ 1.00000E-05 { time step
+ 5 { optimum order
+ 0 3.481800061265186E-03 1.000000000000000E+00
+ 1 -1.183463131614449E-02 -3.387988121931990E+00
+ 2 1.330674945564107E-02 3.782733542762323E+00
+ 3 -3.729639243679818E-03 -1.020007188639592E+00
+ 4 -2.531444062756514E-03 -7.562334965005327E-01
+ 5 1.307165105693139E-03 3.814952643261169E-01
+C
+C PHASE (1,2)
+ 1.00000E-05 { time step
+ 3 { optimum order
+ 0 -6.373056558093330E-04 1.000000000000000E+00
+ 1 1.877974111274725E-03 -2.955671555538725E+00
+ 2 -1.844038896887066E-03 2.911358579482816E+00
+ 3 6.033704414759495E-04 -9.556870234577183E-01
+C
+C PHASE (1,3)
+ 1.00000E-05 { time step
+ 3 { optimum order
+ 0 -2.035170454552820E-04 1.000000000000000E+00
+ 1 5.961747942524063E-04 -2.950614440945183E+00
+ 2 -5.818012084043019E-04 2.901248685274553E+00
+ 3 1.891434471339824E-04 -9.506341982139872E-01
+C
+C PHASE (1,4)
+ 1.00000E-05 { time step
+ 3 { optimum order
+ 0 -1.316261417020442E-04 1.000000000000000E+00
+ 1 3.927437751714781E-04 -2.962473841293428E+00
+ 2 -3.906294831759445E-04 2.925036525466032E+00
+ 3 1.295118498605936E-04 -9.625626816258901E-01
+C
+C PHASE (1,5)
+ 1.00000E-05 { time step
+ 2 { optimum order
+ 0 -2.860794931526030E-04 1.000000000000000E+00
+ 1 5.713846149255064E-04 -1.997986507221245E+00
+ 2 -2.853051636283668E-04 9.979866114629704E-01
+C
+C PHASE (1,6)
+ 1.00000E-05 { time step
+ 5 { optimum order
+ 0 -6.214807426686216E-04 1.000000000000000E+00
+ 1 2.157009000352494E-03 -3.525630177057857E+00
+ 2 -2.503139606874094E-03 4.228182200865833E+00
+ 3 7.821402548131481E-04 -1.530703196071165E+00
+ 4 4.245058570688297E-04 -5.206192705971318E-01
+ 5 -2.390347626935644E-04 3.487704428780515E-01
+C
+C PHASE (2,2)
+ 1.00000E-05 { time step
+ 5 { optimum order
+ 0 3.428068256302180E-03 1.000000000000000E+00
+ 1 -1.350250766266379E-02 -3.933761441601054E+00
+ 2 1.984674695677796E-02 5.770371844832484E+00
+ 3 -1.280580927070882E-02 -3.708525443506793E+00
+ 4 2.941067065612037E-03 8.409811275345203E-01
+ 5 9.243465468084659E-05 3.093391274126262E-02
+C
+C PHASE (2,3)
+ 1.00000E-05 { time step
+ 3 { optimum order
+ 0 -6.598349519610774E-04 1.000000000000000E+00
+ 1 1.970075380572805E-03 -2.983289672225318E+00
+ 2 -1.960745389785873E-03 2.966718702898964E+00
+ 3 6.505049602479800E-04 -9.834290211856371E-01
+C
+C PHASE (2,4)
+ 1.00000E-05 { time step
+ 2 { optimum order
+ 0 -2.935224886110626E-04 1.000000000000000E+00
+ 1 5.679781811560971E-04 -1.949532134306189E+00
+ 2 -2.744558446625156E-04 9.495346715590204E-01
+C
+C PHASE (2,5)
+ 1.00000E-05 { time step
+ 3 { optimum order
+ 0 -3.044564317964533E-04 1.000000000000000E+00
+ 1 9.091392855789777E-04 -2.988928182960128E+00
+ 2 -9.049101338999510E-04 2.977858873112734E+00
+ 3 3.002272800729317E-04 -9.889306899445727E-01
+C
+C PHASE (2,6)
+ 1.00000E-05 { time step
+ 2 { optimum order
+ 0 -2.860716214067283E-04 1.000000000000000E+00
+ 1 5.713687654819787E-04 -1.997986216751994E+00
+ 2 -2.852971859332962E-04 9.979863210233085E-01
+C
+C PHASE (3,3)
+ 1.00000E-05 { time step
+ 4 { optimum order
+ 0 3.418037725398955E-03 1.000000000000000E+00
+ 1 -1.287126606177576E-02 -3.763794333117312E+00
+ 2 1.810656844148757E-02 5.291703856717313E+00
+ 3 -1.127148931544720E-02 -3.292024615766265E+00
+ 4 2.618149210342647E-03 7.641150921716633E-01
+C
+C PHASE (3,4)
+ 1.00000E-05 { time step
+ 3 { optimum order
+ 0 -6.587329355070580E-04 1.000000000000000E+00
+ 1 1.970661896107247E-03 -2.992897069861893E+00
+ 2 -1.965125685211319E-03 2.985795551828753E+00
+ 3 6.531967246058496E-04 -9.928984819101707E-01
+C
+C PHASE (3,5)
+ 1.00000E-05 { time step
+ 2 { optimum order
+ 0 -2.935156575357480E-04 1.000000000000000E+00
+ 1 5.679633995759592E-04 -1.949528808800043E+00
+ 2 -2.744478942745420E-04 9.495313464806250E-01
+C
+C PHASE (3,6)
+ 1.00000E-05 { time step
+ 3 { optimum order
+ 0 -1.312858660208155E-04 1.000000000000000E+00
+ 1 3.923619939756532E-04 -2.967646526843861E+00
+ 2 -3.908798430466766E-04 2.935350139578207E+00
+ 3 1.298037151480776E-04 -9.677036104630532E-01
+C
+C PHASE (4,4)
+SAME AS 3, 3
+C
+C PHASE (4,5)
+SAME AS 2, 3
+C
+C PHASE (4,6)
+SAME AS 1, 3
+C
+C PHASE (5,5)
+SAME AS 2, 2
+C
+C PHASE (5,6)
+SAME AS 1, 2
+C
+C PHASE (6,6)
+SAME AS 1, 1
+C
+C
diff --git a/benchmarks/dcn14f.dat b/benchmarks/dcn14f.dat
new file mode 100644
index 0000000..85526f8
--- /dev/null
+++ b/benchmarks/dcn14f.dat
@@ -0,0 +1,114 @@
+C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
+C
+HOMOGENEOUS LINE
+ 3 5.00000E-05 { number of phase, simulation time step
+C
+C *** VOLTAGE DEFORMATION MATRIX [H]
+C
+C PHASE (1,1)
+ 5.00000E-05 1.01847E-03 { time step, minimum traveling time
+ 5 { optimum order
+ 0 -1.618603942766297E-02 1.000000000000000E+00
+ 1 5.283576414112414E-01 -1.546326488049669E+00
+ 2 -6.202536280929268E-01 -1.255803281968069E-01
+ 3 -2.255420925351951E-01 8.467716899824520E-01
+ 4 3.608917603626888E-01 -4.331466440657848E-02
+ 5 -2.605271695420050E-02 -1.303251774211437E-01
+C
+C PHASE (1,2)
+ 5.00000E-05 1.01847E-03 { time step, minimum traveling time
+ 7 { optimum order
+ 0 1.425916902329563E-03 1.000000000000000E+00
+ 1 -2.206716721409532E-01 -3.929516854486178E+00
+ 2 8.650618381895728E-01 5.682774206375364E+00
+ 3 -1.212941520034601E+00 -3.216450924475544E+00
+ 4 5.542093380804710E-01 -1.974986534403593E-01
+ 5 2.444611640267575E-01 1.010581827760833E+00
+ 6 -3.110448298336584E-01 -3.996131371272936E-01
+ 7 7.949976481088462E-02 4.972353925643327E-02
+C
+C PHASE (1,3)
+ 5.00000E-05 1.01847E-03 { time step, minimum traveling time
+ 8 { optimum order
+ 0 1.132461018363957E-02 1.000000000000000E+00
+ 1 -3.928177240303176E-01 -3.695684653488628E+00
+ 2 1.312688115505119E+00 4.340935718598091E+00
+ 3 -1.218620722344229E+00 -1.516401855302920E-01
+ 4 -8.020125642995566E-01 -3.826892034008682E+00
+ 5 2.248810046810998E+00 3.462429050431854E+00
+ 6 -1.506416280926211E+00 -1.412001233014955E+00
+ 7 3.505547859496243E-01 3.266708403395200E-01
+ 8 -3.510266848814765E-03 -4.381750183330484E-02
+C
+C PHASE (2,1)
+ 5.00000E-05 1.01847E-03 { time step, minimum traveling time
+ 7 { optimum order
+ 0 8.274605024283042E-04 1.000000000000000E+00
+ 1 -2.872138842123906E-01 -4.149117097735179E+00
+ 2 1.212198215496757E+00 6.593153215455022E+00
+ 3 -1.914005612116588E+00 -4.738289268738541E+00
+ 4 1.242052377296491E+00 1.125097082162070E+00
+ 5 -7.331894050186853E-02 3.625173114473219E-01
+ 6 -2.669967931525611E-01 -2.182197145539570E-01
+ 7 8.645717668826403E-02 2.485847436469388E-02
+C
+C PHASE (2,2)
+ 5.00000E-05 1.01847E-03 { time step, minimum traveling time
+ 4 { optimum order
+ 0 1.124660680255742E-02 1.000000000000000E+00
+ 1 7.401000445185836E-01 -2.440426284771180E+00
+ 2 -1.828792986100930E+00 1.866842023194471E+00
+ 3 1.421220673581931E+00 -3.816207006611643E-01
+ 4 -3.434502268787097E-01 -4.446879527970040E-02
+C
+C PHASE (2,3)
+SAME AS 2, 1
+C
+C PHASE (3,1)
+SAME AS 1, 3
+C
+C PHASE (3,2)
+SAME AS 1, 2
+C
+C PHASE (3,3)
+SAME AS 1, 1
+C
+C *** CHARACTERISTIC ADMITTANCE MATRIX [Y0]
+C
+C PHASE (1,1)
+ 5.00000E-05 { time step
+ 4 { optimum order
+ 0 3.011008138610101E-03 1.000000000000000E+00
+ 1 -9.192442910688124E-03 -3.040044814720984E+00
+ 2 9.558823261855779E-03 3.137339584853382E+00
+ 3 -3.584323666404843E-03 -1.154529167413408E+00
+ 4 2.069351787018355E-04 5.723439967673888E-02
+C
+C PHASE (1,2)
+ 5.00000E-05 { time step
+ 1 { optimum order
+ 0 -6.121961056642382E-04 1.000000000000000E+00
+ 1 6.122883080424115E-04 -9.995998928355355E-01
+C
+C PHASE (1,3)
+ 5.00000E-05 { time step
+ 3 { optimum order
+ 0 -4.521369897144550E-04 1.000000000000000E+00
+ 1 1.268292283328286E-03 -2.843316615697138E+00
+ 2 -1.180203209462610E-03 2.686718069749836E+00
+ 3 3.640479024767173E-04 -8.434014255306825E-01
+C
+C PHASE (2,2)
+ 5.00000E-05 { time step
+ 2 { optimum order
+ 0 3.168306064450878E-03 1.000000000000000E+00
+ 1 -6.270813066160334E-03 -1.975263780973325E+00
+ 2 3.102509615154264E-03 9.752738018258046E-01
+C
+C PHASE (2,3)
+SAME AS 1, 2
+C
+C PHASE (3,3)
+SAME AS 1, 1
+C
+C
diff --git a/benchmarks/dcn15.dat b/benchmarks/dcn15.dat
new file mode 100644
index 0000000..02a602a
--- /dev/null
+++ b/benchmarks/dcn15.dat
@@ -0,0 +1,484 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-15
+C Exhaustive test of PostScript output as received from Robert Meredith
+C of NYPA (the New York Power Authority) in White Plains. Prior to
+C being copied to a new DCN15 on 15 November 1995, this was separate
+C disk file PLOTTEST.DAT that creates 158-Kbyte .PS file as output
+C when NYMAX = 1024 and NXMAX = 1280 (the NYPA choices) are used.
+C January, 1996, newsletter should summarize associated changes.
+BEGIN NEW DATA CASE {using blank_card_skeleton and atp "/KEYWORD" sorting
+C RUN 4.75 CYCLES PAST ENERGIZATION AT .5 CY; ATTEMPT CLEAR 2.5 LATER AT 3
+C UNUSED OPTIONS DELETED/SUPPRESSED - SEE EENERG-40.DAT FOR MORE COMPLETE LIST
+C FREE FORMAT TIME STEP- 1000/CYCLE FOR 5.25 CYCLES = .0875 SEC
+C SHORTEN TO 1.65 CYCLES = .0275 SEC
+ .000016666666, .0875 , 60.000 , 0.,,,,,,,
+C PRN> PLT> NET> SS> MAX> SAVE> NENERG> >
+ 1 5 0 0 1 -1
+ 5 5 20 20 100 100 500 500
+TACS HYBRID {(from blank_card_skeleton.incs)
+C ANALYZE LISC CAPACITIVE INRUSH DURING E. GARDEN CITY A-GROUND FAULT
+C BY SUBTRACTING FAULT AND REACTOR CURRENTS FROM INRUSH IN TACS
+C TYPE 90 TACS SOURCES DERIVED FROM NETWORK VOLTAGES:
+C <NAME> <----A---><----A---><----A---> <T START ><T STOP >
+90BUSBV 0. 999.
+C TYPE 91 TACS SOURCES DERIVED FROM NETWORK SWITCH CURRENTS (1ST NODE)
+C <NAME> <----A---><----A---><----A---> <T START ><T STOP >
+C 4 SHUNT REACTOR CURRENTS (OUT OF LISC)
+91EGCHWX 0. 999.
+91EGCHWY 0. 999.
+91EGCHWZ 0. 999.
+91ISLNDX 0. 999.
+91ISLNDY 0. 999.
+91ISLNDZ 0. 999.
+91SPRB1X 0. 999.
+91SPRB1Y 0. 999.
+91SPRB1Z 0. 999.
+C FAULT CURRENT AT E. GARDEN CITY (USE CAUTION-LINE SWITCHES EXIST IF XFMRS)
+C ALSO OUT OF LISC
+91EGCHWA 0. 999.
+C INRUSH TO LISC AT SPRAIN BROOK (ENERGIZATION SWITCHES MUST COME FIRST)
+C THESE CURRENTS ARE INTO LISC
+91SPRBRA 0. 999.
+91SPRBRB 0. 999.
+91SPRBRC 0. 999.
+C FORTRAN STATEMENTS; 99= INPUT; 98= OUTPUT; 88= INSIDE
+C <NAME> =< FREE FORMAT FORTRAN TO COL 80 ----->
+C REACTOR TOTAL AMPS
+99REACTA = EGCHWX +ISLNDX +SPRB1X
+99REACTB = EGCHWY +ISLNDY +SPRB1Y
+99REACTC = EGCHWZ +ISLNDZ +SPRB1Z
+C CAPACITIVE CURRENT INTO LISC IS NET OF ABOVE; BY PHASE
+99CAPINA = SPRBRA -REACTA -EGCHWA
+99CAPINB = SPRBRB -REACTB
+99CAPINC = SPRBRC -REACTC
+C S-BLOCKS OF ORDER 1 IN COL 2 INTEGRATE VOLTAGES TO GET FLUXES (TIMES 250.0).
+C <NAME> +<NAME> +<NAME> +<NAME> +<NAME> +<NAME> <GAIN><FXLO><FXHI><NMLO><NMHI>
+C N0 & D0><N1 & D1 ><N2 & D2 ><N3 & D3 ><N4 & D4 ><N5 & D5 ><N6 & D6 ><N7 & D7 >
+C <NAME>CD+< IN1> +< IN2> +< IN3> +< IN4> +< IN5> < A >< B >< C >< D >< E >
+C TACS OUTPUT REQUESTS - TYPE 33
+C <NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><TY33>
+33REACTA REACTB REACTC CAPINA CAPINB CAPINC BUSBV
+BLANK CARD ENDING ALL ATP-SORTED TACS CARDS (from blank_card_skeleton.incs)
+C SIMPLE LISC SHUNT REACTORS:
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ EGCHWX 15.8 793.5
+ EGCHWY 15.8 793.5
+ EGCHWZ 15.8 793.5
+ ISLNDX 15.8 793.5
+ ISLNDY 15.8 793.5
+ ISLNDZ 15.8 793.5
+ SPRB1X 7.93 396.7
+ SPRB1Y 7.93 396.7
+ SPRB1Z 7.93 396.7
+$VINTAGE, 0
+C SIMPLE LISC MODEL
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ SPRB1AMAINLA .4 2.
+ SPRB1BMAINLB .4 2.
+ SPRB1CMAINLC .4 2.
+ MAINLAISLNDA .3 1.
+ MAINLBISLNDB .3 1.
+ MAINLCISLNDC .3 1.
+ ISLNDAEGCHWA .4 2.
+ ISLNDBEGCHWB .4 2.
+ ISLNDCEGCHWC .4 2.
+C 200 MVAR AT MAINL FOR PIPE; 300 MVAR SPLIT FOR SCFF; 200 MVAR AT ISLND
+ MAINLA 4.45
+ MAINLA 3.34
+ ISLNDA 3.34
+ EGCHWA 4.45
+ MAINLB 4.45
+ MAINLB 3.34
+ ISLNDB 3.34
+ EGCHWB 4.45
+ MAINLC 4.45
+ MAINLC 3.34
+ ISLNDC 3.34
+ EGCHWC 4.45
+$VINTAGE, 0
+C OTHER CIRCUITS:
+C 10000 MVA DUNWOOD; 5000 MVA EASTVIEW; 5000 MVA W 49TH
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ SRCDUASPRDUA .6 11.9
+ SRCDUBSPRDUB .6 11.9
+ SRCDUCSPRDUC .6 11.9
+ SRCEAASPREAA 1.2 23.8
+ SRCEABSPREAB 1.2 23.8
+ SRCEACSPREAC 1.2 23.8
+ SRCW4ASPRW4A 1.2 23.8
+ SRCW4BSPRW4B 1.2 23.8
+ SRCW4CSPRW4C 1.2 23.8
+$VINTAGE, 0
+C SIMPLE SPRAIN REACTORS:
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ SPX5SA 3.17 158.7
+ SPX5SB 3.17 158.7
+ SPX5SC 3.17 158.7
+C DUMMY BUS TO DERIVE A UNIQUE SPRAIN BROOK PHASE B VOLTAGE FOR TACS
+ SPRBRABUSBV 1.0
+$VINTAGE, 0
+BLANK CARD ENDING ALL ATP-SORTED BRANCH CARDS (from blank_card_skeleton.incs)
+C ********************************************* STUDY-DEPENDENT CABLE SWITCHING:
+C SWITCH CARD: COL 1-2 IS 0 FOR ORDINARY & GAUSS. STATISTICS SWITCHES, NOT TACS.
+C CLOSING, OPENING TIMES AND STATISTICS PARAMETERS BELOW ARE IN SECONDS.
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+C <NAME><NAME><GAUS AVG><GAUS SIG><AMP MARG> STATISTICS P
+C THREE PHASE ENERGIZATION FROM SPRAIN BROOK AT 180 DEGREES
+C ATTEMPT OPEN AT 3 CY
+ SPRBRASPRB1A .0083333 .05 1. 1
+ SPRBRBSPRB1B .0083333 .05 1. 1
+ SPRBRCSPRB1C .0083333 .05 1. 1
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+C A PHASE FAULT AT E. GARDEN CITY CABLE
+ EGCHWA MEASURING 1
+C *************************************************** CABLE CROSSING COMPONENTS:
+C ANALYSIS OF LISC INRUSH COMPONENTS:
+C MONITORING SIMPLE LISC SHUNT REACTORS:
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+ EGCHWAEGCHWX MEASURING 1
+ EGCHWBEGCHWY MEASURING 1
+ EGCHWCEGCHWZ MEASURING 1
+ ISLNDAISLNDX MEASURING 1
+ ISLNDBISLNDY MEASURING 1
+ ISLNDCISLNDZ MEASURING 1
+ SPRB1ASPRB1X MEASURING 1
+ SPRB1BSPRB1Y MEASURING 1
+ SPRB1CSPRB1Z MEASURING 1
+C MONITORING OTHER CIRCUITS:
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+ SPRDUASPRBRA MEASURING 1
+ SPRDUBSPRBRB MEASURING 1
+ SPRDUCSPRBRC MEASURING 1
+ SPREAASPRBRA MEASURING 1
+ SPREABSPRBRB MEASURING 1
+ SPREACSPRBRC MEASURING 1
+ SPRW4ASPRBRA MEASURING 1
+ SPRW4BSPRBRB MEASURING 1
+ SPRW4CSPRBRC MEASURING 1
+C MONITORING SIMPLE SPRAIN REACTORS:
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+ SPRBRASPX5SA MEASURING 1
+ SPRBRBSPX5SB MEASURING 1
+ SPRBRCSPX5SC MEASURING 1
+BLANK CARD ENDING ALL ATP-SORTED SWITCH CARDS (from blank_card_skeleton.incs)
+C VOLTAGE SOURCES BEHIND SIMPLE LINES:
+C *= VOLTAGE IF POSITIVE; CURRENT IF NEGATIVE
+C <NAME> <CRESTVAL><FREQ ><ANGLE > <T START ><T STOP >
+14SRCDUA 1 281691. 60. 0. -1.0
+14SRCDUB 1 281691. 60. -120. -1.0
+14SRCDUC 1 281691. 60. - 70. -1.0
+14SRCEAA 1 281691. 60. 0. -1.0
+14SRCEAB 1 281691. 60. -120. -1.0
+14SRCEAC 1 281691. 60. - 70. -1.0
+14SRCW4A 1 281691. 60. 0. -1.0
+14SRCW4B 1 281691. 60. -120. -1.0
+14SRCW4C 1 281691. 60. - 70. -1.0
+BLANK CARD ENDING ALL ATP-SORTED SOURCE CARDS (from blank_card_skeleton.incs)
+C <BUS ><VOLT><MON.><FOR ><NODE>< >< >< >< >< >< >< >< >
+ SPRBRA SPRBRB SPRBRC EGCHWA EGCHWB EGCHWC
+C First 6 output variables are electric-network voltage differences (upper
+C Next 25 output variables are branch currents (flowing from the upper nod
+C Next 7 output variables belong to TACS (with "TACS" an internally-added
+C Step Time SPRBRA SPRBRB SPRBRC EGCHWA EGCHWB EGCHWC
+C
+C
+C EGCHWA EGCHWB EGCHWC ISLNDA ISLNDB ISLNDC
+C EGCHWX EGCHWY EGCHWZ ISLNDX ISLNDY ISLNDZ
+C
+C SPRDUB SPRDUC SPREAA SPREAB SPREAC SPRW4A
+C SPRBRB SPRBRC SPRBRA SPRBRB SPRBRC SPRBRA
+C
+C SPRBRC TACS TACS TACS TACS TACS
+C SPX5SC REACTA REACTB REACTC CAPINA CAPINB
+C Phasor I(0) = 0.0000000E+00 Switch "EGCHWA" to " " closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "EGCHWA" to "EGCHWX" closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "EGCHWB" to "EGCHWY" closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "EGCHWC" to "EGCHWZ" closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "ISLNDA" to "ISLNDX" closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "ISLNDB" to "ISLNDY" closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "ISLNDC" to "ISLNDZ" closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "SPRB1A" to "SPRB1X" closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "SPRB1B" to "SPRB1Y" closed in the
+C Phasor I(0) = 0.0000000E+00 Switch "SPRB1C" to "SPRB1Z" closed in the
+C Phasor I(0) = 1.8020056E+01 Switch "SPRDUA" to "SPRBRA" closed in the
+C Phasor I(0) = -7.4949973E+02 Switch "SPRDUB" to "SPRBRB" closed in the
+C Phasor I(0) = -7.9731518E+02 Switch "SPRDUC" to "SPRBRC" closed in the
+C Phasor I(0) = 9.0100278E+00 Switch "SPREAA" to "SPRBRA" closed in the
+C Phasor I(0) = -3.7474986E+02 Switch "SPREAB" to "SPRBRB" closed in the
+C Phasor I(0) = -3.9865759E+02 Switch "SPREAC" to "SPRBRC" closed in the
+C Phasor I(0) = 9.0100278E+00 Switch "SPRW4A" to "SPRBRA" closed in the
+C Phasor I(0) = -3.7474986E+02 Switch "SPRW4B" to "SPRBRB" closed in the
+C Phasor I(0) = -3.9865759E+02 Switch "SPRW4C" to "SPRBRC" closed in the
+C Phasor I(0) = 3.6040111E+01 Switch "SPRBRA" to "SPX5SA" closed in the
+C Phasor I(0) = -1.4989995E+03 Switch "SPRBRB" to "SPX5SB" closed in the
+C Phasor I(0) = -1.5946304E+03 Switch "SPRBRC" to "SPX5SC" closed in the
+C 0 0.0 271505.166 -135494. 93140.8164 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C -749.49973 -797.31518 9.01002785 -374.74986 -398.65759 9.01002785
+C -1594.6304 0.0 0.0 0.0 0.0 0.0
+C 1 .16667E-4 271497.931 -134010.58 94739.6338 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0 0.0
+C -752.0737 -795.35514 11.6960229 -376.03685 -397.67757 11.6960229
+C -1590.7112 0.0 0.0 0.0 0.0 0.0
+BLANK CARD ending output requests
+C 5250 .0875 344649.527 191299.527 323640.302 0.0 -47145.895 198177.748
+C 0.0 -481.43288 -381.56041 7.33790777 -482.30918 -382.59923
+C -406.62434 315.059242 422.024548 -203.31217 157.529621 422.024548
+C 630.115247 53.1490298 -1931.3137 -1533.2089 667.309594 1931.31368
+C Var maxima: 616453.613 329566.742 345463.852 0.0 406069.593 394188.344
+C 0.0 543.895482 530.803784 67.0966974 542.272824 529.035963
+C 1967.10962 1126.57279 6928.95568 983.554811 563.286397 6928.95568
+C 1842.77914 396.264811 2155.88852 2102.39918 3263.3985 4668.06408
+C Times max : .066666664 .038716665 .053233331 0.0 .056549998 .054416664
+C 0.0 .060783331 .058666664 .037849998 .060799998 .058683331
+C .00905 .022149999 .020933332 .00905 .022149999 .020933332
+C .023983332 .054149998 .060799998 .058666664 .009433333 .016233333
+C Var minima: -616441.36 -328926.65 -344125.86 0.0 -391677.76 -380868.54
+C 0.0 -601.24473 -655.23512 -71.518615 -601.0409 -654.05062
+C -2812.3738 -2427.7615 -6394.8627 -1406.1869 -1213.8807 -6394.8627
+C -1728.9227 -417.04027 -2395.2787 -2605.0808 -3285.1431 -5318.9546
+C Times min : .07498333 .029766665 .061583331 0.0 .065483331 .063366664
+C 0.0 .034366665 .015183333 .012383333 .034366665 .015216666
+C .018033333 .016716666 .045366665 .018033333 .016716666 .045366665
+C .015316666 .0124 .034383332 .015233333 .0087 .010816666
+ 2 Fault Current to Ground
+ Sprain Brook Energization of Lisc at 180 Degrees; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH LISC STUDY AMPERES--------+
+ EGCHWA
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2SPRAIN BROOK REACTOR CURRENT VS VOLTAGE - PHASE B
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT 0.5 -1.5 CYCLE TIME PLOTTED
+C
+C X-Y PLOT <-X AXIS LABEL----->
+ X-Y PLOT Phase B bus voltage(!!!)
+C LENX >< XMIN >< XMAX >
+ 10. -250.E3 250.E3
+C LENY >< YMIN >< YMAX ><DIV/IN> last defaults to 10 if zero
+ 8. -2000. 2000. 0.
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS AND TACS
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC.
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C FOR X-Y BRANCHES USE 12 COL(25-36) FOR X VAR; NEXT 12 FOR Y VARIABLE
+C FOR X-Y NODE VOLTS USE 6 COL(25-30) FOR X VAR; NEXT 6 FOR Y VARIABLE
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4>
+ 192 0.5 1.5 -.4E6.4E6TACS BUSBV SPRB1BSPRB1YLISC STUDY REACT CURRENT--+
+C *******************************************************************************
+ 2 CURRENTS INTO LISC AT SPRAIN BROOK 345 KV
+ SPRAIN BROOK ENERGIZATION OF (LISC) AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ Last word ends in 2 slashes\\
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH LISC STUDY AMPERES123
+ SPRBRASPRB1ASPRBRBSPRB1BSPRBRCSPRB1C
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2 VOLTAGES AT SPRAIN BROOK 345 KV BUS
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ new border=(\/(\/(\/(\/(\/\/\/\/\/\/\/\/\/\/)\/)\/)\/)\/)
+ new border =(\/(\/(\/(\/(\/\/\/\/\/\/\/\/\/\/)\/)\/)\/)\/)
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 145 -.4E6.4E6BRANCH Lisc Study Volts
+ SPRBRASPRBRBSPRBRC
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 5000. 5000. 55000.
+C *****************************************************************************
+ 2 VOLTAGES AT E. GARDEN CITY 345 KV CABLE
+ new border=)/\)/\)/\)/\)/\/\/\/\/\/\/\(/\(/\(/\(/\(
+ new border =)/\)/\)/\)/\)/\/\/\/\/\/\/\(/\(/\(/\(/\(
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT )SECONDS SCALE ///\\\ <3 EACH
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 143 -.4E6.4E6BRANCH LISC STUDY VOLTS
+ EGCHWAEGCHWBEGCHWC
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.01 .01 .11
+C *****************************************************************************
+ 2 PHASE A CURRENTS INTO LISC: REACT INRUSH, CAP INRUSH, FAULT, TOTAL
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH LISC STUDY AMPS ((((OK?))))
+ TACS REACTATACS CAPINAEGCHWA SPRBRASPRB1A
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2 PHASE B CURRENTS INTO LISC: REACT INRUSH, CAP INRUSH, TOTAL
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH LISC STUDY AMPERES
+ TACS REACTBTACS CAPINBSPRBRBSPRB1B
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2 PHASE C CURRENTS INTO LISC: REACT INRUSH, CAP INRUSH, TOTAL
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH LISC STUDY AMPERES
+ TACS REACTCTACS CAPINCSPRBRCSPRB1C
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2 CURRENTS INTO SPRAIN BROOK FROM 4 EASTVIEW CKTS
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH LISC STUDY AMPERES
+ SPREAASPRBRASPREABSPRBRBSPREACSPRBRC
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2 CURRENTS INTO SPRAIN BROOK FROM W 49TH CKTS
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH LISC STUDY AMPERES
+ SPRW4ASPRBRASPRW4BSPRBRBSPRW4CSPRBRC
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2 CURRENTS INTO SPRAIN BROOK FROM DUNWOODIE 345 KV CKT
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH
+ SPRDUASPRBRASPRDUBSPRBRBSPRDUCSPRBRC
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2 CURRENTS INTO SPRAIN BROOK FROM 750 MVA OF NON-LINEAR SHUNT REACTORS
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH
+ SPX5SASPRBRASPX5SBSPRBRBSPX5SCSPRBRC
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2 PHASE A CURRENTS INTO SPRAIN BR.: EASTV, W49TH, DUNWD, SHUNT REACT
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT
+C
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS,TACS,FREQ SCAN
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC; 6 FOR HERTZ; 7 FOR LOG HERTZ
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4><BR3A><BR3B><BR4A><BR4B>
+ 192 -.4E6.4E6BRANCH
+ SPREAASPRBRASPRW4ASPRBRASPRDUASPRBRASPX5SASPRBRA
+C SCALE PER INCH<TIME UNIT START<TIME UNIT END ><VERT MIN ><VERT MAX >
+ 0.5 .25 5.25
+C *****************************************************************************
+ 2SPRAIN BROOK REACTOR CURRENT VS VOLTAGE - PHASE B
+ SPRAIN BROOK ENERGIZATION OF LISC AT 180 DEGREES; 4 SHUNT REACTORS ON
+ INTO A-PHASE-TO-GROUND FAULT AT E. GARDEN CITY CABLE; CBS OPEN 2.5 CY LATER
+ CASE PLOTTEST.DAT 0.5 -1.5 CYCLE TIME PLOTTED
+C
+C X-Y PLOT <-X AXIS LABEL----->
+ X-Y PLOT PHASE B BUS VOLTAGE
+C LENX >< XMIN >< XMAX >
+ 10. -250.E3 250.E3
+C LENY >< YMIN >< YMAX ><DIV/IN> last defaults to 10 if zero
+ 8. -2000. 2000. 0.
+C COL 3 IS 4 FOR NODE VOLTS;8 FOR BRANCH VOLTS;9 FOR AMPS AND TACS
+C COL 4 IS 2 FOR CYCLES; 5 FOR MICROSEC.
+C COL 5-7 ARE BLANK TO INDICATE EXTENDED PRECISION OF PLOT SCALES, ETC.
+C WRITE "BRANCH" STARTING IN FIRST NODE COL FOR PLOTTING OF UP TO 4 BRANCHES
+C FOR X-Y BRANCHES USE 12 COL(25-36) FOR X VAR; NEXT 12 FOR Y VARIABLE
+C FOR X-Y NODE VOLTS USE 6 COL(25-30) FOR X VAR; NEXT 6 FOR Y VARIABLE
+C CAN ALSO LABEL ON 4-NODE OR 'BRANCH' CARD: <GRAPH HEADING ><VERT AX. LABEL>
+C 34S/"<TST<TSP<LLMT<ULT<NOD1><NOD2><NOD3><NOD4>
+ 192 0.5 1.5 -.4E6.4E6TACS BUSBV SPRB1BSPRB1YLISC STUDY))))))REACT CURRENT\\\
+BLANK CARD ENDING plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn16.dat b/benchmarks/dcn16.dat
new file mode 100644
index 0000000..badc616
--- /dev/null
+++ b/benchmarks/dcn16.dat
@@ -0,0 +1,844 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-16
+C 1st of 12 subcases that confirm various aspects of switches that
+C touch compensation-based elements (bugs removed 17 December 1995).
+C E-mail from Laurent Dube on Date: Sat, 15 Jul 1995 13:14:55 -0700 (PDT)
+C "Here is a trimmed-down version of Janko Kosmac's data case showing
+C wrong switch current values (which in his case were picked up by
+C MODELS to drive some other logic)." Test here is even more simplified:
+C
+C SRCE N1 Type-91 N2 1.0
+C o------_------o----/\/\/\----o----/\/\/\-----------
+C ^ | | |
+C closed | |<-- switch |
+C switch | | closed |
+C |----/\/\/\----o |
+C 1.E-6 N12 |
+C ___
+C _
+ 1.E-5 1.E-5
+ 1 1 1 1
+TACS HYBRID
+99RESIS = 1.E-6
+77RESIS 1.E-6
+33RESIS
+BLANK card ending TACS
+91N1 N2 TACS RESIS 1
+ N1 N12 1.E-6
+ N2 1.
+BLANK card ending branches
+ N12 N2 MEASURING
+ SRCE N1 MEASURING 1
+BLANK card ending switches
+14SRCE 100. 60. 0.0 0. -1.
+BLANK card ending sources
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees
+C N12 N2 9.99999000E+01 0.00000000E+00 9.99999000E+01 0.0000
+C SRCE N1 9.99999000E+01 0.00000000E+00 9.99999000E+01 0.0000
+ N1 N12 N2
+C Step Time N1 N12 N2 SRCE N1 TACS
+C N1 N2 RESIS
+C Phasor I(0) = 9.999990E1 Switch "N12 " to "N2 " closed in steady-st
+C Phasor I(0) = 9.999990E1 Switch "SRCE " to "N1 " closed in steady-st
+C 0 0.0 100. 99.9999 99.9999 99.9999 0.0 1.E-6
+C 1 .1E-4 99.9992894 99.9992394 99.9992394 99.9992394 49.9996197 1.E-6
+BLANK card ending voltage printout
+BLANK card ending plot
+BEGIN NEW DATA CASE
+C 2nd of 12 subcases began as the big, 7th subcase of DC-16. Eventually,
+C nearly everything could be thrown away. After closing, the switch
+C voltage had better be zero (one of the improvements of 17 Dec 95). This
+C was not a problem 2 or more days earlier, however. This problem resulted
+C after making just the single OVER16 correction. Correction of it
+C resulted in the two changes of SUBTS3 (see WSM95DEC idents).
+ .000100 .0004 60.
+ 1 -1 1 1
+ CR20A CR30A 93.40 1
+92CR30A CR20A 5555. 3
+ 147500. -1.
+ 1.0 40. .80
+ 9999.
+ RAVBA CR30A 0.5 14.0
+ GRCBA CR20A 0.4 9.0 1
+BLANK card ending program branch cards.
+ CR20A 0.00015 10. { Fault switch, phase "a" to ground } 3
+BLANK card terminating program switch cards
+14RAVBA 440000. 60. -20.0 -1.
+14GRCBA 440000. 60. 0.0 -1.
+BLANK card terminating program source cards.
+C Total network loss P-loss by summing injections = 3.505855948763E+08
+C Node Source node voltage Injected source current
+C name Rectangular Polar Rectangular Polar
+C RAVBA 413464.7531458 440000. 26317.186674075 27911.988458816
+C -150488.8630633 -20.0000000 -9299.719634859 -19.4619099
+BLANK card ending output variables requests (none here, since all column 80)
+C First 2 output variables are electric-network voltage differences (upper
+C Next 4 output variables are branch currents (flowing from the upper nod
+C Step Time CR30A CR20A CR20A CR30A CR20A GRCBA
+C CR20A TERRA TERRA CR20A CR30A CR20A
+C 0 0.0 -264114.27 534224.351 0.0 0.0 -26317.187 -26317.187
+C 1 .1E-3 -195321.89 509234.084 0.0 -75571.13 -102186.97 -26615.843
+C *** Close switch "CR20A " to " " after 2.00000000E-04 sec.
+C 2 .2E-3 -126265.42 483522.274 0.0 -.00199387 -26810.516 -26810.514
+C 3 .3E-3 -97153.756 0.0 1625.62684 -.10944E-3 -27570.069 -25944.443
+C 4 .4E-3 -66918.302 0.0 4833.9446 -.75381E-4 -28909.76 -24075.815
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 12 subcases that confirm various aspects of switches that
+C touch compensation-based elements.
+C IMTESTA3.DAT --- Name used by Prof. Juan Martinez of Barcelona, Spain
+C Based on I. Bonfanti's case : EMTP News, Vol. 2, no. 3, September 1989
+C Steady State Initialization
+C Wye-connected ungrounded armature - Resistor between neutral and ground
+C Switches permanently closed are connected to the armature terminals
+C Until correction on 26 Jan 96, TQGEN was completely wrong on step 2.
+POWER FREQUENCY, 50
+ 1.E-4 .0002 1.E-15
+ 1 1 1 1
+C ----- Network description
+ FEMR CBR .37024 1.196 1
+ FEMS CBS .37024 1.196 1
+ FEMT CBT .37024 1.196 1
+C ----- Grounding resistor
+ CSMT 1000.
+C ----- Motor parasitic capacitances
+ M1.R .02 1
+ M1.S .02 1
+ M1.T .02 1
+C ----- Mechanical network
+ ROTORD 1.E-08
+ ROTORQ 1.E-08
+ COPPIA 9.16E6 2
+ COPPI2COPPIA 1.0E-6
+BLANK ENDING BRANCHES
+ CBR M1.R -1. 15.00 1
+ CBS M1.S -1. 15.00 1
+ CBT M1.T -1. 15.00 1
+BLANK ENDING SWITCHES
+14FEMR 4899. 50. 0. -1.0 9999.
+14FEMS 4899. 50. -120. -1.0 9999.
+14FEMT 4899. 50. 120. -1.0 9999.
+14COPPI2-1 -1. 1.E-9 0. -1.0 9999.
+C ----- UM specification
+19 UM
+01 0 - Compensation; change 0 to 1 if prediction is wanted
+BLANK
+ 3 1 1111COPPIA 1
+ 0.0 0.3964
+ 0.0 0.3964
+ 4. COPPI2
+ .1674 .001 M1.R CSMT 1
+ .1674 .01 M1.S CSMT 1
+ .1674 .01 M1.T CSMT 1
+ .7819 .00453 ROTORD 1
+ .7819 .00453 ROTORQ 1
+BLANK card ending U.M. data
+BLANK card ending sources
+C Total network loss P-loss by summing injections = 5.005262005074E-01
+C Total network loss P-loss by summing injections = 2.721172542328E+04
+C Total network loss P-loss by summing injections = 3.083034016021E+04
+C Total network loss P-loss by summing injections = 3.209218252624E+04
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C CBR M1.R 2.18879785E+02 -8.91358682E+01 2.36333585E+02 -22.1580 5.25806422E+05 2.07845254E+05
+C CBS M1.S -1.86633819E+02 -1.44987520E+02 2.36333585E+02 -142.1580 5.25806422E+05 2.07845254E+05
+C CBT M1.T -3.22459663E+01 2.34123388E+02 2.36333585E+02 97.8420 5.25806422E+05 2.07845254E+05
+C 1st gen: COPPIA 301.59289474462 301.59289474462 4868.1875 4868.1875 734105.38014229 734105.38014229
+C 0.0 0.0 .17357870652E-4 0.0000002 -.0026175052283 1.0000000
+C
+C 2nd gen: FEMR 4899. 4899. 218.87978507236 236.33358480802 536146.03353474 578899.11598725
+C 0.0 0.0 -89.13586817262 -22.1579539 218338.30908884 0.9261476
+BLANK card ending node voltage output requests (none here)
+C Step Time COPPIA CBR CBS CBT FEMR FEMS FEMT M1.R M1.S M1.T
+C TERRA M1.R M1.S M1.T CBR CBS CBT TERRA TERRA TERRA
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM THETAM IPA IPB IPC IE1 IE2
+C *** Phasor I(0) = 2.1887979E+02 Switch "CBR " to "M1.R " closed in the steady-state.
+C *** Phasor I(0) = -1.8663382E+02 Switch "CBS " to "M1.S " closed in the steady-state.
+C *** Phasor I(0) = -3.2245966E+01 Switch "CBT " to "M1.T " closed in the steady-state.
+C 0 0.0 301.592895 218.879785 -186.63382 -32.245966 218.879785 -186.63382 -32.245966 .309378E-3 .02587952 -.0261889
+C -4976.4349 301.592895 1.57079633 -218.87948 186.659698 32.2197774 65.266856 -275.17162
+C 1 .1E-3 301.593554 221.571447 -181.98783 -39.583621 221.571447 -181.98783 -39.583621 -.63563E-3 .026350533 -.02571491
+C -4976.4333 301.592895 1.60095562 -221.57208 182.014176 39.5579061 64.9214972 -275.25321
+C 2 .2E-3 301.594872 224.044463 -177.16225 -46.882216 224.044463 -177.16225 -46.882216 -.00157782 .026791347 -.02521353
+C -4976.4315 301.592895 1.63111491 -224.04604 177.189039 46.8570021 64.5760272 -275.33436
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 12 subcases that confirm various aspects of switches that
+C touch compensation-based elements.
+C Ivano Bonfanti of CESI in Milano, Italy, published this troublesome data
+C in LEC's EMTP News, Vol. 2, no. 3, September, 1989. Although the answer
+C here is slightly different than the published "M39." EMTP answer shown by
+C Bonfanti, either is believed to be correct for engineering purposes. The
+C machine obviously is in the steady state as it should we. WSM, 28 Jan 96.
+C Note EPSILN = 1.E-8 a few lines below is needed to restore default value
+C of STARTUP following distortion of the 3rd subcase. Without restoration,
+C the answer will be quite different because U.M. uses this to build network
+C during the 4 phasor solutions.
+PRINTED NUMBER WIDTH, 10, 1, { 10-digit col width including 1 blank separators
+POWER FREQUENCY, 50
+ 2.E-4 .020 50. 0.0 1.E-8
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+11CARICO -4797. -1. 1.
+91COPPI1 -1. 1.
+99COPPIA =CARICO+COPPI1
+33COPPIA
+BLANK card ending TACS
+ FEMR CBR .37024 1.196 1
+ FEMS CBS .37024 1.196 1
+ FEMT CBT .37024 1.196 1
+C ----- Motor parasitic capacitances
+ M1.R .02 1
+ M1.S .02 1
+ M1.T .02 1
+ CSMT 1000. { Motor neutral grounding resistance
+C ----- Mechanical network
+ ROTORD 1.E-08
+ ROTORQ 1.E-08
+ COPPIA 9.16E6 2
+ COPPI1COPPIA 1.0E-6
+BLANK ENDING BRANCHES
+ COPPI1COPPI2 MEASURING 1
+ CBR M1.R -1. 15.00 1
+ CBS M1.S -1. 15.00 1
+ CBT M1.T -1. 15.00 1
+BLANK ENDING SWITCHES
+14FEMR 1 4898.98 50. 0. -1.0 1.
+14FEMS 1 4898.98 50. -120. -1.0 1.
+14FEMT 1 4898.98 50. 120. -1.0 1.
+14COPPI2-1 -1. 1.E-9 0. -1.0 1.
+60COPPIA-1
+19 UM
+01 0 { Compensation; use "1" rather than "0" for prediction
+BLANK card ends Class-1 cards
+ 3 1 1111COPPIA 1
+ 0.0 0.3964
+ 0.0 0.3964
+ 4. COPPI2
+ .1674 .001 M1.R CSMT 1
+ .1674 .01 M1.S CSMT 1
+ .1674 .01 M1.T CSMT 1
+ .78187 .00453 ROTORD 1
+ .78187 .00453 ROTORQ 1
+BLANK card ending U.M. coils
+BLANK ENDING SOURCES
+C Total network loss P-loss by summing injections = 5.005262016348E-01
+C Total network loss P-loss by summing injections = 3.007635104268E+04
+C Total network loss P-loss by summing injections = 3.007585104268E+04
+C Total network loss P-loss by summing injections = 3.008749127839E+04
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C COPPI1 COPPI2 4.82497291E+03 0.00000000E+00 4.82497291E+03 0.0000 7.27577133E+05 0.00000000E+00
+C CBR M1.R 2.12219079E+02 -9.54916543E+01 2.32713544E+02 -24.2262 5.09803228E+05 2.01520807E+05
+C CBS M1.S -1.88807738E+02 -1.36041286E+02 2.32713544E+02 -144.2262 5.09803228E+05 2.01520807E+05
+C CBT M1.T -2.34113411E+01 2.31532941E+02 2.32713544E+02 95.7738 5.09803228E+05 2.01520807E+05
+C 1 of 4 gen: COPPIA 301.59289474462 301.59289474462 4824.9729075506 4824.9729075506 727588.77312628 727588.77312628
+C 0.0 0.0 .17357870652E-4 0.0000002 -.0026175052283 1.0000000
+C
+C 2 of 4 gen: FEMR 4898.98 4898.98 212.21907905668 232.71354399216 519828.51195855 570029.49887335
+C 0.0 0.0 -95.49165430404 -24.2261891 233905.85230121 0.9119327
+C
+C FEMS -2449.49 4898.98 -188.807738005 232.71354399216 519828.51195855 570029.49887335
+C -4242.641132632 -120.0000000 -136.0412864788 -144.2261891 233905.85230121 0.9119327
+C
+C FEMT -2449.49 4898.98 -23.41134105164 232.71354399216 519828.51195855 570029.49887335
+C 4242.6411326319 120.0000000 231.53294078285 95.7738109 233905.85230121 0.9119327
+C
+C Step Time COPPIA COPPI1 CBR CBS CBT FEMR FEMS FEMT M1.R M1.S M1.T
+C TERRA COPPI2 M1.R M1.S M1.T CBR CBS CBT TERRA TERRA TERRA
+C
+C TACS UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C COPPIA TQGEN OMEGM THETAM IPA IPB IPC IE1 IE2
+C *** Phasor I(0) = 4.8249729E+03 Switch "COPPI1" to "COPPI2" closed in the steady-state.
+C *** Phasor I(0) = 2.1221908E+02 Switch "CBR " to "M1.R " closed in the steady-state.
+C *** Phasor I(0) = -1.8880774E+02 Switch "CBS " to "M1.S " closed in the steady-state.
+C *** Phasor I(0) = -2.3411341E+01 Switch "CBT " to "M1.T " closed in the steady-state.
+C 0 0.0 301.59289 4824.9729 212.21908 -188.8077 -23.41134 212.21908 -188.8077 -23.41134 .00137262 .024922 -.0262946
+C 0.0 -4824.973 301.59289 1.5707963 -212.2177 188.83266 23.385046 74.005629 -268.4606
+C 1 .2E-3 301.59289 4824.9729 217.79488 -179.8952 -37.89965 217.79488 -179.8952 -37.89965 -.4897E-3 .02588688 -.0253972
+C 27.972911 -4824.959 301.59289 1.6311149 -217.7954 179.92112 37.874249 73.334597 -268.6438
+C 2 .4E-3 301.5932 4824.9729 222.51143 -170.273 -52.23846 222.51143 -170.273 -52.23846 -.002339 .02673945 -.0244004
+C 27.972911 -4824.941 301.59289 1.6914335 -222.5138 170.29971 52.21406 72.662955 -268.8252
+BLANK ENDING OUTPUT REQUEST
+C 100 .02 301.64888 4824.9729 211.99353 -188.6458 -23.34774 211.99353 -188.6458 -23.34774 .00136234 .02495568 -.026318
+C 27.972911 -4819.913 301.64979 7.6030487 -211.9922 188.67075 23.321418 5.0277011 -278.1347
+C Variable maxima : 301.64888 4824.9729 232.67504 232.63158 232.51922 232.67504 232.63158 232.51922 .02962796 .02960618 .02960763
+C 27.972911 -4819.913 301.65916 7.6030487 232.6071 232.54547 232.60707 74.005629 -268.4606
+C Times of maxima : .02 .0118 .0014 .008 .0146 .0014 .008 .0146 .0152 .002 .0084
+C .0118 .02 .0122 .02 .0114 .018 .0046 0.0 0.0
+C Variable minima : 301.59289 4824.9729 -232.5957 -232.5347 -232.5969 -232.5957 -232.5347 -232.5969 -.029647 -.0296246 -.0296779
+C 0.0 -4824.973 301.59289 1.5707963 -232.6864 -232.6424 -232.5295 5.0277011 -278.1347
+C Times of minima : .2E-3 0.0 .0114 .018 .0046 .0114 .018 .0046 .0052 .0118 .0184
+C 0.0 0.0 0.0 0.0 .0014 .008 .0146 .02 .02
+ PRINTER PLOT
+ 194 5. 0.0 20. UM-1 TQGEN COPPI2COPPI1 { Limits: (-4.825, 0.000)
+ 194 5. 0.0 20. TACS COPPIAUM-1 THETAM { Limits: (0.000, 2.797)
+ 194 4. 0.0 20. BRANCH { Limits: (-2.327, 3.017)
+ M1.R CBR M1.S CBS M1.T CBT UM-1 OMEGM
+ 194 4. 0.0 20. BRANCH { Limits: (-2.327, 2.326)
+ UM-1 IPA UM-1 IPB UM-1 IPC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 12 subcases that confirm various aspects of switches that
+C touch compensation-based elements. This is like the 1st except
+C that here we have 3 phases. As explained in the July, 1996,
+C newsletter, Marjan Popov in Macedonia first complained of trouble.
+C Prior to 1 June 1996, step 2 would never be reached because the
+C error occurred following opening on step 1. Here, we go 3 steps:
+ .000050 .000150 50. 50. 1.E-9
+ 1 1
+TACS HYBRID
+C Note. Mr. Popov used MODELS, and he had complicated dynamics. But
+C none of that complexity was required to demonstrate the trouble
+C (KILL = 209). So, instead use simpler TACS model of 1st subcase:
+99RESIS = 1.E-6
+77RESIS 1.E-6
+33RESIS
+BLANK card ending TACS
+$DEPOSIT, MATFUL=1 { Internal conversion of Type-51, 52, ... to unsymmetric data
+C Add preceding definition of MATFUL on 6 August 2008 as the update to allow
+C unsymmetric branch [R], [L] is being packaged. Of course, the following three
+C coupled branches are symmetric, so by pretending that they are not we merely
+C waste both storage (the size of List 3 will increase by 3 cells) and computer
+C time (the unsymmetric phasor solution requires more work). As for location,
+C there is no magic. If MATFUL has value unity at the start of a Type-51, 52,
+C ... branch group, ATP will convert the R-L data to unsymmetric (full matrix)
+C storage. To turn off this "service," use $DEPOSIT, MATFUL=0 which will be
+C found near the start of the following subcase (it could be moved to this one,
+C to any point below the Type-53 branch card, just as well). WSM.
+51SRCR BUSR 21.07 { ZERO SEQUENCE
+52SRCS BUSS 2.39 { POSITIVE SEQUENCE
+53SRCT BUST
+$VINTAGE, 1
+ 1LINBR LINER 3.98507949E+00 1.16971333E+01 5.00880327E+01
+ 2LINBS LINES 1.64595110E+00 3.84463816E+00 -7.10131829E+00
+ 3.81191239E+00 1.21114617E+01 4.86330090E+01
+ 3LINBT LINET 1.57601253E+00 4.21324332E+00 -8.66201631E+00
+ 1.50186508E+00 4.04356685E+00 -6.51737363E+00
+ 3.69294935E+00 1.24065061E+01 4.91034827E+01
+$VINTAGE, 0
+91ARCR LINBR TACS RESIS 2
+91ARCS LINBS TACS RESIS 2
+91ARCT LINBT TACS RESIS 2
+C NAME NAME REFERENCE R(OHM)X(OHM)C(miF)
+ BUSR 0.314 { Bus bar capacitances
+ BUSS 0.314
+ BUST 0.314
+C Provide linear elements connected to ARCR, ARCS, ARCT (leakage to ground):
+ ARCR 1.E8
+ ARCS 1.E8
+ ARCT 1.E8
+BLANK Card ending branch cards
+ BUSR ARCR -0.1 2.60 1
+ BUSS ARCS -0.1 2.60 1
+ BUST ARCT -0.1 2.60 1
+ ARCR LINBR -0.1 0.000 50.E3
+ ARCS LINBS -0.1 0.001 50.E3
+ ARCT LINBT -0.1 0.001 50.E3
+BLANK Card ending switch cards
+14SRCR 89814. 50. 0. 0. -1.
+14SRCS 89814. 50. 120. 0. -1.
+14SRCT 89814. 50. -120. 0. -1.
+BLANK Card ending source cards
+ LINER LINES LINET BUSR BUSS BUST
+BLANK Card ending output cards
+C Step Time LINER LINES LINET BUSR BUSS BUST BUSR BUSS BUST TACS
+C ARCR ARCS ARCT RESIS
+C *** Phasor I(0) = -1.2037996E-01 Switch "BUSR " to "ARCR " closed in the steady-state.
+C *** Phasor I(0) = -4.2912571E+00 Switch "BUSS " to "ARCS " closed in the steady-state.
+C *** Phasor I(0) = 4.3267803E+00 Switch "BUST " to "ARCT " closed in the steady-state.
+C *** Phasor I(0) = -1.2127823E-01 Switch "ARCR " to "LINBR " closed in the steady-state.
+C *** Phasor I(0) = -4.2908080E+00 Switch "ARCS " to "LINBS " closed in the steady-state.
+C *** Phasor I(0) = 4.3272295E+00 Switch "ARCT " to "LINBT " closed in the steady-state.
+C 0 0.0 89846.7243 -44918.879 -44929.061 89826.4331 -44913.159 -44913.549 -.12037996 -4.2912571 4.32678032 1.E-6
+C *** Open switch "ARCR " to "LINBR " after 5.00000000E-05 sec.
+C 1 .5E-4 89835.7272 -46135.534 -43701.414 89815.3391 -46129.508 -43686.133 -.20216547 -4.2510535 4.36857684 1.E-6
+C 2 .1E-3 89802.5653 -47340.817 -42462.973 89782.085 -47334.497 -42447.917 -.28390448 -4.2098234 4.40932077 1.E-6
+C 3 .15E-3 89747.2461 -48534.443 -41214.032 89726.6777 -48527.808 -41199.225 -.3655754 -4.1675019 4.44892539 1.E-6
+BLANK CARD ending plot
+BEGIN NEW DATA CASE
+C 6th of 12 subcases illustrates trouble with compensation-based elements
+C even though no switch is involved. The data came from Gabor Furst on
+C 14 Sept 2000 as mentioned in the January, 2001, newsletter. Execution
+C should be stopped in overlay 16 because the Type-91 element R(t) is not
+C isolated in a separate subnetwork from the U.M. Case-summary statistics
+C show List 24 = 4 as the number of phases of compensation. This is
+C entirely wrong: Size 21-30: 0 0 9 4 337 ...
+C STEP ZERO COUPLE { If activated, the correct KILL = 9 of overlay 15 results
+C 20 May 2001, the answer changes following correction to SOLVUM to
+C solve a problem from Dr. Michael Steurer of CAPS at Florida State.
+C No, answer is not right. It remains wrong, but is a different wrong
+C because compensation logic has been modified.
+C 23 May 2001, introduce request for special verification of possible
+C overlap between U.M. compensation and that of List-9 elements. This is
+C in OVER16 (to find the code, search for KOMPUM). Add new request:
+VERIFY U.M. COMPENSATION { If removed, KILL = 9 error termination will disappear
+$DEPOSIT, MATFUL=0 { Cancel conversion of Type-51, 52, ... to unsymmetric data
+UM TO TACS
+ 5.0E-4 5.E-4 50.0 { Only 1 time step is needed to demonstrate the error
+ 1 1
+TACS { The Rule Book recommends TACS HYBRID or TACS STAND ALONE, but this works
+92TQGEN
+98TPER = 1/FREQHZ
+ 1TAVG1 +TQGEN 1
+ 1.0
+ 1.0 0.020
+ 1TAVG +TAVG1 1.0
+ 1.0
+ 1.0 0.020
+98ROTRES = 1000.0*(1.0 - TIMEX/8.0)
+33IM TAVG TQGEN ROTRES
+BLANK card ending TACS data
+ SRA MOTA 1.00 { source impedance ohm } 1
+ SRB MOTB 1.00 1
+ SRC MOTC 1.00 1
+C Tops of 3 rotor coils are grounded through 1/2-ohm resistors:
+ XOTA 0.50 { Fixed resistance for rotor phase a } 1
+ XOTB 0.50 { Fixed resistance for rotor phase b } 1
+ XOTC 0.50 { Fixed resistance for rotor phase c } 1
+C Bottoms of 3 rotor coils are connected to neutral NEUT, which then is
+C grounded by the following TACS-defined, time-varying resistor:
+91NEUT TACS ROTRES { Variable resistance in rotor circuit } 1
+C But node NEUT is connected to no linear branch. To avoid a warning
+C message, parallel the preceding R(t) by fixed high reistance:
+ NEUT 1.E6
+C the anlogue network records follow
+C the separator from the 14 source
+ INERS INER 1.E-6
+ INER 3.3E7 {inertia uF}
+C the damping term in ohms
+ INER 2.26 {damping 1/mho}
+BLANK ending BRANCHes
+BLANK ending SWITCHes
+14SRA 3400.00 50.0 0.0 -1
+14SRB 3400.00 50.0 240.0 -1
+14SRC 3400.00 50.0 120.0 -1
+C the source for the analogue network
+14INERS -1 0.000001 .0000001 -1
+C the source of any additional load applied
+14INERS -1 -0.000001 0.0000001 5.00
+19 { Begin U.M. data for single 3-phase induction motor with wound rotor
+ 0 0 { Note no auto-initialization (no multiple phasor solutions)
+BLANK
+ 4 111INER 2 0.15700
+ 0.465131
+ 0.465131
+C armature coils
+ MOTA 1
+ 0.3393571 0.0109180 MOTB 1
+ 0.3393571 0.0109180 MOTC 1
+C rotor coils
+ 0.5785651 0.0109180 XOTB NEUT 1
+ 0.5785651 0.0109180 XOTC NEUT 1
+ XOTA NEUT 1
+BLANK card ending U.M. data
+BLANK card ending sources
+BLANK card ending output variables requests (none here, since all column 80)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 12 subcases illustrates new TACS R-thev option on rotor coil
+C cards to define connected resistance using a TACS variable. It does
+C not solve the preceding problem, but it avoids it, and is superior
+C for cases of common interest. See January, 2000, newsletter. Data is
+C from preceding subcase, although here we energize the motor. To speed
+C the simulation, double Gabor Furst's dT and shorten his T-max (was 8):
+ .001 2.0 50.0
+ 1 3 1 0 1 -1
+ 5 5 20 20 100 100 200 200
+TACS HYBRID
+98ROTRES = 10. * ( 1.0 - TIMEX / 2.0 ) { Linear ramp of R from 10 ohms to zero
+33ROTRES { Output this one and only TACS variable of interest
+77ROTRES 10. { Initial condition is needed for smooth start (not R=0)
+BLANK card ending TACS cards
+ SRA MOTA 1.00 { Source impedance = 1 ohm reactive.
+ SRB MOTB 1.00 { This separates the machine armature
+ SRC MOTC 1.00 { MOT from the infinite bus SR.
+ XOTA 100. { Resistance across each rotor coil is
+ XOTB 100. { arbitrary since it will be replaced
+ XOTC 100. { by value of TACS signal ROTRES, anyway
+C the anlogue network records follow
+C the separator from the 14 source
+ INERS INER 1.E-6
+ INER 3.3E7 {inertia uF}
+C the damping term in ohms
+ INER 2.26 {damping 1/mho}
+BLANK card ending BRANCH cards
+BLANK card ending SWITCH cards
+14SRA 3400.00 50.0 0.0 -1.
+14SRB 3400.00 50.0 240.0 -1.
+14SRC 3400.00 50.0 120.0 -1.
+C the source for the analogue network
+14INERS -1 0.000001 .0000001 -1.
+C the source of any additional load applied
+14INERS -1 -0.000001 0.0000001 5.00
+19 { Begin U.M. data, which will consist of a single 3-phase induction motor
+C No autoinitialization. Also, this data does use compensation on both sides.
+ 0 0
+BLANK
+ 4 111INER 2 0.15700
+ 0.465131
+ 0.465131
+C 3 armature coils come first:
+ MOTA 1
+ 0.3393571 0.0109180 MOTB 1
+ 0.3393571 0.0109180 MOTC 1
+C 3 rotor coils follow:
+ 0.5785651 0.0109180 XOTB 1 TACS R-thev ROTRES
+ 0.5785651 0.0109180 XOTC 1 TACS R-thev ROTRES
+ XOTA 1 TACS R-thev ROTRES
+C Note about preceding. The request word is "TACS R-thev " in columns 63
+C through 74. It is to be followed by the A6 name of a TACS variable in
+C columns 75-80. Each coil can have a different TACS variable (the three
+C being the same means that the 3-phase resistance is balanced.
+BLANK card ending U.M. data cards
+BLANK card ending source cards
+BLANK card ending output specifications (none here)
+ 193 .4 0.0 2.0 0.0 200.UM-1 OMEGM
+C 193 .2 0.0 2.0 UM-1 IE1 { A vector plot really is needed for this
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 12 subcases is similar to 1st (Janko's data), but is slightly
+C different. Prior to correction on 14 October 2000, the solution was
+C wrong following closure of the switch to ground. Data was contributed
+C by Steve Nurse of Reyrolle in England on 11 Oct 2000. The following
+C data is a smaller, simpler illustration of the problem:
+C
+C GEN SEND Type-91 LOAD 1.0
+C o------_-------||------/\/\/\-------||------/\/\/\-------|| E
+C ^ || R = 1 || R = 1 || a
+C MEASURING || || || r
+C switch || || || t
+C (always ||--------/----------||--------/----------|| h
+C closed) 1st, switch 2nd, switch
+C will open will close
+C
+C There are 3 switches, with one permanently closed. All 3 touch the
+C compensation-based Type-91 element. Simulation begins with the Type-91
+C element shorted, so the source GEN feeds the 1-ohm resistor from
+C LOAD to ground. The current is 6 volts / 1 ohm = 6 amps. But then
+C the switch from SEND to LOAD opens, inserting the Type-91, adding
+C another ohm. This drops the current to 3 amps. Finally, the ordinary
+C 1-ohm resistor from LOAD to ground is shorted, restoring the current
+C to 6 amps. Prior to correction, the final change did not happen. See
+C also the 8th (final) subcase of DC-68, for which answers changed
+C slightly as a result of this change to OVER16.
+PRINTED NUMBER WIDTH, 10, 1, { Request maximum precision (for 8 output columns)
+ .001 .009
+ 1 -1 1
+91SEND LOAD 3333. 1
+C -------R(tr)---------><-----tr---------------->
+ 0.001 { V of flashover gap
+ 1.0 0.0
+ 1.0 .020
+ 9999
+ SEND 10.E8 { Avoid ATP warning and such internal addition
+ LOAD 1.0 1
+BLANK card ending branch cards
+C Switch data: T-close T-open I-epsiln
+ LOAD SEND -1.0 .0025 1.E8 1
+ LOAD .0065 1.0 1
+ GEN SEND MEASURING 1
+BLANK card ending switch cards
+11GEN 6.0
+BLANK card ending source cards
+ GEN SEND LOAD
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 5 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN SEND LOAD LOAD LOAD GEN SEND LOAD
+C SEND TERRA SEND LOAD TERRA
+C *** Switch "LOAD " to "SEND " closed before 0.00000000E+00 sec.
+C *** Switch "GEN " to "SEND " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-2 6.0 6.0 6.0 -6. 0.0 6.0 0.0 6.0
+C 2 .002 6.0 6.0 6.0 -6. 0.0 6.0 0.0 6.0
+C *** Open switch "LOAD " to "SEND " after 3.00000000E-03 sec.
+C 3 .003 6.0 6.0 6.0 0.0 0.0 6.0 0.0 6.0
+C 4 .004 6.0 6.0 0.0 0.0 0.0 .6E-8 0.0 0.0
+C 5 .005 6.0 6.0 3.0 0.0 0.0 3.0 3.0 3.0
+C 6 .006 6.0 6.0 3.0 0.0 0.0 3.0 3.0 3.0
+C *** Close switch "LOAD " to " " after 7.00000000E-03 sec.
+C 7 .007 6.0 6.0 3.0 0.0 0.0 3.0 3.0 3.0
+C 8 .008 6.0 6.0 0.0 0.0 6.0 6.0 6.0 0.0
+C 9 .009 6.0 6.0 0.0 0.0 6.0 6.0 6.0 0.0
+BLANK card ending output variables requests (just node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 9th of 12 subcases is unrelated to preceding subcases.
+C Illustrate that the 3-phase compensation of DC-34 can coexist with single-
+C phase compensation of a disconnected Type-93 nonlinear reactor. Prior to
+C correction to SOLVUM on 20 May 2001, the solution was obviously wrong.
+C The first report of such trouble came from Dr. Michael Steurer of CAPS at
+C Florida State University in Tallahassee. His data involved a Type-91
+C TACS-controlled resistor, but in fact TACS had nothing to do with the
+C trouble, so is not being involved in the present illustration.
+C Comment about 6th subcase: It, too, involves both 3-phase compensation
+C of the U.M. and 1-phase compensation of a separate element. But that
+C data was illegal because the two were not isolated in disconnected
+C subnetworks.
+POWER FREQUENCY, 60.0, { Europeans need this (LEC letter dated 6 Jan 89, page 2)
+PRINTED NUMBER WIDTH, 11, 1, { Restore default STARTUP column width, separation
+ .001 .500
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+ 0 BUS-F0 1.0
+ 0 BUS-A0 1.0
+ 0 BUS-B0 1.0
+ 0 BUS-C0 1.0
+ 0BUS-A1BUS-A0 0.02 1.0610
+ 0BUS-B1BUS-B0BUS-A1BUS-A0
+ 0BUS-C1BUS-C0BUS-A1BUS-A0
+ 0BUS-M1 2.00E6 1
+ 0BUS-M0 2.00E6 1
+ 0BUS-M0BUS-M1 1. 1
+C End of DC-34 branches; begin branches from DC-45b. Note that these
+C involve different names, so are completely disconnected from the machine.
+C This single-phase subnetwork will illustrate an energization transient:
+ GEN TRAN 2.0 1
+93TRAN 1.0 1.0 1
+ 0.0 0.0
+ 0.9 0.9
+ 2.0 1.1
+ 10. 1.2
+ 9999
+BLANK card ends the last branch card
+BLANK card ends (in this case nonexistent) switch cards
+11BUS-F0 0.002091 { 18 Oct 90, remove ineffective T-start = -1.0 from card
+11BUS-M0-1 1.02
+11BUS-M0-1 -.4 .019500
+14BUS-A0 1.41421356 60.0 0.0
+14BUS-B0 1.41421356 60.0 -120.0
+14BUS-C0 1.41421356 60.0 120.0
+C End of DC-34 static sources. B4 the U.M., insert the source from DC-45b:
+14GEN 377. 60.
+19 UM { Beginning of U.M. data (Type-19 source)
+1
+BLANK card ending class-1 U.M. data
+ 1 2 1111BUS-M1 1 1786.98 { 1st card of U.M. machine table
+1.0 1.550 0 0.3 1.5 1.0
+0.93787 1.490 0
+0.0 0.0 BUS-A1 1 1.3860 { 1st card of coil table
+0.001096 0.150 BUS-B1 1 -0.95877
+0.001096 0.150 BUS-C1 1 -0.42721
+0.00074 0.101 BUS-F0 1 -2.826
+0.0131 0.055 1
+0.0540 0.036 1
+BLANK card ending all U.M. data
+BLANK card ending EMTP source cards
+C Total network loss P-loss by summing injections = 2.999999989932E+00
+ 2BUS-A1 1.56413 { First of many initial condition cards for the
+ 2BUS-B1 -0.30745 { electric network. Since the U.M. is not a
+ 2BUS-C1 -1.25677 { part of the phasor solution (see DCNEW-1 for
+ 2BUS-A0 1.41421356 { such a more modern problem), synchronous
+ 2BUS-B0 -0.70710678 { operation can begin smoothly only if the
+ 2BUS-C0 -0.70710678 { initially conditions are manually applied.
+ 2BUS-F0 0.002091
+ 2BUS-M0 1.0
+ 2BUS-M1 1.0 { Final card of node voltage initial conditions
+ 3BUS-A1BUS-A0 1.38494 { 1st card of branch current initial conditions
+ 3BUS-B1BUS-B0 -0.95793
+ 3BUS-C1BUS-C0 -0.42701
+ 3 BUS-A0 -1.41421356
+ 3 BUS-B0 +0.70710678
+ 3 BUS-C0 +0.70710678
+ 3 BUS-F0 -0.002091
+ 3BUS-M0BUS-M1 +1.01
+ 3BUS-M0 +1.0
+ 3BUS-M1 +1.0 { Last card of branch current init. condit.
+ TRAN BUS-M1BUS-M0 { Request for selective node voltage output
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 5 output variables are branch currents (flowing from the upper node to the lower node);
+C Final 9 output variables pertain to Type-19 U.M. components (names are generated internally);
+C Step Time TRAN BUS-M1 BUS-M0 TRAN BUS-M1 BUS-M0 BUS-M0 GEN UM-1 UM-1
+C TERRA TERRA TERRA BUS-M1 TRAN TQGEN OMEGM
+C UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C THETAM IPA IPB IPC IE1 IE2 IE3
+C 0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 1.01 0.0 1.00124132 1.0
+C .93787 1.386 -.95877 -.42721 -2.826 0.0 0.0
+C 1 .1E-2 350.17556 1.00000302 1.0000025 .17508778 .012094107 .010000262 1.00999974 .17508778 .997905631 1.0
+C .93787 1.40049668 -.50888659 -.89163009 -2.8259503 .85956E-4 -.00481942
+C 2 .002 273.846974 1.00000988 1.0000075 .487099047 .015338089 .010001714 1.00999829 .487099047 .994660197 1.0
+C .93787 1.22097729 .010653511 -1.2316108 -2.8258183 .309395E-3 -.0092568
+C 3 .003 159.111636 1.00001841 1.0000125 .703578352 .018762645 .010005857 1.00999414 .703578352 .991231498 1.0
+C .93787 .870655506 .528248848 -1.3989244 -2.8248425 .001999525 -.01265851
+BLANK card ending the specification of output variables
+C 500 0.5 377.026496 1.00472639 1.00854631 -.01324809 -.13068128 .049259392 .570740608 -.01324809 .701421892 1.00469204
+C .660491474 .974954484 -.86183035 -.11310413 -2.4109229 -.04254056 .118833141
+C Variable max: 377.260976 1.00779145 1.00854631 1.25309712 .260847165 .297988719 1.01 1.25309712 1.0019948 1.00877611
+C .93787 1.41537866 1.40559809 1.40738077 -2.0788757 .133544596 .152562874
+C Times of max: .05 .442 0.5 .471 .378 .296 0.0 .471 .015 .439
+C .064 .034 .056 .045 .358 .176 .471
+C Variable min: -376.94611 .989230544 .990404468 -6.3622515 -.29505746 -.3892114 .322011281 -6.3622515 .29918812 .988252614
+C .361026488 -1.4043962 -1.4122326 -1.411928 -2.826 -.04419925 -.18596365
+C Times of min: .475 .158 .217 .012 .102 .02 .296 .012 .346 .159
+C .358 .059 .031 .02 0.0 .485 .188
+ PRINTER PLOT
+ 193 .1 0.0 1.0 UM-1 THETAM { Plot limits: (0.000, 9.379)
+C The preceding plot is identical to DC-34, so provides the simplest way to
+C validate the solution of the U.M. As for the Type-93 reactor, inrush
+C current is shown by the following vector plot. It seems believable, and
+C is unchanged by deletion of all data related to DC-34.
+ CALCOMP PLOT
+ 193.05 0.0 0.5 -7.0 1.0TRAN
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 10th of 12 subcases is derived from 1st to demonstrate that the TACS dc
+C solution in fact represents the superposition of the network solution
+C within TACS (driven by Type-11 sources, which are batteries) and the
+C user-supplied initial conditions.
+ 1.E-5 1.E-5
+ 1 1 1 2
+TACS HYBRID
+C 99RESIS = 1.E-6
+C 77RESIS 1.E-6
+C Replace the preceding 2 lines (see 1st subcase) in attempt to demonstrate
+C that the TACS dc solution printout is the sum of the TACS network solution
+C value and the initial condition value: -37.E-6 + 38.E-6 = 1.E-6 (same as
+C the 1st subcase). Unfortunately, this has not yet been accomplished. But
+C different treatment of the initial condition is easily demonstrated. The
+C following shows 4 different ways to define a TACS variable. All will be
+C given the same initial condition value 38.E-6. But two of the four will
+C have one value for dc printout, and the remaining two will have another.
+11SOURCE -37.E-6 { Note T-start < 0 so TACS phasor solve } -1. 1.
+C Following RESA and RESB will show source value (-37.E-6) in dc printout:
+ 0RESA +SOURCE
+ 1RESB +SOURCE
+ 1.
+ 1. 1.
+C Following RESC & RESD will show initial condition valu (+38) in dc printout:
+ 1RESC +SOURCE
+ 1.
+ 1.
+88RESD = 1.E-6
+77RESA 38.E-6
+77RESB 38.E-6
+77RESC 38.E-6
+77RESD 38.E-6
+33RESA RESB RESC RESD
+BLANK card ending TACS
+91N1 N2 TACS RESA 1
+ N1 N12 1.E-6
+ N2 1.
+BLANK card ending branches
+ N12 N2 MEASURING
+ SRCE N1 MEASURING 1
+BLANK card ending switches
+14SRCE 100. 60. 0.0 0. -1.
+BLANK card ending sources
+C Zero-frequency (dc) steady-state solution for TACS follows.
+C (Name) TACS value (Name) TACS value (Name) TACS value (Name) TACS value (Name) TACS value
+C RESA -3.70000000E-05 RESB -3.70000000E-05 RESC 3.80000000E-05 RESD 3.80000000E-05
+BLANK card ending output variables (none)
+BLANK card ending plot
+BEGIN NEW DATA CASE
+C 11th of 12 subcases always should be last since it demonstrates a halt
+C to execution using CALL STOPTP. This is added 29 August 2002 to
+C illustrate what previously was a tight loop within Z-thev computation
+C of OVER16. There is similarity to the 6th subcase. But whereas that
+C data would simulate (giving the wrong answer), this data would die.
+C The original complaint was in E-mail of the EEUG list server dated
+C 22 August 2002. In this, Alejandro Montenegro at the University of
+C Florida asked: "The problem appears when I combine TACS-controlled
+C Type 13 switches, Type 94 components and UM type 3." But the present
+C data is much simpler. Only the Type-3 U.M. is used. No TACS, no
+C MODELS, and no switches at all. The fundamental problem was an overlap
+C of compensation, and it led to an unbounded index prior to the trap
+C that this subcase illustrates.
+ .000100 .15
+ 1 -1 1
+C Begin with 3 single-phase nonlinear reactors in the same subnetwork as the
+C U.M. It is not clear why all 3, rather than just 1, is required for
+C the tight loop. But this seems to be the case.
+93VPA VA .559 300. 1
+ 0.0 0.0
+ .5590 300.
+ .9344 400.
+ 9999
+93VPB VB VPA VA .559 300. 1
+93VPC VC VPA VA .559 300. 1
+C Nodes VA, VB, and VC have no connected linear branch. To prevent warning
+C messages about floating subnetwork, & automatic additions to ground, add C:
+ VA 1.0 { Shunt capacitance avoids floating
+ VB 1.0 { Shunt capacitance avoids floating
+ VC 1.0 { Shunt capacitance avoids floating
+C The following 2 lines are rotor mass and damping from Bonfanti's motor:
+ COPPIA 9.16E6 2
+ COPPI2COPPIA 1.0E-6
+BLANK card ending branch cards
+BLANK card ending switches
+14VPA 10777.75 60. -1. 10.
+14VPB 10777.75 60. -120. -1. 10.
+14VPC 10777.75 60. 120. -1. 10.
+C The following is Bonfanti's motor from the 3rd subcase.
+14COPPI2-1 -1. 1.E-9 0. -1.0 9999.
+19 UM
+01 0 - Compensation; change 0 to 1 if prediction is wanted
+BLANK general UM specification
+ 3 1 1111COPPIA 1
+ 0.0 0.3964
+ 0.0 0.3964
+ 4. COPPI2
+ .1674 .001 VA 1
+ .1674 .01 VB 1
+ .1674 .01 VC 1
+ .7819 .00453 1
+ .7819 .00453 1
+BLANK card ending U.M. data
+BLANK card ending sources
+ VA VB VC VPA VPB VPC { Names of nodes for node voltage output
+BLANK card ending output variables
+BLANK card ending plot
+C Document the end of output of this 11th data subcase. This begins
+C exactly as in years past. An error is recognized after the dT-loop heading:
+C UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C TQGEN OMEGM THETAM IPA IPB IPC IE1 IE2
+C Error. Halt execution above S.N. 2322 in OVER16. Compensation is in error. Bad subscript N1. If U.M. is involved, try adding
+C VERIFY U.M. COMPENSATION or STEP ZERO COUPLE as illustrated in DCN16.
+C Temporary error stop in ENTRY STOPTP of "WINDOW". NCHAIN, LASTOV = 16 15
+C 12345678901234567890123456789012345678901234567890123456789012345678901234567890
+C ABUFF(1:80) =
+C
+C So much for the old. The new adds explanation of the recovery.
+C Before output of the 12th subcase begins, there is this:
+C
+C ------------------------------------------------------------------------------------------------------------------------------------
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
+C ------------------------------------------------------------------------------------------------------------------------------------
+C
+C This is not actually a KILL error termination. But ATP now will try to continue as if it were. A recursive CALL is involved.
+C
+C ------------------------------------------------------------------------------------------------------------------------------------
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
+C ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
+C ------------------------------------------------------------------------------------------------------------------------------------
+BEGIN NEW DATA CASE
+C 12th of 12 subcases demonstrates that the STOPTP termination of the
+C preceding subcase is not fatal. By means of a recursive CALL, ATP
+C can be restarted to continue processing following data subcases such
+C as this one, which is a copy of the 1st subcase. Output is identical.
+C For brevity, connectivity and the phasor output have been omitted.
+C This modification is made 23 January 2011. WSM.
+ 1.E-5 1.E-5
+ 1 1
+TACS HYBRID
+99RESIS = 1.E-6
+77RESIS 1.E-6
+33RESIS
+BLANK card ending TACS
+91N1 N2 TACS RESIS 1
+ N1 N12 1.E-6
+ N2 1.
+BLANK card ending branches
+ N12 N2 MEASURING
+ SRCE N1 MEASURING 1
+BLANK card ending switches
+14SRCE 100. 60. 0.0 0. -1.
+BLANK card ending sources
+ N1 N12 N2
+BLANK card ending voltage printout
+BLANK card ending plot
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn17.dat b/benchmarks/dcn17.dat
new file mode 100644
index 0000000..371415b
--- /dev/null
+++ b/benchmarks/dcn17.dat
@@ -0,0 +1,646 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-17
+C 1st of 9 subcases that illustrate GIFU switch usage as described in
+C a story in the April, 1996, newsletter. A switch opens at peak current!
+C The general configuration is similar to Prof. Ned Mohan's Exercise 10. It
+C differs, however, in that there are 2 loads having two different voltages
+C (150 and 200 volts dc, respectively). The source is 100 volts dc. The
+C two high-voltage batteries are being charged by the low-voltage battery.
+C Unlike Exercise 10, this problem has only one TACS-controlled (here,
+C MODELS-controlled) switch. This carries the GIFU declaration in cols.
+C 61-64. The diodes are real, independent diodes that will be adjusted
+C experimentally on the same step that the GIFU switch changes status.
+C GIFU4.DAT --- As set up from data supplied by Prof. Yoshihiro Murai
+ .010E-6 10.E-6 1.E-5
+ 100 1 1 1 1 -1
+ 399 1 405 5 425 25 500 100
+MODELS
+OUTPUT SIG
+MODEL ONOFF
+VAR SIG
+OUTPUT SIG
+EXEC
+ IF (t MOD 1.E-5) < 0.4 * 1.E-5 THEN
+ SIG := 1.
+ ELSE
+ SIG := 0.
+ ENDIF
+ENDEXEC
+ENDMODEL
+USE ONOFF AS SW
+ OUTPUT SIG := SIG
+ENDUSE
+RECORD
+ SW.SIG AS SIG
+ENDRECORD
+ENDMODELS
+00N1 N2 1.0E-2 3
+00N3 N5 1.
+00N4 N6 1.
+00N1 N2 1.E+4
+ N2 N3 1.E+3 0.01 1
+BLANK RECORD ENDING BRANCHES
+13N2 GIFU SIG 13
+11N2 N4 13
+11N2 N3 13
+BLANK RECORD ENDING SWITCHES
+11N1 100. 0.0000000
+11N5 150. 0.0000000
+11N6 200. 0.0000000
+BLANK RECORD ENDING SOURCES
+C Step Time N1 N2 N2 N2 N2 N2 N2 N1 N2 MODELS
+C N2 TERRA N4 N3 TERRA N4 N3 N2 N3 SIG
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0
+C Switch "N2 " to " " closing after 1.00000000E-08 sec.
+C 100 .1E-5 100. 0.0 -200. -149.86421 9.96455754 0.0 0.0 9.81876757 -.13578997 1.0
+C 200 .2E-5 100. 0.0 -200. -149.87712 19.9516477 0.0 0.0 19.8187676 -.12288012 1.0
+C 300 .3E-5 100. 0.0 -200. -149.8888 29.9399652 0.0 0.0 29.8187676 -.11119764 1.0
+BLANK RECORD ENDING NODE VOLTAGE OUTPUT
+C 399 .399E-5 100. 0.0 -200. -149.89927 39.829494 0.0 0.0 39.7187676 -.10072641 1.0
+C Switch "N2 " to " " opening after 4.00000000E-06 sec.
+C 400 .4E-5 100. 0.0 -200. -149.89937 39.9293934 0.0 0.0 39.8187676 -.10062584 0.0
+C Diode "N2 " to "N3 " closing after 4.00000000E-06 sec.
+C 401 .401E-5 -89.814879 189.814879 -10.185121 0.0 0.0 0.0 39.7655794 39.8238601 .049299201 0.0
+C 402 .402E-5 -89.725118 189.725118 -10.274882 0.0 0.0 0.0 39.6758677 39.7340901 .049249926 0.0
+C 900 .9E-5 -54.532699 154.532699 -45.467301 0.0 0.0 0.0 4.5027675 4.53815216 .029931392 0.0
+C Diode "N2 " to "N3 " opening after 9.87000000E-06 sec.
+C Switch "N2 " to " " closing after 1.00000000E-05 sec.
+C 1000 1.E-5 .02232934 99.9776707 -100.02233 -50.000041 0.0 0.0 0.0 -.02229011 -.02228788 1.0
+C maxima : 100. 189.814879 0.0 0.0 39.9293934 0.0 39.7655794 39.8238601 .049299201 1.0
+C Times of max : .2E-7 .401E-5 0.0 0.0 .4E-5 0.0 .401E-5 .401E-5 .401E-5 0.0
+C minima : -89.814879 0.0 -200. -149.89937 0.0 0.0 -.03812688 -.02813821 -.14975663 0.0
+C Times of min : .401E-5 0.0 .2E-7 .4E-5 0.0 0.0 .987E-5 .988E-5 .2E-7 .4E-5
+ PRINTER PLOT
+ 185 1. 0.0 10. BRANCH { Limits: (-2.000, 1.898)
+ N2 N2 N3 N2 N4
+ 195 1. 0.0 10. BRANCH { Limits: (-0.004, 3.993)
+ N2 N2 N3 N2 N4
+BLANK end of plot cards
+BEGIN NEW DATA CASE
+C 2nd of 9 subcases that illustrate GIFU switch usage.
+C GIFU5.DAT --- As set up from data supplied by Prof. Yoshihiro Murai
+PRINTED NUMBER WIDTH, 10, 2, { 10-digit col width including 2 blank separators
+ 0.05E-6 5.0E-6 1.E-8
+ 10 1 1 1 -1
+ 79 1 85 5 90 10
+MODELS
+OUTPUT SIG
+MODEL ONOFF
+VAR SIG
+OUTPUT SIG
+EXEC
+ IF (T MOD 1.E-5) < 0.4*1.E-5 THEN
+ SIG := -1.
+ ELSE
+ SIG := 1.
+ ENDIF
+ENDEXEC
+ ENDMODEL
+ USE ONOFF AS SW
+ OUTPUT SIG := SIG
+ ENDUSE
+ RECORD
+ SW.SIG AS SIG
+ ENDRECORD
+ ENDMODELS
+C - - BRANCH DATA
+C --------- LOAD RESISTANCE AND INDUCTANCE
+00N1 N2 10.0 3
+00N3 N6 1.0 3
+00N2 N3 1.E+3 0.01 3
+BLANK RECORD ENDING BRANCHES
+C --------- SWITCHES BELOW REPRESENT COMBINATION OF SWITCH AND ITS ANTIPARALLEL
+C CONNECTED DIODE
+13N2 N4 GIFU SIG 13
+11N2 N3 CLOSED 13
+BLANK RECORD ENDING SWITCHES
+11N1 200.00
+11N4 100.00
+11N6 120.00
+BLANK RECORD ENDING SOURCES
+C Step Time N1 N3 N2 N2 N2 N2 N2 N1 N3 N2 MODELS
+C N2 N6 N3 N4 N3 N4 N3 N2 N6 N3 SIG
+C *** Switch "N2 " to "N3 " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.
+C 10 .5E-6 72.72727 7.272727 0.0 27.27273 0.0 0.0 7.272727 7.272727 7.272727 0.0 -1.
+BLANK RECORD ENDING NODE VOLTAGE OUTPUT
+C 79 .395E-5 72.72727 7.272727 0.0 27.27273 0.0 0.0 7.272727 7.272727 7.272727 0.0 -1.
+C Switch "N2 " to "N4 " closing after 4.00000000E-06 sec.
+C 80 .4E-5 72.72727 7.272727 0.0 27.27273 0.0 0.0 7.272727 7.272727 7.272727 0.0 1.0
+C Diode "N2 " to "N3 " opening after 4.00000000E-06 sec.
+C 81 .405E-5 100. -.01993 -19.9801 0.0 -19.9801 10.01993 0.0 10. -.01993 -.01993 1.0
+C 100 .5E-5 100. -.018126 -19.9819 0.0 -19.9819 10.01813 0.0 10. -.018126 -.018126 1.0
+C maxima : 100. 7.272727 0.0 27.27273 0.0 10.01993 7.272727 10. 7.272727 0.0 1.0
+C Times of max : .405E-5 .5E-7 0.0 .5E-7 0.0 .405E-5 .5E-7 .405E-5 .5E-7 0.0 .4E-5
+C minima : 0.0 -.01993 -19.9819 0.0 -19.9819 0.0 0.0 0.0 -.01993 -.01993 -1.
+C Times of min : 0.0 .405E-5 .5E-5 0.0 .5E-5 0.0 0.0 0.0 .405E-5 .405E-5 0.0
+ PRINTER PLOT
+ 185 1. 0.0 5. BRANCH { Limits: (-1.998, 2.727)
+ N2 N3 N2 N4
+ 195 1. 0.0 5. BRANCH { Limits: (0.000, 1.002)
+ N2 N3 N2 N4
+BLANK end of plot cards
+BEGIN NEW DATA CASE
+C 3rd of 9 subcases that illustrate GIFU switch usage. This differs from
+C the preceding subcase in that the MODELS-controlled switch used there has
+C been replaced by a thyristor (which is only simi-MODELS-controlled; yes
+C the closing is controlled, but opening is natural, on a current zero).
+C GIFU6.DAT --- As set up from data supplied by Prof. Yoshihiro Murai
+PRINTED NUMBER WIDTH, 10, 2, { 10-digit col width including 2 blank separators
+ 0.05E-6 5.0E-6
+ 10 1 1 1 1 -1
+ 79 1 85 5 90 10
+MODELS
+OUTPUT SIG
+MODEL ONOFF
+VAR SIG
+OUTPUT SIG
+EXEC
+ IF (T MOD 1.E-5) < 0.4*1.E-5 THEN
+ SIG := -1.
+ ELSE
+ SIG := 1.
+ ENDIF
+ENDEXEC
+ ENDMODEL
+ USE ONOFF AS SW
+ OUTPUT SIG := SIG
+ ENDUSE
+ RECORD
+ SW.SIG AS SIG
+ ENDRECORD
+ ENDMODELS
+C --------- LOAD RESISTANCE AND INDUCTANCE
+00N1 N2 10.0 3
+00N3 N6 1.0 3
+00N2 N3 1.E+3 0.01 3
+BLANK RECORD ENDING BRANCHES
+C --------- SWITCHES BELOW REPRESENT COMBINATION OF SWITCH AND ITS ANTIPARALLEL
+C CONNECTED DIODE
+11N2 N4 GIFUSIG 13
+11N2 N3 CLOSED 13
+BLANK RECORD ENDING SWITCHES
+11N1 200.00
+11N4 100.00
+11N6 120.00
+BLANK RECORD ENDING SOURCES
+C Step Time N1 N3 N2 N2 N2 N2 N2 N1 N3 N2 MODELS
+C N2 N6 N3 N4 N3 N4 N3 N2 N6 N3 SIG
+C *** Switch "N2 " to "N3 " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.
+C 10 .5E-6 72.72727 7.272727 0.0 27.27273 0.0 0.0 7.272727 7.272727 7.272727 0.0 -1.
+BLANK RECORD ENDING NODE VOLTAGE OUTPUT
+C 79 .395E-5 72.72727 7.272727 0.0 27.27273 0.0 0.0 7.272727 7.272727 7.272727 0.0 -1.
+C Valve "N2 " to "N4 " closing after 4.00000000E-06 sec.
+C 80 .4E-5 72.72727 7.272727 0.0 27.27273 0.0 0.0 7.272727 7.272727 7.272727 0.0 1.0
+C Diode "N2 " to "N3 " opening after 4.00000000E-06 sec.
+C 81 .405E-5 100. -.01993 -19.9801 0.0 -19.9801 10.01993 0.0 10. -.01993 -.01993 1.0
+C 100 .5E-5 100. -.018126 -19.9819 0.0 -19.9819 10.01813 0.0 10. -.018126 -.018126 1.0
+C maxima : 100. 7.272727 0.0 27.27273 0.0 10.01993 7.272727 10. 7.272727 0.0 1.0
+C Times of max : .405E-5 .5E-7 0.0 .5E-7 0.0 .405E-5 .5E-7 .405E-5 .5E-7 0.0 .4E-5
+C minima : 0.0 -.01993 -19.9819 0.0 -19.9819 0.0 0.0 0.0 -.01993 -.01993 -1.
+C Times of min : 0.0 .405E-5 .5E-5 0.0 .5E-5 0.0 0.0 0.0 .405E-5 .405E-5 0.0
+ PRINTER PLOT
+ 185 1. 0.0 5. BRANCH { Limits: (-1.998, 2.727)
+ N2 N3 N2 N4
+ 195 1. 0.0 5. BRANCH { Limits: (0.000, 1.002)
+ N2 N3 N2 N4
+BLANK end of plot cards
+BEGIN NEW DATA CASE
+C 4th of 9 subcases that illustrate GIFU switch usage. This differs from
+C the preceding subcase in that there is no diode; there are two thyristors
+C and both are declared to be GIFU switches.
+C GIFU7.DAT --- As set up from data supplied by Prof. Yoshihiro Murai
+PRINTED NUMBER WIDTH, 9, 2, { 9-digit col width including 2 blank separators
+ 1.00E-6 40.0E-6
+ 1 1 1 1 1 -1
+ 5 5 30 1 35 5
+MODELS
+OUTPUT SIG, SIGM, SIGN, SIGO,
+MODEL ONOFF
+VAR SIG, SIGM, SIGN, SIGO,
+OUTPUT SIG, SIGM, SIGN, SIGO,
+EXEC
+ IF (T MOD 1.0E-4) > 1.0*1.E-5 THEN
+ SIG := -1.
+ ELSE
+ SIG := 1.
+ ENDIF
+ IF (T MOD 1.0E-4) > 3.0*1.E-5 THEN
+ SIGM := 1.
+ ELSE
+ SIGM := -1.
+ ENDIF
+ IF (T MOD 1.0E-4) > 4.0*1.E-5 THEN
+ SIGN := 1.
+ ELSE
+ SIGN := -1.
+ ENDIF
+ SIGO := -1.+(SIGM - SIGN)
+ENDEXEC
+ ENDMODEL
+ USE ONOFF AS SW
+ OUTPUT SIG := SIG
+ OUTPUT SIGM := SIGM
+ OUTPUT SIGN := SIGN
+ OUTPUT SIGO := SIGO
+ ENDUSE
+ RECORD
+ SW.SIG AS SIG
+ SW.SIGM AS SIGM
+ SW.SIGN AS SIGN
+ SW.SIGO AS SIGO
+ ENDRECORD
+ ENDMODELS
+C --------- LOAD RESISTANCE AND INDUCTANCE
+00N1 N2 10.0 3
+00N3 N6 1.0 3
+BLANK RECORD ENDING BRANCHES
+C --------- SWITCHES BELOW REPRESENT COMBINATION OF SWITCH AND ITS ANTIPARALLEL
+C CONNECTED DIODE
+11N2 N4 GIFUSIGM 13
+11N2 N3 CLOSEDGIFUSIG 13
+BLANK RECORD ENDING SWITCHES
+11N1 200.00
+11N4 100.00
+11N6 120.00
+BLANK RECORD ENDING SOURCES
+C Step Time N1 N3 N2 N2 N2 N2 N1 N3 MODELS MODELS MODELS MODELS
+C N2 N6 N4 N3 N4 N3 N2 N6 SIG SIGM SIGN SIGO
+C *** Switch "N2 " to "N3 " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 -1. -1. -1.
+C 1 1.E-6 72.7273 7.27273 27.2727 0.0 0.0 7.27273 7.27273 7.27273 1.0 -1. -1. -1.
+C 2 .2E-5 72.7273 7.27273 27.2727 0.0 0.0 7.27273 7.27273 7.27273 1.0 -1. -1. -1.
+BLANK RECORD ENDING NODE VOLTAGE OUTPUT
+C 30 .3E-4 72.7273 7.27273 27.2727 0.0 0.0 7.27273 7.27273 7.27273 -1. -1. -1. -1.
+C Valve "N2 " to "N4 " closing after 3.10000000E-05 sec.
+C 31 .31E-4 72.7273 7.27273 27.2727 0.0 0.0 7.27273 7.27273 7.27273 -1. 1.0 -1. 1.0
+C Valve "N2 " to "N3 " opening after 3.10000000E-05 sec.
+C 32 .32E-4 100. 0.0 0.0 -20. 10. 0.0 10. 0.0 -1. 1.0 -1. 1.0
+C 40 .4E-4 100. 0.0 0.0 -20. 10. 0.0 10. 0.0 -1. 1.0 -1. 1.0
+C maxima : 100. 7.27273 27.2727 0.0 10. 7.27273 10. 7.27273 1.0 1.0 -1. 1.0
+C Times of max : .32E-4 1.E-6 1.E-6 0.0 .32E-4 1.E-6 .32E-4 1.E-6 0.0 .31E-4 0.0 .31E-4
+C minima : 0.0 0.0 0.0 -20. 0.0 0.0 0.0 0.0 -1. -1. -1. -1.
+C Times of min : 0.0 0.0 0.0 .32E-4 0.0 0.0 0.0 0.0 .11E-4 0.0 0.0 0.0
+ PRINTER PLOT
+ 185 8. 0.0 40. BRANCH { Limits: (-2.000, 2.727)
+ N2 N3 N2 N4
+ 195 8. 0.0 40. BRANCH { Limits: (0.000, 1.000)
+ N2 N3 N2 N4
+BLANK end of plot cards
+BEGIN NEW DATA CASE
+C 5th of 9 subcases that illustrate GIFU switch usage. This came from
+C Rajendra Naik, a graduate student of Prof. Ned Mohan in Minneapolis. It
+C stacks two identical power supplies in series. This is more demanding
+C than preceding cases in that a second experimental step is required for
+C to switch the second half. So, on the screen, after table dumping will
+C be seen two "table restoration" lines.
+C NAIK1.DAT --- As set up using data from grad student Rajendra Naik
+PRINTED NUMBER WIDTH, 11, 1, { 11-digit col width including 1 blank separators
+0.025E-6 6.0E-6
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 50 199 1 205 5
+TACS HYBRID
+C --------- VCONTL IS THE CONTROL VOLTAGE WHICH DETERMINES THE DUTY RATIO
+C --------- RAMP VOLTAGE REACHES 1.0 IN ONE TIME-PERIOD OF 10 MICROSECONDS
+11VCONTL 0.5
+24RAMP 1.0 10.0E-6
+98SIG1 = VCONTL .GE. RAMP
+98SIG2 = SIG1
+C --------- TACS VARIABLES TO BE OUTPUTTED
+33SIG1
+BLANK RECORD ENDING TACS
+C - - BRANCH DATA FOR TOP BUCK
+00VD SWITCP 1.0E-3
+00VOI VO 5.0E-3 3
+00VO VOI 3000.0
+00VN DIODEU 1.0E-3 1
+00VO VOUTM 1000.0 1
+00VOUTM VO 0.1 1
+C - - BRANCH DATA FOR LOWER BUCK
+00SWITCNVNEG 1.0E-3
+00VLI DIODEL 1.0E-3
+00VN 1.0E-3
+00VLI VNEG1 3000.0
+00VNEG1 VLI 5.0E-3 1
+00VNEG1 VOUTM 1000.0
+00VOUTM VNEG1 0.1
+00VOI 10.0 5.E-02
+00VLI 10.0 5.E-02
+BLANK RECORD ENDING BRANCHES
+13SWITCPVOI CLOSEDGIFU SIG1 11
+11DIODEUVOI 11
+13VLI SWITCN CLOSEDGIFU SIG2 11
+11DIODELVN 11
+BLANK RECORD ENDING SWITCHES
+11VD 10.0
+11VNEG -10.
+BLANK RECORD ENDING SOURCES
+C - - INITIAL CONDITIONS
+ 2VO 5.0
+ 2VOI 10.0
+ 3VO VOUTM 5.0
+ 3VOI VO 0.0
+ 2VNEG1 -5.0
+ 2VLI -10.
+C - - NODE VOLTAGES TO BE OUTPUTTED
+ VO VOI VNEG1 VOUTM VLI
+C Step Time VOI VO VOI VNEG1 VOUTM VLI SWITCP DIODEU VLI DIODEL
+C VO VOI VOI SWITCN VN
+C
+C VOI VN VO VOUTM VNEG1 TACS
+C VO DIODEU VOUTM VO VLI SIG1
+C *** Switch "SWITCP" to "VOI " closed before 0.00000000E+00 sec.
+C *** Switch "VLI " to "SWITCN" closed before 0.00000000E+00 sec.
+C 0 0.0 5.0 5.0 10. -5. 0.0 -10. 0.0 0.0 0.0 0.0
+C .86736E-18 0.0 0.0 -50. .0125 0.0
+C 1 .25E-7 4.70586567 5.29318057 9.99904624 -9.7049453 .293805171 -9.9990462 .953759273 0.0 .953759273 0.0
+C .024264664 0.0 -49.967921 -49.993754 .025735252 1.0
+C 2 .5E-7 .815038563 9.18404043 9.999079 -5.810338 4.18591392 -9.999079 .921003104 0.0 .921003104 0.0
+C .038066925 0.0 -49.942927 -49.981265 .036942357 1.0
+BLANK RECORD ENDING NODE VOLTAGE OUTPUT
+C 199 .4975E-5 2.85398023 7.14334065 9.99732089 -7.1433406 2.37896557 -9.9973209 2.67911339 0.0 2.67911339 0.0
+C 2.67814375 0.0 -44.964656 -47.643751 2.67814375 1.0
+C Switch "SWITCP" to "VOI " opening after 5.00000000E-06 sec.
+C Switch "VLI " to "SWITCN" opening after 5.00000000E-06 sec.
+C 200 .5E-5 2.85568452 7.14162209 9.99730661 -7.1416222 2.37837081 -9.9973066 2.69338583 0.0 2.69338583 0.0
+C 2.69241791 0.0 -44.939143 -47.632513 2.69241791 0.0
+C Diode "DIODEU" to "VOI " closing after 5.00000000E-06 sec.
+C Diode "DIODEL" to "VN " closing after 5.00000000E-06 sec.
+C 201 .5025E-5 -7.141608 7.13990415 -.00170382 -7.1399041 2.37777637 .001703825 0.0 1.7038246 0.0 1.7038246
+C 2.6817031 1.7038246 -44.941955 -47.621278 2.6817031 0.0
+C 240 .6E-5 -7.073708 7.07255339 -.00115462 -7.0725534 2.35470566 .001154618 0.0 1.154618 0.0 1.154618
+C 1.29567377 1.154618 -45.885161 -47.178477 1.29567377 0.0
+C maxima : 5.0 9.18404043 10. -5. 4.18591392 .001742607 2.69338583 1.74260701 2.69338583 1.74260701
+C 2.69241791 1.74260701 0.0 -47.178477 2.69241791 1.0
+C Times of maxima: 0.0 .5E-7 0.0 0.0 .5E-7 .5175E-5 .5E-5 .5175E-5 .5E-5 .5175E-5
+C .5E-5 .5175E-5 0.0 .6E-5 .5E-5 .25E-7
+C minima : -7.141608 5.0 -.00174261 -9.7049453 0.0 -10. 0.0 0.0 0.0 0.0
+C .86736E-18 0.0 -49.967921 -50. .0125 0.0
+C Times of minima: .5025E-5 0.0 .5175E-5 .25E-7 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 .25E-7 0.0 0.0 0.0
+ PRINTER PLOT
+ 185 1. 0.0 6.0 VOI VO VOI DIODEU { Limits: (-7.142, 5.000)
+ CALCOMP PLOT { Switch to vector plotting to illustrate superposition of plots
+ SUPERIMPOSE 3 { Superimpose plots of the following 3 cards
+ 2Next, illustrate the overlay of 3 plots
+ 145 .6 0.0 6.0-10. 10. VO Superimpose 3 V-node in volts
+ 185 .6 0.0 6.0 VOI VO { 2nd of 3 in overlay is V-branch
+ 195 .6 0.0 6.0 VOI SWITCP { 3rd of 3 in overlay is I-branch
+C Ok, done with SUPERIMPOSE. Next, prove the return to normal plotting:
+ 2Return to normal plotting
+ 195 .6 0.0 6.0 VOI SWITCPDIODEUVOI
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 9 subcases. This illustrates switch dependence as 1st described
+C in the January, 1997, newsletter. This is modification of 1st subcase.
+C It is more efficient that using a GIFU switch because no table dumping
+C and restoring is involved. The solution is identical.
+ .010E-6 10.E-6 1.E-5
+ 100 1 1 1 1 -1
+ 399 1 405 5 425 25 500 100
+MODELS
+OUTPUT SIG
+MODEL ONOFF
+VAR SIG
+OUTPUT SIG
+EXEC
+ IF (t MOD 1.E-5) < 0.4 * 1.E-5 THEN
+ SIG := 1.
+ ELSE
+ SIG := 0.
+ ENDIF
+ENDEXEC
+ENDMODEL
+USE ONOFF AS SW
+ OUTPUT SIG := SIG
+ENDUSE
+RECORD
+ SW.SIG AS SIG
+ENDRECORD
+ENDMODELS
+00N1 N2 1.0E-2 3
+00N3 N5 1.
+00N4 N6 1.
+00N1 N2 1.E+4
+ N2 N3 1.E+3 0.01 1
+BLANK RECORD ENDING BRANCHES
+13N2 { GIFU } SIG 13
+11N2 N4 13
+11N2 N3 13
+ N2 N2 N3 < Master/slave switch dependency > ONLY OPEN,CLOSE
+BLANK RECORD ENDING SWITCHES
+11N1 100. 0.0000000
+11N5 150. 0.0000000
+11N6 200. 0.0000000
+BLANK RECORD ENDING SOURCES
+C Step Time N1 N2 N2 N2 N2 N2 N2 N1 N2 MODELS
+C N2 TERRA N4 N3 TERRA N4 N3 N2 N3 SIG
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0
+C Switch "N2 " to " " closing after 1.00000000E-08 sec.
+C 100 .1E-5 100. 0.0 -200. -149.86421 9.96455754 0.0 0.0 9.81876757 -.13578997 1.0
+C 200 .2E-5 100. 0.0 -200. -149.87712 19.9516477 0.0 0.0 19.8187676 -.12288012 1.0
+C 300 .3E-5 100. 0.0 -200. -149.8888 29.9399652 0.0 0.0 29.8187676 -.11119764 1.0
+BLANK RECORD ENDING NODE VOLTAGE OUTPUT
+C 399 .399E-5 100. 0.0 -200. -149.89927 39.829494 0.0 0.0 39.7187676 -.10072641 1.0
+C Switch "N2 " to " " opening after 4.00000000E-06 sec.
+C 400 .4E-5 100. 0.0 -200. -149.89937 39.9293934 0.0 0.0 39.8187676 -.10062584 0.0
+C Diode "N2 " to "N3 " closing after 4.00000000E-06 sec.
+C 401 .401E-5 -89.814879 189.814879 -10.185121 0.0 0.0 0.0 39.7655794 39.8238601 .049299201 0.0
+C 402 .402E-5 -89.725118 189.725118 -10.274882 0.0 0.0 0.0 39.6758677 39.7340901 .049249926 0.0
+C 900 .9E-5 -54.532699 154.532699 -45.467301 0.0 0.0 0.0 4.5027675 4.53815216 .029931392 0.0
+C Diode "N2 " to "N3 " opening after 9.87000000E-06 sec.
+C Switch "N2 " to " " closing after 1.00000000E-05 sec.
+C 1000 1.E-5 .02232934 99.9776707 -100.02233 -50.000041 0.0 0.0 0.0 -.02229011 -.02228788 1.0
+C maxima : 100. 189.814879 0.0 0.0 39.9293934 0.0 39.7655794 39.8238601 .049299201 1.0
+C Times of max : .2E-7 .401E-5 0.0 0.0 .4E-5 0.0 .401E-5 .401E-5 .401E-5 0.0
+C minima : -89.814879 0.0 -200. -149.89937 0.0 0.0 -.03812688 -.02813821 -.14975663 0.0
+C Times of min : .401E-5 0.0 .2E-7 .4E-5 0.0 0.0 .987E-5 .988E-5 .2E-7 .4E-5
+ 185 1. 0.0 10. BRANCH { Limits: (-2.000, 1.898)
+ N2 N2 N3 N2 N4
+ 195 1. 0.0 10. BRANCH { Limits: (-0.004, 3.993)
+ N2 N2 N3 N2 N4
+BLANK end of plot cards
+BEGIN NEW DATA CASE
+C 7th of 9 subcases. This illustrates a Type-13 TACS-controlled switch
+C as supplied by Dr. Tsuyoshi Funaki of Osaka University. Original data
+C was attached to E-mail dated May 30, 2001. The TACS-controlled switch
+C (BB, CC) will open at 3.25 msec while it still carries substantial
+C current. Of course, diode (EE, CC) must close simultaneously. This
+C is the "dynamic current redirection." But it was not happening with
+C the original data because the diode was declared to be a GIFU switch.
+C Removing this, operation passes through 3.25 msec correctly. But
+C a subsequent challenge then occurs at 3.33 msec, when the diode has
+C a current zero. This is not handled properly. The diode would flop open
+C and closed repeatedly (3 dT is the period) if T-max were extended. The
+C screen plots document this. About time step size dT, it is largely
+C arbitrary. Dr. Funaki's data used 2 usec, which WSM increased to 10 to
+C reduce the printout while documenting each step. Unfinished business:
+C the diode oscillation that begins at 3.33 msec could be eliminated by the
+C addition of a normal snubber circuit. This is because opening is at a
+C current zero. It is quite unlike opening of the TACS-controlled switch
+C in this respect. Final observation: CLOSED was added to the Type-13
+C TACS-controlled switch simply to save one experimental GIFU step, which
+C requires that tables be dumped once. If removed, the simulation will
+C not change substantially.
+PRINTED NUMBER WIDTH, 10, 2, { Column width is 10, including 2 blank spaces
+ .000010 .003380 { T-max is chosen to end the simulation once oscillation begins
+ 10 1 1 1 0 -1
+ 320 1 { Begin printing every step shortly before Type-13 switch opens
+C $DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+TACS HYBRID
+14CTL 1. 60. 20. 1.
+BLANK card ending all TACS data
+ AA BB 10. 0
+ CC GG 1. 3
+ DD EE 10. 0
+ GG 1. 0
+BLANK card ending BRANCH cards
+13BB CC { switch controlled by TACS CTL } CLOSEDGIFU CTL 13
+11EE CC 13
+BLANK card ending SWITCH cards
+14AA 10. 60. -1. 1.
+14DD 10. 60. -180. -1. 1.
+BLANK card ends SOURCE cards
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time CC BB EE AA BB EE CC
+C GG CC CC CC CC GG
+C *** Phasor I(0) = 9.0802438E-01 Switch "BB " to "CC " closed in the steady-state.
+C 0 0.0 .0117319 0.0 -10.9198 10. .9080244 0.0 .9080244
+C 10 .1E-3 -.001178 0.0 -10.9003 9.992895 .9085521 0.0 .9085521
+ AA
+BLANK card ending node voltage outputs
+C 323 .00323 -.317139 0.0 -3.4843 3.458223 .3432148 0.0 .3432148
+C 324 .00324 -.317625 0.0 -3.44524 3.422825 .3400409 0.0 .3400409
+C Switch "BB " to "CC " opening after 3.25000000E-03 sec.
+C 325 .00325 -.318106 0.0 -3.40614 3.387379 .3368623 0.0 .3368623
+C Diode "EE " to "CC " closing after 3.25000000E-03 sec.
+C 326 .00326 -6.67287 9.722844 0.0 3.351885 0.0 .3019074 .3019074
+C 327 .00327 -5.94343 9.020945 0.0 3.316343 0.0 .2388259 .2388259
+C 328 .00328 -5.29 8.388096 0.0 3.280754 0.0 .1826588 .1826588
+C 329 .00329 -4.70466 7.817091 0.0 3.245118 0.0 .1326855 .1326855
+C 330 .0033 -4.1803 7.301479 0.0 3.209436 0.0 .0882607 .0882607
+C 331 .00331 -3.71058 6.83548 0.0 3.173709 0.0 .0488063 .0488063
+C 332 .00332 -3.28979 6.413917 0.0 3.137936 0.0 .0138045 .0138045
+C Diode "EE " to "CC " opening after 3.33000000E-03 sec.
+C 333 .00333 -2.91282 6.032152 0.0 3.102119 0.0 -.017209 -.017209
+C 334 .00334 6.354539 -3.28828 -9.4208 3.066258 0.0 0.0 .34E-17
+C Diode "EE " to "CC " closing after 3.35000000E-03 sec.
+C 335 .00335 -6.35454 9.384892 3.324187 3.030353 0.0 0.0 -.34E-17
+C Diode "EE " to "CC " opening after 3.36000000E-03 sec.
+C 336 .00336 -2.50702 5.545732 0.0 2.994405 0.0 -.044308 -.044308
+C 337 .00337 11.36858 -8.41016 -14.327 2.958414 0.0 0.0 .272E-17
+C Diode "EE " to "CC " closing after 3.38000000E-03 sec.
+C 338 .00338 -11.3686 14.29096 8.446196 2.922382 0.0 0.0 -.27E-17
+ 184.023.163.36 -10. 10.BB CC CC GG
+ 194.023.163.36 BB CC CC GG
+BLANK card ending PLOT cards
+BEGIN NEW DATA CASE
+C 8th of 9 subcases that illustrate GIFU switch usage. This is the
+C same as the 1st subcase, but the switch cards have been reordered. The
+C GIFU switch has been placed last rather than first. New USE GIFU SWITCH
+C declaration at the start of switch cards avoids an error stop. Reduce
+C T-max by a factor of 2 so save computer time. Of course, order of the
+C output vector is changed since column-80 punches of the switch cards
+C produced 6 of the output variables (some output variables depend on the
+C order of branch and switch data. Finally, there will be no connectivity
+C output or plotting (why bother?).
+PRINTED NUMBER WIDTH, 11, 1, { Restore width, separation of 1st subcase (STARTUP)
+ .010E-6 5.E-6 1.E-5
+ 100 -1
+MODELS
+OUTPUT SIG
+MODEL ONOFF
+VAR SIG
+OUTPUT SIG
+EXEC
+ IF (t MOD 1.E-5) < 0.4 * 1.E-5 THEN
+ SIG := 1.
+ ELSE
+ SIG := 0.
+ ENDIF
+ENDEXEC
+ENDMODEL
+USE ONOFF AS SW
+ OUTPUT SIG := SIG
+ENDUSE
+RECORD
+ SW.SIG AS SIG
+ENDRECORD
+ENDMODELS
+00N1 N2 1.0E-2 3
+00N3 N5 1.
+00N4 N6 1.
+00N1 N2 1.E+4
+ N2 N3 1.E+3 0.01 1
+BLANK RECORD ENDING BRANCHES
+ USE GIFU SWITCH { Needed because no diode follows the GIFU switch
+C Without the preceding request which was added 23 June 2001, this would result:
+C Halt in OVER4. 1st GIFU switch is not followed by a 2nd or a diode (needed for the experimental step).
+11N2 N4 13
+11N2 N3 13
+13N2 GIFU SIG 13
+BLANK RECORD ENDING SWITCHES
+11N1 100. 0.0000000
+11N5 150. 0.0000000
+11N6 200. 0.0000000
+BLANK RECORD ENDING SOURCES
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 5 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 1 output variables belong to MODELS (with "MODELS" an internally-added upper name of pair).
+C Step Time N1 N2 N2 N2 N2 N2 N2 N1 N2 MODELS
+C N2 N4 N3 TERRA N4 N3 TERRA N2 N3 SIG
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0
+C Switch "N2 " to " " closing after 1.00000000E-08 sec.
+C 100 .1E-5 100. -200. -149.86421 0.0 0.0 0.0 9.96455754 9.81876757 -.13578997 1.0
+C 200 .2E-5 100. -200. -149.87712 0.0 0.0 0.0 19.9516477 19.8187676 -.12288012 1.0
+C 300 .3E-5 100. -200. -149.8888 0.0 0.0 0.0 29.9399652 29.8187676 -.11119764 1.0
+C Switch "N2 " to " " opening after 4.00000000E-06 sec.
+C 400 .4E-5 100. -200. -149.89937 0.0 0.0 0.0 39.9293934 39.8187676 -.10062584 0.0
+C Diode "N2 " to "N3 " closing after 4.00000000E-06 sec.
+C 500 .5E-5 -81.349976 -18.650024 0.0 181.349976 0.0 31.3053236 0.0 31.358111 .044652391 0.0
+BLANK RECORD ENDING NODE VOLTAGE OUTPUT
+BLANK end of plot cards
+BEGIN NEW DATA CASE
+C 9th of 9 subcases. This illustrates a Type-13 TACS-controlled switch
+C as supplied by Dr. Tsuyoshi Funaki of Osaka University. Original data
+C was attached to E-mail dated 31 October 2002. The TACS-controlled switch
+C was erroneously controlled as part of the GIFU experimental step. But
+C by definition, TACS controls this, so such action was not reasonable.
+C A 3-line addition to OVER16 makes this solution right. Only 752 steps
+C need be taken because step 752 was the first of many that were wrong.
+C One does not need to go any farther than 752 to observe the correction.
+C But, for plotting (now disabled), we want nice scaling, so use 800.
+C adp, 9, 0, 0, 0, { To see GIFU switch diagnostic, enable this comment card.
+ 1.E-7 800.E-7 1.E-8 { Restore default EPSILN on 14 Jan 03
+ 100 1 1 1 0 -1 0 0 0
+ 749 -1
+TACS HYBRID
+11N3 50. 1.
+11N1 100. 1.
+14CTL 1. 1.E4 1.
+33CTL
+BLANK card ending TACS data
+ N2 ND .001 3
+ N2 N3 1. 2.5 3
+BLANK card ending branches
+13N2 N1 CLOSEDGIFU CTL 13
+11 ND 13
+C Note about the GIFU switch. With this orientation, the answer became bad
+C on step 752. But the answer was correct if the two ends of the GIFU switch
+C were reversed. I.e., (N2, N1) was bad but (N1, N2) was correct. This
+C is what was traced to OVER16 where 3 added lines now exempt Type-13 switch
+C from the GIFU experimentation. Before, it was not being excluded. Dr.
+C Funaki's 2 data cases were named CHOPD.DAT and CHOPD2.DAT with the
+C later having a different solution beginning on step 752.
+BLANK card ending switches
+60N3 0 10.
+60N1 0 10.
+BLANK card ending source cards
+BLANK card ending node voltage outputs
+C 185.8 48. 56. BRANCH
+C N2 N1 N2 N3 ND
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn18.dat b/benchmarks/dcn18.dat
new file mode 100644
index 0000000..63ea06c
--- /dev/null
+++ b/benchmarks/dcn18.dat
@@ -0,0 +1,128 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-18
+C 1st of ? subcases that confirm additional aspects of U.M. usage.
+C U.M. illustration of SHARE. From Dr. Yin Yuexin by E-mail on 30 Jan 1996
+C SIMULATION OF A THREE-PHASE SYNCHRONOUS MOTOR - GENERATOR SET USING THE
+C U.M. MODULE --- believed to be originally from Prof. Juan Martinez
+C The machines have different number of poles: motor = 3 pole pairs, generator
+C is 6 pole pairs. Steady State is calculated using Automatic Initialization.
+C Terminal voltages of motor and generator have been adjusted so that
+C mechanical torques are equal. * Sudden change in the generator load.
+C The simulation is made using SHARE to connect the two shafts mechanically
+C EPSILN = 1.E-12 was removed (default 1.E-8 gives nearly identcal answers).
+C Dynamics shown here, over the first 10 msec, are just the tip of the
+C iceberg. Extend TMAX to 5 sec to see much more. The motor torque is not
+C at all constant as the PRINTER PLOT shows over 10 msec. Instead, it
+C involves an oscillation having a period of about 1.2 sec. The same
+C is true for the envelope of the armature current. For such longer runs,
+C double DELTAT to .2 msec (curves will not change significantly).
+POWER FREQUENCY, 50
+ 0.0001 .010
+ 1 1 1 1 1 -1 1
+ 20 20 100 100 1000 1000
+C ----- Power network equivalent impedance
+ 0BUS-AMBUS-A0 .250 3.50
+ 0BUS-BMBUS-B0BUS-AMBUS-A0
+ 0BUS-CMBUS-C0BUS-AMBUS-A0
+C ----- Generator load
+ 0BUS-AG 5.0 4.5
+ 0BUS-BG 5.0 4.5
+ 0BUS-CG 5.0 4.5
+C ----- Generator load change (connect these by switch closure at 1 msec):
+ 0BUSAG1 4.8 4.0
+ 0BUSBG1 4.8 4.0
+ 0BUSCG1 4.8 4.0
+C - Field circuits of motor:
+ 0BUSFM1 1.0
+ 0BUSFM1BUSFM0 1.E-10
+C - Field circuits for generator:
+ 0BUSFG1 1.0
+ 0BUSFG1BUSFG0 1.E-10
+C ----- Mechanical network data
+ 0BUSMM1BUSMM0 1.E-10
+ 0BUSMM0 10.0E9
+ 0BUSMM0BUSMG0 1.E-10
+ 0BUSMG0 39.4E9
+ 0BUSMG1BUSMG0 1.E-10
+BLANK CARD ENDING BRANCH CARDS.
+ BUS-AGBUSAG1 .001 99.0 { 1st of 3 switches close at 1 msec to add load
+ BUS-BGBUSBG1 .001 99.0
+ BUS-CGBUSCG1 .001 99.0
+C BUS-AGBUSAG1 -1.0 99.0 { 1st of 3 switches close at 1 msec to add load
+C BUS-BGBUSBG1 -1.0 99.0
+C BUS-CGBUSCG1 -1.0 99.0
+BLANK CARD ENDING SWITCH CARDS.
+C ----- Infinite bus source voltages
+14BUS-A0 9800.0 50.0 0.0 -1.0
+14BUS-B0 9800.0 50.0 -120.0 -1.0
+14BUS-C0 9800.0 50.0 120.0 -1.0
+C ----- Excitation source voltages
+C - (Actual value set by Steady State Initialization)
+C - Motor
+14BUSFM1 0.01 .00001 0.0 -1.0
+C - Generator
+14BUSFG1 0.01 .00001 0.0 -1.0
+C ----- Current sources simulating mechanical torques under steady state
+C - (Actual value should be zero)
+14BUSMM1-1 0.01 .00001 0.0 -1.0
+14BUSMG1-1 0.01 .00001 0.0 -1.0
+C ----- Two synchronous machine specifications (using U.M.) follow:
+19 UM { Universal Machine of Prof. Hian Lauw is Type-19 source component
+ 1 { This gives prediction for armature coils ("0" in col. 2 for compensation)
+BLANK card ending Class 1 UM data, which is not repeated
+C ============= Motor data is for 1st of 2 conventional synchronous machines:
+ 1 2 1111BUSMM0 3 .001 50.
+ .0082506
+ .0059588
+SHARE 2 { Shaft of this UM-1 is to be connected to shaft of UM-2
+9444.02 -9.4 BUSFM1BUSMM1
+C - UM Coil-Table
+0.014400 0.0005500 BUS-AM 1
+0.014400 0.0013751 BUS-BM
+0.014400 0.0013751 BUS-CM
+0.001450 0.0010313 BUSFM0
+0.020372 0.0001019
+0.133560 0.0007192
+C ============ Generator data is for 2nd of 2 conventional synchronous machines
+ 1 2 111 BUSMG0 6 .001 100.
+ .0095748
+ .0073339
+SHARE 1 { Shaft of this UM-2 is to be connected to shaft of UM-1
+9400.0 0.0 BUSFG1
+C - UM Coil-Table
+0.0256000 0.0009167 BUS-AG 1
+0.0256000 0.0018335 BUS-BG
+0.0256000 0.0018335 BUS-CG
+0.0012913 0.0014012 BUSFG0
+0.0271620 0.0002445
+0.1333400 0.0006667
+BLANK CARD ENDING UM DATA.
+BLANK CARD ENDING SOURCE CARDS.
+C Total network loss P-loss by summing injections = 2.085588779750E+07
+C Total network loss P-loss by summing injections = 2.998766670851E+16
+C Total network loss P-loss by summing injections = 2.998766672952E+16
+C Total network loss P-loss by summing injections = 2.998766672952E+16
+C 1st gen: UM2MCC 104.71975511966 104.71975511966 -.1628101692E-3 .1211292268344 -.0085247205233 6.3423114859661
+C 0.0 0.0 .12112911741752 90.0770115 -6.342305756912 -0.0013441
+C
+C 2nd gen: BUSMM0 104.71975511966 104.71975511966 192780.21968365 192780.49349675 .100939486986E8 .100939630354E8
+C 0.0 0.0 324.91779476689 0.0965680 -17012.655951 0.9999986
+ BUS-AMBUS-AG { Request for output of node voltages
+C Step Time BUS-AM BUS-AG UM-1 UM-1 UM-1 UM-1 UM-2 UM-2 UM-2
+C TQGEN OMEGM THETAM IPA TQGEN OMEGM IPA
+C 0 0.0 9317.20779 9400.00222 -192780.22 104.719755 -.49123491 -1428.7533 192782.988 104.719755 1424.4929
+C 1 .1E-3 9361.30121 9382.16106 -192781.1 104.719755 -.49123491 -1431.6422 192780.108 104.719755 1472.24713
+C 2 .2E-3 9395.4359 9325.62226 -192781.13 104.719755 -.49123491 -1433.1122 192777.93 104.719755 1514.19778
+C 3 .3E-3 9421.26214 9234.08498 -192781.15 104.719755 -.49123491 -1433.1679 192775.738 104.719755 1550.17388
+C 100 .01 -9315.4209 8085.5945 -192956.77 104.696694 -.49153195 1430.08855 307671.343 104.696652 2304.75957
+BLANK card ending node voltage output requests
+C maxima : 9444.04202 9400.00222 -192780.22 104.719755 -.49123491 1430.08855 349434.719 104.719755 2304.75957
+C Times of max : .5E-3 0.0 0.0 0.0 .0016 .01 .0034 0.0 .01
+C minima : -9315.4209 -8421.5743 -192956.77 104.696694 -.49153195 -1433.1679 192762.301 104.696652 -3028.4258
+C Times of min : .01 .0052 .01 .01 .01 .3E-3 .1E-2 .01 .006
+ PRINTER PLOT
+ 194 2. 0.0 10. UM-1 TQGEN UM-2 TQGEN { Limits: (-1.930, 3.494)
+ 144 2. 0.0 10. BUS-AMBUS-AG { Limits: (-9.315, 9.444)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn19.dat b/benchmarks/dcn19.dat
new file mode 100644
index 0000000..ec2b2ea
--- /dev/null
+++ b/benchmarks/dcn19.dat
@@ -0,0 +1,763 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-19
+C 18 February 1997, two new features enter the UTPF. These will be verified
+C by the following data. See April newsletter for details about: 1) Walter
+C Powell's analytical type-10 source; 2) $PARAMETER for both simple string
+C substitution and also mathematics at data-input time (Walter Powell pocket
+C calculator). The Type-10 function can be put in cols. 11-60 if it fits, or
+C can be continued onto cols. 11-40 of the following card ordered by CONT. in
+C columns 61-61 of the first. T-start and T-stop are always from ending card
+C August of 1998: replace Walter Powell's pocket calculator by one written
+C in Vancouver, USA. Story is scheduled for the October newsletter.
+$PARAMETER START ONLY { This block of 3 cards is used only before any $INCLUDE
+FIVEK= '5.E+3' { Within apostrophe ==> there is no math, just string replacement
+BLANK card ends $PARAMETER definitions
+ 1.0 21.
+ 1 1
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+C ONEOHM = 0.5 * ( 1.0 + "DELTAT" ) { Within quotes ==> value of this ATP variable
+ONEOHM = 0.5 * ( 1.0 + DELTAT ) { Beginning 28 Nov 98, quotes are no longer needed
+C OMEGA = "TWOPI" * .05 --- original frequency, equal to that of Type-14 COS
+C OMEGA_ = "TWOPI" * 0.1 { Speed the modulation of the ramp for visual effect
+OMEGA_ = TWOPI * 0.1 { Beginning 28 November 98, quotes no longer are necessary
+C ANGLE_ = .25 * "TWOPI"
+ANGLE_ = .25 * TWOPI { Beginning 28 November 98, quotes no longer are necessary
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+ COS ONEOHM 1
+ SIN ONEOHM 1
+ SIN2 1.0
+ SIN3 1.0
+ A1 A2 5.E+3 1
+ A2 FIVEK
+BLANK card ends branch cards
+BLANK card ends switch cards (none, for this case)
+14COS 1.0 .05 0.0
+C 14SIN 3.0 .05 -90. ---- old form of following card:
+C 10SIN 3.0 * COS ( OMEGA * TIMEX - ANGLE ) { Walter Powell analytical source
+10SIN .1 * TIMEX + .8 * COS ( OMEGA_ * TIMEX - ANGLE_ ) { Walter Powell analytical source
+10SIN2 .1 * TIMEX + .8 * COS ( OMEGA_ * TIMEX - ANGLE_ ) CONT. { Note 61-65
+ + 0.2 { continuation carries T-start, T-stop in 61-80 } 1.5 18.5
+C Note the preceding SIN2 repeats SIN but with extra vertical offset of 0.2
+C on a continuation card. Also, SIN2 uses T-start (61-70) & T-stop (71-80)
+10SIN3 IF( TIMEX .LE. 15. ) THEN { If simulation time < 16 sec:
+ SIN3 = TIMEX * 0.10 { Linear ramp up with slope matching SIN
+ ELSE { Alternatively (if 16 or more seconds):
+ SIN3 = ( 23.5 - TIMEX ) * .20 { Linear ramp down, double the slope up
+ ENDIF { Terminate 5-line block of Type-10 source
+C Note the preceding SIN3 creates a saw tooth with the peak broken off to
+C create a flat top. The value at 16 is equal to the value at 15. Note that
+C the name of the bus in columns 3-8 of the Type-10 source card is repeated
+C within the IF-block (left of equal signs). Control words IF( and ELSE
+C and ENDIF must begin in column 10 exactly as illustrated. As added on
+C 11 December 2000, ELSEIF( also should be legal, but is not being
+C illustrated in this data.
+14A1 620000. .06 -50.
+BLANK card ends source cards
+ SIN3 SIN SIN2 COS A2
+C First 5 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time SIN3 SIN SIN2 COS A2 COS SIN A1
+C TERRA TERRA A2
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 1.0 0.1 .570084377 0.0 .951056516 272691.058 .951056516 .570084377 54.5382115
+C 2 2.0 0.2 .960785678 1.16078568 .809016994 307819.308 .809016994 .960785678 61.5638615
+C 3 3.0 0.3 1.06090928 1.26090928 .587785252 299715.25 .587785252 1.06090928 59.9430501
+C 4 4.0 0.4 .870407977 1.07040798 .309016994 249517.077 .309016994 .870407977 49.9034154
+C 5 5.0 0.5 .500237061 .700237061 .6123E-16 164274.972 .6123E-16 .500237061 32.8549944
+C 6 6.0 0.6 .129975602 .329975602 -.30901699 55960.935 -.30901699 .129975602 11.192187
+C 7 7.0 0.7 -.06076275 .139237247 -.58778525 -60212.649 -.58778525 -.06076275 -12.04253
+C 8 8.0 0.8 .039067835 .239067835 -.80901699 -167929.55 -.80901699 .039067835 -33.585909
+C 9 9.0 0.9 .42953207 .62953207 -.95105652 -252061.24 -.95105652 .42953207 -50.412247
+BLANK card ends requests for program outputs (here, just node voltages)
+C 10 10. 1.0 .999688816 1.19968882 -1. -300791.68 -1. .999688816 -60.158335
+C 11 11. 1.1 1.56996442 1.76996442 -.95105652 -307276.82 -.95105652 1.56996442 -61.455363
+C 12 12. 1.2 1.96073982 2.16073982 -.80901699 -270605.84 -.80901699 1.96073982 -54.121169
+C 13 13. 1.3 2.06095504 2.26095504 -.58778525 -195929.08 -.58778525 2.06095504 -39.185817
+C 14 14. 1.4 1.87052788 2.07052788 -.30901699 -93734.666 -.30901699 1.87052788 -18.746933
+C 15 15. 1.5 1.50038531 1.70038531 -.1837E-15 21624.5069 -.1837E-15 1.50038531 4.32490137
+C 16 16. 1.5 1.13009557 1.33009557 .309016994 133946.582 .309016994 1.13009557 26.7893164
+C 17 17. 1.3 .939283118 1.13928312 .587785252 227456.258 .587785252 .939283118 45.4912516
+C 18 18. 1.1 1.03902209 1.23902209 .809016994 289020.378 .809016994 1.03902209 57.8040757
+C 19 19. 0.9 1.42941218 0.0 .951056516 309992.446 .951056516 1.42941218 61.9984891
+C 20 20. 0.7 1.99954057 0.0 1.0 287426.995 1.0 1.99954057 57.485399
+C 21 21. 0.5 2.56984444 0.0 .951056516 224493.277 .951056516 2.56984444 44.8986554
+ CALCOMP PLOT
+ 143 2. 0.0 20. -1. 3.0 COS SIN SIN2 SIN3
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-19
+C 2nd of 6 subcases is related to preceding. Analytical function is too
+C long, spilling over into T-start of columns 61-70. Demonstrate special
+C handling to reject such data in civilized fashion. 28 October 1998
+ 1.0 21.
+ 1 1
+C 19 March 2009, WSM adds 2 unrelated symbol definitions HANSOK and HANSBAD.
+C But first, add a request to prohibit optimization by the pocket calculator.
+C Addition here is mandatory until an error in optimization of the compilation
+C is corrected. The troubled data are formulas for HANSOK and HANSBAD as
+C first reported by Prof. Hans Kr. Hoidalen in Trondheim, Norway. Without the
+C change making NOOPT = 1, execution would end on the HANSBAD input card with
+C an extraneous complaint about TACS (not being used). With use of NOOPT = 1,
+C the computation proceeds normally. Although this is not HFS data, the loop
+C counter should have default value KNT = 1 so the right hand side correctly
+C evaluates to 10**1 = 10. Execution still will end prematurely with that
+C complaint about too long an analytical function for SIN, but at least Prof.
+C Hoidalen's data is handled correctly. WSM.
+C $PARAMETER NOOPT=1 { Set optimization of pocket calculator compilation to none
+C Comment out preceding line 1 October 2011 after correction was made to the
+C code that handles TEMPx variables within POCKET.SPL and nowhere else.
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+OMEGA_ = "TWOPI" * 0.1 { Speed the modulation of the ramp for visual effect
+ANGLE_ = .25 * "TWOPI"
+C Note about preceding quotation marks on 24 December 2000. Whereas the first
+C subcase demonstrated removal long ago, this use is retained in its original,
+C inefficient form as a demonstration of a new property. With the introduction
+C of non-volatile variables, the quoted TWOPI continues to work as expected,
+C but it now demonstrates a new power. The way MATDAT handle quotes, they are
+C erased, and the line is preceded by a temporary definition TWOPI = 6.2832 ...
+C which is taken as a SPY symbol (a variable in COMMON, recognized by SPY). In
+C fact the answer is correct, but COMMON is being modified without the user's
+C knowledge or intention. Old inefficiency (requiring a intermediate variable)
+C suddenly has been increased by unnecessary redefinition of a COMMON variable.
+HANSOK =10.**((KNT-1.)/20.+1.) { works. 1st of 2 formulas from HKH
+HANSBAD =10.**((KNT-1.)*0.05+1.) { fails 2nd of 2 formulas from HKH
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+ COS 1.0 1
+ SIN 1.0 1
+BLANK card ends branch cards
+C 2 April 2009, WSM adds unrelated IF-THEN block that includes an intermediate
+C variable only. Trouble using IF without a permanent variable was reported by
+C Prof. Hans Kr. Hoidalen in Trondheim, Norway. Although this is not HFS data,
+C the loop counter should have default value KNT = 1 making the IF-THEN block
+C legal. Add a dummy switch card to illustrate use of the permanent variable
+C CAP___ which depends on intermediate variable CAPI. Execution still will end
+C prematurely with that complaint about too long an analytical function for the
+C variable SIN, but at least Prof. Hoidalen's IF-THEN will be handled properly.
+C Note about the following IF(. The use of "equals one"
+C is arbitrary. Changing .EQ. to .NE. will force control
+C through the ELSE alternative, resulting in CAPI = 5.0 rather
+C than 2.3, and as a result, CAP___ = 10 (see next line) :
+C Parameter 1 defined. Value = 1.000000E+01 |CAP___ = 2.0 * CAPI
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+IF( KNT .EQ. 1.0 ) THEN { This is equivalent (THEN on right is not required)
+CAPI = 2.3 $$ { The double dollar sign flags an intermediate variable, note
+ELSE { Alternatively (if not the first pass, so for KNT = 2 onward):
+CAPI = 5. $$ { The double dollar sign flags an intermediate variable, note
+ENDIF { Terminate 5-line block that defines intermediate symbol CAPI
+CAP___ = 2.0 * CAPI { Define A6 permanent variable to be used in later data
+BLANK card ending $PARAMETER block
+C Note about multiple intermediate variables within the IF-THEN block:
+C the logic probably would fail. As now constituted, one intermediate
+C variable is the limit within an IF-THEN block. But more than one IF-THEN
+C block is possible. To illustrate, let the desired second intermediate
+C variable CAPJ be defined within its own IF-THEN block as follows. Also
+C for variety, we will change ".EQ. 1.0" to ".NE. 1.0" to force the use
+C of the ELSE alternative:
+$PARAMETER { Separate $PARAM block ==> correct interpret line count within block
+C Added explanation of preceding line. Without it and preceding BLANK line,
+C the answer would be correct except for line # of interpretation, which would
+C not return to value 1 for the IF( statement. Restarting this at 1 is clearer
+C is clearer for the user who looks closely at such details. Numbering of the
+C interpretation then will be 1, 3, 4, and 5 instead of 3, 5, 6, and 7.
+IF( KNT .NE. 1.0 )
+CAPJ = ( KNT + 0.5 ) ** 2 $$ { For KNT equal to 1, this gives CAPJ = 2.25
+ELSE { Alternatively (if not the first pass, so for KNT = 2 onward):
+CAPJ = ( KNT - 0.5 ) ** 2 $$ { If KNT were equal to 1, this would give 0.25
+ENDIF { Terminate 7-line block that defines symbols CAPI and CAPJ
+IND___ = CAPJ / 2.0 { Inductance in cols. 33-38 of following series R-L-C
+BLANK card ending $PARAMETER block
+C The following meaningless switch illustrates use of CAP___ & IND___ variables
+ COS SIN CAP___ IND___
+BLANK card ends switch cards
+14COS 4.0 .05 0.0
+C Ruler for T-start in 61:70: 1234567890
+10SIN 0.1 * TIMEX + 0.8 * COS ( OMEGA_ * TIMEX - ANGLE_ ) { Too long function
+BLANK card ends source cards
+ SIN SIN2 COS A2
+BLANK card ends requests for program outputs (here, just node voltages)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 6 subcases illustrates Type-10 sources only. dT-loop output will be
+C identical to that produced by famous TACS and MODELS simulations (learning
+C how slow code from Laurent Dube really is). With extension to 100K steps
+C and proper control of output, this becomes MATHTY10 as first used to
+C time operation of POCKET (WSM's new pocket calculator).
+C That might have been 1998. Twelve years later, the inefficiency of MODELS
+C is widely known. So distorting the data a little is permissible. Addition
+C of the GAUSS function to both TACS and the pocket calculator will require
+C verification. DC-18 does the work for TACS. Here, on 10 October 2010,
+C we add such disconnected, unrelated output to the pocket calculator. WSM.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .02 2.0
+ 1 1 0 0 1 -1
+ 5 5
+ TEST1 1.0
+ TEST2 1.0
+ TEST3 1.0
+ TEST5 1.0
+ TEST6 1.0
+ TWO? 1.0
+ NORMAL 1.0 { A Gaussian random # will be applied to this
+BLANK card ends branch cards
+BLANK card ends switch cards (none, for this case)
+10TEST1 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+10TEST2 1.E2 * COS ( 2.0 * 3.14159 * TEST1 / 100. )
+10TEST3 10.0 + 5.5 * TIMEX * SQRT ( ABS ( TEST2 ) )
+10TEST5 2.0 * 3.14159 * TEST1 / 100.
+10TEST6 2.0 * SIN ( TEST5 )
+C 10TWO? 2.E-4 * ( TEST2 ** 2 + 2500. * TEST6 ** 2 )
+10TWO? 2.000E-4 * ( TEST2 ** 2 + CONT.
+ 2500. * { Remember that T-start and T-stop are on right of this card
+ 1 TEST6 ** 2 ) { Illustrate conventional continuation line (1 in column
+C 6 preceded by 5 blanks). With or without CONT., any
+C number of continuation cards can follow the original 1
+C or two (two if CONT. is used). This is like FORTRAN.
+10NORMAL GAUSS ( 0.0 ) { Random function has zero mean and stand. deviation 1
+BLANK card ending all sources
+ TEST1 TEST2 TEST3 TEST5 TEST6 TWO? NORMAL
+C Step Time TEST1 TEST2 TEST3 TEST5 TEST6 TWO? NORMAL
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .02 60.404 -79.384 10.98007 3.795292 -1.21625 2.0 -.26382
+C 2 .04 60.816 -77.7833 11.94029 3.821179 -1.25694 2.0 .6641848
+C 3 .06 61.236 -76.0979 12.87873 3.847568 -1.29755 2.0 -.384642
+BLANK card ending node voltage outputs
+C 90 1.8 128.4 -21.2 55.58307 8.067603 1.954539 2.0 1.195179
+C 95 1.9 134.1 -54.1115 86.87076 8.425744 1.681897 2.0 .146522
+C 100 2.0 140. -80.9013 108.9396 8.796452 1.175583 2.0 .9643848
+C Variable maxima : 140. 99.99389 108.9396 8.796452 1.999977 2.0 3.103447
+C Times of maxima : 2.0 1.24 2.0 2.0 1.74 .04 1.68
+C Variable minima : 0.0 -80.9013 0.0 0.0 -1.99999 0.0 -2.77845
+C Times of minima : 0.0 2.0 0.0 0.0 .58 0.0 .82
+ CALCOMP PLOT
+ 143 .2 0.0 2.0 TEST1 TEST2 TEST3
+ 143 .2 0.0 2.0 TEST5 TEST6 TWO?
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 6 subcases documents pocket calculator applied to many different
+C expressions. Use Type-10 sources, and take just 1 time step. Prior to
+C 16 November 2000, this was separate disk file POCKET.DAT Following
+C diagnostic line should be activated to see all assembler (precedes "EOF").
+C For philosophy of this data, see the April, 2001, newsletter.
+C DIAGNOSTIC 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 9 9 9 9 9
+C The following illustrates the ability to change dimensions (offset
+C subscripts for VOLTI storage) of the pocket calculator. Prior to
+C 12 November 2000, dimensions were 10 and 20, so the following example
+C shows what resulted: an error stop do to inadequate INDOFF. That was
+C prior to expansion of the default values of 60 and 120, which handle
+C the present data subcase without difficulty.
+C $PARAMETER INDOFF=10 KONST=20 { Fixed limits prior to improvement 12 Nov 00
+C Halt in POCKET. Overflow JTOKEN into INDOFF. INDOFF, KCONST = 10 36
+C Temporary error stop in ENTRY STOPTP of "WINDOW". NCHAIN, LASTOV = 5 4
+C $PARAMETER INDOFF=60 KONST=120 { Do-nothing reassignment of default values
+$PARAMETER INDOFF=90 KONST=180 { Do-nothing reassignment of default values
+C Overhaul of storage for pocket calculator requires more List 4 space than
+C previously. Add NEW LIST SIZES on 6 August 2010. List 4 = 140 fails :
+NEW LIST SIZES { Request for a change to program table sizes (VARDIM input)
+DEFAULT 3.0 { Any blank field will be converted to 3 times default value
+ 0 0 0 240 { List 4 < 840 of LISTSIZE.BPA is adequate
+BLANK card for lists 11-20.
+BLANK card for lists 21-30.
+ 390 300 { Optional card for Lists 31, etc. --- as LISTSIZE.BPA
+ 240000 742 { Offsets for supporting programs (non-simulation overlays)
+PRINTED NUMBER WIDTH, 11, 1, { Request maximum precision (for 8 output columns)
+ .001 .001
+ 1 -11 0 0
+C Each analytical function will define a Type-10 source. In turn, this
+C must be connected to a node of the electric network. So, for each,
+C connect a 1-ohm resistor to ground:
+C 1st set of 10 variables ANG* is for 1st row of 132-column output vector:
+ ANG1 1.0
+ ANG2 1.0
+ ANG3 1.0
+ ANG4 1.0
+ ANG5 1.0
+ ANG6 1.0
+ ANG7 1.0
+ ANG8 1.0
+ ANG9 1.0
+ ANG10 1.0
+C Next set of 10 variables BAL* is for 2nd row of 132-column output vector:
+ CC 1.0
+ DD 1.0
+ THETA 1.0
+ OMEGA 1.0
+ BAL1 1.0
+ BAL2 1.0
+ BAL3 1.0
+ BAL4 1.0
+ BAL5 1.0
+ BAL6 1.0
+ BAL7 1.0
+ BAL8 1.0
+ BAL9 1.0
+ BAL10 1.0
+C Next set of 10 variables CAT* is for 3rd row of 132-column output vector:
+ UNITY 1.0
+ ZERO 1.0
+ CAT1 1.0
+ CAT2 1.0
+ CAT3 1.0
+ CAT4 1.0
+ CAT5 1.0
+ CAT6 1.0
+ CAT7 1.0
+ CAT8 1.0
+ CAT9 1.0
+ CAT10 1.0
+C Next set of 10 variables DUM* is for 4th row of 132-column output vector:
+ DUM1 1.0
+ DUM2 1.0
+ DUM3 1.0
+ DUM4 1.0
+ DUM5 1.0
+ DUM6 1.0
+ DUM7 1.0
+ DUM8 1.0
+ DUM9 1.0
+ DUM10 1.0
+C Next set of 10 variables EAT* is for 5th row of 132-column output vector:
+ EAT1 1.0
+ EAT2 1.0
+ EAT3 1.0
+ EAT4 1.0
+ EAT5 1.0
+ EAT6 1.0
+ EAT7 1.0
+ EAT8 1.0
+ EAT9 1.0
+ EAT10 1.0
+C Next set of 10 variables FAT* is for 6th row of 132-column output vector:
+ FAT1 1.0
+ FAT2 1.0
+ FAT3 1.0
+ FAT4 1.0
+ FAT5 1.0
+ FAT6 1.0
+ FAT7 1.0
+ FAT8 1.0
+ FAT9 1.0
+ FAT10 1.0
+C Next set of 10 variables GAS* is for 7th row of 132-column output vector:
+ GAS1 1.0
+ GAS2 1.0
+ GAS3 1.0
+ GAS4 1.0
+ GAS5 1.0
+ GAS6 1.0
+ GAS7 1.0
+ GAS8 1.0
+ GAS9 1.0
+ GAS10 1.0
+BLANK card ends branch cards
+BLANK card ends switch cards (none, for this case)
+C 1st set of 10 variables ANG* is for 1st row of 132-column output vector:
+10ANG1 1.0
+10ANG2 -1.0
+10ANG3 ANG1
+10ANG4 +ANG1
+10ANG5 COS ( 1.0 )
+10ANG6 SIN ( ANG3 )
+10ANG7 SIN ( -ANG3 )
+10ANG8 - SIN ( - ANG3 )
+10ANG9 - ANG3 * ANG6
+10ANG10 - SIN ( ANG3 )
+C Next set of 10 variables BAL* is for 2nd row of 132-column output vector:
+10CC 3.14159
+10DD 2.71828
+10THETA CC
+10OMEGA DD
+10BAL1 ( -CC + DD ) / ( -CC - DD )
+10BAL2 ( -CC - DD ) / 3.1415
+10BAL3 ( -CC + DD ) / ( CC - DD )
+10BAL4 -( -CC + DD ) / ( CC - DD )
+10BAL5 THETA * OMEGA
+10BAL6 THETA + OMEGA
+10BAL7 THETA - OMEGA
+10BAL8 THETA / OMEGA
+10BAL9 THETA + OMEGA + ANG5
+10BAL10 THETA + OMEGA + ANG5 - TIMEX
+C Next set of 10 variables CAT* is for 3rd row of 132-column output vector:
+10UNITY 1.0
+10ZERO 0.0 { In addition to these, remember CC = 3.14159 and DD = 2.71828
+10CAT1 CC .EQ. DD { This is false, so CAT1 = 0.0
+10CAT2 CC .NE. DD { This is true, so CAT2 = 1.0
+10CAT3 CC .GT. DD { This is true, so CAT3 = 1.0
+10CAT4 CC .LT. DD { This is false, so CAT4 = 0.0
+10CAT5 CC .GE. DD { This is true, so CAT5 = 1.0
+10CAT6 CC .LE. DD { This is false, so CAT6 = 0.0
+10CAT7 .NOT. UNITY { UNITY is true, so toggle it to false: CAT7 = 0.0
+10CAT8 UNITY .OR. ZERO { CAT8 = 1 since UNITY is true, & OR with anything is true
+10CAT9 UNITY .AND. ZERO { CAT9 = 0 since ZERO is false, & AND with anything is false
+10CAT10 UNITY .NOR. ZERO { CAT10 = 0 since OR first, then negate, so toggle CAT8
+C 4th set of 10 variables DUM* is for 4th row of 132-column output vector:
+10DUM1 UNITY .NAND. ZERO { DUM1 = 1 since AND first, then negate, so toggle CAT9
+10DUM2 THETA / OMEGA + DD { DUM2 = 3.87400715 = 3.1416 / 2.718 + 2.718
+10DUM3 THETA / OMEGA - DD { DUM3 = -1.562 = 3.1416 / 2.718 - 2.718
+10DUM4 CC**DD { DUM4 = 22.459 = 3.1416 ** 2.718
+10DUM5 50.0 + CC**DD { DUM5 = 72.459 = DUM4 + 50
+10DUM6 TRUNC ( CC ) + INVRS ( CC ) { DUM6 = 3.318 = 3 (integer in 3.14) + 1 / 3.14
+10DUM7 DEG ( CC ) { DUM7 = 180 (close) = 3.1416 converted to degrees
+10DUM8 RAD ( DUM7 ) { DUM8 = 3.1416 = DUM7 deg converted back to radians
+10DUM9 SIGN ( -CC ) - 3.0 { DUM9 = -4 = -1 - 3 = sign of ( -3.14 ) - 3
+10DUM10 MINUS ( CC ) { DUM10 = -3.1416 = minus sign applied to Pi
+C 5th set of 10 variables EAT* is for 5th row of 132-column output vector:
+10EAT1 SEQ6 ( DUM4 ) { EAT1 = 4 since DUM4 = 22.4590591 / 6 ==> 4.459 remainder
+10EAT2 - LOG ( DD ) { EAT2 = -1 (close) since DD = 2.71828 is close to e
+10EAT3 LOG10 ( 200. ) { EAT3 = 2.3010 since log(10) of 2 = .3010
+10EAT4 ATAN ( UNITY ) { EAT4 = .785398 = atan ( 1.0 ) = pi / 4 = 3.1416 / 4
+10EAT5 EXP ( 2.0 * UNITY ) { EAT5 = 7.389 = 2.71828 ** 2
+10EAT6 ASIN ( -ONEHAF ) { EAT6 = -.5236 = -30 degrees / 57.29578
+10EAT7 ACOS ( ONEHAF ) { EAT7 = 1.0471 = 60 degrees / 57.29578
+10EAT8 RAN ( ZERO ) { EAT8 = .813467631 (arg = 0 ==> next random #)
+10EAT9 TANH ( UNITY ) { EAT9 = .761594156
+10EAT10 SINH ( UNITY ) / COSH ( UNITY ) { EAT10 = EAT9 by trig definition
+C 6th set of 10 variables FAT* is for 6th row of 132-column output vector:
+10FAT1 TAN ( CC / 6.0 ) { FAT1 = .5773 since arg CC / 6 = Pi/6 = 30 degrees
+10FAT2 2.0 * COTAN ( 60. / 57.29578 ) { FAT2 = 1.1547 = 2 * FAT1
+10FAT3 1.0 / ABS ( UNITY * CC * DD ) { FAT3 = .1171 = 1 / ( 3.14 * 2.718 )
+10FAT4 - SQRT ( 2.0 ) * 0.5 { FAT4 = -.707 = sqrt ( 2 ) * 1/2
+10FAT5 - 2.0 ** 2 + UNITY { FAT5 = -3 = -4 + 1
+10FAT6 (-2.0) ** 2 + UNITY { FAT6 = 5 = 4 + 1
+10FAT7 - EXP ( UNITY * CC / DD ) - 0.1 { FAT7 = -3.276 = -EXP ( 3.14 / 2.718 ) - 0.1
+10FAT8 ( UNITY / DD * CC ) * 2.0 - UNITY { FAT8 = 1.311 = ( 3.1416 / 2.718 ) * 2 - 1
+10FAT9 UNITY - ( UNITY * DD + CC ) { FAT9 = -4.860 = 1 - ( 3.14 + 2.718 )
+10FAT10 UNITY * DD - CC { FAT10 = -.4233 = 2.718 - 3.14 = 1 * 2.718 - 3.1416
+C 7th set of 10 variables GAS* is for 7th row of 132-column output vector:
+10GAS1 UNITY * ( CC / DD / UNITY ) { GAS1 = 1.156 = 3.14 / 2.718 = Pi / e / 1
+10GAS2 CC ** 2 + DD ** 2 { GAS2 = 17.26 = 3.14 ** 2 + 2.718 ** 2
+10GAS3 CC ** 2 - DD ** 2 { GAS3 = 2.48 = 3.14 ** 2 - 2.718 ** 2
+C 3 December 2001, add variables to confirm correction of the error
+C first reported by Orlando Hevia using data EXP.DAT Note GAS4
+C through GAS9 all have same value EXP(-T) = 1 / EXP(.001) = .999
+10GAS4 1.0 / EXP ( TIMEX ) { This establishes the right answer (no bug here)
+10GAS5 EXP(-(TIMEX*1.0)) { Hevia showed that this, too, always was correct
+10GAS6 EXP ( -TIMEX ) { Hevia showed that this, too, always was correct
+10GAS7 EXP( -TIMEX * 1.0 ) { Prior to correction on 3 December, error stop
+10GAS8 EXP( -TIMEX / 1.0 ) { Prior to correction on 3 December, error stop
+10GAS9 EXP( -TIMEX * UNITY ) { Prior to correction on 3 December, error stop
+10GAS10 28.0 - 25.0 - ( TIMEX - 1.0 ) { Verify correction on 9 January 2002
+BLANK card ending all sources
+ ANG1 ANG2 ANG3 ANG4 ANG5 ANG6 ANG7 ANG8 ANG9 ANG10
+ BAL1 BAL2 BAL3 BAL4 BAL5 BAL6 BAL7 BAL8 BAL9 BAL10
+ CAT1 CAT2 CAT3 CAT4 CAT5 CAT6 CAT7 CAT8 CAT9 CAT10
+ DUM1 DUM2 DUM3 DUM4 DUM5 DUM6 DUM7 DUM8 DUM9 DUM10
+ EAT1 EAT2 EAT3 EAT4 EAT5 EAT6 EAT7 EAT8 EAT9 EAT10
+ FAT1 FAT2 FAT3 FAT4 FAT5 FAT6 FAT7 FAT8 FAT9 FAT10
+ GAS1 GAS2 GAS3 GAS4 GAS5 GAS6 GAS7 GAS8 GAS9 GAS10
+C Step Time ANG1 ANG2 ANG3 ANG4 ANG5 ANG6 ANG7 ANG8 ANG9 ANG10
+C 1 .1E-2 1.0 -1. 1.0 1.0 .540302306 .841470985 -.84147098 .841470985 -.84147098 -.84147098
+C BAL1 BAL2 BAL3 BAL4 BAL5 BAL6 BAL7 BAL8 BAL9 BAL10
+C .072238804 -1.8653096 -1. 1.0 8.53972127 5.85987 .42331 1.15572715 6.40017231 6.39917231
+C CAT1 CAT2 CAT3 CAT4 CAT5 CAT6 CAT7 CAT8 CAT9 CAT10
+C 0.0 1.0 1.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0
+BLANK card ending node voltage outputs
+C DUM1 DUM2 DUM3 DUM4 DUM5 DUM6 DUM7 DUM8 DUM9 DUM10
+C 1.0 3.87400715 -1.5625528 22.4590591 72.4590591 3.31831016 179.999848 3.14159 -4. -3.14159
+C EAT1 EAT2 EAT3 EAT4 EAT5 EAT6 EAT7 EAT8 EAT9 EAT10
+C 4.0 -.99999933 2.30103 .785398163 7.3890561 -.52359878 1.04719755 .813467631 .761594156 .761594156
+C FAT1 FAT2 FAT3 FAT4 FAT5 FAT6 FAT7 FAT8 FAT9 FAT10
+C .57734968 1.15470056 .117099841 -.70710678 -3. 5.0 -3.2763323 1.3114543 -4.85987 -.42331
+C GAS1 GAS2 GAS3 GAS4 GAS5 GAS6 GAS7 GAS8 GAS9 GAS10
+C 1.15572715 17.2586339 2.48054157 .9990005 .9990005 .9990005 .9990005 .9990005 .9990005 3.999
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 6 subcases documents pocket calculator applied to many intermediate
+C variables. This was the beginning of Orlando Hevia's R7U.DAT which was
+C added 6 August 2010. Exceptional Lists 4 & 26 are close to their minima.
+C The electrical network was substantial, but is of no interest here so has
+C been omitted. The $PARAMETER data seemed plenty creative to WSM. Volume
+C is unlimited as KNT is unlimited. But who deserves credit for imagining
+C such use? Perhaps Prof. Hans Kr. Hoidalen, the author of ATPDraw! E-mail
+C from Mr. Hevia dated Sunday, August 15, 2010 explained: "The lines are
+C generated by an ATPDraw option, @FILE. It is a sort of pointlist, with
+C the possibility of one or more columns. Just before ATPDraw runs ATP, it
+C generates the lines as you see in r7u.dat. I know the @FILE option because
+C the user sent the question with his problem." In any case, with such use
+C as this, the pocket calculator suddenly must handle more voluminous data,
+C particularly intermediate variables. List 4 (sources) storage of the load
+C flow is being used for the first time as previously-fixed dimensions of
+C the pocket calculator are made variable. Not all, but an important part.
+C 8 previously-fixed vectors have been made variable. WSM, 19 August 2010.
+NEW LIST SIZES { Request for a change to program table sizes (VARDIM input)
+DEFAULT 3.0 { Any blank field will be converted to 3 times default value
+ 0 0 0 840 { List 4 = 840 of LISTSIZE.BPA is adequate
+BLANK card for lists 11-20.
+ 0 0 0 0 0 950 { KONST use below requires this
+ 390 300 { Optional card for Lists 31, etc. --- as LISTSIZE.BPA
+ 240000 742 { Offsets for supporting programs (non-simulation overlays)
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 50 times
+POCKET CALCULATOR VARIES PARAMETERS 50 0
+C $DEBUG, 9, { For diagnostic output of pocket calculator, activate this request
+C Following use of tags continues to work, but is being augmented by the
+C more powerful definition of all such indices at once (see below).
+C $PARAMETER INDOFF=121 KONST=242
+C As long as List 4 is limited to 840 (in LISTSIZE.BPA as of 7 August 2010), it
+C is necessary to optimize the compilation by the pocket calculator. This can
+C be seen from the end of diagnostic output, which shows a need for 913 cells:
+C ---- Assembler after replace any SN= ----
+C 117 IP________=IP
+C COPY IP IP____ 913
+C New input:EOF
+C Without this many cells for List 4, the following line is necessary. It will
+C reduce the preceding 913 to 789 which is well within the 840 cells available:
+C $PARAMETER NOOPT=0 { Restore compiler optimization that 2nd subcase ended
+C $PARAMETER MAXASS=990 NOOPT=0
+C $PARAMETER MAXLHS=170 --- For a week or so this was honored, but no longer
+C Having disabled all of the old definitions, consider the new, better way:
+C 1 2 3 4 5 6
+C 34567890123456789012345678901234567890123456789012345678901234
+C INDOFF KONST NOOPT MAXASS MAXLHS
+$PARAMETER LIMITS : 121 242 0 990 170
+$PARAMETER
+F01001=(KNT.EQ.1.)*229.6111+(KNT.EQ.2.)*233.69775 $$
+F01002=(KNT.EQ.3.)*158.12631+(KNT.EQ.4.)*108.91404 $$
+F01003=(KNT.EQ.5.)*278.28978+(KNT.EQ.6.)*96.295541 $$
+F01004=(KNT.EQ.7.)*239.16153+(KNT.EQ.8.)*187.79161 $$
+F01005=(KNT.EQ.9.)*93.658151+(KNT.EQ.10.)*192.55105 $$
+F01006=(KNT.EQ.11.)*165.51983+(KNT.EQ.12.)*171.78016 $$
+F01007=(KNT.EQ.13.)*269.06742+(KNT.EQ.14.)*256.13115 $$
+F01008=(KNT.EQ.15.)*276.15484+(KNT.EQ.16.)*214.35659 $$
+F01009=(KNT.EQ.17.)*171.24842+(KNT.EQ.18.)*332.23904 $$
+F01010=(KNT.EQ.19.)*341.62624+(KNT.EQ.20.)*72.282156 $$
+F01011=(KNT.EQ.21.)*206.20294+(KNT.EQ.22.)*292.75362 $$
+F01012=(KNT.EQ.23.)*190.11552+(KNT.EQ.24.)*271.59629 $$
+F01013=(KNT.EQ.25.)*278.79531+(KNT.EQ.26.)*312.74695 $$
+F01014=(KNT.EQ.27.)*338.04959+(KNT.EQ.28.)*79.377109 $$
+F01015=(KNT.EQ.29.)*291.07469+(KNT.EQ.30.)*52.334939 $$
+F01016=(KNT.EQ.31.)*113.32174+(KNT.EQ.32.)*198.40889 $$
+F01017=(KNT.EQ.33.)*338.27422+(KNT.EQ.34.)*254.87681 $$
+F01018=(KNT.EQ.35.)*74.500633+(KNT.EQ.36.)*52.138059 $$
+F01019=(KNT.EQ.37.)*44.356605+(KNT.EQ.38.)*301.45684 $$
+F01020=(KNT.EQ.39.)*305.09034+(KNT.EQ.40.)*173.39597 $$
+F01021=(KNT.EQ.41.)*66.13517+(KNT.EQ.42.)*213.79447 $$
+F01022=(KNT.EQ.43.)*83.636753+(KNT.EQ.44.)*242.91365 $$
+F01023=(KNT.EQ.45.)*249.7637+(KNT.EQ.46.)*178.4586 $$
+F01024=(KNT.EQ.47.)*193.61877+(KNT.EQ.48.)*110.70991 $$
+F01025=(KNT.EQ.49.)*221.4351+(KNT.GE.50.)*339.68186 $$
+P01001=F01001+F01002+F01003+F01004+F01005+F01006+F01007+F01008+F01009 $$
+P01002=P01001+F01010+F01011+F01012+F01013+F01014+F01015+F01016+F01017 $$
+P01003=P01002+F01018+F01019+F01020+F01021+F01022+F01023+F01024+F01025 $$
+ANGAI=P01003 $$
+F02001=+(KNT.EQ.1.)*349.6111+(KNT.EQ.2.)*353.69775 $$
+F02002=(KNT.EQ.3.)*278.12631+(KNT.EQ.4.)*228.91404 $$
+F02003=(KNT.EQ.5.)*398.28978+(KNT.EQ.6.)*216.29554 $$
+F02004=(KNT.EQ.7.)*359.16153+(KNT.EQ.8.)*307.79161 $$
+F02005=(KNT.EQ.9.)*213.65815+(KNT.EQ.10.)*312.55105 $$
+F02006=(KNT.EQ.11.)*285.51983+(KNT.EQ.12.)*291.78016 $$
+F02007=(KNT.EQ.13.)*389.06742+(KNT.EQ.14.)*376.13115 $$
+F02008=(KNT.EQ.15.)*396.15484+(KNT.EQ.16.)*334.35659 $$
+F02009=(KNT.EQ.17.)*291.24842+(KNT.EQ.18.)*452.23904 $$
+F02010=(KNT.EQ.19.)*461.62624+(KNT.EQ.20.)*192.28216 $$
+F02011=(KNT.EQ.21.)*326.20294+(KNT.EQ.22.)*412.75362 $$
+F02012=(KNT.EQ.23.)*310.11552+(KNT.EQ.24.)*391.59629 $$
+F02013=(KNT.EQ.25.)*398.79531+(KNT.EQ.26.)*432.74695 $$
+F02014=(KNT.EQ.27.)*458.04959+(KNT.EQ.28.)*199.37711 $$
+F02015=(KNT.EQ.29.)*411.07469+(KNT.EQ.30.)*172.33494 $$
+F02016=(KNT.EQ.31.)*233.32174+(KNT.EQ.32.)*318.40889 $$
+F02017=(KNT.EQ.33.)*458.27422+(KNT.EQ.34.)*374.87681 $$
+F02018=(KNT.EQ.35.)*194.50063+(KNT.EQ.36.)*172.13806 $$
+F02019=(KNT.EQ.37.)*164.3566+(KNT.EQ.38.)*421.45684 $$
+F02020=(KNT.EQ.39.)*425.09034+(KNT.EQ.40.)*293.39597 $$
+F02021=(KNT.EQ.41.)*186.13517+(KNT.EQ.42.)*333.79447 $$
+F02022=(KNT.EQ.43.)*203.63675+(KNT.EQ.44.)*362.91365 $$
+F02023=(KNT.EQ.45.)*369.7637+(KNT.EQ.46.)*298.4586 $$
+F02024=(KNT.EQ.47.)*313.61877+(KNT.EQ.48.)*230.70991 $$
+F02025=(KNT.EQ.49.)*341.4351+(KNT.GE.50.)*459.68186 $$
+P02001=F02001+F02002+F02003+F02004+F02005+F02006+F02007+F02008+F02009 $$
+P02002=P02001+F02010+F02011+F02012+F02013+F02014+F02015+F02016+F02017 $$
+P02003=P02002+F02018+F02019+F02020+F02021+F02022+F02023+F02024+F02025 $$
+ANGBI=P02003 $$
+F03001=+(KNT.EQ.1.)*109.6111+(KNT.EQ.2.)*113.69775 $$
+F03002=(KNT.EQ.3.)*38.126311+(KNT.EQ.4.)*-11.085959 $$
+F03003=(KNT.EQ.5.)*158.28978+(KNT.EQ.6.)*-23.704459 $$
+F03004=(KNT.EQ.7.)*119.16153+(KNT.EQ.8.)*67.791614 $$
+F03005=(KNT.EQ.9.)*-26.341849+(KNT.EQ.10.)*72.551051 $$
+F03006=(KNT.EQ.11.)*45.51983+(KNT.EQ.12.)*51.780155 $$
+F03007=(KNT.EQ.13.)*149.06742+(KNT.EQ.14.)*136.13115 $$
+F03008=(KNT.EQ.15.)*156.15484+(KNT.EQ.16.)*94.356592 $$
+F03009=(KNT.EQ.17.)*51.248423+(KNT.EQ.18.)*212.23904 $$
+F03010=(KNT.EQ.19.)*221.62624+(KNT.EQ.20.)*-47.717844 $$
+F03011=(KNT.EQ.21.)*86.202936+(KNT.EQ.22.)*172.75362 $$
+F03012=(KNT.EQ.23.)*70.115523+(KNT.EQ.24.)*151.59629 $$
+F03013=(KNT.EQ.25.)*158.79531+(KNT.EQ.26.)*192.74695 $$
+F03014=(KNT.EQ.27.)*218.04959+(KNT.EQ.28.)*-40.622891 $$
+F03015=(KNT.EQ.29.)*171.07469+(KNT.EQ.30.)*-67.665061 $$
+F03016=(KNT.EQ.31.)*-6.6782645+(KNT.EQ.32.)*78.408894 $$
+F03017=(KNT.EQ.33.)*218.27422+(KNT.EQ.34.)*134.87681 $$
+F03018=(KNT.EQ.35.)*-45.499367+(KNT.EQ.36.)*-67.861941 $$
+F03019=(KNT.EQ.37.)*-75.643395+(KNT.EQ.38.)*181.45684 $$
+F03020=(KNT.EQ.39.)*185.09034+(KNT.EQ.40.)*53.395974 $$
+F03021=(KNT.EQ.41.)*-53.86483+(KNT.EQ.42.)*93.794469 $$
+F03022=(KNT.EQ.43.)*-36.363247+(KNT.EQ.44.)*122.91365 $$
+F03023=(KNT.EQ.45.)*129.7637+(KNT.EQ.46.)*58.458596 $$
+F03024=(KNT.EQ.47.)*73.618773+(KNT.EQ.48.)*-9.2900913 $$
+F03025=(KNT.EQ.49.)*101.4351+(KNT.GE.50.)*219.68186 $$
+P03001=F03001+F03002+F03003+F03004+F03005+F03006+F03007+F03008+F03009 $$
+P03002=P03001+F03010+F03011+F03012+F03013+F03014+F03015+F03016+F03017 $$
+P03003=P03002+F03018+F03019+F03020+F03021+F03022+F03023+F03024+F03025 $$
+ANGCI=P03003 $$
+F04001=+(KNT.EQ.1.)*65300.+(KNT.EQ.2.)*30667.412 $$
+F04002=(KNT.EQ.3.)*31979.935+(KNT.EQ.4.)*81276.349 $$
+F04003=(KNT.EQ.5.)*18906.501+(KNT.EQ.6.)*21719.44 $$
+F04004=(KNT.EQ.7.)*7124.8541+(KNT.EQ.8.)*4846.9281 $$
+F04005=(KNT.EQ.9.)*12418.612+(KNT.EQ.10.)*32587.942 $$
+F04006=(KNT.EQ.11.)*14560.237+(KNT.EQ.12.)*6698.0694 $$
+F04007=(KNT.EQ.13.)*70803.752+(KNT.EQ.14.)*12315.218 $$
+F04008=(KNT.EQ.15.)*24474.203+(KNT.EQ.16.)*24726.58 $$
+F04009=(KNT.EQ.17.)*19379.812+(KNT.EQ.18.)*36500.402 $$
+F04010=(KNT.EQ.19.)*19104.929+(KNT.EQ.20.)*4845.0075 $$
+F04011=(KNT.EQ.21.)*9027.5757+(KNT.EQ.22.)*31403.277 $$
+F04012=(KNT.EQ.23.)*7222.6444+(KNT.EQ.24.)*17609.525 $$
+F04013=(KNT.EQ.25.)*9836.8418+(KNT.EQ.26.)*7827.2433 $$
+F04014=(KNT.EQ.27.)*9097.1448+(KNT.EQ.28.)*16693.945 $$
+F04015=(KNT.EQ.29.)*29337.654+(KNT.EQ.30.)*22084.662 $$
+F04016=(KNT.EQ.31.)*70211.788+(KNT.EQ.32.)*19456.883 $$
+F04017=(KNT.EQ.33.)*5592.8618+(KNT.EQ.34.)*24983.583 $$
+F04018=(KNT.EQ.35.)*26539.252+(KNT.EQ.36.)*33746.765 $$
+F04019=(KNT.EQ.37.)*40387.027+(KNT.EQ.38.)*86591.522 $$
+F04020=(KNT.EQ.39.)*14466.269+(KNT.EQ.40.)*31953.179 $$
+F04021=(KNT.EQ.41.)*24428.887+(KNT.EQ.42.)*14013.494 $$
+F04022=(KNT.EQ.43.)*200790.43+(KNT.EQ.44.)*19225.061 $$
+F04023=(KNT.EQ.45.)*6217.3361+(KNT.EQ.46.)*140243.24 $$
+F04024=(KNT.EQ.47.)*34046.067+(KNT.EQ.48.)*8264.9251 $$
+F04025=(KNT.EQ.49.)*45450.444+(KNT.GE.50.)*85889.85 $$
+P04001=F04001+F04002+F04003+F04004+F04005+F04006+F04007+F04008+F04009 $$
+P04002=P04001+F04010+F04011+F04012+F04013+F04014+F04015+F04016+F04017 $$
+P04003=P04002+F04018+F04019+F04020+F04021+F04022+F04023+F04024+F04025 $$
+IP=P04003 $$
+IP________=IP
+IQ______=IP
+ANGC______=ANGCI
+ANGB______=ANGBI
+ANGA______=ANGAI
+C Intermediate variable before parameter itself. |IP=P04003 $$
+C Parameter 1 defined. Value = 6.530000E+04 |IP________=IP
+C Parameter 2 defined. Value = 6.530000E+04 |IQ______=IP
+C Parameter 3 defined. Value = 1.096111E+02 |ANGC______=ANGCI
+C Parameter 4 defined. Value = 3.496111E+02 |ANGB______=ANGBI
+C Parameter 5 defined. Value = 2.296111E+02 |ANGA______=ANGAI
+BLANK card ends input to $PARAMETER
+ 5.E-9 6.E-6
+ 500 1 1 1 1 0 0 1 0
+C The rest of R7U.DAT is of no particular interest, so terminate execution:
+$ABORT
+BEGIN NEW DATA CASE
+C 6th of 6 subcases illustrates a much more efficient representation of
+C the preceding 5th subcase using the new SELECT function of the pocket
+C calculator. The answer is unchanged. Variable names have been lengthened
+C to avoid warnings, however. For the 3 angles, "ANG" has become "ANGL"
+C in order that names reach the minimum of 6 bytes. Finally (the 4th of 4),
+C "IP" has become "IPNAME". Warnings were avoided in the 5th subcase only
+C because the names were internal to the pocket calculator (marked by a "$$"
+C on the right edge). Using SELECT, there is no need for any such special
+C treatment (note that all "$$" have been removed). WSM. 14 September 2010
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 50 times
+POCKET CALCULATOR VARIES PARAMETERS 50 0
+C 34567890123456789012345678901234567890123456789012345678901234
+C INDOFF KONST NOOPT MAXASS MAXLHS
+C $PARAMETER LIMITS : 121 242 0 990 170
+C Note that the preceding expansion of calculator tables has been removed.
+C Thanks to SELECT, storage is minimal. The numbers themselves do not
+C count as they are stored in available numerical storage. Rather than
+C 990 lines of assembly language (to which limit MAXASS applies), this
+C data never exceeds 2. The SELECT function itself requires a single
+C line and storage of the value that was selected requires a second. To
+C prove that default dimensions work, we reset them:
+C 34567890123456789012345678901234567890123456789012345678901234
+C INDOFF KONST NOOPT MAXASS MAXLHS
+$PARAMETER LIMITS : 60 120 0 270 170
+C First, let's show how simple the use of SELECT makes the preceding 5th
+C data subcase. The same values for ANGLAI, ANGLBI, ANGLCI, and IPNAME
+C are produced with great economy of both data and computation as follows:
+$PARAMETER
+ANGLAI = SELECT ( KNT )
+ 229.6111 233.69775 158.12631 108.91404 278.28978 96.295541 239.16153 187.79161
+ 93.658151 192.55105 165.51983 171.78016 269.06742 256.13115 276.15484 214.35659
+ 171.24842 332.23904 341.62624 72.282156 206.20294 292.75362 190.11552 271.59629
+ 278.79531 312.74695 338.04959 79.377109 291.07469 52.334939 113.32174 198.40889
+ 338.27422 254.87681 74.500633 52.138059 44.356605 301.45684 305.09034 173.39597
+ 66.13517 213.79447 83.636753 242.91365 249.7637 178.4586 193.61877 110.70991
+ 221.4351 339.68186
+ANGLBI = SELECT ( KNT )
+ 349.6111 353.69775 278.12631 228.91404 398.28978 216.29554 359.16153 307.79161
+ 213.65815 312.55105 285.51983 291.78016 389.06742 376.13115 396.15484 334.35659
+ 291.24842 452.23904 461.62624 192.28216 326.20294 412.75362 310.11552 391.59629
+ 398.79531 432.74695 458.04959 199.37711 411.07469 172.33494 233.32174 318.40889
+ 458.27422 374.87681 194.50063 172.13806 164.3566 421.45684 425.09034 293.39597
+ 186.13517 333.79447 203.63675 362.91365 369.7637 298.4586 313.61877 230.70991
+ 341.4351 459.68186
+ANGLCI = SELECT ( KNT )
+ 109.6111 113.69775 38.126311-11.085959 158.28978-23.704459 119.16153 67.791614
+-26.341849 72.551051 45.51983 51.780155 149.06742 136.13115 156.15484 94.356592
+ 51.248423 212.23904 221.62624-47.717844 86.202936 172.75362 70.115523 151.59629
+ 158.79531 192.74695 218.04959-40.622891 171.07469-67.665061-6.6782645 78.408894
+ 218.27422 134.87681-45.499367-67.861941-75.643395 181.45684 185.09034 53.395974
+ -53.86483 93.794469-36.363247 122.91365 129.7637 58.458596 73.618773-9.2900913
+ 101.4351 219.68186
+IPNAME = SELECT ( KNT )
+ 65300. 30667.412 31979.935 81276.349 18906.501 21719.44 7124.8541 4846.9281
+ 12418.612 32587.942 14560.237 6698.0694 70803.752 12315.218 24474.203 24726.58
+ 19379.812 36500.402 19104.929 4845.0075 9027.5757 31403.277 7222.6444 17609.525
+ 9836.8418 7827.2433 9097.1448 16693.945 29337.654 22084.662 70211.788 19456.883
+ 5592.8618 24983.583 26539.252 33746.765 40387.027 86591.522 14466.269 31953.179
+ 24428.887 14013.494 200790.43 19225.061 6217.3361 140243.24 34046.067 8264.9251
+ 45450.444 85889.85
+C Parameter 1 defined. Value = 2.296111E+02 |ANGLAI = SELECT ( KNT )
+C Parameter 2 defined. Value = 3.496111E+02 |ANGLBI = SELECT ( KNT )
+C Parameter 3 defined. Value = 1.096111E+02 |ANGLCI = SELECT ( KNT )
+C Parameter 4 defined. Value = 6.530000E+04 |IPNAME = SELECT ( KNT )
+BLANK card ends input to $PARAMETER
+C That takes care of the 5th data subcase. Before leaving this 6th subcase,
+C however, we will illustrate several variations. First, the argument of
+C the SELECT function, which is not necessarily KNT. Yes, the PCVP loop
+C counter KNT is the natural one, but not the only one. The argument of
+C SELECT can involve pocket calculator math as shown by this modification
+C which uses subscript VALUE4 = LL3 + 1 = 3 + 1 = 4. The 4th number of the
+C following set is -11.085959 so this is the value that will be loaded into
+C the left hand side ANGLCI. Final detail: LL3 is an ATP symbol which has
+C integer value 3. Similarly LL4 (used later) has value 4.
+$PARAMETER
+VALUE4 = LL3 + 1.0 $$ { VALUE4 is an intermediate variable so a double dollar
+PARAM5 = SELECT ( VALUE4 ) { This param #5 should have value -11.085959
+ 109.6111 113.69775 38.126311-11.085959 { Truncate points at last one used (4)
+C Also illustrate that comment lines are tolerated within data of SELECT. The
+C following PARAM6 for parameter #6 should give a result that is identical
+C to ANGLAI when KNT = 1 (all that is being used):
+PARAM6 = SELECT ( KNT )
+ 229.6111 233.69775 158.12631 108.91404 278.28978 96.295541 239.16153 187.79161
+C 93.658151 192.55105 165.51983 171.78016 269.06742 256.13115 276.15484 214.35659
+C 171.24842 332.23904 341.62624 72.282156 206.20294 292.75362 190.11552 271.59629
+C 278.79531 312.74695 338.04959 79.377109 291.07469 52.334939 113.32174 198.40889
+C 338.27422 254.87681 74.500633 52.138059 44.356605 301.45684 305.09034 173.39597
+C 66.13517 213.79447 83.636753 242.91365 249.7637 178.4586 193.61877 110.70991
+ 221.4351 339.68186 { An in-line comment is legal on partial final card
+C Also illustrate that non-integer subscripts will result in a warning, but
+C not a fatal error. Integer truncation will be used as in Fortran. Thus
+C the value of PARAM7 should be identical to that of PARAM5. Once again
+C only 4 data points are required, but the full first card of 10 will be
+C used to illustrate the following blank card for termination.
+VALUE5 = LL4 + 0.5 $$
+PARAM7 = SELECT ( VALUE5 ) { This param #7 should have value -11.085959
+ 109.6111 113.69775 38.126311-11.085959 158.28978-23.704459 119.16153 67.791614
+BLANK card is needed to terminate SELECT since preceding card was full
+C Finally illustrate that an excessive subscript will result in a warning, but
+C not a fatal error. Just as for Prof. Hoidalen's data of the 5th subcase,
+C the last data point will be used if a subscript is excessive. In this
+C case, the subscript has value 5 whereas only 4 data points are defined.
+PARAM8 = SELECT ( LL5 ) { This param #8 should have value -11.085959
+ 109.6111 113.69775 38.126311-11.085959
+C Intermediate variable before parameter itself. |VALUE4 = LL3 + 1.0 $$ { VALUE4 is an intermediate variable so a double dollar
+C Parameter 5 defined. Value = -1.108596E+01 |PARAM5 = SELECT ( VALUE4 ) { This param #5 should have value -11.085959
+C Parameter 6 defined. Value = 2.296111E+02 |PARAM6 = SELECT ( KNT )
+C Intermediate variable before parameter itself. |VALUE5 = LL4 + 0.5 $$
+C ### Warning. The argument of SELECT is not an integer. POCKE4 truncates to integer from 4.5000000E+00
+C Parameter 7 defined. Value = -1.108596E+01 |PARAM7 = SELECT ( VALUE5 ) { This param #7 should have value -11.085959
+C ### Warning. SELECT argument 5 is too large for data. POCKE4 uses last entry, number 4
+C Parameter 8 defined. Value = -1.108596E+01 |PARAM8 = SELECT ( LL5 ) { This param #8 should have value -11.085959
+BLANK card ends input to $PARAMETER
+ 5.E-9 6.E-6
+ 500 1 1 1
+C The rest of R7U.DAT is of no particular interest, so terminate execution:
+$ABORT
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn2.dat b/benchmarks/dcn2.dat
new file mode 100644
index 0000000..65ec004
--- /dev/null
+++ b/benchmarks/dcn2.dat
@@ -0,0 +1,301 @@
+BEGIN NEW DATA CASE
+C 1st of 3 subcases is added 18 October 2001. It is unrelated to following
+C 2nd. Since a DO KNT loop is involved, data must be in 1st subcase.
+C 1st of 2 subcases illustrates "simultaneous usage of $PARAMETER
+C blocks and DO loops, which are used to serialize power network
+C branches." This is the way Prof. Juan Martinez of UPC in Barcelona,
+C Spain, described his latest observation of inadequacy of the new ATP
+C tools, in an E-mail message dated 16 October 2001. The attached small
+C example NEWDIS2.DAT served as the model for the present addition.
+C Among other changes, /-card data sorting was removed for simplicity.
+C It had nothing to do with the program error, which was corrected the
+C following day. Before correction, execution died early in branch input.
+$PARAMETER
+AAAAAAAA='$ENABLE '
+BBBBBBBB='$DISABLE'
+BLANK card ends block of parameter definitions
+ .000100 .010 { dT and T-max will result in 100 steps (Martinez had 400)
+ 20 -1 { Minimal printout and no plotting demonstrate simulation
+DO KNT=1, 5 /OUTPUT
+$PARAMETER
+BU1___ = KNT - 1. SERIALIZE 'BUS000'
+BU2___ = KNT SERIALIZE 'BUS000'
+BLANK card ending symbols definitions
+ BU1___BU2___ 0.075 0.5570
+ BU2___ 1000. 2387.3
+ENDDO KNT
+C The following 3 data cards will be ignored since BBBBBBBB will be replaced
+C by $DISABLE (see the first $PARAMETER block). Yet, these 3 lines
+C produce substantial output in the .LIS file because the $DISABLE is
+C dynamic. Each line of the disk file must be read since ATP has no way of
+C knowing that one of them does not end the discarding.
+BBBBBBBB
+$INCLUDE dofile.dat
+$ENABLE
+BLANK card ending BRANCH cards
+ SOURCEBUS000 MEASURING 1
+C The following data card will be ignored since AAAAAAAA will be
+C replaced by $ENABLE by the first $PARAMETER block:
+AAAAAAAA
+BLANK card ending SWITCH cards
+14SOURCE 20412.4 50.0 0.0 -1.0
+BLANK card ending SOURCE cards
+ BUS000BUS001BUS004BUS005
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time BUS000 BUS001 BUS004 BUS005 SOURCE
+C BUS000
+C *** Phasor I(0) = 6.5184598E+01 Switch "SOURCE" to "BUS000" closed in the steady-state.
+C 0 0.0 20412.4 20398.9415 20374.7213 20372.0305 65.1845978
+C 20 .002 16513.9785 16507.6359 16496.2181 16494.9494 81.5202569
+C 40 .004 6307.7785 6310.97466 6316.72113 6317.3591 66.7198316
+C 60 .006 -6307.7785 -6296.2642 -6275.5483 -6273.2473 26.4355142
+C 80 .008 -16513.978 -16498.544 -16470.771 -16467.686 -23.945918
+C 100 .01 -20412.4 -20398.941 -20374.72 -20372.029 -65.18067
+BLANK card ending OUTPUT cards
+BLANK card ending PLOT cards
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-2
+C 2nd of 2 subcases was the 1st prior to 18 October 2001.
+C Test of automatic U.M. initialization using 3-phase synchronous mode of
+C operation. The steady-state lasts 50 msec until a TACS "fault" occurs.
+C The machine data comes from the text by Fouad and Anderson (real units)
+C Note: WSM and Yin change comment cards in Leuven, October 22, 1990,
+C following modifications of code that change answers in 3rd or 4th
+C decimal place (peak values of PRINTER PLOTs are barely affected).
+C In response to a request for specifics, G. Papagiannis of Aristotle
+C University of Thessaloniki in Greece posted the following on February
+C 18, 1998 (public E-mail from Fargo): A. A. Fouad and P. M. Anderson;
+C "Power System Control and Stability," Iowa State University Press in
+C Ames, Iowa, USA, 1982. "An excellent treatment of synhronous machine
+C modelling" was the recommendation. Neil Fitzgerald of Electrowatt
+C Engineering (UK) Ltd concurred later that same day, adding that the
+C book "was reprinted in 1993 by the IEEE Press and I think it costs
+C around $39.00 from the IEEE." He agreed on the recommendation. As
+C for the "P. M.", this is Dr. Paul M. of PMA (Power Math Associates)
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ABSOLUTE U.M. DIMENSIONS, 20, 2, 50, 100
+POWER FREQUENCY, 60, { Corrects possible 50-Hz declaration of European STARTUP
+ .000200 .070
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+TACS HYBRID
+ STEP1 +BAT1 -TFAULT
+ STEP2 +BAT2 -TCLEAR
+ FIRE -STEP0 +STEP1 -STEP2
+C --------- TACS UNITY SIGNAL SOURCE
+11STEP0 1.0 -1.0
+C --------- EMTP OUTPUT TO TACS
+90BAT1
+90BAT2
+90TFAULT
+90TCLEAR
+BLANK card ends all TACS data cards
+C --------- EMTP CONNECTIVITY
+ BUSA0 1.0E+8
+ BUSB0 1.0E+8
+ BUSC0 1.0E+8
+ BUSA5 BUSA1 0.001 1
+ BUSB5 BUSB1 0.001 1
+ BUSC5 BUSC1 0.001 1
+C --------- TRANSMISSION LINES (0.001 OHMS AND 1.0 MILLI HENRY)
+ BUSA1 BUSA0 1.0E-2 1.0 1
+ BUSB1 BUSB0 BUSA1 BUSA0 1
+ BUSC1 BUSC0 BUSA1 BUSA0 1
+C --------- RESISTANCES FROM BUS1 TO SWITCH (BUS2 TO GROUND)
+ BUSA1 BUSA2 0.0001 1
+ BUSB1 BUSB2 0.0001
+ BUSC1 BUSC2 0.0001
+C --------- EMTP CONNECTIVITY REQUIREMENT
+ BUSFS 1.0E+6
+ BUSFS BUSF0 1.0E-5
+C --------- RESISTANCES IN PARALLEL TO SWITCHES (BUS2 TO GROUND)
+ BUSA2 1.0E+9
+ BUSB2 1.0E+9
+ BUSC2 1.0E+9
+C --------- CIRCUIT FOR SWITCH CONTROL
+ BAT1 1.0
+ BAT2 1.0
+ BAT1 TFAULT 1.0
+ BAT2 TCLEAR 1.0
+C --------- MECH NETWORK
+ BUSMSM 1.E+09 1
+ BUSMS BUSMSM 1.0E-3 1
+BLANK card bounds the last branch card
+C --------- TIME OF FAULT AND TIME OF CLEARING
+ TFAULT .05001 { Fault is applied 1/2 DELTAT after 50 msec
+ TCLEAR 3600.0
+C --------- TACS CONTROLLED SWITCHES
+11BUSA2 FIRE
+11BUSB2 FIRE
+11BUSC2 FIRE
+ BUSA9 BUSA5 -1.0 1.0 1
+ BUSB9 BUSB5 -1.0 1.0 1
+ BUSC9 BUSC5 -1.0 1.0 1
+BLANK card ends the last electric network switch card
+C --------- EXCITATION SOURCE VOLTAGE (ACTUAL VALUE SET BY SS)
+14BUSFS 0.001 0.00001 -1.0
+C --------- INFINITE BUS SOURCE VOLTAGES
+14BUSA0 3000.0 60.0 0.0 -1.0
+14BUSB0 3000.0 60.0 -120.0 -1.0
+14BUSC0 3000.0 60.0 +120.0 -1.0
+C --------- BATTERIES FOR SWITCH CONTROL
+14BAT1 2.0 0.00001 -1.0
+14BAT2 3.0 0.00001 -1.0
+C --------- MECH INPUT TORQUE (ACTUAL VALUE SET BY SS) :
+14BUSMS -1 0.0000001 0.00001 -1.0
+C --------- SYNCHRONOUS MACHINE SPECIFICATIONS
+C --------- UM DATA
+19 UM
+ 1
+BLANK CARD ENDING CLASS 1 UM DATA
+C --------- UM-1 MACH-TABLE
+ 1 2 1111BUSMSM 1 0.0373
+ 0.0057815
+ 0.0055850
+3030.0 15.0 BUSFS BUSMS
+C --------- UM-1 COIL-TABLE
+ BUSA9 1
+0.001542 0.0005595 BUSB9 1
+0.001542 0.0005595 BUSC9 1
+0.0010 0.0003767 BUSF0 1
+0.01834 0.0002075 1
+0.07560 0.0001335 1
+BLANK card ends all U.M. data cards
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C BUSA0 |TERRA *BUSA1 *
+C BUSB0 |TERRA *BUSB1 *
+C BUSC0 |TERRA *BUSC1 *
+C BUSA5 |BUSA1 *BUSA9 *
+C BUSA1 |BUSA0 *BUSA5 *BUSA2 *
+C BUSB5 |BUSB1 *BUSB9 *
+C BUSB1 |BUSB0 *BUSB5 *BUSB2 *
+C BUSC5 |BUSC1 *BUSC9 *
+C BUSC1 |BUSC0 *BUSC5 *BUSC2 *
+C BUSA2 |TERRA *TERRA *BUSA1 *
+C BUSB2 |TERRA *TERRA *BUSB1 *
+C BUSC2 |TERRA *TERRA *BUSC1 *
+C BUSFS |TERRA *BUSF0 *
+C BUSF0 |BUSFS *
+C < < Etc. (many more not shown) > >
+BLANK card ending all electric network sources
+C Total network loss P-loss by summing injections = 7.248075223468E+04
+C Total network loss P-loss by summing injections = 1.461915999075E+15
+C Total network loss P-loss by summing injections = 1.461915980400E+15
+C Total network loss P-loss by summing injections = 1.461915980711E+15
+C Gen 1: BUSMSM 376.99111843078 376.99111843078 -24959.40530999 24959.416549762
+C Gen 1: 0.0 0.0 23.687050562614 179.9456250
+ BUSA1 BUSA0 BUSMSM
+C Step Time BUSA1 BUSA0 BUSMSM BUSA9 BUSB9
+C BUSA5 BUSB5
+C
+C BUSC5 BUSA1 BUSB1 BUSC1 BUSA1
+C BUSC1 BUSA0 BUSB0 BUSC0 BUSA2
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1
+C OMEGM THETAM IPA IPB IPC
+C *** Phasor I(0) = 2.0727726E+03 Switch "BUSA9 " to "BUSA5 " closed
+C *** Phasor I(0) = -8.1575149E+02 Switch "BUSB9 " to "BUSB5 " closed
+C *** Phasor I(0) = -1.2570211E+03 Switch "BUSC9 " to "BUSC5 " closed
+C 0 0.0 2924.682776 3000. 376.9911184 2072.772625 -815.751494
+C -1257.02113 2072.772622 -815.751493 -1257.02113 .2928573E-5
+C 376.9911184 1.174129748 2072.761251 -815.747018 -1257.01423
+C 1 .2E-3 2857.218771 2991.476701 376.9911184 2047.694642 -668.660479
+C -1379.03416 2047.69464 -668.660478 -1379.03416 .2833076E-5
+C 376.9911184 1.174129748 2047.694642 -668.660479 -1379.03416
+C 2 .4E-3 2773.75849 2965.955234 376.9911185 2010.99049 -517.772984
+C -1493.21751 2010.990487 -517.772984 -1493.2175 .2755769E-5
+C 376.9911184 1.174129748 2010.99049 -517.772984 -1493.21751
+BLANK card ending selective variable output request (node voltages, here)
+C 350 .07 .7006894039 927.0509831 376.7455301 2408.782669 10873.00302
+C -13281.7857 -4598.11137 -807.600679 5405.712048 7006.894039
+C 376.7757426 1.169603437 2408.782669 10873.00302 -13281.7857
+C Variable max: 3027.62917 3000. 376.9914104 7182.444042 21231.90574
+C 2087.531085 11218.73045 2087.574976 12006.72539 11206.93469
+C 377.0003725 1.174129748 7182.444042 21231.90574 2087.531085
+C Times of max: .016 0.0 .0504 .0532 .0578
+C .0108 .0624 .0386 .0568 .0534
+C .0652 .0352 .0532 .0578 .0108
+ PRINTER PLOT
+ 194 8. 0.0 96. UM-1 TQGEN { Plot limits: (-0.913, 1.466)
+ 19415. 0.0 75. UM-1 OMEGM { Plot limits: (0.000, 3.770)
+ 194 8. 0.0 96. UM-1 IPA { Plot limits: (-1.335, 0.718)
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases is added 12 November 2001. It is unrelated to preceding.
+C Data to be used to test counting of actual (minimal) table sizes. This is
+C ESTIMATE ACTUAL TABLE SIZES (EATS) which entered the UTPF 12 November 2001.
+C Data is simple, and was obtained from DC-7 by canibalization. Prior to
+C addition here, data was stored separately as COUNT.DAT This is just the
+C first illustration of EATS so keep it simple by omission of batch-mode
+C plot requests and other unrelated features.
+PRINTED NUMBER WIDTH, 9, 2, { Full precision on each of 8 columns of printout
+ .000025 .0007 60. 60.
+ 1 1 1 1 -1
+ 5 5 10 10 20 1
+ESTIMATE ACTUAL TABLE SIZES { New request must follow immediately the misc. data
+ 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0
+ 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0
+ 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0
+ 10 10 10 10
+ 0 0 10
+ 10 10
+C The preceding data is similar to NEW LIST SIZES in that there is one entry
+C for each of 30 lists, with 10 per card. There are two such sets: first
+C the multiplication factors, and second the additive constants.
+ GENA SWA 89352. 3
+ BRANCH NAME:2nd LIN
+ GENB SWB GENA SWA 1
+ GENC SWC GENA SWA
+93RECA NAME 1st NL .559 300. 3
+ 0.0 0.0
+ .5590 300.
+ .9344 400.
+ 9999
+ BRANCH NAME:2nd NL ! { Hold lower case of this 2nd, but not following 3rd
+93RECB RECA .559 300. 4
+-1SENDA RECA .137681.07755.6806124.27
+-2SENDB RECB .03009.450289.5000124.27
+-3SENDC RECC
+-1RECA ENDA SENDA RECA
+-2RECB ENDB
+-3RECC ENDC
+BLANK card ends all branch cards
+ SWA SENDA -1. 1.0
+ SWB SENDB 0.0 1.0
+ SWC SENDC 0.0 1.0
+BLANK card ends all switch cards
+14GENA 188000. 60. 0.0 -1.
+14GENB 188000. 60. 120. -1.
+14GENC 188000. 60. -120. -1.
+BLANK card ending source cards
+ RECA RECB RECC
+BLANK card ending output variable requests (just node voltages, here)
+ PRINTER PLOT
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+ 10 June 2002, WSM adds output to the screen in case of DISK use.
+Without any EATS, this is simple as should be illustrated in the October
+(or later) newsletter. But with EATS, there are variations depending upon:
+1) the subcase number; and 2) whether the order for EATS comes from
+STARTUP, or is buried in data, or both. Consider first the case of no
+STARTUP request. I..e., assume FLZERO > 0. Then the screen will show:
+ ---- Begin next subcase number KNTSUB = 2
+ ---- Begin next subcase number KNTSUB = 3
+ Explicit EATS request now is being processed.
+I.e., the exceptional 3rd subcase will have two lines rather than
+the usual one. On the other hand, if FLZERO < 0, the screen
+should show:
+ ---- Begin EATS for subcase number KNTSUB = 1
+ ---- Begin EATS for subcase number KNTSUB = 2
+ ---- Both implied and explicit EATS. KNTSUB = 3
+
+ There is yet another variation. Suppose FLZERO > 0 with
+EATS data embedded in the 1st subcase. Output will differ from the
+preceding as follows:
+ ---- Explicit EATS request in subcase KNTSUB = 1
diff --git a/benchmarks/dcn20.dat b/benchmarks/dcn20.dat
new file mode 100644
index 0000000..98db17a
--- /dev/null
+++ b/benchmarks/dcn20.dat
@@ -0,0 +1,639 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-20
+C This data was received from Dr. Hiroshi Okamoto of Tokyo Electric Power Co.
+C (TEPCO) in Japan. This was by E-mail from <okamoto@rd.tepco.co.jp> on
+C 25 March 1997 as described in a story of the April, 1997, newsletter.
+C This data serves to compare the old Type-59 S.M. with the new Type-58 as
+C provided to ATP by TEPCO.
+C INF 1-GEN SYSTEM FOR SYNCHRONOUS MACHINE MODEL
+C DATA SET 'L0000530.SOU.EMTP2(GE2GC1)'
+C The time step size of 95 usec is especially chosen to illustrate stability
+C problems of the Type-59 S.M. (MACH 1 of the plot). The new Type-58 S.M.
+C (MACH 2 of the plot) is perfectly stable through the 100 msec shown, but
+C the old Type-59 clearly is beginning to diverge at the end of the plot. If
+C dT is increased from 95 to just 100 usec, the old Type-59 becomes a bomb.
+C On the other hand, if dT is decreased from 95 to 90 usec, the old Type-59
+C becomes almost indistinguishable from the new Type-58 over the short time
+C span considered. But increase T-max to find later trouble. The original
+C data had dT = 10 usec and T-max = 1.0 sec. Consider increasing IPLOT
+C in such a case, and maybe using TPPLOT on a saved .PL4 file. If
+C IPLOT is not increased, the result is a 20.401-Mbyte disk file.
+C Answers change 10 February 1999 following the massive changes from
+C TEPCO (Tokyo Electric Power Company) in Japan. See April newsletter.
+ .000095 .100 60. 60.
+ 1 1 1 1 -1
+ 5 5 20 20 100 100
+ 1GA IA 8.707 197.6 3.308
+ 2GB IB 5.704 65.29 -.061 8.591 196.8 3.384
+ 3GC IC 5.466 47.29 -.171 5.704 65.29 -.061 8.707 197.6 3.308
+ 1GAA IAA 8.707 197.6 3.308
+ 2GBB IBB 5.704 65.29 -.061 8.591 196.8 3.384
+ 3GCC ICC 5.466 47.29 -.171 5.704 65.29 -.061 8.707 197.6 3.308
+BLANK ENDING OF BRANCH CARDS
+BLANK ENDING SWITCH CARD
+14IA 408241.76 60.0 0.0 -1.0
+14IB 408241.76 60.0 -120.0 -1.0
+14IC 408241.76 60.0 +120.0 -1.0
+14IAA 408241.76 60.0 0.0 -1.0
+14IBB 408241.76 60.0 -120.0 -1.0
+14ICC 408241.76 60.0 +120.0 -1.0
+59GA 408248.29 60.0 1.0 -1.0
+59GB
+59GC
+ 2 2 10 1000. 500.0 800.0
+BLANK CARD
+ 1.097 0.847 0.847 1. 0.847 1.007
+ 0.767 0.507 0.0 0.66 0.0 1.0
+ 0.005 0.000392 0.027 0.034 0.0
+ 1 1.0 10.3677 1101.16 EU_MG
+ 2 0.0 17.2795 EU_MS
+BLANK CARD
+ 11
+ 21
+ 31
+ 41
+ 51
+BLANK CARD
+ FINISH
+C --------- End old Type-59 S.M. data; begin new Type-58 S.M. data:
+58GAA 408248.29 60.0 1.0 -1.0
+58GBB
+58GCC
+ 2 2 10 1000. 500.0 800.0
+BLANK CARD
+ 1.097 0.847 0.847 1. 0.847 1.007
+ 0.767 0.507 0.0 0.66 0.0 1.0
+ 0.005 0.000392 0.027 0.034 0.0
+ 1 1.0 10.3677 1101.16
+ 2 0.0 17.2795
+BLANK CARD
+ 11
+ 21
+ 31
+ 41
+ 51
+BLANK CARD
+ FINISH
+BLANK card ending source cards
+C GCC -210263.4133669 408248.29 -22.86029096659 50.481419449425 .102784436273E8 -21472.85033321
+C 349937.08475555 121.0000000 45.008674792217 116.9264047 732007.00771024 -105731.5844176
+C ICC -204120.88 408241.76 21.675662657966 50.626515259414 -.10299916478E8
+C 353547.73504567 120.0000000 -45.75160866734 -64.6498883 -837738.5921279
+C Total network loss P-loss by summing injections = 2.470730685868E+04
+ GA GB GC IA IB IC { Old Type-59 S.M.
+ GAA GBB GCC IAA IBB ICC { New Type-58 S.M.
+C First 12 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 38 output variables pertain to Type-59 S.M. components (names are generated internally);
+C Step Time GA GB GC IA IB IC GAA GBB GCC IAA
+C
+C IBB ICC MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C ID IQ I0 IF IKD IG IKQ IA
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C IB IC EFD MFORCE MANG TQ GEN ANG 1 ANG 2 VEL 1 VEL 2
+C
+C MACH 1 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2
+C TOR 1 ID IQ I0 IF IKD IG IKQ IA IB
+C
+C MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2
+C IC EFD MFORCE MANG TQ GEN ANG 1 ANG 2 VEL 1 VEL 2 TOR 1
+C 0 0.0 408186.112 -197922.7 -210263.41 408241.76 -204120.88 -204120.88 408186.112 -197922.7 -210263.41 408241.76
+C -204120.88 -204120.88 -4.4130942 60.5639838 .772660912 800.402708 .852074217 .742801855 0.0 49.9984321
+C -25.799853 -22.860291 -682.86299 799.860885 .015912194 .401972289 18.4574189 18.4411968 0.0 .14211E-13
+C .422856651 49.9984321 -25.799853 -22.860291 800.402835 .852298612 .742428139 0.0 -4.4130942 60.5639838
+C .772660912 -682.86299 799.861233 .015911908 .401972457 18.4574189 18.4411968 0.0 0.0 .422856651
+C 1 .95E-4 407893.672 -185217.11 -222679.75 407979.972 -191330.68 -216649.29 408111.529 -185307.24 -222807.51 407979.972
+C -191330.68 -216649.29 -4.2041412 60.3879406 .714862646 800.379672 .811106299 .781017269 0.0 49.7613998
+C -24.063847 -24.459374 -682.86299 799.86747 .015896025 .400786124 18.4574189 18.4411968 .216E-10 .2802E-5
+C .422856453 49.8095208 -24.085131 -24.485985 800.380399 .812262842 .788588762 0.0 -4.2091863 60.3524392
+C .714993055 -682.86299 799.867602 .015892687 .400551293 18.4574189 18.4411968 .21714E-10 .281731E-5 .422856451
+C 2 .19E-3 406867.982 -172041.84 -234825.96 407194.942 -178295.09 -228899.85 406998.315 -172084.21 -234913.87 407194.942
+C -178295.09 -228899.85 -3.9507996 60.1570077 .659527672 800.35128 .762038113 .831454902 0.0 49.4294498
+C -22.260505 -26.026609 -682.86299 799.875576 .015875056 .39923208 18.4574189 18.4411968 .131024E-9 .57827E-5
+C .422855844 49.4707826 -22.278391 -26.047605 800.352354 .763726476 .854919597 0.0 -3.95874 60.0504313
+C .660942841 -682.86299 799.875528 .015865594 .398526145 18.4574189 18.4411968 .132076E-9 .585937E-5 .422855836
+BLANK card ending output requests
+C 1053 .100035 415280.068 -197293.88 -217987.68 408206.223 -199438.29 -208767.93 408235.937 -193516.73 -214722.13 408206.223
+C -199438.29 -208767.93 -4.1350245 61.3028263 .690403958 800.370438 .799733436 .56388449 0.0 50.7259147
+C -25.427344 -24.102756 -682.86299 799.871164 .015965431 .406847425 18.457757 18.4415815 .573744E-4 .395066E-4
+C .421640989 50.3438664 -25.04608 -24.297981 800.350146 .676467979 .59869684 0.0 -3.6952162 61.1409442
+C .577238085 -682.86299 799.876422 .015950332 .405730061 18.4577388 18.4415591 .556036E-4 .380861E-4 .421750163
+C Variabl max: 415280.068 412229.576 411850.366 408241.76 408240.005 408241.321 408635.133 408471.267 408253.524 408241.76
+C 408240.005 408241.321 5.12456969 68.4279518 1.78316215 800.48001 1.02182904 1.18160057 0.0 51.7606628
+C 54.6088512 52.6553712 -682.86299 800.203141 .016566167 .453784705 18.457757 18.4415815 .108985E-3 .154242E-3
+C .424309833 50.8562508 53.8835515 52.2481039 800.498224 1.00871794 1.15996876 0.0 4.8599028 67.7090154
+C 1.87680621 -682.86299 800.19173 .01650918 .44903137 18.4577388 18.4415591 .101535E-3 .149203E-3 .424182575
+C Times of max: .100035 .088635 .09424 0.0 .02223 .011115 .083315 .038855 .044365 0.0
+C .02223 .011115 .08702 .097185 .09709 .01577 .01577 .001425 0.0 .09975
+C .088825 .09443 0.0 .08702 .097185 .097185 .100035 .100035 .046265 .08702
+C .06783 .09975 .08873 .01121 .01577 .01577 .00133 0.0 .00361 .013585
+C .0969 0.0 .00361 .013585 .013585 .100035 .100035 .046455 .086925 .06783
+ 193.01 0.0 .1 .30 .50MACH 1TQ GENMACH 2TQ GEN
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 3 subcases was added 18 February 1999. The data came from TEPCO,
+C but has been modified to minimize the computational burden. As should be
+C described in the April, 1999, newsletter, NEW LOAD FLOW is illustrated.
+C INF 1-GEN SYSTEM FOR SYNCHRONOUS MACHINE MODEL
+C DATA SET 'L0000530.SOU.EMTP2(GE2GC1)'
+NEW LOAD FLOW { Request for new TEPCO load flow, used if unbalanced
+C The preceding old form of the request is being reactivated 3 June 2001
+C to demonstrate the new warning message. It also reminds developers that
+C the old form continues to be honored (and eventually should be removed).
+C It is recommended that others use CAO instead of NEW as follows:
+C CAO LOAD FLOW { Alternate, preferred form of request beginning 21 March 99
+C 10.E-6 1. 60. 60. ---- original simulation is demanding
+ 40.E-6 .100 60. 60. { Shorter, faster simulation for this use
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 500 500
+ 1GA IA 8.707 197.6 3.308
+ 2GB IB 5.704 65.29 -.061 8.591 196.8 3.384
+ 3GC IC 5.466 47.29 -.171 5.704 65.29 -.061 8.707 197.6 3.308
+BLANK ENDING OF BRANCH CARDS
+BLANK ENDING SWITCH CARD
+14IA 408241.76 60.0 0.0 -1.0
+14IB 408241.76 60.0 -120.0 -1.0
+14IC 408241.76 60.0 +120.0 -1.0
+58GA 408248.29 60.0 1.0 -1.0
+58GB
+58GC
+ 2 2 10 1000. 500.0 800.0
+BLANK CARD for Q axis
+ 1.097 0.847 0.847 1. 0.847 1.007
+ 0.767 0.507 0.0 0.66 0.0 1.0
+ 0.005 0.000392 0.027 0.034 0.0
+ 1 1.0 10.3677 1101.16 EU_MG
+ 2 0.0 17.2795 EU_MS
+BLANK CARD
+ 11
+ 21
+ 31
+ 41
+ 51
+BLANK CARD ending S.M. output requests
+ FINISH
+BLANK CARD ending sources
+ GA GB GC 10000000. 0.
+ 1 0.01
+ GA GB GC IA IB IC
+BLANK CARD FOR ENDING OUTPUT REQUEST
+ PRINTER PLOT
+ 144 2. 0.0 20. GA GB GC
+ 194 2. 0.0 20. MACH 1TQ GENMACH 1I0
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases involving modeling from TEPCO (Tokyo Electric Power Co.)
+C --- data that demonstrated trouble with the Type-58 S.M. model prior to
+C correction of the UTPF on 22 January 2003. Data is from Dr. Eiichi
+C Haginomori of Kyushu Institute of Technology in Kita-Kyushu, Japan.
+C Ending time T-max has been shortened to 5 * dT because the switching
+C that caused trouble has been advanced to the 3rd time step. Following
+C correction, execution no longer hangs during the step following switching.
+NEW LIST SIZES { Overflow of 3 times default without expanded List 19 below:
+ 350 0
+ 0 80 4000
+BLANK
+ 240000 742
+ABSOLUTE TACS DIMENSIONS
+C Expand TACS Table 1 from 57 to 120 on 1 April 2007. Force the data thru.
+C Reduce preceding 8000 of List 19 to 4000 since TACS is not very demanding
+C The effect on case-summary statistics is to reduce 7644 to 3271.
+C 57 256 285 36 85 713 998 171 --- default
+ 120 30 50 40 70 1200 120 115
+C USING TPBIG-96/7 --- DIRECT CONNECTION OF UM AND INVERTER
+C CALCULATED THETAE FROM EL. INFORMATIONS ACTURALLY --- 3*THETAM=THETAE FOR 6P
+C <<< ONE-GEN --- INF BUS SYSTEM WITH FLYWHEEL COMPENSATOR>>>
+C SYNCH. GENERATOR 1200MVA 6P / FLYWHEEL COMPENSATOR 200MVA 6P DOUBLY FED MACH.
+C <<Inc.-SATUR. CHARACTERISTICS IS INTRODUCED>> SYNC. GEN. FIX FLOW CAN NOT
+C A-SYMMETRICAL FAULT CURRENT, UNDER UPPER LIMIT POWER FLOW
+C <<Both PP & QQ OF UM ARE CONTROLLED, Max output, Gen output = 115%>>
+POWER FREQUENCY, 50.
+UM TO TACS
+ .000200 .001 { Just 5 steps. Original data had Tmax = 3.0 and IPLOT = 10
+ 1 1 1 3
+TACS HYBRID
+C INPUTTING VALUES
+92IE3 {UM SECONDARY CURRENT PHASE A --- UM TO TACS PARAMETERS
+92IE1 {DITTO B
+92IE2 {DITTO C
+92IPA {UM PRIMARY CURRENT PHASE A
+92IPB {DITTO B
+92IPC {DITTO C
+90G1RX {UM PRIMARY SIDE TERMINAL VOLTAGE PHASE R
+90G1SX {DITTO S
+90G1TX {DITTO T
+C MEASURING DELTA F OF THE HIGH-VOLTAGE BUS
+90B271R {HIGH VOLTAGE BUS VOLTAGE
+90B271S {HIGH VOLTAGE BUS VOLTAGE
+90B271T {HIGH VOLTAGE BUS VOLTAGE
+C INVERTER CONTROLLING
+91VAP { phase-A current }
+91VBP { phase-B current }
+91VCP { phase-C current }
+93VDA { Leg-A top switch status }
+93VDB { Leg-B top switch status }
+93VDC { Leg-C top switch status }
+C CONSTANTS
+11X0 1.6642 -1. {UM PARAMETER
+11X1 .08635 -1. {DITTO
+11PP1 -600000. -1. {OUTPUT CONST.
+11PP2 -2.5E08 .44 {DITTO
+11QQ1 -1000000. -1. {DITTO
+11QQ2 -2.5E08 .44 {DITTO
+C BUS VOLTAGE FREQUENCY METER
+98BUSV = B271R - .5 *(B271S + B271T)
+ 1VOLT +BUSV
+1.
+1. .005
+98FREQ 50+VOLT 50. 500.
+88DELFR1 = (FREQ - 50.)/ .5
+ DELFR +DELFR1 -1. 1.
+ 2DELFZ +DELFR
+1.
+1. .06 .0009
+C COMMAND CALCULATION --- FIRSTLY UM PRIMARY SIDE VECTORS
+ VRSQ +G1RX -1. 1.
+98SIG 59+VRSQ
+99IN1 = 100 * PI * DELTAT
+98TH0 65+IN1 SIG
+98PP = PP1 + (PP2 * DELFZ) {ACTIVE POWER CONTROLLING
+98QQ = QQ1 + (QQ2 * DELFZ) {REACTIVE POWER CONTROLLING
+99V1PS =SQRT((G1RX * G1RX) + ((G1SX - G1TX) * (G1SX - G1TX)/3.))
+ 1V1P +V1PS
+1.
+1. .002
+98I1P =2 * SQRT((PP * PP) + (QQ * QQ)) / V1P
+98TH11 =ATAN(QQ / PP)
+98TH12 =TH11 + PI
+98TH1 60+TH12 +TH11 +TH11 0.0 PP
+98I1 =I1P * SIN(TH0 + TH1)
+98XXX =COS(TH1) / (V1P/(X1*I1P) - SIN(TH1))
+98TH2 =ATAN(XXX)
+98E1P =X1 * I1P * COS(TH1)/SIN(TH2)
+98I0P =E1P / X0
+98I0 =I0P * SIN(TH0 + TH2 - (PI/2))
+98I21 =I1 + I0
+C CALCULATION CORRESPONDING TO POSITION SENCER
+C PRIMARY SIDE VIEW OF THE SECONDARY CURRENT
+98V1 = 0.5 * (G1RX - G1SX - G1TX)
+98JV1 = (G1TX - G1SX) / 1.7320508
+98I11 = 0.5 * (IPA - IPB - IPC)
+98JI11 = (IPC - IPB) / 1.7320508
+98I21A = (I11 * (1. + (X1/X0))) - (JV1/X0)
+98JI21A = (V1/X0) + (JI11 * (1. + X1/X0))
+98THI210 = -(ATAN(JI21A/I21A))
+98THI211 = THI210 + PI
+98THI21A60+THI211 +THI210 +THI210 0.0 I21A
+C SECONDARY SIDE VIEW OF THE SECONDARY INJECTING CURRENT
+C IN UM, IE3, IE1, IE2 ARE Ia, Ib, Ic OF RESPECTIVE OUTGOING CURRENT, THEN:
+98I22 = 0.5 * (IE1 + IE2 - IE3)
+98JI22 = (IE1 - IE2) / 1.7320508
+98THI220 = -(ATAN(JI22/I22))
+98THI221 = THI220 + PI
+98THI22 60+THI221 +THI220 +THI220 0.0 I22
+C CALCULATION OF THETAE
+98THETAE = THI21A- THI22 {BASED ON UM POSITION IN EMTP}
+C SECONDARY SIDE CURRENTS --- FOR COMMANDING
+98I2A1 =I1P * SIN(TH0 + TH1 - THETAE)
+98I2A0 =I0P * SIN(TH0 + TH2 - (0.5*PI) - THETAE)
+88S2AS =I2A1 + I2A0
+98I2B1 =I1P * SIN(TH0 + TH1 - (0.66667*PI) - THETAE)
+98I2B0 =I0P * SIN(TH0 + TH2 - (1.16667*PI) - THETAE)
+88S2BS =I2B1 + I2B0
+98I2C1 =I1P * SIN(TH0 + TH1 + (0.66667*PI) - THETAE)
+98I2C0 =I0P * SIN(TH0 + TH2 + (0.16667*PI) - THETAE)
+88S2CS =I2C1 + I2C0
+ 1S2AIN +S2AS
+1.
+1. .005
+ 1S2BIN +S2BS
+1.
+1. .005
+ 1S2CIN +S2CS
+1.
+1. .005
+C --------- SINUSOIDAL REFERENCE CURRENTS
+98IREFA = S2AIN
+98IREFB = S2BIN
+98IREFC = S2CIN
+98DELTAI = 200. { one-half of the difference between the upper and the lower
+C tolerance bands }
+C 98REFPOS = IREFA + DELTAI { POSITIVE REFERENCE BAND FOR PHASE-A }
+C 98REFNEG = IREFA - DELTAI { NEGATIVE REFERENCE BAND FOR PHASE-B }
+C --------- ERROR BETWEEN THE MEASURED AND THE REFERENCE CURRENTS
+98ERRORA = VAP - IREFA
+98ERRORB = VBP - IREFB
+98ERRORC = VCP - IREFC
+C --------- SIGNL = 0 IF THE CURRENT IS WITHIN THE TOLERANCE BANDS
+C = 1 IF THE CURRENT EXCEEDS THE UPPER TOLERANCE BAND
+C =-1 IF THE CURRENT FALLS BELOW THE LOWER TOLERANCE BAND
+98SIGNLA = SIGN( ERRORA ) * ( ABS( ERRORA ) .GT. DELTAI )
+98SIGNLB = SIGN( ERRORB ) * ( ABS( ERRORB ) .GT. DELTAI )
+98SIGNLC = SIGN( ERRORC ) * ( ABS( ERRORC ) .GT. DELTAI )
+C --------- SIGA AND SIGAP CONTROL LEG-A SWITCHES; SIGB AND SIGBP CONTROL LEG-B
+C SIGC AND SIGCP CONTROL LEG-C
+C --------- SIG = NO CHANGE, IF SIGNL = 0
+C = 0 , IF SIGNL = 1
+C = 1 , IF SIGNL =-1
+98SIGA 60+UNITY +VDA +ZERO SIGNLA
+98SIGB 60+UNITY +VDB +ZERO SIGNLB
+98SIGC 60+UNITY +VDC +ZERO SIGNLC
+98SIGAP = .NOT. SIGA
+98SIGBP = .NOT. SIGB
+98SIGCP = .NOT. SIGC
+33THI210THI22 THETAEDELFZ IREFA
+BLANK card ending TACS data
+C POWER SYSTEM CIRCUITS
+C TRANSFORMER FOR UM
+ TRANSFORMER TR1RX 5.00E3
+1.5 205.
+7. 232.
+333. 271.
+3333. 386.
+ 9999
+ 1G1RX G1SX .0001 .01 11.
+ 2B271R NNX .5 90. 158.8
+ TRANSFORMER TR1RX TR1SX
+ 1G1SX G1TX
+ 2B271S NNX
+ TRANSFORMER TR1RX TR1TX
+ 1G1TX G1RX
+ 2B271T NNX
+C AROUND TRANSFORMER PARAMETERS
+ G1RX 100. .5
+ G1SX G1RX
+ G1TX G1RX
+ B271R .2 .02
+ B271S B271R
+ B271T B271R
+ NNX 1.
+C MACHANICAL NETWORK COMPONENTS
+ MG .00366 {1.5%}
+ MG 1.8E11
+ MS MG .10E-3 1
+C UM SECONDARY SIDE PARAMETERS
+ S2A CL2A .001 1
+ S2B CL2B S2A CL2A 1
+ S2C CL2C S2A CL2A 1
+ CL2A 100.
+ CL2B CL2A
+ CL2C CL2A
+C GENERATOR STEP-UP TRANSFORMER
+ TRANSFORMER 1. 747.6 TR1R 60.0E3
+1. 747.6
+4. 971.
+16. 1196.
+1000. 1300.
+ 9999
+ 1B271R 27N1 .2 33. 166.
+ 2G1R G1S .001 .076 24.
+ TRANSFORMER TR1R TR1S
+ 1B271S 27N1
+ 2G1S G1T
+ TRANSFORMER TR1R TR1T
+ 1B271T 27N1
+ 2G1T G1R
+C AROUND TRANSFORMER PARAMETERS
+ 27N1 .5 .005
+ G1R .01 .05
+ G1S G1R
+ G1T G1R
+ B271R G1R
+ B271S G1R
+ B271T G1R
+C LONG TRANSMISSION LINE parameters in English due to bug in TP20
+$VINTAGE, 1
+-1B271R B272R 2.26285E+00 9.55548E+02 1.26663E+05 4.25000E+01 1
+-2B271S B272S 3.10872E-02 2.76280E+02 1.81024E+05 4.25000E+01 1
+-3B271T B272T
+-4L271S L272S
+-5L271T L272T
+-6L271R L272R
+-1B272R B273R 2.26285E+00 9.55548E+02 1.26663E+05 4.50000E+01 1
+-2B272S B273S 3.10872E-02 2.76280E+02 1.81024E+05 4.50000E+01 1
+-3B272T B273T
+-4B272S B273S
+-5B272T B273T
+-6B272R B273R
+$VINTAGE, 0
+ B273R .01 .05
+ B273S B273R
+ B273T B273R
+ B273R SWGR .1 17.5 1
+ B273S SWGS B273R SWGR 1
+ B273T SWGT B273R SWGR 1
+C INVERTER CIRCUITS, WITH 1.5MH
+ VA VAP .001 1.5 3
+ VB VBP VA VAP 3
+ VC VCP VA VAP 3
+C --------- SMALL RESISTANCES ARE ADDED
+ VD VDA 0.001
+ VD VDB VD VDA
+ VD VDC VD VDA
+ VDN VDNA VD VDA
+ VDN VDNB VD VDA
+ VDN VDNC VD VDA
+C ANOTHER HIGH OHMIC RESISTORS
+ VD 90000.
+ VDN VD
+ VAPG VD
+ VBPG VD
+ VCPG VD
+ VA VD
+ VB VD
+ VC VD
+C SNUBBER
+ VDA VA 5. 10.
+ VDB VB VDA VA
+ VDC VC VDA VA
+ VA VDNA VDA VA
+ VB VDNB VDA VA
+ VC VDNC VDA VA
+C INVERTER INITIAL DUMMY LOAD
+ VAPGL .003
+ VBPGL VAPGL
+ VCPGL VAPGL
+BLANK card ending branch cards
+C FAULT INITIATION AND CLEARING SWITCHES
+C ---------------- Begin modification for use with T-max = 5 * dT.
+C First, omit the 3 original fault switches to ground:
+C L271R .303 10. 1
+C L271S .299 10. 1
+C L271T .2965 10. 1
+C Only the phase "a" switch is needed. This was the one
+C that caused trouble (a tight loop 1 step after closure).
+C Advance closing time to 2.5 * dT ==> closure on step 3.
+C Without correction to OVER16, execution would hang with
+C the last output on the screen being that for step 3:
+ L271R .000500 10.0 1
+C ---------------- End of modification made 22 January 2003
+ B271R L271R -1. .4
+ B271S L271S -1. .4
+ B271T L271T -1. .4
+ L272R B272R -1. .4
+ L272S B272S -1. .4
+ L272T B272T -1. .4
+C SWITCHES TURN OVER THE INVERTER OUTPUT FROM DUMMY TO UM SECONDARY
+ VAPG VAPGL -1. .201 9.E10 {SHALL BE BEFORE MEASURING SW
+ VBPG VBPGL -1. .201 9.E10
+ VCPG VCPGL -1. .201 9.E10
+ VAPG CL2A .20 10.
+ VBPG CL2B .20 10.
+ VCPG CL2C .20 10.
+C SWITCHES IN THE INVERTER AND AC SIDE CIRCUITS
+ VAP VAPG MEASURING
+ VBP VBPG MEASURING
+ VCP VCPG MEASURING
+C CONNECTED DIODE
+13VDA VA SIGA 1
+13VDB VB SIGB 1
+13VDC VC SIGC 1
+13VDNA VA SIGAP 1
+13VDNB VB SIGBP 1
+13VDNC VC SIGCP 1
+BLANK card ending switch cards
+14SWGR 225000. 50. 0. -1.
+14SWGS 225000. 50. -120. -1.
+14SWGT 225000. 50. 120. -1.
+C <CLASS 1 CARDS>
+14S2A -15600. .005 5. -1. .201
+14S2B -15600. .005 -115. -1. .201
+14S2C -15600. .005 125. -1. .201
+C DC VOLTAGE CAN BE REDUCED TO +/- 700 VOLTS WITHOUT CHANGING OTHERS
+14VD 750. .00001 -1.
+14VDN -750. .00001 -1.
+C MECHANICAL TORQUE (ACTUAL VALUE WILL BE SET BY INITIAL CONDITION)
+14MS -1.0001 .000001 -1.
+C ------ UNIVERSAL MACHINE PARAMETERS
+19 UM
+ 1 {COMPENSATION, SLIP INITIALIZATION IS INTRODUCED}
+BLANK RECORD ENDING GENERAL UNIVERSAL MACHINE SPECIFICATION
+C UM MACHINE-TABLE
+C UM TYPE 4 (DOUBLY FED INDUCTION MACHINE)
+ 4 311MG 3 .1047
+ .0053
+ .0053
+C INITIAL CONDITION ---- ONLY SLIP IS SPECIFIED AS .01%
+.01 MS
+C MOTOR COIL PARAMETERS
+C THE POWER (ARMATURE/STATOR) COILS
+ G1RX 1
+.003 .000275 G1SX 1
+.003 .000275 G1TX 1
+C THE ROTOR COILS
+.003 .000275 CL2B 1
+.003 .000275 CL2C 1
+ CL2A 1
+BLANK ENDING ALL WINDING ROTOR INDUCTION MOTOR DATA
+58G1R 20000. 50. 4.3
+58G1S
+58G1T
+C <CLASS 2 CARDS>
+TOLERANCES {DEFAULT}
+PARAMETER FITTING 1.0
+C <CLASS 3 CARDS>
+ 1 1 61.0 1.0 1200. 24.0 -500. 550. 900.
+ -1.
+.003 .2033 1.048 .640 .299 .640 .214 .278
+6.4 0.0 .033 .04 .214 .01 .1
+C <CLASS 4 CARD FOR MECHANICAL PARAMETERS>
+ 1 1.0 25. 5.
+BLANK {FOR END OF CLASS 4 CARDS}
+ 11
+ 21
+ 31
+ 51
+BLANK {FOR END OF OUTPUT REQUEST}
+C 71VFG1
+C 73TEG1 14
+ FINISH
+BLANK card ending electric network source cards
+C - - INITIAL CONDITIONS
+C 03VA VAP 16200.
+C 03VB VBP -12000.
+C 03VC VCP -4400.
+ B271R B271S B271T G1R G1S G1T G1RX G1SX G1TX CL2A CL2B CL2C
+C First 15 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 17 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 16 output variables pertain to Type-59 S.M. components (names are generated internally);
+C Next 5 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Final 11 output variables pertain to Type-19 U.M. components (names are generated internally);
+C Step Time VA VB VC B271R B271S B271T G1R G1S G1T G1RX
+C VAP VBP VCP
+C
+C G1SX G1TX CL2A CL2B CL2C L271R VDA VDB VDC VDNA
+C TERRA VA VB VC VA
+C
+C VDNB VDNC MS S2A S2B S2C B273R B273S B273T VA
+C VB VC MG CL2A CL2B CL2C SWGR SWGS SWGT VAP
+C
+C VB VC MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
+C VBP VCP IA IB IC IF IKD IG IKQ ID
+C
+C MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 TACS TACS
+C IQ I0 EFD MFORCE MANG TQ GEN ANG 1 VEL 1 THI210 THI22
+C
+C TACS TACS TACS UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C THETAE DELFZ IREFA TQGEN FLUXMD IMD OMEGM THETAM IPA IPB
+C
+C UM-1 UM-1 UM-1 UM-1
+C IPC IE1 IE2 IE3
+C *** Phasor I(0) = 1.7481189E+03 Switch "B271R " to "L271R " closed in the steady-state.
+C *** Phasor I(0) = -4.5243456E+02 Switch "B271S " to "L271S " closed in the steady-state.
+C *** Phasor I(0) = -1.2956844E+03 Switch "B271T " to "L271T " closed in the steady-state.
+C *** Phasor I(0) = 1.7686094E+03 Switch "L272R " to "B272R " closed in the steady-state.
+C *** Phasor I(0) = -5.1164059E+02 Switch "L272S " to "B272S " closed in the steady-state.
+C *** Phasor I(0) = -1.2569688E+03 Switch "L272T " to "B272T " closed in the steady-state.
+C *** Phasor I(0) = 7.8597942E-28 Switch "VAPG " to "VAPGL " closed in the steady-state.
+C *** Phasor I(0) = 7.8597942E-28 Switch "VBPG " to "VBPGL " closed in the steady-state.
+C *** Phasor I(0) = 7.8597942E-28 Switch "VCPG " to "VCPGL " closed in the steady-state.
+C *** Phasor I(0) = 7.8597944E-28 Switch "VAP " to "VAPG " closed in the steady-state.
+C *** Phasor I(0) = 7.8597944E-28 Switch "VBP " to "VBPG " closed in the steady-state.
+C *** Phasor I(0) = 7.8597944E-28 Switch "VCP " to "VCPG " closed in the steady-state.
+C 0 0.0 -.2259E-29 -.2259E-29 -.2259E-29 208158.64 -21846.037 -186312.6 19943.7027 -8673.1817 -11270.521 9113.64098
+C -5276.1428 -3837.4982 16.8063328 -6.3031915 -10.503141 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 152316.004 5578.69031 -2366.6623 -3212.028 3559.62137 -1144.404 -2415.2173 .78598E-27
+C .78598E-27 .78598E-27 41715.1084 -30191.8 -11523.308 1001.80789 .487618E-5 0.0 .20218E-5 -35892.416
+C 38680.9534 .170478E-9 -3332.2787 718.756062 .237235816 11.7236335 39.4571339 .46896E-12 0.0 0.0
+C 0.0 0.0 0.0 123706.91 35.5738008 6712.03789 104.709283 .523598776 938.381553 -554.20525
+C -384.1763 2366.59923 3211.92301 -5578.5222
+C 1 .2E-3 -.1339E-13 -.1339E-13 -.1339E-13 201977.519 -7722.5921 -194254.03 19823.8315 -7579.7442 -12244.087 9151.45131
+C -4804.5629 -4346.8884 23.814177 -7.6609777 -16.153199 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 152316.004 5578.68724 -2366.6304 -3212.0569 3505.7501 -925.34683 -2580.4033 -.8926E-15
+C -.8926E-15 -.8926E-15 42307.6898 -28187.048 -14120.641 1001.59093 -2.0122485 0.0 -.8358523 -35874.126
+C 38689.6613 -.1969E-11 -3332.2787 716.646844 .237381679 11.7267018 39.4571339 -.29124E-6 -1.4215961 .087267731
+C -1.5088638 0.0 -62.836554 123698.108 35.5747011 6712.20775 104.709283 .544540632 942.608173 -504.94928
+C -437.6589 2366.55377 3211.89533 -5578.4491
+C 2 .4E-3 -749.75008 -749.75008 -749.75008 194885.42 6602.83234 -201489.52 19598.7968 -6330.0077 -13268.789 9151.94877
+C -4310.2982 -4841.6506 28.6859178 -9.1396133 -19.546304 0.0 0.0 0.0 0.0 -149.97834
+C -149.97834 -149.97834 152316.004 5578.68418 -2366.5985 -3212.0857 3437.41314 -702.48667 -2734.9265 -49.980007
+C -49.980007 -49.980007 42730.2018 -26082.723 -16647.479 1001.36092 -4.0385211 0.0 -1.6446481 -35870.068
+C 38686.6306 -.3212E-11 -3332.2787 714.385728 .237526201 11.7277418 39.4571339 -.97244E-6 -1.3592587 .087272806
+C -1.4465315 0.0 -145.63073 123685.026 35.5770492 6712.65079 104.709283 .565482489 943.011488 -453.49067
+C -489.52082 2366.50709 3211.89023 -5578.3973
+C *** Close switch "L271R " to " " after 6.00000000E-04 sec.
+C 3 .6E-3 -749.41701 -749.41701 750.083142 186906.226 20907.6164 -207813.87 19310.7466 -5217.9361 -14092.81 9111.193
+C -3792.8021 -5318.3909 27.9503294 -12.236022 -15.714307 0.0 0.0 0.0 183.36497 -116.59171
+C -116.59171 0.0 152316.004 5578.68111 -2366.5666 -3212.1145 3356.73113 -477.93728 -2878.7937 -149.91115
+C -149.91115 -49.951141 42979.6997 -23882.395 -19097.305 1001.16741 -5.618633 0.0 -2.210096 -35872.276
+C 38671.8269 .52551E-11 -3332.2787 712.559772 .23763113 11.7257636 39.4571339 -.15646E-5 -1.2963263 .087286091
+C -1.3836124 0.0 -177.30291 123687.716 35.579885 6713.18584 104.709283 .586424345 939.747207 -400.25471
+C -539.4925 2366.44424 3211.95737 -5578.4016
+BLANK card ending names of nodes for node voltage
+ PRINTER PLOT
+C 4 .8E-3 -748.99533 -748.99533 749.838688 0.0 13506.5876 -233952.01 14577.5321 277.974209 -14855.506 5550.20833
+C 194.206101 -5744.4144 -2556.0075 -910.96566 3466.97318 1441.53156 0.0 0.0 -27.703214 -260.88663
+C -260.88663 0.0 152316.004 5578.67804 -2366.5347 -3212.1433 3263.9781 -252.44548 -3011.5318 -249.77866
+C -249.77866 50.0436418 44314.9041 -22892.215 -21422.689 1001.6319 -1.0119264 0.0 -8.8523256 -37619.202
+C 39135.5529 -.705E-11 -3332.2787 702.815796 .238926785 11.9567249 39.4571338 -.23891E-4 -.8024862 .091369899
+C -.8938561 0.0 -215.55492 133220.775 35.2574518 6652.3494 104.709283 .607366202 1023.64204 -438.56934
+C -585.0727 2357.42505 3246.81306 -5604.2381
+C 5 .1E-2 -748.60353 -748.60353 749.387134 0.0 81277.3789 -183207.78 12900.5692 2610.61804 -15511.187 4283.41475
+C 1858.75941 -6142.1742 -4023.6743 -783.70104 4807.37529 2017.68499 0.0 0.0 175.891852 -345.88141
+C -345.88141 0.0 152316.004 5578.67497 -2366.5028 -3212.1722 3157.97507 -25.604427 -3132.3703 -349.57863
+C -349.57863 149.978695 47142.2759 -23517.378 -23624.897 1004.52269 25.8533897 0.0 -15.562683 -41739.361
+C 39892.6407 .51464E-11 -3332.2787 697.874488 .240411365 12.3998762 39.457133 -.1102E-3 -.56146341 .092374845
+C -.65383825 0.0 -274.01893 147358.665 34.4425429 6498.593 104.709283 .628308059 1170.0168 -540.67448
+C -629.34232 2358.66581 3260.24591 -5618.9117
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn21.dat b/benchmarks/dcn21.dat
new file mode 100644
index 0000000..9882609
--- /dev/null
+++ b/benchmarks/dcn21.dat
@@ -0,0 +1,1300 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-21
+C James Randall of BPA suggested the linear scaling of angles during a
+C FREQUENCY SCAN as explained in the July, 1997, newsletter. First (this
+C subcase), we show his old solution (note blank columns 57-64 of the
+C FREQUENCY SCAN card). This, he says, is wrong for engineering. The
+C angles of the sources remain fixed at the values specified on the Type-
+C 14 source cards. At each frequency, the source is balanced, 3-phase:
+C 1st of 21 subcases (only 2nd is related to this first one).
+C 21 March 2001, expand to illustrate Pisa-format .PL4 file for normal,
+C old FREQUENCY SCAN. This is the 3rd of 3 Pisa-format illustrations.
+C The 4th subcase of DCNEW-22 is for time simulation, and the 15th
+C subcase of this same disk file is for verification of HFS. While HFS
+C and FS should be structurally comparable, in fact the illustrations
+C are quite different because this present example involves 2 output
+C parts (magnitude and angle) for each variable. The 15th subcase only
+C involved a single output part. This was the default, and the most
+C common choice. But polar output is not rare, so had better be shown
+C to work for Pisa-format files. To confirm that Pisa-format .PL4 file
+C really is being used, turn on diagnostic printout for overlay 28 and
+C search the .DBG file for LU4BEG. Pisa will be mentioned.
+$DEPOSIT, NEWPL4=2 { Use SPY DEPOSIT to change .PL4 file type from STARTUP value
+C To prove that Pisa-format code is being used, it is easy to turn on debug
+C printout. Use here is like that pioneered in subcase 15, which did HFS.
+C But diagnostic here requires more care because the network is bigger and
+C there are more harmonics (overlay 11 would produce a lot). It is easiest
+C just to turn on diagnostic for plotting (see following card). In the
+C .DBG file, look for the name LU4BEG to see Pisa-related data values.
+C DIAGNOSTIC 9
+PRINTED NUMBER WIDTH, 11, 2, { Each column of width 11 includes 2 blank bytes
+FREQUENCY SCAN 30.0 30.0 500.0
+ 10.0E-6 -.1000 60.0 0.0
+ 1 1
+ TRANSFORMER 0.001 100.0 TX01A
+ 9999
+ 1WYEA 0.500 5.000 139.43
+ 2DELTA DELTB 0.050 0.500 13.800
+ TRANSFORMER TX01A TX01B
+ 1WYEB
+ 2DELTB DELTC
+ TRANSFORMER TX01A TX01C
+ 1WYEC
+ 2DELTC DELTA
+ DELTA 0.10
+ DELTB 0.10
+ DELTC 0.10
+ WYEA 0.001
+ WYEB 0.001
+ WYEC 0.001
+ SRC1A DELTA 0.001
+ SRC1B DELTB 0.001
+ SRC1C DELTC 0.001
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+ POLAR OUTPUT VARIABLES { 2nd of 3 alternatives gives mag, angle (not mag only)
+C The preceding is 2nd of 3 alternatives. The other 2 are, after commenting:
+C BOTH POLAR AND RECTANGULAR { Request for (in order): mag, angle, real, imag
+C RECTANGULAR OUTPUT VARIABLES { 3rd of 3 alternative outputs gives real, imag
+14SRC1A -1 1.00 60.0 0.0 -1.0
+14SRC1B -1 1.00 60.0 -120.0 -1.0
+14SRC1C -1 1.00 60.0 120.0 -1.0
+BLANK card ending all electric source cards
+C Note: following branch output replaces node voltage for SRC1A. Because
+C no polarity reversal here, this is, in fact, the node voltage.
+C But original plot was the negative of the node voltage because it
+C was requested as (MAG, SRC1A). We do likewise here (below).
+-5SRC1A { -5 ==> 2A6 name pairs for voltage differences (branch V)
+ SRC1B SRC1C
+C Column headings for the 3 output variables follow. These are divided among the 3 possible FS variable classes as follows ....
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C For each variable, magnitude is followed immediately by angle. Both halves of the pair are labeled identically, note.
+C Step F [Hz] SRC1A SRC1A SRC1B SRC1B SRC1C SRC1C
+C TERRA TERRA
+C 1 30. .09351069 78.087254 .09351069 -41.91275 .09351069 -161.9127
+C 2 60. .18400971 83.978526 .18400971 -36.02147 .18400971 -156.0215
+C 3 90. .27517196 85.97743 .27517196 -34.02257 .27517196 -154.0226
+BLANK card ending node voltage outputs
+C 15 450. 1.3731177 89.193946 1.3731177 -30.80605 1.3731177 -150.8061
+C 16 480. 1.4647197 89.244282 1.4647197 -30.75572 1.4647197 -150.7557
+C 17 510. 1.5563378 89.288695 1.5563378 -30.71131 1.5563378 -150.7113
+ PRINTER PLOT
+C 183 5. -1. SRC1A
+C The preceding plot card was used until 21 March 2001 when this test case
+C was switched from normal C-like .PL4 file to Pisa-format C-like .PL4 file
+C by means of the assignment NEWPL4 = 2 near the start. It turns out this
+C changed the plot a little because the preceding plot request is to plot
+C all available points. Whereas the nominal ending frequency F-max is 500,
+C ATP did produce a solution for 510 after completing 480. This happens for
+C either type of .PL4 file. But plotting is different. The Pisa-format
+C file knows that the user-declared F-max = 500, and this will be read
+C from the disk file at the start of plotting, thereby erasing the 510 that
+C was stored in memory. The preceding plot card then would plot to 500, not
+C to 510. To produce an identical plot, we must specify 102 seconds (Hz)
+C per inch, F-min = 0.0 and F-max = 510 as follows:
+ 183102 0.0510. SRC1A
+C Of course, since these are nice round numbers, the plot is so labeled.
+C Not so for the original, which involved roundoff. Remember, the plot
+C file is only single precision, so 7 or 8 digits is the limit of math.
+C Look at the labeling after 1 inch: 102.000001 By switching to a Pisa-
+C format file, such roundoff disappears. The value is just 102. |
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-21
+C 2nd of 21 subcases shows the "corrected" solution that James Randall
+C says makes engineering sense: the linear scaling of angles during
+C the FREQUENCY SCAN. Here the source is balanced 3-phase at the given
+C frequency (60 Hz), but will be zero-sequence at the 3rd harmonic
+C (3 * 120 degrees = 360 degrees). Since current is being injected,
+C the resulting voltage is a measure of the zero-sequence impedance.
+C A delta-connected transformer winding represents a high impedance
+C to such currents, and this will produce high voltage at 180 Hz.
+C Columns 57-64 of following card define the James Randall Memorial Frequency:
+$DEPOSIT, NEWPL4=0 { Use SPY DEPOSIT to cancel the value set in preceding subcas
+FREQUENCY SCAN 30.0 30.0 500.0 60.0
+ 10.0E-6 -.1000 60.0 0.0
+ 1 1 0 0 1
+ TRANSFORMER 0.001 100.0 TX01A
+ 9999
+ 1WYEA 0.500 5.000 139.43
+ 2DELTA DELTB 0.050 0.500 13.800
+ TRANSFORMER TX01A TX01B
+ 1WYEB
+ 2DELTB DELTC
+ TRANSFORMER TX01A TX01C
+ 1WYEC
+ 2DELTC DELTA
+ DELTA 0.10
+ DELTB 0.10
+ DELTC 0.10
+ WYEA 0.001 3
+ WYEB 0.001
+ WYEC 0.001
+ SRC1A DELTA 0.001
+ SRC1B DELTB 0.001
+ SRC1C DELTC 0.001
+C Preceding data subcase used no column-80 punches. We had one branch
+C voltage, but it was requested by "-5" along with node voltages. Here,
+C we illustrate the equivalent output, only using column 80:
+ SRC1A 1.E18 2
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+14SRC1A -1 1.00 60.0 0.0 -1.0
+14SRC1B -1 1.00 60.0 -120.0 -1.0
+14SRC1C -1 1.00 60.0 120.0 -1.0
+BLANK card ending all electric source cards
+ SRC1B SRC1C
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Only the magnitude of each variable is outputted. This is the default choice, which was not superseded by any request.
+C Step F [Hz] WYEA SRC1A SRC1B SRC1C WYEA
+C TERRA TERRA TERRA
+C 1 30. .32992E-4 35367.735 35367.797 35367.764 .03299152
+C 2 60. .57143E-4 .18400971 .18400971 .18400971 .05714329
+C 3 90. .65984E-4 5894.9935 5894.4445 5894.4445 .06598395
+BLANK card ending node voltage outputs
+C 15 450. .66009E-4 1180.7561 1178.0102 1178.0102 .06600855
+C 16 480. .57168E-4 1.4647197 1.4647197 1.4647197 .05716813
+C 17 510. .33008E-4 2079.938 2080.6998 2080.7333 .03300792
+C Variable maxima : .66009E-4 35367.735 35367.797 35367.764 .06600855
+C F [Hz] of maxima: 450. 30. 30. 30. 450.
+C Variable minima : .3118E-17 .18400971 .18400971 .18400971 .3118E-14
+C F [Hz] of minima: 360. 60. 60. 60. 360.
+ PRINTER PLOT
+ 183 5. -1. SRC1A
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 3rd of 21 subcases is unrelated to the preceding two. Instead, it
+C introduces HARMONIC FREQUENCY SCAN by Gabor Furst. Added around the
+C end of 1997, it will not be described before the April, 1998, issue
+C of the newsletter. This example involves 1 source and 6 harmonics.
+C Cols. 21-30 of the source cards carry frequency in Hz because minimum
+C is equal to the power frequency (50). For more sources, harmonics,
+C and the use of harmonic numbers rather than frequency, see 4th subcase
+C 3 November 1998, add branch from NONE to earth to illustrate the
+C correct handling of unexcited branches. See Jan, 1999, newsletter.
+PRINTED NUMBER WIDTH, 11, 2, { Each column of width 11 includes 2 blank bytes
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+C HARMONIC FREQUENCY SCAN -1.0 DELFFS < 0 ==> log F (not F) in .PL4 file
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 0 1 { Note request for phasor branch flows
+ SWIT LOAD 10. 3
+ NONE 2.0 1
+ LOAD 1000.
+-1SWIT OPEN .3055 5.82 .012 1.0 { One mile of DC-37 line
+BLANK card ending all branches
+ GEN SWIT -1. 1
+BLANK card ending all switch cards
+14GEN 1.0 50. 0.0 { Note comment and no negative T-start
+14GEN 1.3 100. 0.0 { Note comment and no negative T-start
+14GEN 1.5 200. 0.0 { Note cols. 21-30 is frequency in Hz
+14GEN 1.4 300. 0.0
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+ GEN LOAD { Names of nodes for voltage output
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step F [Hz] SWIT GEN LOAD GEN SWIT SWIT
+C LOAD SWIT LOAD NONE
+C 1 50. .03181488 1.0 .99949378 .00317772 .00318149 0.0
+C 2 100. .02068752 1.3 1.2998354 .00205895 .00206875 0.0
+C 3 200. .01193624 1.5 1.4999525 .001171 .00119362 0.0
+C 4 300. .00742713 1.4 1.3999803 .71104E-3 .74271E-3 0.0
+C Variable max: .03181488 1.5 1.4999525 .00317772 .00318149 0.0
+C F [Hz] of maxima: 50. 200. 200. 50. 50. 50.
+C Variable min: .00742713 1.0 .99949378 .71104E-3 .74271E-3 0.0
+C F [Hz] of minima: 300. 50. 50. 300. 300. 50.
+C Note currents of the final 2 columns agree less as frequency rises. The
+C difference is charging current of that 1-mile distributed line section. As
+C frequency goes to zero, agreement is perfect due to no capacitive current.
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+ CALCOMP PLOT { Needed to cancel preceding PRINTER PLOT of 2nd subcase
+C 19690. 0. 300. 0. 2. LOAD mag
+ 14690. 0. 300. 0. 2. LOAD
+C Derived from F-scan: 1) RMS value = 1.85719715E+00 2) THD = 2.43009301E+02%
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 21 subcases is related to the preceding one. It illustrates
+C HARMONIC FREQUENCY SCAN (HFS) by Gabor Furst. This example involves
+C more sources (2) and harmonics (14). Cols. 21-30 of the source cards
+C carries harmonic numbers rather than frequencies in Hz because minimum
+C is unity rather than equal to the power frequency 50.
+PRINTED NUMBER WIDTH, 11, 2, { Each column of width 11 includes 2 blank bytes
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+C HARMONIC FREQUENCY SCAN -1.0 DELFFS < 0 ==> log F (not F) in .PL4 file
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 0 { Note request for phasor branch flows
+ SWIT LOAD 10. 1
+ LOAD EARTH 1000.
+-1SWIT OPEN .3055 5.82 .012 138.
+BLANK card ending all branches
+ GEN SWIT -1. 2
+BLANK card ending all switch cards
+14GEN 1.0 1. 0.0 { Note comment and no negative T-start
+14GEN 1.3 2. 0.0 { Note comment and no negative T-start
+14GEN 1.5 4. 0.0 { Note cols. 21-30 is harmonic number
+14GEN 1.4 6. 0.0
+14GEN 1.1 8. 0.0
+14GEN 0.7 10. 0.0
+14GEN 0.5 12. 0.0
+14GEN 0.3 14. 0.0
+14EARTH 1.E-19 1. 0.0 { 2nd source has amplitude almost zero
+14EARTH 1.E-19 4. 0.0 { 2nd source involves fewer harmonics
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+C Following is added after col.-80 punch on switch was changed to 2 from 3.
+C Here the default name SWT001 is used to access the first switch.
+-1SWT001 { -1 ==> Branch/switch current out; use A6 component names
+ GEN LOAD { Names of nodes for voltage output
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step F [Hz] GEN GEN LOAD GEN SWIT
+C SWIT SWIT LOAD
+C 1 50. 0.0 1.0 .99949378 .00263778 .00318149
+C 2 100. 0.0 1.3 1.2998354 .42222E-3 .00206875
+C 3 200. 0.0 1.5 1.4999525 .01598538 .00119362
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+C 4 300. 0.0 1.4 1.3999803 .00365709 .74271E-3
+C 5 400. 0.0 1.1 1.0999913 .83054E-3 .43767E-3
+C 6 500. 0.0 0.7 .69999645 .30433E-3 .22282E-3
+C 7 600. 0.0 0.5 .49999824 .00174186 .13263E-3
+C 8 700. 0.0 0.3 .29999922 .00120951 .68209E-4
+ CALCOMP PLOT { Needed to cancel preceding PRINTER PLOT of 2nd subcase
+C 19690. 0. 900. 0. 2. LOAD mag
+ 14690. 0. 900. 0. 2. LOAD
+C Derived from F-scan: 1) RMS value = 2.11404071E+00 2) THD = 2.81911204E+02%
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 21 subcases illustrate HARMONIC FREQUENCY SCAN by Gabor Furst
+C using one of the new frequency-depend resistors. The concept is more
+C general than just R in that it applies to R, L, and C of series R-L-C
+C branch. There are two points for each parameter, allowing a straight
+C line to be drawn thru them for linear interpolation at each frequency.
+C Note values (R, F) = (5, 50) and (50, 500) ===> R(F) = F / 10. The
+C inductance gives X = wL = 6.28 * .01 * F = .0628 * F. So, looding at
+C V-node of LOAD, impedance division ==> V = jX / ( R + jX ). Dividing
+C out the jX, 1/V = 1 + 0.1 / j.0628 ) = 1 - j /.0628 ==> V = .28 +j.45
+C = .53 /__ 57.9 degrees. So, V is a constant, independent of frequency
+C because R is proportional to frequency. This makes verification easy.
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 1 1 { Note request for phasor branch flows
+ GEN LOAD 5. { F-dependent resistance gives R at power freq
+ LOAD 10. { Constant inductance (nothing new here)
+BLANK card ending all branches
+BLANK card ending all switch cards
+ POLAR OUTPUT VARIABLES { 2nd of 3 alternatives gives mag, angle (not mag only)
+14GEN 1.0 50. 0.0 { Note comment and no negative T-start
+14GEN 1.0 100. 0.0 { Note comment and no negative T-start
+14GEN 1.0 200. 0.0 { Note cols. 21-30 is frequency in Hz
+14GEN 1.0 300. 0.0
+BLANK card ending source cards
+NEXT FREQUENCY FOR SERIES RLC 500. { Elevated frequency for interpolation
+ GEN LOAD 50. { R of F-dependent resistance at higher freq.
+BLANK card ending F-dependent series R-L-C branches
+-1LIN001 { -1 ==> Branch/switch current out; use A6 component names
+-4LIN002 { -4 ==> Branch/switch power & energy; use A6 component names
+ GEN LOAD { Names of nodes for voltage output
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C For each variable, magnitude is followed immediately by angle. Both halves of the pair are labeled identically, note.
+C Step F [Hz] LOAD LOAD GEN GEN LOAD LOAD GEN GEN LOAD LOAD
+C TERRA TERRA LOAD LOAD TERRA TERRA
+C 1 50. .53201804 57.858092 1.0 0.0 .53201804 57.858092 .1693466 -32.14191 .1693466 -32.14191
+C 2 100. .53201804 57.858092 1.0 0.0 .53201804 57.858092 .0846733 -32.14191 .0846733 -32.14191
+C 3 200. .53201804 57.858092 1.0 0.0 .53201804 57.858092 .04233665 -32.14191 .04233665 -32.14191
+C 4 300. .53201804 57.858092 1.0 0.0 .53201804 57.858092 .02822443 -32.14191 .02822443 -32.14191
+BLANK card ends output requests
+C Variable max : .53201804 57.858092 1.0 0.0 .53201804 57.858092 .1693466 -32.14191 .1693466 -32.14191
+C F [Hz] of max: 50. 50. 50. 50. 50. 50. 50. 50. 50. 300.
+C Variable min : .53201804 57.858092 1.0 0.0 .53201804 57.858092 .02822443 -32.14191 .02822443 -32.14191
+C F [Hz] of min: 50. 300. 50. 50. 50. 300. 300. 50. 300. 50.
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 21 subcases illustrate HARMONIC FREQUENCY SCAN by Gabor Furst
+C is related to preceding. R(F) ---> L(F). Basic network is the same
+C as preceding subcase. But here, R = 5 ohms is constant. There is an
+C effort to keep X constant by having L vary inversely with frequency.
+C There are 3 points, and wL of 1st is the same as the last. In the
+C middle, there is discrepancy, of course, because 1/w is not linear.
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 0
+ GEN LOAD 5.
+ LOAD 10. { L at lower of two frequencies (power F)
+BLANK card ending all branches
+BLANK card ending all switch cards
+14GEN 1.0 50. 0.0 { Note comment and no negative T-start
+14GEN 1.0 100. 0.0 { Note comment and no negative T-start
+14GEN 1.0 200. 0.0 { Note cols. 21-30 is frequency in Hz
+BLANK card ending source cards
+NEXT FREQUENCY FOR SERIES RLC 200. { Elevated frequency for interpolation
+ LOAD 2.5 { L of F-dependent resistance at higher F
+BLANK card ending F-dependent series R-L-C branches
+-5LOAD GEN { -5 ==> 2A6 name pairs for voltage differences (branch V)
+ GEN LOAD { Names of nodes for voltage output
+-1LIN002 { -1 ==> Branch/switch current out; use A6 component names
+C First 3 output variables are electric-network voltage differences ...
+C Next 1 output variables are branch currents (flowing from the upper ..
+C Step F [Hz] LOAD GEN LOAD LOAD
+C GEN TERRA
+C 1 50. .84673302 1.0 .53201804 .1693466
+C 2 100. .72772718 1.0 .68586671 .14554544
+C 3 200. .84673302 1.0 .53201804 .1693466
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 21 subcases illustrate HARMONIC FREQUENCY SCAN by Gabor Furst
+C is related to preceding. L(F) ---> C(F). Basic network is the same
+C as preceding subcase but with inductance L replaced by capacitance C.
+C Try to keep Xc constant by having C vary inversely with frequency F.
+C There are 3 points, and wC of 1st is the same as the last. In the
+C middle, there is discrepancy, of course, because 1/w is not linear.
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 0
+ GEN LOAD 5.
+ LOAD 400. { C at lower of two freq (power F)
+BLANK card ending all branches
+BLANK card ending all switch cards
+14GEN 1.0 50. 0.0 { Note comment and no negative T-start
+14GEN 1.0 100. 0.0 { Note comment and no negative T-start
+14GEN 1.0 200. 0.0 { Note cols. 21-30 is frequency in Hz
+BLANK card ending source cards
+NEXT FREQUENCY FOR SERIES RLC 200. { Elevated frequency for interpolation
+ LOAD 100. { C of F-dep capacitanc at higher F
+BLANK card ending F-dependent series R-L-C branches
+-5GEN LOAD { -5 ==> 2A6 name pairs for voltage differences (branch V)
+ GEN LOAD { Names of nodes for voltage output
+-1LIN001LIN002 { -1 ==> Branch/switch current out; use A6 component names
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step F [Hz] GEN GEN LOAD GEN LOAD
+C LOAD LOAD TERRA
+C 1 50. .53201804 1.0 .84673302 .10640361 .10640361
+C 2 100. .68586671 1.0 .72772718 .13717334 .13717334
+C 3 200. .53201804 1.0 .84673302 .10640361 .10640361
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 21 subcases illustrate HARMONIC FREQUENCY SCAN by Gabor Furst
+C illustrates new F-dependent R, L, and C. Basic network is the same
+C as preceding subcase but here all 3 parameters R, L, and C are varied.
+C Solutions at lowest and highest frequencies are verified by the two
+C following subcases, which do not involve HFS at all.
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 0
+ GEN LOAD 5.0 { Constant half of series circuit
+ LOAD 0.0 10. 400. { F-dependent (all 3 R, L, and C)
+BLANK card ending all branches
+BLANK card ending all switch cards
+14GEN 1.0 50. 0.0 { Note comment and no negative T-start
+14GEN 1.0 100. 0.0 { Note comment and no negative T-start
+14GEN 1.0 500. 0.0 { Note cols. 21-30 is frequency in Hz
+BLANK card ending source cards
+NEXT FREQUENCY FOR SERIES RLC 500. { Elevated frequency for interpolation
+ LOAD 45. 2.5 100. { R, L, C at higher freq (500 Hz)
+BLANK card ending F-dependent series R-L-C branches
+-5 LOAD { -5 ==> 2A6 name pairs for voltage differences (branch V)
+ LOAD GEN { Names of nodes for voltage output
+-1 LIN002 { -1 ==> Branch/switch current out; use A6 component names
+C First 3 output variables are electric-network voltage differences ...
+C Next 1 output variables are branch currents (flowing from the upper ...
+C Step F [Hz] TERRA LOAD GEN LOAD
+C LOAD TERRA
+C 1 50. .69374181 .69374181 1.0 .14404476
+C 2 100. .51459068 .51459068 1.0 .09900818
+C 3 500. .90091274 .90091274 1.0 .0199133
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 9th of 21 subcases demonstrates correctness of the lowest of all (the
+C power-frequency) solutions of the preceding subcase. Note HARMONIC
+C FREQUENCY SCAN is not used at all. We just have a phasor solution.
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+ 1.0 0.0
+ 1 1 1 0
+ GEN LOAD 5.0 { Constant half of series circuit
+ LOAD 0.0 10. 400. { F-dependent (all 3 R, L, and C)
+BLANK card ending all branches
+BLANK card ending all switch cards
+14GEN 1.0 50. 0.0 -1.
+BLANK card ending source cards
+ GEN LOAD { Names of nodes for voltage output
+C Total network loss P-loss by summing injections = 5.187223045425E-02
+C Begin steady-state printout of EMTP output variables. Node voltage outputs ..
+C Bus Phasor Angle in Real Imaginary
+C name magnitude degrees part part
+C GEN 0.10000000E+01 0.000000 0.10000000E+01 0.00000000E+00
+C LOAD 0.69374181E+00 -46.072960 0.48127770E+00 -0.49964935E+00
+BLANK card ends output requests (just node voltages for this data)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 10th of 21 subcases is related to the preceding. But rather than the
+C lowest-frequency, here we verify the highest-frequency solution of
+C the HFS use of subcase number 8.
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+ 1.0 0.0
+ 1 1 1 0
+ GEN LOAD 5.0 { Constant half of series circuit
+ LOAD 45. 2.5 100. { R, L, C at higher freq (500 Hz)
+BLANK card ending all branches
+BLANK card ending all switch cards
+14GEN 1.0 500. 0.0 -1.
+BLANK card ending source cards
+-5 LOAD { -5 ==> 2A6 name pairs for voltage differences (branch V)
+ GEN LOAD { Names of nodes for voltage output
+-1LIN001LIN002 { -1 ==> Branch/switch current out; use A6 component names
+C Total network loss P-loss by summing injections = 9.913486408375E-03
+C Begin steady-state printout of EMTP output variables. Node voltage outputs follow.
+C Bus Phasor Angle in Real Imaginary
+C name magnitude degrees part part
+C GEN 0.10000000E+01 0.000000 0.10000000E+01 0.00000000E+00
+C LOAD 0.90091274E+00 0.588983 0.90086514E+00 0.92609466E-02
+C Selective branch outputs follow (for column-80 keyed branches only). Any ...
+C From To (======== Branch voltage Vkm = Vk - Vm =========) (====== Branch current Ikm from K to M ======)
+C bus K bus M Magnitude Degrees Real part Imag part Magnitude Degrees Real part Imag part
+C GEN LOAD 9.9566492E-02 -5.336948 9.9134864E-02 -9.2609466E-03 1.9913298E-02 -5.336948 1.9826973E-02 -1.8521893E-03
+C LOAD 9.0091274E-01 0.588983 9.0086514E-01 9.2609466E-03 1.9913298E-02 -5.336948 1.9826973E-02 -1.8521893E-03
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 11th of 21 subcases illustrates load modeling requested by Gabor Furst
+C This data illustrates the use of CIGRE-recommended harmonic loads.
+C Although usually used with HARMONIC FREQUENCY SCAN, there is no such need
+C as this data case illustrates. See April, 1998, newsletter for background
+PRINTED NUMBER WIDTH, 9, 1,
+POWER FREQUENCY, 50.,
+ .0001 .020 50.
+ 1 1 1 1 1 -1
+ 5 5 20 20
+C 1st of 2 identical, disconnected networks uses manually-defined branches:
+ GEN TRAN 0.5
+ TRAN 0.5 2.0 1
+ TRAN 2.0 1
+C 2nd of 2 identical, disconnected networks uses internally-defined branches:
+C E-mail from Gabor Furst having date: Wed, 17 Dec 1997 09:12:00 -0800
+C The CIGRE recommendation for frequency dependent load representation
+C is reactance Xp in parallel with an impedance Rs +jXs. With P active
+C and Q reactive, and h the harmonic order (where . ==> *, V2 = V**2)
+C Rs = V2/P Xs = A.h.Rs Xp = h.Rs / [(B.Q/P)-C]
+C To match preceding 2 branches, Rs = 0.5 = 1**2 / P ==> P = 2.0
+C because source voltage is 1 volt rms. Then Xs = 2 = A * 1 * Rs
+C ===> A = 4. Finally, Xp = 2 = 1 * 0.5 / [ B * Q / 2 - C ] so to
+C keep this simple, choose Q = P = 2. Then B - C = 1/4 so choose
+C B = 0.5 and C = .25
+ GEN TEST 0.5
+ <LOAD> CIGRE A,B,C 4.0 0.5 .25
+ TEST <LOAD> 1.0 2.0 2.0 1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.414 50. 0.0 -1.
+BLANK card terminating program source cards.
+ GEN TRAN TEST
+C Total network loss P-loss by summing injections = 8.777836097561E-01
+C GEN 1.414 1.414 1.2415609756098 2.3738479390939 .8777836097561 1.6783104929394
+C 0.0 0.0 -2.023284552846 -58.4652081 1.4304621788618 0.5230162
+C Step Time GEN TRAN TEST TRAN TRAN TEST TEST
+C TERRA TERRA TERRA TERRA
+C 0 0.0 1.414 1.10361 1.10361 .3678699 .2529106 .3678699 .2529106
+C 1 .1E-3 1.413302 1.087178 1.087178 .3821311 .270117 .3821311 .270117
+C 2 .2E-3 1.41121 1.069674 1.069674 .3960152 .2870569 .3960152 .2870569
+BLANK card ending program output-variable requests.
+C 200 .02 1.414 1.103645 1.103645 .3678278 .2528827 .3678278 .2528827
+C Variable max : 1.414 1.213968 1.213968 .5888022 .6069501 .5888022 .6069501
+C Times of max : 0.0 .0186 .0186 .0029 .0036 .0029 .0036
+C Variable min : -1.414 -1.21398 -1.21398 -.588778 -.606931 -.588778 -.606931
+C Times of min : .01 .0086 .0086 .0129 .0136 .0129 .0136
+ PRINTER PLOT
+ 144 5. 0.0 20. TRAN TEST { Axis limits: (-1.214, 1.214)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 12th of 21 subcases illustrates load modeling requested by Gabor Furst
+C This data illustrates the use of CIGRE-recommended harmonic loads in a
+C 3-phase usage environment. The answer here is the same as that of the
+C preceding single-phase case because each phase here is excited by the
+C same single-phase excitation (all 3 load phases actualy are parallel).
+C Rather than BUS2 = <LOAD> for a single phase, note <LOAD3 is used:
+PRINTED NUMBER WIDTH, 9, 1,
+POWER FREQUENCY, 50.,
+ .0001 .020 50.
+ 1 1 1 1 1 -1
+ 5 5 20 20
+C 1st of 2 identical, disconnected networks uses manually-defined branches:
+ GEN TESTA 0.5
+ GEN TESTB 0.5
+ GEN TESTC 0.5
+ <LOAD> CIGRE A,B,C 4.0 0.5 .25
+ TESTA <LOAD3TESTB TESTC 1.0 2.0 2.0 1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.414 50. 0.0 -1.
+BLANK card terminating program source cards.
+ GEN TESTA TESTB TESTC
+BLANK card ending program output-variable requests.
+ PRINTER PLOT
+ 144 5. 0.0 20. TESTA TESTB TESTC { Axis limits: (-1.214, 1.214)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 13th of 21 subcases illustrates load modeling requested by Stu Cook of
+C JUST Services in suburban Montreal, Quebec, Canada. Note the request
+C <JUST> in BUS2 field replaces <LOAD> of Gabor Furst's CIGRE load.
+PRINTED NUMBER WIDTH, 9, 1,
+POWER FREQUENCY, 50.,
+ .0001 .020 50.
+ 1 1 1 1 1 -1
+ 5 5 20 20
+C 1st of 2 identical, disconnected networks uses manually-defined branches:
+ GEN TRAN 0.5 1
+ INTER 0.5 { Rp ---- parallel resistance
+ INTER 1.0 { Lp ---- parallel inductance
+ TRAN INTER 1.0 { Ls ---- series inductance
+C 2nd of 2 identical, disconnected networks uses Stu Cook's load:
+ GEN TEST 0.5 1
+ TEST <JUST> 0.5 1.0 1.0
+C For Stu Cook of Just Services: Rp Lp Ls
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.414 50. 0.0 -1.
+BLANK card terminating program source cards.
+ GEN TRAN TEST INTER TEST_
+C Step Time GEN TRAN TEST INTER TEST_ GEN GEN
+C TRAN TEST
+C 0 0.0 1.414 1.1312 1.1312 .3770667 .3770667 .5656 .5656
+C 1 .1E-3 1.413302 1.118799 1.118799 .3828021 .3828021 .5890069 .5890069
+C 2 .2E-3 1.41121 1.105293 1.105293 .3881599 .3881599 .6118326 .6118326
+BLANK card ending program output-variable requests.
+C 200 .02 1.414 1.131219 1.131219 .3770449 .3770449 .5655621 .5655621
+C Variable max : 1.414 1.19237 1.19237 .4215597 .4215597 .9425352 .9425352
+C Times of max : 0.0 .019 .019 .0015 .0015 .003 .003
+C Variable min : -1.414 -1.19238 -1.19238 -.421551 -.421551 -.942512 -.942512
+C Times of min : .01 .009 .009 .0115 .0115 .013 .013
+ PRINTER PLOT
+ 144 5. 0.0 20. TRAN TEST { Axis limits: ( -1.192, 1.192 )
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 14th of 21 subcases illustrates load modeling requested by Stu Cook for
+C a 3-phase usage environment. The answer here is the same as that of the
+C preceding single-phase case because each phase here is excited by the
+C same single-phase excitation (all 3 load phases actualy are parallel).
+C Rather than BUS2 = <JUST> for a single phase, note <JUST3 is used:
+PRINTED NUMBER WIDTH, 9, 1,
+POWER FREQUENCY, 50.,
+ .0001 .020 50.
+ 1 1 1 1 1 -1
+ 5 5 20 20
+C 1st, define a 3-phase bus TEST by connecting to a single-phase source:
+ GEN TESTA 0.5
+ GEN TESTB 0.5
+ GEN TESTC 0.5
+ TESTA <JUST3TESTB TESTC 0.5 1.0 1.0
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.414 50. 0.0 -1.
+BLANK card terminating program source cards.
+ GEN TESTA TESTB TESTC TESTA_TESTB_TESTC_
+C Step Time GEN TESTA TESTB TESTC TESTA_ TESTB_ TESTC_
+C 0 0.0 1.414 1.1312 1.1312 1.1312 .3770667 .3770667 .3770667
+C 1 .1E-3 1.413302 1.118799 1.118799 1.118799 .3828021 .3828021 .3828021
+C 2 .2E-3 1.41121 1.105293 1.105293 1.105293 .3881599 .3881599 .3881599
+BLANK card ending program output-variable requests.
+ PRINTER PLOT
+ 144 5. 0.0 20. TESTA TESTB TESTC { Axis limits: ( -1.192, 1.192 )
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 15th of 21 subcases is the same as the third, and should produce the
+C same nice 5-harmonic bar chart on the screen. But internally it is
+C different in that the newer Pisa-format .PL4 file of NEWPL4 = 2 will
+C be demonstrated for the first time on 18 March 2001. On this date,
+C what formerly was the 15th and last subcase has been moved downward to
+C become the 16th and last. Use of $STOP requires that it be last.
+$DEPOSIT, NEWPL4=2 { Use SPY DEPOSIT to change .PL4 file type from STARTUP value
+C To prove that Pisa-format code is being used, it is easy to turn on debug
+C printout for HEADPI (called by overlay 11) and LU4BEG (part of overlay 28).
+C Look for these names in the .DBG file to see associated pointers during
+C creation (overlay 11) and use (batch-mode plotting) of Pisa-format .PL4
+C As expected, phasor printout of branch flows will result, so the .LIS
+C file will be substantially larger as long as overlay-11 diagnostic is on.
+C Turn off diagnostic 22 April 2007 as it disfigures .LIS of Mingw32 ATP:
+C DIAGNOSTIC 9 9
+PRINTED NUMBER WIDTH, 11, 2, { Each column of width 11 includes 2 blank bytes
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 1 1 { Note request for phasor branch flows
+ SWIT LOAD 10. 3
+ LOAD 1000.
+-1SWIT OPEN .3055 5.82 .012 1.0 { One mile of DC-37 line
+BLANK card ending all branches
+ GEN SWIT -1. 1
+BLANK card ending all switch cards
+14GEN 1.0 50. 0.0 { Note comment and no negative T-start
+14GEN 1.3 100. 0.0 { Note comment and no negative T-start
+14GEN 1.5 200. 0.0 { Note cols. 21-30 is frequency in Hz
+14GEN 1.4 300. 0.0
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+ GEN LOAD { Names of nodes for voltage output
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+ CALCOMP PLOT { Needed to cancel preceding PRINTER PLOT of 2nd subcase
+C 19690. 0. 300. 0. 2. LOAD mag
+ 14690. 0. 300. 0. 2. LOAD
+C Derived from F-scan: 1) RMS value = 1.85719715E+00 2) THD = 2.43009301E+02%
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 16th of 21 subcases is related to the 3rd. Added 19 November 2001,
+C this illustrates HARMONIC FREQUENCY SCAN with a subharmonic. The
+C power frequency is 50 Hz, and we have added a 25-Hz source that
+C corresponds to harmonic number h = 0.5 Also illustrated are
+C shuffled source cards. Whereas the 3rd subcase had sources ordered
+C with frequency monotone increasing, this data does not. Yet the
+C source power frequency for the power frequency will be seen in the
+C interpreted data.
+DIAGNOSTIC { Cancel diagnostic printout ordered by the preceding subcase
+PRINTED NUMBER WIDTH, 11, 2, { Each column of width 11 includes 2 blank bytes
+POWER FREQUENCY, 50., { Make sure data behavior is independent of STARTUP value
+C HARMONIC FREQUENCY SCAN -1.0 DELFFS < 0 ==> log F (not F) in .PL4 file
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 0 1
+ SWIT LOAD 10. 3
+ NONE 2.0 1
+ LOAD 1000.
+-1SWIT OPEN .3055 5.82 .012 1.0 { One mile of DC-37 line
+BLANK card ending all branches
+ GEN SWIT -1. 1
+BLANK card ending all switch cards
+C USE HARMONIC NUMBERS
+C FREQUENCY IN HERTZ
+C An explicit declaration such as preceding (one or the other) is optional. If
+C present, it rules. If missing, ATP will check for a source having frequency
+C equal to either 1.0 or the power frequency. Note we do have a 50-Hz entry:
+14GEN 1.3 100. 0.0 { Note comment and no negative T-start
+14GEN 1.5 200. 0.0 { Note cols. 21-30 is frequency in Hz
+14GEN 1.4 300. 0.0
+14GEN 1.0 50. 0.0 { Note comment and no negative T-start
+14GEN 1.0 25. 0.0 { This is subharmonic not present in 3rd subcase
+C Normally, frequencies will be in order. But this is not required, as the
+C preceding shows. Neither the smallest frequency (25 Hz) nor the power
+C frequency (50 Hz) must come first, as this shows.
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+ GEN LOAD { Names of nodes for voltage output
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+ CALCOMP PLOT { Needed to cancel preceding PRINTER PLOT of 2nd subcase
+C 19690. 0. 300. 0. 2. LOAD mag
+ 14690. 0. 300. 0. 2. LOAD
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 17th of 21 subcases is related to the 4th. Added 19 November 2001,
+C this illustrates HARMONIC FREQUENCY SCAN with a subharmonic when
+C there are 2 or more sources, and the lowest frequency (now the
+C subharmonic having frequency 25 Hz) is not supplied by all sources.
+PRINTED NUMBER WIDTH, 11, 2, { Each column of width 11 includes 2 blank bytes
+POWER FREQUENCY, 50., { Make sure data behavior is independent of STARTUP value
+C HARMONIC FREQUENCY SCAN -1.0 DELFFS < 0 ==> log F (not F) in .PL4 file
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 0 1
+ SWIT LOAD 10. 1
+ LOAD EARTH 1000.
+-1SWIT OPEN .3055 5.82 .012 138.
+BLANK card ending all branches
+ GEN SWIT -1. 2
+BLANK card ending all switch cards
+14GEN 1.0 1. 0.0 { Note comment and no negative T-start
+14GEN 1.3 2. 0.0 { Note comment and no negative T-start
+14GEN 1.5 4. 0.0 { Note cols. 21-30 is harmonic number
+14GEN 1.4 6. 0.0
+14GEN 1.1 8. 0.0
+14GEN 0.7 10. 0.0
+14GEN 0.5 12. 0.0
+14GEN 0.3 14. 0.0
+14GEN 0.5 0.5 0.0 { Add 25-Hz subharmonic (1/2 power F)
+14EARTH 1.E-19 1. 0.0 { 2nd source has amplitude almost zero
+14EARTH 2.E-19 4. 0.0 { 2nd source involves fewer harmonics
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+C Following is added after col.-80 punch on switch was changed to 2 from 3.
+C Here the default name SWT001 is used to access the first switch.
+-1SWT001 { -1 ==> Branch/switch current out; use A6 component names
+ GEN LOAD EARTH { Names of nodes for voltage output
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+ CALCOMP PLOT { Needed to cancel preceding PRINTER PLOT of 2nd subcase
+C 19690. 0. 900. 0. 2. LOAD mag
+ 14690. 0. 900. 0. 2. LOAD
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 18th of 21 subcases is added 21 November 2001 following corrections
+C to handle subharmonic data from Gabor Furst (see DC-22). This is more
+C realistic data, which was supplied as disk file hfsnew1.dat There
+C are _several_ sources, and several subharmonics. In E-mail earlier
+C in the day, author Furst explained: "The file I sent to you is an old
+C file, the only modification done to it was the additions of the sub-
+C harmonics. If you delete them the case runs correctly with the current
+C TPBIG. I checked this."
+POWER FREQUENCY, 50.0
+HARMONIC FREQUENCY SCAN
+C POCKET CALCULATOR VARIES PARAMETERS 0 0 { Loop five times
+C deltat tmax xopt copt epsiln tolmat tstart
+ 1 1 50. 1.E-10
+C iout iplot idoubl kssout maxout ipun memsav icat nenerg iprsup
+ 1 1 0 1
+C *************************************
+C Source bus 10.0 kV 95 MVA
+C *************************************
+C ------______------______------____________
+51SRCA BSA .30000 3.1000
+52SRCB BSB .01100 1.0528
+53SRCC BSC
+C *********************************
+C BSA to BSMA is a measuring switch
+C 10.0 kV cable equivalent to plant bus 2.0 km
+C ------______------______------______------______
+-1BSMA B10A 0.38 0.410 0.30 2.0
+-2BSMB B10B 0.38 0.410 0.30 2.0
+-3BSMC B10C
+C
+C ************************************
+C Harmonic filters
+C ************************************
+C 100 m cable to 5th harmonic filter
+c r0/km x0/km c0/km dist
+C ------______------______------______------______
+-1B10A FIMT5A 1.280 0.152 0.408 0.1
+-2B10B FIMT5B 0.164 .0987 0.408 0.1
+-3B10C FIMT5C
+C 5th harmonic filter intentinally detuned
+ FILT5A 0.00 11.47 11.1
+ FILT5B 0.00 11.47 11.1
+ FILT5C 0.00 11.47 11.1
+C cable to 7th filter
+c ------______------______------______------______
+-1B10A FIMT7A 1.280 0.152 0.408 0.1
+-2B10B FIMT7B 0.164 .0987 0.408 0.1
+-3B10C FIMT7C
+C 7th harmonic filter
+ FILT7A 0.00 11.66 5.57 1
+ FILT7B 0.00 11.66 5.57
+ FILT7C 0.00 11.66 5.57
+C
+C 100 m cable to transformers
+C ------______------______------______------______
+-1B10A TR10A 1.280 0.152 0.408 .10
+-2B10B TR10B 0.164.09877 0.408 .10
+-3B10C TR10C
+C
+C ***********************************************
+C frequency dependent R-L load 4.8 MW, 2.4 MVAR
+C using NEXT FREQUENY FOR SERIES RLC
+C ***********************************************
+ TR10A LOD1A .00001
+ TR10B LOD1B .00001
+ TR10C LOD1C .00001
+ LOD1A 16.66 8.33 1
+ LOD1B 16.66 8.33
+ LOD1C 16.66 8.33
+C 3 February 2002, true dynamic dimensions begin for F95 Lahey ATP. Four
+C integers are read from a single, extra, isolated $PARAMETER card if that
+C card carries the request <TABLE LIMITS: to the left of column 33. Then
+C 4 integers are read using FORMAT ( 32X, 4I8 ) and have meaning as follows:
+C LIMBLK --- limit on the number of $PARAMETER blocks;
+C LIMSYM --- limit on the number of $PARAMETER symbols (names);
+C LIMBLK --- Average number of references of each symbol;
+C LIMBLK --- Average length of symbols, in bytes.
+C F77 versions of ATP will process the card as F95 ATP would, but then will
+C ignore the 4 integers since tables are fixed. Data thus remains universal.
+C F95 dimensions on next card LIMBLK LIMSYM MULUSE LENAVG
+C $PARAMETER <TABLE LIMITS: 20 80 2 15
+C Used as above until 24 October 2006. Then add 5th integer MINBYT which
+C is a little different and has meaning whether F95 or F77:
+C MINBYT --- Minimum length of symbols to avoid warning text. Default = 6
+C F95 dimensions on next card LIMBLK LIMSYM MULUSE LENAVG MINBYT
+$PARAMETER <TABLE LIMITS: 20 80 2 15 5
+C
+C *****************************************
+C Converter transformer
+C *****************************************
+C connect a D/Y 3.75 MVA transformer
+C x = 6.5% x = 10**2/3.75 = 26.67 ohm * 0.065 = 1.7336 ohm
+C current 3750/10/sqrt(3) = 216.8 A imag = 5 A
+C !!!! delta has three times the reactancee
+$PARAMETER
+C R50= 0.133 ohm
+RTRNSF = 0.133 * (1.0 + 0.2 * (KNT -1.0 )** 1.5))
+C L50= X50 /2.pi.f= 0.016555H= 16.555 mH
+LTRNSF = 16.555 * KNT**(-0.03)
+BLANK card ends $PARAMETER block
+$UNITS, 0.0,0.0
+ TRANSFORMER 5.0 40.0 X
+ 9999
+ 1TC10A TC10B RTRNSFLTRNSF 10.0
+ 2LV6A GRV .000 .0001 .360
+ TRANSFORMER X Y
+ 1TC10B TC10C
+ 2LV6B GRV
+ TRANSFORMER X Z
+ 1TC10C TC10A
+ 2LV6C GRV
+$UNITS, -1.0,-1.0
+ GRV 5.0
+C
+ LV6A CONVA .0001
+ LV6B CONVB .0001
+ LV6C CONVC .0001
+C transformer HV capacitance phase to tank
+ TC10A .0010
+ TC10B .0010
+ TC10C .0010
+C transformer LV capacitance phase to tank
+ TC10A .0023
+ TC10B .0023
+ TC10C .0023
+C transformer LV capacitance phase to phase
+ TC10A TC10B .0015
+ TC10B TC10C .0015
+ TC10C TC10A .0015
+C
+C ***********************************************
+C PWM drive transformer
+C ******************************************
+C connect a Y/D 1.00 MVA transformer
+C x = 6.5% x = 10**2/1.00 = 100.0 ohm * 0.065 = 6.50 ohm
+C imag = 1.5 A , r = 0.5 ohm/ph
+ TRANSFORMER 5.0 40.0 XX
+ 9999
+ 1TR10A .400 6.500 5.78
+ 2LW6A LW6B .001 .0001 .660
+ TRANSFORMER XX YY
+ 1TR10B
+ 2LW6B LW6C
+ TRANSFORMER XX ZZ
+ 1TR10C
+ 2LW6C LW6A
+C
+ LW6A 1.0E4 { to eliminate delta wdg. problem
+C
+C *****************************************
+C PWM drive source PWMS
+C *****************************************
+ LP6A PWMSA .10010 { to injection bus }
+ LP6B PWMSB .10010
+ LP6C PWMSC .10010
+C *****************************************
+C Services Transformer
+C *****************************************
+C x = 6.5% x = 10**2/1.00 = 100.0 ohm * 0.065 = 6.50 ohm
+C imag = 1.5 A , r = 0.5 ohm/ph
+C
+ TRANSFORMER 3.0 40.0 AX
+ 9999
+ 1TR10A TR10B .800 19.00 10.0
+ 2LS3A GRS .001 .0001 .220
+ TRANSFORMER AX AY
+ 1TR10B TR10C
+ 2LS3B GRS
+ TRANSFORMER AX AZ
+ 1TR10C TR10A
+ 2LS3C GRS
+ GRS 1.0
+C ******************************
+C Induction motor 500 kW
+C ******************************
+$PARAMETER
+C frequency dependence of locked rotor impedance
+C locked rotor impedance. Only the R component is frequency dependent
+C Motor : 3ph, 0.38 kV, 550 kVA, slip = 0.8%, locked rotor reactance = 27%
+C rrotor = slip * V(kV)**2 / MVA
+C rrmot = 0.008 * (0.38**2 / .5 5) = 0.0021 ohm/ph
+C the locked rotor inductance assuming xd' = 27%
+C Xlmot = 0.27 * (0.38**2 / .5 5) = 0.00709 ohm/ph
+C note the underscores making up the 6 char. names, only for those variables
+C which are passed to the network data
+C the constant KNT is made equal to h in ATP
+C note that that the source anle MOTSA is adjusted to obtain approx 550 KVA
+XMOT__= 0.27 * 0.38**2/0.55
+SLIP = 0.008 $$
+RMOTS = 0.008 * 0.38**2/0.55 $$
+C the following expression is MOD(h,3)
+HMOD = ( KNT - 3.0 * TRUNC (KNT/3.0)) $$
+C test for the sequence number
+Z = (-1.0) ** HMOD $$
+HS1 = (KNT + Z) $$
+C HS is the "harmonic slip"
+HS = (HS1 + SLIP)/KNT $$
+RMOT__= RMOTS/HS
+BLANK card ends $PARAMETER definitions
+C ------______------______------______------______
+ LS3A MOTA RMOT__XMOT__ 1
+ LS3B MOTB RMOT__XMOT__
+ LS3C MOTC RMOT__XMOT__
+ MOTA MOTSA .00001 { source separation
+ MOTB MOTSB .00001
+ MOTC MOTSC .00001
+C
+C ******************************
+C load 380 V, 400 kW, 0.9 p.f.
+C ******************************
+C Frequency dependent load (C.I.G.R.E. #3 model) on bus LOAD
+ LS3A LODA .00001
+ LS3B LODB .00001
+ LS3C LODC .00001
+C
+ <LOAD> CIGRE A,B,C 0.073 2.0 0.74
+ LODA <LOAD3LODB LODC 200.0 133000. 66500.
+C
+BLANK end of BRANCH data ------------------------------------------------------|
+C
+C SWITCHES
+C _____^_____^_________^_________^_________^
+C nod1 nod2 measure current in 10 kV feeder
+ BSA BSMA -1.0 10.0 1
+ BSB BSMB -1.0 10.0
+ BSC BSMC -1.0 10.0
+C ------------__________----------__________-----------------------------------+
+C switch to the 5th filter
+ FIMT5AFILT5A -1.0 10.0
+ FIMT5BFILT5B -1.0 10.0
+ FIMT5CFILT5C -1.0 10.0
+C
+C switch to the 7th filter
+ FIMT7AFILT7A 1.0 10.0
+ FIMT7BFILT7B 1.0 10.0
+ FIMT7CFILT7C 1.0 10.0
+C
+C switch to the PWM drive
+ LW6A LP6A -1.0 10.0
+ LW6B LP6B -1.0 10.0
+ LW6C LP6C -1.0 10.0
+C
+BLANK card ending switch cards
+ POLAR OUTPUT VARIABLES { 2nd of 3 alternatives gives mag, angle (not mag only)
+C all frequencies in terms of harmonic order
+14SRCA 8150.00 1. 0.
+14SRCB 8150.00 1. 240.
+14SRCC 8150.00 1. 120.
+C
+C Voltage source for the induction motor
+14MOTSA 307.50 1. -40.
+14MOTSB 307.50 1. 200.
+14MOTSC 307.50 1. 80
+C current injection at converter bus CONVA,B,C
+C 3000 kVA fundamental 2890 r.m.s. 4075 A peak
+C s/c at converter 600 V bus approx 30 MVA
+C the fundamental
+14CONVA -1 727.321 0.33 -310.00
+14CONVB -1 727.321 0.33 -190.00
+14CONVC -1 727.321 0.33 -70.00
+C
+14CONVA -1 727.321 0.5 -310.00
+14CONVB -1 727.321 0.5 -190.00
+14CONVC -1 727.321 0.5 -70.00
+C
+14CONVA -1 4075.000 1.0 -170.00
+14CONVB -1 4075.000 1.0 70.00
+14CONVC -1 4075.000 1.0 -50.00
+C harmonic sources h angle
+14CONVA -1 727.321 5.0 -310.00
+14CONVB -1 727.321 5.0 -190.00
+14CONVC -1 727.321 5.0 -70.00
+C
+14CONVA -1 463.262 7.0 -110.00
+14CONVB -1 463.262 7.0 -230.00
+14CONVC -1 463.262 7.0 -350.00
+C
+14CONVA -1 206.488 11.0 -250.00
+14CONVB -1 206.488 11.0 -130.00
+14CONVC -1 206.488 11.0 -10.00
+C
+14CONVA -1 137.259 13.0 -50.00
+14CONVB -1 137.259 13.0 -170.00
+14CONVC -1 137.259 13.0 190.00
+C
+14CONVA -1 62.675 17.0 -190.00
+14CONVB -1 62.675 17.0 -70.00
+14CONVC -1 62.675 17.0 -310.00
+C
+14CONVA -1 48.096 19.0 -350.00
+14CONVB -1 48.096 19.0 -110.00
+14CONVC -1 48.096 19.0 -230.00
+C current injections for the PWM drive on 600 V bus PWMSA,B,C
+C 750 kVA 722.5 A, 1019 A peak
+14PWMSA -1 1019.000 0.5 145.00
+14PWMSB -1 1019.000 0.5 385.00
+14PWMSC -1 1019.000 0.5 265.00
+C
+14PWMSA -1 1019.000 0.75 145.00
+14PWMSB -1 1019.000 0.75 385.00
+14PWMSC -1 1019.000 0.75 265.00
+C
+14PWMSA -1 1019.000 1.0 145.00
+14PWMSB -1 1019.000 1.0 385.00
+14PWMSC -1 1019.000 1.0 265.00
+C
+C harmonic sources h angle
+C 61%
+14PWMSA -1 621.600 5.0 185.00
+14PWMSB -1 621.600 5.0 305.00
+14PWMSC -1 621.600 5.0 65.00
+C 34%
+14PWMSA -1 346.500 7.0 295.00
+14PWMSB -1 346.500 7.0 175.00
+14PWMSC -1 346.500 7.0 55.00
+C 4%
+14PWMSA -1 40.800 11.0 335.00
+14PWMSB -1 40.800 11.0 95.00
+14PWMSC -1 40.800 11.0 215.00
+C 7.8%
+14PWMSA -1 79.500 13.0 85.00
+14PWMSB -1 79.500 13.0 325.00
+14PWMSC -1 79.500 13.0 205.00
+C 1.2%
+14PWMSA -1 12.300 17.0 125.00
+14PWMSB -1 12.300 17.0 245.00
+14PWMSC -1 12.300 17.0 5.00
+C 1.5%
+14PWMSA -1 15.300 19.0 235.00
+14PWMSB -1 15.300 19.0 115.00
+14PWMSC -1 15.300 19.0 355.00
+BLANK card ending all source cards
+NEXT FREQUENCY FOR SERIES RLC 500. { Elevated frequency for interpolation
+ LOD1A 16.33 0.83
+ LOD1B 16.33 0.83
+ LOD1C 16.33 0.83
+BLANK card ending frequency-dependent data
+ TR10A LS3A LOD1A
+BLANK card ends requests for node voltage output
+ 14690. 0. 400. LOD1A
+BLANK card ends batch-mode plot requests
+BEGIN NEW DATA CASE
+C 19th of 21 subcases is added 25 November 2001 following corrections
+C to handle subharmonic data from Gabor Furst (see DC-22). This subcase
+C began as separate disk file PARATEST.DAT Like the preceding subcase
+C this one involves HFS and subharmonics. But it was fundamentally more
+C difficult because POCKET CALCULATOR VARIES PARAMETERS (PCVP) also is
+C involved, and harmonic number h is used within a $PARAMETER block
+C to define branches as a function of frequency. Because of the use of
+C "h" within $PARAMETER, the initial harmonic number HARNUM must be
+C defined manually using the new MINIMUM HARMONIC NUMBER declaration.
+POWER FREQUENCY, 50.0
+HARMONIC FREQUENCY SCAN
+POCKET CALCULATOR VARIES PARAMETERS 0 1
+C HARNUM
+MINIMUM HARMONIC NUMBER .333 { E8.0 value in columns 33-40
+ .001 0.0 50. { Note non-positive Tmax is required for batch-mode plotting
+ 1 1 0 0 1
+C Source bus 10.0 kV 95 MVA
+ SRCA BSA .0001
+ SRCB BSB .0001
+ SRCC BSC .0001
+$PARAMETER
+C RVARIS = KNT * 1.0 --- Gabor Furst's original definition
+RVARIS = H * 1.0 { WSM's replacement uses new harmonic number "h"
+BLANK card ends $PARAMETER definitions (here, just one)
+ BSA RVARIS 1
+ BSB RVARIS 1
+ BSC RVARIS 1
+BLANK card ends branches
+BLANK card ends all switches (none here)
+ POLAR OUTPUT VARIABLES { Both phasor magnitude and angle will be outputted
+C harmonic sources h angle
+C WSM adds 1st of 2 subharmonics at 50/3 Hz (harmonic number 1/3):
+14SRCA 100.00 .333 0.
+14SRCB 100.00 .333 240.
+14SRCC 100.00 .333 120.
+C WSM adds 2nd of 2 subharmonics at 100/3 Hz (harmonic number 2/3):
+14SRCA 100.00 .6667 0.
+14SRCB 100.00 .6667 240.
+14SRCC 100.00 .6667 120.
+C The following are Gabor Furst's original sources:
+14SRCA 100.00 1. 0.
+14SRCB 100.00 1. 240.
+14SRCC 100.00 1. 120.
+C
+14SRCA 100.00 2.0 0.
+14SRCB 100.00 2.0 240.
+14SRCC 100.00 2.0 120.
+C
+14SRCA 100.00 5.0 0.
+14SRCB 100.00 5.0 240.
+14SRCC 100.00 5.0 120.
+C
+14SRCA 100.00 10.0 0.
+14SRCB 100.00 10.0 240.
+14SRCC 100.00 10.0 120.
+BLANK card ending frequency dependent cards (none for this data)
+BLANK card ending all source cards
+ SRCA { Names of nodes for node voltage output (just one, here)
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C For each variable, magnitude is followed immediately by angle. Both halves of the pair are labeled identically, note.
+C Step F [Hz] SRCA SRCA BSA BSA BSB BSB BSC BSC
+C TERRA TERRA TERRA TERRA TERRA TERRA
+C .333 16.65 100. 0.0 300.21015 0.0 300.21015 -120. 300.21015 120.
+C New parameter values follow: 1) .6667
+C .6667 33.335 100. 0.0 149.97001 0.0 149.97001 -120. 149.97001 120.
+C New parameter values follow: 1) 1.0
+C 1 50. 100. 0.0 99.990001 0.0 99.990001 -120. 99.990001 120.
+BLANK card ends node names for node voltage output
+C New parameter values follow: 1) 2.0
+C 2 100. 100. 0.0 49.9975 0.0 49.9975 -120. 49.9975 120.
+C New parameter values follow: 1) 5.0
+C 5 250. 100. 0.0 19.9996 0.0 19.9996 -120. 19.9996 120.
+C New parameter values follow: 1) 10.
+C 10 500. 100. 0.0 9.9999 0.0 9.9999 -120. 9.9999 120.
+C Variable maxima : 100. 0.0 300.21015 0.0 300.21015 -120. 300.21015 120.
+C F [Hz] of maxima: 16.65 16.65 16.65 16.65 16.65 50. 16.65 16.65
+C Variable minima : 100. 0.0 9.9999 0.0 9.9999 -120. 9.9999 120.
+C F [Hz] of minima: 16.65 16.65 500. 16.65 500. 16.65 500. 16.65
+ CALCOMP PLOT { It never hurts to declare the graphic plot mode explicitly
+ 19650. 0. 500. BSA { Produce bar chart of a current magnitude
+BLANK card ends batch-mode plot cards
+BEGIN NEW DATA CASE
+C 20th of 21 subcases is related to the 3rd. Voltage sources are
+C converted to current sources in order to illustrate a generalization
+C that became effective 20 January 2002. Luciano Tonelli of CESI in
+C Milano, Italy, had requested more than one current source at a given
+C node. This was in E-mail of the EEUG list server two days earlier.
+C Prior to the change, ATP should have halted on the 2nd source, but
+C instead it continued with the scan to produce the wrong answer (it
+C would appear that only the final source at a node was being honored).
+C Well, the power-frequency source is split in two, each having half the
+C amplitude. This should change nothing. The same goes for the 200-Hz
+C contribution. The answer should be unaffect by this splitting.
+C two or more sources at the same node, for any given frequency.
+PRINTED NUMBER WIDTH, 11, 2, { Each column of width 11 includes 2 blank bytes
+POWER FREQUENCY, 50., ! Needed so mimimum frequency is recognized as fundamental
+C HARMONIC FREQUENCY SCAN -1.0 DELFFS < 0 ==> log F (not F) in .PL4 file
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+ 1.0 0.0
+ 1 1 1 0 1 { Note request for phasor branch flows
+ SWIT LOAD 10. 3
+ NONE 2.0 1
+ LOAD 1000.
+-1SWIT OPEN .3055 5.82 .012 1.0 { One mile of DC-37 line
+BLANK card ending all branches
+ GEN SWIT -1. 1
+BLANK card ending all switch cards
+C 14GEN -1 1.0 50. 0.0 { Note comment and no negative T-start
+C The preceding power-frequency source is being split into two halves that
+C have the same total (amplitude 1.0 = 0.4 + 0.6):
+14GEN -1 0.4 50. 0.0 { Note comment and no negative T-start
+14GEN -1 0.6 50. 0.0 { Note comment and no negative T-start
+14GEN -1 1.3 100. 0.0 { Note comment and no negative T-start
+C 14GEN -1 1.5 200. 0.0
+C The preceding 200-Hz source is being split into two halves that
+C have the same total (amplitude 1.5 = 1.0 + 0.5):
+14GEN -1 1.0 200. 0.0
+14GEN -1 .50 200. 0.0
+C If the following 3rd source at 200 Hz were activated, the result should
+C be an error stop (code is protected beginning 20 Jan 2002):
+C 14GEN -1 0.5 200. 0.0
+14GEN -1 1.4 300. 0.0
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+ GEN LOAD { Names of nodes for voltage output
+BLANK card ends output requests (just node voltages, for FREQUENCY SCAN)
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Only the magnitude of each variable is outputted. This is the default choice, which was not superseded by any request.
+C Step F [Hz] SWIT GEN LOAD GEN SWIT NONE
+C LOAD SWIT LOAD TERRA
+C 1 50. 10.011858 314.69109 314.53178 1.0 1.0011858 0.0
+C 2 100. 13.06188 820.80606 820.70213 1.3 1.306188 0.0
+C 3 200. 15.289746 1921.4269 1921.3661 1.5 1.5289746 0.0
+C 4 300. 14.623551 2756.5132 2756.4744 1.4 1.4623551 0.0
+C Variable maxima : 15.289746 2756.5132 2756.4744 1.5 1.5289746 0.0
+C F [Hz] of maxima: 200. 300. 300. 200. 200. 50.
+C Variable minima : 10.011858 314.69109 314.53178 1.0 1.0011858 0.0
+C F [Hz] of minima: 50. 50. 50. 50. 50. 50.
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 21st of 21 subcases is unrelated to the preceding 16. Instead, it
+C is similar to DC-8, and it uses a copy of the punched cards created
+C by the 3rd subcase of DC-36. Answers of the present subcase are same
+C as DC8.LIS because of the degenerate nature of the dependency that
+C is being used. Other than the name of the disk file in the $INCLUDE
+C usage below, following non-comment data is the same as that of DC-8.
+$PREFIX, [] { $INCLUDE files are located in same place as this main data file
+$SUFFIX, .dat { File name of $INCLUDE will be followed by this file type
+ .005 4.0 { DELTAT and TMAX are in fact arbitrary, since no simulation
+ 1 -1 1 1 1
+TACS HYBRID
+99 FIRE1 = TIMEX
+99 FIRE2 = TIMEX
+99 FIRE3 = TIMEX
+13FAKE
+98 FIRE452+UNITY 1. 0. 0. TIMEX
+98 FIRE552+UNITY 1. 0. 0. TIMEX
+98 FIRE652+UNITY 1. 0. 0. TIMEX
+BLANK card ends all TACS data
+C The following two cards easily could be combined into a single one. But we
+C want to illustrate continuation cards. Note no "C" in col. 1 (the old way):
+$INCLUDE, dcn21inc, ACNOD, #MINUS, ##PLUS, $$ { Branch & switch cards
+ #FIRE, ##MID { use continuation (request "$$") as an illustration
+BLANK card ending BRANCH cards { Key word "BRANCH" needed for sorting, note
+BLANK card ending SWITCH cards { Key word "SWITCH" needed for sorting, note
+$STOP { After switches read, modularization & sorting are confirmed, so halt
+EOF ---- Needed so "OVER1" or "SPYING" ("DATA") ends input here during reading
+======================================================================
+C The following is a view of DCN21INC.DAT, as created by the 3rd
+C subcase of DC-36. Note 1st KBEG has minus sign due to "DEP" use
+======================================================================
+KARD 1 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14
+ 15 15 15 16 16 16 17 17 17 18 18 18 19 19 19 20 20 20 22 22 22 23 23 23 24
+ 24 24 25 25 25 26 26 26 27 27 27
+KARG 6 1 5 1 5 1 5 1 5 1 5 1 5 3 5 3 5 3 5 3 5 3 5 3 5
+ 1 2 6 1 2 6 1 2 6 1 3 6 1 3 6 1 3 6 2 4 5 2 4 5 2
+ 4 5 1 4 5 1 4 5 1 4 5
+KBEG -7 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9
+ 3 9 39 3 9 39 3 9 39 3 9 39 3 9 39 3 9 39 9 65 3 9 65 3 9
+ 65 3 9 65 3 9 65 3 9 65 3
+KEND 12 7 13 7 13 7 13 7 13 7 13 7 13 8 13 8 13 8 13 8 13 8 13 8 13
+ 7 14 44 7 14 44 7 14 44 7 14 44 7 14 44 7 14 44 14 69 7 14 69 7 14
+ 69 7 13 69 7 13 69 7 13 69 7
+KTEX 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1
+ CAP_44 = 1000. * 1.E-4 { Associated formula for evaluation during $INCLUDE
+/BRANCH
+C3 Begin with anode reactors and parallel resistors (6 pairs):
+ _NODEA__MID1 3000.
+ _NODEA__MID1 1.0
+ _NODEB__MID3 3000.
+ _NODEB__MID3 1.0
+ _NODEC__MID5 3000.
+ _NODEC__MID5 1.0
+ __PLUS__MID4 3000.
+ __PLUS__MID4 1.0
+ __PLUS__MID6 3000.
+ __PLUS__MID6 1.0
+ __PLUS__MID2 3000.
+ __PLUS__MID2 1.0
+C3 Next come the snubber circuits, across valves and anode reactors:
+ _NODEA_MINUS 1200. CAP_44 { 1st of 6 replaces 0.1 in 39-44
+ _NODEB_MINUS 1200. CAP_44 { 2nd of 6 ....
+ _NODEC_MINUS 1200. CAP_44
+ _NODEA__PLUS 1200. CAP_44
+ _NODEB__PLUS 1200. CAP_44
+ _NODEC__PLUS 1200. CAP_44
+C3 Next come the valves:
+/SWITCH
+11__MID1_MINUS _FIRE2
+11__MID3_MINUS _FIRE4
+11__MID5_MINUS _FIRE6
+11__MID4_NODEA _FIRE5
+11__MID6_NODEB _FIRE1
+11__MID2_NODEC _FIRE3
+$EOF User-supplied header cards follow. 11-Nov-18 11.00.00
+ARG, _NODE, _MINUS, __PLUS,
+ARG, _FIRE, __MID
+DEP, CAP_44
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn21inc.dat b/benchmarks/dcn21inc.dat
new file mode 100644
index 0000000..86b8237
--- /dev/null
+++ b/benchmarks/dcn21inc.dat
@@ -0,0 +1,49 @@
+KARD 1 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14
+ 15 15 15 16 16 16 17 17 17 18 18 18 19 19 19 20 20 20 22 22 22 23 23 23 24
+ 24 24 25 25 25 26 26 26 27 27 27
+KARG 6 1 5 1 5 1 5 1 5 1 5 1 5 3 5 3 5 3 5 3 5 3 5 3 5
+ 1 2 6 1 2 6 1 2 6 1 3 6 1 3 6 1 3 6 2 4 5 2 4 5 2
+ 4 5 1 4 5 1 4 5 1 4 5
+KBEG -7 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9 3 9
+ 3 9 39 3 9 39 3 9 39 3 9 39 3 9 39 3 9 39 9 65 3 9 65 3 9
+ 65 3 9 65 3 9 65 3 9 65 3
+KEND 12 7 13 7 13 7 13 7 13 7 13 7 13 8 13 8 13 8 13 8 13 8 13 8 13
+ 7 14 44 7 14 44 7 14 44 7 14 44 7 14 44 7 14 44 14 69 7 14 69 7 14
+ 69 7 13 69 7 13 69 7 13 69 7
+KTEX 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1
+ CAP_44 = 1000. * 1.E-4 { Associated formula for evaluation during $INCLUDE
+/BRANCH
+C3 Begin with anode reactors and parallel resistors (6 pairs):
+ _NODEA__MID1 3000.
+ _NODEA__MID1 1.0
+ _NODEB__MID3 3000.
+ _NODEB__MID3 1.0
+ _NODEC__MID5 3000.
+ _NODEC__MID5 1.0
+ __PLUS__MID4 3000.
+ __PLUS__MID4 1.0
+ __PLUS__MID6 3000.
+ __PLUS__MID6 1.0
+ __PLUS__MID2 3000.
+ __PLUS__MID2 1.0
+C3 Next come the snubber circuits, across valves and anode reactors:
+ _NODEA_MINUS 1200. CAP_44 { 1st of 6 replaces 0.1 in 39-44
+ _NODEB_MINUS 1200. CAP_44 { 2nd of 6 ....
+ _NODEC_MINUS 1200. CAP_44
+ _NODEA__PLUS 1200. CAP_44
+ _NODEB__PLUS 1200. CAP_44
+ _NODEC__PLUS 1200. CAP_44
+C3 Next come the valves:
+/SWITCH
+11__MID1_MINUS _FIRE2
+11__MID3_MINUS _FIRE4
+11__MID5_MINUS _FIRE6
+11__MID4_NODEA _FIRE5
+11__MID6_NODEB _FIRE1
+11__MID2_NODEC _FIRE3
+$EOF User-supplied header cards follow. 11-Nov-18 11.00.00
+ARG, _NODE, _MINUS, __PLUS,
+ARG, _FIRE, __MID
+DEP, CAP_44
diff --git a/benchmarks/dcn22.dat b/benchmarks/dcn22.dat
new file mode 100644
index 0000000..8b31b6b
--- /dev/null
+++ b/benchmarks/dcn22.dat
@@ -0,0 +1,720 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-22
+C Illustrate modeling of unsymmetric series-RL that uses compensation as
+C described in the July, 1997, newsletter story. Begin with uncoupled
+C branches of 1 ohm resistance. The answer is obvious by inspection. The
+C [R] matrix is diagonal matrix equal to the unit matrix, and [X] is zero.
+C In terms of symmetrical components, Zo = Z1 = Z2 (a second half of the
+C data this identical but alternative representation to produce the same
+C known answer). With each phase having 2 ohms resistance split in half,
+C and with balanced, sinusoidal sources having 2 volts, the currents are
+C equal to half the source voltage: sinusoidal of amplitude 1. Frequency
+C of the 3-phase sources at SENDA, SENDB, and SENDC have been reduced to
+C nearly zero so the 1st step of phase "a" is very close to the peak. Step
+C 1 is very close to answer at time zero: Va = 1 volt, Vb = Vc = 1/2 volt
+C A total of 7 subcases are involved.
+C UTPF update of 20 June 2007 allows ATP data to override .PL4 file type
+C choices that normally are made within STARTUP. Illustrate use here :
+C FMTPL4 L4BYTE NEWPL4 Next card FORMAT ( 16X, A6, 2X, 2I8 )
+C CONCATENATE. 1 0 <Force .PL4 type> key text anywhere
+C For 2 or more stacked subcases, this declaration must be in the first
+C and must be in the original data file. Here, the C-like choice is
+C mandatory in order that it be in place for subcase 4, which will use
+C $DEPOSIT to change NEWPL4 again, to 2 (for Pisa). That only works
+C if a C-like or Pisa file then is in effect. One can not use $DEPOSIT
+C to change a formatted .PL4 file to Pisa format in this way. So, the
+C preceding ensures that the 4th will work; it ensures that some user
+C will not rely upon values in STARTUP that might be incompatible.
+ .0001 .0005
+ 1 -1 1 0 1 -1
+ 5 5 20 20 100 100
+ SENDA ENDA 1.0 1
+ SENDB ENDB SENDA ENDA 1
+ SENDC ENDC SENDA ENDA 1
+ ENDA ENDB 1.E7
+ ENDB ENDC ENDA ENDB
+ ENDC ENDA ENDA ENDB
+91ENDA MODEL Z0Z1Z2 1.0
+91ENDB MODEL Z0Z1Z2 1.0
+91ENDC MODEL Z0Z1Z2 1.0
+ SENDA RECA 1.0 1
+ SENDB RECB SENDA RECA 1
+ SENDC RECC SENDA RECA 1
+ RECA RECB 1.E7
+ RECB RECC RECA RECB
+ RECC RECA RECA RECB
+91RECA MODEL [R][L]
+91RECB MODEL [R][L]
+91RECC MODEL [R][L]
+ 1.0 0.0 0.0
+ 0.0 0.0 0.0
+ 0.0 1.0 0.0
+ 0.0 0.0 0.0
+ 0.0 0.0 1.0
+ 0.0 0.0 0.0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.1 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 0.1 -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 0.1 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC
+C Step Time SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC SENDA
+C ENDA
+C SENDB SENDC SENDA SENDB SENDC
+C ENDB ENDC RECA RECB RECC
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 2.0 .999999848 .999999848 -.99989117 -.49994551 -.49994551 -1.0001088 -.50005434 -.50005434 1.00000015
+C -.49994566 -.50005449 1.00000015 -.49994566 -.50005449
+C 2 .2E-3 1.99999998 .999999842 .999999842 -.99978234 -.49989109 -.49989109 -1.0002176 -.50010875 -.50010875 1.00000014
+C -.49989124 -.5001089 1.00000014 -.49989124 -.5001089
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 2nd of 7 subcases. Progress to symmetrical components having
+C Z1 = Z2 so the answer can be shown to be identical to that
+C using Type-51,52,53 modeling with sequence impedances. In
+C fact, there are 2 identical, uncoupled networks driven from
+C the same balanced 3-phase sources at SENDA, SENDB, and SENDC.
+ .0001 .050
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+ SENDA ENDA 0.3 1.0 1
+ SENDB ENDB SENDA ENDA 1
+ SENDC ENDC SENDA ENDA 1
+ ENDA ENDB 1.E7 { Balanced, interphase leakage gives 3-phase
+ ENDB ENDC ENDA ENDB { (rather than 3, single-phase) Z-thevenin.
+ ENDC ENDA ENDA ENDB { 3 coupled phases are required by "Z0Z1Z2"
+91ENDA MODEL Z0Z1Z2 0.3 1.0 { Sequence Ro, Lo in [ohms, mHenry]
+91ENDB MODEL Z0Z1Z2 0.1 0.5 { Sequence R1, L1 in [ohms, mHenry]
+91ENDC MODEL Z0Z1Z2 0.1 0.5 { Note Z2 = Z1 so [Z] is symmetric
+C Next, build a copy of this, but using the old (Type-51,52,53) modeling:
+ SENDA RECA 0.3 1.0 1
+ SENDB RECB SENDA RECA 1
+ SENDC RECC SENDA RECA 1
+ RECA RECB 1.E7
+ RECB RECC RECA RECB
+ RECC RECA RECA RECB
+51RECA 0.3 1.0 { Ro, Lo in [ohms, mHenry]
+52RECB 0.1 0.5 { R1, L1 in [ohms, mHenry]
+53RECC
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 50. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 50. -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 50. 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA
+C Step Time SENDA RECA ENDA SENDA SENDB SENDC SENDA SENDB SENDC
+C ENDA ENDB ENDC RECA RECB RECC
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 1.99901312 .664144463 .664144463 .065757077 -.0310889 -.03466818 .065757077 -.0310889 -.03466818
+C 2 .2E-3 1.99605346 .658837702 .658837702 .195443292 -.09061195 -.10483134 .195443292 -.09061195 -.10483134
+C 3 .3E-3 1.99112393 .652991396 .652991396 .321457199 -.14486663 -.17659057 .321457199 -.14486663 -.17659057
+BLANK card ending node voltage outputs
+C 500 .05 -2. -.59687593 -.59687593 -2.0936819 3.18312082 -1.0894389 -2.0936819 3.18312082 -1.0894389
+C Variable maxima : 2.0 .664144463 .664144463 3.23520786 3.50393608 3.23541237 3.23520786 3.50393608 3.23541237
+C Times of maxima : .02 .1E-3 .1E-3 .0428 .0092 .0361 .0428 .0092 .0361
+C Variable minima : -2. -.60247492 -.60247492 -3.3079993 -3.2352894 -3.4484065 -3.3079993 -3.2352894 -3.4484065
+C Times of minima : .01 .0496 .0496 .0127 .0394 .0059 .0127 .0394 .0059
+ CALCOMP PLOT
+ 144 5. 0.0 50. -1.0 1. RECA ENDA { These 2 phase-a voltages should be equal
+ 194 5. 0.0 50. -4.0 4.0BRANCH { Following phase-a currents should be equal
+ SENDA RECA SENDA ENDA
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 3rd of 7 subcases generalizes the preceding. For the Z0Z1Z2 model,
+C Z2 is changed so it no longer is equal to Z1. Since Type-51,52,53
+C modeling no longer can provide a comparison, this half is replaced by
+C the more general [R][L] alternative that requires the user to supply
+C full matrices. Although input precision is limited to 8 digits to the
+C right of the fixed decimal point, agreement is close (6 or more digits)
+ .0001 .050
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+ SENDA ENDA 0.3 1.0 1
+ SENDB ENDB SENDA ENDA 1
+ SENDC ENDC SENDA ENDA 1
+ ENDA ENDB 1.E7
+ ENDB ENDC ENDA ENDB
+ ENDC ENDA ENDA ENDB
+91ENDA MODEL Z0Z1Z2 0.3 1.0
+91ENDB MODEL Z0Z1Z2 0.1 0.5
+91ENDC MODEL Z0Z1Z2 .101 0.8
+ SENDA RECA 0.3 1.0 1
+ SENDB RECB SENDA RECA 1
+ SENDC RECC SENDA RECA 1
+ RECA RECB 1.E7
+ RECB RECC RECA RECB
+ RECC RECA RECA RECB
+91RECA MODEL [R][L]
+91RECB MODEL [R][L]
+91RECC MODEL [R][L]
+C Correct the data 1 April 2002. Following a change to USERNL, the
+C phase-domain X or L has changed. Previously, we were using units
+C of mH, which relied on STATFR of STARTUP for the conversion.
+C This is improved by the definition of XOPT = 60 Hz (see below),
+C which frees the computation from dependence of STARTUP. Also, we
+C switch to input of X in ohms (rather than L in mH):
+$DISABLE { For the hysterical record, retain the old matrix on comments:
+ .1670000000 .0665866025 .0664133975 { R(1,1), R(1,2), R(1,3)
+ .7666666667-.1720084679 .4053418013 { L(1,1), L(1,2), L(1,3)
+ .0664133975 .1670000000 .0665866025 { Row 2 of [R]
+ .4053418013 .7666666667-.1720084679 { Row 2 of [L]
+ .0665866025 .0664133975 .1670000000 { Row 3 of [R]
+-.1720084679 .4053418013 .7666666667 { Row 3 of [L]
+$ENABLE { Done showing old (and wrong) matrix [L] in mHenry. Begin new:
+C Preceding disabled data was from years past. Correct this 1 April 2002.
+$UNITS, 60.0, 60.0, { Define frequency XOPT = 60 for the impedance computation
+C The .DBG will includes the following information. We use full precision of
+C the matrix values, although blanks and leading zeros have been removed:
+C USERNL begins with Lo, L1, L2 [H] = 1.00000E-03 5.00000E-04 8.00000E-04
+C Converted to Xo, X1, X2 = 3.76991E-01 1.88496E-01 3.01593E-01
+C 3x3 phase-domain impedance matrix in ohms follow. For each row I, X(I,J) is below R(I,J). w = 3.769911E+02 rad/sec.
+ .1670000000 .0991483886 .0338516114 { R(1,1), R(1,2), R(1,3) in ohms
+ .2890265241 .0436936220 .0442709723 { X(1,1), X(1,2), X(1,3) in ohms
+ .0338516114 .1670000000 .0991483886 { Row 2 of [R]
+ .0442709723 .2890265241 .0436936220 { Row 2 of [X]
+ .0991483886 .0338516114 .1670000000 { Row 3 of [R]
+ .0436936220 .0442709723 .2890265241 { Row 3 of [X]
+C $UNITS, -1.0, -1.0, { Done with ohms and micromhos at 60 Hz, so restore original
+C The preceding line is not tolerated because the associated warning
+C message is issued during the first time step. If we cancel the XOPT
+C definition, there will be no trace during the first time step. So,
+C without changing the answer, we leave XOPT = 60 to suppress the
+C warning message that will be seen in output of preceding 2 subcases.
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 50. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 50. -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 50. 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time SENDA RECA ENDA SENDA SENDB SENDC SENDA SENDB SENDC
+C ENDA ENDB ENDC RECA RECB RECC
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 1.99901312 .784095685 .784095685 .05984815 -.02824862 -.03159953 .05984815 -.02824862 -.03159953
+C 2 .2E-3 1.99605346 .776335531 .776335531 .178012015 -.08221824 -.09579377 .178012015 -.08221824 -.09579377
+C 3 .3E-3 1.99112393 .768107458 .768107458 .29308232 -.13116828 -.16191404 .29308232 -.13116828 -.16191404
+BLANK card ending node voltage outputs
+C 500 .05 -2. -.57981099 -.57981099 -2.1430566 3.2140066 -1.07095 -2.1430566 3.2140066 -1.07095
+C Variable maxima : 2.0 .784095685 .784095685 3.2728624 3.57534262 3.28836555 3.2728624 3.57534261 3.28836555
+C Times of maxima : .02 .1E-3 .1E-3 .0427 .0091 .0161 .0427 .0091 .0161
+C Variable minima : -2. -.58387034 -.58387034 -3.4132778 -3.2730642 -3.3604773 -3.4132778 -3.2730642 -3.3604773
+C Times of minima : .01 .0496 .0496 .0126 .0394 .0059 .0126 .0394 .0059
+ CALCOMP PLOT
+ 144 5. 0.0 50. -1.0 1. RECA ENDA
+ 194 5. 0.0 50. -4.0 4.0BRANCH
+ SENDA RECA SENDA ENDA
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 4th of 7 subcases is unrelated to the preceding three. Instead, it
+C illustrates op amp (operational amplifier) modeling as first requested
+C by Masahiro Kan of Toshiba Corp. in Japan. See October, 1997, newsletter
+C As of 30 Aug 97, the op amp (Type-20 source) is ignored during the
+C phasor solution.
+C 19 March 2001, expand to illustrate Pisa-format .PL4 file for time
+C simulation. Use began with HARMONIC FREQUENCY SCAN in the new 15th
+C subcase of DCNEW-21. But correct operation for normal time simulation
+C also should be confirmed, so modify this existing 4th subcase for such
+C a test. Expand dT and T-max so screen plot is half of a recognizable
+C sinusoid:
+$DEPOSIT, NEWPL4=2 { Use SPY DEPOSIT to override .PL4 file type given in STARTUP
+$DEPOSIT, LUNIT4=4 { Use SPY DEPOSIT to override minus sign specified in STARTUP
+$DEPOSIT, NOPOST=1 { Use SPY DEPOSIT to override PostScript choice in STARTUP
+$DEPOSIT, NOHPGL=1 { Use SPY DEPOSIT to override the HP-GL choice in STARTUP
+$DEPOSIT, NOGNU=1 { Use SPY DEPOSIT to override the GNUPLOT choice in STARTUP
+C To prove that Pisa-format code is being used, it is easy to turn on debug
+C printout. Use here is like that pioneered in DCNEW-21 for HFS. But there
+C are differences. Whereas HFS automatically used LUNIT4 = +4 regardless
+C of what STARTUP indicated (usually value -4), this is not true for time
+C simulation, so the preceding definition of LUNIT4 is necessary in order
+C to force ATP to read from the disk-stored .PL4 file during plotting. About
+C overlay number, the .PL4 header is created in overlay 15 rather than 11. In
+C the .DBG file, look for the names HEADPI and LU4BEG to see Pisa-related
+C data values. To minimize size of the .DBG file, PostScript, HP-GL, and
+C GNUPLOT output are turned off (the final 3 $DEPOSIT lines above).
+C Turn off diagnostic 22 April 2007 as it disfigures .LIS of Mingw32 ATP:
+C DIAGNOSTIC { HEADPI in 15 } 9 { LU4BEG in 28 } 9
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision for 8 output columns
+C .000200 .0005 { Original simulation only advanced 3 time steps
+ .001 .010 { 10 time steps. Large dT is legal since network is resistive
+ 1 1 1 1
+ GEN SEND 1.0
+ SEND 1.0 0.0
+ OPAMP 1.0 1
+BLANK card ending branch cards.
+BLANK card ending switch cards.
+14GEN 2.0 50. 0.0 -1.
+C <____> <____><____> Gain occupies columns 11-20
+C BUS1 Gain BUSK BUSM By definition, V-1 = Gain * ( V-k - V-m)
+20OPAMP 10.GEN SEND { If V-k or V-m is zero, leave name blank)
+BLANK card terminating all EMTP source cards.
+ GEN SEND OPAMP
+BLANK card terminating all output requests.
+ CALCOMP PLOT { To demonstrate use of Pisa-format .PL4 file, try screen plot
+ 144 1. 0.0 10. SEND OPAMP { 2 sinusoidal signals differ by factor 10
+BLANK card terminating all plot cards.
+BEGIN NEW DATA CASE
+C 5th of 7 subcases really should be an extension of the following DCNEW-23
+C since these further support the 12th subcase of DCN23.DAT But the
+C following disk file already has 15 subcases as the addition is made on
+C 5 April 2000. Symmetrical component data of Type-51, 52, 53 branches is
+C the subject. Compensation is not being used. Consider a single, lumped,
+C 3-phase, series R-L branch having this imbalanced data:
+C Zo = 3.5 * Z1 = 10.5 + j 14.0 Ohm
+C Z1 = 3.0 + j 4.0 Ohm
+C Z2 = 0.5 * Z1 = 1.5 + j 2.0 Ohm
+C The far end will be terminated this way: phase "a" will be open whereas
+C phases "b" and "c" will be connected together. I.e., this is a normal
+C line-to-line fault. Data comes from Orlando Hevia in Santa Fe, Argentina
+C as copied by WSM on 3 April 2002. Mr. Hevia drove the line section using
+C a balanced, 3-phase voltage source. Although he included a phasor soution
+C for initial conditions, WSM drops this because it might be confusing (ATP
+C does not yet correctly represent unsymmetric [R] or [L] during the phasor
+C solution). Starting from zero is no problem, however, as the solution
+C settles into the steady state smoothly within a cycle or two. Just to be
+C sure, 5 cycles are simulated, and extrema are limited to the final 1.25 of
+C these. This is necessary to ignore the transient of energization. There
+C will be 3 identical tests. Each has different data, but gives identically
+C the same answers to the 8 or 9 digits of dT-loop output. Orlando Hevia
+C wrote a FORTRAN program to produce the solution exactly, in closed form.
+C This produced the following results: POLAR Magnitude Degrees
+C IB 230.9401 -143.1301
+C IC 230.9401 36.8699
+C ATP now will confirm this magnitude using simulation.
+DIAGNOSTIC { Cancel diagnostic printout of preceding subcase
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+BEGIN PEAK VALUE SEARCH, 0.075, { Ignore 1st 3.75 cycles, until in steady state
+ .000100 .100 { dT is relatively large to speed simulation. Only 1K steps
+ 1 -1 1 0 1 -1
+ 5 5 20 20 100 100
+$UNITS, 50.0, 0.0 { Begin inductance data in ohms at XOPT = 50 Hz
+C 1st of 3 line sections follows. SEQ at sending end indicates sequence data:
+51GENA OPEN1 MODEL Z0Z1Z2 10.5 14.00 { Ro and Xo, both in ohms
+52SEQB FLT1 3.0 4.00 { R1 and X1, both in ohms
+53SEQC FLT1 1.5 2.00 { R2 and X2, both in ohms
+$UNITS, 0.0, 0.0 { Return to inductance data in mHenry; XOPT = 0
+C 3x3 phase-domain [R] in ohms and [L] in mHenries follow. For each row I, L(I,J) is below R(I,J). w = 3.14159265E+02 rad/sec.
+C 5.0000000000 2.1726497308 3.3273502692
+C 21.2206590789 13.0496847320 10.2930402549
+C 3.3273502692 5.0000000000 2.1726497308
+C 10.2930402549 21.2206590789 13.0496847320
+C 2.1726497308 3.3273502692 5.0000000000
+C 13.0496847320 10.2930402549 21.2206590789
+C The present comments are diagnostic output from use of MODEL Z0Z1Z2. Such
+C output always will be found in the .DBG file. From it, produce the following
+C equivalent representation of [R] in ohms and [L] in mHenries:
+C 2nd of 3 line sections follows. PHS at sending end indicates phase domain:
+51GENA OPEN2 MODEL [R][L]
+52PHSB FLT2
+53PHSC FLT2
+ 5.000000000 2.172649731 3.327350269 { R(1,1), R(1,2), and R(1,3) in ohms
+ 21.22065908 13.04968473 10.29304025 { L(1,1), L(1,2), and L(1,3) in mHenries
+ 3.327350269 5.000000000 2.172649731 { Row 2 of [R]
+ 10.29304025 21.22065908 13.04968473 { Row 2 of [L]
+ 2.172649731 3.327350269 5.000000000 { Row 3 of [R]
+ 13.04968473 10.29304025 21.22065908 { Row 3 of [L]
+C Finally, data for 3rd of 3 line sections comes from Orlando. This is _not_
+C the same circuit, note, since [R] & [L] are not the same. The diagonal
+C elements are the same, but off-diagonals are not. This 3rd circuit differs
+C from the preceding 2, but it gives identically the same fault current. It
+C was constructed by Mr. Hevia by transferring impedance between Z1 and Z2
+C while maintaining the sum fixed. For either a L-L fault of this subcase or
+C a 1-L-G fault of the following one, fault current depends on the sum of
+C Z1 and Z2 but not on either Z1 or Z2 independently. Consider these
+C parameters, which seem exact to the limits of single precision:
+C Z of SEQ branch Z of OPH branch
+C Z0 parameter 10.5 + j 14.00 10.500 + j 14.0
+C Z1 parameter 3.0 + j 4.00 2.325 + j 13.0
+C Z2 parameter 1.5 + j 2.00 2.175 - j 7.0
+C But voltage of the faulted node will be different. Note the huge difference
+C between X1 and X2. Yet, they sum equally: 4 + 2 = 13 - 7.
+51GENA OPEN3 MODEL [R][L]
+52OPHB FLT3
+53OPHC FLT3
+ 5.0000000 -3.0235027 8.5235027
+ 21.2206591 11.8091947 11.5335303
+ 8.5235027 5.0000000 -3.0235027
+ 11.5335303 21.2206591 11.8091947
+ -3.0235027 8.5235027 5.0000000
+ 11.8091947 11.5335303 21.2206591
+BLANK card ending branches
+C Following switches measure line currents in the 3 circuits. Since phase "a"
+C is open, this is not of enough interest to warrant output. For the record,
+C let's document how close to zero such currents are, however. Salford EMTP
+C shows (prior to removal of the 3 switches from phase "a":
+C Step Time GENA GENA GENA
+C SEQA PHSA OPHA
+C 0 0.0 0.0 0.0 0.0
+C 1 .1E-3 -.367E-15 .3632E-15 .1798E-15
+C 2 .2E-3 -.284E-16 .1234E-15 -.271E-15
+C Variable max: .1121E-14 .1246E-14 .1845E-14
+C Times of max: .098 .0894 .0764
+C Variable min: -.122E-14 -.107E-14 -.229E-14
+C Times of min: .09 .0789 .0879
+C To conclude, no switches for phase "a". There remain 3 switches for phase
+C "b" (these 3 are ordered first, followed by the 3 for phase "c". This
+C way, corresponding outputs of the dT loop are contiguous, which encourages
+C easy comparison.
+ GENB SEQB MEASURING 1
+ GENB PHSB MEASURING 1
+ GENB OPHB MEASURING 1
+ GENC SEQC MEASURING 1
+ GENC PHSC MEASURING 1
+ GENC OPHC MEASURING 1
+BLANK card ending switches
+14GENA 1000. 50. -0.00 { Balanced, 3-phase excitation that
+14GENB 1000. 50. -120. { is _not_ present during the steady
+14GENC 1000. 50. -240. { state. There is no phasor solution.
+BLANK card follows the last source card
+C Column headings for the 9 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time FLT1 FLT2 FLT3 GENB GENB GENB GENC GENC GENC
+C SEQB PHSB OPHB SEQC PHSC OPHC
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 -495.9539 -495.9539 -500.178 .14077359 .14077359 .14077359 -.1407736 -.1407736 -.1407736
+C 2 .2E-3 -491.6694 -491.6694 -501.478 .55967714 .55967714 .55967714 -.5596771 -.5596771 -.5596771
+C 3 .3E-3 -487.1449 -487.1449 -503.861 1.2498171 1.2498171 1.249817 -1.249817 -1.249817 -1.249817
+ FLT1 FLT2 FLT3 { Show that the fault voltage of OPH (FLT3; 3rd of 3) differs
+BLANK card ending node voltage outputs
+C 500 .05 333.3359 333.3359 -572.6502 184.74924 184.74924 184.74924 -184.7492 -184.7492 -184.7492
+C 600 .06 -333.3373 -333.3373 572.64118 -184.7477 -184.7477 -184.7477 184.7477 184.7477 184.7477
+C 700 .07 333.33716 333.33716 -572.642 184.74784 184.74784 184.74784 -184.7478 -184.7478 -184.7478
+C 800 .08 -333.3372 -333.3372 572.64195 -184.7478 -184.7478 -184.7478 184.74783 184.74783 184.74783
+C 900 .09 333.33717 333.33717 -572.642 184.74783 184.74783 184.74783 -184.7478 -184.7478 -184.7478
+C 1000 0.1 -333.3372 -333.3372 572.64196 -184.7478 -184.7478 -184.7478 184.74783 184.74783 184.74783
+C Variable max: 333.33717 333.33717 977.26344 230.90147 230.90147 230.90147 230.90147 230.90147 230.90147
+C Times of max: .09 .09 .097 .088 .088 .088 .098 .098 .098
+C Variable min: -333.3372 -333.3372 -977.2634 -230.9015 -230.9015 -230.9015 -230.9015 -230.9015 -230.9015
+C Times of min: .08 .08 .087 .098 .098 .098 .088 .088 .088
+C Note about preceding currents. The maximum of 230.90147 and minimum of
+C -230.9015 are nearly negatives of each other. This is a sign that the
+C steady state is really steady (equality in the 7th decimal digit). But
+C Orlando Hevia's exact solution of 230.9401 implies some error? Why? The
+C substantial dT (discretization error). As dT is decreased, the ATP
+C answer approaches Orlando Hevia's. Using dT = 2 microseconds, one can
+C produce exact agreement to all 7 printed digits.
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 6th of 7 subcases is a modification of the preceding 5th. Repeat
+C the preceding subcase, except for a different fault at the far end.
+C Termination will be as follows: phase "a" will be grounded whereas
+C phases "b" and "c" are left open. I.e., this is a normal single-line-
+C to-ground fault. Data comes from Orlando Hevia in Santa Fe, Argentina
+C Another change is this: since only a single phase carries current,
+C there is no shortage of space in the output vector. So, add a 4th
+C alternative: MODEL Z0Z1Z2 with inductance in mHenries. About the
+C correct answer, Orlando Hevia wrote a FORTRAN program to produce
+C the solution exactly, in closed form. This produced the following
+C results: POLAR Magnitude Degrees
+C IA 120.0000 -53.1301
+C Using ATP simulation, we now will confirm the 120-amp peak current.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+POWER FREQUENCY 50.0 { Remove dependence on STARTUP value
+BEGIN PEAK VALUE SEARCH, 0.075, { Ignore 1st 3.75 cycles, until in steady state
+ .000100 .100 { dT is relatively large to speed simulation. Only 1K steps
+ 1 -1 1 0 1 -1
+ 5 5 20 20 100 100
+$UNITS, 50.0, 0.0 { Begin inductance data in ohms at XOPT = 50 Hz
+C 1st of 4 line sections follows. SEQ at sending end indicates sequence data:
+51SEQA MODEL Z0Z1Z2 10.5 14.00 { Ro and Xo, both in ohms
+52GENB OPEN1 3.0 4.00 { R1 and X1, both in ohms
+53GENC OPEN2 1.5 2.00 { R2 and X2, both in ohms
+$UNITS, 0.0, 0.0 { Return to inductance data in mHenry; XOPT = 0
+C 3x3 phase-domain [R] in ohms and [L] in mHenries follow. For each row I, L(I,J) is below R(I,J). w = 3.14159265E+02 rad/sec.
+C 5.0000000000 2.1726497308 3.3273502692
+C 21.2206590789 13.0496847320 10.2930402549
+C 3.3273502692 5.0000000000 2.1726497308
+C 10.2930402549 21.2206590789 13.0496847320
+C 2.1726497308 3.3273502692 5.0000000000
+C 13.0496847320 10.2930402549 21.2206590789
+C The present comments are diagnostic output from use of MODEL Z0Z1Z2. Such
+C output always will be found in the .DBG file. From it, produce the following
+C equivalent representation of [R] in ohms and [L] in mHenries:
+C 2nd of 3 line sections follows. PHS at sending end indicates phase domain:
+51PHSA MODEL [R][L]
+52GENB OPEN3
+53GENC OPEN4
+ 5.000000000 2.172649731 3.327350269 { R(1,1), R(1,2), and R(1,3) in ohms
+ 21.22065908 13.04968473 10.29304025 { L(1,1), L(1,2), and L(1,3) in mHenries
+ 3.327350269 5.000000000 2.172649731 { Row 2 of [R]
+ 10.29304025 21.22065908 13.04968473 { Row 2 of [L]
+ 2.172649731 3.327350269 5.000000000 { Row 3 of [R]
+ 13.04968473 10.29304025 21.22065908 { Row 3 of [L]
+C Finally, data for 3rd of 3 line sections comes from Orlando. See preceding
+C subcase for comments about it. Z1 and Z2 differ while the sum is fixed.
+C So, the fault current will be the same, but not the fault voltage, note.
+51OPHA MODEL [R][L]
+52GENB OPEN5
+53GENC OPEN6
+ 5.0000000 -3.0235027 8.5235027
+ 21.2206591 11.8091947 11.5335303
+ 8.5235027 5.0000000 -3.0235027
+ 11.5335303 21.2206591 11.8091947
+ -3.0235027 8.5235027 5.0000000
+ 11.8091947 11.5335303 21.2206591
+C 4th of 4 line sections follows. MH at sending end indicates L in mHenries.
+C This 4th alternative is the same as the first except X in ohms has been
+C converted to L in mHenries by multiplying by 10 / Pi = 3.18309886184 This
+C gives Lo, L1, L2 = 44.5633840657 12.7323954474 6.36619772368
+$VINTAGE, 1, { Switch to wide format, with R and L read as 2E16.0
+C 3456789012345678901234567890123456789012345678901234567890
+C RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLL
+51MHA MODEL Z0Z1Z2 10.5 44.5633840657 { Ro in ohms and Lo in mH
+52GENB OPEN7 3.0 12.7323954474 { R1 in ohms and L1 in mH
+53GENC OPEN8 1.5 6.36619772368 { R2 in ohms and L2 in mH
+$VINTAGE, 0, { Done with wide format; return to old (narrow) format
+BLANK card ending branches
+C Following switches measure line currents in the 3 lines. Since phase "a"
+C is the only one connected, ignore switches for phases "b" and "c":
+ GENA SEQA MEASURING 1
+ GENA PHSA MEASURING 1
+ GENA OPHA MEASURING 1
+ GENA MHA MEASURING 1
+BLANK card ending switches
+14GENA 1000. 50. -0.00 { Balanced, 3-phase excitation that
+14GENB 1000. 50. -120. { is _not_ present during the steady
+14GENC 1000. 50. -240. { state. There is no phasor solution.
+BLANK card follows the last source card
+C OPEN1 OPEN3 OPEN5 OPEN7 { Output fault voltages (unfaulted phase b, anyway)
+C Note. Activate the preceding comment card to demonstrate that the solution
+C of the OPH circuit really is different from the other 3. I.e., the voltage
+C at OPEN5 will differ from the voltages at OPEN1, OPEN3, and OPEN7.
+C The fault currents are identical, but fault voltages will differ. This is
+C because the sum of Z1 and Z2 agrees, but neither Z1 nor Z2 does.
+C Next 4 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GENA GENA GENA GENA
+C SEQA PHSA OPHA MHA
+C 0 0.0 0.0 0.0 0.0 0.0
+C 1 .1E-3 2.32761034 2.32761034 2.32761033 2.32761034
+C 2 .2E-3 6.92518039 6.92518039 6.92518039 6.92518039
+C 3 .3E-3 11.4064981 11.4064981 11.4064981 11.4064981
+BLANK card ending node voltage outputs
+C 600 .06 71.992366 71.992366 71.9923659 71.992366
+C 700 .07 -71.992425 -71.992425 -71.992425 -71.992425
+C 800 .08 71.9924194 71.9924194 71.9924193 71.9924194
+C 900 .09 -71.99242 -71.99242 -71.99242 -71.99242
+C 1000 0.1 71.9924199 71.9924199 71.9924198 71.9924199
+C Variable maxima: 119.979925 119.979925 119.979925 119.979925
+C Times of maxima: .083 .083 .083 .083
+C Variable minima: -119.97993 -119.97993 -119.97993 -119.97993
+C Times of minima: .093 .093 .093 .093
+C Note about preceding extema. The maximum of 119.979925 and minimum of
+C -119.97993 are nearly negatives of each other. This is a sign that the
+C steady state is really steady (equality in the 8th decimal digit). But
+C Orlando Hevia's exact solution of 120.0000 indicates some error. Why?
+C The substantial dT (discretization error). As dT is decreased, the ATP
+C answer approaches Orlando Hevia's. For all dT, all 4 maxima agree. Thus
+C only a single value need be shown, as a function time-step size dT:
+C 100 usec ===> 119.979925
+C 50 usec ===> 119.998403
+C 20 usec ===> 119.999337
+C 10 usec ===> 119.999920
+C 5 usec ===> 119.999967
+C 2 usec ===> 119.999997
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 7th of 7 subcases is the same as the 5th except that the sources have
+C been activated during the steady state. This subcase has a phasor
+C solution --- now possible as this subcase is added on 5 August 2008.
+C Note that the final time steps of the two subcases are identical.
+C BEGIN PEAK VALUE SEARCH has been removed since there no longer is any
+C need for allowing the solution to "settle" into the steady-state. In
+C place of 5 cycles, simulate just 2 --- plenty to demonstrate sinusoidal
+C signals (see addition of 2 plot cards after CALCOMP PLOT).
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .000100 .040 { dT is relatively large to speed simulation. Only 400 steps
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100
+$UNITS, 50.0, 0.0 { Begin inductance data in ohms at XOPT = 50 Hz
+C 1st of 3 line sections follows. SEQ at sending end indicates sequence data:
+51GENA OPEN1 MODEL Z0Z1Z2 10.5 14.00 { Ro and Xo, both in ohms
+52SEQB FLT1 3.0 4.00 { R1 and X1, both in ohms
+53SEQC FLT1 1.5 2.00 { R2 and X2, both in ohms
+$UNITS, 0.0, 0.0 { Return to inductance data in mHenry; XOPT = 0
+51GENA OPEN2 MODEL [R][L]
+52PHSB FLT2
+53PHSC FLT2
+ 5.000000000 2.172649731 3.327350269 { R(1,1), R(1,2), and R(1,3) in ohms
+ 21.22065908 13.04968473 10.29304025 { L(1,1), L(1,2), and L(1,3) in mHenries
+ 3.327350269 5.000000000 2.172649731 { Row 2 of [R]
+ 10.29304025 21.22065908 13.04968473 { Row 2 of [L]
+ 2.172649731 3.327350269 5.000000000 { Row 3 of [R]
+ 13.04968473 10.29304025 21.22065908 { Row 3 of [L]
+51GENA OPEN3 MODEL [R][L]
+52OPHB FLT3
+53OPHC FLT3
+ 5.0000000 -3.0235027 8.5235027
+ 21.2206591 11.8091947 11.5335303
+ 8.5235027 5.0000000 -3.0235027
+ 11.5335303 21.2206591 11.8091947
+ -3.0235027 8.5235027 5.0000000
+ 11.8091947 11.5335303 21.2206591
+BLANK card ending branches
+ GENB SEQB MEASURING 1
+ GENB PHSB MEASURING 1
+ GENB OPHB MEASURING 1
+ GENC SEQC MEASURING 1
+ GENC PHSC MEASURING 1
+ GENC OPHC MEASURING 1
+BLANK card ending switches
+14GENA 1000. 50. -0.00 -1.
+14GENB 1000. 50. -120. -1.
+14GENC 1000. 50. -240. -1.
+BLANK card follows the last source card
+ FLT1 FLT2 FLT3 { Show that the fault voltage of OPH (FLT3; 3rd of 3) differs
+C Column headings for the 9 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time FLT1 FLT2 FLT3 GENB GENB GENB GENC GENC GENC
+C SEQB PHSB OPHB SEQC PHSC OPHC
+C *** Phasor I(0) = -1.8475209E+02 Switch "GENB " to "SEQB " closed in the steady-state.
+C *** Phasor I(0) = -1.8475209E+02 Switch "GENB " to "PHSB " closed in the steady-state.
+C *** Phasor I(0) = -1.8475209E+02 Switch "GENB " to "OPHB " closed in the steady-state.
+C *** Phasor I(0) = 1.8475209E+02 Switch "GENC " to "SEQC " closed in the steady-state.
+C *** Phasor I(0) = 1.8475209E+02 Switch "GENC " to "PHSC " closed in the steady-state.
+C *** Phasor I(0) = 1.8475209E+02 Switch "GENC " to "OPHC " closed in the steady-state.
+C 0 0.0 -333.3333 -333.3333 572.66667 -184.7521 -184.7521 -184.7521 184.75209 184.75209 184.75209
+C 1 .1E-3 -333.1685 -333.1685 547.50887 -180.3089 -180.3089 -180.3089 180.30888 180.30888 180.30888
+C 2 .2E-3 -332.6749 -332.6749 521.81078 -175.6877 -175.6877 -175.6877 175.68774 175.68774 175.68774
+C 3 .3E-3 -331.853 -331.853 495.59776 -170.8932 -170.8932 -170.8932 170.89322 170.89322 170.89322
+BLANK card ending node voltage outputs
+C 400 .04 -333.3372 -333.3372 572.64196 -184.7478 -184.7478 -184.7478 184.74783 184.74783 184.74783
+C Variable maxima : 333.33754 333.33754 977.26389 230.90147 230.90147 230.90147 230.90154 230.90153 230.90153
+C Times of maxima : .01 .01 .017 .028 .028 .028 .018 .018 .018
+C Variable minima : -333.3372 -333.3372 -977.2634 -230.9015 -230.9015 -230.9015 -230.9015 -230.9015 -230.9015
+C Times of minima : .04 .04 .027 .018 .018 .018 .028 .028 .028
+ CALCOMP PLOT { Display some waveforms to show that all is smooth & sinusoidal
+ 144 4. 0.0 40.-1.E31.E3FLT1 FLT2 FLT3
+ 194 4. 0.0 40.-250.250.GENB SEQB GENC PHSC
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+BLANK
+$EOF
+
+
+ In order that it not be lost, let's append Orlando Hevia's FORTRAN
+program. This confirms the preceding 5th and 6th subcases as well as
+other fault types not illustrated by preceding ATP data:
+ COMPLEX A,A2,Z0,Z1,Z2,AIR,AIS,AIT,E,J
+ PI=4.0*ATAN(1.0)
+ A= CMPLX(-0.5,SQRT(3.0)/2.0)
+ A2=CMPLX(-0.5,-SQRT(3.0)/2.0)
+ J=CSQRT(CMPLX(-1.0,0.0))
+ Z0=CMPLX(10.5,14.0)
+ Z1=CMPLX(3.0,4.0)
+ Z2=CMPLX(1.5,2.0)
+ E=CMPLX(1000.0,0.0)
+ AIS= -J*SQRT(3.0)*E*(((1.0,0.0)+A2)*Z2+Z0)/
+ 1 (Z1*Z2+Z2*Z0+Z0*Z1)
+ AIT= J*SQRT(3.0)*E*(((1.0,0.0)+A )*Z2+Z0)/
+ 1 (Z1*Z2+Z2*Z0+Z0*Z1)
+ AIR=AIS+AIT
+ AS=CABS(AIS)
+ AT=CABS(AIT)
+ AR=CABS(AIR)
+ FS=ATAN2(AIMAG(AIS),REAL(AIS))*180.0/PI
+ FT=ATAN2(AIMAG(AIT),REAL(AIT))*180.0/PI
+ FR=ATAN2(AIMAG(AIR),REAL(AIR))*180.0/PI
+C WRITE(*,*)Z0
+C WRITE(*,*)Z1
+C WRITE(*,*)Z2
+C WRITE(*,*)A,A2,J
+ WRITE(*,*)'PHASE-PHASE-GROUND FAULT'
+100 FORMAT('IB ',2F12.4)
+101 FORMAT('IC ',2F12.4)
+102 FORMAT('IRES ',2F12.4)
+ WRITE(*,*)'RECTANGULAR'
+ WRITE(*,100)AIS
+ WRITE(*,101)AIT
+ WRITE(*,102)AIR
+ WRITE(*,*)'POLAR'
+ WRITE(*,100)AS,FS
+ WRITE(*,101)AT,FT
+ WRITE(*,102)AR,FR
+C
+ AIS= -J*SQRT(3.0)*E/(Z1+Z2)
+ AIT= J*SQRT(3.0)*E/(Z1+Z2)
+ AIR=AIS+AIT
+ AS=CABS(AIS)
+ AR=CABS(AIR)
+ AT=CABS(AIT)
+ FS=ATAN2(AIMAG(AIS),REAL(AIS))*180.0/PI
+ FT=ATAN2(AIMAG(AIT),REAL(AIT))*180.0/PI
+ FR=ATAN2(AIMAG(AIR),REAL(AIR))*180.0/PI
+ WRITE(*,*)' '
+ WRITE(*,*)'PHASE-PHASE FAULT'
+ WRITE(*,*)'RECTANGULAR'
+ WRITE(*,100)AIS
+ WRITE(*,101)AIT
+ WRITE(*,102)AIR
+ WRITE(*,*)'POLAR'
+ WRITE(*,100)AS,FS
+ WRITE(*,101)AT,FT
+ WRITE(*,102)AR,FR
+C
+ AIR= E/Z1
+ AR=CABS(AIR)
+ FR=ATAN2(AIMAG(AIR),REAL(AIR))*180.0/PI
+C
+ WRITE(*,*)' '
+ WRITE(*,*)'PHASE-PHASE-PHASE-GROUND FAULT'
+ WRITE(*,*)'RECTANGULAR'
+ WRITE(*,202)AIR
+ WRITE(*,*)'POLAR'
+ WRITE(*,202)AR,FR
+202 FORMAT('IA ',2F12.4)
+C
+ AIR=3.0*E/(Z0+Z1+Z2)
+ AR=CABS(AIR)
+ FR=ATAN2(AIMAG(AIR),REAL(AIR))*180.0/PI
+C
+ WRITE(*,*)' '
+ WRITE(*,*)'PHASE-GROUND FAULT'
+ WRITE(*,*)'RECTANGULAR'
+ WRITE(*,302)AIR
+302 FORMAT('IA ',2F12.4)
+ WRITE(*,*)'POLAR'
+ WRITE(*,302)AR,FR
+ STOP
+ END
+
+Output, as produced using GNU FORTRAN compilation, linking, and execution,
+is as follows:
+
+ PHASE-PHASE-GROUND FAULT
+ RECTANGULAR
+IB -196.3879 -114.6822
+IC 165.0836 156.4214
+IRES -31.3043 41.7391
+ POLAR
+IB 227.4208 -149.7169
+IC 227.4208 43.4567
+IRES 52.1739 126.8699
+
+ PHASE-PHASE FAULT
+ RECTANGULAR
+IB -184.7521 -138.5641
+IC 184.7521 138.5641
+IRES 0.0000 0.0000
+ POLAR
+IB 230.9401 -143.1301
+IC 230.9401 36.8699
+IRES 0.0000 36.8699
+
+ PHASE-PHASE-PHASE-GROUND FAULT
+ RECTANGULAR
+IA 120.0000 -160.0000
+ POLAR
+IA 200.0000 -53.1301
+
+ PHASE-GROUND FAULT
+ RECTANGULAR
+IA 72.0000 -96.0000
+ POLAR
+IA 120.0000 -53.1301
diff --git a/benchmarks/dcn23.dat b/benchmarks/dcn23.dat
new file mode 100644
index 0000000..756fd44
--- /dev/null
+++ b/benchmarks/dcn23.dat
@@ -0,0 +1,484 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-23
+C Illustrate modeling of Type-51,52 elements to model unsymmetric series
+C connection of [R] and [L] as described in the October, 1997, newsletter
+C Begin with uncoupled branches of 1 ohm resistance and just 2 phases (no
+C Type-53). The answer is obvious by inspection: the sinusoidal source
+C voltage is exactly split in half. Very low frequency and small time
+C step means that this varies very slowly --- in the 7th decimal place.
+ .00001 .00005 { Note just 5 very small time steps T-max = 5 * DELTAT
+ 1 -1 1 0
+ SENDA RECA 1.0 1
+ SENDB RECB SENDA RECA 1
+51RECA MODEL [R][L] { Note special request in cols. 15-26
+52RECB { Cols. 27-44 of preceding card is blank
+ 1.0 0.0
+ 0.0 0.0
+ 0.0 1.0
+ 0.0 0.0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.001 0.0 { 1st of 2 sources. Note balanced,
+14SENDB 2.0 0.001 -120. { three-phase, sinusoidal excitation
+BLANK card follows the last source card
+ SENDA RECA SENDB RECB
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 2nd of 15. Identical to preceding except that more compact alternative
+C for 2-phase (Type-51,52 with no 53) is illustrated. Nonblank col 27-44
+C distinguishes this case, which has no following, separate cards for the
+C [R] and [L] matrices.
+ .00001 .00005
+ 1 -1 1 0
+ SENDA RECA 1.0 1
+ SENDB RECB SENDA RECA 1
+C 789012345678901234 890123456789012
+51RECA MODEL [R][L] 1.0 0.0 0.0 0.0
+52RECB 0.0 0.0 1.0 0.0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.001 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 0.001 -120. { three-phase, sinusoidal excitation
+BLANK card follows the last source card
+ SENDA RECA SENDB RECB
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 3rd of 15. Identical to 1st except that here the Type-51,52 branch is
+C inputted before rather than after the two series R-L-C branches. Also,
+C current output using column-80 punches is illustrated. This replaces
+C the current output of the Type-0 branches in series
+ .00001 .00005
+ 1 -1 1 0
+51RECA MODEL [R][L] 1
+52RECB 1
+ 1.0 0.0
+ 0.0 0.0
+ 0.0 1.0
+ 0.0 0.0
+ SENDA RECA 1.0 0
+ SENDB RECB SENDA RECA 0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.001 0.0 { 1st of 2 sources. Note balanced,
+14SENDB 2.0 0.001 -120. { three-phase, sinusoidal excitation
+BLANK card follows the last source card
+ SENDA RECA SENDB RECB
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 4th of 15 subcases progresses from preceding 2-phase to 3-phase. Begin
+C with special Z0Z1Z2 model that assumes decoupled symmetrical component
+C impedances Zo for the zero sequence, Z1 for the positive sequence,
+C and finally Z2 for the negative sequence. Otherwise, the problem is
+C the same: 5 very small steps of uncoupled, resistive voltage dividers.
+C About current outputs, this subcases introduces selective use of col.
+C 80 punches. Note phase C output of the series R-L-C is missing, and
+C that this is supplied by the punch on the Type-53 card. Switching the
+C zero and the 1 of these two phase-C cards does not change the numbers
+C (it only changes the heading names). That was for the 3rd of 3. One
+C can change the 2nd (phase B) in comparable fashion without changing
+C numbers of the time-step loop output. This illustrates selective
+C branch current output.
+C diagnostic 0 0 9 9 9 9
+ .00001 .00005
+ 1 -1 1 0
+ SENDA ENDA 1.0 1
+ SENDB ENDB SENDA ENDA 1
+ SENDC ENDC SENDA ENDA 0
+51ENDA MODEL Z0Z1Z2 1.0 { Ro, Lo right-adjusted in cols. 32 & 44
+52ENDB 1.0 { R1 and L1 .... }
+53ENDC 1.0 { R2 and L2 .... } 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.001 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 0.001 -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 0.001 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA ENDA SENDB ENDB SENDC ENDC
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 5th of 15. Identical to 1st except that here the Type-51,52,53 branch
+C is inputted before rather than after the three series R-L-C branches.
+ .00001 .00005
+ 1 -1 1 0
+51ENDA MODEL Z0Z1Z2 1.0
+52ENDB 1.0
+53ENDC 1.0
+ SENDA ENDA 1.0 0
+ SENDB ENDB SENDA ENDA 0
+ SENDC ENDC SENDA ENDA 0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.001 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 0.001 -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 0.001 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 6th of 15. Identical to case before preceding subcase except that here
+C MODEL [R][L] is used in place of MODEL Z0Z1Z2 for the Type-51,52,53.
+C Also, column-80 requests for branch current output have been added.
+ .00001 .00005
+ 1 -1 1 0
+ SENDA RECA 1.0 0
+ SENDB RECB SENDA RECA 0
+ SENDC RECC SENDA RECA 0
+51RECA MODEL [R][L] { Cols. 27-44 of this card is blank } 1
+52RECB { This is signal for separate, later } 1
+53RECC { matrices [R] and [L]. } 1
+ 1.0 0.0 0.0 { R(1,1), R(1,2), R(1,3)
+ 0.0 0.0 0.0 { L(1,1), L(1,2), L(1,3)
+ 0.0 1.0 0.0 { Etc. row 2
+ 0.0 0.0 0.0
+ 0.0 0.0 1.0 { Etc. row 3
+ 0.0 0.0 0.0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.001 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 0.001 -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 0.001 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 7th of 15. Identical to 1st except that here the Type-51,52,53 branch
+C is inputted before rather than after the three series R-L-C branches.
+ .00001 .00005
+ 1 -1 1 0
+51RECA MODEL [R][L]
+52RECB
+53RECC
+ 1.0 0.0 0.0
+ 0.0 0.0 0.0
+ 0.0 1.0 0.0
+ 0.0 0.0 0.0
+ 0.0 0.0 1.0
+ 0.0 0.0 0.0
+ SENDA RECA 1.0 0
+ SENDB RECB SENDA RECA 0
+ SENDC RECC SENDA RECA 0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.001 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 0.001 -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 0.001 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 8th of 15. Combination of preceding subcases involves Type-51,52,53
+C branch specified with both MODEL [R][L] and MODEL Z0Z1Z2. This is
+C a double-size problem; each half has the same solution as previously.
+ .00001 .00005
+ 1 -1 1 0
+ SENDA ENDA 1.0 0
+ SENDB ENDB SENDA ENDA 0
+ SENDC ENDC SENDA ENDA 0
+51ENDA MODEL Z0Z1Z2 1.0
+52ENDB 1.0
+53ENDC 1.0
+ SENDA RECA 1.0 0
+ SENDB RECB SENDA RECA 0
+ SENDC RECC SENDA RECA 0
+51RECA MODEL [R][L]
+52RECB
+53RECC
+ 1.0 0.0 0.0
+ 0.0 0.0 0.0
+ 0.0 1.0 0.0
+ 0.0 0.0 0.0
+ 0.0 0.0 1.0
+ 0.0 0.0 0.0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.001 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 0.001 -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 0.001 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 9th of 15. Mix new Type-51,52,53 with the old. With diagonal matrices,
+C the data can be represented either way, of course (it is symmetric).
+C Z1 = Zo (actually, Z1 = Z0) so the answer can be shown to be
+C identical to that using Type-51,52,53 modeling with sequence impedances.
+C In fact, there are 2 identical, uncoupled networks driven from the same
+C balanced 3-phase sources at SENDA, SENDB, and SENDC. Another first:
+C switch from resistance to inductance.
+ .0001 .0005
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+51ENDA MODEL Z0Z1Z2 0.0 1.0 { Sequence Ro, Lo in [ohms, mHenry]
+52ENDB 0.0 1.0 { Sequence R1, L1 in [ohms, mHenry]
+53ENDC 0.0 1.0 { Note Z2 = Z1 so [Z] is symmetric
+ SENDA ENDA 0.0 1.0 0
+ SENDB ENDB SENDA ENDA 0
+ SENDC ENDC SENDA ENDA 0
+C Next, build a copy of this, but using the old (Type-51,52,53) modeling:
+51RECA 0.0 1.0 { Ro, Lo in [ohms, mHenry]
+52RECB 0.0 1.0 { Ro, Lo in [ohms, mHenry]
+53RECC { Blank 27-44 on this 3rd card ==> sequence data
+ SENDA RECA 0.0 1.0 0
+ SENDB RECB SENDA RECA 0
+ SENDC RECC SENDA RECA 0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 50. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 50. -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 50. 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC
+BLANK card ending node voltage outputs
+ CALCOMP PLOT
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C diagnostic 0 0 9 9 9 9 0 9 0 0 0 9 9 9 9 9 9 9 9
+C 10th of 15 subcases. Generalize preceding by changing from R only to
+C both R and L. Also, the data order has been shuffled, to illustrate
+C that the answer is unaffected.
+ .0001 .0005
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+C 22 Feb 2000, switch the following 3 data cards from narrow to wide format to
+C illustrate that this works following correction a few days earlier:
+C 51RECA 0.3 1.0 { Ro, Lo in [ohms, mHenry]
+C 52RECB 0.3 1.0 { R1, L1 in [ohms, mHenry]
+C 53RECC
+$VINTAGE, 1,
+C 34567890123456789012345678901234567890123456789012345678
+51RECA 0.3 1.0 { Ro, Lo in [ohms, mHenry]
+52RECB 0.3 1.0 { R1, L1 in [ohms, mHenry]
+ 0.0 0.0 { Unused cell 2,2
+53RECC 0.0 0.0 { Unused cell 3,1
+ 0.0 0.0 { Unused cell 3,2
+ 0.0 0.0 { Unused cell 3,3
+$VINTAGE, 0, { Done with wide format for 51, 52, 53, so return to narrow
+51ENDA MODEL Z0Z1Z2 0.3 1.0 { Sequence Ro, Lo in [ohms, mHenry]
+52ENDB 0.3 1.0 { Sequence R1, L1 in [ohms, mHenry]
+53ENDC 0.3 1.0 { Note Z2 = Z1 so [Z] is symmetric
+ SENDA ENDA 0.3 1.0 0
+ SENDB ENDB SENDA ENDA 0
+ SENDC ENDC SENDA ENDA 0
+C Next, build a copy of this, but using the old (Type-51,52,53) modeling:
+ SENDA RECA 0.3 1.0 0
+ SENDB RECB SENDA RECA 0
+ SENDC RECC SENDA RECA 0
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 50. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 50. -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 50. 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC
+BLANK card ending node voltage outputs
+ CALCOMP PLOT
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 11th of 15 subcases. Generalize preceding by adding inter-phase coupling
+C for the first time. The negative-sequence impedance still is equal to
+C the positive, so both old and new Type-51,52,53 branches can be used.
+C But Zo not equal to Z1 means that phase-domain matrices no longer
+C are diagonal.
+ .0001 .0005
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+ SENDA ENDA 0.3 1.0 0
+ SENDB ENDB SENDA ENDA 0
+ SENDC ENDC SENDA ENDA 0
+51ENDA MODEL Z0Z1Z2 0.3 1.0 { Sequence Ro, Lo in [ohms, mHenry]
+52ENDB 0.1 0.5 { Sequence R1, L1 in [ohms, mHenry]
+53ENDC 0.1 0.5 { Note Z2 = Z1 so [Z] is symmetric
+C Next, build a copy of this, but using the old (Type-51,52,53) modeling:
+ SENDA RECA 0.3 1.0 0
+ SENDB RECB SENDA RECA 0
+ SENDC RECC SENDA RECA 0
+51RECA 0.3 1.0 { Ro, Lo in [ohms, mHenry]
+52RECB 0.1 0.5 { Ro, Lo in [ohms, mHenry]
+53RECC
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 50. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 50. -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 50. 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB SENDC RECC ENDC
+BLANK card ending node voltage outputs
+ CALCOMP PLOT
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 12th of 15 subcases. Generalize preceding by making the negative-sequenc
+C impedance different from the positive, so the old Type-51,52,53 branch
+C no longer can be used. Instead, both MODEL [R][L] and MODEL Z0Z1Z2
+C are illustrated. There are two identical halves with two identical
+C solutions. As for the phase-domain matrix data, it was copied from
+C near the end of DCN22.DBG with enough precision to make the effect of
+C truncation unobservable in the printed output.
+ .0001 .0005
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+ SENDA ENDA 0.3 1.0 1
+ SENDB ENDB SENDA ENDA 1
+ SENDC ENDC SENDA ENDA 1
+ ENDA ENDB 1.E7
+ ENDB ENDC ENDA ENDB
+ ENDC ENDA ENDA ENDB
+51ENDA MODEL Z0Z1Z2 0.3 1.0 { Sequence Ro, Lo in [ohms, mHenry]
+52ENDB 0.1 0.5 { Sequence R1, L1 in [ohms, mHenry]
+53ENDC .101 0.8
+ SENDA RECA 0.3 1.0 1
+ SENDB RECB SENDA RECA 1
+ SENDC RECC SENDA RECA 1
+ RECA RECB 1.E7
+ RECB RECC RECA RECB
+ RECC RECA RECA RECB
+51RECA MODEL [R][L]
+52RECB MODEL [R][L]
+53RECC MODEL [R][L]
+$DISABLE
+ .1670000000 .0665866025 .0664133975 { R(1,1), R(1,2), R(1,3)
+ .7666666667-.1720084679 .4053418013 { L(1,1), L(1,2), L(1,3)
+ .0664133975 .1670000000 .0665866025 { Row 2 of [R]
+ .4053418013 .7666666667-.1720084679 { Row 2 of [L]
+ .0665866025 .0664133975 .1670000000 { Row 3 of [R]
+-.1720084679 .4053418013 .7666666667 { Row 3 of [L]
+$ENABLE
+C Preceding disabled data was from years past. Correct this 2 April 2002.
+C The following is copied from DCN22c (the compensation alternative):
+$UNITS, 60.0, 60.0,
+C USERNL begins with Lo, L1, L2 [H] = 1.00000E-03 5.00000E-04 8.00000E-04
+C Converted to Xo, X1, X2 = 3.76991E-01 1.88496E-01 3.01593E-01
+C 3x3 phase-domain impedance matrix in ohms follow. For each row I, X(I,J) is below R(I,J). w = 3.769911E+02 rad/sec.
+ .1670000000 .0991483886 .0338516114 { R(1,1), R(1,2), R(1,3) in ohms
+ .2890265241 .0436936220 .0442709723 { X(1,1), X(1,2), X(1,3) in ohms
+ .0338516114 .1670000000 .0991483886 { Row 2 of [R]
+ .0442709723 .2890265241 .0436936220 { Row 2 of [X]
+ .0991483886 .0338516114 .1670000000 { Row 3 of [R]
+ .0436936220 .0442709723 .2890265241 { Row 3 of [X]
+$UNITS, -1.0, -1.0, { Done with ohms and micromhos at 60 Hz, so restore original
+C Whereas the preceding could not be used in DCN22c, it can be used here
+C because the conversion is not delayed until the dT loop. For Type-51,
+C 52, 53 branches, the conversion is perfomed at data-input time.
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 50. 0.0 { 1st of 3 sources. Note balanced,
+14SENDB 2.0 50. -120. { three-phase, sinusoidal excitation
+14SENDC 2.0 50. 120. { with no phasor solution.
+BLANK card follows the last source card
+ SENDA RECA ENDA { SENDB RECB ENDB SENDC RECC ENDC
+BLANK card ending node voltage outputs
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C diagnostic 0 0 9 9 9 9 0 9 9 9
+C 13th of 15. 1st use of USE AR for [A] and [R] input rather than
+C the original [R] and [L]. The 2 phases in fact are uncoupled for
+C simplicity. Series L of each phase divide the voltage. Series R-L-C
+C is 1 mHenry, and A(1,1) = A(2,2) correspond to the inverse of this.
+C So, L(1,1) = L(2,2) = 1.E-3 ===> A(1,1) = A(2,2) = 1000. This is
+C entered instead of resistance. Instead of inductance, enter R = 0
+C (the [R] matrix is zero; no resistance in this problem)
+ .0001 .0005
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+ USE AR
+51RECA MODEL [R][L]
+52RECB
+ 1000. 0.0
+ 0.0 0.0
+ 0.0 1000.
+ 0.0 0.0
+ USE RL
+ SENDA RECA 0.0 1.0 0
+ SENDB RECB SENDA RECA 1
+C Next, build a copy of this, but using the old (Type-51,52,53) modeling:
+ USE AR
+51ENDA 1000. 0.0
+52ENDB 0.0 0.0 1000. 0.0
+ USE RL
+ SENDA ENDA 0.0 1.0 0
+ SENDB ENDB SENDA ENDA 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.1 0.0 { 1st of 2 sources. Note balanced,
+14SENDB 2.0 0.1 -120. { three-phase, sinusoidal excitation
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB
+BLANK card ending node voltage outputs
+ CALCOMP PLOT
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 14th of 15. Like preceding, except resistance of 1 ohm is added to
+C each series, uncoupled inductance. There still is a voltage divider.
+C Another change is use of col-80 output for 2nd phase (Type-52).
+ .0001 .0005
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+ USE AR
+51RECA MODEL [R][L]
+52RECB 1
+ 1000. 0.0
+ 1.0 0.0
+ 0.0 1000.
+ 0.0 1.0
+ USE RL
+ SENDA RECA 1.0 1.0 0
+ SENDB RECB SENDA RECA 1
+C Next, build a copy of this, but using the old (Type-51,52,53) modeling:
+ USE AR
+51ENDA 1000. 1.0
+52ENDB 0.0 0.0 1000. 1.0
+ USE RL
+ SENDA ENDA 1.0 1.0 0
+ SENDB ENDB SENDA ENDA 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.1 0.0 { 1st of 2 sources. Note balanced,
+14SENDB 2.0 0.1 -120. { three-phase, sinusoidal excitation
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB
+BLANK card ending node voltage outputs
+ CALCOMP PLOT
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+C 15th of 15. Like preceding, except coupling is added to [R] and [L]
+C matrices. Both halves of problem still should have the same answer
+C (note matrices remain symmetric), although voltage division now
+C longer will be exactly half and half.
+ .0001 .0005
+ 1 1 1 0 1 -1
+ 5 5 20 20 100 100
+ USE AR
+51RECA MODEL [R][L]
+52RECB
+ 1000. 200.
+ 1.0 0.2
+ 200. 1000.
+ 0.2 1.0
+ USE RL
+ SENDA RECA 1.0 1.0 0
+ SENDB RECB SENDA RECA 1
+C Next, build a copy of this, but using the old (Type-51,52,53) modeling:
+ USE AR
+51ENDA 1000. 1.0
+52ENDB 200. 0.2 1000. 1.0
+ USE RL
+ SENDA ENDA 1.0 1.0 0
+ SENDB ENDB SENDA ENDA 1
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 2.0 0.1 0.0 { 1st of 2 sources. Note balanced,
+14SENDB 2.0 0.1 -120. { three-phase, sinusoidal excitation
+BLANK card follows the last source card
+ SENDA RECA ENDA SENDB RECB ENDB
+BLANK card ending node voltage outputs
+ CALCOMP PLOT
+BLANK termination to plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn24.dat b/benchmarks/dcn24.dat
new file mode 100644
index 0000000..188cd21
--- /dev/null
+++ b/benchmarks/dcn24.dat
@@ -0,0 +1,1359 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-24
+C A collection of 19 simple cases for testing the usage of distributed line
+C modeling. Most deal with constant-parameter (K. C. Lee) modeling. Several
+C frequency-dependent test cases can be found elsewhere, such as DC-31, 41,
+C 61, DCN4, DCN7, etc.
+C 1st of 19 subcases is a test of 1-phase constant-parameter line.
+C One switch is permanently closed. No transients. Plot of
+C receiving end voltage is sinusoid.
+C DIAGNOSTIC 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000100 .020 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ REC .001 { Near short at receiving end to ground } 3
+-1SEND REC 0.3 0.4 12.6 100. { 1-phase distributed line
+BLANK card ending branch cards
+ GEN SEND -1.0 1.0 { Permanently closed switch at sending end
+BLANK card ending switch cards
+14GEN 100. 60. { 60-Hz phasor solution } -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 5.992836086590E+01
+C GEN
+C SEND 100. 100. 1.1985672173179 1.9672525544427
+C 0.0 0.0 -1.559974114699 -52.4640241
+C Step Time REC REC SEND GEN REC
+C TERRA TERRA
+C 0 0.0 .001198266 .001198266 100. 100. 1.198266
+C 1 .1E-3 .0012585558 .0012585558 99.92894726 99.92894726 1.258555833
+ 1
+C 200 .02 .0019138946 .0019138946 30.90169944 30.90169944 1.913894577
+C Variable max : .0020173699 .0020173699 100. 100. 2.017369917
+C Times of max : .0025 .0025 0.0 0.0 .0025
+C Variable min : -.002017453 -.002017453 -99.9921044 -99.9921044 -2.01745286
+C Times of min : .0108 .0108 .0083 .0083 .0108
+ PRINTER PLOT
+ 194 4. 0.0 20. REC { Axis limits : (-2.017, 2.017)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 19 subcases involves use of trapped-charge source to initialize
+C an initially-disconnected single-phase line. Later, energize the
+C line by switch closure at 3 msec. The data was supplied by Dipl.
+C Ing. Bernd Stein of FGH (Mannheim, Germany) during April of 1986.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000100 .020 { Unlike 1st of 2 subcases, here XOPT = COPT = 0
+ 1 1 0 1 1 -1
+ 2 -1 5 5 20 20 { Switch to alternate on step 2
+ GEN SWITCH 39.8
+ SWITCH 1000.
+-1SEND REC .3055 5.819 .0121 138.
+BLANK card ending branch cards
+ SEND SWITCH .003 1.0 { Transient begins at 3 msec with closure
+BLANK card ending switch cards
+C 1 2 3 4 5 6 7 8
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+14GEN 100. 60. -1.0
+14SEND -1 -100. .001 { Trapped-charge source } 5432.
+C End multiple-frequency phasor solution data. The first source is a regular
+C 60-Hertz generator, whereas the second has f = 1/1000 Hz for trapped charge
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.998874616296E+00
+C Last gen: SEND -100. 100. -.17408297E-12 .10491662826E-5 .8704148513E-11
+C Last gen: 0.0 180.0 -.1049166283E-5 -90.0000095 -.5245831413E-4
+C Step Time REC SEND SWITCH GEN
+C 0 0.0 -100. -100. 99.97749233 100.
+C 1 .1E-3 -100. -100. 99.96299489 99.92894726
+C 2 .2E-3 -100. -100. 99.80645119 99.71589003
+ 1 { Request for the output of all four node voltages
+C 200 .02 138.2909745 45.09406184 45.09406184 30.90169944
+ 144 2. 0.0 20. SEND REC { Axis limits : (-2.510, 2.052)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 19 subcases to test a three-phase transposed constant-parameter
+C distributed line. Narrow format was used (also in the next sub-case)
+C initially. On May 28, 1998, Orlando Havia reported problem of a case
+C which included a transposed line with wide format. After making code
+C corrections in INDIST, we changed the current sub-case data from
+C "narrow format" to "wide format". Same results were obtained, of course.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000100 .020 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ RECA .001
+ RECB .001
+ RECC .001
+C -1SENDA RECA 0.3 0.4 12.6 100.
+C -2SENDB RECB .03 0.1 6.0 100.
+C -3SENDC RECC
+$VINTAGE, 1
+-1SENDA RECA 0.3 0.4 12.6 100.
+-2SENDB RECB .03 0.1 6.0 100.
+-3SENDC RECC
+$VINTAGE, 0
+BLANK card ending branch cards
+ GENA SENDA -1.0 1.0
+ GENB SENDB -1.0 1.0
+ GENC SENDC -1.0 1.0
+BLANK card ending switch cards
+14GENA 100. 1.0 -1.
+14GENB 100. 1.0 -1.
+14GENC 100. 1.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.997365737714E+02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C GENA SENDA 0.33315772E+01 -0.73376324E-01 0.33323851E+01
+C GENB SENDB 0.33315772E+01 -0.73376324E-01 0.33323851E+01
+C GENC SENDC 0.33315772E+01 -0.73376324E-01 0.33323851E+01
+C Last gen: GENC
+C Last gen: SENDC 100. 100. 3.3315771584762 3.3323850989622
+C Last gen: 0.0 0.0 -.0733763238755 -1.2617070
+C Step Time RECC RECB RECA SENDC SENDB SENDA
+C *** Phasor I(0) = 0.3331577E+01 Switch "GENA " to "SENDA " closed
+C *** Phasor I(0) = 0.3331577E+01 Switch "GENB " to "SENDB " closed
+C *** Phasor I(0) = 0.3331577E+01 Switch "GENC " to "SENDC " closed
+C 0 0.0 .003331577 .003331577 .003331577 100. 100. 100.
+C 1 .1E-3 .003331623 .003331623 .003331623 99.9999803 99.9999803 99.9999803
+ 1
+C 200 .02 .003314635 .003314635 .003314635 99.2114701 99.2114701 99.2114701
+C Variable max:.003332408 .003332408 .003332408 100. 100. 100.
+C Times of max : .0036 .0036 .0036 0.0 0.0 0.0
+C Variable min:.003314635 .003314635 .003314635 99.2114701 99.2114701 99.2114701
+C Times of min : .02 .02 .02 .02 .02 .02
+ PRINTER PLOT
+C 144 2. 0.0 20. RECA { Axis limits : (0.000, 3.332)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 19 subcases
+C Modified and simplied from BENCHMARK DCPR-13 to test the usage of
+C transposed distributed line and its reference branches
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 13.E-3 60.
+ 1 1 1 2 1 -1
+ 5 5 20 20
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+-1ASW1 A6 ASW1 A5
+-2BSW1 B6
+-3CSW1 C6
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+ 0A6 1.
+ 0B6 1.
+ 0C6 1.
+BLANK card ending branch cards
+BLANK card ending switch cards
+14ASW1 303. 60. 0.0 -1.
+14BSW1 303. 60. -120.0 -1.
+14CSW1 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 8.795928756794E+02
+C Node Source node voltage Injected source current Injected source power
+C name Rectangular Polar Rectangular Polar P and Q MVA and P.F.
+C ASW1 303. 303. 1.9352978562803 22.293386285746 293.19762522646 3377.4480222904
+C 0.0 0.0 -22.20922543208 -85.0198618 3364.6976529601 0.0868104
+ A5 B5 C5 A6 B6 C6
+C Step Time A5 B5 C5 A6 B6 C6
+C 0 0.0 .9654332167 -10.1517405 9.186307306 .9654332167 -10.1517405 9.186307306
+C 1 .1E-3 1.385353722 -10.3220076 8.9366539 1.385353722 -10.3220076 8.9366539
+C 2 .2E-3 1.803446283 -10.4789931 8.675546863 1.803446283 -10.4789931 8.675546863
+C 3 .3E-3 2.218965817 -10.6207468 8.401781028 2.218965817 -10.6207468 8.401781028
+BLANK card ending the specification of program outputs (node voltages, here)
+C 130 .013 -10.7903488 2.749051379 8.041297426 -10.7903488 2.749051379 8.041297426
+C Variable max: 11.19141912 11.20899525 9.186307306 11.19141912 11.20899525 9.186307306
+C Times of max: .0039 .0095 0.0 .0039 .0095 0.0
+C Variable min: -11.2139841 -11.1984112 -11.197694 -11.2139841 -11.1984112 -11.197694
+C Times of min: .0123 .0012 .0067 .0123 .0012 .0067
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 19 subcases to test the usage of untransposed constant-
+C parameter distributed line
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000100 .020 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ RECA .001
+ RECB .001
+ RECC .001
+$VINTAGE, 1
+-1SENDA RECA 3.01532E-01 6.91748E+02 1.19375E+05-1.38000E+02 1 3
+-2SENDB RECB 2.80361E-02 2.90916E+02 1.82804E+05-1.38000E+02 1 3
+-3SENDC RECC 2.80251E-02 2.76507E+02 1.81679E+05-1.38000E+02 1 3
+$VINTAGE, 0
+ 0.58094800 0.70710678 -0.40960438
+ 0.00000000 0.00000000 0.00000000
+ 0.57008669 0.00000000 0.81513711
+ 0.00000000 0.00000000 0.00000000
+ 0.58094800 -0.70710678 -0.40960438
+ 0.00000000 0.00000000 0.00000000
+BLANK card ending branch cards
+ GENA SENDA -1.0 1.0
+ GENB SENDB -1.0 1.0
+ GENC SENDC -1.0 1.0
+BLANK card ending switch cards
+14GENA 100. 1.0 -1.
+14GENB 100. 1.0 -1.
+14GENC 100. 1.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 3.552806493326E+02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA SENDA 2.42187574E+00 -3.00608892E-01 2.44046057E+00 -7.0755 1.21093787E+02 1.50304446E+01
+C GENB SENDB 2.26186151E+00 -2.55853363E-01 2.27628611E+00 -6.4537 1.13093076E+02 1.27926682E+01
+C GENC SENDC 2.42187574E+00 -3.00608892E-01 2.44046057E+00 -7.0755 1.21093787E+02 1.50304446E+01
+C First 9 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Step Time RECC RECB RECA SENDC SENDB SENDA GENA GENB GENC
+C *** Phasor I(0) = 2.4218757E+00 Switch "GENA " to "SENDA " closed in the steady-state.
+C *** Phasor I(0) = 2.2618615E+00 Switch "GENB " to "SENDB " closed in the steady-state.
+C *** Phasor I(0) = 2.4218757E+00 Switch "GENC " to "SENDC " closed in the steady-state.
+C 0 0.0 .002421876 .002261861 .002421876 100. 100. 100. 100. 100. 100.
+C 1 .1E-3 .002422064 .002262022 .002422064 99.9999803 99.9999803 99.9999803 99.9999803 99.9999803 99.9999803
+C 2 .2E-3 .002422252 .002262182 .002422252 99.999921 99.999921 99.999921 99.999921 99.999921 99.999921
+C 3 .3E-3 .002422439 .002262341 .002422439 99.9998223 99.9998223 99.9998223 99.9998223 99.9998223 99.9998223
+ 1 { Request for output of all node voltages
+C 200 .02 .00244052 .002276156 .00244052 99.2114701 99.2114701 99.2114701 99.2114701 99.2114701 99.2114701
+C Variable max : .002440525 .002276343 .002440525 100. 100. 100. 100. 100. 100.
+C Times of max : .0197 .018 .0197 0.0 0.0 0.0 0.0 0.0 0.0
+C Variable min : .002421876 .002261861 .002421876 99.2114701 99.2114701 99.2114701 99.2114701 99.2114701 99.2114701
+C Times of min : 0.0 0.0 0.0 .02 .02 .02 .02 .02 .02
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of 19 subcases to test the usage of untransposed distributed
+C line and its reference branches
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 500.E-6 60.
+ 1 1 1 2
+$VINTAGE, 1
+-1ASW1 A5 3.01532E-01 6.91748E+02 1.19375E+05 1.38000E+02 1 3
+-2BSW1 B5 2.80361E-02 2.90916E+02 1.82804E+05 1.38000E+02 1 3
+-3CSW1 C5 2.80251E-02 2.76507E+02 1.81679E+05 1.38000E+02 1 3
+$VINTAGE, 0
+C Note about preceding K.C. Lee branch cards. As punched by LINE CONSTANTS,
+C the length of 138 miles (4th number of each phase card) has an appended
+C minus sign. But as explained in the April, 2001, newsletter, this serves
+C no useful purpose. To illustrate that it no longer is necessary (following
+C branch data restructuring around 1997), the minus signs will be erased from
+C columns 63 here and in all following subcases. To see the original that
+C includes minus signs, see preceding subcase (unchanged). 14 December 2000
+ 0.58094800 0.70710678 -0.40960438
+ 0.00000000 0.00000000 0.00000000
+ 0.57008669 0.00000000 0.81513711
+ 0.00000000 0.00000000 0.00000000
+ 0.58094800 -0.70710678 -0.40960438
+ 0.00000000 0.00000000 0.00000000
+-1ASW1 A6 ASW1 A5
+-2BSW1 B6
+-3CSW1 C6
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+ 0A6 1.
+ 0B6 1.
+ 0C6 1.
+BLANK card ending branch cards
+BLANK card ending switch cards
+14ASW1 303. 60. 0.0 -1.
+14BSW1 303. 60. -120.0 -1.
+14CSW1 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 2.046556158911E+02
+C Node Source node voltage Injected source current Injected source power
+C name Rectangular Polar Rectangular Polar P and Q MVA and P.F.
+C ASW1 303. 303. .60039311915995 7.1926653847594 90.959557552733 1089.688805791
+C 0.0 0.0 -7.167563284658 -85.2117798 1085.8858376257 0.0834730
+ A5 B5 C5 A6 B6 C6
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Step Time A5 B5 C5 A6 B6 C6
+C 0 0.0 .3028039653 -3.45224148 3.184683842 .3028039653 -3.45224148 3.184683842
+C 1 .1E-3 .4433227265 -3.51422565 3.106709385 .4433227265 -3.51422565 3.106709385
+C 2 .2E-3 .5832573875 -3.57180736 3.024871794 .5832573875 -3.57180736 3.024871794
+C 3 .3E-3 .7223632078 -3.62431333 2.938735696 .7223632078 -3.62431333 2.938735696
+C 4 .4E-3 .8604425105 -3.67166896 2.848423493 .8604425105 -3.67166896 2.848423493
+C 5 .5E-3 .9972990773 -3.71380695 2.754063524 .9972990773 -3.71380695 2.754063524
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 19 subcases.
+C Illustration of usage of J. Marti's freq-depent line and its reference branches
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 300.E-6 60.
+ 1 1 1 2
+C PUNCHED CARD OUTPUT OF "JMARTI SETUP" WHICH BEGAN AT 14.32.51 09/14/82
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 100. 5000. 1 138. 1 3-2
+C 100. 60.00 1 138. 1 3
+C 100. .01 1 138. 1 9 10 3
+C
+-1ASW1 A5 2. -2 3 1
+ 18 0.47487144790587633736E+03
+ -0.117967342612603676E+01 -0.316671345021416945E+01 0.255662317832426673E+02
+ -0.601654631032706213E+02 -0.118825306534453652E+03 0.128169142098635430E+04
+ 0.589610442538186533E+04 0.292891488173549769E+05 0.115665757459954655E+06
+ 0.456394278488149546E+06 0.153681652821077613E+07 0.681848054466802243E+07
+ 0.155477562610202006E+08 0.231789897204889809E+08 0.143827766961221036E+08
+ 0.241524708800130989E+08 0.245049034784953832E+08 0.476808364145524129E+08
+ 0.321645453133055891E+00 0.897616891499021768E+00 0.165632367032913183E+01
+ 0.166669419493737986E+01 0.253073682990780913E+01 0.200014655383098283E+02
+ 0.124257951002701473E+03 0.657345842950598183E+03 0.278623017775457413E+04
+ 0.117145310573639467E+05 0.427410884649070877E+05 0.202553264108715757E+06
+ 0.968789502295299084E+06 0.296908522006270138E+07 0.737968316276072920E+07
+ 0.121009167337626640E+08 0.132891445947112725E+08 0.252097199908134253E+08
+ 14 0.86849922355034181931E-03
+ 0.580543547692016874E-01 0.269744993210885436E+00 0.358646519088149721E+00
+ 0.775351125410302933E+00 0.512138885239557462E+01 0.838265420474258915E+01
+ 0.700229782114550385E+02 0.393084113996385128E+03 0.138208543918962840E+04
+ 0.706160326497018531E+03 0.527246586822120662E+04 0.528343251309079615E+05
+ 0.178307801042203880E+08 -0.178914532139174500E+08
+ 0.228360173022402533E+02 0.102750699821169636E+03 0.139222638455845377E+03
+ 0.269608322018776320E+03 0.389220463867018722E+03 0.427793721751318500E+03
+ 0.132148883486994549E+04 0.277178340638843952E+04 0.449341296469570784E+04
+ 0.596603161966094024E+04 0.114714152641659587E+05 0.268314807408425590E+05
+ 0.204027813729699328E+05 0.204231841543429041E+05
+-2BSW1 B5 2. -2 3 1
+ 13 0.28580875773089406522E+03
+ 0.381761604345214016E+04 -0.269529222495194318E+04 0.445018224900628539E+03
+ 0.214658130219351907E+03 0.897325461203551775E+02 0.130480129629523390E+03
+ 0.683037485206990933E+02 0.746626715384045969E+02 0.133938729387751110E+04
+ 0.249954495902361043E+04 0.187764116219525090E+05 0.391031620802855759E+06
+ 0.562668431190421223E+07
+ 0.358668999787749571E+01 0.376679186833120605E+01 0.706439034439901437E+01
+ 0.109721634064781350E+02 0.140506334140286961E+02 0.234292596911152251E+02
+ 0.407686998675834982E+02 0.797598814775078289E+02 0.129106739969348078E+04
+ 0.242138030939135859E+04 0.182362646041542116E+05 0.379814243183306855E+06
+ 0.548808385606378759E+07
+ 13 0.74123751236187229426E-03
+ 0.192189595814863363E+02 0.210970481418782463E+01 0.383406546226866283E+02
+ 0.307999912886148377E+02 0.634013410317139090E+03 -0.253243195247046863E+03
+ 0.210540381301789816E+05 0.755533947306502050E+05 0.229576557459444489E+07
+ 0.607777584135737231E+13 -0.156620677810598129E+13 0.153143851607186420E+13
+ -0.604300997216751013E+13
+ 0.325736126030671755E+04 0.366694913707514260E+03 0.675727697588602189E+04
+ 0.516024976370228876E+04 0.249456113770459378E+05 0.115067772934717399E+06
+ 0.105205466546493019E+06 0.240930799961836921E+06 0.633276538663731131E+06
+ 0.975820481990592802E+06 0.976796302472583498E+06 0.974176721795814519E+06
+ 0.975150898517610403E+06
+-3CSW1 C5 2. -2 3 1
+ 13 0.27248404992352924125E+03
+ 0.928429573805075023E+03 0.205756155237142632E+03 0.538106630554037608E+03
+ 0.105199818376817531E+03 0.821382476778671116E+02 0.133356875032521778E+03
+ 0.654774478488469374E+02 0.612546121562179922E+02 0.905544916173387175E+02
+ 0.973244316091135204E+03 0.267481871266201051E+04 0.138566411938941123E+05
+ 0.646075558955914967E+06
+ 0.297277477955690506E+01 0.413177069940672514E+01 0.739410817322770197E+01
+ 0.103072536754267949E+02 0.135874091964585515E+02 0.234792992956042887E+02
+ 0.384075708508238121E+02 0.692539345057236435E+02 0.997101922255402791E+02
+ 0.941460937860312015E+03 0.259295974388396348E+04 0.134538093446956691E+05
+ 0.628668738677182439E+06
+ 20 0.74871165651714274120E-03
+ 0.249456855794677017E-01 0.516637614002139312E+01 0.435227595525510835E+01
+ 0.696293545843379624E+01 0.113102519337405665E+02 0.107077756312168120E+02
+ 0.136526319661978881E+02 0.103057494642840792E+03 0.647491597081196815E+03
+ 0.221213037293261823E+04 0.164010494681972204E+05 0.517776934139508076E+05
+ 0.393233870054795443E+06 -0.101893253559274247E+05 -0.173413454816459129E+06
+ 0.524218185885897590E+06 0.711044562955687729E+12 -0.559640645251973480E+12
+ 0.582892127161358521E+12 -0.734296849907947113E+12
+ 0.887741958857318814E+01 0.183177145564733675E+04 0.151655674045953921E+04
+ 0.245910936284398730E+04 0.383273362703089043E+04 0.399285585783856465E+04
+ 0.496339281485561617E+04 0.253464455063045348E+05 0.272156609769823021E+05
+ 0.475215596432249440E+05 0.149791320991727040E+06 0.333884409922466803E+06
+ 0.541583000670874084E+06 0.670984155731562481E+06 0.569769858667429973E+06
+ 0.132622344670840449E+07 0.440534234233555838E+07 0.440974768467789434E+07
+ 0.436787151891064062E+07 0.437223939042955148E+07
+ 0.57154434 0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ 0.58879039 0.00000000 0.80696823
+ 0.00000000 0.00000000 0.00000000
+ 0.57154434 -0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+-1ASW1 A6 ASW1 A5 1
+-2BSW1 B6 1
+-3CSW1 C6 1
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+ 0A6 1.
+ 0B6 1.
+ 0C6 1.
+BLANK card ending branch cards
+BLANK card ending switch cards
+14ASW1 303. 60. 0.0 -1.
+14BSW1 303. 60. -120.0 -1.
+14CSW1 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 2.133855256689E+02
+C Node Source node voltage Injected source current Injected source power
+C name Rectangular Polar Rectangular Polar P and Q MVA and P.F.
+C ASW1 303. 303. .67037929574644 7.1896162837701 101.56246330559 1089.2268669912
+C 0.0 0.0 -7.158294064069 -84.6498145 1084.4815507065 0.0932427
+ A5 B5 C5 A6 B6 C6
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A5 B5 C5 A6 B6 C6 ASW1 BSW1
+C A5 B5
+C CSW1 ASW1 BSW1 CSW1
+C C5 A6 B6 C6
+C 0 0.0 .3364801616 -3.43708937 3.192249668 .3364801616 -3.43708937 3.192249668 .3351896479 -3.30243673
+C 3.056683557 .3351896479 -3.30243673 3.056683557
+C 1 .1E-3 .4768147829 -3.49823033 3.114777824 .4768147829 -3.49823033 3.114777824 .4699942576 -3.36074443
+C 2.9818637 .4699942576 -3.36074443 2.9818637
+C 2 .2E-3 .6165162541 -3.55507115 3.033529893 .6165162541 -3.55507115 3.033529893 .6039611281 -3.41481401
+C 2.903532996 .6039611281 -3.41481401 2.903532996
+C 3 .3E-3 .7553410187 -3.60686214 2.947972502 .7553410187 -3.60686214 2.947972502 .7370685919 -3.46403253
+C 2.821077973 .7370685919 -3.46403253 2.821077973
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 19 subcases.
+C Modified BENCHMARK DC-12
+C One copy of the special double-circuit is added to this subcase to
+C demonstrate the skipping of calculation of the transformation matrix
+C for continuously transposed lines once the needed matrix has already
+C been calculated before. Note that List 21 usage is shown to be 45
+C for this subcase: 6x6 + 3x3 = 45. However, before December, 1997,
+C List 21 from ATP or BPA's EMTP would be 162 = 2 x ( 6x6 + 3x3 + 6x6 )
+$NEW EPSILN, 1.E-9, { Not needed; Just added to prove the card is recognized
+C $WATCH, 25, { Illustrate extra echoing of cards to CRT periodically (every 25th)
+PRINTED NUMBER WIDTH, 12, 2, { Full precision on each of 9 columns of printout
+ .000050 .025 60.
+ 1 1 1 3 1 -1
+ 5 5 20 20 100 100
+ 0CJA X32A .01 1
+ 0CJB X32B .01 1
+ 0RAA XA .01
+ 0RAB XB .01
+ 0RAGA RAA 26. 1
+ 0RAGB RAB 26. 1
+ 0RAGC RAC 26. 1
+ 0CJGA CJA 28.
+ 0CJGB CJB 28.
+ 0CJGC CJC 28.
+ 0VC Y17C 26.
+ 0VB Y17B 26.
+ 0VA Y17A 26.
+ 0RAA YA .01 1
+ 0RAB YB .01 1
+ 0RAC YC .01 1
+ 0XC 1680.
+ 0X16B T 1.0E18 2
+ 0X16C T 1.0E18 2
+ 0X16A T 1.0E18 2
+ 0T 65. 1
+ 1XA X1A .3545 3.2009.0476
+ 2XB X1B .2599 1.543-.0088.349 3.2067.0449
+ 3XC X1C .2624 1.484-.006 .2599 1.543 -.0087.3545 3.2009.0479
+ 4YA Y1A .2619 1.128-.0008.2595 1.1848-.0018.2622 1.2824-.0025
+ .3657 3.6724 .0363
+ 5YB Y1B .2615 1.0374-.0004.2592 1.0834-.001 .2619 1.1492-.0011
+ .2624 1.5455-.0052.3656 3.6724.0361
+ 6YC Y1C .261 .9663 -.0003.2588 1.005 -.0007.2616 1.054 -.0006
+ .2623 1.3076-.002 .2624 1.551 -.0053.3656 3.6724 .036
+ 1X1A X2A 1.05749.547 .1421
+ 2X1B X2B .7752 4.602 -.026 1.042 9.564 .1353
+ 3X1C X2C .7826 4.426 -.018 .7752 4.602 -.02561.057 9.547 .1428
+ 4Y1B Y2B .7811 3.366 -.0023.7741 3.534 -.0055.7822 3.825 -.0074
+ 1.091 10.95 .1084
+ 5Y1A Y2A .7799 3.094 -.0013.7732 3.231 -.0031.7813 3.427 -.0032
+ .7827 4.609 -.01541.091 10.95 .1076
+ 6Y1C Y2C .7785 2.882 -.0009.772 2.998 -.0022.7802 3.145 -.0018
+ .7822 3.9 -.0059.7827 4.625 -.01591.091 10.95 .0357
+-1X2A X16A 0.58213.4008.00912 70.
+-2X2B X16B .034160.6790.01663 70.
+-3X2C X16C .034941.0952.01163 70.
+-4Y2A Y16A
+-5Y2B Y16B
+-6Y2C Y16C
+ 1X16C X17C .6198 5.596 .08325
+ 2X16A X17A .4545 2.698 -.0156.6110 5.606 .079
+ 3X16B X17B .459 2.5945-.0107.4545 2.6975-.0156.6198 5.596 .08325
+ 1X17C X18C X16C X17C
+ 2X17A X18A
+ 3X17B X18B
+ 1X18C X19C X16C X17C
+ 2X18A X19A
+ 3X18B X19B
+ 1X19A X20A X16C X17C
+ 2X19B X20B
+ 3X19C X20C
+ 1X20A X21A X16C X17C
+ 2X20B X21B
+ 3X20C X21C
+ 1X21A X22A X16C X17C
+ 2X21B X22B
+ 3X21C X22C
+ 1X22A X23A X16C X17C
+ 2X22B X23B
+ 3X22C X23C
+ 1X23A X24A X16C X17C
+ 2X23B X24B
+ 3X23C X24C
+ 1X24A X25A X16C X17C
+ 2X24B X25B
+ 3X24C X25C
+ 1X25A X26A X16C X17C
+ 2X25B X26B
+ 3X25C X26C
+ 1X26A X27A X16C X17C
+ 2X26B X27B
+ 3X26C X27C
+ 1X27A X28A X16C X17C
+ 2X27B X28B
+ 3X27C X28C
+ 1X28A X29A X16C X17C
+ 2X28B X29B
+ 3X28C X29C
+ 1X29A X30A X16C X17C
+ 2X29B X30B
+ 3X29C X30C
+ 1X30A X31A X16C X17C
+ 2X30B X31B
+ 3X30C X31C
+ 1X31A X32A X16C X17C
+ 2X31B X32B
+ 3X31C X32C
+C 3 July 1987. Change 3 column-80 "1"-punches to "2"-punches that do work:
+-1Y16C Y17C .316 752. 123.E3 31. 1 2
+-2Y16B Y17B .03 370. 179.E3 31. 1 2
+-3Y16A Y17A 2
+-1Z2A Z16A 0.58213.4008.00912 70.
+-2Z2B Z16B .034160.6790.01663 70.
+-3Z2C Z16C .034941.0952.01163 70.
+-4W2A W16A
+-5W2B W16B
+-6W2C W16C
+BLANK card ending branch cards
+ CJC X32C -1. .016 0.1
+ RAC XC -1. .016 0.1 2
+ X16C T -1. .2 0.
+BLANK card ending switch cards
+14VA 305418. 60. -1.5 -1.
+14VB 305418. 60. -121.5 -1.
+14VC 305418. 60. 118.5 -1.
+14RAGA 301954. 60. 0.0 -1.
+14RAGB 301954. 60. -120.0 -1.
+14RAGC 301954. 60. 120.0 -1.
+14CJGA 303109. 60. 12.0 -1.
+14CJGB 303109. 60. -108.0 -1.
+14CJGC 303109. 60. 132.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.180325863363E+08
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C CJC X32C -3.03835446E+02 1.96678065E+03 1.99011108E+03 98.7818 2.52324369E+08 1.09783096E+08
+C RAC XC 3.89924585E+02 1.48620772E+03 1.53650726E+03 75.2991 1.67214580E+08 1.41728176E+08
+C X16C T 2.01571906E+02 3.47025479E+03 3.47610408E+03 86.6757 3.92707235E+08 5.40318069E-07
+ X16C { Request this single node-voltage output
+C First 8 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 9 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time X16B X16C X16A Y16C Y16B Y16A RAC X16C CJA
+C T T T Y17C Y17B Y17A XC X32A
+C
+C CJB RAGA RAGB RAGC RAA RAB RAC T
+C X32B RAA RAB RAC YA YB YC TERRA
+C *** Phasor I(0) = -3.0383545E+02 Switch "CJC " to "X32C " closed in the steady-state.
+C *** Phasor I(0) = 3.8992458E+02 Switch "RAC " to "XC " closed in the steady-state.
+C *** Phasor I(0) = 2.0157191E+02 Switch "X16C " to "T " closed in the steady-state.
+C 0 0.0 -78763.148 0.0 356989.678 20286.0902 17732.2707 17066.6167 0.0 13102.1739 380.757922
+C -18.016564 -303.41193 324.866491 159.741413 116.579991 -2.6766895 -230.18317 201.571906
+C 1 .5E-4 -68915.376 0.0 360816.716 20407.8874 17886.2544 17096.3562 0.0 8847.92818 377.20114
+C -7.6834907 -305.95716 323.27785 139.58148 116.957369 3.56749107 -222.26151 136.121972
+C 2 .1E-3 -59044.256 0.0 364517.492 20524.3074 18037.9341 17115.5471 0.0 4590.95371 373.510323
+C 2.65240363 -308.39143 321.573081 119.370765 117.291738 9.81114053 -214.25988 70.6300571
+BLANK card ending output variable requests (here, just one node voltage)
+ PRINTER PLOT { Axis limits: (-3.870, 2.119)
+ Voltage across switch (RAC,XC), which opens at 16 milliseconds.
+ 184 1. 15. 30. RAC XC Recovery voltage
+C $WATCH, 9999, { Turn off echoing of cards to CRT, in case other solutions follow
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 9th of 19 subcases was added 15 October 1998, forcing the former 9th down
+C one slot to become 10th. This data is from Mrvic in Belgrade, Yugoslavia,
+C an did not have the correct number of output variables prior to Oct. 15.
+C The problem was the 4-punch in column 80 of the Type-92 nonlinear element,
+C which immediately followed a distributed line.
+ .00001 .00002
+ 1 1
+$VINTAGE, 1
+-1IN_A NG1A 3.82540E-01 8.09455E+02 2.03339E+05 50. 1
+-2IN_B NG1B 1.19938E-01 3.99423E+02 2.92989E+05 50. 1
+-3IN_C NG1C 50. 1
+$VINTAGE, 0
+92NG1A NG1AZ 4444. 4
+ 0.0 0.0
+ 0.0001 71000.
+ 0.001 118000.
+ 1000. 165000.
+ 3000. 175000.
+ 9999.
+ NG1AZ .1 1
+BLANK card ending branches
+BLANK card ending switches
+14IN_A 0 89814.62 50. -1. 1.
+BLANK card ending sources
+C Total network loss P-loss by summing injections = 2.199411143818E+02
+ NG1A
+C Step Time NG1A NG1A NG1A NG1AZ
+C NG1AZ NG1AZ TERRA
+C 0 0.0 0.0 90001.353 0.0 0.0
+C 1 .1E-4 41.7463699 90000.7723 .208732E-3 .463845E-3
+C 2 .2E-4 41.7438354 89999.6135 .626183E-3 .463822E-3
+BLANK card ending node names for voltage output
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 10th of 19 subcases.
+C Modified BENCHMARK DC-12
+C J. Marti representation of a 12-phase, continuously-tranposed line,
+C and a copy of it (via the usage of the reference branch feature) are
+C used to replace the original special double-circuit representation.
+$NEW EPSILN, 1.E-9, { Not needed; Just added to prove the card is recognized
+C $WATCH, 25, { Illustrate extra echoing of cards to CRT periodically (every 25th)
+PRINTED NUMBER WIDTH, 12, 2, { Full precision on each of 9 columns of printout
+ .000050 .025 60.
+ 1 1 1 3 1 -1
+ 5 5 20 20 100 100
+ 0CJA X32A .01 1
+ 0CJB X32B .01 1
+ 0RAA XA .01
+ 0RAB XB .01
+ 0RAGA RAA 26. 1
+ 0RAGB RAB 26. 1
+ 0RAGC RAC 26. 1
+ 0CJGA CJA 28.
+ 0CJGB CJB 28.
+ 0CJGC CJC 28.
+ 0VC Y17C 26.
+ 0VB Y17B 26.
+ 0VA Y17A 26.
+ 0RAA YA .01 1
+ 0RAB YB .01 1
+ 0RAC YC .01 1
+ 0XC 1680.
+ 0X16B T 1.0E18 2
+ 0X16C T 1.0E18 2
+ 0X16A T 1.0E18 2
+ 0T 65. 1
+ 1XA X1A .3545 3.2009.0476
+ 2XB X1B .2599 1.543-.0088.349 3.2067.0449
+ 3XC X1C .2624 1.484-.006 .2599 1.543 -.0087.3545 3.2009.0479
+ 4YA Y1A .2619 1.128-.0008.2595 1.1848-.0018.2622 1.2824-.0025
+ .3657 3.6724 .0363
+ 5YB Y1B .2615 1.0374-.0004.2592 1.0834-.001 .2619 1.1492-.0011
+ .2624 1.5455-.0052.3656 3.6724.0361
+ 6YC Y1C .261 .9663 -.0003.2588 1.005 -.0007.2616 1.054 -.0006
+ .2623 1.3076-.002 .2624 1.551 -.0053.3656 3.6724 .036
+ 1X1A X2A 1.05749.547 .1421
+ 2X1B X2B .7752 4.602 -.026 1.042 9.564 .1353
+ 3X1C X2C .7826 4.426 -.018 .7752 4.602 -.02561.057 9.547 .1428
+ 4Y1B Y2B .7811 3.366 -.0023.7741 3.534 -.0055.7822 3.825 -.0074
+ 1.091 10.95 .1084
+ 5Y1A Y2A .7799 3.094 -.0013.7732 3.231 -.0031.7813 3.427 -.0032
+ .7827 4.609 -.01541.091 10.95 .1076
+ 6Y1C Y2C .7785 2.882 -.0009.772 2.998 -.0022.7802 3.145 -.0018
+ .7822 3.9 -.0059.7827 4.625 -.01591.091 10.95 .0357
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C **** UNTRANSPOSED K.C. Lee line calculated at 6.000E+01 HZ. ****
+C LINE CONSTANTS
+C UNTRANSPOSED
+C BRANCH SENDA RECA SENDB RECB SENDC RECC SENDD RECD SENDE RECE SENDF RECF
+C 1.3636 .0561 4 0.0 1.602 -20.75 48.9 48.9
+C 2.3636 .0561 4 0.0 1.602 -19.25 48.9 48.9
+C 3.3636 .0561 4 0.0 1.602 - 0.75 76.4 76.4
+C 4.3636 .0561 4 0.0 1.602 0.75 76.4 76.4
+C 5.3636 .0561 4 0.0 1.602 19.25 48.9 48.9
+C 6.3636 .0561 4 0.0 1.602 20.75 48.9 48.9
+C 7.3636 .0561 4 0.0 1.602 129.25 48.9 48.9
+C 8.3636 .0561 4 0.0 1.602 130.75 48.9 48.9
+C 9.3636 .0561 4 0.0 1.602 149.25 76.4 76.4
+C 10.3636 .0561 4 0.0 1.602 150.75 76.4 76.4
+C 11.3636 .0561 4 0.0 1.602 169.25 48.9 48.9
+C 12.3636 .0561 4 0.0 1.602 170.75 48.9 48.9
+C 0.5 2.61 4 0.0 .386 -12.9 113.3 113.3
+C 0.5 2.61 4 0.0 .386 12.9 113.3 113.3
+C 0.5 2.61 4 0.0 .386 137.1 113.3 113.3
+C 0.5 2.61 4 0.0 .386 162.9 113.3 113.3
+C BLANK card ending conductors
+C 100. 60. 1 1 1 0 1.00 1
+C The transformation matrix was calculated at 6.00000000E+01 Hz.
+$VINTAGE, 1
+-1X2A X16A 1.14912E+00 1.75215E+03 1.01525E+05 1.00000E+01 1 C
+-2X2B X16B 6.19497E-02 9.62871E+02 1.65713E+05 1.00000E+01 1 C
+-3X2C X16C 5.97262E-02 5.78284E+02 1.83535E+05 1.00000E+01 1 C
+-4Y2A Y16A 5.97524E-02 5.59985E+02 1.82228E+05 1.00000E+01 1 C
+-5Y2B Y16B 5.98876E-02 5.82992E+02 1.82687E+05 1.00000E+01 1 C
+-6Y2C Y16C 5.96998E-02 5.56016E+02 1.82902E+05 1.00000E+01 1 C
+-7Z2A Z16A 5.97012E-02 1.92804E+02 1.80238E+05 1.00000E+01 1 C
+-8Z2B Z16B 5.97049E-02 1.92894E+02 1.80244E+05 1.00000E+01 1 C
+-9Z2C Z16C 5.94864E-02 1.92175E+02 1.80244E+05 1.00000E+01 1 C
+10W2A W16A 5.95010E-02 1.92143E+02 1.80241E+05 1.00000E+01 1 C
+11W2B W16B 5.97067E-02 1.92840E+02 1.80242E+05 1.00000E+01 1 C
+12W2C W16C 5.95997E-02 1.92503E+02 1.80243E+05 1.00000E+01 1 C
+$VINTAGE, 0
+ 0.30335730 -0.37506487 0.29831824 -0.10365425 -0.39860454 0.20962178
+ 0.36034135 0.33997765 0.35680566 0.32758780 0.04763939 -0.05265715
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.29470036 -0.36058522 0.29625909 -0.10364356 -0.39806545 0.20770839
+ -0.36375595 -0.34011075 -0.35574761 -0.33324900 -0.04580113 0.05838452
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.26415953 -0.25096956 -0.01124173 0.39829551 0.10536839 -0.41956493
+ 0.08491003 -0.02280779 0.02810499 -0.07847495 -0.49238512 -0.49092616
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.26401132 -0.24090177 -0.01560789 0.39665770 0.10887745 -0.42016964
+ -0.08456459 0.02411961 -0.02519738 0.07618869 0.49208187 0.49249548
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.29682413 -0.23791081 -0.40079088 -0.28385641 0.28231063 0.17321915
+ 0.33616659 -0.36633112 -0.34919591 0.36745215 0.07335095 -0.07279138
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.30584186 -0.22734050 -0.40278216 -0.28629129 0.28284666 0.17416603
+ -0.33236556 0.36529364 0.35038662 -0.36694306 -0.07526426 0.07042439
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.30584186 0.22734050 0.40278216 -0.28629129 0.28284666 -0.17416603
+ -0.33236556 0.36529364 -0.35038662 0.36694306 -0.07526426 -0.07042439
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.29682413 0.23791081 0.40079088 -0.28385641 0.28231063 -0.17321915
+ 0.33616659 -0.36633112 0.34919591 -0.36745215 0.07335095 0.07279138
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.26401132 0.24090177 0.01560789 0.39665770 0.10887745 0.42016964
+ -0.08456459 0.02411961 0.02519738 -0.07618869 0.49208187 -0.49249548
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.26415953 0.25096956 0.01124173 0.39829551 0.10536839 0.41956493
+ 0.08491003 -0.02280779 -0.02810499 0.07847495 -0.49238512 0.49092616
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.29470036 0.36058522 -0.29625909 -0.10364356 -0.39806545 -0.20770839
+ -0.36375595 -0.34011075 0.35574761 0.33324900 -0.04580113 -0.05838452
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.30335730 0.37506487 -0.29831824 -0.10365425 -0.39860454 -0.20962178
+ 0.36034135 0.33997765 -0.35680566 -0.32758780 0.04763939 0.05265715
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 1X16C X17C .6198 5.596 .08325
+ 2X16A X17A .4545 2.698 -.0156.6110 5.606 .079
+ 3X16B X17B .459 2.5945-.0107.4545 2.6975-.0156.6198 5.596 .08325
+ 1X17C X18C X16C X17C
+ 2X17A X18A
+ 3X17B X18B
+ 1X18C X19C X16C X17C
+ 2X18A X19A
+ 3X18B X19B
+ 1X19A X20A X16C X17C
+ 2X19B X20B
+ 3X19C X20C
+ 1X20A X21A X16C X17C
+ 2X20B X21B
+ 3X20C X21C
+ 1X21A X22A X16C X17C
+ 2X21B X22B
+ 3X21C X22C
+ 1X22A X23A X16C X17C
+ 2X22B X23B
+ 3X22C X23C
+ 1X23A X24A X16C X17C
+ 2X23B X24B
+ 3X23C X24C
+ 1X24A X25A X16C X17C
+ 2X24B X25B
+ 3X24C X25C
+ 1X25A X26A X16C X17C
+ 2X25B X26B
+ 3X25C X26C
+ 1X26A X27A X16C X17C
+ 2X26B X27B
+ 3X26C X27C
+ 1X27A X28A X16C X17C
+ 2X27B X28B
+ 3X27C X28C
+ 1X28A X29A X16C X17C
+ 2X28B X29B
+ 3X28C X29C
+ 1X29A X30A X16C X17C
+ 2X29B X30B
+ 3X29C X30C
+ 1X30A X31A X16C X17C
+ 2X30B X31B
+ 3X30C X31C
+ 1X31A X32A X16C X17C
+ 2X31B X32B
+ 3X31C X32C
+C 3 July 1987. Change 3 column-80 "1"-punches to "2"-punches that do work:
+-1Y16C Y17C .316 752. 123.E3 31. 1 2
+-2Y16B Y17B .03 370. 179.E3 31. 1 2
+-3Y16A Y17A 2
+-1g2a h16a x2a X16A
+-2G2B H16B
+-3G2C H16C
+-4I2A J16A
+-5I2B J16B
+-6I2C J16C
+-7K2A L16A
+-8K2B L16B
+-9K2C L16C
+10M2A N16A
+11M2B N16B
+12M2C N16C
+BLANK card ending branch cards
+ CJC X32C -1. .016 0.1
+ RAC XC -1. .016 0.1 2
+ X16C T -1. .2 0.
+BLANK card ending switch cards
+14VA 305418. 60. -1.5 -1.
+14VB 305418. 60. -121.5 -1.
+14VC 305418. 60. 118.5 -1.
+14RAGA 301954. 60. 0.0 -1.
+14RAGB 301954. 60. -120.0 -1.
+14RAGC 301954. 60. 120.0 -1.
+14CJGA 303109. 60. 12.0 -1.
+14CJGB 303109. 60. -108.0 -1.
+14CJGC 303109. 60. 132.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 5.708080191840E+08
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C CJC X32C -6.21065330E+02 1.57458110E+03 1.69263930E+03 111.5259 2.40322338E+08 4.96188048E+07
+C RAC XC -6.06503594E+01 2.47344060E+03 2.47418408E+03 91.4046 3.31199214E+08 1.20268815E+08
+C X16C T -6.46661404E+02 4.07264272E+03 4.12366217E+03 99.0222 5.52649166E+08 1.89871207E-06
+ X16C { Request this single node-voltage output
+C First 8 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 9 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time X16B X16C X16A Y16C Y16B Y16A RAC X16C CJA
+C T T T Y17C Y17B Y17A XC X32A
+C
+C CJB RAGA RAGB RAGC RAA RAB RAC T
+C X32B RAA RAB RAC YA YB YC TERRA
+C *** Phasor I(0) = -6.2106533E+02 Switch "CJC " to "X32C " closed in the steady-state.
+C *** Phasor I(0) = -6.0650359E+01 Switch "RAC " to "XC " closed in the steady-state.
+C *** Phasor I(0) = -6.4666140E+02 Switch "X16C " to "T " closed in the steady-state.
+C 0 0.0 -63837.09 0.0 377260.007 32764.4014 24017.9784 21291.3218 0.0 -42032.991 598.323353
+C -145.40932 -352.27263 295.489606 -144.63644 283.14372 -51.233037 -83.986082 -646.6614
+C 1 .5E-4 -53711.224 0.0 381855.471 32798.4874 24089.8935 21193.2909 0.0 -47014.919 596.678913
+C -131.63008 -353.37225 289.515678 -178.84475 284.649951 -45.380437 -71.585788 -723.30645
+C 2 .1E-3 -43566.965 0.0 386316.48 32824.0043 24159.2461 21076.3336 0.0 -51980.139 594.822465
+C -117.80398 -354.34516 283.438317 -212.99004 286.055173 -39.511164 -59.16047 -799.69444
+BLANK card terminating output variables
+C 500 .025 149624.777 0.0 -298261.85 4374.68263 -18173.961 -13033.335 185947.331 -35731.867 -361.54769
+C 388.671649 166.782434 -493.57721 134.850181 -195.89164 122.275295 134.850181 -549.72103
+C Variable maxima : 540343.158 0.0 451172.573 32841.895 36778.8088 26530.3773 193304.481 268020.042 603.893663
+C 1148.19813 357.764813 431.20547 1821.97555 297.752821 465.041684 662.283206 4123.38527
+C Times of maxima : .0045 0.0 .00155 .2E-3 .0187 .01765 .0249 .0121 .0163
+C .0221 .0088 .0145 .0123 .01675 .0216 .0045 .0121
+C Variable minima : -540349.47 0.0 -451154.75 -32840.801 -24394.349 -21958.885 -184991.56 -268026.03 -603.79512
+C -744.05263 -505.82794 -730.21734 -1821.9838 -294.72028 -314.26652 -662.51315 -4123.4773
+C Times of minima : .0128 0.0 .00985 .0085 .0088 .0077 .0195 .00375 .00795
+C .013 .01895 .0223 .00395 .0091 .01295 .01285 .00375
+ PRINTER PLOT { Axis limits: (-3.870, 2.119)
+ Voltage across switch (RAC,XC), which opens at 16 milliseconds.
+ 184 1. 15. 30. RAC XC Recovery voltage
+C $WATCH, 9999, { Turn off echoing of cards to CRT, in case other solutions follow
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 11th of 19 subcases illustration use of Semlyen freq-dependent line with
+C the reference branch. This may never have worked prior to correction by
+C BPA's Dr. Tsu-huei Liu on February 10, 1998.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 20.E-3 60.
+ 1 1 1 1 1 -1
+ 5 5 20 20
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C SEMLYEN SETUP
+C $ERASE
+C BRANCH SENDA RECA SENDB RECB SENDC RECC
+C TOLERANCES 10 5000. { Illustration only; value of FMED actually unchang
+C 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous da
+C LINE CONSTANTS
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C BLANK card ending conductor cards within "LINE CONSTANTS" data
+C 100. 5000. 100. { Transient frequen
+C 100. 60.00 100. { Phasor solution frequen
+C 100. 6.00 100. 6 20 { log loopi
+C BLANK card ending frequency cards of "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" data cases
+C L= 100.0 miles, rho= 100.0, ss freq= 60.00, NSS=0, KFIT=10, KPS=2, KYC=30
+-1ASW1 A5A001 5.73657E-03 5.80501E-04 1 1 2 2 3
+ 1.29532159E+01 6.90147263E+01-1.54971081E-04 1.00826561E-03 6.00000000E+01
+ 0.00000E+00 1.99246E+04 7.80012E-01 0.00000E+00 2.39630E+03 2.19988E-01
+ 0.00000E+00 2.93896E+05-8.84697E-04 0.00000E+00 6.44826E+02-1.46889E-03
+-1BSW1 B5B001 6.99857E-03 5.37300E-04 2 2 2 2 3
+ 3.65631810E-01 3.01288921E+01-1.20641047E-05 1.41887940E-03 6.00000000E+01
+ 0.00000E+00 2.54663E+05 9.79674E-01 0.00000E+00 2.72320E+03 2.03258E-02
+ 0.00000E+00 9.43770E+03-1.26448E-04 0.00000E+00 5.92472E+01-4.28807E-04
+-1CSW1 C5C001 4.15601E-03 5.36306E-04 3 3 2 2 3
+ 1.50114817E+00 5.16927471E+01-1.74676422E-05 8.35146102E-04 6.00000000E+01
+ 0.00000E+00 6.39606E+05 9.69072E-01 0.00000E+00 2.23039E+03 3.09277E-02
+ 0.00000E+00 2.10503E+03-1.22603E-04 0.00000E+00 9.26329E+01-3.41262E-04
+ 1.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00-2.75271E-01 0.00000E+00
+ 7.22689E-01 0.00000E+00 4.43389E-13 0.00000E+00 1.00000E+00 0.00000E+00
+ 1.00000E+00 0.00000E+00-1.00000E+00 0.00000E+00-2.75271E-01 0.00000E+00
+ 4.17084E-01 0.00000E+00 5.00000E-01 0.00000E+00-3.01620E-01 0.00000E+00
+ 2.29906E-01 0.00000E+00 3.55101E-13 0.00000E+00 8.34169E-01 0.00000E+00
+ 4.17084E-01 0.00000E+00-5.00000E-01 0.00000E+00-3.01620E-01 0.00000E+00
+C Following 3 lines represent a request to copy the preceding Semlyen line:
+-1A5A001A5A ASW1 A5A001
+-1B5B001B5B
+-1C5C001C5C
+ 0A5A 1. 1
+ 0B5B 1. 1
+ 0C5C 1. 1
+ 0A5A001 1.E-3
+ 0B5B001 1.E-3
+ 0C5C001 1.E-3
+BLANK card ending branch cards
+BLANK card ending switch cards
+14ASW1 303. 60. 0.0 -1.
+14BSW1 303. 60. -120.0 -1.
+14CSW1 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 3.478547602183E+01
+C Node Source node voltage Injected source current Injected source power
+C name Rectangular Polar Rectangular Polar P and Q MVA and P.F.
+C ASW1 303. 303. -.007672733214 2.2866979764936 -1.162419081925 346.43474343878
+C 0.0 0.0 -2.286685104002 -90.1922493 346.43279325631 -0.0033554
+ A5A B5B C5C
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A5A B5B C5C A5A B5B C5C
+C TERRA TERRA TERRA
+C 0 0.0 -.002405895 -2.431628 2.160402643 -.002405895 -2.431628 2.160402643
+C 1 .1E-3 .0926479698 -2.47879177 2.105633323 .0926479698 -2.47879177 2.105633323
+C 2 .2E-3 .1868259501 -2.52268804 2.047550504 .1868259501 -2.52268804 2.047550504
+C 3 .3E-3 .2807444168 -2.56299298 1.986561992 .2807444168 -2.56299298 1.986561992
+BLANK card ending the specification of program outputs (node voltages, here)
+C 200 .02 2.378651095 -1.98862739 -.684703165 2.378651095 -1.98862739 -.684703165
+C Variable max : 2.500671273 2.761895332 2.587232808 2.500671273 2.761895332 2.587232808
+C Times of max : .0042 .0096 .0151 .0042 .0096 .0151
+C Variable min : -2.50519884 -2.75808205 -2.58528784 -2.50519884 -2.75808205 -2.58528784
+C Times of min : .0125 .018 .0068 .0125 .018 .0068
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 12th of 19 subcases is added 11 December 2000 as first of many to illustrate
+C the current output that results from column-80 punches. This begins with
+C wide-format for a 1-phase K.C. Lee (constant-parameter) representation. For
+C all cases, line length typically is 138 miles, corresponding to BPA's
+C famous 500-kV line from John Day to Lower Monumental.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 100.E-6 60.
+ 1 1 1 1
+$VINTAGE, 1
+-1SEND REC 3.01533E-01 6.91823E+02 1.19371E+05 1.38000E+02 1 1
+$VINTAGE, 0
+ REC 1.
+BLANK card ending branch cards
+ GEN SEND -1. 1.0 1
+BLANK card ending switch cards
+14GEN 303. 60. 0.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 2.099556401229E+01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SEND 1.38584581E-01 -9.21004378E-01 9.31372509E-01 -81.4428 2.09955640E+01 1.39532163E+02
+C GEN
+C SEND 303. 303. .13858458093924 .93137250869232 20.995564012295 141.10293506689
+C 0.0 0.0 -.9210043777712 -81.4428358 139.53216323234 0.1487961
+ REC
+C First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time REC GEN SEND
+C SEND REC
+C *** Phasor I(0) = 1.3858458E-01 Switch "GEN " to "SEND " closed in the steady-state.
+C 0 0.0 .1379357038 .1385845809 .1385845809
+C 1 .1E-3 .1761761692 .173243844 .173243844
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 13th of 19 subcases is like preceding, but for 3 phases rather than 1.
+C Wide format continues to be used for the K.C. branch cards. Current
+C outputs are requested for all 3 phases.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 500.E-6 60.
+ 1 1 1 1
+$VINTAGE, 1
+-1ASW1 A5 3.01533E-01 6.91823E+02 1.19371E+05 1.38000E+02 1 1
+-2BSW1 B5 2.80266E-02 2.83599E+02 1.82176E+05 1.38000E+02 1 1
+-3CSW1 C5 1
+$VINTAGE, 0
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+BLANK card ending branch cards
+ GENA ASW1 MEASURING 1
+ GENB BSW1 MEASURING 1
+ GENC CSW1 MEASURING 1
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.021565901142E+02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA ASW1 2.24766975E-01 -3.62554051E+00 3.63250109E+00 -86.4525 3.40521967E+01 5.49269387E+02
+C GENB BSW1 -3.25219367E+00 1.61811634E+00 3.63250109E+00 153.5475 3.40521967E+01 5.49269387E+02
+C GENC CSW1 3.02742669E+00 2.00742416E+00 3.63250109E+00 33.5475 3.40521967E+01 5.49269387E+02
+ A5 B5
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A5 B5 GENA GENB GENC ASW1 BSW1 CSW1
+C ASW1 BSW1 CSW1 A5 B5 C5
+C *** Phasor I(0) = 2.2476697E-01 Switch "GENA " to "ASW1 " closed in the steady-state.
+C *** Phasor I(0) = -3.2521937E+00 Switch "GENB " to "BSW1 " closed in the steady-state.
+C *** Phasor I(0) = 3.0274267E+00 Switch "GENC " to "CSW1 " closed in the steady-state.
+C 0 0.0 .2227758056 -3.38431697 .2247669749 -3.25219367 3.027426695 .2247669749 -3.25219367 3.027426695
+C 1 .1E-3 .3649936277 -3.44526228 .3613753872 -3.31038064 2.949005255 .3613753872 -3.31038064 2.949005255
+C 2 .2E-3 .5067326952 -3.5018999 .4973255933 -3.36433648 2.86701089 .4973255933 -3.36433648 2.86701089
+C 3 .3E-3 .6477516678 -3.55356113 .6325690725 -3.41351142 2.780942346 .6325690725 -3.41351142 2.780942346
+C 4 .4E-3 .7878501498 -3.60017255 .7669136365 -3.45783557 2.69092193 .7669136365 -3.45783557 2.69092193
+C 5 .5E-3 .9268290537 -3.64166793 .9001683742 -3.49724594 2.597077567 .9001683742 -3.49724594 2.597077567
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 14th of 19 subcases is like preceding, but it uses the old, narrow-format
+C branch cards for the K.C. Lee circuit.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 500.E-6 60.
+ 1 1 1 1
+-1ASW1 A5 .30153691.821.19E5 138.0 1 1
+-2BSW1 B5 .02803283.601.82E5 138.0 1 1
+-3CSW1 C5 1
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+BLANK card ending branch cards
+ GENA ASW1 -1. 1.0 1
+ GENB BSW1 -1. 1.0 1
+ GENC CSW1 -1. 1.0 1
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.019696658302E+02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA ASW1 2.24355700E-01 -3.62184975E+00 3.62879196E+00 -86.4553 3.39898886E+01 5.48710237E+02
+C GENB BSW1 -3.24879174E+00 1.61662714E+00 3.62879196E+00 153.5447 3.39898886E+01 5.48710237E+02
+C GENC CSW1 3.02443604E+00 2.00522261E+00 3.62879196E+00 33.5447 3.39898886E+01 5.48710237E+02
+ A5 B5
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A5 B5 GENA GENB GENC ASW1 BSW1 CSW1
+C ASW1 BSW1 CSW1 A5 B5 C5
+C *** Phasor I(0) = 2.2435570E-01 Switch "GENA " to "ASW1 " closed in the steady-state.
+C *** Phasor I(0) = -3.2487917E+00 Switch "GENB " to "BSW1 " closed in the steady-state.
+C *** Phasor I(0) = 3.0244360E+00 Switch "GENC " to "CSW1 " closed in the steady-state.
+C 0 0.0 .2223643001 -3.38104477 .2243557004 -3.24879174 3.024436039 .2243557004 -3.24879174 3.024436039
+C 1 .1E-3 .3644492408 -3.44194246 .3608247082 -3.30692783 2.946103123 .3608247082 -3.30692783 2.946103123
+C 2 .2E-3 .50605606 -3.49853389 .4966370192 -3.36083496 2.864197938 .4966370192 -3.36083496 2.864197938
+C 3 .3E-3 .6469437457 -3.55015371 .6317435818 -3.40996615 2.77822257 .6317435818 -3.40996615 2.77822257
+C 4 .4E-3 .7869120891 -3.59672857 .7659524022 -3.4542516 2.688299197 .7659524022 -3.4542516 2.688299197
+C 5 .5E-3 .9257621872 -3.63819228 .8990727624 -3.49362837 2.594555603 .8990727624 -3.49362837 2.594555603
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 15th of 19 subcases is like preceding 13th in that it is wide format and it
+C has current output of all 3 K.C. Lee phases. But the 13th was transposed
+C whereas this is untransposed (note the minus sign on the length of 138 miles
+C and the number of phases in column 79 --- two characteristic differences).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 500.E-6 60.
+ 1 1 1 1
+$VINTAGE, 1
+-1ASW1 A5 3.01532E-01 6.91748E+02 1.19375E+05 1.38000E+02 1 31
+-2BSW1 B5 2.80361E-02 2.90916E+02 1.82804E+05 1.38000E+02 1 31
+-3CSW1 C5 2.80251E-02 2.76507E+02 1.81679E+05 1.38000E+02 1 31
+$VINTAGE, 0
+ 0.58094800 0.70710678 -0.40960438
+ 0.00000000 0.00000000 0.00000000
+ 0.57008669 0.00000000 0.81513711
+ 0.00000000 0.00000000 0.00000000
+ 0.58094800 -0.70710678 -0.40960438
+ 0.00000000 0.00000000 0.00000000
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+BLANK card ending branch cards
+ GENA ASW1 -1. 1.0 1
+ GENB BSW1 -1. 1.0 1
+ GENC CSW1 -1. 1.0 1
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.023278079456E+02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA ASW1 3.00196560E-01 -3.58378164E+00 3.59633269E+00 -85.2118 4.54797788E+01 5.42942919E+02
+C GENB BSW1 -3.31711311E+00 1.64521103E+00 3.70269614E+00 153.6197 3.54149452E+01 5.59839425E+02
+C GENC CSW1 3.04992391E+00 1.92423276E+00 3.60620404E+00 32.2483 2.14330840E+01 5.45919337E+02
+ A5 B5
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A5 B5 GENA GENB GENC ASW1 BSW1 CSW1
+C ASW1 BSW1 CSW1 A5 B5 C5
+C *** Phasor I(0) = 3.0019656E-01 Switch "GENA " to "ASW1 " closed in the steady-state.
+C *** Phasor I(0) = -3.3171131E+00 Switch "GENB " to "BSW1 " closed in the steady-state.
+C *** Phasor I(0) = 3.0499239E+00 Switch "GENC " to "CSW1 " closed in the steady-state.
+C 0 0.0 .3028039653 -3.45224148 .3001965596 -3.31711311 3.049923907 .3001965596 -3.31711311 3.049923907
+C 1 .1E-3 .4433227265 -3.51422565 .4351711184 -3.37627258 2.974621043 .4351711184 -3.37627258 2.974621043
+C 2 .2E-3 .5832573875 -3.57180736 .5693890004 -3.43110981 2.895709537 .5693890004 -3.43110981 2.895709537
+C 3 .3E-3 .7223632078 -3.62431333 .7027977494 -3.48107125 2.81268307 .7027977494 -3.48107125 2.81268307
+C 4 .4E-3 .8604425105 -3.67166896 .8352077844 -3.52608589 2.725659627 .8352077844 -3.52608589 2.725659627
+C 5 .5E-3 .9972990773 -3.71380695 .9664309434 -3.56608978 2.634762871 .9664309434 -3.56608978 2.634762871
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 16th of 19 subcases is like preceding subcase, but narrow-format rather
+C than wide format.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 500.E-6 60.
+ 1 1 1 1
+-1ASW1 A5 .30153691.751.19E5138.0 1 3 1
+-2BSW1 B5 .02804290.921.83E5138.0 1 3 1
+-3CSW1 C5 .02803276.511.82E5138.0 1 3 1
+ 0.58094800 0.70710678 -0.40960438
+ 0.00000000 0.00000000 0.00000000
+ 0.57008669 0.00000000 0.81513711
+ 0.00000000 0.00000000 0.00000000
+ 0.58094800 -0.70710678 -0.40960438
+ 0.00000000 0.00000000 0.00000000
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+BLANK card ending branch cards
+ GENA ASW1 -1. 1.0 1
+ GENB BSW1 -1. 1.0 1
+ GENC CSW1 -1. 1.0 1
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.026297675962E+02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA ASW1 3.02008125E-01 -3.58827965E+00 3.60096650E+00 -85.1890 4.57542310E+01 5.43624367E+02
+C GENB BSW1 -3.32346237E+00 1.64788748E+00 3.70957346E+00 153.6262 3.55447426E+01 5.60875207E+02
+C GENC CSW1 3.05443322E+00 1.92605659E+00 3.61099104E+00 32.2346 2.13307940E+01 5.46649127E+02
+ A5 B5
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A5 B5 GENA GENB GENC ASW1 BSW1 CSW1
+C ASW1 BSW1 CSW1 A5 B5 C5
+C *** Phasor I(0) = 3.0200813E-01 Switch "GENA " to "ASW1 " closed in the steady-state.
+C *** Phasor I(0) = -3.3234624E+00 Switch "GENB " to "BSW1 " closed in the steady-state.
+C *** Phasor I(0) = 3.0544332E+00 Switch "GENC " to "CSW1 " closed in the steady-state.
+C 0 0.0 .3045651846 -3.45834382 .3020081254 -3.32346237 3.054433225 .3020081254 -3.32346237 3.054433225
+C 1 .1E-3 .4452424723 -3.52041215 .4371493736 -3.38271232 2.979054128 .4371493736 -3.38271232 2.979054128
+C 2 .2E-3 .5853352634 -3.57807608 .5715325316 -3.43763659 2.900064351 .5715325316 -3.43763659 2.900064351
+C 3 .3E-3 .724596261 -3.63065537 .7051035107 -3.48767578 2.816953424 .7051035107 -3.48767578 2.816953424
+C 4 .4E-3 .8628275678 -3.6780753 .837672499 -3.53275879 2.729839452 .837672499 -3.53275879 2.729839452
+C 5 .5E-3 .9998327493 -3.72026849 .9690511089 -3.57282156 2.638846228 .9690511089 -3.57282156 2.638846228
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 17th of 19 subcases is the same basic 3-phase configuration, but with
+C the K.C. Lee modeling replaced by JMARTI modeling.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 500.E-6 60.
+ 1 1 1 1
+C PUNCHED CARD OUTPUT OF "JMARTI SETUP" WHICH BEGAN AT 14.32.51 09/14/82
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 100. 5000. 1 138. 1 3-2
+C 100. 60.00 1 138. 1 3
+C 100. .01 1 138. 1 9 10 3
+C
+-1ASW1 A5 2. -2 3 1
+ 18 0.47487144790587633736E+03
+ -0.117967342612603676E+01 -0.316671345021416945E+01 0.255662317832426673E+02
+ -0.601654631032706213E+02 -0.118825306534453652E+03 0.128169142098635430E+04
+ 0.589610442538186533E+04 0.292891488173549769E+05 0.115665757459954655E+06
+ 0.456394278488149546E+06 0.153681652821077613E+07 0.681848054466802243E+07
+ 0.155477562610202006E+08 0.231789897204889809E+08 0.143827766961221036E+08
+ 0.241524708800130989E+08 0.245049034784953832E+08 0.476808364145524129E+08
+ 0.321645453133055891E+00 0.897616891499021768E+00 0.165632367032913183E+01
+ 0.166669419493737986E+01 0.253073682990780913E+01 0.200014655383098283E+02
+ 0.124257951002701473E+03 0.657345842950598183E+03 0.278623017775457413E+04
+ 0.117145310573639467E+05 0.427410884649070877E+05 0.202553264108715757E+06
+ 0.968789502295299084E+06 0.296908522006270138E+07 0.737968316276072920E+07
+ 0.121009167337626640E+08 0.132891445947112725E+08 0.252097199908134253E+08
+ 14 0.86849922355034181931E-03
+ 0.580543547692016874E-01 0.269744993210885436E+00 0.358646519088149721E+00
+ 0.775351125410302933E+00 0.512138885239557462E+01 0.838265420474258915E+01
+ 0.700229782114550385E+02 0.393084113996385128E+03 0.138208543918962840E+04
+ 0.706160326497018531E+03 0.527246586822120662E+04 0.528343251309079615E+05
+ 0.178307801042203880E+08 -0.178914532139174500E+08
+ 0.228360173022402533E+02 0.102750699821169636E+03 0.139222638455845377E+03
+ 0.269608322018776320E+03 0.389220463867018722E+03 0.427793721751318500E+03
+ 0.132148883486994549E+04 0.277178340638843952E+04 0.449341296469570784E+04
+ 0.596603161966094024E+04 0.114714152641659587E+05 0.268314807408425590E+05
+ 0.204027813729699328E+05 0.204231841543429041E+05
+-2BSW1 B5 2. -2 3 1
+ 13 0.28580875773089406522E+03
+ 0.381761604345214016E+04 -0.269529222495194318E+04 0.445018224900628539E+03
+ 0.214658130219351907E+03 0.897325461203551775E+02 0.130480129629523390E+03
+ 0.683037485206990933E+02 0.746626715384045969E+02 0.133938729387751110E+04
+ 0.249954495902361043E+04 0.187764116219525090E+05 0.391031620802855759E+06
+ 0.562668431190421223E+07
+ 0.358668999787749571E+01 0.376679186833120605E+01 0.706439034439901437E+01
+ 0.109721634064781350E+02 0.140506334140286961E+02 0.234292596911152251E+02
+ 0.407686998675834982E+02 0.797598814775078289E+02 0.129106739969348078E+04
+ 0.242138030939135859E+04 0.182362646041542116E+05 0.379814243183306855E+06
+ 0.548808385606378759E+07
+ 13 0.74123751236187229426E-03
+ 0.192189595814863363E+02 0.210970481418782463E+01 0.383406546226866283E+02
+ 0.307999912886148377E+02 0.634013410317139090E+03 -0.253243195247046863E+03
+ 0.210540381301789816E+05 0.755533947306502050E+05 0.229576557459444489E+07
+ 0.607777584135737231E+13 -0.156620677810598129E+13 0.153143851607186420E+13
+ -0.604300997216751013E+13
+ 0.325736126030671755E+04 0.366694913707514260E+03 0.675727697588602189E+04
+ 0.516024976370228876E+04 0.249456113770459378E+05 0.115067772934717399E+06
+ 0.105205466546493019E+06 0.240930799961836921E+06 0.633276538663731131E+06
+ 0.975820481990592802E+06 0.976796302472583498E+06 0.974176721795814519E+06
+ 0.975150898517610403E+06
+-3CSW1 C5 2. -2 3 1
+ 13 0.27248404992352924125E+03
+ 0.928429573805075023E+03 0.205756155237142632E+03 0.538106630554037608E+03
+ 0.105199818376817531E+03 0.821382476778671116E+02 0.133356875032521778E+03
+ 0.654774478488469374E+02 0.612546121562179922E+02 0.905544916173387175E+02
+ 0.973244316091135204E+03 0.267481871266201051E+04 0.138566411938941123E+05
+ 0.646075558955914967E+06
+ 0.297277477955690506E+01 0.413177069940672514E+01 0.739410817322770197E+01
+ 0.103072536754267949E+02 0.135874091964585515E+02 0.234792992956042887E+02
+ 0.384075708508238121E+02 0.692539345057236435E+02 0.997101922255402791E+02
+ 0.941460937860312015E+03 0.259295974388396348E+04 0.134538093446956691E+05
+ 0.628668738677182439E+06
+ 20 0.74871165651714274120E-03
+ 0.249456855794677017E-01 0.516637614002139312E+01 0.435227595525510835E+01
+ 0.696293545843379624E+01 0.113102519337405665E+02 0.107077756312168120E+02
+ 0.136526319661978881E+02 0.103057494642840792E+03 0.647491597081196815E+03
+ 0.221213037293261823E+04 0.164010494681972204E+05 0.517776934139508076E+05
+ 0.393233870054795443E+06 -0.101893253559274247E+05 -0.173413454816459129E+06
+ 0.524218185885897590E+06 0.711044562955687729E+12 -0.559640645251973480E+12
+ 0.582892127161358521E+12 -0.734296849907947113E+12
+ 0.887741958857318814E+01 0.183177145564733675E+04 0.151655674045953921E+04
+ 0.245910936284398730E+04 0.383273362703089043E+04 0.399285585783856465E+04
+ 0.496339281485561617E+04 0.253464455063045348E+05 0.272156609769823021E+05
+ 0.475215596432249440E+05 0.149791320991727040E+06 0.333884409922466803E+06
+ 0.541583000670874084E+06 0.670984155731562481E+06 0.569769858667429973E+06
+ 0.132622344670840449E+07 0.440534234233555838E+07 0.440974768467789434E+07
+ 0.436787151891064062E+07 0.437223939042955148E+07
+ 0.57154434 0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ 0.58879039 0.00000000 0.80696823
+ 0.00000000 0.00000000 0.00000000
+ 0.57154434 -0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+BLANK card ending branch cards
+ GENA ASW1 -1. 1.0 1
+ GENB BSW1 -1. 1.0 1
+ GENC CSW1 -1. 1.0 1
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.066927628344E+02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA ASW1 3.35189648E-01 -3.57914703E+00 3.59480814E+00 -84.6498 5.07812317E+01 5.42240775E+02
+C GENB BSW1 -3.30243673E+00 1.62411674E+00 3.68019613E+00 153.8123 3.70708395E+01 5.56315950E+02
+C GENC CSW1 3.05668356E+00 1.90837679E+00 3.60350057E+00 31.9777 1.88406917E+01 5.45605132E+02
+ A5 B5
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A5 B5 GENA GENB GENC ASW1 BSW1 CSW1
+C ASW1 BSW1 CSW1 A5 B5 C5
+C *** Phasor I(0) = 3.3518965E-01 Switch "GENA " to "ASW1 " closed in the steady-state.
+C *** Phasor I(0) = -3.3024367E+00 Switch "GENB " to "BSW1 " closed in the steady-state.
+C *** Phasor I(0) = 3.0566836E+00 Switch "GENC " to "CSW1 " closed in the steady-state.
+C 0 0.0 .3364801616 -3.43708937 .3351896479 -3.30243673 3.056683557 .3351896479 -3.30243673 3.056683557
+C 1 .1E-3 .4768147829 -3.49823033 .4699942576 -3.36074443 2.9818637 .4699942576 -3.36074443 2.9818637
+C 2 .2E-3 .6165162541 -3.55507115 .6039611281 -3.41481401 2.903532996 .6039611281 -3.41481401 2.903532996
+C 3 .3E-3 .7553410187 -3.60686214 .7370685919 -3.46403253 2.821077973 .7370685919 -3.46403253 2.821077973
+C 4 .4E-3 .8930920166 -3.65352808 .8691280945 -3.50832883 2.734614537 .8691280945 -3.50832883 2.734614537
+C 5 .5E-3 1.029573754 -3.69500248 .9999522851 -3.54763983 2.644265375 .9999522851 -3.54763983 2.644265375
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 19th of 19 subcases is like preceding 14th subcase. But that had normal
+C K. C. Lee modeling whereas this is distortionless (note "1" in column 54).
+C End of subcases that were added 11 December 2000 to illustrate selective
+C current output as should be explained in the April, 2001, newsletter.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 100.E-6 500.E-6 60.
+ 1 1 1 1
+-1ASW1 A5 .30153691.821.19E5 138.0 1 1 1
+-2BSW1 B5 .02803283.601.82E5 138.0 1 1 1
+-3CSW1 C5 1 1
+ 0A5 1.
+ 0B5 1.
+ 0C5 1.
+BLANK card ending branch cards
+ GENA ASW1 -1. 1.0 1
+ GENB BSW1 -1. 1.0 1
+ GENC CSW1 -1. 1.0 1
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 6.310523799541E+01
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA ASW1 1.38845408E-01 -3.63039320E+00 3.63304732E+00 -87.8098 2.10350793E+01 5.50004569E+02
+C GENB BSW1 -3.21343544E+00 1.69495295E+00 3.63304732E+00 152.1902 2.10350793E+01 5.50004569E+02
+C GENC CSW1 3.07459003E+00 1.93544025E+00 3.63304732E+00 32.1902 2.10350793E+01 5.50004569E+02
+ A5 B5
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 6 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time A5 B5 GENA GENB GENC ASW1 BSW1 CSW1
+C ASW1 BSW1 CSW1 A5 B5 C5
+C *** Phasor I(0) = 1.3884541E-01 Switch "GENA " to "ASW1 " closed in the steady-state.
+C *** Phasor I(0) = -3.2134354E+00 Switch "GENB " to "BSW1 " closed in the steady-state.
+C *** Phasor I(0) = 3.0745900E+00 Switch "GENC " to "CSW1 " closed in the steady-state.
+C 0 0.0 .1332050671 -3.34378386 .1388454081 -3.21343544 3.074590029 .1388454081 -3.21343544 3.074590029
+C 1 .1E-3 .2756872129 -3.40778338 .2757125121 -3.27455462 2.998842112 .2757125121 -3.27455462 2.998842112
+C 2 .2E-3 .4178019673 -3.46751877 .4120284659 -3.33148445 2.919455988 .4120284659 -3.33148445 2.919455988
+C 3 .3E-3 .5593230022 -3.52232662 .5477589048 -3.38368006 2.835921157 .5477589048 -3.38368006 2.835921157
+C 4 .4E-3 .7000492086 -3.57212905 .6827109483 -3.43106728 2.748356327 .6827109483 -3.43106728 2.748356327
+C 5 .5E-3 .8397806067 -3.61685529 .8166928222 -3.47357875 2.656885933 .8166928222 -3.47357875 2.656885933
+BLANK card ending the specification of program outputs (node voltages, here)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn25.dat b/benchmarks/dcn25.dat
new file mode 100644
index 0000000..13c5fa1
--- /dev/null
+++ b/benchmarks/dcn25.dat
@@ -0,0 +1,1694 @@
+BEGIN NEW DATA CASE
+C 1st of 18 subcases illustrates Robert Meredith's Type-68 TACS device as
+C first described in the April, 1998, newsletter. This is AUT5 data case.
+C test120a.dat (1 HERTZ AT 120% VOLTAGE)
+C without resistances
+C ENERGIZED AT ZERO TIME VIA 0.100 OHM RESISTORS -steady state
+C FREE FORMAT TIME STEP- 1000/CYCLE FOR 1.5 SECOND+
+C .000016666666, 1.500 , 60.000 , 0.,,,,,,, { Meredith's original params
+ .000066666667, .100 , 60.000 , 0.,,,,,,, { Much reduced burden on computer
+C PRN> PLT> NET> SS> MAX> SAVE> NENERG> >
+ 1 5 0 0 1 -1 0
+ 5 5 20 20 100 100 500 500
+C $NEW EPSILN, 1.E-10, { Add 24 July 2008 to compensate for protection in REDUCT
+$NEW EPSILN, 1.E-11, { Add 31 July 2008 to allow solution with MATFUL = 1, too.
+C Note about preceding line. The default 1.E-8 is too big, and so is 1.E-9.
+C This change to DCNEW-25 is made at the same time as that to the 2nd subcase
+C of DC-31. See that file for what happens without a small enough EPSILN.
+TACS HYBRID
+C $INCLUDE aut5-tac.inc
+C $INCLUDE aut5-tck.inc { Uses new Type-68 TACS device, so much smaller file
+C TACS STEADY-STATE CORE NFLUX INITIALIZATION FOR TRANSFORMER AUT5
+C NFLUX IS PROPORTIONAL TO THE INDUCTIVE CURRENT IN THESE SWITCHES:
+C TYPE 91 TACS SOURCES DERIVED FROM NETWORK SWITCH CURRENTS:
+C <NAME> <----A---><----A---><----A---> <T START ><T STOP >
+91AUT5D1 -1.0 999.
+91AUT5D2 -1.0 999.
+91AUT5D3 -1.0 999.
+91AUT5D4 -1.0 999.
+91AUT5D5 -1.0 999.
+C ZERO-ORDER BLOCKS TO SCALE ABOVE TO NFLUX LINKED (NREF*PHI) WITHIN CORE VOLUME
+C GAIN IS BASED ON 10000-HENRY FLUX-MONITORING INDUCTANCES.
+C <NAME> +<NAME> +<NAME> +<NAME> +<NAME> +<NAME> <GAIN><FXLO><FXHI><NMLO><NMHI>
+ 0AUT5E1 +AUT5D1 1.E4
+ 0AUT5E2 +AUT5D2 1.E4
+ 0AUT5E3 +AUT5D3 1.E4
+ 0AUT5E4 +AUT5D4 1.E4
+ 0AUT5E5 +AUT5D5 1.E4
+C Correction of Type-68 TACS device lines on 6 April 2000. VAX ATP error was
+C traced to the following data cards (one line for each Type-68 device) having
+C E-field numbers that were not right-adjusted. The first two show how data
+C columns were misalligned prior to correction:
+C AUT5T168AUT5E1 13.821 27.642 2.91727E-3 8.44316E-4
+C AUT5T268AUT5E1 27.642 62.194 2.43012E-3 2.53199E-4
+C The associated data format for 4E16.0 read in GUTS2A was not properly
+C protected by the addition of BN, so exponents were scaled by a factor of
+C 100. For example, the first value on the first card was 2.91E-300 instead
+C of E-3 as intended. After proper allignment, here is the data:
+C NEW TACS DEVICE 68 MODELS HYSTERETIC LOSS/RESIDUAL MMF COMPONENTS.
+C <IRES>68<FLUX><LOWER FLUX VAL><HIGHR FLUX VAL><LINEAR COEFF. ><SQUARED COEFF.>
+99AUT5T168AUT5E1 13.821 27.642 2.91727E-3 8.44316E-4
+99AUT5T268AUT5E1 27.642 62.194 2.43012E-3 2.53199E-4
+99AUT5T368AUT5E1 62.194 82.925 1.23361E-3 4.76044E-4
+99AUT5T468AUT5E1 82.925 103.66 1.22440E-3 5.90543E-4
+99AUT5T568AUT5E1 103.66 120.25 1.79633E-3 1.56980E-3
+99AUT5T668AUT5E1 120.25 131.34 1.44373E-3 3.08189E-3
+99AUT5T768AUT5E1 131.34 139.51 4.95355E-3 2.07092E-2
+99AUT5U168AUT5E2 13.821 27.642 2.91727E-3 8.44316E-4
+99AUT5U268AUT5E2 27.642 62.194 2.43012E-3 2.53199E-4
+99AUT5U368AUT5E2 62.194 82.925 1.23361E-3 4.76044E-4
+99AUT5U468AUT5E2 82.925 103.66 1.22440E-3 5.90543E-4
+99AUT5U568AUT5E2 103.66 120.25 1.79633E-3 1.56980E-3
+99AUT5U668AUT5E2 120.25 131.34 1.44373E-3 3.08189E-3
+99AUT5U768AUT5E2 131.34 139.51 4.95355E-3 2.07092E-2
+99AUT5V168AUT5E3 13.821 27.642 2.91727E-3 8.44316E-4
+99AUT5V268AUT5E3 27.642 62.194 2.43012E-3 2.53199E-4
+99AUT5V368AUT5E3 62.194 82.925 1.23361E-3 4.76044E-4
+99AUT5V468AUT5E3 82.925 103.66 1.22440E-3 5.90543E-4
+99AUT5V568AUT5E3 103.66 120.25 1.79633E-3 1.56980E-3
+99AUT5V668AUT5E3 120.25 131.34 1.44373E-3 3.08189E-3
+99AUT5V768AUT5E3 131.34 139.51 4.95355E-3 2.07092E-2
+99AUT5W168AUT5E4 14.120 28.239 2.69692E-3 7.64028E-4
+99AUT5W268AUT5E4 28.239 63.538 2.24656E-3 2.29122E-4
+99AUT5W368AUT5E4 63.538 84.717 1.14043E-3 4.30775E-4
+99AUT5W468AUT5E4 84.717 105.90 1.13191E-3 5.34391E-4
+99AUT5W568AUT5E4 105.90 122.84 1.66066E-3 1.42058E-3
+99AUT5W668AUT5E4 122.84 134.17 1.33473E-3 2.79024E-3
+99AUT5W768AUT5E4 134.17 142.42 4.58432E-3 1.91911E-2
+99AUT5X168AUT5E5 14.120 28.239 2.69692E-3 7.64028E-4
+99AUT5X268AUT5E5 28.239 63.538 2.24656E-3 2.29122E-4
+99AUT5X368AUT5E5 63.538 84.717 1.14043E-3 4.30775E-4
+99AUT5X468AUT5E5 84.717 105.90 1.13191E-3 5.34391E-4
+99AUT5X568AUT5E5 105.90 122.84 1.66066E-3 1.42058E-3
+99AUT5X668AUT5E5 122.84 134.17 1.33473E-3 2.79024E-3
+99AUT5X768AUT5E5 134.17 142.42 4.58432E-3 1.91911E-2
+C CURRENTS INJECTED INTO NETWORK FOR HYSTERESIS MODELING AND OTHER COMPENSATION.
+C PHASE LEGS HAVE CURRENTS INJECTED TO COMPENSATE COUPLING XFMR. MAGNET. AMPS.,
+C FLUX-MONITORING INDUCTANCE CURRENT AND SMALL CORE GAPS:
+99AUT5TP =+AUT5D1/( 1.30893E-2)+ 1*(+AUT5T1+AUT5T2+AUT5T3+AUT5T4+AUT5T5)
+99AUT5A5 =+AUT5TP+ 1*(+AUT5T6+AUT5T7)
+99AUT5TQ =+AUT5D2/( 1.30893E-2)+ 1*(+AUT5U1+AUT5U2+AUT5U3+AUT5U4+AUT5U5)
+99AUT5B5 =+AUT5TQ+ 1*(+AUT5U6+AUT5U7)
+99AUT5TR =+AUT5D3/( 1.30893E-2)+ 1*(+AUT5V1+AUT5V2+AUT5V3+AUT5V4+AUT5V5)
+99AUT5C5 =+AUT5TR+ 1*(+AUT5V6+AUT5V7)
+C YOKES ARE COMPENSATED FOR MONITORING INDUCTANCE CURRENTS:
+99AUT5TS =+AUT5D4+ 1*(+AUT5W1+AUT5W2+AUT5W3+AUT5W4+AUT5W5)
+99AUT501 =+AUT5TS+ 1*(+AUT5W6+AUT5W7)
+99AUT5TT =+AUT5D5+ 1*(+AUT5X1+AUT5X2+AUT5X3+AUT5X4+AUT5X5)
+99AUT502 =+AUT5TT+ 1*(+AUT5X6+AUT5X7)
+C YOKE & PHASE HYSTERETIC CURRENTS ARE EXTRACTED, EXCEPT AT GROUND:
+99AUT5B0 =-AUT501-AUT5B5
+99AUT5C0 =-AUT502-AUT5C5
+C End of $INCLUDE. File name = aut5-tck.inc
+C PARTS OF HYSTERESIS COMPONENTS FOR PLOTTING
+C FORTRAN STATEMENTS; 99= INPUT; 98= OUTPUT; 88= INSIDE
+C <NAME> =< FREE FORMAT FORTRAN TO COL 80 ----->
+C TOTAL OF ALL HYSTER INJECTIONS FOR LEGS A,B,C
+99ALLINA =+AUT5T1+AUT5T2+AUT5T3+AUT5T4+AUT5T5+AUT5T6+AUT5T7
+99ALLINB =+AUT5U1+AUT5U2+AUT5U3+AUT5U4+AUT5U5+AUT5U6+AUT5U7
+99ALLINC =+AUT5V1+AUT5V2+AUT5V3+AUT5V4+AUT5V5+AUT5V6+AUT5V7
+C
+C TYPE 90 TACS SOURCES DERIVED FROM NETWORK VOLTAGES:
+C <NAME> <----A---><----A---><----A---> <T START ><T STOP >
+C TYPE 91 TACS SOURCES DERIVED FROM NETWORK SWITCH CURRENTS (1ST NODE)
+C <NAME> <----A---><----A---><----A---> <T START ><T STOP >
+91AUT5AM 0. 999.
+91AUT5BM 0. 999.
+91AUT5CM 0. 999.
+C FORTRAN STATEMENTS; 99= INPUT; 98= OUTPUT; 88= INSIDE
+C <NAME> =< FREE FORMAT FORTRAN TO COL 80 ----->
+C NEXT IS SUM OF COUPLING OUTPUT AND ALL INJECTED AMPS - USED BY CORE MODELS
+98LEGAMP = AUT5AM + AUT5A5
+98LEGBMP = AUT5BM + AUT5B5
+98LEGCMP = AUT5CM + AUT5C5
+C NEXT IS APPARENT LEG AMPS FOR HYSTER PLOTTING
+98NETAMP = LEGAMP - ALLINA
+98NETBMP = LEGBMP - ALLINB
+98NETCMP = LEGCMP - ALLINC
+C S-BLOCKS OF ORDER 1 IN COL 2 INTEGRATE VOLTAGES TO GET FLUXES (TIMES 250.0).
+C <NAME> +<NAME> +<NAME> +<NAME> +<NAME> +<NAME> <GAIN><FXLO><FXHI><NMLO><NMHI>
+C N0 & D0><N1 & D1 ><N2 & D2 ><N3 & D3 ><N4 & D4 ><N5 & D5 ><N6 & D6 ><N7 & D7 >
+C <NAME>CD+< IN1> +< IN2> +< IN3> +< IN4> +< IN5> < A >< B >< C >< D >< E >
+C TACS OUTPUT REQUESTS - TYPE 33
+C <NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><TY33>
+33AUT5E1 ALLINA LEGAMP NETAMP
+33AUT5E2 ALLINB LEGBMP NETBMP
+33AUT5E3 ALLINC LEGCMP NETCMP
+C 33AUT5T1 AUT5T2 AUT5T3 AUT5T4 AUT5T5 AUT5T6 AUT5
+33AUT5U1 AUT5U2 AUT5U3 AUT5U4 AUT5U5 AUT5U6 AUT5U7
+BLANK CARD ENDING ALL ATP-SORTED TACS CARDS (from blank.inc)
+C THIS MUST BE EDITED TO ADD AUT5A5 >> AUT5AM, ETC METERING
+C $INCLUDE aut5-brn.inc
+C WSM makes non-Unix by adding a card using DOS editor.
+C 3-PHASE, 3-LEG SATURABLE XFMR. MODEL FROM MODELAD.FTN - 60. HZ IMPEDANCES
+C CHANGED AUT5A5, B5, C5 TO AUT5AM, BM, CM ; NOW REQUIRES METERING SWITCHES
+C AUT5 = IDENTIFYING BUS CODE PREFIX OF INTERNAL NODES.
+C AUT5AM = NAME OF A METERING NODE ADDED AT AUT5A5
+C EACH PHASE LEG HAS 3 WINDINGS WHOSE RATED VOLTAGES AND TURNS ARE:
+C WINDING 1 (INNERMOST) = 13.130 KV. TURNS = 44.998
+C WINDING 1 INCLUDES THE EFFECT OF 0.5670 OHMS/PHASE INTERNAL (DELTA) REACTORS.
+C REACTOR RESISTANCE/PHASE MUST BE INCLUDED WITH ENTERED WINDING RESISTANCES.
+C WINDING 2 = 79.674 KV. TURNS = 273.052
+C WINDING 3 = 119.655 KV. TURNS = 410.072
+C INTERNAL REFERENCE = 29.179 KV. TURNS = 100.000
+C *********BEGIN USER COMMENTS ************
+C EAST GARDEN CITY AUTOTRANSFORMER*** one *** AT 345/138 KV TAP
+C ABBREVIATED HYSTERESIS MODEL; SEVEN OF POSSIBLE 11 COMPONENTS
+C .95 * .7274 SQUARE METER LEG; .97 * .7274 SQUARE METER YOKE
+C ACTUAL DELTA IS GROUNDED BETWEEN OUTER PHASES AT Y1.
+C EACH DELTA REACTOR X =.82;OR .5467 WHEN EQUALIZED; REACTOR R = .00427 EACH
+C ACTUAL DELTA WINDING R = .00510; + .002847 TO EQUALIZE = .0079467 ENTERED
+C AIR-CORE COUPLINGS FROM COUPCOIL, BASED ON SMIT DIMENSIONS.
+C B-H CURVE BASED ON ARMCO TRAN-COR H-0 from smit
+C B-H SHIFTED TO HIGHER CURRENTS IN 1.5 - 1.85 T RANGE
+C MILD OPEN HEARTH STEEL FOR TANK
+C TANK HAS 21.65 M CIRCUM; FLUX SHIELD = 3.15 M HIGH
+C 64-36 EDDY-HYST LOSS RATIO AT RATED;
+C ********** END USER COMMENTS ************
+C COUPLING, LEAKAGE IMPEDANCE & WINDING LOSS MODEL FOR TRANSFORMER AUT5:
+C <NAME><NAME><NAME><NAME>< R >< X >< R >< X >< R >< X >
+51Y1 Y2 .01016 10124.87377
+52EGCT1A 0.000 61435.16312.04458372798.88582
+53EGCHEAEGCT1A 0.000 92263.79188 0.000559873.90936.12388840864.72923
+54AUT5A1 0.000 22499.42979 0.000136528.47263 0.000205039.49115
+ 0.000 50000.88921
+55AUT5A2 0.000 22499.42071 0.000136530.26291 0.000205042.81249
+ 0.000 50000.86902 0.000 50001.52468
+56AUT5A3 0.000 22499.42350 0.000136530.70112 0.000205053.04695
+ 0.000 50000.87522 0.000 50001.68516 0.000 50004.18094
+57AUT5A4 0.000 22499.25174 0.000136528.91954 0.000205046.26382
+ 0.000 50000.49352 0.000 50001.03270 0.000 50002.52680
+ 0.000 50002.52680
+58AUT5AM 0.000 22499.02967 0.000136526.09974 0.000205035.90210
+ 0.000 50000.00000 0.000 50000.00000 0.000 50000.00000
+ 0.000 50000.00000 0.000 50000.00000
+51Y2 Y3 .01016 10124.87377
+52EGCT1B 0.000 61435.16312.04458372798.88582
+53EGCHEBEGCT1B 0.000 92263.79188 0.000559873.90936.12388840864.72923
+54AUT5B1AUT5B0 0.000 22499.42979 0.000136528.47263 0.000205039.49115
+ 0.000 50000.88921
+55AUT5B2AUT5B0 0.000 22499.42071 0.000136530.26291 0.000205042.81249
+ 0.000 50000.86902 0.000 50001.52468
+56AUT5B3AUT5B0 0.000 22499.42350 0.000136530.70112 0.000205053.04695
+ 0.000 50000.87522 0.000 50001.68516 0.000 50004.18094
+57AUT5B4AUT5B0 0.000 22499.25174 0.000136528.91954 0.000205046.26382
+ 0.000 50000.49352 0.000 50001.03270 0.000 50002.52680
+ 0.000 50002.52680
+58AUT5BMAUT5B0 0.000 22499.02967 0.000136526.09974 0.000205035.90210
+ 0.000 50000.00000 0.000 50000.00000 0.000 50000.00000
+ 0.000 50000.00000 0.000 50000.00000
+51Y3 Y1 .01016 10124.87377
+52EGCT1C 0.000 61435.16312.04458372798.88582
+53EGCHECEGCT1C 0.000 92263.79188 0.000559873.90936.12388840864.72923
+54AUT5C1AUT5C0 0.000 22499.42979 0.000136528.47263 0.000205039.49115
+ 0.000 50000.88921
+55AUT5C2AUT5C0 0.000 22499.42071 0.000136530.26291 0.000205042.81249
+ 0.000 50000.86902 0.000 50001.52468
+56AUT5C3AUT5C0 0.000 22499.42350 0.000136530.70112 0.000205053.04695
+ 0.000 50000.87522 0.000 50001.68516 0.000 50004.18094
+57AUT5C4AUT5C0 0.000 22499.25174 0.000136528.91954 0.000205046.26382
+ 0.000 50000.49352 0.000 50001.03270 0.000 50002.52680
+ 0.000 50002.52680
+58AUT5CMAUT5C0 0.000 22499.02967 0.000136526.09974 0.000205035.90210
+ 0.000 50000.00000 0.000 50000.00000 0.000 50000.00000
+ 0.000 50000.00000 0.000 50000.00000
+C PHASE LEG N-L MODELS FOR TRANSFORMER: AUT5
+C PHASE LEG CORES ARE 3.60 METERS LONG WITH AREAS OF 0.6910 SQUARE METERS
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 4.00) AND FULLY SATURATED:(2.00, 15000.00)
+C FOR SS CALCS EACH LEG HAS REACT. OF 15740. OHMS (AT 100.0 TURNS)
+C BASED ON SLOPE OF POINT 8 BELOW, HAVING A FLUX DENSITY OF 1.7400 TESLA.
+C HYSTERESIS CURRENT OFFSET OF 3.115 AMPS IS MODELED AT SATURATION.
+C LAMINATIONS ARE MODELED BY 8 LAYERS; EDDY LOSSES USE ENTERED CORE RESISTIVITY.
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT -----><NFLUX -------->
+98AUT5A5AUT5A6 4.912234.877
+ 0.14400 3.45524
+ 0.39528 6.91044
+ 0.81635 15.54839
+ 1.12175 20.73117
+ 1.41336 24.18640
+ 2.00198 25.91428
+ 3.13598 28.16067
+ 4.23399 30.06154
+ 8.81421 31.96448
+ 19.73322 32.83478
+ 56.33246 33.72028
+ 543.11535 34.87714
+ 1083.11535 35.20278
+ 9999
+98AUT5A6AUT5A7AUT5A5AUT5A64.912234.877
+98AUT5A7AUT5A8AUT5A5AUT5A64.912234.877
+98AUT5A8 AUT5A5AUT5A64.912234.877
+98AUT5B5AUT5B6AUT5A5AUT5A64.912234.877
+98AUT5B6AUT5B7AUT5A5AUT5A64.912234.877
+98AUT5B7AUT5B8AUT5A5AUT5A64.912234.877
+98AUT5B8AUT5B0AUT5A5AUT5A64.912234.877
+98AUT5C5AUT5C6AUT5A5AUT5A64.912234.877
+98AUT5C6AUT5C7AUT5A5AUT5A64.912234.877
+98AUT5C7AUT5C8AUT5A5AUT5A64.912234.877
+98AUT5C8AUT5C0AUT5A5AUT5A64.912234.877
+C HIGH RESISTANCE ACROSS EACH UNPARALLELED TYPE 98 ELEMENT ABOVE:
+C <NAME><NAME><----><---->RRRRRRXXXXXXCCCCCC
+ AUT5A6AUT5A5 .1E+11
+ AUT5A7AUT5A6AUT5A6AUT5A5
+ AUT5A8AUT5A7AUT5A6AUT5A5
+ AUT5B6AUT5B5AUT5A6AUT5A5
+ AUT5B7AUT5B6AUT5A6AUT5A5
+ AUT5B8AUT5B7AUT5A6AUT5A5
+ AUT5C6AUT5C5AUT5A6AUT5A5
+ AUT5C7AUT5C6AUT5A6AUT5A5
+ AUT5C8AUT5C7AUT5A6AUT5A5
+C YOKE MODELS FOR TRANSFORMER: AUT5
+C EACH TOP+BOTTOM YOKE LENGTH IS 3.40 METERS WITH AREA OF 0.7060 SQUARE METERS
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 4.00) AND FULLY SATURATED:(2.00, 15000.00)
+C FOR SS CALCS EACH YOKE HAS REACT. OF 17026. OHMS (AT 100.0 TURNS)
+C BASED ON SLOPE OF POINT 8 BELOW, HAVING A FLUX DENSITY OF 1.7400 TESLA.
+C HYSTERESIS CURRENT OFFSET OF 2.943 AMPS IS MODELED AT SATURATION.
+C LAMINATIONS ARE MODELED BY 8 LAYERS; EDDY LOSSES USE ENTERED CORE RESISTIVITY.
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT -----><NFLUX -------->
+98AUT501AUT50A 4.636135.606
+ 0.13600 3.52991
+ 0.37332 7.05979
+ 0.77100 15.88444
+ 1.05943 21.17924
+ 1.33484 24.70914
+ 1.89076 26.47434
+ 2.96176 28.76924
+ 3.99877 30.71116
+ 8.32457 32.65503
+ 18.63694 33.54364
+ 53.20871 34.44660
+ 512.94277 35.60585
+ 1022.94277 35.91340
+ 9999
+98AUT50AAUT50BAUT501AUT50A4.636135.606
+98AUT50BAUT50CAUT501AUT50A4.636135.606
+98AUT50CAUT5B0AUT501AUT50A4.636135.606
+98AUT502AUT50FAUT501AUT50A4.636135.606
+98AUT50FAUT50GAUT501AUT50A4.636135.606
+98AUT50GAUT50HAUT501AUT50A4.636135.606
+98AUT50HAUT5C0AUT501AUT50A4.636135.606
+C HIGH RESISTANCE ACROSS EACH UNPARALLELED TYPE 98 ELEMENT ABOVE
+C <NAME><NAME><----><---->RRRRRRXXXXXXCCCCCC
+ AUT50AAUT501AUT5A6AUT5A5
+ AUT50BAUT50AAUT5A6AUT5A5
+ AUT50CAUT50BAUT5A6AUT5A5
+ AUT50FAUT502AUT5A6AUT5A5
+ AUT50GAUT50FAUT5A6AUT5A5
+ AUT50HAUT50GAUT5A6AUT5A5
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+C SHUNT RESISTANCES FOR EDDY LOSS MODELING OF 1/8 LAMINATION THICKNESS LAYERS.
+C CROSS-FLUX CORE RESISTIVITY IS 12.00 E-8 OHM-METERS.
+C LAMINATIONS ARE 0.2286 MM THICK; MODELED LAYERS ARE 0.0286 MM THICK.
+ AUT5A5 141050.02696
+ AUT5A6 70525.01348
+ AUT5A7 70525.01348
+ AUT5A8 70525.01348
+ AUT5B5AUT5B0 141050.02696
+ AUT5B6AUT5B0 70525.01348
+ AUT5B7AUT5B0 70525.01348
+ AUT5B8AUT5B0 70525.01348
+ AUT5C5AUT5C0 141050.02696
+ AUT5C6AUT5C0 70525.01348
+ AUT5C7AUT5C0 70525.01348
+ AUT5C8AUT5C0 70525.01348
+ AUT501AUT5B0 152575.09208
+ AUT50AAUT5B0 76287.54604
+ AUT50BAUT5B0 76287.54604
+ AUT50CAUT5B0 76287.54604
+ AUT502AUT5C0 152575.09208
+ AUT50FAUT5C0 76287.54604
+ AUT50GAUT5C0 76287.54604
+ AUT50HAUT5C0 76287.54604
+C COMBINED WINDING 1-2 AND WINDING 2-3 STRAY (EDDY CUR.) LOSS MODEL:
+C 3-PHASE W1-W2 STRAY LOSSES AT RATED MVA = 636.953 KW.
+C WITH W1-W2 REF.VOLTS = 2.085 KV.; AND W2-W3 REF.VOLTS = 0.359 KV.
+ AUT5A1AUT5A2 20.47385
+ AUT5B1AUT5B2 20.47385
+ AUT5C1AUT5C2 20.47385
+C 3-PHASE W2-W3 STRAY LOSSES AT RATED MVA = 127.094 KW.
+C WITH W1-W2 REF.VOLTS = -0.495 KV.; AND W2-W3 REF.VOLTS = 7.203 KV.
+ AUT5A2AUT5A3 1706.84712
+ AUT5B2AUT5B3 1706.84712
+ AUT5C2AUT5C3 1706.84712
+C TANK WALL MULTIPLE CHAINED PI MODEL RESISTANCES REFERRED TO 100.000 TURNS:
+C MODELED SURFACE LAYERS ARE 0.1279 MM THICK; RHOTANK = 15.00 E-8 O-M.
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ AUT581 1.67957937
+ AUT582 3.35915874
+ AUT583 6.71831748
+ AUT584 13.43663496
+ AUT585 26.87326992
+ AUT586 53.74653984
+ AUT587 80.61980976
+ AUT504 161.23961952
+$VINTAGE, 0
+C TRANSFORMER TANK WALL MODEL FOR TRANSFORMER AUT5
+C TANK WALL AND VERTICAL BRACING HAS A CROSS-SECTIONAL AREA OF 0.354 SQ. METERS.
+C ITS INSIDE PERIMETER IS 21.65 METERS. ITS AVERAGE THICKNESS IS 0.016 METERS.
+C EQUIVALENT HEIGHT AFFECTED BY ZERO SEQUENCE FLUX IS ASSUMED AT 3.15 METERS.
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 70.00) AND FULLY SATURATED:(2.05, 75000.)
+C STEADY-STATE CALCS USE THE SLOPES AT POINTS 3 BELOW. (1.0000 TESLA)
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT ----->< FLUX -------->
+98AUT581 21.31036.333
+ 2.20500 3.54468
+ 5.04000 10.63404
+ 10.39500 17.72340
+ 22.05000 23.04042
+ 50.40000 26.58510
+ 110.25000 28.35744
+ 226.80000 30.12978
+ 441.00000 31.90212
+ 1134.00000 35.44680
+ 2362.50000 36.33297
+ 4725.00000 38.03714
+ 9999
+98AUT582AUT581 21.31018.166
+ 2.20500 1.77234
+ 5.04000 5.31702
+ 10.39500 8.86170
+ 22.05000 11.52021
+ 50.40000 13.29255
+ 110.25000 14.17872
+ 226.80000 15.06489
+ 441.00000 15.95106
+ 1134.00000 17.72340
+ 2362.50000 18.16648
+ 4725.00000 19.01857
+ 9999
+98AUT583AUT582 21.3109.0832
+ 2.20500 0.88617
+ 5.04000 2.65851
+ 10.39500 4.43085
+ 22.05000 5.76011
+ 50.40000 6.64628
+ 110.25000 7.08936
+ 226.80000 7.53245
+ 441.00000 7.97553
+ 1134.00000 8.86170
+ 2362.50000 9.08324
+ 4725.00000 9.50929
+ 9999
+98AUT584AUT583 21.3104.5416
+ 2.20500 0.44309
+ 5.04000 1.32926
+ 10.39500 2.21543
+ 22.05000 2.88005
+ 50.40000 3.32314
+ 110.25000 3.54468
+ 226.80000 3.76622
+ 441.00000 3.98777
+ 1134.00000 4.43085
+ 2362.50000 4.54162
+ 4725.00000 4.75464
+ 9999
+98AUT585AUT584 21.3102.2708
+ 2.20500 0.22154
+ 5.04000 0.66463
+ 10.39500 1.10771
+ 22.05000 1.44003
+ 50.40000 1.66157
+ 110.25000 1.77234
+ 226.80000 1.88311
+ 441.00000 1.99388
+ 1134.00000 2.21543
+ 2362.50000 2.27081
+ 4725.00000 2.37732
+ 9999
+98AUT586AUT585 21.3101.1354
+ 2.20500 0.11077
+ 5.04000 0.33231
+ 10.39500 0.55386
+ 22.05000 0.72001
+ 50.40000 0.83078
+ 110.25000 0.88617
+ 226.80000 0.94156
+ 441.00000 0.99694
+ 1134.00000 1.10771
+ 2362.50000 1.13541
+ 4725.00000 1.18866
+ 9999
+98AUT587AUT586 21.310.56770
+ 2.20500 0.05539
+ 5.04000 0.16616
+ 10.39500 0.27693
+ 22.05000 0.36001
+ 50.40000 0.41539
+ 110.25000 0.44309
+ 226.80000 0.47078
+ 441.00000 0.49847
+ 1134.00000 0.55386
+ 2362.50000 0.56770
+ 4725.00000 0.59433
+ 9999
+98AUT504AUT587 21.310.56770
+ 2.20500 0.05539
+ 5.04000 0.16616
+ 10.39500 0.27693
+ 22.05000 0.36001
+ 50.40000 0.41539
+ 110.25000 0.44309
+ 226.80000 0.47078
+ 441.00000 0.49847
+ 1134.00000 0.55386
+ 2362.50000 0.56770
+ 4725.00000 0.59433
+ 9999
+C FLUX SHIELD N-L MODEL FOR TRANSFORMER: AUT5
+C FLUX SHIELDS ARE 3.15 METERS LONG WITH AREA OF 0.3652 SQUARE METERS.
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 4.00) AND FULLY SATURATED:(2.00, 15000.00)
+C FOR SS CALCS EACH F.S. HAS REACT. OF 9505. OHMS (AT 100.0 TURNS)
+C BASED ON SLOPE OF POINT 8 BELOW, HAVING A FLUX DENSITY OF 1.7400 TESLA.
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT -----><NFLUX -------->
+98AUT503AUT504 2.896673.034
+ 0.12600 7.30340
+ 0.20475 14.60680
+ 0.30870 32.86530
+ 0.39690 43.82040
+ 0.50400 51.12380
+ 0.94500 54.77550
+ 1.73250 59.52271
+ 2.52000 63.53958
+ 6.30000 67.55645
+ 15.75000 69.38230
+ 47.25000 71.20815
+ 472.50000 73.03400
+ 945.00000 75.06272
+ 9999
+C RESISTANCE UNDERESTIMATING FLUX SHIELD LOSSES, EQUAL TO LINEAR REACTANCE.
+C <NAME><NAME><----><---->RRRRRRXXXXXXCCCCCC P
+ AUT503AUT504 9505.5
+C TANK TOP MULTIPLE CHAINED PI MODEL RESISTANCES REFERRED TO 100.000 TURNS:
+C MODELED SURFACE LAYERS ARE 0.1172 MM THICK; RHOTANK = 15.00 E-8 O-M.
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ AUT591 2.00000000
+ AUT592 4.00000000
+ AUT593 8.00000000
+ AUT594 16.00000000
+ AUT595 32.00000000
+ AUT596 64.00000000
+ AUT597 96.00000000
+ AUT509 192.00000000
+$VINTAGE, 0
+C TRANSFORMER TANK TOP MODEL FOR TRANSFORMER AUT5
+C TANK TOP EDDY CURRENT PATH IS MODELED WITH A CIRCUMFERENCE OF 15.00 METERS.
+C AND A WIDTH OF 2.00 METERS; THICKNESS IS 0.015 METERS.
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 70.00) AND FULLY SATURATED:(2.05, 75000.)
+C STEADY-STATE CALCS USE THE SLOPES AT POINTS 3 BELOW.
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT ----->< FLUX -------->
+98AUT591 13.53023.062
+ 1.40000 2.25000
+ 3.20000 6.75000
+ 6.60000 11.25000
+ 14.00000 14.62500
+ 32.00000 16.87500
+ 70.00000 18.00000
+ 144.00000 19.12500
+ 280.00000 20.25000
+ 720.00000 22.50000
+ 1500.00000 23.06250
+ 3000.00000 24.14423
+ 9999
+98AUT592AUT591 13.53011.531
+ 1.40000 1.12500
+ 3.20000 3.37500
+ 6.60000 5.62500
+ 14.00000 7.31250
+ 32.00000 8.43750
+ 70.00000 9.00000
+ 144.00000 9.56250
+ 280.00000 10.12500
+ 720.00000 11.25000
+ 1500.00000 11.53125
+ 3000.00000 12.07212
+ 9999
+98AUT593AUT592 13.5305.7656
+ 1.40000 0.56250
+ 3.20000 1.68750
+ 6.60000 2.81250
+ 14.00000 3.65625
+ 32.00000 4.21875
+ 70.00000 4.50000
+ 144.00000 4.78125
+ 280.00000 5.06250
+ 720.00000 5.62500
+ 1500.00000 5.76562
+ 3000.00000 6.03606
+ 9999
+98AUT594AUT593 13.5302.8828
+ 1.40000 0.28125
+ 3.20000 0.84375
+ 6.60000 1.40625
+ 14.00000 1.82812
+ 32.00000 2.10938
+ 70.00000 2.25000
+ 144.00000 2.39062
+ 280.00000 2.53125
+ 720.00000 2.81250
+ 1500.00000 2.88281
+ 3000.00000 3.01803
+ 9999
+98AUT595AUT594 13.5301.4414
+ 1.40000 0.14063
+ 3.20000 0.42187
+ 6.60000 0.70312
+ 14.00000 0.91406
+ 32.00000 1.05469
+ 70.00000 1.12500
+ 144.00000 1.19531
+ 280.00000 1.26563
+ 720.00000 1.40625
+ 1500.00000 1.44141
+ 3000.00000 1.50901
+ 9999
+98AUT596AUT595 13.530.72070
+ 1.40000 0.07031
+ 3.20000 0.21094
+ 6.60000 0.35156
+ 14.00000 0.45703
+ 32.00000 0.52734
+ 70.00000 0.56250
+ 144.00000 0.59766
+ 280.00000 0.63281
+ 720.00000 0.70312
+ 1500.00000 0.72070
+ 3000.00000 0.75451
+ 9999
+98AUT597AUT596 13.530.36035
+ 1.40000 0.03516
+ 3.20000 0.10547
+ 6.60000 0.17578
+ 14.00000 0.22852
+ 32.00000 0.26367
+ 70.00000 0.28125
+ 144.00000 0.29883
+ 280.00000 0.31641
+ 720.00000 0.35156
+ 1500.00000 0.36035
+ 3000.00000 0.37725
+ 9999
+98AUT509AUT597 13.530.36035
+ 1.40000 0.03516
+ 3.20000 0.10547
+ 6.60000 0.17578
+ 14.00000 0.22852
+ 32.00000 0.26367
+ 70.00000 0.28125
+ 144.00000 0.29883
+ 280.00000 0.31641
+ 720.00000 0.35156
+ 1500.00000 0.36035
+ 3000.00000 0.37725
+ 9999
+C ZERO SEQUENCE MODELS ARE BASED ON AIR-CORE MODELS, PLUS DERIVED VALUE FOR
+C X100T OF 3.29690 OHMS/PHASE TANK EFFECT, REFERRED TO 100 TURNS.
+C THE (UNSHIELDED) TANK TOP IS MODELED AND HAS STRAY LOSSES.
+C THE TANK WALL IS SATURABLE; BUT ANY STRAY LOSSES ARE NOT MEASURABLE.
+C THE FLUX SHIELD IS SATURABLE AND LACKS SIGNIFICANT DISTRIBUTED GAPS.
+C COUPLING REPRESENTING TOP AND SIDE GAP REACTANCES:
+C PER-PHASE SIDE GAPS = 1.846 OHMS; TOP GAPS = 1.814 OHMS AT 100 TURNS.
+51AUT503 0.000 10.978117
+52AUT509 0.000 5.4405450.000 5.440545
+C SHUNT FLUX PATHS BYPASSING LEGS AND COILS OF EACH PHASE FOLLOW:
+C <NAME><NAME><----><---->RRRRRRXXXXXXXXXXXX
+51AUT5A4AUT5B0 0.000 7.463166
+51AUT5B4AUT5C0 0.000 7.463166
+51AUT5C4AUT503 0.000 7.463166
+C ZERO-SEQUENCE FLUXES FROM EACH PHASE TO TANK ARE EQUALIZED BY THE FOLLOWING:
+C <NAME><NAME><----><---->RRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXX
+51AUT503AUT502 0.000 3296.896640
+52AUT502AUT501 0.000 3296.8933430.000 3296.896640
+53AUT501 0.000 3296.8933430.000 3296.8933430.000 3296.896640
+C NEXT COUPLING SUMS ZERO-SEQUENCE VOLTAGES OF OUTER WINDINGS AT NODE (0,8):
+C <NAME><NAME><----><---->RRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXX
+51AUT5A3 0.000 354922.42080
+52AUT506 0.000 354922.065870.000 354922.42080
+51AUT5B3AUT5B0 0.000 354922.42080
+52AUT507AUT506 0.000 354922.065870.000 354922.42080
+51AUT5C3AUT5C0 0.000 354922.42080
+52AUT508AUT507 0.000 354922.065870.000 354922.42080
+C NON-DEDICATED STRAY ZERO-SEQUENCE LOSS RESISTANCE:
+C PRODUCES 158.213 KW LOSS FOR ENTERED TEST CONDITIONS.
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ AUT508 354.92242080
+$VINTAGE, 0
+C TIME-STEP-DAMPING BRANCHES ACROSS MAJOR AIR GAPS FOR HARMONIC ORDER: 500.0
+C <NAME><NAME><----><---->RRRRRRXXXXXXCCCCCC
+ AUT5A4AUT5B0 373.16 .00142
+ AUT5B4AUT5C0 373.16 .00142
+ AUT5C4AUT503 373.16 .00142
+ AUT501 164.84 .00322
+ AUT501AUT502 164.84 .00322
+ AUT502AUT503 164.84 .00322
+C 10000-HENRY FLUX MONITORING INDUCTANCES TO INITIALIZE TACS.
+C <NAME><NAME><----><---->RRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXX
+51AUT5A5AUT5D1 3769911.185
+51AUT5B5AUT5D2 3769911.185
+51AUT5C5AUT5D3 3769911.185
+51AUT501AUT5D4 3769911.185
+51AUT502AUT5D5 3769911.185
+C End of $INCLUDE. File name = aut5-brn.inc
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+C CORNER GROUND DELTA
+ Y1 1000.
+C ENERGIZE VIA 100 OHM RESISTANCES FOR DAMPING
+C 0.1 ohm is now essential; 100 is too large relative to xl
+ SRC2A EGCT1A .1
+ SRC2B EGCT1B .1
+ SRC2C EGCT1C .1
+$VINTAGE, 0
+BLANK CARD ENDING ALL ATP-SORTED BRANCH CARDS (from blank.inc)
+C $INCLUDE aut5-swx.inc
+C WSM touches using DOS editor to make readable.
+C MEAS. SWITCHES TO MONITOR CURRENT IN 10000-HENRY CORE FLUX-MONITORING INDUCTS.
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+ AUT5D1 MEASURING
+ AUT5D2AUT5B0 MEASURING
+ AUT5D3AUT5C0 MEASURING
+ AUT5D4AUT5B0 MEASURING
+ AUT5D5AUT5C0 MEASURING
+C End of $INCLUDE. File name = aut5-swx.inc
+C ********************************************* STUDY-DEPENDENT CABLE SWITCHING:
+C SWITCH CARD: COL 1-2 IS 0 FOR ORDINARY & GAUSS. STATISTICS SWITCHES, NOT TACS.
+C CLOSING, OPENING TIMES AND STATISTICS PARAMETERS BELOW ARE IN SECONDS.
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+C <NAME><NAME><GAUS AVG><GAUS SIG><AMP MARG> STATISTICS P
+C METERS INTERNAL CURRENT OF PHASE LEG A,B,C
+ AUT5AMAUT5A5 MEASURING 1
+ AUT5BMAUT5B5 MEASURING 1
+ AUT5CMAUT5C5 MEASURING 1
+C ENERGIZED AT ZERO
+ SRCA SRC2A MEASURING 1
+ SRCB SRC2B MEASURING 1
+ SRCC SRC2C MEASURING 1
+C ENERGIZED AT ZERO PLUS
+C SRCA SRC2A .0001 999. 1.
+C SRCB SRC2B .0001 999. 1.
+C SRCC SRC2C .0001 999. 1.
+BLANK CARD ENDING ALL ATP-SORTED SWITCH CARDS (from blank.inc)
+$LISTON
+C $INCLUDE aut5-src.inc
+C WSM touches file with DOS editor to make it into a DOS file
+C TACS-CONTROLLED SOURCES FOR HYSTERESIS/RESIDUAL MMF IN TRANSFORMER AUT5
+C <NAME> *= VOLTAGE IF POSITIVE; CURRENT IF NEGATIVE
+60AUT5A5-1
+60AUT5B5-1
+60AUT5C5-1
+60AUT5B0-1
+60AUT5C0-1
+60AUT501-1
+60AUT502-1
+C End of $INCLUDE. File name = aut5-src.inc
+C *= VOLTAGE IF POSITIVE; CURRENT IF NEGATIVE
+C <NAME> <CRESTVAL><FREQ ><ANGLE > <T START ><T STOP >
+C 138 KV L-L = 112676.5 V CREST or 1877.94 at 1 hertz
+C 40 percent = 751.17
+C 60 percent = 1126.76
+C 80 percent = 1502.35
+C 100 percent = 1877.94
+C 120 percent = 2253.53
+14SRCA 1 2253.53 1. 0. -1.0 999.
+14SRCB 1 2253.53 1. -120. -1.0 999.
+14SRCC 1 2253.53 1. -240. -1.0 999.
+BLANK CARD ENDING ALL ATP-SORTED SOURCE CARDS (from blank.inc)
+C <BUS ><VOLT><MON.><FOR ><NODE>< >< >< >< >< >< >< >< >
+ EGCT1A EGCT1B EGCT1C
+BLANK CARD ENDING ALL ATP-SORTED OUTPUT CARDS (from blank.inc)
+ 193.01 0.0 0.1 BRANCH
+ TACS ALLINATACS ALLINBTACS ALLINC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 18 subcases.
+C "FREQUENCY SCAN" use, with subsequent plotting of phasors vs. frequency.
+C This test case uses uniform frequency spacing. It basically like DC-51,
+C but involves some variations of output and batch-mode plotting.
+PRINTED NUMBER WIDTH, 8, 2, { Each column of width 8 includes 2 blank bytes
+FREQUENCY SCAN, 60., 10., 280., 0, { 60 < f < 280 Hz in 10-Hz increments
+CHANGE PLOT FREQUENCY { Request to vary frequency of plot points and .PL4 file
+ 5 5 10 3 20 1 { On step 5, change to 5, etc.
+ 0.1 0.0 { dT of col 1-8 is not used; TMAX of 9-16 ==> no simulation
+ 1 1 1 0 1 -1
+ 5 5 10 3 20 1
+C Note: 1-punch in col. 80 of the following card was replaced by LIN002 below.
+C This illustrates a second way to order current output: by branch name.
+C When the user does not name branches himself, NMAUTO = 1 means the
+C program will provide default names. The first branch is LIN001, so
+C this should be used to replace the column-80 punch. But this branch
+C is in series with the 2nd branch, and has no shunt leakage, so the
+C same current can be found from the second branch (name LIN002). This
+C alternative is more interesting since it shows current output seems to
+C be possible for the 1-phase, constant-parameter distributed model.
+ GEN SEND 3.0 40.
+-1SEND MID .306 5.82 .012 20. { 20 miles of line from DC-37
+ 1MID REC 34.372457.68.15781 { 10 miles of Pi from DC-3
+ EARTH 200. 1
+C The preceding branch has a 1-punch in column 80 for current output. If a 3
+C had instead been used, branch voltage would have been produced, too. Note
+C it would be equal to the node voltage of node EARTH. No choice of polarity
+C is possible, this way. More interesting is the "-5" request below, which
+C allows polarity reversal (a minus sign will be added).
+BLANK card ending branches
+C Note: 1-punch in col. 80 of the following card was replaced by SWT001 below.
+C This illustrates a second way to order current output: by switch name.
+ REC EARTH MEASURING
+BLANK card ending (here, non-existent) switches
+14GEN 100. 60. -1.
+BLANK card ending sources
+C Requests for output variables follow. About currents, there is no control
+C over location in the output vector. Switch currents always precede branch
+C currents, and both are in natural order (of component number). But order of
+C voltages is controlled by the user. Note requests for node voltages have
+C been split, and in between there is a request for a voltage difference.
+C This is the order in the output vector, note. Yet, all voltage requests
+C made here (after the blank card ending source cards) follow all that might
+C have been made with column-80 punches on branch or switch cards.
+ GEN SEND MID REC
+-5 EARTH { -5 ==> 2A6 name pairs for voltage differences (branch V)
+-1SWT001LIN002 { -1 ==> Branch/switch current out; use A6 component names
+ EARTH { Node voltage. Note branch voltage 2 lines above has opposite polarity
+BLANK card ending node voltage outputs
+ PRINTER PLOT
+C Note the peculiar 60 units/inch on the following plot cards. This is not
+C a mistake. With 6 lines/inch of the printer plot, & the F-scan frequency
+C increment of 10 Hz, there will be exactly one line for each freq step:
+ 14660. 60.280. GEN SEND MID REC
+ 19660. 60.280. SEND MID EARTH REC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 18 subcases illustrates IF-THEN-ENDIF for conditional data
+C assembly as described in the July, 1998, newsletter. Environment
+C variable RESISTOR must be set prior to use, in order. to avoid
+C an error stop. This can not be set internally, unfortunately.
+PRINTED NUMBER WIDTH, 9, 2,
+POWER FREQUENCY, 50.,
+ .0001 .020 50.
+ 1 1 1 1 1 -1
+ 5 5 20 20
+C 1st of 2 identical, disconnected networks uses manually-defined branches:
+C IF ( RESISTOR .EQ. 'ONEHALF' ) SET VARIABLE { Execute OS command SET RESISTOR=ONEHALF
+IF ( RESISTOR .EQ. 'ONEHALF' ) THEN { If user wants to use resistive alternative:
+ GEN TRAN 0.5 { 1st of 3 alternatives is resistor
+ELSEIF ( RESISTOR .EQ. 'ZERO' ) THEN { If user wants to use resistive alternative:
+ GEN TRAN 0.0 { 2nd of 3 alternatives is illegal resistor
+ELSE { Alternatively (if environment variable RESISTOR is not YES):
+ GEN TRAN 0.5 { 3rd of 3 alternatives is inductor
+ENDIF { Terminate 5-line IF statement that uses RESISTOR to choose the model
+ TRAN 0.5
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.414 50. 0.0 -1.
+BLANK card terminating program source cards.
+ GEN TRAN
+BLANK card ending program output-variable requests.
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE --- NEWSORT ---
+C 4th of 18 subcases illustrates new /-card sorting as described in a story of
+C the January, 1999, newsletter. Correction of trouble sorting /INITIAL was
+C involved as explained by Prof. Juan A. Martinez Velasco of the Polytechnic
+C University of Catalunya in Barcelona, Spain. This is a modification of his
+C FILE4.DAT DELTAT is increased and # of steps is reduced. Blank cards no
+C longer are required, so have been removed. A requirement of the new logic
+C is that all data after miscellaneous data cards must be sorted. This was
+C not true of the old logic (see DC-8). Note that some data classes are not
+C being used (no problem). Note the NEWSORT declaration on line 1, which
+C was patterned after the use of NOSORT in DC-36. In effect, the NEWSORT
+C request will make sure SZBED carries a minus sign. Not illustrated is
+C parallel OLDSORT to make sure SZBED does _not_ carry a minus sign (this
+C would force use of the old sorting logic). It is assumed STARTUP remains
+C as it was (no minus sign applied to SZBED) in order to handle DC-8.
+ .000100 .010
+ 1 1 -1
+ 5 5 20 20
+/OUTPUT
+ BUS-0 BUS-1 BUS-2
+/SOURCE
+14BUS-0 1.0 50.0 0.0 -1.0 1.0
+/BRANCH
+ BUS-0 BUS-1 10.0 10.0
+ BUS-1 10.0 { Illustrate an in-line comment
+C Comment cards are allowed anywhere, of course. Add one here after
+C the first two branches just to show there is no problem.
+/SWITCH
+ BUS-1 BUS-2 .00035 1.0 1.0 1
+/BRANCH
+ BUS-2 10.0
+/INITIAL
+ 2BUS-2 0.5
+BEGIN NEW DATA CASE
+C 5th of 18 subcases is an improvement over DC4AT5.DAT of SPY @5. But that
+C required SPY. Beginning 23 August 1998, parametric studies can be run
+C using higher-level batch-mode commands. See October, 1998, newsletter.
+C Following request carries params MAXKNT IOPCVP NOSTAT
+POCKET CALCULATOR VARIES PARAMETERS 5 1 0 { Loop five times
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .0001 .020
+ 1 -1 1 1 1 -1 2
+ 5 5 20 20
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+C __MILLIHENRIES__ = 1000. - ( KNT - 1.0 ) * 100. { L =1000, 900, 800, 700, & 600 mHenry
+C MILLIH = 1000. - ( KNT - 1.0 ) * 100. { L =1000, 900, 800, 700, & 600 mHenry
+VALUE = 1000. - ( KNT - 1.0 ) * 100. $$ { L =1000, 900, 800, 700, & 600 mHenry
+__MILLIHENRIES__ = VALUE { 1st of 2 uses of preceding intermediate variable
+MILLIH = VALUE { 2nd of 2 uses of preceding intermediate variable
+C Note about preceding. There are two uses of the same inductance value. The
+C 2nd is 6 columns wide for use with narrow-format series R-L-C data. The 1st
+C is for wide-format, which allows 16 columns. The underscore is required as
+C the first character if it is not a letter. Note that the second symbol is
+C contained in the first, so order is mandatory. If order were switched, an
+C error message would terminate execution following a warning message:
+C ++++ Notice. Symbol 1 is contained within symbol 2.
+C Swap these two and try again.
+C Intermediate variable VALUE was introduced 29 Dec 98. Before that, each
+C of the two symbols had the right hand side of VALUE. For this trivial
+C case, the difference is unimportant. But for other cases, the formula is
+C much too long to be contained on a single line. So, it is broken down
+C into components, with an intermediate variable used for each. Note the
+C $$ on the right of the intermediate variable. By definition, such a
+C variable is used within the pocket calculator only. The name is not to be
+C searched for and replaced in later data cards outside of the $PARAMETER
+C block (terminated by the following blank card). For industrial-strength
+C use of intermediate variables, see Orlando Hevia's induction motor model
+C in Rule Book documentation of $PARAMETER.
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+C Series R-L-C, narrow: RRRRRRLLLLLLCCCCCC
+ TRAN 10.0 3
+ GEN TRAN6 5.0MILLIH { $PARAMETER will define this inductance
+$VINTAGE, 1, { The preceding used old, normal, narrow format. Switch to wide
+C Series R-L-C, wide: RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ TRAN6 10.0 3
+ GEN TRAN 5.0__MILLIHENRIES__ { $PARAMETER will define this inductance
+$VINTAGE, 0, { Return to old, normal, narrow format
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. 50. -1.
+BLANK card terminating program source cards.
+ GEN TRAN TRAN6
+BLANK card ending program output-variable requests.
+ CALCOMP PLOT { Needed to cancel PRINTER PLOT of preceding subcase
+ 194 2. 0.0 20. -.40 .40TRAN
+BLANK card ending batch-mode plot cards
+-1 10.TRAN { Statistical tabulation of branch voltage (TRAN, TERRA)
+BLANK card ending all statistical tabulation request cards
+BEGIN NEW DATA CASE
+C 6th of 18 subcases illustrates data that created the compiled TACS code
+C that is built into the UTPF. As used in RUN.BAT the output will be
+C CODETACS.INC and DECKTAC*.INC --- files put in the UTPF. The logic
+C shown below was reproduced 9 times to produce the 60 variables mentioned
+C in the January, 1998, newsletter (see TAL explanation). Below will be
+C found the basic pocket calculator formulas that were used to illustrate
+C how slow Dube's MODELS and TACS are for such basic mathematics.
+C BENCHMARK DC-18b --- original source of formulas to be found below.
+COMPILED TACS MAKE { Alternative to SET COMPTACS=MAKE used because later subcase
+SINGLE STEP IF MAKE { Program will reduce TMAX to DELTAT if SET COMPTACS=MAKE
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ABSOLUTE TACS DIMENSIONS
+ 10 90 100 20 30 400 350 60
+ .00002 2.0
+ 1 -11 0 0 1 -1
+ 5 5 20 20 100 100 1000 1000 10000 10000
+TACS STAND ALONE
+99TEST1 = 10.0 * ( 1.0 + TIMEX ) ** 2 + 50.
+99TEST2 = 1.E2 * COS ( 2.0 * 3.14159 * TEST1 / 100. )
+99TEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( TEST2 ) )
+99TEST5 = 2.0 * PI * TEST1 / 100.
+99TEST6 = 2.0 * SIN ( TEST5 )
+99TWOX = 2.E-4 * ( TEST2 * TEST2 + 2500. * TEST6 * TEST6 )
+C 99TEST1 = 10. ---- This line is replacement for preceding to approximate removal of math
+33TEST1 TEST2 TEST3 TEST5 TEST6 TWOX
+BLANK card ending all TACS data cards
+ CALCOMP PLOT { Negative IPLOT = -11 will ignore the following plot cards
+ 143 .2 0.0 2.0 TEST1 TEST2 TEST3
+ 143 .2 0.0 2.0 TEST5 TEST6 TWOX
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of 18 subcases illustrates use of pocket calculator to vary the frequency
+C of a distributed-parameter transmission line within the FREQUENCY SCAN loop
+C by means of TO SUPPORTING PROGRAM to provide LINE CONSTANTS rederivation.
+C This use of LINE CONSTANTS for each frequency of the F-scan will not be
+C seen in the .LIS file as proof of use unless /OUTPUT is added to the
+C request that declares "TO SUPPORTING PROGRAM" (see illustration on comment).
+C This subcase added 9 November 1999. This does work. Prior to adding the data
+C here, there was an attempt to add it to end of DC-52, but that failed. It
+C seems there is some conflict with LMFS (complicated). The $PUNCH statement
+C was not being executed right. Ignore that problem by moving data here.
+C FMIMFS--DELFFS--FMAXFS--NPD-----
+C 11111111222222223333333344444444
+FREQUENCY SCAN 2.0 200. 8
+C Following request carries params MAXKNT IOPCVP NOSTAT
+POCKET CALCULATOR VARIES PARAMETER 1 1 0
+C Preceding MAXKNT is not used since FREQUENCY SCAN is involved. ATP will
+C internally calculate the correct # of steps from FMINFS, FMAXFS, etc.
+C Note we scan from 2 Hz to 200 Hz --- 2 decades, with 8 points/decade
+C for a total of 16 plus the starting point, so 17 total. The output
+C looks like exponential explosion as resonance around 300 Hz (would the
+C 138 miles be 1/4 of a wavelength at 300 Hz? Probably) is approached.
+C The 8 points/decade are needed to see the right edge accurately.
+C 30 July 2001, preceding NOSTAT is added. This is a binary switch
+C to suppress statistical tabulation ("no statistics") if value is 1.
+C But for F-scan, there is no statistical tabulation, so value is
+C immaterial.
+$PARAMETER
+C FRECU_____ = 0.01* ( EXP( LOG(10.0) /10.0 ) ) ** (KNT-1.0)
+C The preceding was Tsu-huei's original, single desired line. But when first
+C tried, there was an error (see April, 2000 newsletter). For about half
+C a year, the following lower-order equivalent was required:
+C EXPON = KNT - 1.0 $$
+C BASE = EXP( LOG(10.0) / 10.0 ) $$
+C FRECU_____= .01 * BASE ** EXPON
+C Preceding was not nice for plotting. Switch to 8 points/decade beginning
+C at 2 Hz (below which nothing much happens):
+C EXPON = KNT - 1.0 $$
+C The preceding line worked fine. But it was not as demanding of pocket
+C calculator logic as the following. As mentioned in the newsletter, the
+C leading "-" on the leading constant was mishandled prior to 13 June 2000:
+C EXPON = -1.0 + KNT $$
+C BASE = EXP( LOG(10.0) / 8.0 ) $$
+C FRECU_____= 2.0 * BASE ** EXPON
+C The preceding 3 lines were used successfully until 13 October 2007. Then,
+C new logic to handle extraneous parens was added to POCKET, and it seemed
+C that this also should handle the original problem. To prove it, comment
+C out the preceding 3 cards and replace by the equivalent original. The .LIS
+C file is esstentially unchanged. WSM, 13 Oct 2007 :
+FRECU_____ = 2.0 * ( EXP( LOG(10.0) /8.0 ) ) ** (KNT-1.0)
+BLANK card terminates $PARAMETER definitions
+EXACT PHASOR EQUIVALENT { Switch from lumped-R to exact Pi-equiv. of distributed
+C The preceding is not really necessary. It should make the representation more
+C accurate, of course. At the highest frequency, if we are approaching 1/4 of
+C a wavelength, there should be a difference. But that difference seems small.
+C Consider the output vector at the ending frequency, with and without EPE:
+C With EPE: 17 200. 303000. 0.0 371408.7751 -8.40003412 583671.5409 -30.2933187 1684.552878 49.89669008
+C Without : 17 200. 303000. 0.0 371386.1316 -8.41590291 583780.5064 -30.3165151 1685.249616 49.82908871
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ -1. -1. 60. 60. { Note dT and Tmax are ignored for FREQ SCAN
+ 1 -1 1 0 1
+ SSSS1AAAAA1A 15. 1
+ SSSS1BBBBB1B 15.
+ SSSS1CCCCC1C 15.
+C Add /OUTPUT anywhere on right of following request to produce output of
+C the supporting program. Without this, all output will be suppressed.
+C < TO SUPPORTING PROGRAM (NEXT) > /OUTPUT { Add to see LINE CONSTANTS output
+< TO SUPPORTING PROGRAM (NEXT) > { Request for a jump to a supporting program
+C The following data, through the blank card, is from 2nd subcase of DCNEW-3.
+LINE CONSTANTS { This is the supporting program that is to be executed in-line
+BRANCH AAAA1AAAAA2ABBBB1BBBBB2BCCCC1CCCCC2C
+UNTRANSPOSED { Request for the line to be represented as untransposed
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK CARD ENDING CONDUCTOR CARDS OF "LINE CONSTANTS" CASE
+100. FRECU_____ 1 11 1 138. 1
+BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+$PUNCH, sup.pch ! { Output the just-created branch cards to a disk file
+BLANK card ending LINE CONSTANTS data cases { Last of supporting program data
+C End of data for supporting program. Branch data input now resumes:
+$CLOSE, UNIT=7 STATUS=KEEP { Disconnect file containing KC Lee branch cards
+$OPEN, UNIT=7 STATUS=UNKNOWN FILE=dumpch.lis FORM=FORMATTED
+$INSERT, sup.pch, { Dynamic connection of disk file created by $PUNCH above
+ AAAA2A 1000. { Resistive load at far end of 1st of 3 phases
+ BBBB2B AAAA2A { 2nd of 3 phases is terminated by the same R
+ CCCC2C AAAA2A
+BLANK card ending branch cards
+BLANK card ending switch cards
+ POLAR OUTPUT VARIABLES { 1st of 3 alternatives for output gives mag, angle
+C Preceding is one of 3 alternatives. The other two are, after commenting:
+C BOTH POLAR AND RECTANGULAR { Request for (in order): mag, angle, real, imag
+C RECTANGULAR OUTPUT VARIABLES { 3rd of 3 alternative outputs gives real, imag
+14SSSS1A 303000.FRECU_____ 0. -1.
+14SSSS1B 303000.FRECU_____ -120. -1.
+14SSSS1C 303000.FRECU_____ 120. -1.
+BLANK card ending source cards
+ SSSS1AAAAA1AAAAA2A { Names of 3 nodes (all a-phase, note) for V-node output
+C Column headings for the 4 output variables follow. These are divided among the 3 possible FS variable classes as follows ....
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C For each variable, magnitude is followed immediately by angle. Both halves of the pair are labeled identically, note.
+C Step F [Hz] SSSS1A SSSS1A AAAA1A AAAA1A AAAA2A AAAA2A SSSS1A SSSS1A
+C AAAA1A AAAA1A
+C 1 2.0 303000. 0.0 303004.5676 -.028517799 301911.4209 -.185323276 301.7646507 1.720504686
+C New parameter values follow: 1) 2.6670429
+C 2 2.6670429 303000. 0.0 303008.121 -.038018478 301917.2789 -.247632726 301.7897693 2.294000532
+C New parameter values follow: 1) 3.5565588
+C 3 3.5565588 303000. 0.0 303014.4401 -.050681287 301931.0223 -.330715516 301.8820814 3.058524978
+BLANK card ending output variable requests (here, only node voltages)
+C New parameter values follow: 1) 84.339301
+C 14 84.339301 303000. 0.0 311692.5772 -1.38233484 333737.5916 -8.33491659 541.8603856 48.84191334
+C New parameter values follow: 1) 112.46827
+C 15 112.46827 303000. 0.0 319327.0284 -2.11141826 362848.3744 -11.7652408 709.4891996 53.86022223
+C New parameter values follow: 1) 149.97884
+C 16 149.97884 303000. 0.0 335125.0318 -3.6799135 425532.3722 -17.6205065 1015.840142 55.61763042
+C New parameter values follow: 1) 200.
+C 17 200. 303000. 0.0 371408.7751 -8.40003412 583671.5409 -30.2933187 1684.552878 49.89669008
+ F-SCAN COMPONENTS MAG MAG { Access "mag" and "mag" next (only 1st used)
+ 197.25 0.0 2.5 0.02000SSSS1AAAAA1A Magnitude of i-aAmperes
+ F-SCAN COMPONENTS ANGLE ANGLE { Access "angle" and "angle" next
+ 147.25 0.0 2.5 -40. 0.0AAAA1AAAAA2A Angles of v-nodeDegrees
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 18 subcases illustrates two separate $PARAMETER blocks within a
+C PCVP (POCKET CALCULATOR VARIES PARAMETERS) loop over time simulation.
+C The data comes from Prof. Juan Martinez as should be explained in the
+C April, 2001, newsletter. Prior to correction on 19 December 2000, symbol
+C RESIST was not being correctly handled on the 2nd pass. It should have
+C value 5 ohms on the first pass and 15 ohms on the second pass. Note that
+C it is in the 1st of two blocks. Prior to correction, memory of this was
+C being overlaid by memory for the 2nd block. Now, there is no overlaying.
+C 25 December 2000, add variable HOLD01 to verify the new non-volatile
+C storage (any variable HOLDxx that begins with the 4 letters HOLD).
+C Gabor Furst asked for this extension as should be explained in the
+C April, 2001 (or newer), newsletter. HOLD01 begins with value zero,
+C so has value 1 on first pass and 3 on 2nd pass of loop over KNT. The
+C variable is not really being used for anything in this illustration,
+C but it certainly could be. Except for its non-volatile nature, it is
+C a normal variable in every other respect.
+C Following request carries params MAXKNT IOPCVP NOSTAT
+POCKET CALCULATOR VARIES PARAMETERS 2 0 1
+ .000100 .030
+ 20 -1
+$PARAMETER
+RESIST = 5.0 + (KNT-1.0)*10.0
+HOLD01 = HOLD01 + KNT { Non-volatile variable because 1st 4 letters "HOLD"
+BLANK card ending 1st of 2 $PARAMETER blocks
+$PARAMETER
+AB_TON = 0.01
+ABTOFF = 0.01 + ( KNT - 1.0 ) * 0.01
+GND__K = KNT SERIALIZE 'GND___'
+BLANK card ending 2nd of 2 $PARAMETER blocks
+ GND__2 100. 0
+ GND__1 RESIST 0
+ SOURCAMIDD_A RESIST 0
+BLANK card ending branch cards
+ MIDD_AGND__K AB_TON ABTOFF
+BLANK card ending switch cards
+14SOURCA 0 1.5E5 50. -1. 1.
+BLANK card ending source cards
+ MIDD_A
+BLANK card ending names of nodes for voltage output
+BLANK card ending batch-mode plot cards
+BLANK card ending all statistical tabulation request cards
+BEGIN NEW DATA CASE
+C 9th of 18 subcases is copied from 5th, but MODELS data has been added
+C to process and display extrema. This service begins 1 January 2001.
+C Optional col. 32: MEXTR 0 or 1 ==> minimum extrema; 2 ==) all extrema
+MODELS PROCESSES EXTREMA 0 { Use MODELS in simulation but only for extrema
+C Following request carries params MAXKNT IOPCVP NOSTAT
+POCKET CALCULATOR VARIES PARAMETERS 5 1 1 { Loop five times
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .0001 .020
+ 1 -1 1 1 0 -1
+ 5 5 20 20
+C Note integer miscellaneous data card has extrema flag MAXOUT = 0 as proof
+C that the user does not need to remember to set it. PCVP automatically will
+C set this to unity. After that, MEXTR will suppress such output for passes
+C 2 onward unless MEXTR = 2 (which will show all extrema). MODELS output
+C will always be seen, although note that such output will disappear if all
+C write( statements are removed from the MODELS data. In the following
+C data, INPUT variables are special. In place of the usual variable types,
+C one of 4 new ones must be used: Xmax, Tmax, Xmin, and Tmin corresponding to
+C the 4 rows of extrema output. The name within parentheses ("dummy") is not
+C used, so can be any character string beginning with a letter. It can not
+C be omitted, however (unfortunately). Next comes the fixed in-line comment,
+C which can begin in any column. But, to the right of the colon, format is
+C fixed. It is assumed I2, 1X, 2A6 information is involved. The integer is
+C the same one used on a batch-mode plot card: 4 if node voltage, 8 if branch
+C voltage, and 9 if branch current (or an S.M., a U.M., or a TACS variable).
+C The two names that follow correspond to the printed heading. One minor
+C enhancement is use of symbolic BLANK, which ATP interprets as real blanks.
+C Each INPUT variable must be on its own line (see the 4 lines just below).
+C 2 January 2001, WRITE( statements are left-adjusted to column 1 to take
+C advantage of new logic that will hold the user's case within text (as
+C delineated by apostrophes).
+C 3 January 2001, add an initial $PARAMETER block that has no use. This is
+C inspirated by Prof. Martinez's data TESTA1.DAT which inspired correction
+C to allow such practice.
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+UNUSED = 5.0 { Following data does not involved character string "unused".
+BLANK card ends $PARAMETER definitions that are processed before MODELS data
+MODELS
+INPUT tran1 {Xmax(dummy)} -- Plot type and variable names: 8 TRAN6 BLANK
+INPUT tran2 {Tmax(dummy)} -- Plot type and variable names: 8 TRAN6 BLANK
+INPUT tran3 {Xmin(dummy)} -- Plot type and variable names: 8 TRAN6 BLANK
+INPUT tran4 {Tmin(dummy)} -- Plot type and variable names: 8 TRAN6 BLANK
+MODEL m1 -- Begin definition of a model named m1
+ VAR pass, sum -- Verify that values are kept between passes
+ INPUT row1 {dflt: 0} -- Connects with Xmax, the 1st of 4 extrema rows
+ INPUT row2 {dflt: 0} -- Connects with Tmax, the 2nd of 4 extrema rows
+ INPUT row3 {dflt: 0} -- Connects with Xmin, the 3rd of 4 extrema rows
+ INPUT row4 {dflt: 0} -- Connects with Tmin, the 4th of 4 extrema rows
+ INIT pass:=0 -- Begin with the pass number equal to zero
+ sum:= 0 ENDINIT -- Begin with the sum of Xmax equal to zero
+ EXEC -- For each new set of extrema, we want to do this:
+ pass:=pass+1 -- Count the pass number of the loop over simulations
+ sum := sum + row1 -- Sum all Xmax as trivial demonstration of math
+write(' ************ In MODELS, pass = ', pass, 'sum =', sum )
+write( ' Four rows Xmax, Tmax, Xmin, Tmin = ', row1, row2, row3, row4 )
+write( ' ' ) -- Blank line separates this pass from following one
+C 3 March 2001, to satisfy need of Prof. Juan Martinez in Barcelona, add the
+C following copy of the preceding 3 lines. This produces a 2nd copy of the
+C preceding output in disk file MODELS.1 that is connected to I/O unit 37
+C as used by $CLOSE, $OS, and $OPEN commands immediately before plotting.
+write1(' ************ In MODELS, pass = ', pass, 'sum =', sum )
+write1( ' Four rows Xmax, Tmax, Xmin, Tmin = ', row1, row2, row3, row4 )
+write1( ' ' ) -- Blank line separates this pass from following one
+ ENDEXEC -- End of operations for each new set of extrema
+ENDMODEL -- End of the model named m1
+USE m1 as m1
+ INPUT row1 := tran1
+ INPUT row2 := tran2
+ INPUT row3 := tran3
+ INPUT row4 := tran4
+ENDUSE
+ENDMODELS
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+C __MILLIHENRIES__ = 1000. - ( KNT - 1.0 ) * 100. { L =1000, 900, 800, 700, & 600 mHenry
+C MILLIH = 1000. - ( KNT - 1.0 ) * 100. { L =1000, 900, 800, 700, & 600 mHenry
+VALUE = 1000. - ( KNT - 1.0 ) * 100. $$ { L =1000, 900, 800, 700, & 600 mHenry
+__MILLIHENRIES__ = VALUE { 1st of 2 uses of preceding intermediate variable
+MILLIH = VALUE { 2nd of 2 uses of preceding intermediate variable
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+C Series R-L-C, narrow: RRRRRRLLLLLLCCCCCC
+ TRAN 10.0 3
+ GEN TRAN6 5.0MILLIH { $PARAMETER will define this inductance
+$VINTAGE, 1, { The preceding used old, normal, narrow format. Switch to wide
+C Series R-L-C, wide: RRRRRRRRRRRRRRRRLLLLLLLLLLLLLLLLCCCCCCCCCCCCCCCC
+ TRAN6 10.0 3
+ GEN TRAN 5.0__MILLIHENRIES__ { $PARAMETER will define this inductance
+$VINTAGE, 0, { Return to old, normal, narrow format
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. 50. -1.
+BLANK card terminating program source cards.
+ GEN TRAN TRAN6
+BLANK card ending program output-variable requests.
+C 3 March 2001, to satisfy need of Prof. Juan Martinez in Barcelona, add the
+C following 6 $-cards. Together with preceding WRITE1 of MODELS, this
+C demonstrates the needed ability for MODELS to create a disk file that will
+C be disconnected and renamed at the end of a PCVP pass. When execution is
+C complete, TEMPFILE.LIS will contain the 5th and last of 5 successive
+C contents, of course. Result of the TYPE command will not be detected in
+C the .LIS file, unfortunately, but it can be seen on the screen during
+C execution, if there is any question about content of the preceding 4. Of
+C course, the WRITE1 statements are the same as WRITE, so in fact the
+C output of TYPE is indirectly documented in the .LIS file.
+$CLOSE, UNIT=37 STATUS=KEEP { Disconnect file connected to MODELS WRITE1(
+$OS, DEL TEMPFILE.LIS { Make sure this file does not exist so RENAME is legal
+$OS, RENAME MODELS.1 TEMPFILE.LIS { Save MODELS WRITE1( file to a new name
+$OS, TYPE TEMPFILE.LIS { Display on screen the MODELS WRITE1( file contents
+C $OS, PAUSE { For interactive use on a fast computer, allow time to inspect
+C the output produced by the preceding TYPE command.
+$OPEN, UNIT=37 FILE=models.1 FORM=FORMATTED STATUS=NEW ! { Connect new file for WRITE1(
+BLANK card ending batch-mode plot cards
+C The following request for statistical tabulation should work fine. But it
+C was demonstrated in the 5th subcase, so why repeat the burden here?
+C -1 10.TRAN { Statistical tabulation of branch voltage (TRAN, TERRA)
+C 30 July 2001, add preceding NOSTAT = 1. Since there is not going to be
+C any statistical tabulation, why burden associated storage unnecessarily?
+C Because NOSTAT = 1, in fact the following card will not be read.
+BLANK card ending all statistical tabulation request cards
+BEGIN NEW DATA CASE
+C 10th of 18 subcases is related to 8th. It illustrates the use of
+C character string substitution as well as numeric substitution within
+C an IF block. This need, too, comes from Prof. Martinez. Since the
+C network is purely resistive, there are no real dynamics other than
+C the switching. Note the first pass involves the switch to NAME2
+C whereas the 2nd involves the switch to NAME1. On the first of 2
+C passes, RESIST = 5 whereas on the second RESIST = 10. Increase
+C step size from 100 usec to 2 msec to speed simulation. Normally,
+C node names of character strings will be a full 6 bytes long. But
+C just to illustrate that shorter names are handled correctly, 5-byte
+C NAMEK is used in this subcase. WSM, 6 Jan 2001.
+C 26 January 2001, switch the order of the two parameters within the
+C IF block. Of course, the answer should not be affected. But that
+C error first reported by Prof. Juan Martinez would mistreat data of
+C which the first assignment was character rather than numeric. Switch
+C the order to demonstrate that the problem has been cured.
+C Following request carries params MAXKNT IOPCVP NOSTAT
+POCKET CALCULATOR VARIES PARAMETERS 2 0 1
+ .002 .030
+ 1 -1
+$PARAMETER { Begin block that defines numeric RESIST and character NAMEK
+C IF( KNT .EQ. 1.0 ) THEN This standard form involves THEN on right, note.
+IF( KNT .EQ. 1.0 ) { This is equivalent (THEN on right is not required)
+NAMEK = 'NAME2' { Beginning 26 January 2001, character line appears first
+RESIST = 5.0 + ( KNT - 1.0 ) * 10.0 { Previously, this numeric line was first
+ELSE { Alternatively (if not the first pass, so for KNT = 2 onward):
+NAMEK = 'NAME1'
+RESIST = ( KNT - 1.0 ) * 10.0
+ENDIF { Terminate 7-line block that defines symbols RESIST and NAMEK
+BLANK card ending 1st of 2 $PARAMETER blocks
+ NAME2 100.
+ NAME1 RESIST
+ SOURC MID RESIST
+BLANK card ending program branch cards.
+ MID NAMEK 0.009 0.020
+BLANK card terminating program switch cards
+14SOURC 0 100. 50. -1.
+BLANK card terminating program source cards
+ MID
+BLANK card ending program output-variable requests.
+BLANK card ending batch-mode plot cards
+BLANK card ending all statistical tabulation request cards
+BEGIN NEW DATA CASE
+C 11th of 18 subcases illustrates a PCVP loop over time simulations, with
+C MODELS used as a part of the simulation. This is unlike the preceding
+C 9th subcase, which involved MODELS PROCESSES EXTREMA. The 9th subcase
+C uses MODELS not within the dT loop, but rather only upon completion of
+C the simulation. The present use within the dT loop became operational
+C 17 May 2001 when SUBR1, TACS1, and TACS2 were corrected to properly
+C handle MAGVOLT.DAT from Orlando Hevia in Santa Fe, Argentina.
+C Following request carries params MAXKNT IOPCVP NOSTAT
+POCKET CALCULATOR VARIES PARAMETERS 3 1 0 { 3 passes, minim print
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+VOLTAG = 25.0 $$
+REACTV = 0.5 + 0.5*KNT - 0.5 $$
+ADMITC = (REACTV/VOLTAG**2)*1000000.
+POWERR = REACTV
+BLANK card ends $PARAMETER definitions that are processed before MODELS data
+C 2.E-5 40.E-3 60.0 60.0
+C 100 1 1 1 1
+C Preceding miscellaneous data cards of MAGVOLT are modified to simplify and
+C speed this illustration. The PCVP card involves 3 passes whereas MAGVOLT
+C had 61. Reduce the number of time steps from 2000 to 50, and do not save
+C the .PL4 files (ICAT = 1 in column 64 creates .001, .002, etc. files).
+ .0002 .010 60.0 60.0
+ 1 1 1 1 0 -1 0
+ 5 5
+MODELS HYBRID { Begin MODELS data that is to participate in the simulation
+INPUT voltage {v(bus2a)}
+ node0 {v(busx)}
+ tmax {atp(tmax)}
+C Comment added 18 September 2001. The preceding line illustrates the ATP(
+C function of MODELS. In this case, it is used to read the value of variable
+C TMAX, which is the ending time of the study. Beware of loop counter KNT
+C of PCVP use. Inside the $PARAMETER block, KNT is used, note. But if
+C accessed using the ATP( function, a bad value will be obtained. This is
+C because KNT is not the name of the variable used to count the PCVP loops
+C within the program. Rather, MNT is. So, what the user might guess would be
+C ATP(KNT) instead must be ATP(MNT). The need for this warning was inspired
+C by a report of trouble by Marta Val Escudero of ESB International in Dublin,
+C Ireland. As should be reported in a future newsletter, "PCVP loop index KNT
+C conflicted with the energization number of STATISTICS prior to separation of
+C the two as summarized in the July, 2000, issue."
+MODEL maxim
+INPUT voltage parame tmax
+VAR maxim kvoltage
+INIT
+ maxim:=0
+ENDINIT
+EXEC
+ kvoltage:=ABS(voltage)
+ IF (kvoltage > maxim) THEN maxim:=kvoltage
+ ENDIF
+ IF (t > tmax) THEN
+C Only on the final time step, one line is written to the
+C MODELS.1 file. This is a little inconvenient for test cases.
+C We would like to redirect this output to the .LIS file by changing
+C WRITE1 to WRITE. But, since we are minimizing out (see the PCVP
+C declaration, output within the dT loop of the 2nd or later pass is
+C being suppressed, and only a single such output (for pass 1) would
+C be seen. So, we leave WRITE1. For the record, content should be:
+C DCN25, 11th subcase. PARAME = 0.5 MAXIM = 1.04828954
+C DCN25, 11th subcase. PARAME = 1.0 MAXIM = 1.22325171
+C DCN25, 11th subcase. PARAME = 1.5 MAXIM = 1.41404906
+C Note we have added labeling and preserved lower case
+C by left-adjusting the WRITE1 command:
+C write1(parame, ' ', maxim)
+write1( ' DCN25, 11th subcase. PARAME = ', parame,
+ 'MAXIM = ', maxim )
+ ENDIF
+ENDEXEC
+ENDMODEL
+USE maxim AS sensit
+INPUT voltage:=voltage parame:=node0 tmax:=tmax
+ENDUSE
+ENDMODELS
+BLANK card ending MODELS data. Next come branch data:
+ BUSX POWERR
+ BUS0A BUS1A .4948 1.979
+ BUS1A BUS2A 5.562 22.25
+ BUS2A 800.0
+ BUS3A ADMITC
+BLANK card ending program branch cards.
+C BUS1A BUS3A 5.E-3 1.0 Switch card of MAGVOLT used multiple of dT
+ BUS1A BUS3A 5.001E-3 1.0 { Perturb T-close so problem with roundoff
+BLANK card terminating program switch cards (none, for this case)
+11BUSX -1 1.0 0.0 1.0
+14BUS0A 1.0 50.0 -90.0 -1.0 1.0
+BLANK card terminating program source cards.
+ BUS0A BUS1A BUS2A BUS3A
+BLANK card ending program output-variable requests.
+BLANK card ending plot cards (none for this data)
+BLANK card ending statistical tabulations (none illustrated here)
+BEGIN NEW DATA CASE
+C 12th of 18 subcases illustrates lack of difference in the first 6 bytes
+C of two variable names of $PARAMETER usage. This originally was disk
+C file DISABLE0.DAT from Prof. Juan Martinez in Barcelona, Spain. It
+C was sent to BPA on 14 September 2001. Because BLOCK_A1 & BLOCK_A2
+C are the same through byte 6, execution fails. The first sign of trouble
+C is incorrect evaluation of BLOCK_A2 (note BLOCK_A1 is correct):
+C Parameter 2 defined. Value = "$ENABLE " ----- result of evaluation of the preceding IF-THEN-ELSE-ENDIF block.
+C Parameter 3 defined. Value = 1.500000E+00 ----- result of evaluation of the preceding IF-THEN-ELSE-ENDIF block.
+C Of course, parameter 3 should be character just as parameter 2 is. It
+C as not numeric as this indicates. As a result of this error, later data
+C is bad, and execution should end with "KILL = 4. The last card is a
+C series R-L-C branch having zero impedance. ..."
+$PARAMETER
+OPTI_1=1.0
+BLANK
+$PARAMETER
+IF(OPTI_1.EQ.1.0)
+BLOCK_A1='$ENABLE '
+BLOCK_A2='C '
+ENDIF
+BLANK
+ .1e-6 .2e-4
+ 50 1
+BLOCK_A1
+ BUS_10BUS__1 1.0 0
+BLOCK_A2
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14BUS_10 1.5E5 50. -1. 1.
+BLANK card terminating program source cards.
+ BUS__1
+BLANK card ending program output-variable requests.
+BLANK card ending plot cards (none for this data)
+BEGIN NEW DATA CASE
+C 13th of 18 subcases is a correction of the preceding subcase. The only
+C change is replacement of BLOCK_A2 by A2_BLOCK (2 places). Then the
+C two symbols are different through the first 6 bytes. The subcase now
+C is handled properly. Note that it represents a variation of the 10th
+C subcase, which had a note dated 26 January 2001. If the 10th subcase
+C no longer ends its $PARAMETER block with a character variable, this
+C present subcase does. Also, it illustrates the use of 2 of them within
+C a single block.
+$PARAMETER
+OPTI_1=1.0
+BLANK
+$PARAMETER
+IF(OPTI_1.EQ.1.0)
+BLOCK_A1='$ENABLE '
+A2_BLOCK='C '
+ENDIF
+BLANK
+ .1e-6 .2e-4
+ 50 1
+BLOCK_A1
+ BUS_10BUS__1 1.0 0
+A2_BLOCK
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14BUS_10 1.5E5 50. -1. 1.
+BLANK card terminating program source cards.
+ BUS__1
+BLANK card ending program output-variable requests.
+BLANK card ending plot cards (none for this data)
+BEGIN NEW DATA CASE
+C 14th of 18 subcases illustrates dynamic as opposed to static $DISABLE
+C use. This originally was disk file DISABLE3.DAT from Prof. Juan
+C Martinez in Barcelona, Spain. It was sent to BPA on 14 September 2001.
+C Prior to a change to CIMAGE on 17 Sept 01, execution failed.
+$PARAMETER
+OPTI_1=1.0
+BLANK
+$PARAMETER
+C IF(OPTI_1.EQ.1.0)
+BLOCK_A1='$ENABLE '
+BLOCK_A2='C '
+C ENDIF
+BLANK card ending $PARAMETER block
+$PARAMETER
+C IF(OPTI_1.EQ.1.0)
+BLOCK_B1='$DISABLE'
+BLOCK_B2='$ENABLE '
+C ENDIF
+BLANK card ending $PARAMETER block
+ .1e-6 .2e-4
+ 50 1
+BLOCK_A1
+ BUS_10BUS__1 1.0 0
+BLOCK_A2
+BLOCK_B1
+ BUS_10BUS__1 1.0 0
+BLOCK_B2
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14BUS_10 1.5E5 50. -1. 1.
+BLANK card terminating program source cards.
+ BUS__1
+BLANK card ending program output-variable requests.
+BLANK card ending plot cards (none for this data)
+BEGIN NEW DATA CASE
+C 15th of 18 subcases shows that a FREQUENCY SCAN with multi-part output
+C is possible with no output voltage. This addition is made 16 June 2002
+C to demonstrate that a problem, first observed by Orlando Hevia, has been
+C corrected. The change to HEADL4 was simple: (N2 .EQ. NV) was replaced
+C by (N3 .EQ. NC). Before this correction, execution died in plotting as
+C ATP attempted to read too much of the .PL4 file. Now, everything is OK,
+C as the following shows. The plot illustrates a mixture of magnitude and
+C real part on the same plot. At the peak, which occurs at 160 Hz, both
+C have the same value, of course. 160 Hz is the resonant frequency of the
+C series R-L-C branch. The variation is nice and smooth and simple using
+C 10 Hz steps. Here, using 20 Hz, the curves are slightly lumpy.
+PRINTED NUMBER WIDTH, 10, 2, { Each column of width 10 includes 2 blank bytes
+FREQUENCY SCAN 20. 20. 200. { F in Hz = 20, 40, ... 200
+ 1.E-6 .001
+ 1 -1 1 1
+ XX 1. 1.0 1.E3 1
+BLANK card ending branch cards (just this one)
+BLANK card ending switch cards (none)
+ BOTH POLAR AND RECTANGULAR { Any of the 3 possible multi-part outputs works
+14XX 100. 60. -1.
+BLANK card ends source cards
+C XX { Prior to correction of HEADL4 on 16 June 2002, node voltage was needed
+BLANK card ending names of nodes for node-voltage output
+ F-SCAN COMPONENTS MAG REAL { Access magnitude and real parts next
+ 19620. 0. 200. -40.120.XX XX { Plot the magnitude and the real part
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 16th of 18 subcases is added 18 February 2003 to demonstrate that the
+C complaint by Prof. Juan Martinez has been corrected. The preceding day,
+C he had sent REPLACE.DAT to demonstrate that a $PARAMETER block within
+C a dynamic $DISABLE block was being mishandled. The 3rd pass, execution
+C was being stopped by an error message within TACS (which is not even
+C being used).
+C Following request carries params MAXKNT IOPCVP NOSTAT
+POCKET CALCULATOR VARIES PARAMETERS 3 0
+$PARAMETER
+C IF(MNT.GT.1.0) -- Original line until 16 April 2009 involved erroneous MNT
+IF( KNT .GT. 1.0 ) { Correct MNT --> KNT to agree with all other DC*.DAT
+KNT1____='$DISABLE'
+ELSE
+KNT1____='$ENABLE '
+ENDIF
+BLANK card ends 1st $PARAM block
+ .0002 .02
+ 50 -1
+$PARAMETER { SIMPLE PARAMETER DEFINITION, JUST TO ILLUSTRATE THE CASE
+PARAM2=1.0
+BLANK card ends 2nd $PARAM block
+KNT1____ { This will be replaced by $ENABLE on 1st pass, & $DISABLE thereafter
+$PARAMETER { THIS BLOCK IS CAUSING CERTAIN DAMAGE WITHIN PCVP ROUTINE
+PARAM3=100.0
+BLANK card ends 3rd $PARAM block
+ VOLTSA PARAM3
+$ENABLE { End of either $DISABLE or $ENABLE block that begins with KNT1____
+$PARAMETER { THIS COULD BE ANY MATHEMATICAL COMPUTATION TO OBTAIN THE CONDI
+TIPO_F=MNT
+BLANK card ends 4th $PARAM block
+$PARAMETER { $PARAMETER BLOCK TO COMMENT OR UNCOMMENT NEXT BRANCH CARD
+IF(TIPO_F.LT.1.0)
+OPTION=' VOLT'
+ELSE
+OPTION='C VOLT'
+ENDIF
+BLANK card ends 5th $PARAM block
+OPTIONSA PARAM2 { BRANCH CARD RELATED TO PREVIOUS PARAMETER
+ VOLTSA 1.0
+BLANK card ends branch cards
+ VOLT_AVOLTSA MEASURING 1
+BLANK card ends switch cards
+14VOLT_A 0 1. 50. -1. 1.
+BLANK card ends source cards
+ VOLTSA
+BLANK card ends names for node voltage output
+BLANK card ends batch-mode plot cards
+BLANK card ends requests for statistical tabulation
+BEGIN NEW DATA CASE
+C 17th of 18 subcases is added 11 May 2003. This data comes from Ricardo
+C Tenorio of ABB in Vasteras, Sweden. The 2 symbol names are not distinct
+C through 6 bytes. Unlike the 12th subcase, ATP did not automatically
+C shut itself off with an unrelated error message. Mr. Tenorio found that
+C execution continued, and results were wrong. In E-mail dated May 5th,
+C he explained: I've tried to simplify the case as far as I could. The
+C case involves an EDM module designed to apply generic faults, i.e 1-ph,
+C 2-ph & 3-ph, to a named bus." Data interpretation provided the first
+C sign of trouble: "Only the first variable BLOCk_11 is correctly
+C interpreted as a string! The others are interpreted as number ...
+C Line 22 ends this IF-THEN-ELSE-ENDIF block. |ENDIF
+C Parameter 1 defined. Value = "$DISABLE" ----- result of evaluation ...
+C Parameter 2 defined. Value = 0.000000E+00 ----- result of evaluation ...
+C Yes, clearly wrong. Most serious was continued execution. So, a special
+C error trap was designed for MATDAT. Beginning May 11th, it halts this
+C case as well as the 12th subcase (which now is stopped sooner, and with
+C a relevant message for the user). What is needed (in addition to the
+C ambiguous names)? An IF( block and text (as opposed to just math).
+C This uses the pocket calculator, which in turn requires distinct names.
+C The first 6 bytes of each is BLOCK_ so data must be rejected.
+C EATS testing of RUNEATS.BAT required a modification. Immediately
+C below the $PARAMETER block will be found the two uses. Note that
+C these two cards have been commented out. The problem of EATS is
+C simple: switch cards must be read for counting, yet $PARAMETER is
+C skipped during counting. So, if not commented out, execution would
+C die in OVER4 with an illegal decode (BLOCK... is not a switch card).
+C So, we modify to avoid death at the hands of EATS. For normal (non-
+C EATS) use, the change makes no difference. Execution will be halted
+C before any data below the $PARAMETER loop is read. It makes no
+C difference what data is down there.
+ 50.E-6 10.E-3 50. 50.
+ 1 -1 1 1 1 -1
+ 5 5 20 20
+51SOUR1AEQUIVA 1.003 9.5900
+52SOUR1BEQUIVB 0.319 6.9810
+53SOUR1CEQUIVC
+BLANK card ends branch data
+$PARAMETER
+IF( 3.0 .EQ. 1.0 )
+BLOCK_11='C '
+BLOCK_12='C '
+ELSEIF( 3.0 .EQ. 3.0 )
+BLOCK_11='$DISABLE'
+BLOCK_12='C '
+ENDIF
+BLANK card ends $PARAMETER block
+C BLOCK_11 { This symbol is to be replaced by either $DISABLE or a comment card
+C Note: the preceding card was commented to prevent death in OVER4 using EATS
+ EQUIVA 0.0100 9999.
+C BLOCK_12 { This symbol is to be replaced by a comment card (either condition)
+C Note: the preceding card was commented to prevent death in OVER4 using EATS
+ EQUIVAEQUIVB 0.0100 9999.
+ EQUIVA 0.0100 9999.
+ EQUIVB 0.0100 9999.
+ EQUIVC 0.0100 9999.
+$ENABLE { End possible preceding $DISABLE after last switch card
+BLANK card ends switch data
+14SOUR1A 428660.705 60. 0.00 -1. 1.
+14SOUR1B 428660.705 60. -120.00 -1. 1.
+14SOUR1C 428660.705 60. 120.00 -1. 1.
+BLANK card ending source cards
+C Since there will be an error message, remaining data is immaterial; it
+C will not be used, anyway. So let's avoid waste by eliminating remaining
+C data through the end of the subcase.
+BEGIN NEW DATA CASE
+C 18th of 18 subcases is added 8 October 2006. This data involves a PCVP
+C loop that produces 5 time-simulations with appended power and energy output
+C due to column-80 punches > 4. Original complaint was from Orlando Hevia of
+C Santa Fe, Argentina on 18 Aug 2006. Prior to correction in October of 2006,
+C column-80 punches above "4" were unusable with "FIND" code of statistical
+C tabulations. Punches 5-16 (use hex if above 9) serve to append power P or
+C energy "E" or both. The printed dT-loop output was believed to be correct.
+C But the subsequent "FIND" command offered no class for power & no class for
+C energy. Now it does. As for UTPF changes, look for WSM06AUG since the
+C work began in August. For uniformity, no SEP or OCT were used. The
+C vast majority of changes are confined to DICTAB. WSM, 6 October 2006
+C Controls of following request card: MAXKNT IOPCVP NOSTAT { Loop 5 times with
+POCKET CALCULATOR VARIES PARAMETERS 5 1 0 { reduced printout
+$PARAMETER { Each loop KNT=1, 2, ... MAXKNT will involve different TIMECLOSEX
+TIMECLOSEX = (KNT)*0.0004
+C 13 October 2007, the preceding line is modified by the addition of
+C extraneous parentheses around the KNT. Orlando Hevia had sent data to
+C show that RTR6__= 0.684+0.054*(KNT)**1.75 is wrong (Salford ATP dies)
+C whereas RTR6__= 0.684+0.054*KNT**1.75 works fine. This resulted
+C in a correction to POCKET. To build verification into a test cases, WSM
+C now simply adds unused parens () to this 18th subcase. Answer is unchanged.
+C However, this did _not_ stress the new logic as intended. Well, keep the
+C preceding addition but add a second, unused variable by copying Orlando :
+RTR6__= 0.684+0.054*(KNT)**1.75 { Orlando's formula that was fatal b4 Oct. 2007
+BLANK card ending parameter block
+C DELTAT TMAX
+ 1.E-4 .200 { Orlando Hevia had had 20 usec and .25 sec here
+C IOUT IPLOT IDOUBL KSSOUT MAXOUT
+ 200 11 1
+C Replace Orlando's J. Marti line by 42 constant-parameter miles from DC-38:
+-1FASEA1FASEA2 .305515.8187.01210 42. 0 { 42-mile, constant-
+-2FASEB1FASEB2 .031991.5559.01937 42. 0 { parameter, 3-phase
+-3FASEC1FASEC2 { transmission line.
+C For list of all column-80 punches for power or energy, see DC-37, subcase 6.
+C In the following, "4" is old whereas "G" and "D" date to 1999. Outputs
+C will be as shown farther below:
+ FASEA2 1.0E01 G
+ FASEB2 1.0E01 D
+ FASEC2 1.0E01 4
+ GENEA OPENXX RTR6__ { Do-nothing branch will confirm value of RTR6
+BLANK card ending branches
+ GENEA FASEA1TIMECLOSEX 0.05 3
+ GENEB FASEB1TIMECLOSEX 0.05 0
+ GENEC FASEC1TIMECLOSEX 0.05 0
+BLANK card ending switches
+14GENEA 100000. 50. 0.0 -1.0
+14GENEB 100000. 50. -120. -1.0
+14GENEC 100000. 50. 120. -1.0
+BLANK card ending sources
+ FASEA1
+C Column headings for the 9 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 2 output variables are either power or energy or both as a pair (column 80 punches > 4).
+C Remember that 1 of the voltages really are powers, and currents are energies; the 4-punches will overlay.
+C Step Time FASEB2 FASEC2 GENEA FASEA1 GENEA FASEB2 FASEC2 FASEA2 FASEB2
+C TERRA TERRA FASEA1 FASEA1 TERRA TERRA TERRA TERRA
+C End actual dT-loop output. For clarity, let's label each of the preceding
+C output variables, showing the variable class and how it was requested:
+C Variable class bran V power bran V node V bran I bran I energy energy energy
+C Produced by: "D" "4" "3" A6 name "3" "D" "4" "G" "D"
+C Summary class <----- 4 voltages appear first -----> <--- 3 currents next ---> <-- appended P,E
+C Note that power and energy of the 4-punch are counted among voltages and
+C currents whereas any due to punches 4-16 are appended on the right in a
+C separate, final variable class that here has 2 entries. 9 = 4 + 3 + 2
+BLANK card ending node voltage outputs
+C The user who does not want to see any batch-mode plotting can preserve the
+C following 3 lines (no need to remove) while setting misc. data IPLOT < 0.
+ PRINTER PLOT { Character mode always works. CALCOMP PLOT might not (unknown)
+ 193.01 0.0 .06 BRANCH { Show the 3 energy signals on a printer plot
+ FASEA2 FASEB2 FASEC2
+BLANK blank card ending plot cards
+C BASE-------BUS1--BUS2-- ...
+-4 1.E6 FASEA2 { Compartments 93-95 will be used for base energy = 1.E6
+-4 1.E6 FASEB2 { Compartments 103-105 will be used for ...
+-4 2.E6 FASEC2 { Compartments 44-49 will be used for base energy = 2.E6
+-3 2.E8 FASEC2 { Compartments 18-24 will be used for base power = 2.E8
+C Note about preceding. Three of the 4 tabulations lost a compartment when
+C the number of shots was reduced from 10 to 5. If the user wants to see a
+C smoother tabulation, he can increase shots to 10 or even 20. Of course,
+C TIMECLOSEX = KNT*0.0004 then would have its final factor correspondingly
+C reduced to .0002 or .0001, respectively. Orlando used 20.
+-1 1.E4 FASEB2 { Compartments 101-104 will be used for base voltage = 1.E4
+-2 1.E3 GENEA FASEA1 { Boxes 90-97 will be used for base current = 1.E3
+FIND { Search all extrema vectors to find the worst of some set of variables
+ALL { Rather than list variables separately, search a set of "all something"
+ 6 { In response to "all what?" this answers: "all energy" outputs
+EXCLUDE { Repeat the search after excluding the worst shot, which is shot # 4
+DISK /LIST { Create deterministic data file for last excluded shot, which is # 4
+C Note about preceding. If no EXCLUDE, shot #4 still would be punched. If
+C EXCLUDE use, it is data for the worst excluded shot that will be created.
+BLANK card ending statistical tabulations
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn25old.dat b/benchmarks/dcn25old.dat
new file mode 100644
index 0000000..1e6123d
--- /dev/null
+++ b/benchmarks/dcn25old.dat
@@ -0,0 +1,836 @@
+BEGIN NEW DATA CASE
+C 1st of 4 subcases illustrates Robert Meredith's Type-68 TACS device as
+C first described in the April, 1998, newsletter. This is AUT5 data case.
+C test120a.dat (1 HERTZ AT 120% VOLTAGE)
+C without resistances
+C ENERGIZED AT ZERO TIME VIA 0.100 OHM RESISTORS -steady state
+C FREE FORMAT TIME STEP- 1000/CYCLE FOR 1.5 SECOND+
+C .000016666666, 1.500 , 60.000 , 0.,,,,,,, { Meredith's original params
+ .000066666667, .100 , 60.000 , 0.,,,,,,, { Much reduced burden on computer
+C PRN> PLT> NET> SS> MAX> SAVE> NENERG> >
+ 1 5 0 0 1 -1 0
+ 5 5 20 20 100 100 500 500
+TACS HYBRID
+C $INCLUDE aut5-tac.inc
+C $INCLUDE aut5-tck.inc { Uses new Type-68 TACS device, so much smaller file
+C TACS STEADY-STATE CORE NFLUX INITIALIZATION FOR TRANSFORMER AUT5
+C NFLUX IS PROPORTIONAL TO THE INDUCTIVE CURRENT IN THESE SWITCHES:
+C TYPE 91 TACS SOURCES DERIVED FROM NETWORK SWITCH CURRENTS:
+C <NAME> <----A---><----A---><----A---> <T START ><T STOP >
+91AUT5D1 -1.0 999.
+91AUT5D2 -1.0 999.
+91AUT5D3 -1.0 999.
+91AUT5D4 -1.0 999.
+91AUT5D5 -1.0 999.
+C ZERO-ORDER BLOCKS TO SCALE ABOVE TO NFLUX LINKED (NREF*PHI) WITHIN CORE VOLUME
+C GAIN IS BASED ON 10000-HENRY FLUX-MONITORING INDUCTANCES.
+C <NAME> +<NAME> +<NAME> +<NAME> +<NAME> +<NAME> <GAIN><FXLO><FXHI><NMLO><NMHI>
+ 0AUT5E1 +AUT5D1 1.E4
+ 0AUT5E2 +AUT5D2 1.E4
+ 0AUT5E3 +AUT5D3 1.E4
+ 0AUT5E4 +AUT5D4 1.E4
+ 0AUT5E5 +AUT5D5 1.E4
+C NEW TACS DEVICE 68 MODELS HYSTERETIC LOSS/RESIDUAL MMF COMPONENTS.
+C <IRES>68<FLUX><LOWER FLUX VAL><HIGHR FLUX VAL><LINEAR COEFF. ><SQUARED COEFF.>
+99AUT5T168AUT5E1 13.821 27.642 2.91727E-3 8.44316E-4
+99AUT5T268AUT5E1 27.642 62.194 2.43012E-3 2.53199E-4
+99AUT5T368AUT5E1 62.194 82.925 1.23361E-3 4.76044E-4
+99AUT5T468AUT5E1 82.925 103.66 1.22440E-3 5.90543E-4
+99AUT5T568AUT5E1 103.66 120.25 1.79633E-3 1.56980E-3
+99AUT5T668AUT5E1 120.25 131.34 1.44373E-3 3.08189E-3
+99AUT5T768AUT5E1 131.34 139.51 4.95355E-3 2.07092E-2
+99AUT5U168AUT5E2 13.821 27.642 2.91727E-3 8.44316E-4
+99AUT5U268AUT5E2 27.642 62.194 2.43012E-3 2.53199E-4
+99AUT5U368AUT5E2 62.194 82.925 1.23361E-3 4.76044E-4
+99AUT5U468AUT5E2 82.925 103.66 1.22440E-3 5.90543E-4
+99AUT5U568AUT5E2 103.66 120.25 1.79633E-3 1.56980E-3
+99AUT5U668AUT5E2 120.25 131.34 1.44373E-3 3.08189E-3
+99AUT5U768AUT5E2 131.34 139.51 4.95355E-3 2.07092E-2
+99AUT5V168AUT5E3 13.821 27.642 2.91727E-3 8.44316E-4
+99AUT5V268AUT5E3 27.642 62.194 2.43012E-3 2.53199E-4
+99AUT5V368AUT5E3 62.194 82.925 1.23361E-3 4.76044E-4
+99AUT5V468AUT5E3 82.925 103.66 1.22440E-3 5.90543E-4
+99AUT5V568AUT5E3 103.66 120.25 1.79633E-3 1.56980E-3
+99AUT5V668AUT5E3 120.25 131.34 1.44373E-3 3.08189E-3
+99AUT5V768AUT5E3 131.34 139.51 4.95355E-3 2.07092E-2
+99AUT5W168AUT5E4 14.120 28.239 2.69692E-3 7.64028E-4
+99AUT5W268AUT5E4 28.239 63.538 2.24656E-3 2.29122E-4
+99AUT5W368AUT5E4 63.538 84.717 1.14043E-3 4.30775E-4
+99AUT5W468AUT5E4 84.717 105.90 1.13191E-3 5.34391E-4
+99AUT5W568AUT5E4 105.90 122.84 1.66066E-3 1.42058E-3
+99AUT5W668AUT5E4 122.84 134.17 1.33473E-3 2.79024E-3
+99AUT5W768AUT5E4 134.17 142.42 4.58432E-3 1.91911E-2
+99AUT5X168AUT5E5 14.120 28.239 2.69692E-3 7.64028E-4
+99AUT5X268AUT5E5 28.239 63.538 2.24656E-3 2.29122E-4
+99AUT5X368AUT5E5 63.538 84.717 1.14043E-3 4.30775E-4
+99AUT5X468AUT5E5 84.717 105.90 1.13191E-3 5.34391E-4
+99AUT5X568AUT5E5 105.90 122.84 1.66066E-3 1.42058E-3
+99AUT5X668AUT5E5 122.84 134.17 1.33473E-3 2.79024E-3
+99AUT5X768AUT5E5 134.17 142.42 4.58432E-3 1.91911E-2
+C CURRENTS INJECTED INTO NETWORK FOR HYSTERESIS MODELING AND OTHER COMPENSATION.
+C PHASE LEGS HAVE CURRENTS INJECTED TO COMPENSATE COUPLING XFMR. MAGNET. AMPS.,
+C FLUX-MONITORING INDUCTANCE CURRENT AND SMALL CORE GAPS:
+99AUT5TP =+AUT5D1/( 1.30893E-2)+ 1*(+AUT5T1+AUT5T2+AUT5T3+AUT5T4+AUT5T5)
+99AUT5A5 =+AUT5TP+ 1*(+AUT5T6+AUT5T7)
+99AUT5TQ =+AUT5D2/( 1.30893E-2)+ 1*(+AUT5U1+AUT5U2+AUT5U3+AUT5U4+AUT5U5)
+99AUT5B5 =+AUT5TQ+ 1*(+AUT5U6+AUT5U7)
+99AUT5TR =+AUT5D3/( 1.30893E-2)+ 1*(+AUT5V1+AUT5V2+AUT5V3+AUT5V4+AUT5V5)
+99AUT5C5 =+AUT5TR+ 1*(+AUT5V6+AUT5V7)
+C YOKES ARE COMPENSATED FOR MONITORING INDUCTANCE CURRENTS:
+99AUT5TS =+AUT5D4+ 1*(+AUT5W1+AUT5W2+AUT5W3+AUT5W4+AUT5W5)
+99AUT501 =+AUT5TS+ 1*(+AUT5W6+AUT5W7)
+99AUT5TT =+AUT5D5+ 1*(+AUT5X1+AUT5X2+AUT5X3+AUT5X4+AUT5X5)
+99AUT502 =+AUT5TT+ 1*(+AUT5X6+AUT5X7)
+C YOKE & PHASE HYSTERETIC CURRENTS ARE EXTRACTED, EXCEPT AT GROUND:
+99AUT5B0 =-AUT501-AUT5B5
+99AUT5C0 =-AUT502-AUT5C5
+C End of $INCLUDE. File name = aut5-tck.inc
+C PARTS OF HYSTERESIS COMPONENTS FOR PLOTTING
+C FORTRAN STATEMENTS; 99= INPUT; 98= OUTPUT; 88= INSIDE
+C <NAME> =< FREE FORMAT FORTRAN TO COL 80 ----->
+C TOTAL OF ALL HYSTER INJECTIONS FOR LEGS A,B,C
+99ALLINA =+AUT5T1+AUT5T2+AUT5T3+AUT5T4+AUT5T5+AUT5T6+AUT5T7
+99ALLINB =+AUT5U1+AUT5U2+AUT5U3+AUT5U4+AUT5U5+AUT5U6+AUT5U7
+99ALLINC =+AUT5V1+AUT5V2+AUT5V3+AUT5V4+AUT5V5+AUT5V6+AUT5V7
+C
+C TYPE 90 TACS SOURCES DERIVED FROM NETWORK VOLTAGES:
+C <NAME> <----A---><----A---><----A---> <T START ><T STOP >
+C TYPE 91 TACS SOURCES DERIVED FROM NETWORK SWITCH CURRENTS (1ST NODE)
+C <NAME> <----A---><----A---><----A---> <T START ><T STOP >
+91AUT5AM 0. 999.
+91AUT5BM 0. 999.
+91AUT5CM 0. 999.
+C FORTRAN STATEMENTS; 99= INPUT; 98= OUTPUT; 88= INSIDE
+C <NAME> =< FREE FORMAT FORTRAN TO COL 80 ----->
+C NEXT IS SUM OF COUPLING OUTPUT AND ALL INJECTED AMPS - USED BY CORE MODELS
+98LEGAMP = AUT5AM + AUT5A5
+98LEGBMP = AUT5BM + AUT5B5
+98LEGCMP = AUT5CM + AUT5C5
+C NEXT IS APPARENT LEG AMPS FOR HYSTER PLOTTING
+98NETAMP = LEGAMP - ALLINA
+98NETBMP = LEGBMP - ALLINB
+98NETCMP = LEGCMP - ALLINC
+C S-BLOCKS OF ORDER 1 IN COL 2 INTEGRATE VOLTAGES TO GET FLUXES (TIMES 250.0).
+C <NAME> +<NAME> +<NAME> +<NAME> +<NAME> +<NAME> <GAIN><FXLO><FXHI><NMLO><NMHI>
+C N0 & D0><N1 & D1 ><N2 & D2 ><N3 & D3 ><N4 & D4 ><N5 & D5 ><N6 & D6 ><N7 & D7 >
+C <NAME>CD+< IN1> +< IN2> +< IN3> +< IN4> +< IN5> < A >< B >< C >< D >< E >
+C TACS OUTPUT REQUESTS - TYPE 33
+C <NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><NAME><TY33>
+33AUT5E1 ALLINA LEGAMP NETAMP
+33AUT5E2 ALLINB LEGBMP NETBMP
+33AUT5E3 ALLINC LEGCMP NETCMP
+C 33AUT5T1 AUT5T2 AUT5T3 AUT5T4 AUT5T5 AUT5T6 AUT5
+33AUT5U1 AUT5U2 AUT5U3 AUT5U4 AUT5U5 AUT5U6 AUT5U7
+BLANK CARD ENDING ALL ATP-SORTED TACS CARDS (from blank.inc)
+C THIS MUST BE EDITED TO ADD AUT5A5 >> AUT5AM, ETC METERING
+C $INCLUDE aut5-brn.inc
+C WSM makes non-Unix by adding a card using DOS editor.
+C 3-PHASE, 3-LEG SATURABLE XFMR. MODEL FROM MODELAD.FTN - 60. HZ IMPEDANCES
+C CHANGED AUT5A5, B5, C5 TO AUT5AM, BM, CM ; NOW REQUIRES METERING SWITCHES
+C AUT5 = IDENTIFYING BUS CODE PREFIX OF INTERNAL NODES.
+C AUT5AM = NAME OF A METERING NODE ADDED AT AUT5A5
+C EACH PHASE LEG HAS 3 WINDINGS WHOSE RATED VOLTAGES AND TURNS ARE:
+C WINDING 1 (INNERMOST) = 13.130 KV. TURNS = 44.998
+C WINDING 1 INCLUDES THE EFFECT OF 0.5670 OHMS/PHASE INTERNAL (DELTA) REACTORS.
+C REACTOR RESISTANCE/PHASE MUST BE INCLUDED WITH ENTERED WINDING RESISTANCES.
+C WINDING 2 = 79.674 KV. TURNS = 273.052
+C WINDING 3 = 119.655 KV. TURNS = 410.072
+C INTERNAL REFERENCE = 29.179 KV. TURNS = 100.000
+C *********BEGIN USER COMMENTS ************
+C EAST GARDEN CITY AUTOTRANSFORMER*** one *** AT 345/138 KV TAP
+C ABBREVIATED HYSTERESIS MODEL; SEVEN OF POSSIBLE 11 COMPONENTS
+C .95 * .7274 SQUARE METER LEG; .97 * .7274 SQUARE METER YOKE
+C ACTUAL DELTA IS GROUNDED BETWEEN OUTER PHASES AT Y1.
+C EACH DELTA REACTOR X =.82;OR .5467 WHEN EQUALIZED; REACTOR R = .00427 EACH
+C ACTUAL DELTA WINDING R = .00510; + .002847 TO EQUALIZE = .0079467 ENTERED
+C AIR-CORE COUPLINGS FROM COUPCOIL, BASED ON SMIT DIMENSIONS.
+C B-H CURVE BASED ON ARMCO TRAN-COR H-0 from smit
+C B-H SHIFTED TO HIGHER CURRENTS IN 1.5 - 1.85 T RANGE
+C MILD OPEN HEARTH STEEL FOR TANK
+C TANK HAS 21.65 M CIRCUM; FLUX SHIELD = 3.15 M HIGH
+C 64-36 EDDY-HYST LOSS RATIO AT RATED;
+C ********** END USER COMMENTS ************
+C COUPLING, LEAKAGE IMPEDANCE & WINDING LOSS MODEL FOR TRANSFORMER AUT5:
+C <NAME><NAME><NAME><NAME>< R >< X >< R >< X >< R >< X >
+51Y1 Y2 .01016 10124.87377
+52EGCT1A 0.000 61435.16312.04458372798.88582
+53EGCHEAEGCT1A 0.000 92263.79188 0.000559873.90936.12388840864.72923
+54AUT5A1 0.000 22499.42979 0.000136528.47263 0.000205039.49115
+ 0.000 50000.88921
+55AUT5A2 0.000 22499.42071 0.000136530.26291 0.000205042.81249
+ 0.000 50000.86902 0.000 50001.52468
+56AUT5A3 0.000 22499.42350 0.000136530.70112 0.000205053.04695
+ 0.000 50000.87522 0.000 50001.68516 0.000 50004.18094
+57AUT5A4 0.000 22499.25174 0.000136528.91954 0.000205046.26382
+ 0.000 50000.49352 0.000 50001.03270 0.000 50002.52680
+ 0.000 50002.52680
+58AUT5AM 0.000 22499.02967 0.000136526.09974 0.000205035.90210
+ 0.000 50000.00000 0.000 50000.00000 0.000 50000.00000
+ 0.000 50000.00000 0.000 50000.00000
+51Y2 Y3 .01016 10124.87377
+52EGCT1B 0.000 61435.16312.04458372798.88582
+53EGCHEBEGCT1B 0.000 92263.79188 0.000559873.90936.12388840864.72923
+54AUT5B1AUT5B0 0.000 22499.42979 0.000136528.47263 0.000205039.49115
+ 0.000 50000.88921
+55AUT5B2AUT5B0 0.000 22499.42071 0.000136530.26291 0.000205042.81249
+ 0.000 50000.86902 0.000 50001.52468
+56AUT5B3AUT5B0 0.000 22499.42350 0.000136530.70112 0.000205053.04695
+ 0.000 50000.87522 0.000 50001.68516 0.000 50004.18094
+57AUT5B4AUT5B0 0.000 22499.25174 0.000136528.91954 0.000205046.26382
+ 0.000 50000.49352 0.000 50001.03270 0.000 50002.52680
+ 0.000 50002.52680
+58AUT5BMAUT5B0 0.000 22499.02967 0.000136526.09974 0.000205035.90210
+ 0.000 50000.00000 0.000 50000.00000 0.000 50000.00000
+ 0.000 50000.00000 0.000 50000.00000
+51Y3 Y1 .01016 10124.87377
+52EGCT1C 0.000 61435.16312.04458372798.88582
+53EGCHECEGCT1C 0.000 92263.79188 0.000559873.90936.12388840864.72923
+54AUT5C1AUT5C0 0.000 22499.42979 0.000136528.47263 0.000205039.49115
+ 0.000 50000.88921
+55AUT5C2AUT5C0 0.000 22499.42071 0.000136530.26291 0.000205042.81249
+ 0.000 50000.86902 0.000 50001.52468
+56AUT5C3AUT5C0 0.000 22499.42350 0.000136530.70112 0.000205053.04695
+ 0.000 50000.87522 0.000 50001.68516 0.000 50004.18094
+57AUT5C4AUT5C0 0.000 22499.25174 0.000136528.91954 0.000205046.26382
+ 0.000 50000.49352 0.000 50001.03270 0.000 50002.52680
+ 0.000 50002.52680
+58AUT5CMAUT5C0 0.000 22499.02967 0.000136526.09974 0.000205035.90210
+ 0.000 50000.00000 0.000 50000.00000 0.000 50000.00000
+ 0.000 50000.00000 0.000 50000.00000
+C PHASE LEG N-L MODELS FOR TRANSFORMER: AUT5
+C PHASE LEG CORES ARE 3.60 METERS LONG WITH AREAS OF 0.6910 SQUARE METERS
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 4.00) AND FULLY SATURATED:(2.00, 15000.00)
+C FOR SS CALCS EACH LEG HAS REACT. OF 15740. OHMS (AT 100.0 TURNS)
+C BASED ON SLOPE OF POINT 8 BELOW, HAVING A FLUX DENSITY OF 1.7400 TESLA.
+C HYSTERESIS CURRENT OFFSET OF 3.115 AMPS IS MODELED AT SATURATION.
+C LAMINATIONS ARE MODELED BY 8 LAYERS; EDDY LOSSES USE ENTERED CORE RESISTIVITY.
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT -----><NFLUX -------->
+98AUT5A5AUT5A6 4.912234.877
+ 0.14400 3.45524
+ 0.39528 6.91044
+ 0.81635 15.54839
+ 1.12175 20.73117
+ 1.41336 24.18640
+ 2.00198 25.91428
+ 3.13598 28.16067
+ 4.23399 30.06154
+ 8.81421 31.96448
+ 19.73322 32.83478
+ 56.33246 33.72028
+ 543.11535 34.87714
+ 1083.11535 35.20278
+ 9999
+98AUT5A6AUT5A7AUT5A5AUT5A64.912234.877
+98AUT5A7AUT5A8AUT5A5AUT5A64.912234.877
+98AUT5A8 AUT5A5AUT5A64.912234.877
+98AUT5B5AUT5B6AUT5A5AUT5A64.912234.877
+98AUT5B6AUT5B7AUT5A5AUT5A64.912234.877
+98AUT5B7AUT5B8AUT5A5AUT5A64.912234.877
+98AUT5B8AUT5B0AUT5A5AUT5A64.912234.877
+98AUT5C5AUT5C6AUT5A5AUT5A64.912234.877
+98AUT5C6AUT5C7AUT5A5AUT5A64.912234.877
+98AUT5C7AUT5C8AUT5A5AUT5A64.912234.877
+98AUT5C8AUT5C0AUT5A5AUT5A64.912234.877
+C HIGH RESISTANCE ACROSS EACH UNPARALLELED TYPE 98 ELEMENT ABOVE:
+C <NAME><NAME><----><---->RRRRRRXXXXXXCCCCCC
+ AUT5A6AUT5A5 .1E+11
+ AUT5A7AUT5A6AUT5A6AUT5A5
+ AUT5A8AUT5A7AUT5A6AUT5A5
+ AUT5B6AUT5B5AUT5A6AUT5A5
+ AUT5B7AUT5B6AUT5A6AUT5A5
+ AUT5B8AUT5B7AUT5A6AUT5A5
+ AUT5C6AUT5C5AUT5A6AUT5A5
+ AUT5C7AUT5C6AUT5A6AUT5A5
+ AUT5C8AUT5C7AUT5A6AUT5A5
+C YOKE MODELS FOR TRANSFORMER: AUT5
+C EACH TOP+BOTTOM YOKE LENGTH IS 3.40 METERS WITH AREA OF 0.7060 SQUARE METERS
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 4.00) AND FULLY SATURATED:(2.00, 15000.00)
+C FOR SS CALCS EACH YOKE HAS REACT. OF 17026. OHMS (AT 100.0 TURNS)
+C BASED ON SLOPE OF POINT 8 BELOW, HAVING A FLUX DENSITY OF 1.7400 TESLA.
+C HYSTERESIS CURRENT OFFSET OF 2.943 AMPS IS MODELED AT SATURATION.
+C LAMINATIONS ARE MODELED BY 8 LAYERS; EDDY LOSSES USE ENTERED CORE RESISTIVITY.
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT -----><NFLUX -------->
+98AUT501AUT50A 4.636135.606
+ 0.13600 3.52991
+ 0.37332 7.05979
+ 0.77100 15.88444
+ 1.05943 21.17924
+ 1.33484 24.70914
+ 1.89076 26.47434
+ 2.96176 28.76924
+ 3.99877 30.71116
+ 8.32457 32.65503
+ 18.63694 33.54364
+ 53.20871 34.44660
+ 512.94277 35.60585
+ 1022.94277 35.91340
+ 9999
+98AUT50AAUT50BAUT501AUT50A4.636135.606
+98AUT50BAUT50CAUT501AUT50A4.636135.606
+98AUT50CAUT5B0AUT501AUT50A4.636135.606
+98AUT502AUT50FAUT501AUT50A4.636135.606
+98AUT50FAUT50GAUT501AUT50A4.636135.606
+98AUT50GAUT50HAUT501AUT50A4.636135.606
+98AUT50HAUT5C0AUT501AUT50A4.636135.606
+C HIGH RESISTANCE ACROSS EACH UNPARALLELED TYPE 98 ELEMENT ABOVE
+C <NAME><NAME><----><---->RRRRRRXXXXXXCCCCCC
+ AUT50AAUT501AUT5A6AUT5A5
+ AUT50BAUT50AAUT5A6AUT5A5
+ AUT50CAUT50BAUT5A6AUT5A5
+ AUT50FAUT502AUT5A6AUT5A5
+ AUT50GAUT50FAUT5A6AUT5A5
+ AUT50HAUT50GAUT5A6AUT5A5
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+C SHUNT RESISTANCES FOR EDDY LOSS MODELING OF 1/8 LAMINATION THICKNESS LAYERS.
+C CROSS-FLUX CORE RESISTIVITY IS 12.00 E-8 OHM-METERS.
+C LAMINATIONS ARE 0.2286 MM THICK; MODELED LAYERS ARE 0.0286 MM THICK.
+ AUT5A5 141050.02696
+ AUT5A6 70525.01348
+ AUT5A7 70525.01348
+ AUT5A8 70525.01348
+ AUT5B5AUT5B0 141050.02696
+ AUT5B6AUT5B0 70525.01348
+ AUT5B7AUT5B0 70525.01348
+ AUT5B8AUT5B0 70525.01348
+ AUT5C5AUT5C0 141050.02696
+ AUT5C6AUT5C0 70525.01348
+ AUT5C7AUT5C0 70525.01348
+ AUT5C8AUT5C0 70525.01348
+ AUT501AUT5B0 152575.09208
+ AUT50AAUT5B0 76287.54604
+ AUT50BAUT5B0 76287.54604
+ AUT50CAUT5B0 76287.54604
+ AUT502AUT5C0 152575.09208
+ AUT50FAUT5C0 76287.54604
+ AUT50GAUT5C0 76287.54604
+ AUT50HAUT5C0 76287.54604
+C COMBINED WINDING 1-2 AND WINDING 2-3 STRAY (EDDY CUR.) LOSS MODEL:
+C 3-PHASE W1-W2 STRAY LOSSES AT RATED MVA = 636.953 KW.
+C WITH W1-W2 REF.VOLTS = 2.085 KV.; AND W2-W3 REF.VOLTS = 0.359 KV.
+ AUT5A1AUT5A2 20.47385
+ AUT5B1AUT5B2 20.47385
+ AUT5C1AUT5C2 20.47385
+C 3-PHASE W2-W3 STRAY LOSSES AT RATED MVA = 127.094 KW.
+C WITH W1-W2 REF.VOLTS = -0.495 KV.; AND W2-W3 REF.VOLTS = 7.203 KV.
+ AUT5A2AUT5A3 1706.84712
+ AUT5B2AUT5B3 1706.84712
+ AUT5C2AUT5C3 1706.84712
+C TANK WALL MULTIPLE CHAINED PI MODEL RESISTANCES REFERRED TO 100.000 TURNS:
+C MODELED SURFACE LAYERS ARE 0.1279 MM THICK; RHOTANK = 15.00 E-8 O-M.
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ AUT581 1.67957937
+ AUT582 3.35915874
+ AUT583 6.71831748
+ AUT584 13.43663496
+ AUT585 26.87326992
+ AUT586 53.74653984
+ AUT587 80.61980976
+ AUT504 161.23961952
+$VINTAGE, 0
+C TRANSFORMER TANK WALL MODEL FOR TRANSFORMER AUT5
+C TANK WALL AND VERTICAL BRACING HAS A CROSS-SECTIONAL AREA OF 0.354 SQ. METERS.
+C ITS INSIDE PERIMETER IS 21.65 METERS. ITS AVERAGE THICKNESS IS 0.016 METERS.
+C EQUIVALENT HEIGHT AFFECTED BY ZERO SEQUENCE FLUX IS ASSUMED AT 3.15 METERS.
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 70.00) AND FULLY SATURATED:(2.05, 75000.)
+C STEADY-STATE CALCS USE THE SLOPES AT POINTS 3 BELOW. (1.0000 TESLA)
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT ----->< FLUX -------->
+98AUT581 21.31036.333
+ 2.20500 3.54468
+ 5.04000 10.63404
+ 10.39500 17.72340
+ 22.05000 23.04042
+ 50.40000 26.58510
+ 110.25000 28.35744
+ 226.80000 30.12978
+ 441.00000 31.90212
+ 1134.00000 35.44680
+ 2362.50000 36.33297
+ 4725.00000 38.03714
+ 9999
+98AUT582AUT581 21.31018.166
+ 2.20500 1.77234
+ 5.04000 5.31702
+ 10.39500 8.86170
+ 22.05000 11.52021
+ 50.40000 13.29255
+ 110.25000 14.17872
+ 226.80000 15.06489
+ 441.00000 15.95106
+ 1134.00000 17.72340
+ 2362.50000 18.16648
+ 4725.00000 19.01857
+ 9999
+98AUT583AUT582 21.3109.0832
+ 2.20500 0.88617
+ 5.04000 2.65851
+ 10.39500 4.43085
+ 22.05000 5.76011
+ 50.40000 6.64628
+ 110.25000 7.08936
+ 226.80000 7.53245
+ 441.00000 7.97553
+ 1134.00000 8.86170
+ 2362.50000 9.08324
+ 4725.00000 9.50929
+ 9999
+98AUT584AUT583 21.3104.5416
+ 2.20500 0.44309
+ 5.04000 1.32926
+ 10.39500 2.21543
+ 22.05000 2.88005
+ 50.40000 3.32314
+ 110.25000 3.54468
+ 226.80000 3.76622
+ 441.00000 3.98777
+ 1134.00000 4.43085
+ 2362.50000 4.54162
+ 4725.00000 4.75464
+ 9999
+98AUT585AUT584 21.3102.2708
+ 2.20500 0.22154
+ 5.04000 0.66463
+ 10.39500 1.10771
+ 22.05000 1.44003
+ 50.40000 1.66157
+ 110.25000 1.77234
+ 226.80000 1.88311
+ 441.00000 1.99388
+ 1134.00000 2.21543
+ 2362.50000 2.27081
+ 4725.00000 2.37732
+ 9999
+98AUT586AUT585 21.3101.1354
+ 2.20500 0.11077
+ 5.04000 0.33231
+ 10.39500 0.55386
+ 22.05000 0.72001
+ 50.40000 0.83078
+ 110.25000 0.88617
+ 226.80000 0.94156
+ 441.00000 0.99694
+ 1134.00000 1.10771
+ 2362.50000 1.13541
+ 4725.00000 1.18866
+ 9999
+98AUT587AUT586 21.310.56770
+ 2.20500 0.05539
+ 5.04000 0.16616
+ 10.39500 0.27693
+ 22.05000 0.36001
+ 50.40000 0.41539
+ 110.25000 0.44309
+ 226.80000 0.47078
+ 441.00000 0.49847
+ 1134.00000 0.55386
+ 2362.50000 0.56770
+ 4725.00000 0.59433
+ 9999
+98AUT504AUT587 21.310.56770
+ 2.20500 0.05539
+ 5.04000 0.16616
+ 10.39500 0.27693
+ 22.05000 0.36001
+ 50.40000 0.41539
+ 110.25000 0.44309
+ 226.80000 0.47078
+ 441.00000 0.49847
+ 1134.00000 0.55386
+ 2362.50000 0.56770
+ 4725.00000 0.59433
+ 9999
+C FLUX SHIELD N-L MODEL FOR TRANSFORMER: AUT5
+C FLUX SHIELDS ARE 3.15 METERS LONG WITH AREA OF 0.3652 SQUARE METERS.
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 4.00) AND FULLY SATURATED:(2.00, 15000.00)
+C FOR SS CALCS EACH F.S. HAS REACT. OF 9505. OHMS (AT 100.0 TURNS)
+C BASED ON SLOPE OF POINT 8 BELOW, HAVING A FLUX DENSITY OF 1.7400 TESLA.
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT -----><NFLUX -------->
+98AUT503AUT504 2.896673.034
+ 0.12600 7.30340
+ 0.20475 14.60680
+ 0.30870 32.86530
+ 0.39690 43.82040
+ 0.50400 51.12380
+ 0.94500 54.77550
+ 1.73250 59.52271
+ 2.52000 63.53958
+ 6.30000 67.55645
+ 15.75000 69.38230
+ 47.25000 71.20815
+ 472.50000 73.03400
+ 945.00000 75.06272
+ 9999
+C RESISTANCE UNDERESTIMATING FLUX SHIELD LOSSES, EQUAL TO LINEAR REACTANCE.
+C <NAME><NAME><----><---->RRRRRRXXXXXXCCCCCC P
+ AUT503AUT504 9505.5
+C TANK TOP MULTIPLE CHAINED PI MODEL RESISTANCES REFERRED TO 100.000 TURNS:
+C MODELED SURFACE LAYERS ARE 0.1172 MM THICK; RHOTANK = 15.00 E-8 O-M.
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ AUT591 2.00000000
+ AUT592 4.00000000
+ AUT593 8.00000000
+ AUT594 16.00000000
+ AUT595 32.00000000
+ AUT596 64.00000000
+ AUT597 96.00000000
+ AUT509 192.00000000
+$VINTAGE, 0
+C TRANSFORMER TANK TOP MODEL FOR TRANSFORMER AUT5
+C TANK TOP EDDY CURRENT PATH IS MODELED WITH A CIRCUMFERENCE OF 15.00 METERS.
+C AND A WIDTH OF 2.00 METERS; THICKNESS IS 0.015 METERS.
+C THE B-H CURVE USED PASSES THROUGH THE FOLLOWING (TESLA, AMP/METER) POINTS:
+C LINEAR:(0.20, 70.00) AND FULLY SATURATED:(2.05, 75000.)
+C STEADY-STATE CALCS USE THE SLOPES AT POINTS 3 BELOW.
+C <NAME><NAME><NAME><NAME><I SS><P SS> (--FOR TYPE 98 N/L REACTOR--) P
+C CURRENT ----->< FLUX -------->
+98AUT591 13.53023.062
+ 1.40000 2.25000
+ 3.20000 6.75000
+ 6.60000 11.25000
+ 14.00000 14.62500
+ 32.00000 16.87500
+ 70.00000 18.00000
+ 144.00000 19.12500
+ 280.00000 20.25000
+ 720.00000 22.50000
+ 1500.00000 23.06250
+ 3000.00000 24.14423
+ 9999
+98AUT592AUT591 13.53011.531
+ 1.40000 1.12500
+ 3.20000 3.37500
+ 6.60000 5.62500
+ 14.00000 7.31250
+ 32.00000 8.43750
+ 70.00000 9.00000
+ 144.00000 9.56250
+ 280.00000 10.12500
+ 720.00000 11.25000
+ 1500.00000 11.53125
+ 3000.00000 12.07212
+ 9999
+98AUT593AUT592 13.5305.7656
+ 1.40000 0.56250
+ 3.20000 1.68750
+ 6.60000 2.81250
+ 14.00000 3.65625
+ 32.00000 4.21875
+ 70.00000 4.50000
+ 144.00000 4.78125
+ 280.00000 5.06250
+ 720.00000 5.62500
+ 1500.00000 5.76562
+ 3000.00000 6.03606
+ 9999
+98AUT594AUT593 13.5302.8828
+ 1.40000 0.28125
+ 3.20000 0.84375
+ 6.60000 1.40625
+ 14.00000 1.82812
+ 32.00000 2.10938
+ 70.00000 2.25000
+ 144.00000 2.39062
+ 280.00000 2.53125
+ 720.00000 2.81250
+ 1500.00000 2.88281
+ 3000.00000 3.01803
+ 9999
+98AUT595AUT594 13.5301.4414
+ 1.40000 0.14063
+ 3.20000 0.42187
+ 6.60000 0.70312
+ 14.00000 0.91406
+ 32.00000 1.05469
+ 70.00000 1.12500
+ 144.00000 1.19531
+ 280.00000 1.26563
+ 720.00000 1.40625
+ 1500.00000 1.44141
+ 3000.00000 1.50901
+ 9999
+98AUT596AUT595 13.530.72070
+ 1.40000 0.07031
+ 3.20000 0.21094
+ 6.60000 0.35156
+ 14.00000 0.45703
+ 32.00000 0.52734
+ 70.00000 0.56250
+ 144.00000 0.59766
+ 280.00000 0.63281
+ 720.00000 0.70312
+ 1500.00000 0.72070
+ 3000.00000 0.75451
+ 9999
+98AUT597AUT596 13.530.36035
+ 1.40000 0.03516
+ 3.20000 0.10547
+ 6.60000 0.17578
+ 14.00000 0.22852
+ 32.00000 0.26367
+ 70.00000 0.28125
+ 144.00000 0.29883
+ 280.00000 0.31641
+ 720.00000 0.35156
+ 1500.00000 0.36035
+ 3000.00000 0.37725
+ 9999
+98AUT509AUT597 13.530.36035
+ 1.40000 0.03516
+ 3.20000 0.10547
+ 6.60000 0.17578
+ 14.00000 0.22852
+ 32.00000 0.26367
+ 70.00000 0.28125
+ 144.00000 0.29883
+ 280.00000 0.31641
+ 720.00000 0.35156
+ 1500.00000 0.36035
+ 3000.00000 0.37725
+ 9999
+C ZERO SEQUENCE MODELS ARE BASED ON AIR-CORE MODELS, PLUS DERIVED VALUE FOR
+C X100T OF 3.29690 OHMS/PHASE TANK EFFECT, REFERRED TO 100 TURNS.
+C THE (UNSHIELDED) TANK TOP IS MODELED AND HAS STRAY LOSSES.
+C THE TANK WALL IS SATURABLE; BUT ANY STRAY LOSSES ARE NOT MEASURABLE.
+C THE FLUX SHIELD IS SATURABLE AND LACKS SIGNIFICANT DISTRIBUTED GAPS.
+C COUPLING REPRESENTING TOP AND SIDE GAP REACTANCES:
+C PER-PHASE SIDE GAPS = 1.846 OHMS; TOP GAPS = 1.814 OHMS AT 100 TURNS.
+51AUT503 0.000 10.978117
+52AUT509 0.000 5.4405450.000 5.440545
+C SHUNT FLUX PATHS BYPASSING LEGS AND COILS OF EACH PHASE FOLLOW:
+C <NAME><NAME><----><---->RRRRRRXXXXXXXXXXXX
+51AUT5A4AUT5B0 0.000 7.463166
+51AUT5B4AUT5C0 0.000 7.463166
+51AUT5C4AUT503 0.000 7.463166
+C ZERO-SEQUENCE FLUXES FROM EACH PHASE TO TANK ARE EQUALIZED BY THE FOLLOWING:
+C <NAME><NAME><----><---->RRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXX
+51AUT503AUT502 0.000 3296.896640
+52AUT502AUT501 0.000 3296.8933430.000 3296.896640
+53AUT501 0.000 3296.8933430.000 3296.8933430.000 3296.896640
+C NEXT COUPLING SUMS ZERO-SEQUENCE VOLTAGES OF OUTER WINDINGS AT NODE (0,8):
+C <NAME><NAME><----><---->RRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXX
+51AUT5A3 0.000 354922.42080
+52AUT506 0.000 354922.065870.000 354922.42080
+51AUT5B3AUT5B0 0.000 354922.42080
+52AUT507AUT506 0.000 354922.065870.000 354922.42080
+51AUT5C3AUT5C0 0.000 354922.42080
+52AUT508AUT507 0.000 354922.065870.000 354922.42080
+C NON-DEDICATED STRAY ZERO-SEQUENCE LOSS RESISTANCE:
+C PRODUCES 158.213 KW LOSS FOR ENTERED TEST CONDITIONS.
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+ AUT508 354.92242080
+$VINTAGE, 0
+C TIME-STEP-DAMPING BRANCHES ACROSS MAJOR AIR GAPS FOR HARMONIC ORDER: 500.0
+C <NAME><NAME><----><---->RRRRRRXXXXXXCCCCCC
+ AUT5A4AUT5B0 373.16 .00142
+ AUT5B4AUT5C0 373.16 .00142
+ AUT5C4AUT503 373.16 .00142
+ AUT501 164.84 .00322
+ AUT501AUT502 164.84 .00322
+ AUT502AUT503 164.84 .00322
+C 10000-HENRY FLUX MONITORING INDUCTANCES TO INITIALIZE TACS.
+C <NAME><NAME><----><---->RRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXXRRRRRRXXXXXXXXXXXX
+51AUT5A5AUT5D1 3769911.185
+51AUT5B5AUT5D2 3769911.185
+51AUT5C5AUT5D3 3769911.185
+51AUT501AUT5D4 3769911.185
+51AUT502AUT5D5 3769911.185
+C End of $INCLUDE. File name = aut5-brn.inc
+$VINTAGE, 1
+C <NAME><NAME><----><---->RRRRRRRRRRRRRRRRXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCC P
+C CORNER GROUND DELTA
+ Y1 1000.
+C ENERGIZE VIA 100 OHM RESISTANCES FOR DAMPING
+C 0.1 ohm is now essential; 100 is too large relative to xl
+ SRC2A EGCT1A .1
+ SRC2B EGCT1B .1
+ SRC2C EGCT1C .1
+$VINTAGE, 0
+BLANK CARD ENDING ALL ATP-SORTED BRANCH CARDS (from blank.inc)
+C $INCLUDE aut5-swx.inc
+C WSM touches using DOS editor to make readable.
+C MEAS. SWITCHES TO MONITOR CURRENT IN 10000-HENRY CORE FLUX-MONITORING INDUCTS.
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+ AUT5D1 MEASURING
+ AUT5D2AUT5B0 MEASURING
+ AUT5D3AUT5C0 MEASURING
+ AUT5D4AUT5B0 MEASURING
+ AUT5D5AUT5C0 MEASURING
+C End of $INCLUDE. File name = aut5-swx.inc
+C ********************************************* STUDY-DEPENDENT CABLE SWITCHING:
+C SWITCH CARD: COL 1-2 IS 0 FOR ORDINARY & GAUSS. STATISTICS SWITCHES, NOT TACS.
+C CLOSING, OPENING TIMES AND STATISTICS PARAMETERS BELOW ARE IN SECONDS.
+C <NAME><NAME><T CLOSE ><T. OPEN ><AMP MARG> 67890123 MEASURING 56789012345678 P
+C <NAME><NAME><GAUS AVG><GAUS SIG><AMP MARG> STATISTICS P
+C METERS INTERNAL CURRENT OF PHASE LEG A,B,C
+ AUT5AMAUT5A5 MEASURING 1
+ AUT5BMAUT5B5 MEASURING 1
+ AUT5CMAUT5C5 MEASURING 1
+C ENERGIZED AT ZERO
+ SRCA SRC2A MEASURING 1
+ SRCB SRC2B MEASURING 1
+ SRCC SRC2C MEASURING 1
+C ENERGIZED AT ZERO PLUS
+C SRCA SRC2A .0001 999. 1.
+C SRCB SRC2B .0001 999. 1.
+C SRCC SRC2C .0001 999. 1.
+BLANK CARD ENDING ALL ATP-SORTED SWITCH CARDS (from blank.inc)
+$LISTON
+C $INCLUDE aut5-src.inc
+C WSM touches file with DOS editor to make it into a DOS file
+C TACS-CONTROLLED SOURCES FOR HYSTERESIS/RESIDUAL MMF IN TRANSFORMER AUT5
+C <NAME> *= VOLTAGE IF POSITIVE; CURRENT IF NEGATIVE
+60AUT5A5-1
+60AUT5B5-1
+60AUT5C5-1
+60AUT5B0-1
+60AUT5C0-1
+60AUT501-1
+60AUT502-1
+C End of $INCLUDE. File name = aut5-src.inc
+C *= VOLTAGE IF POSITIVE; CURRENT IF NEGATIVE
+C <NAME> <CRESTVAL><FREQ ><ANGLE > <T START ><T STOP >
+C 138 KV L-L = 112676.5 V CREST or 1877.94 at 1 hertz
+C 40 percent = 751.17
+C 60 percent = 1126.76
+C 80 percent = 1502.35
+C 100 percent = 1877.94
+C 120 percent = 2253.53
+14SRCA 1 2253.53 1. 0. -1.0 999.
+14SRCB 1 2253.53 1. -120. -1.0 999.
+14SRCC 1 2253.53 1. -240. -1.0 999.
+BLANK CARD ENDING ALL ATP-SORTED SOURCE CARDS (from blank.inc)
+C <BUS ><VOLT><MON.><FOR ><NODE>< >< >< >< >< >< >< >< >
+ EGCT1A EGCT1B EGCT1C
+BLANK CARD ENDING ALL ATP-SORTED OUTPUT CARDS (from blank.inc)
+ 193.01 0.0 0.1 BRANCH
+ TACS ALLINATACS ALLINBTACS ALLINC
+BEGIN NEW DATA CASE
+C 2nd of 4 subcases.
+C "FREQUENCY SCAN" use, with subsequent plotting of phasors vs. frequency.
+C This test case uses uniform frequency spacing. It basically like DC-51,
+C but involves some variations of output and batch-mode plotting.
+PRINTED NUMBER WIDTH, 8, 2, { Each column of width 8 includes 2 blank bytes
+FREQUENCY SCAN, 60., 10., 280., 0, { 60 < f < 280 Hz in 10-Hz increments
+CHANGE PLOT FREQUENCY { Request to vary frequency of plot points and .PL4 file
+ 5 5 10 3 20 1 { On step 5, change to 5, etc.
+ 0.1 0.0 { dT of col 1-8 is not used; TMAX of 9-16 ==> no simulation
+ 1 1 1 0 1 -1
+ 5 5 10 3 20 1
+C Note: 1-punch in col. 80 of the following card was replaced by LIN002 below.
+C This illustrates a second way to order current output: by branch name.
+C When the user does not name branches himself, NMAUTO = 1 means the
+C program will provide default names. The first branch is LIN001, so
+C this should be used to replace the column-80 punch. But this branch
+C is in series with the 2nd branch, and has no shunt leakage, so the
+C same current can be found from the second branch (name LIN002). This
+C alternative is more interesting since it shows current output seems to
+C be possible for the 1-phase, constant-parameter distributed model.
+ GEN SEND 3.0 40.
+-1SEND MID .306 5.82 .012 20. { 20 miles of line from DC-37
+ 1MID REC 34.372457.68.15781 { 10 miles of Pi from DC-3
+ EARTH 200. 1
+C The preceding branch has a 1-punch in column 80 for current output. If a 3
+C had instead been used, branch voltage would have been produced, too. Note
+C it would be equal to the node voltage of node EARTH. No choice of polarity
+C is possible, this way. More interesting is the "-5" request below, which
+C allows polarity reversal (a minus sign will be added).
+BLANK card ending branches
+C Note: 1-punch in col. 80 of the following card was replaced by SWT001 below.
+C This illustrates a second way to order current output: by switch name.
+ REC EARTH MEASURING
+BLANK card ending (here, non-existent) switches
+14GEN 100. 60. -1.
+BLANK card ending sources
+C Requests for output variables follow. About currents, there is no control
+C over location in the output vector. Switch currents always precede branch
+C currents, and both are in natural order (of component number). But order of
+C voltages is controlled by the user. Note requests for node voltages have
+C been split, and in between there is a request for a voltage difference.
+C This is the order in the output vector, note. Yet, all voltage requests
+C made here (after the blank card ending source cards) follow all that might
+C have been made with column-80 punches on branch or switch cards.
+ GEN SEND MID REC
+-5 EARTH { -5 ==> 2A6 name pairs for voltage differences (branch V)
+-1SWT001LIN002 { -1 ==> Branch/switch current out; use A6 component names
+ EARTH { Node voltage. Note branch voltage 2 lines above has opposite polarity
+BLANK card ending node voltage outputs
+ PRINTER PLOT
+C Note the peculiar 60 units/inch on the following plot cards. This is not
+C a mistake. With 6 lines/inch of the printer plot, & the F-scan frequency
+C increment of 10 Hz, there will be exactly one line for each freq step:
+ 14660. 60.280. GEN SEND MID REC
+ 19660. 60.280. SEND MID EARTH REC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 4 subcases illustrates IF-THEN-ENDIF for conditional data
+C assembly as described in the July, 1998, newsletter. Environment
+C variable RESISTOR must be set prior to use, in order. to avoid
+C an error stop. This can not be set internally, unfortunately.
+PRINTED NUMBER WIDTH, 9, 2,
+POWER FREQUENCY, 50.,
+ .0001 .020 50.
+ 1 1 1 1 1 -1
+ 5 5 20 20
+C 1st of 2 identical, disconnected networks uses manually-defined branches:
+C IF ( RESISTOR .EQ. 'ONEHALF' ) SET VARIABLE { Execute OS command SET RESISTOR=ONEHALF
+IF ( RESISTOR .EQ. 'ONEHALF' ) THEN { If user wants to use resistive alternative:
+ GEN TRAN 0.5 { 1st of 3 alternatives is resistor
+ELSEIF ( RESISTOR .EQ. 'ZERO' ) THEN { If user wants to use resistive alternative:
+ GEN TRAN 0.0 { 2nd of 3 alternatives is illegal resistor
+ELSE { Alternatively (if environment variable RESISTOR is not YES):
+ GEN TRAN 0.5 { 3rd of 3 alternatives is inductor
+ENDIF { Terminate 5-line IF statement that uses RESISTOR to choose the model
+ TRAN 0.5
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.414 50. 0.0 -1.
+BLANK card terminating program source cards.
+ GEN TRAN
+BLANK card ending program output-variable requests.
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DC-4
+C 4th of 4 subcases is modification of DC-4 as used by SPY @5. But that
+C required SPY. Beginning 23 Aug 1998, parametric studies can be run
+C using higher-level batch-mode commands. See October, 1998, newsletter.
+C Following request carries params MAXKNT IOPCVP
+POCKET CALCULATOR VARIES PARAMETERS 5 1 { Loop five times
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .020 12.0
+ 1 1 0 0 1 -1 1
+ 5 5 20 20 100 100
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+MILLIH = 50000. - ( KNT - 1.0 ) * 5000. { Gives L =50, 45, 40, 35, & 30K mHenry
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+ BRANCH NAME:First { Even though name could go on next card, use this instead
+ GEN TRAN 5.0MILLIH { $PARAMETER will define this inductance
+ TRAN NAME R-mag 1.E4
+93TRAN NAME Magnet .005 30. 3
+ 0.0 0.0 { 1st point being origin is request to reflect
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN LOADG 255. 5.E4 3
+ LOADG 1.E-6
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards.
+ GEN TRAN
+BLANK card ending program output-variable requests.
+BLANK card ending all plot cards { In fact, ignored until the final shot
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn26.dat b/benchmarks/dcn26.dat
new file mode 100644
index 0000000..fdf12e5
--- /dev/null
+++ b/benchmarks/dcn26.dat
@@ -0,0 +1,1334 @@
+BEGIN NEW DATA CASE
+C 1st of 19 subcases that illustrate POCKET CALCULATOR VARIES PARAMETERS (the
+C same as introduced at the end of DCNEW-25) without simulation. The previous
+C illustration involved simulation. Here, TMAX < 0 ===> none. Although
+C one could save the .PL4 file, there is nothing new to illustrate in this
+C usage, so it will not be done. Variable IOPCVP controls output for the
+C 2nd or later pass of loop. The zero illustrated here minimizes output. If
+C it is toggled to value 1, all output of the 1st subcase should be repeated
+C during the 2nd or later pass. This is useful for debugging.
+C Controls of following request card: MAXKNT IOPCVP { Loop 8 times with
+POCKET CALCULATOR VARIES PARAMETERS 8 1 { minimum printout
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .0001 -1. 50. 50.
+ 1 1 1 0 1 2
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+MHENRY = 1.2 - ( KNT - 1.0 ) * .05 { L =1.2, 1.15, 1.1, etc.
+FREQUENCY = 25. * KNT { Here we vary the frequency for use on source card
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+ TRAN 1.0 1.E+5 3
+ GEN TRAN 1.0MHENRY
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. FREQUENCY -1.
+BLANK card terminating program source cards.
+ GEN TRAN
+BLANK card ending program output-variable requests.
+ PRINTER PLOT
+ 19660. 0.0200. TRAN
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 19 subcases that illustrate PCVP will superimpose the PCVP loop on
+C top of a normal FREQUENCY SCAN loop. In fact, the latter controls the
+C loop, so MAXKNT is arbitrary and can be ignored. By design, the
+C solution to this 2nd subcase is the same as the first. As for subcase one,
+C the .PL4 file will not be saved, although it could be.
+FREQUENCY SCAN, 25., 25., 200., 0, { 25 < f < 200 Hz in 25-Hz increments
+C Controls of following request card: MAXKNT IOPCVP { Ignore MAXKNT value
+POCKET CALCULATOR VARIES PARAMETERS 0 1 { since also FS loop
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .0001 -1. 50. 50.
+ 1 1 1 0 1
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+MHENRY = 1.2 - ( KNT - 1.0 ) * .05 { L =1.2, 1.15, 1.1, ....
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+ TRAN 1.0 1.E+5 3
+ GEN TRAN 1.0MHENRY
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. 25. -1.
+BLANK card terminating program source cards.
+ GEN TRAN
+BLANK card ending program output-variable requests.
+ PRINTER PLOT
+ 19660. 0.0200. TRAN
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 19 subcases that illustrate PCVP will superimpose the PCVP loop on
+C top of a normal HARMONIC FREQUENCY SCAN loop. In fact, the latter controls
+C the loop, so MAXKNT is arbitrary and can be ignored. By design,
+C solution to this 3rd subcase is the same as the preceding two. This is an
+C abnormal, special case (normally, HFS data will skip harmonics, and source
+C amplitudes will be varied).
+C 27 December 2000, MODELS data is added. Nothing else is changed. This
+C use of MODELS is imagined as an alternative to $POCKET as illustrated
+C in the following (4th) subcase. Automatically, MODELS is called at the
+C end of the phasor solution so the user need do nothing more than add his
+C MODELS data in the usual place. 28 December 2000, add a switch, too, to
+C prove that phasor switch current also can be viewed using MODELS.
+POWER FREQUENCY, 25., ! Needed so minimum frequency is recognized as fundamental
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+C Controls of following request card: MAXKNT IOPCVP { Ignore MAXKNT value
+POCKET CALCULATOR VARIES PARAMETERS 0 1 { since also HFS loop
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .0001 -1. 50. 50.
+ 1 1 1 0 1
+MODELS
+INPUT v_Re_tran {v(tran)} -- real part of voltage at node TRAN
+ v_Im_tran {imssv(tran)} -- imag part of voltage at node TRAN
+ i_Re_swit {i(swit)} -- real part of current at switch SWIT
+ i_Im_swit {imssi(swit)} -- imag part of current at switch SWIT
+MODEL m1 -----------------------------------------------------------------------
+ VAR pass, ampl, angle, sum -- list of all local variables
+ INPUT v_Re_1 {dflt: 0} -- to verify that real part of node voltage and the
+ v_Im_1 {dflt: 0} -- imaginary part of node voltage are accessed correctly
+ i_Re_1 {dflt: 0} -- to verify the real part of switch current
+ i_Im_1 {dflt: 0} -- to verify the imaginary part of switch current
+ INIT pass:=0
+ sum:=0 ENDINIT
+ EXEC
+ pass:=pass+1
+ ampl:= sqrt( v_Re_1 **2 + v_Im_1 ** 2 ) -- Magnitude of the node voltage
+ angle:= atan2( v_Im_1 , v_Re_1 ) -- Angle in radians of the node voltage
+ sum:= sum + ampl -- Sum the voltage amplitudes for different harmonics
+write(' ************** In MODELS, pass = ', pass, ' freq = ', t )
+write(' Re{i1}, Im{i1} = ', i_Re_1, ', ', i_Im_1 )
+write(' Re{v1}, Im{v1} = ', v_Re_1, ', ', v_Im_1 )
+write(' Polar =', ampl, angle )
+write(' Sum of amplitudes =', sum )
+ ENDEXEC
+ENDMODEL
+USE m1 as m1
+ INPUT v_Re_1 := v_Re_tran
+ v_Im_1 := v_Im_tran
+ i_Re_1 := i_Re_swit
+ i_Im_1 := i_Im_swit
+ENDUSE
+ENDMODELS
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+MHENRY = 1.2 - ( KNT - 1.0 ) * .05 { L =1.2, 1.15, 1.1, ....
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+ TRAN SWIT 1.0 1.E+5 3
+ GEN TRAN 1.0MHENRY
+BLANK card ending program branch cards.
+ SWIT -1. 1.0 1
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. 25. 0.0 { Note comment and no negative T-start
+14GEN 70. 50. 0.0 { This is normal HFS source data. It
+14GEN 70. 75. 0.0 { is unusual, however, because of our
+14GEN 70. 100. 0.0 { match preceding subases. Unusual
+14GEN 70. 125. 0.0 { for HFS usage, the amplitude is not
+14GEN 70. 150. 0.0 { varied and all harmonics are present
+14GEN 70. 175. 0.0
+14GEN 70. 200. 0.0
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+ GEN TRAN
+BLANK card ending program output-variable requests.
+ CALCOMP PLOT { Use BOTH rather than DISK to see a bar chart of harmonics
+ 19680. 0.0200. TRAN SWIT { Units/inch of 5-7 are ingored since bar chart
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 19 subcases that illustrate PCVP comes from Gabor Furst. As can be
+C read in the January, 1999, newsletter, this is "a semi-realistic HFS file
+C .... This resistance is varied by the Funk-Hantel formula." Note harmonic
+C source amplitudes vary (unlike 3rd subcase), and some harmonics are missing.
+C 27 December 2000, modify existing case by addition of SAVE and $POCKET
+C to illustrate operation of these new features. Included is WRITE( for
+C output that is part of regular ATP output.
+POWER FREQUENCY, 50., ! Needed so minimum frequency is recognized as fundamental
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+C Controls of following request card: MAXKNT IOPCVP { Ignore MAXKNT value
+POCKET CALCULATOR VARIES PARAMETERS 0 1 { since also HFS loop
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .0001 -1. 50.
+ 1 1 1 0 1
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+C SAVE ALL { Until selective SAVEs work better, make all variables non-volatile
+C The preceding should be necessary. Instead, it results in KILL
+C code because following resistance is not encoded right. So,
+C remove temporarily. Amazingly, variable SUM seems believable.
+RESISTANCE = 2.0 * (1.0 + 0.2 * (KNT - 1.0) ** 1.5)) { Funk-Hantel freq. dependence
+BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+$VINTAGE, 1, { Wide: RRRRRRRRRRRRRRRRLLL ....
+ TRAN RESISTANCE 3
+$VINTAGE, 0, { Narrow: RRRRRRLLLLLLCCCCCC
+ GEN TRAN 2.0 6.1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+ POLAR OUTPUT VARIABLES { 2nd of 3 alternatives gives mag, angle (not mag only)
+14GEN 10200. 1. 0.0 { Power freq source has harmonic # 1
+14GEN 500. 3. 0.0 { 3rd harmonic source has harmonic # 3
+14GEN 3000. 5. 0.0
+14GEN 2000. 7. 0.0
+14GEN 600. 11. 0.0
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+ GEN TRAN
+$POCKET { This will be serviced by CIMAGE just as any other $-card would be
+C This is a comment within $POCKET. It shows they are ignored. Note placement
+C of this block as part of node-voltage outputs, which ensures that it will be
+C processed after each phasor solution. If one wanted to perform mathematics
+C on the solution, this would be the appropriate location. About summation,
+C values should be as follows: Harmonic # KNT: 1 3 5 7 11
+C Summation: 1 4 9 16 27
+STEP = KNT { Output is allowed only for local variables, so copy KNT to local
+SUM = SUM + KNT { Preceding SAVE is for SUM, to accumulate sum of loop numbers
+WRITE( ' -----------------------' ) { Statement can not go beyond column 40
+WRITE( ' >> Step KNT =', STEP ) $$ { The double dollar => continue on next
+WRITE( ' Value of SUM =', SUM ) { No double dollar ===> end of out line
+WRITE( ' =======================' ) { This separator line goes on new line
+C There is a limit on the $$ concatensation. ATP output line length is
+C 132 bytes maximum. It is the user's responsibility not to exceed this.
+BLANK card ends $POCKET definitions to be processed after each phasor solution
+BLANK card ending program output-variable requests.
+ CALCOMP PLOT { Use BOTH rather than DISK to see a bar chart of harmonics
+ 19680. 0.0600. TRAN { Units/inch of 5-7 are ingored since bar chart
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 5th of 19 subcases is unrelated to the preceding. Rather, it illustrates the
+C first use of superposition of phasor solutions. Success occurred 8 Nov 98.
+C This is a brand new type of frequency scan. It is fundamentally different
+C because of the superposition and continuation into the time-step loop. In
+C the following, only the minimum of 2 phasor solutions are superimposed. The
+C more general case will involve repeated sets of excitation. Each such set
+C begins with the request word SUPERIMPOSE MORE SOURCES: and ends with the
+C blank card ending sources. The final set of excitation is the one actually
+C used in the time-step loop, so must include all sources of the preceding
+C sets, if this is what the user wants. Note T-start is not negative for
+C such additions, however. Initial restriction: series R-L-C branches only.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .01 2.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ GEN TRAN 1.0 10. 3
+ TRAN 0.20E6 1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.0 1.0 -1.
+BLANK card terminating source cards for 1st phasor solution.
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GEN 1.0 1.0 { Source of 1st solution represented in dT-loop
+14GEN -1.0 2.0 { 2nd harmonic source } -1.
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+ GEN TRAN
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN GEN TRAN GEN TRAN
+C TRAN TRAN TERRA
+C 0 0.0 -.278585723 0.0 .2785857231 -.280475835 -.280475835
+C 1 .01 -.258845905 .0059120271 .2647579317 -.272635821 -.272635821
+C 2 .02 -.228080808 .0235315402 .2516123484 -.253187511 -.253187511
+C 3 .03 -.187201315 .0525107648 .2397120803 -.222823212 -.222823212
+BLANK card ending program output-variable requests.
+C 100 1.0 -.278768592 0.0 .2787685919 -.280624596 -.280624596
+C 120 1.2 .6447560418 1.118033989 .473277947 .6497741745 .6497741745
+C 140 1.4 -1.4363837 -1.11803399 .3183497136 -1.33496603 -1.33496603
+C 160 1.6 -.123925906 -1.11803399 -.994108083 -.293493889 -.293493889
+C 180 1.8 1.194323606 1.118033989 -.076289617 1.259311865 1.259311865
+C 200 2.0 -.278769536 0.0 .2787695359 -.280625592 -.280625592
+C Variable max: 1.417160223 1.124996567 .6739357604 1.408960752 1.408960752
+C Times of max: .75 .79 1.3 .76 .76
+C Variable min: -1.69650701 -2. -1.00648406 -1.68753921 -1.68753921
+C Times of min: 1.46 0.5 .62 1.47 1.47
+ CALCOMP PLOT
+ 143 .2 0.0 2.0 GEN TRAN { Screen plot is perfectly smooth & periodic
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 6th of 19 subcases extends uncoupled R-L-C elements of the 5th to multiphase
+C lumped elements. Take a real 10-mile, 3-phase Pi-circuit from DC-3. But we
+C want a longer line, so increase frequency to 400 Hz. Of course, single phase
+C becomes 3-phase. Line section is terminated by balanced R-L load to ground.
+C This solution was verified by comparing with one that omitted the second
+C harmonic during the phasor solution, and extended T-max to 20 msec. The
+C final 5 msec of voltages at TRANA, TRANB, and TRANC are very close to the
+C solution about to be demonstrated. Also, in output below, compare step 0
+C with step 100. They are very close. But step 200 is even closer to 100 (a
+C little settling has occurred; this is discretization error).
+PRINTED NUMBER WIDTH, 10, 2,
+.0000250 .005 3000.
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ 1GENA TRANA 34.372457.68.15781
+ 2GENB TRANB 35.735164.43-.031538.002451.79.16587
+ 3GENC TRANC 35.735164.43-.031537.455151.72-.021938.002451.79.16587
+ TRANA 20. 100. 1
+ TRANB TRANA 1
+ TRANC TRANA 1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GENA 1.0 400. 0.0 -1.
+14GENB 1.0 400. -120. -1.
+14GENC 1.0 400. +120. -1.
+BLANK card terminating source cards for 1st phasor solution.
+C .... or "Q". The first solution frequency = 4.00000000E+02 Hertz.
+C GENA 1.0 1.0 .00651879225127 .01786478870371 .00325939612564 -.3270376674E-4
+C 0.0 0.0 -.0166329799799 -68.5988095 .00831648998997 0.0061218
+C Total network loss P-loss by summing injections = 9.742991063317E-03
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GENA 1.0 400. 0.0
+14GENB 1.0 400. -120.
+14GENC 1.0 400. +120.
+14GENA 1.0 800. 0.0 -1.
+14GENB 1.0 800. -120. -1.
+14GENC 1.0 800. +120. -1.
+C .... or "Q". The first solution frequency = 8.00000000E+02 Hertz.
+C GENA 1.0 1.0 .00179922688615 .00899257899614 .89961344308E-3 -.1832029691E-4
+C 0.0 0.0 -.008810746825 -78.4584168 .00440537341249 0.0031815
+C Total network loss P-loss by summing injections = 2.746542759765E-03
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+ GENA TRANA GENB TRANB GENC TRANC
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GENA TRANA GENB TRANB GENC TRANC TRANA TRANB TRANC
+C TERRA TERRA TERRA
+C 0 0.0 2.0 .6411782 -1. -.655262 -1. .0054071 .0081912 -.026551 .0176749
+C 1 .25E-4 1.990141 .6719155 -.832151 -.619565 -1.15799 -.059291 .0104086 -.02703 .0159628
+C 2 .5E-4 1.960698 .6964416 -.656435 -.578549 -1.30426 -.123014 .0125508 -.027293 .0141158
+C 3 .75E-4 1.912064 .7145235 -.47495 -.532698 -1.43711 -.18506 .014596 -.027337 .0121521
+C 4 .1E-3 1.84489 .7260175 -.289862 -.482595 -1.55503 -.244721 .0165237 -.027161 .0100912
+C 5 .125E-3 1.760074 .7308739 -.103383 -.428865 -1.65669 -.301342 .0183147 -.026767 .0079542
+C 10 .25E-3 1.118034 .6596136 .7736591 -.128596 -1.89169 -.520814 .0246777 -.021779 -.003099
+C 15 .375E-3 .2787683 .4603086 1.384884 .1607557 -1.66365 -.603533 .0259314 -.013004 -.012782
+C 20 .5E-3 -.5 .2026547 1.582676 .3644382 -1.08268 -.546164 .0222562 -.002864 -.018931
+BLANK card ending program output-variable requests.
+C 40 1.E-3 -.5 -.185466 -.064602 .1746455 .5646021 .0137459 -.003673 .0129232 -.008711
+C 60 .0015 -.5 -.212516 .5646021 .2936534 -.064602 -.082817 -.005699 .0101002 -.004403
+C 80 .002 -.5 -.445559 -1.08268 -.178062 1.582676 .6101375 -.021055 .0063503 .0143909
+C 100 .0025 2.0 .6410699 -1. -.655039 -1. .0052891 .0081836 -.026535 .0176671
+C 120 .003 -.5 .2025812 1.582676 .3645686 -1.08268 -.546224 .0222515 -.002854 -.018936
+C 140 .0035 -.5 -.185508 -.064602 .1747437 .5646021 .0136866 -.003676 .0129291 -.008714
+C 160 .004 -.5 -.212542 .5646021 .2937035 -.064602 -.082843 -.005701 .0101038 -.004405
+C 180 .0045 -.5 -.445576 -1.08268 -.17803 1.582676 .6101221 -.021056 .0063525 .0143897
+C 200 .005 2.0 .6410606 -1. -.655017 -1. .005275 .008183 -.026534 .0176664
+C Variable maxima : 2.0 .7308739 1.582676 .443335 1.582676 .660407 .0261033 .013903 .0249648
+C Times of maxima : 0.0 .125E-3 .003 .00315 .002 .0021 .35E-3 .0034 .002275
+C Variable minima : -1.125 -.540524 -1.89169 -.742149 -1.89169 -.603595 -.021087 -.027337 -.020627
+C Times of minima : .004275 .00435 .00225 .002375 .25E-3 .002875 .004525 .75E-4 .0031
+ CALCOMP PLOT
+ 144 .5 0.0 5.0 GENA GENB GENC
+ 144 .5 0.0 5.0 TRANA TRANB TRANC
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 7th of 19 subcases demonstrates proper working of superposition of phasor
+C solutions for a constant-parameter, distributed line. This first was made
+C to work around sunset on 15 Nov 1998. Two hours later, the switch was made
+C to work. It had a bug of its own. The switch is permanently closed, and
+C does not change the answer. Its addition merely demonstrates that switches
+C now are tolerated. Still no frequency-dependent line, however. That will
+C be left for the expert (BPA's Dr. Tsu-huei Liu), if she thinks it is doable.
+POWER FREQUENCY, 50., { Unnecessary. This merely avoids warning about 50 Hz.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .000100 .040 50. 50. { Note L in ohms and C in micromhos at 50 Hz
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+-1SEND REC 0.3 0.4 12.6 80. { 1-phase distributed line
+ REC 68. 1.2E4 { Series L-C load on line } 1
+ GEN 10. 40. { Series R-L at source has no effect } 1
+BLANK card ending branch cards
+ GEN SEND -1.0 1.0 { Permanently close switch at sending end } 1
+BLANK card ending switch cards
+14GEN 1.0 50. { 60-Hz phasor solution } -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.702540183859E-02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SEND 2.81684507E-02 -1.93583035E-02 3.41790218E-02 -34.4982 1.40842254E-02 9.67915173E-03
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GEN 1.0 100. { 60-Hz phasor solution } -1.
+14GEN 1.0 50.
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+C Total network loss P-loss by summing injections = 1.174643954145E-03
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SEND 8.10826370E-04 -4.85126124E-03 4.91855416E-03 -80.5114 4.05413185E-04 2.42563062E-03
+C Add these 2 I-real parts: i(0) = .0810826370E-02 + 2.81684507E-02 = 2.89792770
+ GEN SEND REC { Names of nodes for voltage output
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN SEND REC GEN REC GEN
+C SEND TERRA TERRA
+C *** Phasor I(0) = 2.8979277E-02 Switch "GEN " to "SEND " closed in the steady-state.
+C 0 0.0 2.0 2.0 .3104733 .0289793 .0288367 .0074208
+C 1 .1E-3 1.997533 1.997533 .3168525 .0298758 .0298478 .0089264
+C 2 .2E-3 1.990141 1.990141 .321957 .03074 .0308254 .0104164
+C 3 .3E-3 1.977849 1.977849 .3249705 .0315697 .0317676 .0118871
+C 4 .4E-3 1.960698 1.960698 .3259235 .0323632 .0326723 .0133347
+BLANK card ending node voltage output requests
+C 200 .02 2.0 2.0 .310624 .0289646 .0288207 .0074193
+C 220 .022 1.118034 1.118034 .1167098 .0390118 .0406289 .0307644
+C 240 .024 -.5 -.5 -.231522 .0292955 .0304699 .0301821
+C 260 .026 -1.11803 -1.11803 .0536218 .0061988 .0055751 .0120831
+C 280 .028 -.5 -.5 .7647646 -.015757 -.016915 -.002155
+C 300 .03 0.0 0.0 .9147476 -.027333 -.027043 -.004344
+C 320 .032 -.5 -.5 .1025405 -.029283 -.027728 -.006411
+C 340 .034 -1.11803 -1.11803 -.858517 -.02491 -.02427 -.018205
+C 360 .036 -.5 -.5 -.946641 -.013213 -.014641 -.029034
+C 380 .038 1.118034 1.118034 -.226641 .0070384 .0051148 -.020297
+C 400 .04 2.0 2.0 .310915 .0289599 .0288158 .007419
+C Variable maxima : 2.0 2.0 .9786535 .0390245 .0406716 .0337317
+C Times of maxima : 0.0 0.0 .0093 .002 .0021 .0029
+C Variable minima : -1.125 -1.125 -1.04338 -.029475 -.028141 -.029278
+C Times of minima : .0342 .0342 .0151 .0115 .0111 .0363
+ CALCOMP PLOT
+ 144 4. 0.0 40. SEND REC { Show node voltages
+ 194 4. 0.0 40. GEN SEND REC { Show branch currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 19 subcases is like the preceding, only for 3-phase distributed line
+C modeling rather than single phase. For simplicity, the line is taken to be
+C continuously transposed. So, to make the solution interesting, the load
+C is unbalanced slightly. The effect is substantial (must be near resonance).
+C As phasor output is becoming substantial, illustrate lack of phasor output.
+C About receiving end voltages (1st plot), phase b is dominated by fundamental
+C whereas phase c is dominated by the harmonic. On the other hand, phase a
+C is a nice mixture of the two. Done. WSM, 15 November 1998 19:52
+POWER FREQUENCY, 50., { Unnecessary. This merely avoids warning about 50 Hz.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .000100 .040 50. 50. { Note L in ohms and C in micromhos at 50 Hz
+ 1 1 1 0 1 -1
+ 2 -1 5 5 20 20
+-1SENDA RECA 0.3 0.4 12.6 80. { 3-phase distributed line
+-2SENDB RECB .03 0.1 6.0 80.
+-3SENDC RECC
+ RECA 68. 1.2E4 { Series L-C load on line } 1
+ RECB 68. 1.3E4 { Series L-C: note imbalance } 1
+ RECC 68. 1.4E4 { Series L-C: note imbalance } 1
+BLANK card ending branch cards
+ GENA SENDA -1.0 1.0 { Permanently closed switch at sending end
+ GENB SENDB -1.0 1.0 { Output 1 of 3 switch currents as demo } 1
+ GENC SENDC -1.0 1.0
+BLANK card ending switch cards
+14GENA 1.0 50. 0.0 -1.
+14GENB 1.0 50. -120. -1.
+14GENC 1.0 50. +120. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 2.454594157981E-01
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GENA 1.0 100. 0.0 -1.
+14GENB 1.0 100. -120. -1.
+14GENC 1.0 100. +120. -1.
+14GENA 1.0 50. 0.0
+14GENB 1.0 50. -120.
+14GENC 1.0 50. +120.
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+C Total network loss P-loss by summing injections = 2.573693449262E-04
+ SENDA SENDB SENDC RECA RECB RECC { Names of nodes for voltage output
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time SENDA SENDB SENDC RECA RECB RECC RECA RECB RECC
+C TERRA TERRA TERRA
+C *** Phasor I(0) = 2.0781091E-04 Switch "GENA " to "SENDA " closed in the steady-state.
+C *** Phasor I(0) = -6.9613077E-03 Switch "GENB " to "SENDB " closed in the steady-state.
+C *** Phasor I(0) = 6.6629631E-03 Switch "GENC " to "SENDC " closed in the steady-state.
+C 0 0.0 2.0 -1. -1. 2.598233 -3.43615 .2464431 .0129326 -.145918 .1293339
+C 1 .1E-3 1.997533 -.917186 -1.08035 2.60044 -3.42472 .2130051 .0099301 -.135491 .1225758
+C 2 .2E-3 1.990141 -.832151 -1.15799 2.597607 -3.40919 .1810295 .0069154 -.124907 .1156755
+C 3 .3E-3 1.977849 -.745147 -1.2327 2.589741 -3.38914 .1502293 .0038899 -.114174 .1086408
+BLANK card ending node voltage output requests
+C 200 .02 2.0 -1. -1. 2.59818 -3.43448 .2454012 .0129912 -.146066 .1294166
+C 220 .022 1.118034 .7736591 -1.89169 1.768526 -2.57608 -.038877 -.047694 .0801733 -.023028
+C 240 .024 -.5 1.582676 -1.08268 .0182262 -1.32164 .5410584 -.098873 .2822797 -.164686
+C 260 .026 -1.11803 .8736191 .2444149 -1.03326 -.346505 .9871438 -.117453 .3728534 -.234779
+C 280 .028 -.5 -.064602 .5646021 -1.00872 .8642096 .2517987 -.08566 .3122374 -.211838
+C 300 .03 0.0 -.34E-13 .343E-13 -.883622 2.5928 -1.14969 -.01258 .1306647 -.114579
+C 320 .032 -.5 .5646021 -.064602 -1.27837 3.751705 -1.65974 .0650869 -.093075 .0189995
+C 340 .034 -1.11803 .2444149 .8736191 -1.43002 2.889824 -.686481 .1091923 -.274776 .1473061
+C 360 .036 -.5 -1.08268 1.582676 -.329683 .1403614 .6215637 .1064364 -.355258 .2280163
+C 380 .038 1.118034 -1.89169 .7736591 1.57799 -2.55929 .8876828 .0685474 -.308851 .2250084
+C 400 .04 2.0 -1. -1. 2.598318 -3.43353 .2448074 .0130473 -.146197 .1294821
+ CALCOMP PLOT
+ 144 4. 0.0 40. RECA RECB RECC { Show node voltages
+ 194 4. 0.0 40. BRANCH
+ RECA RECB RECC { Show branch currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 9th of 19 subcases is like 7th, but with a frequency-dependent JMarti line
+C replacing the constant-parameter, distributed line. BPA's Dr. Tsu-huei Liu
+C and yours truly (WSM) force this through together on December 2, 1998. The
+C switch has nothing to do with JMarti, but was corrected at this time (before
+C the printed switch current before step 0 was wrong, not being superimposed).
+POWER FREQUENCY, 50., { Unnecessary. This merely avoids warning about 50 Hz.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000100 .040 50. 50. { Note L in ohms and C in micromhos at 50 Hz
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+-1SEND REC 1. 0.00 -2 1
+ 25 4.6006674814379022100E+02
+ -3.53674337977459482E+03 4.74463047336912496E+03 4.19877687667209159E+02
+ 1.20883875640704401E+03 1.37235832926770309E+03 1.76629378124055439E+03
+ 2.57098916005431466E+03 3.78828017768501514E+03 1.42803850501766374E+03
+ 2.65038870126655566E+04 5.80549633718908008E+04 2.89862514502709019E+04
+ 6.76266799893490243E+04 1.75748067781355756E+05 1.15921506756057055E+06
+ 5.68321189666407090E+06 9.19433740923774988E+06 1.70951407206966021E+07
+ 1.81624149219296910E+07 1.63578536348816883E+07 2.07902744942919687E+07
+ 1.63600113702911996E+07 3.05274574257793949E+07 2.82210286690547951E+07
+ 3.72990420164290220E+07
+ 2.77486902230361210E-01 2.68023805044265262E-01 4.15219939750085032E-01
+ 1.00965215217368676E+00 2.08586147641298370E+00 4.31742025828644139E+00
+ 9.38105998645288964E+00 2.16289190303449140E+01 4.71679444226597938E+01
+ 5.00972850164923444E+02 2.19667801322956757E+03 2.86760537318643128E+03
+ 1.14040516604910099E+04 2.97247489619667322E+04 9.91819942418309948E+04
+ 4.96352587435292895E+05 1.62826284096999770E+06 3.10812825436382648E+06
+ 6.60681297691485007E+06 1.23076395640831069E+07 1.54718126469801944E+07
+ 1.14181900748053603E+07 2.33626050734163225E+07 2.05401226659539938E+07
+ 2.89354778735701405E+07
+ 14 3.8038812947515656600E-04
+ 1.91758353605922701E-02 2.66649324474153904E-01 2.54923849247581425E+00
+ 9.46636313120961682E+00 2.85381149799323453E+01 7.38766350382716724E+01
+ 2.49452844472431571E+03 7.01441951080157833E+03 6.88095829884308187E+04
+ -3.34847951818855899E+06 3.31843503484260664E+06 3.96467674493048249E+10
+ -7.93497908986478425E+10 3.97029750605793992E+10
+ 3.35859634392794338E+00 4.68146974610416323E+01 4.33602484888353672E+02
+ 1.24257407602821491E+03 1.74575005233975117E+03 1.47765127586259360E+03
+ 1.69531663286821313E+04 2.85574137491229049E+04 7.36636621071784758E+04
+ 5.22749591784824327E+05 5.23272341376608878E+05 1.82407055706939399E+05
+ 1.82589462762646523E+05 1.82772052225409076E+05
+ 0.58951119
+ 0.00000000
+ REC 68. 1.2E4 { Series L-C load on line } 1
+BLANK card ending branch cards
+ GEN SEND -1.0 1.0 { Permanent closed switch at sending end } 1
+BLANK card ending switch cards
+14GEN 1.0 50. { 50-Hz phasor solution } -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C SEND |REC *GEN *
+C REC |TERRA *SEND *
+C GEN |SEND *
+C TERRA |REC *
+C --------------+------------------------------
+C 1st phasor flow: SEND 1.0 1.0 .00104886622776 .00412295654806 .52443311388E-3 .52443311388E-3
+C 0.0 0.0 -.0039873111659 -75.2621647 .00199365558294 0.0021265
+C Total network loss P-loss by summing injections = 5.244331138815E-04
+BLANK card ending source cards
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GEN 1.0 100. { 100-Hz phasor solution } -1.
+14GEN 1.0 50. { 50-Hz but without phasor }
+C 2nd phasor flow: SEND 1.0 1.0 .28023824311E-3 .00167781755608 .14011912156E-3 .14011912156E-3
+C 0.0 0.0 -.001654248554 -80.3850824 .82712427702E-3 0.0006777
+C Total network loss P-loss by summing injections = 1.401191215566E-04
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN SEND REC GEN REC
+C SEND TERRA
+C *** Phasor I(0) = 1.3291045E-03 Switch "GEN " to "SEND " closed in the steady-state.
+C 0 0.0 2.0 2.0 .103985185 .001329104 .001331291
+C 1 .1E-3 1.99753329 1.99753329 .102188523 .001557337 .001566943
+C 2 .2E-3 1.99014143 1.99014143 .100246634 .001782631 .001799837
+C 3 .3E-3 1.97784922 1.97784922 .097684893 .002004723 .002029515
+C 4 .4E-3 1.96069786 1.96069786 .09455166 .002223115 .002255424
+C 5 .5E-3 1.93874486 1.93874486 .090914028 .002437299 .002477041
+C 10 .1E-2 1.76007351 1.76007351 .064262337 .003427592 .003502327
+C 15 .0015 1.47879178 1.47879178 .027694976 .00424585 .004348298
+C 20 .002 1.11803399 1.11803399 -.01526506 .004848781 .004971008
+C 40 .004 -.5 -.5 -.15428049 .004854478 .004951474
+ GEN SEND REC { Names of nodes for voltage output
+BLANK card ending node voltage output requests
+C 360 .036 -.5 -.5 -.15242702 -.00466918 -.00477064
+C 380 .038 1.11803399 1.11803399 .017604346 -.00297868 -.00310013
+C 400 .04 2.0 2.0 .104051169 .001333593 .001335541
+C Variable max: 2.0 2.0 .231329745 .005331241 .005460826
+C Times of max: 0.0 0.0 .0297 .023 .023
+C Variable min: -1.1249966 -1.1249966 -.1823352 -.00466918 -.00477457
+C Times of min: .0342 .0342 .015 .036 .0361
+ CALCOMP PLOT
+ 144 4. 0.0 40. SEND REC { Show node voltages
+ 194 4. 0.0 40. REC GEN SEND { Show branch currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 10th of 19 subcases is like 8th, but with a frequency-dependent JMarti line
+C replacing the constant-parameter, distributed line. Without difficulty,
+C this was demonstrated to be believable early in the morning of 4 Dec 1998.
+C The JMarti branch cards are copied from DCNEW-27 (in turn, from DCNEW-4).
+POWER FREQUENCY, 50., { Unnecessary. This merely avoids warning about 50 Hz.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .000100 .040 50. 50. { Note L in ohms and C in micromhos at 50 Hz
+C .000100 .0002 50. 50. { Note L in ohms and C in micromhos at 50 Hz
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+C PUNCHED CARD OUTPUT OF "JMARTI SETUP" WHICH BEGAN AT 14.32.51 09/14/82
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 100. 5000. 1 138. 1 3-2
+C 100. 60.00 1 138. 1 3
+C 100. .01 1 138. 1 9 10 3
+C
+-1SENDA RECA 1. -2 3 1
+ 18 0.47487144790587633736E+03
+ -0.117967342612603676E+01 -0.316671345021416945E+01 0.255662317832426673E+02
+ -0.601654631032706213E+02 -0.118825306534453652E+03 0.128169142098635430E+04
+ 0.589610442538186533E+04 0.292891488173549769E+05 0.115665757459954655E+06
+ 0.456394278488149546E+06 0.153681652821077613E+07 0.681848054466802243E+07
+ 0.155477562610202006E+08 0.231789897204889809E+08 0.143827766961221036E+08
+ 0.241524708800130989E+08 0.245049034784953832E+08 0.476808364145524129E+08
+ 0.321645453133055891E+00 0.897616891499021768E+00 0.165632367032913183E+01
+ 0.166669419493737986E+01 0.253073682990780913E+01 0.200014655383098283E+02
+ 0.124257951002701473E+03 0.657345842950598183E+03 0.278623017775457413E+04
+ 0.117145310573639467E+05 0.427410884649070877E+05 0.202553264108715757E+06
+ 0.968789502295299084E+06 0.296908522006270138E+07 0.737968316276072920E+07
+ 0.121009167337626640E+08 0.132891445947112725E+08 0.252097199908134253E+08
+ 14 0.86849922355034181931E-03
+ 0.580543547692016874E-01 0.269744993210885436E+00 0.358646519088149721E+00
+ 0.775351125410302933E+00 0.512138885239557462E+01 0.838265420474258915E+01
+ 0.700229782114550385E+02 0.393084113996385128E+03 0.138208543918962840E+04
+ 0.706160326497018531E+03 0.527246586822120662E+04 0.528343251309079615E+05
+ 0.178307801042203880E+08 -0.178914532139174500E+08
+ 0.228360173022402533E+02 0.102750699821169636E+03 0.139222638455845377E+03
+ 0.269608322018776320E+03 0.389220463867018722E+03 0.427793721751318500E+03
+ 0.132148883486994549E+04 0.277178340638843952E+04 0.449341296469570784E+04
+ 0.596603161966094024E+04 0.114714152641659587E+05 0.268314807408425590E+05
+ 0.204027813729699328E+05 0.204231841543429041E+05
+-2SENDB RECB 1. -2 3 1
+ 13 0.28580875773089406522E+03
+ 0.381761604345214016E+04 -0.269529222495194318E+04 0.445018224900628539E+03
+ 0.214658130219351907E+03 0.897325461203551775E+02 0.130480129629523390E+03
+ 0.683037485206990933E+02 0.746626715384045969E+02 0.133938729387751110E+04
+ 0.249954495902361043E+04 0.187764116219525090E+05 0.391031620802855759E+06
+ 0.562668431190421223E+07
+ 0.358668999787749571E+01 0.376679186833120605E+01 0.706439034439901437E+01
+ 0.109721634064781350E+02 0.140506334140286961E+02 0.234292596911152251E+02
+ 0.407686998675834982E+02 0.797598814775078289E+02 0.129106739969348078E+04
+ 0.242138030939135859E+04 0.182362646041542116E+05 0.379814243183306855E+06
+ 0.548808385606378759E+07
+ 13 0.74123751236187229426E-03
+ 0.192189595814863363E+02 0.210970481418782463E+01 0.383406546226866283E+02
+ 0.307999912886148377E+02 0.634013410317139090E+03 -0.253243195247046863E+03
+ 0.210540381301789816E+05 0.755533947306502050E+05 0.229576557459444489E+07
+ 0.607777584135737231E+13 -0.156620677810598129E+13 0.153143851607186420E+13
+ -0.604300997216751013E+13
+ 0.325736126030671755E+04 0.366694913707514260E+03 0.675727697588602189E+04
+ 0.516024976370228876E+04 0.249456113770459378E+05 0.115067772934717399E+06
+ 0.105205466546493019E+06 0.240930799961836921E+06 0.633276538663731131E+06
+ 0.975820481990592802E+06 0.976796302472583498E+06 0.974176721795814519E+06
+ 0.975150898517610403E+06
+-3SENDC RECC 1. -2 3 1
+ 13 0.27248404992352924125E+03
+ 0.928429573805075023E+03 0.205756155237142632E+03 0.538106630554037608E+03
+ 0.105199818376817531E+03 0.821382476778671116E+02 0.133356875032521778E+03
+ 0.654774478488469374E+02 0.612546121562179922E+02 0.905544916173387175E+02
+ 0.973244316091135204E+03 0.267481871266201051E+04 0.138566411938941123E+05
+ 0.646075558955914967E+06
+ 0.297277477955690506E+01 0.413177069940672514E+01 0.739410817322770197E+01
+ 0.103072536754267949E+02 0.135874091964585515E+02 0.234792992956042887E+02
+ 0.384075708508238121E+02 0.692539345057236435E+02 0.997101922255402791E+02
+ 0.941460937860312015E+03 0.259295974388396348E+04 0.134538093446956691E+05
+ 0.628668738677182439E+06
+ 20 0.74871165651714274120E-03
+ 0.249456855794677017E-01 0.516637614002139312E+01 0.435227595525510835E+01
+ 0.696293545843379624E+01 0.113102519337405665E+02 0.107077756312168120E+02
+ 0.136526319661978881E+02 0.103057494642840792E+03 0.647491597081196815E+03
+ 0.221213037293261823E+04 0.164010494681972204E+05 0.517776934139508076E+05
+ 0.393233870054795443E+06 -0.101893253559274247E+05 -0.173413454816459129E+06
+ 0.524218185885897590E+06 0.711044562955687729E+12 -0.559640645251973480E+12
+ 0.582892127161358521E+12 -0.734296849907947113E+12
+ 0.887741958857318814E+01 0.183177145564733675E+04 0.151655674045953921E+04
+ 0.245910936284398730E+04 0.383273362703089043E+04 0.399285585783856465E+04
+ 0.496339281485561617E+04 0.253464455063045348E+05 0.272156609769823021E+05
+ 0.475215596432249440E+05 0.149791320991727040E+06 0.333884409922466803E+06
+ 0.541583000670874084E+06 0.670984155731562481E+06 0.569769858667429973E+06
+ 0.132622344670840449E+07 0.440534234233555838E+07 0.440974768467789434E+07
+ 0.436787151891064062E+07 0.437223939042955148E+07
+ 0.57154434 0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ 0.58879039 0.00000000 0.80696823
+ 0.00000000 0.00000000 0.00000000
+ 0.57154434 -0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ RECA 68. 1.2E4 { Series L-C load on line }
+ RECB 68. 1.3E4 { Series L-C: note imbalance }
+ RECC 68. 1.4E4 { Series L-C: note imbalance }
+BLANK card ending branch cards
+ GENA SENDA -1.0 1.0 { Permanently closed switch at sending end
+ GENB SENDB -1.0 1.0 { Output 1 of 3 switch currents as demo } 1
+ GENC SENDC -1.0 1.0
+BLANK card ending switch cards
+14GENA 1.0 50. 0.0 -1.
+14GENB 1.0 50. -120. -1.
+14GENC 1.0 50. +120. -1.
+BLANK card ending source cards
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GENA 1.0 100. 0.0 -1.
+14GENB 1.0 100. -120. -1.
+14GENC 1.0 100. +120. -1.
+14GENA 1.0 50. 0.0
+14GENB 1.0 50. -120.
+14GENC 1.0 50. +120.
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+ SENDA SENDB SENDC RECA RECB RECC { Names of nodes for voltage output
+BLANK card ending node voltage output requests
+ CALCOMP PLOT
+ 144 4. 0.0 40. RECA RECB RECC { Show node voltages
+ 194 4. 0.0 40. BRANCH
+ SENDA RECA SENDB RECB SENDC RECC { Show branch currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 11th of 19 subcases is like 9th, only with the single-phase JMarti line
+C replaced by a Semlyen line. BPA's Dr. Tsu-huei Liu and WSM force this
+C through together on December 8, 1998. The same line data was used to
+C produce the Semlyen branch cards as was used to produce the Marti branch
+C cards, according to Dr. Liu.
+POWER FREQUENCY, 50., { Unnecessary. This merely avoids warning about 50 Hz.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .000100 .040 50. 50. { Note L in ohms and C in micromhos at 50 Hz
+ 1 1 1 1 1 -1
+ 5 5 20 20
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C SEMLYEN SETUP
+C $ERASE
+C TOLERANCES 10 5000. { Illustration only; value of FMED actually unchang
+C 200 150 10 230 1 7 7777 0 { Semlyen miscellaneous da
+C LINE CONSTANTS
+C METRIC
+C 1.3161 .1151 4 2.355 -6.5 22. 8.0
+C 0.5 4.189 4 0.914 4.5 27.3 15.7
+C BLANK card ending conductor cards within "LINE CONSTANTS" data
+C 1500. 5000. 108.7
+C 1500. 60.00 108.7 { Phasor solution frequen
+C 1500. 6.00 108.7 6 20 { log loopi
+C BLANK card ending frequency cards of "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" data
+C L= 67.5 miles, rho= 1500.0, ss freq= 60.00, NSS=0, KFIT=10, KPS=2, KYC=30
+-1SEND REC 2.16583E-03 3.86702E-04 1 1 2 2 1
+ 1.58360657E+01 9.71198911E+01-4.13400101E-05 2.87567721E-04 6.00000000E+01
+ 0.00000E+00 4.76151E+04 8.46981E-01 0.00000E+00 3.44533E+03 1.53019E-01
+ 0.00000E+00 5.15658E+04-3.35305E-04 0.00000E+00 1.93051E+02-6.36116E-04
+ 1.00000E+00 0.00000E+00
+ 1.00000E+00 0.00000E+00
+ REC 68. 1.2E4 { Series L-C load on line } 1
+BLANK card ending branch cards
+ GEN SEND -1.0 1.0 { Permanent closed switch at sending end } 1
+BLANK card ending switch cards
+14GEN 1.0 50. { 50-Hz phasor solution } -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.734151791008E-03
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SEND 3.46830358E-03 -1.43381118E-02 1.47516298E-02 -76.4017 1.73415179E-03 7.16905591E-03
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+C 14GEN 1.0 100. { 100-Hz phasor solution } -1.
+14GEN 1.0 100. { 50-Hz but without phasor } -1.
+14GEN 1.0 50.
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+C Total network loss P-loss by summing injections = 1.065011729272E-04
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SEND 2.13002346E-04 -3.64646410E-03 3.65267990E-03 -86.6570 1.06501173E-04 1.82323205E-03
+ GEN SEND REC { Names of nodes for voltage output
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN SEND REC GEN REC
+C SEND TERRA
+C *** Phasor I(0) = 3.6813059E-03 Switch "GEN " to "SEND " closed in the steady-state.
+C 0 0.0 2.0 2.0 .153929313 .003681306 .003725237
+C 1 .1E-3 1.99753329 1.99753329 .1522527 .00435802 .004425728
+C 2 .2E-3 1.99014143 1.99014143 .149645253 .005027418 .005119878
+C 3 .3E-3 1.97784922 1.97784922 .145951055 .00568938 .005806382
+C 4 .4E-3 1.96069786 1.96069786 .141287156 .00634313 .006483935
+C 5 .5E-3 1.93874486 1.93874486 .136275468 .006989792 .007151414
+BLANK card ending node voltage output requests
+C 10 .1E-2 1.76007351 1.76007351 .092891975 .010026854 .010291731
+C 15 .0015 1.47879178 1.47879178 .023317891 .012640295 .012991794
+C 20 .002 1.11803399 1.11803399 -.06174101 .014720636 .015118963
+C 40 .004 -.5 -.5 -.34443045 .016575341 .016838847
+C 60 .006 -1.118034 -1.118034 -.17058748 .010182945 .010031014
+C 80 .008 -.5 -.5 .362487911 .002326162 .002053321
+C 100 .01 0.0 0.0 .612908752 -.00296002 -.00293285
+C 120 .012 -.5 -.5 .248154876 -.00738972 -.00710881
+C 140 .014 -1.118034 -1.118034 -.30076592 -.01262818 -.01254386
+C 160 .016 -.5 -.5 -.40730556 -.01503915 -.01535767
+C 180 .018 1.11803399 1.11803399 -.06530854 -.00934344 -.00970902
+C 200 .02 2.0 2.0 .154986325 .00333684 .003383348
+C 220 .022 1.11803399 1.11803399 -.06853358 .01445717 .014861049
+C 240 .024 -.5 -.5 -.35906038 .016441167 .016706006
+C 260 .026 -1.118034 -1.118034 -.18786425 .010191471 .010041491
+C 280 .028 -.5 -.5 .346320129 .002467142 .002193761
+C 300 .03 0.0 0.0 .601636815 -.002726 -.00269921
+C 320 .032 -.5 -.5 .244116524 -.00711585 -.00683621
+C 340 .034 -1.118034 -1.118034 -.29695787 -.01237389 -.01229047
+C 360 .036 -.5 -.5 -.39659111 -.01485549 -.01517475
+C 380 .038 1.11803399 1.11803399 -.05015223 -.00926464 -.00963034
+C 400 .04 2.0 2.0 .171432693 .003300084 .003347
+C Variable maxima : 2.0 2.0 .616129386 .017112417 .017478995
+C Times of maxima : 0.0 0.0 .0098 .0033 .0033
+C Variable minima : -1.1249966 -1.1249966 -.43847067 -.01510408 -.01538971
+C Times of minima : .0342 .0342 .0153 .0157 .0158
+ CALCOMP PLOT
+ 144 4. 0.0 40. SEND REC { Show node voltages
+ 194 4. 0.0 40. REC GEN SEND { Show branch currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 12th of 19 subcases is like 10th, only with the three-phase JMarti line
+C replaced by a 3-phase Semlyen line. The Semlyen branch cards are copied
+C from DC-31. Note XOPT and COPT have been set to 60 Hz to match the
+C branch cards at the 1st of 2 frequencies. Unlike the high-order JMarti
+C model, 2nd-order Semlyen involves substantial error, & is more biased
+C toward a match at power frequency. So, the switch to 60 favors smoother
+C Semlyen operation at the dominant frequency. Of course, the second freq
+C of 120 Hz is not well fitted, but it does not dominate, so error is of
+C less importance. The resulting plots are reasonably smooth. If really
+C smooth plots are wanted, change the 2nd frequency to the 1st, so that
+C the superposition has the effect of doubling power-frequency excitation.
+C This is an independent, separate way to verify the superposition while
+C avoiding error that is associated with the constant-inductance phasor
+C representation of Semlyen modeling.
+POWER FREQUENCY, 60., { Ensure that 60. two cards below does not produce warning
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+C Steps/cycle Cycles --- Alternate to DELTAT and TMAX ensures full accuracy
+ 200 2 60. 60. { Note L in ohms and C in micromhos at 60 Hz
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+C L= 138.0MILES, RHO= 27.0, SS FREQ= 60.00, NSS=0, KFIT= 0, KPS=2, KYC=10
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 27. 5000. 1 138.
+C 27. 60.00 1 138.
+C 27. 6.00 1 138. 6 20
+C
+-1SENDA RECA 0.55456E-02 0.77998E-03 1 1 2 2 3 1
+ 0.14938602E+02 0.90516313E+02-0.16261865E-03 0.14500324E-02 0.60000000E+02
+ 0.00000E+00 0.15161E+05 0.75119E+00 0.00000E+00 0.17105E+04 0.24881E+00
+ 0.00000E+00 0.59584E+03-0.11954E-02 0.00000E+00 0.39933E+05-0.74162E-03
+-1SENDB RECB 0.74392E-02 0.74149E-03 2 2 2 2 3 1
+ 0.83801231E+00 0.38634735E+02-0.44536501E-04 0.20637999E-02 0.60000000E+02
+ 0.00000E+00 0.26608E+06 0.83767E+00 0.00000E+00 0.35627E+05 0.16233E+00
+ 0.00000E+00 0.13630E+03-0.49171E-03 0.00000E+00 0.32940E+05-0.75349E-04
+-1SENDC RECC 0.42823E-02 0.74017E-03 3 3 2 2 3 1
+ 0.26535168E+01 0.67894100E+02-0.45225808E-04 0.11682248E-02 0.60000000E+02
+ 0.00000E+00 0.61698E+06 0.90903E+00 0.00000E+00 0.15239E+05 0.90969E-01
+ 0.00000E+00 0.25667E+03-0.34465E-03 0.00000E+00 0.11831E+05-0.28233E-04
+ 0.10000E+01 0.00000E+00 0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.71114E+00 0.00000E+00-0.41983E-15 0.00000E+00 0.10000E+01 0.00000E+00
+ 0.10000E+01 0.00000E+00-0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00 0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+ 0.22471E+00 0.00000E+00-0.27373E-15 0.00000E+00 0.84054E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00-0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+ RECA 68. 1.2E4 { Series L-C load on line }
+ RECB 68. 1.3E4 { Series L-C: note imbalance }
+ RECC 68. 1.4E4 { Series L-C: note imbalance }
+BLANK card ending branch cards
+ GENA SENDA -1.0 1.0 { Permanently closed switch at sending end
+ GENB SENDB -1.0 1.0 { Output 1 of 3 switch currents as demo } 1
+ GENC SENDC -1.0 1.0
+BLANK card ending switch cards
+14GENA 1.0 60. 0.0 -1.
+14GENB 1.0 60. -120. -1.
+14GENC 1.0 60. +120. -1.
+C Total network loss P-loss by summing injections = 7.920824547881E-04
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA SENDA 2.13684848E-04 -1.46728245E-02 1.46743804E-02 -89.1656 1.06842424E-04 7.33641223E-03
+C GENB SENDB -1.32003123E-02 7.47886007E-03 1.51717367E-02 150.4655 6.16366730E-05 7.58561792E-03
+C GENC SENDC 1.11079349E-02 7.85331948E-03 1.36037070E-02 35.2603 6.23603358E-04 6.77320678E-03
+BLANK card ending source cards
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GENA 1.0 120. 0.0 -1.
+14GENB 1.0 120. -120. -1.
+14GENC 1.0 120. +120. -1.
+14GENA 1.0 60. 0.0
+14GENB 1.0 60. -120.
+14GENC 1.0 60. +120.
+C Total network loss P-loss by summing injections = 2.436936258789E-05
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GENA SENDA -9.06090319E-05 -2.82087453E-03 2.82232937E-03 -91.8398 -4.53045160E-05 1.41043726E-03
+C GENB SENDB -2.57770624E-03 1.49235343E-03 2.97853794E-03 149.9315 -1.78143046E-06 1.48926790E-03
+C GENC SENDC 2.32482625E-03 1.50725803E-03 2.77067570E-03 32.9566 7.14553090E-05 1.38349380E-03
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+ RECA RECB RECC { Names of nodes for voltage output
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 4 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time RECA RECB RECC GENB SENDA SENDB SENDC
+C SENDB RECA RECB RECC
+C *** Phasor I(0) = 1.2307582E-04 Switch "GENA " to "SENDA " closed in the steady-state.
+C *** Phasor I(0) = -1.5778019E-02 Switch "GENB " to "SENDB " closed in the steady-state.
+C *** Phasor I(0) = 1.3432761E-02 Switch "GENC " to "SENDC " closed in the steady-state.
+C 0 0.0 .1754598 -.149967 -.202628 -.015778 .128E-3 -.015779 .0134377
+C 1 .83333E-4 .19681 -.130782 -.20007 -.016119 .7992E-3 -.016119 .0131218
+C 2 .16667E-3 .1936652 -.115517 -.222603 -.016425 .0014416 -.016425 .0127552
+C 3 .25E-3 .1874392 -.096275 -.245921 -.016699 .0020782 -.016699 .0123656
+C 4 .33333E-3 .1801201 -.074648 -.267768 -.016946 .0027102 -.016946 .0119566
+C 5 .41667E-3 .1719231 -.051722 -.287869 -.017166 .0033372 -.017166 .0115298
+C 10 .83333E-3 .117421 .0693951 -.362436 -.017776 .0063154 -.017776 .0090996
+C 15 .00125 .0387023 .185327 -.393131 -.017831 .0090412 -.017831 .0064327
+C 20 .00166667 -.070868 .3086067 -.396284 -.017281 .0114347 -.017281 .0036444
+C 40 .00333333 -.388621 .3051482 .0228398 -.009941 .0156904 -.009941 -.006866
+C 60 .005 -.253038 -.204985 .4417365 -.778E-4 .0122998 -.778E-4 -.01189
+C 80 .00666667 .3044138 -.552418 .274188 .0068829 .0057587 .0068829 -.011409
+C 100 .00833333 .6360443 -.274231 -.265214 .0106411 -.3E-3 .0106411 -.008773
+BLANK card ending node voltage output requests
+C 120 .01 .3181122 .3033606 -.463545 .0128573 -.006125 .0128573 -.005087
+C 140 .01166667 -.263527 .4887753 -.075016 .0123479 -.012279 .0123479 .0012662
+C 160 .01333333 -.410804 .1013287 .3706173 .0059884 -.015486 .0059884 .0098943
+C 180 .015 -.059755 -.30237 .2804666 -.005615 -.011145 -.005615 .0157608
+C 200 .01666667 .1817737 -.168327 -.19918 -.015787 .1853E-3 -.015787 .0134703
+C 220 .01833333 -.060762 .2780688 -.379241 -.017345 .0114781 -.017345 .0036718
+C 240 .02 -.398657 .32646 .0125865 -.009966 .0157061 -.009966 -.006836
+C 260 .02166667 -.250486 -.182702 .436643 -.129E-5 .0122619 -.129E-5 -.011919
+C 280 .02333333 .3159701 -.576173 .2854261 .0069158 .0057519 .0069158 -.011419
+C 300 .025 .6347384 -.288042 -.260816 .0105952 -.293E-3 .0105952 -.008748
+C 320 .02666667 .31108 .3297626 -.471975 .0128834 -.006175 .0128834 -.005106
+C 340 .02833333 -.257672 .4991878 -.073957 .0124327 -.012327 .0124327 .0012257
+C 360 .03 -.405636 .0768886 .3794062 .0059618 -.015473 .0059618 .0098998
+C 380 .03166667 -.0677 -.305613 .2785391 -.005706 -.011136 -.005706 .0157771
+C 400 .03333333 .1769868 -.142296 -.206482 -.015773 .1537E-3 -.015773 .0134395
+C variable max: .6370846 .5329181 .467254 .0132316 .0157061 .0132316 .016083
+C Times of max: .00825 .0111667 .0054167 .0105833 .02 .0105833 .0320833
+C Variable min: -.431775 -.577185 -.481248 -.017965 -.015486 -.017965 -.012246
+C Times of min: .0295 .0234167 .0264167 .01775 .0133333 .01775 .0056667
+ CALCOMP PLOT
+ 142 .2 0.0 2.0 RECA RECB RECC { Show node voltages
+ 192 .2 0.0 2.0 BRANCH
+ SENDA RECA SENDB RECB SENDC RECC { Show branch currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 13th of 19 subcases is a generalization of the 5th. Superposition of phasor
+C solutions is illustrated for simple series R-L-C elements. But here, we
+C add a 3rd harmonic. Use 1, 2, and 3 Hz. The resulting solution has period
+C 1 Hz, of course, so simulating and plotting to 2 sec shows 2 cycles. The
+C periodicity is seen by comparing step 0 with 100 with 200 (very close).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .01 2.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ GEN TRAN 1.0 10. 3
+ TRAN 0.20E6 1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.0 1.0 -1.
+C TRAN .37942714659548 .64183619997635 .65053122009197 .80655515626147 -.752165257E-17 -.752165257E-17
+C -.5176762965662 -53.7607135 .47680221452676 36.2392865 -.2588381482831 -0.2588381
+C Total network loss P-loss by summing injections = 3.252656100460E-01
+BLANK card terminating source cards for 1st phasor solution.
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GEN -1.0 2.0 { 2nd harmonic source } -1.
+C TRAN -.1008414235014 .38391636622821 -.931007055129 .96488706858836 -.545150405E-17 -.545150405E-17
+C .37043593719304 105.2282576 -.2534421401997 -164.7717424 -.1852179685965 -0.1852180
+C Total network loss P-loss by summing injections = 4.655035275645E-01
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GEN -1.0 3.0 { 2nd harmonic source } -1.
+14GEN 1.0 1.0 { Source of 1st solution represented in dT-loop
+14GEN -1.0 2.0 { Source of 2nd solution represented in dT-loop
+C TRAN -.020242653071 .26448015717188 -.9941420093334 .99706670254975 -.575982404E-19 -.575982404E-19
+C .26370435820121 94.3895692 -.0763130042124 -175.6104308 -.1318521791006 -0.1318522
+C Total network loss P-loss by summing injections = 4.970710046667E-01
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+ GEN TRAN
+C First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN GEN TRAN GEN TRAN
+C TRAN TRAN TERRA
+C 0 0.0 -1.25834307 -1. .25834307 -1.27461784 -1.27461784
+C 1 .01 -1.17197835 -.976375224 .19560313 -1.23497976 -1.23497976
+C 2 .02 -1.04223034 -.906244946 .135985399 -1.14972948 -1.14972948
+C 3 .03 -.87351371 -.791817161 .081696549 -1.02182451 -1.02182451
+C 4 .04 -.671453154 -.636692146 .0347610081 -.855597126 -.855597126
+C 5 .05 -.442702206 -.44574573 -.003043524 -.656584162 -.656584162
+C 10 0.1 .8252797519 .8090169944 -.016262758 .5778901701 .5778901701
+C 15 .15 1.589742247 1.847858763 .2581165163 1.494230406 1.494230406
+C 20 0.2 1.283365647 1.927050983 .6436853361 1.410360926 1.410360926
+C 40 0.4 -1.48909279 -1.42705098 .0620418032 -1.57083779 -1.57083779
+C 60 0.6 -.676894279 -1.42705098 -.750156704 -.672056125 -.672056125
+C 80 0.8 2.141878198 1.927050983 -.214827215 2.10784098 2.10784098
+C 100 1.0 -1.2589336 -1. .2589336049 -1.27496681 -1.27496681
+BLANK card ending program output-variable requests.
+C 120 1.2 1.28315489 1.927050983 .6438960933 1.410138424 1.410138424
+C 140 1.4 -1.4891661 -1.42705098 .0621151159 -1.57091519 -1.57091519
+C 160 1.6 -.676919781 -1.42705098 -.750131202 -.672083048 -.672083048
+C 180 1.8 2.141869327 1.927050983 -.214818344 2.107831615 2.107831615
+C 200 2.0 -1.25893669 -1. .2589366907 -1.27497007 -1.27497007
+C Variable max: 2.141878198 2.031786442 .8934909897 2.120254744 2.120254744
+C Times of max: 0.8 1.82 1.26 .81 .81
+C Variable min: -1.7217357 -1.43964823 -.935581739 -1.70523806 -1.70523806
+C Times of min: 1.36 1.61 .68 1.37 1.37
+ CALCOMP PLOT
+ 143 .2 0.0 2.0 GEN TRAN { Screen plot is perfectly smooth & periodic
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 14th of 19 subcases is a combination of the preceding. Use three single-
+C phase lines: 1) Constant-parameter from 7th subcase; 2) JMARTI from 9th
+C subcase; and 3) Semlyen from the 11th. Connect all 3 in series to verify
+C that they all can coexist. Also, use 3 harmonics: 50, 75, and 100 Hz. The
+C result is seen to be perfectly smooth. Terminal nodes SEND and REC are
+C driven by voltage sources, so voltage here indicates nothing. But interior
+C nodes SEM and REC provide a good measure of smoothness. The period is
+C equal to 40 msec, note, because 75 Hz has a period of 13.3333 msec. Two
+C cycles at 50 Hz, 3 cycles at 75 Hz, and 4 cycles at 100 Hz --- all are
+C equal to 40 msec. So, step 400 agrees closely with step 0. Consider the
+C two node voltages and 3 line currents:
+C Step Time MARTI SEM GEN MARTI CAP
+C SEND CAP SEM
+C 0 0.0 2.746223 .7338817 -.004095 -.004261 -.006559
+C 400 .04 2.745004 .7255618 -.004087 -.004257 -.006555
+POWER FREQUENCY, 50., { Unnecessary. This merely avoids warning about 50 Hz.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .000100 .040 50. 50. { Note L in ohms and C in micromhos at 50 Hz
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+-1SEND MARTI 0.3 0.4 12.6 80. { 1-phase distributed line
+ MARTI 2.0 7.E2 { Shunt compensation at end of 1st line
+-1MARTI CAP 1. 0.00 -2 1 1
+ 25 4.6006674814379022100E+02
+ -3.53674337977459482E+03 4.74463047336912496E+03 4.19877687667209159E+02
+ 1.20883875640704401E+03 1.37235832926770309E+03 1.76629378124055439E+03
+ 2.57098916005431466E+03 3.78828017768501514E+03 1.42803850501766374E+03
+ 2.65038870126655566E+04 5.80549633718908008E+04 2.89862514502709019E+04
+ 6.76266799893490243E+04 1.75748067781355756E+05 1.15921506756057055E+06
+ 5.68321189666407090E+06 9.19433740923774988E+06 1.70951407206966021E+07
+ 1.81624149219296910E+07 1.63578536348816883E+07 2.07902744942919687E+07
+ 1.63600113702911996E+07 3.05274574257793949E+07 2.82210286690547951E+07
+ 3.72990420164290220E+07
+ 2.77486902230361210E-01 2.68023805044265262E-01 4.15219939750085032E-01
+ 1.00965215217368676E+00 2.08586147641298370E+00 4.31742025828644139E+00
+ 9.38105998645288964E+00 2.16289190303449140E+01 4.71679444226597938E+01
+ 5.00972850164923444E+02 2.19667801322956757E+03 2.86760537318643128E+03
+ 1.14040516604910099E+04 2.97247489619667322E+04 9.91819942418309948E+04
+ 4.96352587435292895E+05 1.62826284096999770E+06 3.10812825436382648E+06
+ 6.60681297691485007E+06 1.23076395640831069E+07 1.54718126469801944E+07
+ 1.14181900748053603E+07 2.33626050734163225E+07 2.05401226659539938E+07
+ 2.89354778735701405E+07
+ 14 3.8038812947515656600E-04
+ 1.91758353605922701E-02 2.66649324474153904E-01 2.54923849247581425E+00
+ 9.46636313120961682E+00 2.85381149799323453E+01 7.38766350382716724E+01
+ 2.49452844472431571E+03 7.01441951080157833E+03 6.88095829884308187E+04
+ -3.34847951818855899E+06 3.31843503484260664E+06 3.96467674493048249E+10
+ -7.93497908986478425E+10 3.97029750605793992E+10
+ 3.35859634392794338E+00 4.68146974610416323E+01 4.33602484888353672E+02
+ 1.24257407602821491E+03 1.74575005233975117E+03 1.47765127586259360E+03
+ 1.69531663286821313E+04 2.85574137491229049E+04 7.36636621071784758E+04
+ 5.22749591784824327E+05 5.23272341376608878E+05 1.82407055706939399E+05
+ 1.82589462762646523E+05 1.82772052225409076E+05
+ 0.58951119
+ 0.00000000
+ CAP 2.0 7.E2 { Shunt compensation at end of 2nd line
+ CAP SEM 3.5 2.4E4 { Series capacitor after Marti } 1
+-1SEM REC 2.16583E-03 3.86702E-04 1 1 2 2 1
+ 1.58360657E+01 9.71198911E+01-4.13400101E-05 2.87567721E-04 6.00000000E+01
+ 0.00000E+00 4.76151E+04 8.46981E-01 0.00000E+00 3.44533E+03 1.53019E-01
+ 0.00000E+00 5.15658E+04-3.35305E-04 0.00000E+00 1.93051E+02-6.36116E-04
+ 1.00000E+00 0.00000E+00
+ 1.00000E+00 0.00000E+00
+BLANK card ending branch cards
+ GEN SEND -1.0 1.0 { Permanently close switch at sending end } 1
+BLANK card ending switch cards
+14GEN 1.0 50. 0.0 { 50-Hz phasor } -1.
+14REC 1.0 50. 90. -1.
+C Total network loss P-loss by summing injections = 9.724220340709E-04
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SEND -1.63570226E-03 -3.98415669E-03 4.30685807E-03 -112.3207 -8.17851130E-04 1.99207835E-03
+BLANK card ending source cards for 1st phasor solution
+ SUPERIMPOSE MORE SOURCES: { Following are sources for 2nd phasor solution
+14GEN 1.0 75. 0.0 { 75-Hz phasor } -1.
+14REC 1.0 75. 90. -1.
+C Total network loss P-loss by summing injections = 4.417836206255E-04
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SEND -1.32752292E-03 -1.70816724E-03 2.16336599E-03 -127.8530 -6.63761459E-04 8.54083619E-04
+BLANK card ending source cards for 2nd phasor solution
+ SUPERIMPOSE MORE SOURCES: { Following are sources for 3rd phasor solution
+14GEN 1.0 100. 0.0 { 100-Hz phasor } -1.
+14REC 1.0 100. 90. -1.
+$DISABLE { Begin block of data cards to be ignored
+C Note about preceding, third, excitation set. Because there is no source
+C having T-start zero or positive, ATP logic that began 15 December 1998
+C will internally copy all sources of all preceding excitation sets, changing
+C T-start to zero in order that these sources become effective on the first
+C time step. In effect, the following sources are added internally:
+14GEN 1.0 50. 0.0 { 50-Hz phasor } 0.0
+14REC 1.0 50. 90. 0.0
+14GEN 1.0 75. 0.0 { 75-Hz phasor } 0.0
+14REC 1.0 75. 90. 0.0
+C But note carefully that this helpful feature relies upon lack of any source
+C other than phasor excitation. If any source of the final data set has zero
+C or positive T-start, there will be no such internal addition. If the user
+C specifies one, he must specify all sources having T-start non-negative.
+$ENABLE { End block of data cards to be ignored
+C Total network loss P-loss by summing injections = 2.720584624880E-04
+C Node-K Node-M I-real I-imag I-magn Degrees Power Reactive
+C GEN SEND -1.13140476E-03 -3.94389795E-04 1.19817363E-03 -160.7823 -5.65702382E-04 1.97194897E-04
+BLANK card terminating source cards for 3rd (and final) phasor solution.
+ SEND MARTI SEM REC { Names of nodes for voltage output
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time SEND MARTI SEM REC GEN MARTI CAP
+C SEND CAP SEM
+C *** Phasor I(0) = -4.0946299E-03 Switch "GEN " to "SEND " closed in the steady-state.
+C 0 0.0 3.0 2.746223 .7338817 .184E-15 -.004095 -.004261 -.006559
+C 1 .1E-3 2.996423 2.7249 .6273332 -.141308 -.003855 -.003925 -.00623
+C 2 .2E-3 2.985703 2.697847 .5194808 -.282232 -.003612 -.003582 -.005889
+C 3 .3E-3 2.967873 2.664322 .410436 -.422391 -.00336 -.003232 -.005536
+C 4 .4E-3 2.942985 2.624337 .3004596 -.561404 -.003101 -.002874 -.005171
+C 5 .5E-3 2.911115 2.57779 .1894443 -.698897 -.002834 -.002509 -.004796
+BLANK card ending node voltage output requests
+C 400 .04 3.0 2.745004 .7255618 -.17E-12 -.004087 -.004257 -.006555
+C Variable max: 3.0 2.766848 2.205032 2.750818 .0072415 .007581 .0081707
+C Times of max: 0.0 .0397 .0375 .0369 .0051 .0044 .0049
+C Variable min:-2.07381 -2.03357 -2.03363 -2.75082 -.006569 -.008275 -.009585
+C Times of min: .0339 .0059 .0037 .0031 .0379 .0378 .0382
+ CALCOMP PLOT
+ 144 4. 0.0 40. -3.0 3.0SEND MARTI SEM REC { Show node voltages
+ 194 4. 0.0 40. BRANCH
+ GEN SEND MARTI CAP CAP SEM { Show branch currents
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 15th of 19 subcases has the same solution as the 5th, which has one series
+C R-L-C circuit. Here, the L remains linear, but is represented in the
+C form of a Type-93 nonlinear reactor. Since the solution is identical to
+C that already shown, only 3 time steps will be taken.
+C 18 Nov 98, expand by the addition of Type-98 pseudo-nonlinear element.
+C Add a second, independent circuit in parallel with the first. Node
+C name TRAN93 will be used for the first and TRAN98 for the second.
+C The solutions are identical, of course.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .01 .03
+ 1 1 1 1
+C GEN TRAN 10. 3
+C The preceding 10-mHenry inductor can be replaced by the following equivalent
+C nonlinear element. The phasor solution will be identical. Inductance 10 mH
+C means that when the current is one amp, the flux is .01 volt-sec, so:
+93GEN TRAN93 1.0 .01 3
+ 0.0 0.0 { 1st point being origin is request to reflect
+ 1.0 .01 { i = 1 amp corresponds to flux = .01 volt-sec
+ 2.0 .02 { 2nd segment is, in fact, an extension of 1st
+ 9999
+ TRAN93 1.0 0.20E6 1
+93GEN TRAN98 1.0 .01 3
+ 1.0 .01 { i = 1 amp corresponds to flux = .01 volt-sec
+ 2.0 .02 { 2nd segment is, in fact, an extension of 1st
+ 9999
+ TRAN98 1.0 0.20E6 1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.0 1.0 -1.
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C GEN |TRAN93*TRAN98*
+C TRAN93 |TERRA *GEN *
+C TRAN98 |TERRA *GEN *
+C TERRA |TRAN93*TRAN98*
+C --------------+------------------------------
+BLANK card terminating source cards for 1st phasor solution.
+C TRAN93 1.0299583666875 1.0307690952352 .65053122009197 .80655515626147 .32526561004599 .32526561004599
+C -.0408740820394 -2.2726007 .47680221452676 36.2392865 -.2588381482831 -0.2588381
+C Total network loss P-loss by summing injections = 6.505312200920E-01
+C ---- Initial flux of coil "GEN " to "TRAN93" = 6.50531220E-03
+C ---- Initial flux of coil "GEN " to "TRAN98" = 6.50531220E-03
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GEN -1.0 2.0 { 2nd harmonic source } -1.
+14GEN 1.0 1.0 { Source of 1st solution represented in dT-loop
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+C TRAN93 -1.03184847863 1.0384598361934 -.931007055129 .96488706858836 .46550352756452 .46550352756452
+C .11699379699335 173.5312736 -.2534421401997 -164.7717424 -.1852179685965 -0.1852180
+C Total network loss P-loss by summing injections = 9.310070551290E-01
+C ---- Initial flux of coil "GEN " to "TRAN93" = -9.31007055E-03
+C ---- Initial flux of coil "GEN " to "TRAN98" = -9.31007055E-03
+ GEN TRAN93TRAN98 { Request for voltage output of these nodes
+C First 5 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 4 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN GEN GEN TRAN93 TRAN98 GEN GEN TRAN93 TRAN98
+C TRAN93 TRAN98 TRAN93 TRAN98 TERRA TERRA
+C 0 0.0 .0018901 .0018901 0.0 -.00189 -.00189 -.280476 -.280476 -.280476 -.280476
+C 1 .01 .0137899 .0137899 .005912 -.007878 -.007878 -.272636 -.272636 -.272636 -.272636
+C 2 .02 .0251067 .0251067 .0235315 -.001575 -.001575 -.253188 -.253188 -.253188 -.253188
+C 3 .03 .0356219 .0356219 .0525108 .0168889 .0168889 -.222823 -.222823 -.222823 -.222823
+BLANK card ending program output-variable requests.
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 16th of 19 subcases illustrates KILL = 222 as mentioned in the January,
+C 1999, newsletter. The R-L-C connection of the preceding subcase is
+C modified to connect to a second generator rather than ground. The 2nd
+C generator, GEN2, has a different frequency than the 1st. Prior to
+C correction on November 17th, execution continued in spite of the mixing
+C of frequencies through a nonlinear element. Now, the error is trapped.
+C Note no use of superposition, which is an extraneous complication. A
+C single frequency is all that is required to demonstrate the phenomenon.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .01 .03
+ 1 1 1 1
+93GEN TRAN 1.0 .01 3
+ 0.0 0.0 { 1st point being origin is request to reflect
+ 1.0 .01 { i = 1 amp corresponds to flux = .01 volt-sec
+ 2.0 .02 { 2nd segment is, in fact, an extension of 1st
+ 9999
+ TRAN GEN2 1.0 0.20E6 1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 1.0 1.0 -1.
+14GEN2 1.0 2.0 -1.
+BLANK card terminating source cards for 1st phasor solution.
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+ GEN TRAN
+BLANK card ending program output-variable requests.
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 17th of 19 subcases illustrates IF-THEN-ELSE-ENDIF within HFS data that
+C is the same as 3rd subcase. There are 8 frequency steps, and for the
+C first five, the solution is identical to that of 3rd subcase. But for
+C steps 6 onward, the formula is changed (the ELSE alternative). This
+C data is being added by WSM on 3 December 2000.
+POWER FREQUENCY, 25., ! Needed so minimum frequency is recognized as fundamental
+HARMONIC FREQUENCY SCAN { Non-negative DELFFS in 25-32 means F in Hz (not log F)
+C Controls of following request card: MAXKNT IOPCVP { Ignore MAXKNT value
+POCKET CALCULATOR VARIES PARAMETERS 0 1 { since also HFS loop
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .0001 -1. 50. 50.
+ 1 1 1 0 1 2
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+IF( KNT .LT. 6.0 ) THEN { If frequency (pass number) is low, use one formula:
+C Note: the following formula is identical to that used in the 3rd subcase.
+C The present comment card illustrates that these are tolerated within
+C an IF-THEN-ELSE-ENDIF block.
+MHENRY = 1.2 - ( KNT - 1.0 ) * .05 { L = 1.2, 1.15, 1.1, 1.05, and 1.0
+ELSE { Alternatively (if frequency is higher, use another formula:
+C Note: the following formula is different from that used in the 3rd subcase.
+C As a result, the solution to steps 6, 7, and 8 differ slightly. We
+C use the ELSE alternative to illustrate saturation of the previously-
+C linear inductance. Slope of L vs. f changes by a factor of 5:
+MHENRY = 1.0 - ( KNT - 5.0 ) * .01 { L =.99, .98, .97
+ENDIF { Terminate 5-line block that provides two alternatives for MHENRY
+C The following variable is not actually used, but it is added to illustrate
+C that other variables can follow an IF-THEN-ELSE-ENDIF block. As for the
+C formula, it can be found in the 1st subcase. In fact, this addition makes
+C the solution comparable to that of the 1st subcase. They are identical
+C through step 5.
+FREQUENCY = 25. * KNT { This computes the frequency in Hz of the scan
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+ TRAN 1.0 1.E+5 3
+ GEN TRAN 1.0MHENRY
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. 25. 0.0 { Note comment and no negative T-start
+14GEN 70. 50. 0.0 { This is normal HFS source data. It
+14GEN 70. 75. 0.0 { is unusual, however, because of our
+14GEN 70. 100. 0.0 { match preceding subases. Unusual
+14GEN 70. 125. 0.0 { for HFS usage, the amplitude is not
+14GEN 70. 150. 0.0 { varied and all harmonics are present
+14GEN 70. 175. 0.0
+14GEN 70. 200. 0.0
+BLANK card ending source cards
+BLANK card ending F-dependent series R-L-C branches (none, for this subcase)
+ GEN TRAN
+BLANK card ending program output-variable requests.
+ CALCOMP PLOT { Use BOTH rather than DISK to see a bar chart of harmonics
+ 19680. 0.0200. TRAN { Units/inch of 5-7 are ingored since bar chart
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 18th of 19 subcases illustrates ELSEIF use within an IF-THEN-ELSE-ENDIF
+C block. It is related to the preceding, but for variety has replaced
+C the HFS control of looping by simpler pocket calculator control as was
+C seen in the 1st subcase. The first condition, giving 5 steps, has
+C been left unchanged. But then the remaining 3 steps would need to be
+C split among two formulas. Rather than 8 frequency steps, 9 steps will
+C be taken in order that each formula is used at least twice. From top to
+C bottom: a) below IF b) below ELSEIF c) below ELSE
+C KNT = 1, 2, 3, 4, 5 steps 6 and 7 steps 8 and 9.
+C This data is added by WSM on 5 December 2000.
+C Controls of following request card: MAXKNT IOPCVP { Loop 9 times with
+POCKET CALCULATOR VARIES PARAMETERS 9 1 { minimum printout
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .0001 -1. 50. 50.
+ 1 1 1 0 1 2
+$PARAMETER { This will be serviced by CIMAGE just as any other $-card would b
+IF( KNT .LT. 6.0 ) THEN { If frequency (pass number) is low, use one formula:
+C Note: the following formula is identical to that used in the 3rd subcase.
+C It is used for KNT < 6, so for values KNT = 1, 2, ... through 5:
+MHENRY = 1.2 - ( KNT - 1.0 ) * .05 { L = 1.2, 1.15, 1.1, 1.05, and 1.0
+C Having evaluated this or any other formula of the block, control
+C passes to the end of the block, of course. Control reaches the
+C following statement if and only if the previous condition ( KNT < 6 )
+C was not satisfied.
+ELSEIF( KNT .LT. 8.0 ) THEN { If frequency (pass number) satisfies KNT < 8 :
+C Control reaches this point only for 5 < KNT < 8, so for KNT = 6 and 7.
+C The slope has been reduced from .05 to .02 and the offset has been
+C reduced to ensure continuity of the piecewise-linear segments:
+MHENRY = 1.0 - ( KNT - 5.0 ) * .02 { Produces values L = .98 and .96
+C Having evaluated this formula, control passes to end of block (ENDIF)
+C Etc. The preceding ELSEIF could be repeated an arbitrary number of
+C times, providing different formulas for an arbitrary number of ranges
+C of KNT. If the condition of the first ELSEIF was not satisfied, the
+C second would be checked, etc. in order from top to bottom. If none is
+C satisfied when ELSE finally was reached, the formula below ELSE
+C would be used.
+ELSE { Alternatively (if none of preceding conditions were satisfied), use this:
+C Control reaches this point only if no preceding condition is satisfied.
+C I.e., for 7 < KNT. The slope and offset will be changed once again,
+C to provide a 3rd segment of the piecewise-linear curve:
+MHENRY = .96 - ( KNT - 7.0 ) * .01 { L =.95, .94
+ENDIF { Terminate 26-line block that provides three alternatives for MHENRY
+C Unlike preceding subcase, the following variable is required because HFS
+C is not being used. Instead, the pocket calculator must itself provide
+C the frequency for any source card (node GEN in this case).
+FREQUENCY = 25. * KNT { This computes the frequency in Hz of the scan
+BLANK card ends $PARAMETER definitions that are processed just b4 branch card
+ TRAN 1.0 1.E+5 3
+ GEN TRAN 1.0MHENRY
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN 70. FREQUENCY -1.
+BLANK card ending source cards
+ GEN TRAN
+C Step F [Hz] TRAN GEN TRAN TRAN
+C TERRA TERRA
+C 1 25. 71.874164 70. 71.874164 3.5892245
+C New parameter values follow: 1) 1.15 2) 50.
+C 2 50. 77.535296 70. 77.535296 7.7150503
+C New parameter values follow: 1) 1.1 2) 75.
+C 3 75. 87.376164 70. 87.376164 12.96142
+C New parameter values follow: 1) 1.05 2) 100.
+C 4 100. 101.32085 70. 101.32085 19.870653
+BLANK card ending program output-variable requests.
+C New parameter values follow: 1) 1.0 2) 125.
+C 5 125. 115.44696 70. 115.44696 28.
+C New parameter values follow: 1) .98 2) 150.
+C 6 150. 119.51423 70. 119.51423 34.342161
+C New parameter values follow: 1) .96 2) 175.
+C 7 175. 102.75012 70. 102.75012 33.943547
+C New parameter values follow: 1) .95 2) 200.
+C 8 200. 79.015248 70. 79.015248 29.345527
+C New parameter values follow: 1) .94 2) 225.
+C 9 225. 60.191978 70. 60.191978 24.700662
+ PRINTER PLOT
+ 19650. 0.0250. TRAN Plot limits: ( 0.000, 3.434 )
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 19th of 19 subcases is same as the 5th except that the voltage source used
+C previously becomes a current source. Also, as first illustrated by the 14th
+C subcase, the final excitation set will involve no preceding harmonics so it
+C will be the job of ATP to add these automatically. Prior to correction on
+C 13 March 2001, there was an enormous oscillation in dT loop as seen on plot.
+C That is, the automatic addition of all preceding harmonics (here, just one)
+C did not work properly for a current source. Orlando Hevia in Santa Fe,
+C Argentina, first made WSM aware of the problem by E-mail.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .01 2.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+ GEN TRAN 1.0 10. 3
+ TRAN 0.20E6 1
+BLANK card ending program branch cards.
+BLANK card terminating program switch cards (none, for this case)
+14GEN -1 1.0 1.0 -1.
+BLANK card terminating source cards for 1st phasor solution.
+ SUPERIMPOSE MORE SOURCES: { Request for superposition produced by more:
+14GEN -1 -1.0 2.0 { 2nd harmonic source } -1.
+BLANK card terminating source cards for 2nd (and final) phasor solution.
+ GEN TRAN
+BLANK card ending program output-variable requests.
+ CALCOMP PLOT
+ 143 .2 0.0 2.0 GEN TRAN { Screen plot is perfectly smooth & periodic
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn27.dat b/benchmarks/dcn27.dat
new file mode 100644
index 0000000..1cdbc3e
--- /dev/null
+++ b/benchmarks/dcn27.dat
@@ -0,0 +1,997 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-27
+C 1st of 10 subcases that verify correct use of manually-specified initial
+C conditions for problems involving various distributed line models. Prior
+C to beginning on 22 November 1998, there was no such illustration. Manual
+C specification of initial conditions can, however, be found in many test
+C cases (e.g., DC-34 that involves Prof. Hian Lauw's U.M.). But none used
+C a distributed line. Begin with 1-phase, constant-parameter distributed.
+PRINTED NUMBER WIDTH, 10, 2, { Request maximum precision (for 8 output columns)
+ .000050 .002
+ 1 1 1 1
+C Create two parallel, independent, identical circuits of line plus resistor.
+C The (SEND, REC) alternative will involve no phasor solution whereas the
+C alternative (GEN, END) will have a phasor solution. Answers agree:
+-1SEND REC .306 5.82 .012 100. { Half the length of original
+-1GEN END .306 5.82 .012 100. { Half the length of original
+C 19 July 2009, we add branch name "RESIST" for use with initial conditions.
+C 34567890123 Name RESIST --- Equivalent, alternative request is left-adjusted
+ REC Name:RESIST 100. { Name branch using right-adjusted " Name:" } 1
+ END 100. 1
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 100. 60. { Excitation of (SEND, REC) is transient only
+14GEN 100. 60. { Note phasor presence } -1.
+BLANK card ending source data
+C (SEND, REC) had no phasor solution, initialize it using values of (GEN, END):
+C Name K V-k real V-k imag ----- Node V initial condition is type 2
+ 2SEND 100. 0.0 60.
+ 2REC 19.956813332748-34.69967901024
+C Distributed: I-k real I-k imag I-m real I-m imag
+ 3SEND REC .20753030414706-.3196504046191-.1995681333275.34699679010239
+C 19 July 2009, convert the following linear branch current from the original
+C use of terminal node names (REC, TERRA) to the use of branch name RESIST.
+C Just today, such alternative use of branch names is being added to ATP. WSM
+C 3REC .19956813332748 { Unnecessary, since purely resistive branch
+ 3Name: RESIST.19956813332748 { Unnecessary, since purely resistive branch
+ SEND GEN REC END { List of nodes for node-voltage output
+C Travel time is less than 17 steps, so document the solution this far:
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time SEND GEN REC END REC END
+C TERRA TERRA
+C 0 0.0 100. 100. 19.95681 19.95681 .1995681 .1995681
+C 1 .5E-4 99.98224 99.98224 20.60655 20.60655 .2060655 .2060655
+C 2 .1E-3 99.92895 99.92895 21.2497 21.2497 .212497 .212497
+C 3 .15E-3 99.84016 99.84016 21.88529 21.88529 .2188529 .2188529
+C 4 .2E-3 99.71589 99.71589 22.51311 22.51311 .2251311 .2251311
+C 5 .25E-3 99.5562 99.5562 23.13293 23.13293 .2313293 .2313293
+C 6 .3E-3 99.36113 99.36113 23.74453 23.74453 .2374453 .2374453
+C 7 .35E-3 99.13076 99.13076 24.3477 24.3477 .243477 .243477
+C 8 .4E-3 98.86517 98.86517 24.94221 24.94221 .2494221 .2494221
+C 9 .45E-3 98.56446 98.56446 25.52786 25.52786 .2552786 .2552786
+C 10 .5E-3 98.22873 98.22873 26.10444 26.10444 .2610444 .2610444
+C 11 .55E-3 97.85809 97.85809 26.67175 26.67175 .2667175 .2667175
+C 12 .6E-3 97.45269 97.45269 27.22958 27.22958 .2722958 .2722958
+C 13 .65E-3 97.01266 97.01266 27.77774 27.77774 .2777774 .2777774
+C 14 .7E-3 96.53816 96.53816 28.31603 28.31603 .2831603 .2831603
+C 15 .75E-3 96.02937 96.02937 28.84425 28.84425 .2884425 .2884425
+C 16 .8E-3 95.48645 95.48645 29.36223 29.36223 .2936223 .2936223
+C 17 .85E-3 94.90961 94.90961 29.86972 29.86972 .2986972 .2986972
+BLANK card ending node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 10 subcases is like 1st, but more general. The line is 3-phase, and
+C excitation and connection are unbalanced in order that all line modes have
+C strong phasor history. The line is half the length originaly used in DC-38
+C and nonlinear elements at the far end have been replaced by linear, 200-ohm
+C resistors. Phase c of excitation is omitted, with the voltage source is
+C replaced by a 4th 200-ohm resistor to ground. All voltages and currents
+C are substantial.
+PRINTED NUMBER WIDTH, 11, 2, { Reduced precision
+POWER FREQUENCY, 60., { Definition here allows omision on initial condition card
+ .000050 .00100 { TMAX = 1 msec slightly exceeds the travel time of the line
+ 1 -1 1 1
+-1SENDA RECA .305515.8187.01210 100. 0 { 100-mile, constant-
+-2SENDB RECB .031991.5559.01937 100. 0 { parameter, 3-phase
+-3SENDC RECC { transmission line.
+ RECA 200.
+ RECB 200.
+ RECC 200.
+ SENDC 200. { Replace phase c source by this resistor
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 100. 60. 0.0
+14SENDB 100. 60. -120.
+BLANK card ending source data
+C The following initial-condition cards were constructed from branch flow
+C output with sources present for a phasor solution. Full precision of
+C the ATP output is being used, note. Purely resistive branches are not
+C supposed to require initialization, so these have been omitted.
+C 2SENDA 100. 0.0 60.
+C Note omission of frequency on right of preceding card. Since equal to
+C the power frequency, its appearance on the 1st node voltage initial
+C condition card is not required. The power frequency will be used.
+C Name K V-k real V-k imag ----- Node V initial condition is type 2
+ 2SENDA 100.0 0.0
+ 2RECA 77.881089324669-16.76951438169
+ 2SENDB -50.-86.60254037844
+ 2RECB -84.53015167415-56.11022779303
+ 2SENDC 8.9524884789137-4.001192729873
+ 2RECC -7.4834609042614.3043134435609
+C Distributed: I-k real I-k imag I-m real I-m imag
+ 3SENDA RECA .38833508724138-.020723270343 -.3894054466233.08384757190847
+ 3SENDB RECB -.3776059443784-.3319155592773.42265075837076.28055113896513
+ 3SENDC RECC -.0447624423946.02000596364937 .0374173045213-.0215215672178
+C Step Time RECC RECB RECA SENDC SENDA SENDB
+C 0 0.0 -7.483461 -84.53015 77.881089 8.9524885 100. -50.
+C 1 .5E-4 -7.563122 -83.45714 78.183167 9.0261691 99.982235 -48.35879
+C 2 .1E-3 -7.640246 -82.35489 78.457621 9.0967927 99.928947 -46.70041
+C 3 .15E-3 -7.714656 -81.22339 78.704198 9.1641842 99.840155 -45.02543
+C 4 .2E-3 -7.786324 -80.06303 78.922812 9.2283197 99.71589 -43.33445
+C 5 .25E-3 -7.855227 -78.87422 79.113386 9.2891764 99.556196 -41.62808
+C 6 .3E-3 -7.921338 -77.65739 79.27585 9.3467328 99.361131 -39.90692
+C 7 .35E-3 -7.984635 -76.41297 79.410149 9.4009683 99.130763 -38.17157
+C 8 .4E-3 -8.045095 -75.14139 79.516233 9.4518636 98.865174 -36.42267
+C 9 .45E-3 -8.102697 -73.84312 79.594066 9.4994008 98.56446 -34.66082
+C 10 .5E-3 -8.15742 -72.51862 79.643619 9.5435629 98.228725 -32.88666
+C 11 .55E-3 -8.209246 -71.16835 79.664875 9.5843341 97.85809 -31.10082
+C 12 .6E-3 -8.258233 -69.7927 79.657818 9.6216977 97.452687 -29.30393
+C 13 .65E-3 -8.304204 -68.39235 79.622466 9.6556448 97.01266 -27.49662
+C 14 .7E-3 -8.347225 -66.9677 79.558825 9.6861614 96.538164 -25.67954
+C 15 .75E-3 -8.387279 -65.51925 79.466917 9.7132365 96.029369 -23.85335
+C 16 .8E-3 -8.424354 -64.04753 79.346775 9.7368605 95.486454 -22.01867
+C 17 .85E-3 -8.458403 -62.55302 79.198474 9.7570132 94.909614 -20.17617
+C 18 .9E-3 -8.489362 -61.03619 79.022118 9.7736699 94.299054 -18.32651
+C 19 .95E-3 -8.517428 -59.49781 78.817564 9.786901 93.654989 -16.47033
+C 20 .1E-2 -8.542467 -57.93828 78.585006 9.7966549 92.977649 -14.6083
+C Note about preceding solution. This not only is smooth, it was verified
+C by adding the phasor solution and omitting initial conditions. Agreement
+C is exact.
+ 1 { Request node voltage output of all nodes
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 10 subcases is like 1st, but without the built-in phasor solution,
+C and with the constant-parameter line replaced by JMarti frequency-dependent
+C line modeling. Line length has changed, unfortunately. Rather than build
+C data to derive Marti branch cards, we borrowed those already punched by
+C the 2nd subcase of DCNEW-5. Line length is 108.7 km (7 time steps)
+C Reduce 2 in col. 31 to 0 so all Marti data card input is seen.
+PRINTED NUMBER WIDTH, 10, 2,
+ .000050 .001
+ 1 1 1 1
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C ***** TRANSPOSED JMARTI line segment ******
+C JMARTI SETUP
+C BRANCH JDA LMA JDB LMB JDC LMC
+C LINE CONSTANTS
+C METRIC
+C 1.3161 .1151 4 2.355 -6.5 22. 8.0
+C 0.5 4.189 4 0.914 4.5 27.3 15.7
+C BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data
+C 1500. 60. 1 108.7
+C 1500. .01 1 108.7 9 10
+C BLANK card ending frequency cards of inbedded "LINE CONSTANTS" data
+C BLANK card ending "LINE CONSTANTS" cases (back to "JMARTI SETUP")
+C 1 { Note use of default conductance G to ground }
+C .30 30 0 1 3 0 0
+-1SEND REC 0. 0.00 -2 1
+ 25 4.6006674814379022100E+02
+ -3.53674337977459482E+03 4.74463047336912496E+03 4.19877687667209159E+02
+ 1.20883875640704401E+03 1.37235832926770309E+03 1.76629378124055439E+03
+ 2.57098916005431466E+03 3.78828017768501514E+03 1.42803850501766374E+03
+ 2.65038870126655566E+04 5.80549633718908008E+04 2.89862514502709019E+04
+ 6.76266799893490243E+04 1.75748067781355756E+05 1.15921506756057055E+06
+ 5.68321189666407090E+06 9.19433740923774988E+06 1.70951407206966021E+07
+ 1.81624149219296910E+07 1.63578536348816883E+07 2.07902744942919687E+07
+ 1.63600113702911996E+07 3.05274574257793949E+07 2.82210286690547951E+07
+ 3.72990420164290220E+07
+ 2.77486902230361210E-01 2.68023805044265262E-01 4.15219939750085032E-01
+ 1.00965215217368676E+00 2.08586147641298370E+00 4.31742025828644139E+00
+ 9.38105998645288964E+00 2.16289190303449140E+01 4.71679444226597938E+01
+ 5.00972850164923444E+02 2.19667801322956757E+03 2.86760537318643128E+03
+ 1.14040516604910099E+04 2.97247489619667322E+04 9.91819942418309948E+04
+ 4.96352587435292895E+05 1.62826284096999770E+06 3.10812825436382648E+06
+ 6.60681297691485007E+06 1.23076395640831069E+07 1.54718126469801944E+07
+ 1.14181900748053603E+07 2.33626050734163225E+07 2.05401226659539938E+07
+ 2.89354778735701405E+07
+ 14 3.8038812947515656600E-04
+ 1.91758353605922701E-02 2.66649324474153904E-01 2.54923849247581425E+00
+ 9.46636313120961682E+00 2.85381149799323453E+01 7.38766350382716724E+01
+ 2.49452844472431571E+03 7.01441951080157833E+03 6.88095829884308187E+04
+ -3.34847951818855899E+06 3.31843503484260664E+06 3.96467674493048249E+10
+ -7.93497908986478425E+10 3.97029750605793992E+10
+ 3.35859634392794338E+00 4.68146974610416323E+01 4.33602484888353672E+02
+ 1.24257407602821491E+03 1.74575005233975117E+03 1.47765127586259360E+03
+ 1.69531663286821313E+04 2.85574137491229049E+04 7.36636621071784758E+04
+ 5.22749591784824327E+05 5.23272341376608878E+05 1.82407055706939399E+05
+ 1.82589462762646523E+05 1.82772052225409076E+05
+ 0.58951119
+ 0.00000000
+ REC 100. 1
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 100. 60.
+BLANK card ending source data
+C SEND 100. 100. .14695409358625 .29251652690644 7.3477046793123 2.9354052953678
+C 0.0 0.0 -.2529237293961 -59.8424965 12.646186469807 12.6461865
+C
+C REC 14.563049373597 29.706226229343 -.145630493736 .29706226229343 -4.412299383945
+C -25.89164864838 -60.6439325 .25891648648378 119.3560675 -.152655666E-15
+C The following initial condition cards are built from preceding phasor flow.
+C Name K V-k real V-k imag ----- Node V initial condition is type 2
+ 2SEND 100. 0.0 60.
+ 2REC 14.563049373597-25.89164864838
+C Distributed: I-k real I-k imag I-m real I-m imag
+ 3SEND REC .14695409358625-.2529237293961-.145630493736 .25891648648378
+C First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time REC SEND REC
+C TERRA
+C 0 0.0 14.56305 100. .1456305
+C 1 .5E-4 15.04761 99.98224 .1504761
+C 2 .1E-3 15.52757 99.92895 .1552757
+C 3 .15E-3 16.00208 99.84016 .1600208
+C 4 .2E-3 16.47093 99.71589 .1647093
+C 5 .25E-3 16.93392 99.5562 .1693392
+C 6 .3E-3 17.3909 99.36113 .173909
+C 7 .35E-3 17.8417 99.13076 .178417
+C 8 .4E-3 18.28609 98.86517 .1828609
+C 9 .45E-3 18.72385 98.56446 .1872385
+C 10 .5E-3 19.155 98.22873 .19155
+C 11 .55E-3 19.57944 97.85809 .1957944
+C 12 .6E-3 19.99694 97.45269 .1999694
+C 13 .65E-3 20.40735 97.01266 .2040735
+C 14 .7E-3 20.8105 96.53816 .208105
+C 15 .75E-3 21.20625 96.02937 .2120625
+C 16 .8E-3 21.59436 95.48645 .2159436
+C Showing 16 steps is more than enough. Without manual initial conditions, the
+C surge arrives at the receiving end on step 8. Above exceeds 2 travel times.
+C Furthermore, above agrees exactly to output that includes a phasor solution.
+ 1 { Request output of all node voltages
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 4th of 10 subcases is like 2nd, but with the constant-parameter line
+C replaced by JMarti frequency-dependent line modeling. Line length has
+C changed, unfortunately. Rather than build data to derive Marti branch
+C cards, we borrowed those used by DCNEW-4. Line length is 138 miles.
+C Reduce 2 in col. 31 to 1 so some Marti data card input is seen.
+PRINTED NUMBER WIDTH, 10, 2, { Reduced precision
+ .000050 .001 { Note TMAX exceeds travel time of .74 msec by about 40%
+ 1 1 1 1 { Request phasor output to prove there is none
+C PUNCHED CARD OUTPUT OF "JMARTI SETUP" WHICH BEGAN AT 14.32.51 09/14/82
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 100. 5000. 1 138. 1 3-2
+C 100. 60.00 1 138. 1 3
+C 100. .01 1 138. 1 9 10 3
+C
+-1SENDA RECA 1. -2 3 1
+ 18 0.47487144790587633736E+03
+ -0.117967342612603676E+01 -0.316671345021416945E+01 0.255662317832426673E+02
+ -0.601654631032706213E+02 -0.118825306534453652E+03 0.128169142098635430E+04
+ 0.589610442538186533E+04 0.292891488173549769E+05 0.115665757459954655E+06
+ 0.456394278488149546E+06 0.153681652821077613E+07 0.681848054466802243E+07
+ 0.155477562610202006E+08 0.231789897204889809E+08 0.143827766961221036E+08
+ 0.241524708800130989E+08 0.245049034784953832E+08 0.476808364145524129E+08
+ 0.321645453133055891E+00 0.897616891499021768E+00 0.165632367032913183E+01
+ 0.166669419493737986E+01 0.253073682990780913E+01 0.200014655383098283E+02
+ 0.124257951002701473E+03 0.657345842950598183E+03 0.278623017775457413E+04
+ 0.117145310573639467E+05 0.427410884649070877E+05 0.202553264108715757E+06
+ 0.968789502295299084E+06 0.296908522006270138E+07 0.737968316276072920E+07
+ 0.121009167337626640E+08 0.132891445947112725E+08 0.252097199908134253E+08
+ 14 0.86849922355034181931E-03
+ 0.580543547692016874E-01 0.269744993210885436E+00 0.358646519088149721E+00
+ 0.775351125410302933E+00 0.512138885239557462E+01 0.838265420474258915E+01
+ 0.700229782114550385E+02 0.393084113996385128E+03 0.138208543918962840E+04
+ 0.706160326497018531E+03 0.527246586822120662E+04 0.528343251309079615E+05
+ 0.178307801042203880E+08 -0.178914532139174500E+08
+ 0.228360173022402533E+02 0.102750699821169636E+03 0.139222638455845377E+03
+ 0.269608322018776320E+03 0.389220463867018722E+03 0.427793721751318500E+03
+ 0.132148883486994549E+04 0.277178340638843952E+04 0.449341296469570784E+04
+ 0.596603161966094024E+04 0.114714152641659587E+05 0.268314807408425590E+05
+ 0.204027813729699328E+05 0.204231841543429041E+05
+-2SENDB RECB 1. -2 3 1
+ 13 0.28580875773089406522E+03
+ 0.381761604345214016E+04 -0.269529222495194318E+04 0.445018224900628539E+03
+ 0.214658130219351907E+03 0.897325461203551775E+02 0.130480129629523390E+03
+ 0.683037485206990933E+02 0.746626715384045969E+02 0.133938729387751110E+04
+ 0.249954495902361043E+04 0.187764116219525090E+05 0.391031620802855759E+06
+ 0.562668431190421223E+07
+ 0.358668999787749571E+01 0.376679186833120605E+01 0.706439034439901437E+01
+ 0.109721634064781350E+02 0.140506334140286961E+02 0.234292596911152251E+02
+ 0.407686998675834982E+02 0.797598814775078289E+02 0.129106739969348078E+04
+ 0.242138030939135859E+04 0.182362646041542116E+05 0.379814243183306855E+06
+ 0.548808385606378759E+07
+ 13 0.74123751236187229426E-03
+ 0.192189595814863363E+02 0.210970481418782463E+01 0.383406546226866283E+02
+ 0.307999912886148377E+02 0.634013410317139090E+03 -0.253243195247046863E+03
+ 0.210540381301789816E+05 0.755533947306502050E+05 0.229576557459444489E+07
+ 0.607777584135737231E+13 -0.156620677810598129E+13 0.153143851607186420E+13
+ -0.604300997216751013E+13
+ 0.325736126030671755E+04 0.366694913707514260E+03 0.675727697588602189E+04
+ 0.516024976370228876E+04 0.249456113770459378E+05 0.115067772934717399E+06
+ 0.105205466546493019E+06 0.240930799961836921E+06 0.633276538663731131E+06
+ 0.975820481990592802E+06 0.976796302472583498E+06 0.974176721795814519E+06
+ 0.975150898517610403E+06
+-3SENDC RECC 1. -2 3 1
+ 13 0.27248404992352924125E+03
+ 0.928429573805075023E+03 0.205756155237142632E+03 0.538106630554037608E+03
+ 0.105199818376817531E+03 0.821382476778671116E+02 0.133356875032521778E+03
+ 0.654774478488469374E+02 0.612546121562179922E+02 0.905544916173387175E+02
+ 0.973244316091135204E+03 0.267481871266201051E+04 0.138566411938941123E+05
+ 0.646075558955914967E+06
+ 0.297277477955690506E+01 0.413177069940672514E+01 0.739410817322770197E+01
+ 0.103072536754267949E+02 0.135874091964585515E+02 0.234792992956042887E+02
+ 0.384075708508238121E+02 0.692539345057236435E+02 0.997101922255402791E+02
+ 0.941460937860312015E+03 0.259295974388396348E+04 0.134538093446956691E+05
+ 0.628668738677182439E+06
+ 20 0.74871165651714274120E-03
+ 0.249456855794677017E-01 0.516637614002139312E+01 0.435227595525510835E+01
+ 0.696293545843379624E+01 0.113102519337405665E+02 0.107077756312168120E+02
+ 0.136526319661978881E+02 0.103057494642840792E+03 0.647491597081196815E+03
+ 0.221213037293261823E+04 0.164010494681972204E+05 0.517776934139508076E+05
+ 0.393233870054795443E+06 -0.101893253559274247E+05 -0.173413454816459129E+06
+ 0.524218185885897590E+06 0.711044562955687729E+12 -0.559640645251973480E+12
+ 0.582892127161358521E+12 -0.734296849907947113E+12
+ 0.887741958857318814E+01 0.183177145564733675E+04 0.151655674045953921E+04
+ 0.245910936284398730E+04 0.383273362703089043E+04 0.399285585783856465E+04
+ 0.496339281485561617E+04 0.253464455063045348E+05 0.272156609769823021E+05
+ 0.475215596432249440E+05 0.149791320991727040E+06 0.333884409922466803E+06
+ 0.541583000670874084E+06 0.670984155731562481E+06 0.569769858667429973E+06
+ 0.132622344670840449E+07 0.440534234233555838E+07 0.440974768467789434E+07
+ 0.436787151891064062E+07 0.437223939042955148E+07
+ 0.57154434 0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ 0.58879039 0.00000000 0.80696823
+ 0.00000000 0.00000000 0.00000000
+ 0.57154434 -0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ RECA 200.
+ RECB 200.
+ RECC 200.
+ SENDC 200. { Replace phase c source by this resistor
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 100. 60. 0.0
+14SENDB 100. 60. -120.
+BLANK card ending source data
+C The following phasor solution was obtained by setting T-start = -1.0 for
+C each of the two preceding sources. This provides basis for initialization.
+C SENDA 100. 100. .37357344098553 .37380400389422 18.678672049276 3.7819577671008
+C 0.0 0.0 -.0131269767114 -2.0124852 .65634883557087 0.6563488
+C
+C RECA 74.582077276654 77.192523685071 -.3729103863833 .38596261842535 -14.89671428218
+C -19.90475978176 -14.9430397 .09952379890879 165.0569603 -.451244944E-14
+C
+C SENDB -50. 100. -.3833667890536 .47733933630699 21.899004304761 -1.819030186807
+C -86.60254037844 -120.0000000 -.2843989223551 -143.4302949 9.4902958555069 9.4902959
+C
+C RECB -87.9019678687 97.402329523617 .43950983934349 .48701164761808 -23.71803449157
+C -41.95781025551 -154.4836884 .20978905127755 25.5163116 -.213197515E-14
+C
+C SENDC 8.9664534487851 11.539874097595 -.0448322672439 .05769937048798 -.3329217354709 -.5808639378985
+C -7.264393074381 -39.0135136 .03632196537191 140.9864864 .2136962482E-15 0.0000000
+C
+C RECC -7.027068223793 9.9587590075801 .03513534111896 .0497937950379 -.2479422024276
+C 7.0567126304834 134.8794005 -.0352835631524 -45.1205995 .3134699531E-16
+C The following initial-condition cards were constructed from branch flow
+C output with sources present for a phasor solution. Full precision of
+C the ATP output is being used, note. Purely resistive branches are not
+C supposed to require initialization, so these were omitted.
+ 2SENDA 100. 0.0 60.
+ 2RECA 74.582077276654-19.90475978176
+ 2SENDB -50.-86.60254037844
+ 2RECB -87.9019678687-41.95781025551
+ 2SENDC 8.9664534487851-7.264393074381
+ 2RECC -7.0270682237937.0567126304834
+C Distributed: I-k real I-k imag I-m real I-m imag
+ 3SENDA RECA .37357344098553-.0131269767114-.3729103863833.09952379890879
+ 3SENDB RECB -.3833667890536-.2843989223551.43950983934349.20978905127755
+ 3SENDC RECC -.0448322672439.03632196537191.03513534111896-.0352835631524
+ 1 { Request node voltage outputs for each network node
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 3 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time RECC RECB RECA SENDC SENDA SENDB SENDA SENDB SENDC
+C RECA RECB RECC
+C 0 0.0 -7.02707 -87.902 74.58208 8.966453 100. -50. .3735734 -.383367 -.044832
+C 1 .5E-4 -7.15772 -87.0944 74.94189 9.101568 99.98224 -48.3588 .3737522 -.377936 -.045508
+C 2 .1E-3 -7.28683 -86.2569 75.27724 9.233558 99.92895 -46.7004 .3738012 -.372372 -.046168
+C 3 .15E-3 -7.41337 -85.3888 75.58585 9.362285 99.84016 -45.0254 .3737174 -.366676 -.046811
+C 4 .2E-3 -7.5373 -84.4904 75.86758 9.487714 99.71589 -43.3345 .3735005 -.360851 -.047439
+C 5 .25E-3 -7.65858 -83.5619 76.12234 9.609793 99.5562 -41.6281 .3731507 -.354897 -.048049
+C 6 .3E-3 -7.77715 -82.6038 76.35003 9.728472 99.36113 -39.9069 .3726683 -.348817 -.048642
+C 7 .35E-3 -7.89297 -81.6164 76.55059 9.843704 99.13076 -38.1716 .3720534 -.342613 -.049219
+C 8 .4E-3 -8.00599 -80.6 76.72395 9.955443 98.86517 -36.4227 .3713062 -.336287 -.049777
+C 9 .45E-3 -8.11617 -79.5549 76.87004 10.06365 98.56446 -34.6608 .3704271 -.329843 -.050318
+C 10 .5E-3 -8.22347 -78.4816 76.98882 10.16828 98.22873 -32.8867 .3694163 -.32328 -.050841
+C 11 .55E-3 -8.32786 -77.3804 77.08024 10.2693 97.85809 -31.1008 .3682743 -.316604 -.051347
+C 12 .6E-3 -8.42928 -76.2517 77.14427 10.36668 97.45269 -29.3039 .3670014 -.309814 -.051833
+C 13 .65E-3 -8.52771 -75.0959 77.1809 10.46037 97.01266 -27.4966 .3655981 -.302915 -.052302
+C 14 .7E-3 -8.62311 -73.9135 77.1901 10.55035 96.53816 -25.6795 .364065 -.295908 -.052752
+C 15 .75E-3 -8.71543 -72.7047 77.17185 10.63653 96.02937 -23.8533 .362402 -.288795 -.053183
+C 16 .8E-3 -8.80466 -71.47 77.12599 10.71883 95.48645 -22.0187 .3606083 -.281579 -.053594
+C 17 .85E-3 -8.89082 -70.21 77.05293 10.79745 94.90961 -20.1762 .3586886 -.274264 -.053987
+C 18 .9E-3 -8.97382 -68.925 76.95252 10.87225 94.29905 -18.3265 .3566416 -.266852 -.054361
+C 19 .95E-3 -9.05361 -67.6156 76.82477 10.94318 93.65499 -16.4703 .354468 -.259345 -.054716
+C 20 .1E-2 -9.13015 -66.2822 76.66974 11.01022 92.97765 -14.6083 .3521686 -.251745 -.055051
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DC-9
+C 5th of 10 subcases is like preceding, but with JMarti frequency
+C dependence replaced by Semlyen branch cards from DC-31. This example
+C comes from BPA's Dr. Tsu-huei Liu, who first made it work.
+PRINTED NUMBER WIDTH, 11, 2, { Reduced precision
+ .000050 .00100
+ 1 1 1 1 1
+C L= 138.0MILES, RHO= 27.0, SS FREQ= 60.00, NSS=0, KFIT= 0, KPS=2, KYC=10
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 27. 5000. 1 138.
+C 27. 60.00 1 138.
+C 27. 6.00 1 138. 6 20
+C
+-1SENDA RECA 0.55456E-02 0.77998E-03 1 1 2 2 3
+ 0.14938602E+02 0.90516313E+02-0.16261865E-03 0.14500324E-02 0.60000000E+02
+ 0.00000E+00 0.15161E+05 0.75119E+00 0.00000E+00 0.17105E+04 0.24881E+00
+ 0.00000E+00 0.59584E+03-0.11954E-02 0.00000E+00 0.39933E+05-0.74162E-03
+-1SENDB RECB 0.74392E-02 0.74149E-03 2 2 2 2 3
+ 0.83801231E+00 0.38634735E+02-0.44536501E-04 0.20637999E-02 0.60000000E+02
+ 0.00000E+00 0.26608E+06 0.83767E+00 0.00000E+00 0.35627E+05 0.16233E+00
+ 0.00000E+00 0.13630E+03-0.49171E-03 0.00000E+00 0.32940E+05-0.75349E-04
+-1SENDC RECC 0.42823E-02 0.74017E-03 3 3 2 2 3
+ 0.26535168E+01 0.67894100E+02-0.45225808E-04 0.11682248E-02 0.60000000E+02
+ 0.00000E+00 0.61698E+06 0.90903E+00 0.00000E+00 0.15239E+05 0.90969E-01
+ 0.00000E+00 0.25667E+03-0.34465E-03 0.00000E+00 0.11831E+05-0.28233E-04
+ 0.10000E+01 0.00000E+00 0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.71114E+00 0.00000E+00-0.41983E-15 0.00000E+00 0.10000E+01 0.00000E+00
+ 0.10000E+01 0.00000E+00-0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00 0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+ 0.22471E+00 0.00000E+00-0.27373E-15 0.00000E+00 0.84054E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00-0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 408000. 60. 0.0
+14SENDB 408000. 60. -120.
+14SENDC 408000. 60. 120.
+BLANK card ending source data
+C The following initial-condition cards were constructed from branch flow
+C output with sources present for a phasor solution. Full precision of
+C the ATP output is being used, note. Purely resistive branches are not
+C supposed to require initialization, so these were omitted.
+C
+C SENDA 408000. 408000. -14.35539062039 427.20215266352 -.29284996866E7 -.29284996866E7
+C 0.0 0.0 426.96089048118 91.9256883 -.87100021658E8 87100021.6581596
+C
+C RECA 426275.19929468 426279.30459602 .1509903313E-13 .9664560746E-12 .23142460224E-8
+C 1870.8268620134 0.2514568 -.966338121E-12 -89.1048263 .20597711132E-6
+C
+C SENDB -204000. 408000. 390.21858493854 442.08847622165 -.30943350074E7 -.30943350074E7
+C -353338.3647441 -120.0000000 -207.7779506506 -28.0337631 -.90132949314E8 90132949.3138173
+C
+C RECB -211353.2339786 423078.09601739 .6536993169E-12 .7963152328E-12 .14252537328E-7
+C -366503.5959121 -119.9709473 -.454747351E-12 -34.8244892 -.1678477368E-6
+C
+C SENDC -204000. 408000. -374.9796048273 439.89286922318 -.2384468398E7 -.2384468398E7
+C 353338.36474405 120.0000000 -229.9913745272 -148.4773916 -.89706460393E8 89706460.3928106
+C
+C RECC -210971.8157184 425738.55951138 -.170530257E-12 .190658623E-12 .33753610037E-7
+C 369789.41849017 119.7055709 .8526512829E-13 153.4349488 -.2253587274E-7
+ 2SENDA 408000. 0.0 60.
+ 2RECA 426275.199295 1870.82686201
+ 2SENDB -204000. -353338.36474
+ 2RECB -211353.23398 -366503.59591
+ 2SENDC -204000. 353338.36474
+ 2RECC -210971.81572 369789.41849
+ 3SENDA RECA -14.35539062039426.96089048118.1509903313E-13-.966338121E-12
+ 3SENDB RECB 390.21858493854-207.7779506506.6536993169E-12-.454747351E-12
+ 3SENDC RECC -374.9796048273-229.9913745272-.170530257E-12.8526512829E-13
+ 1 { Request for the output of each node voltage
+C First 6 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Step Time RECC RECB RECA SENDA SENDB SENDC
+C 0 0.0 -210971.8 -211353.2 426275.2 408000. -204000. -204000.
+C 1 .5E-4 -217903.1 -204391.8 426140.86 407927.52 -197303.9 -210623.6
+C 2 .1E-3 -224764. -197371.2 425871.55 407710.1 -190537.7 -217172.4
+C 3 .15E-3 -231544. -190283.3 425452.69 407347.83 -183703.7 -223644.1
+C 4 .2E-3 -238240.9 -183128.9 424883.53 406840.83 -176804.6 -230036.3
+C 5 .25E-3 -244852.7 -175910. 424163.92 406189.28 -169842.6 -236346.7
+C 6 .3E-3 -251377.2 -168628.7 423293.95 405393.41 -162820.2 -242573.2
+C 7 .35E-3 -257812.1 -161287.4 422273.86 404453.51 -155740. -248713.5
+C 8 .4E-3 -264155.2 -153888.8 421103.95 403369.91 -148604.5 -254765.4
+C 9 .45E-3 -270404.2 -146435.4 419784.61 402142.99 -141416.2 -260726.8
+C 10 .5E-3 -276557. -138929.9 418316.3 400773.2 -134177.6 -266595.6
+C 11 .55E-3 -282611.4 -131374.9 416699.51 399261.01 -126891.3 -272369.7
+C 12 .6E-3 -288565.2 -123773.2 414934.81 397606.96 -119560. -278046.9
+C 13 .65E-3 -294416.4 -116127.4 413022.82 395811.65 -112186.2 -283625.4
+C 14 .7E-3 -300162.8 -108440.2 410964.19 393875.71 -104772.5 -289103.2
+C 15 .75E-3 -305803.1 -100717.9 408762.02 391799.82 -97321.65 -294478.2
+C 16 .8E-3 -311336.8 -92970.64 406424.38 389584.73 -89836.18 -299748.6
+C 17 .85E-3 -316755.1 -85178.69 403935.32 387231.23 -82318.79 -304912.4
+C 18 .9E-3 -322059.1 -77353.3 401302.31 384740.14 -74772.16 -309968.
+C 19 .95E-3 -327248.4 -69499.21 398526.63 382112.35 -67198.95 -314913.4
+C 20 .1E-2 -332321.6 -61619.94 395609.19 379348.81 -59601.88 -319746.9
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+PRINTED NUMBER WIDTH, 11, 2, { Request maximum precision (for 8 output columns)
+ .000050 .001
+ 1 1 1 1
+C 6th of 10 subcases illustrates multiple frequencies for initial condit.
+C Create 3 parallel, independent, identical circuits of line plus resistor.
+C The (SEND, REC) alternative will be initialized for 60 Hz whereas the
+C alternative (GEN, END) and (GEN, MARTI) will use 50 Hz --- with the
+C former being constant-parameter and the latter JMARTI. It works. There is
+C perfect agreement with related solution that begins with phasors. The
+C Marti line is identical to what already was used (see 3rd subcase), so
+C documentation will be minimized. Comment cards have been dropped, and the
+C 1 of col. 31 is restored to 2.
+-1SEND REC .306 5.82 .012 100. { Half the length of original
+-1GEN END .306 5.82 .012 100. { Half the length of original
+-1GEN MARTI 2. 0.00 -2 1
+ 25 4.6006674814379022100E+02
+ -3.53674337977459482E+03 4.74463047336912496E+03 4.19877687667209159E+02
+ 1.20883875640704401E+03 1.37235832926770309E+03 1.76629378124055439E+03
+ 2.57098916005431466E+03 3.78828017768501514E+03 1.42803850501766374E+03
+ 2.65038870126655566E+04 5.80549633718908008E+04 2.89862514502709019E+04
+ 6.76266799893490243E+04 1.75748067781355756E+05 1.15921506756057055E+06
+ 5.68321189666407090E+06 9.19433740923774988E+06 1.70951407206966021E+07
+ 1.81624149219296910E+07 1.63578536348816883E+07 2.07902744942919687E+07
+ 1.63600113702911996E+07 3.05274574257793949E+07 2.82210286690547951E+07
+ 3.72990420164290220E+07
+ 2.77486902230361210E-01 2.68023805044265262E-01 4.15219939750085032E-01
+ 1.00965215217368676E+00 2.08586147641298370E+00 4.31742025828644139E+00
+ 9.38105998645288964E+00 2.16289190303449140E+01 4.71679444226597938E+01
+ 5.00972850164923444E+02 2.19667801322956757E+03 2.86760537318643128E+03
+ 1.14040516604910099E+04 2.97247489619667322E+04 9.91819942418309948E+04
+ 4.96352587435292895E+05 1.62826284096999770E+06 3.10812825436382648E+06
+ 6.60681297691485007E+06 1.23076395640831069E+07 1.54718126469801944E+07
+ 1.14181900748053603E+07 2.33626050734163225E+07 2.05401226659539938E+07
+ 2.89354778735701405E+07
+ 14 3.8038812947515656600E-04
+ 1.91758353605922701E-02 2.66649324474153904E-01 2.54923849247581425E+00
+ 9.46636313120961682E+00 2.85381149799323453E+01 7.38766350382716724E+01
+ 2.49452844472431571E+03 7.01441951080157833E+03 6.88095829884308187E+04
+ -3.34847951818855899E+06 3.31843503484260664E+06 3.96467674493048249E+10
+ -7.93497908986478425E+10 3.97029750605793992E+10
+ 3.35859634392794338E+00 4.68146974610416323E+01 4.33602484888353672E+02
+ 1.24257407602821491E+03 1.74575005233975117E+03 1.47765127586259360E+03
+ 1.69531663286821313E+04 2.85574137491229049E+04 7.36636621071784758E+04
+ 5.22749591784824327E+05 5.23272341376608878E+05 1.82407055706939399E+05
+ 1.82589462762646523E+05 1.82772052225409076E+05
+ 0.58951119
+ 0.00000000
+ REC 100.
+ END 100.
+ MARTI 100.
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 100. 60.
+14GEN 100. 50.
+C 14GEN2 100. 50. -1.
+BLANK card ending source data
+C GEN 100. 100. .26567063730001 .43724454992683 13.283531865001 3.0530027479459
+C 0.0 0.0 -.3472778554952 -52.5836910 17.363892774758 17.3638928
+C
+C END 25.859996851553 45.233901262338 -.2585999685155 .45233901262338 -10.23052911705
+C -37.11288706432 -55.1314894 .37112887064316 124.8685106 -.737257477E-17
+C
+C GEN 100. 100. .18468803864924 .33562381569663 9.2344019324622 3.4793989521433
+C 0.0 0.0 -.2802386019853 -56.6135784 14.011930099264 14.0119301
+C
+C MARTI 18.346330639813 33.926399692036 -.1834633063981 .33926399692036 -5.755002980319
+C -28.53791772569 -57.2640259 .28537917725693 122.7359741 .7014788056E-15
+C Name K V-k real V-k imag ----- Node V initial condition is type 2
+ 2SEND 100. 0.0
+ 2REC 19.956813332748-34.69967901024
+ 2GEN 100. 0.0
+ 2END 25.859996851553-37.11288706432
+ 2MARTI 18.346330639813-28.53791772569
+C Distributed: I-k real I-k imag I-m real I-m imag [Hz]
+ 3SEND REC .20753030414706-.3196504046191-.1995681333275.34699679010239 60.
+ 3GEN END .26567063730001-.3472778554952-.2585999685155.37112887064316 50.
+ 3GEN MARTI .18468803864924-.2802386019853-.1834633063981.28537917725693
+C Note that preceding branch card has blank cols. 75-80 for the frequency. By
+C definition, frequency will remain unchanged at 50 Hz (2nd Type-3 card).
+ SEND GEN REC END MARTI { Names of nodes for voltage output
+BLANK card ending node voltage outputs
+C First 5 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Step Time SEND GEN REC END MARTI
+C 0 0.0 100. 100. 19.956813 25.859997 18.346331
+C 1 .5E-4 99.982235 99.987663 20.606552 26.439082 18.791563
+C 2 .1E-3 99.928947 99.950656 21.249697 27.012298 19.232816
+C 3 .15E-3 99.840155 99.888987 21.885291 27.578849 19.669386
+C 4 .2E-3 99.71589 99.802673 22.51311 28.138595 20.101117
+C 5 .25E-3 99.556196 99.691733 23.13293 28.691398 20.527892
+C 6 .3E-3 99.361131 99.556196 23.744531 29.237122 20.949603
+C 7 .35E-3 99.130763 99.396096 24.347696 29.775632 21.366146
+C 8 .4E-3 98.865174 99.21147 24.94221 30.306796 21.777336
+C 9 .45E-3 98.56446 99.002366 25.527863 30.830482 22.183024
+C 10 .5E-3 98.228725 98.768834 26.104445 31.346561 22.583287
+C 11 .55E-3 97.85809 98.510933 26.671752 31.854905 22.97808
+C 12 .6E-3 97.452687 98.228725 27.229584 32.35539 23.367227
+C 13 .65E-3 97.01266 97.922281 27.77774 32.847892 23.750616
+C 14 .7E-3 96.538164 97.591676 28.316028 33.332289 24.128147
+C 15 .75E-3 96.029369 97.236992 28.844255 33.808461 24.499706
+C 16 .8E-3 95.486454 96.858316 29.362233 34.276292 24.865139
+C 17 .85E-3 94.909614 96.455742 29.869718 34.735588 25.224341
+C 18 .9E-3 94.299054 96.029369 30.366492 35.186194 25.577322
+C 19 .95E-3 93.654989 95.579301 30.852618 35.628304 25.924072
+C 20 .1E-2 92.977649 95.105652 31.327783 36.061624 26.264482
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DC-9
+C 7th of 10 subcases extends the preceding. It has two 3-phase Semlyen
+C lines with different frequencies (50 and 60 Hz). Semlyen branch cards
+C are copied from the 5th subcase (from DC-31), so omit the comments.
+PRINTED NUMBER WIDTH, 11, 2, { Allow output line nicely within 80 columns
+ .000050 .001 { Just 20 steps. Extend to 40 msec if plot card is enabled
+ 1 -1 1 1 { Note IPLOT of cols. 9-16 disables plotting
+-1SENDA RECA 0.55456E-02 0.77998E-03 1 1 2 2 3
+ 0.14938602E+02 0.90516313E+02-0.16261865E-03 0.14500324E-02 0.60000000E+02
+ 0.00000E+00 0.15161E+05 0.75119E+00 0.00000E+00 0.17105E+04 0.24881E+00
+ 0.00000E+00 0.59584E+03-0.11954E-02 0.00000E+00 0.39933E+05-0.74162E-03
+-1SENDB RECB 0.74392E-02 0.74149E-03 2 2 2 2 3
+ 0.83801231E+00 0.38634735E+02-0.44536501E-04 0.20637999E-02 0.60000000E+02
+ 0.00000E+00 0.26608E+06 0.83767E+00 0.00000E+00 0.35627E+05 0.16233E+00
+ 0.00000E+00 0.13630E+03-0.49171E-03 0.00000E+00 0.32940E+05-0.75349E-04
+-1SENDC RECC 0.42823E-02 0.74017E-03 3 3 2 2 3
+ 0.26535168E+01 0.67894100E+02-0.45225808E-04 0.11682248E-02 0.60000000E+02
+ 0.00000E+00 0.61698E+06 0.90903E+00 0.00000E+00 0.15239E+05 0.90969E-01
+ 0.00000E+00 0.25667E+03-0.34465E-03 0.00000E+00 0.11831E+05-0.28233E-04
+ 0.10000E+01 0.00000E+00 0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.71114E+00 0.00000E+00-0.41983E-15 0.00000E+00 0.10000E+01 0.00000E+00
+ 0.10000E+01 0.00000E+00-0.10000E+01 0.00000E+00-0.26698E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00 0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+ 0.22471E+00 0.00000E+00-0.27373E-15 0.00000E+00 0.84054E+00 0.00000E+00
+ 0.42027E+00 0.00000E+00-0.50000E+00 0.00000E+00-0.29908E+00 0.00000E+00
+ RECA 200.
+ RECB 200.
+ RECC 200.
+ SENDC 200. { Replace phase c source by this resistor
+C Illustrate reference branch copying for Semlyen model. 2nd circuit follows.
+C But because the 2nd will be excited at 50 Hz whereas the 1st has its phasor
+C parameters derived at 60 Hz, there will be warning messages about 2nd. Note
+C that the phasor solution of the second is substantially in error (50 Hz is
+C not close to 60 Hz). Yet, the result is amazingly smooth. To see this,
+C extend TMAX to a couple of cycles (40 msec), and enable plotting (now,
+C IPLOT = -1 will ignore the plot card, which involves RECA, RECB, RECC).
+-1GENA ENDA SENDA RECA
+-1GENB ENDB SENDB RECB
+-1GENC ENDC SENDC RECC
+ ENDA 200.
+ ENDB 200.
+ ENDC 200.
+ GENC 200. { Replace phase c source by this resistor
+BLANK card follows the last branch card
+BLANK line terminates the last (here, nonexistent) switch
+14SENDA 100. 60. 0.0
+14SENDB 100. 60. -120.
+14GENA 100. 50. 0.0
+14GENB 100. 50. -120.
+BLANK card ending source data
+C The following initial-condition cards were constructed from branch flow
+C output with sources present for a phasor solution. Full precision of
+C the ATP output is being used, note. Purely resistive branches are not
+C supposed to require initialization, so these were omitted.
+C The following 3 branch flows are for 60 Hz:
+C SENDA 100. 100. .36998975926495 .37180820218231 18.499487963247 2.9848546654506
+C 0.0 0.0 -.0367276088128 -5.6689829 1.8363804406416 1.8363804
+C
+C RECA 74.690024760283 78.777238585258 -.3734501238014 .39388619292629 -15.5146332978
+C -25.04502985478 -18.5373124 .12522514927392 161.4626876 -.253833413E-14
+C
+C SENDB -50. 100. -.3685220242714 .49798629886772 23.71618850994 -1.806979904073
+C -86.60254037844 -120.0000000 -.3349356228992 -137.7334962 7.5840811711722 7.5840812
+C
+C RECB -86.37515570642 101.04091926346 .43187577853211 .5052045963173 -25.52316841401
+C -52.4270907289 -148.7435235 .26213545364451 31.2564765 -.116668827E-13
+C
+C SENDC 9.9402547548508 10.505728992727 -.0497012737743 .05252864496364 -.2759258541716 -.4312032208709
+C -3.40024662007 -18.8841944 .01700123310035 161.1158056 -.204060401E-15 0.0000000
+C
+C RECC -7.010739885979 7.8810498462914 .0350536994299 .03940524923146 -.1552773666993
+C 3.6000656842441 152.8191734 -.0180003284212 -27.1808266 -.154803741E-15
+C The following 3 branch flows are for 50 Hz:
+C GENA 100. 100. .36998975926495 .37180820218231 18.499487963247 2.9848546654506
+C 0.0 0.0 -.0367276088128 -5.6689829 1.8363804406416 1.8363804
+C
+C ENDA 74.690024760283 78.777238585258 -.3734501238014 .39388619292629 -15.5146332978
+C -25.04502985478 -18.5373124 .12522514927392 161.4626876 -.865843855E-14
+C
+C GENB -50. 100. -.3685220242714 .49798629886772 23.71618850994 -1.806979904073
+C -86.60254037844 -120.0000000 -.3349356228992 -137.7334962 7.5840811711722 7.5840812
+C
+C ENDB -86.37515570642 101.04091926346 .43187577853211 .5052045963173 -25.52316841401
+C -52.4270907289 -148.7435235 .26213545364451 31.2564765 .1027303242E-13
+C
+C GENC 9.9402547548508 10.505728992728 -.0497012737743 .05252864496364 -.2759258541716 -.4312032208709
+C -3.40024662007 -18.8841944 .01700123310035 161.1158056 -.319839641E-16 0.0000000
+C
+C ENDC -7.010739885979 7.8810498462914 .0350536994299 .03940524923146 -.1552773666993
+C 3.6000656842441 152.8191734 -.0180003284212 -27.1808266 -.56249764E-16
+C Name K V-k real V-k imag ----- Node V initial condition is type 2
+ 2SENDA 100.0 0.0
+ 2RECA 74.690024760283-25.04502985478
+ 2SENDB -50.-86.60254037844
+ 2RECB -86.37515570642 -52.4270907289
+ 2SENDC 9.9402547548508 -3.40024662007
+ 2RECC -7.0107398859793.6000656842441
+ 2GENA 100.0 0.0
+ 2ENDA 74.690024760283-25.04502985478
+ 2GENB -50.-86.60254037844
+ 2ENDB -86.37515570642 -52.4270907289
+ 2GENC 9.9402547548508 -3.40024662007
+ 2ENDC -7.0107398859793.6000656842441
+C Distributed: I-k real I-k imag I-m real I-m imag [Hz]
+ 3SENDA RECA .36998975926495-.0367276088128-.3734501238014.12522514927392 60.
+ 3SENDB RECB -.3685220242714-.3349356228992.43187577853211.26213545364451
+ 3SENDC RECC -.0497012737743.01700123310035 .0350536994299-.0180003284212
+ 3GENA ENDA .36998975926495-.0367276088128-.3734501238014.12522514927392 50.
+ 3GENB ENDB -.3685220242714-.3349356228992.43187577853211.26213545364451
+ 3GENC ENDC -.0497012737743.01700123310035 .0350536994299-.0180003284212
+C About phasor frequency on the right, note that only the first of each group
+C of 3 coupled conductors requires a nonzero frequency. A blank for following
+C phases means that the declared value will remain in effect. As for the 1st
+C frequency (60 Hz), this could be omitted provided it is equal to the power
+C frequency. But different places in the world have different power frequency
+C so it is prudent practice to declare this frequency explicitely.
+ RECA ENDA RECB ENDB RECC ENDC { Names of nodes for voltage output
+BLANK card ending node names for voltage output
+C Step Time RECA ENDA RECB ENDB RECC ENDC
+C 0 0.0 74.690025 74.690025 -86.37516 -86.37516 -7.01074 -7.01074
+C 1 .5E-4 75.163363 75.132945 -85.37169 -84.34315 -7.059456 -7.969316
+C 2 .1E-3 75.595736 75.435454 -84.33743 -82.81562 -7.123114 -8.190566
+C 3 .15E-3 76.001094 75.753382 -83.27324 -81.54915 -7.18451 -8.234526
+C 4 .2E-3 76.379406 76.079746 -82.17945 -80.40443 -7.243416 -8.226221
+C 5 .25E-3 76.730556 76.398672 -81.05645 -79.31142 -7.299777 -8.200803
+C 6 .3E-3 77.054425 76.700684 -79.90465 -78.23596 -7.353565 -8.170835
+C 7 .35E-3 77.350898 76.981153 -78.72446 -77.16148 -7.404759 -8.141389
+C 8 .4E-3 77.619873 77.238057 -77.51631 -76.07989 -7.453337 -8.114506
+C 9 .45E-3 77.861255 77.470657 -76.28063 -74.98724 -7.499282 -8.090883
+C 10 .5E-3 78.07496 77.678819 -75.01785 -73.88158 -7.542576 -8.070602
+C 11 .55E-3 78.260914 77.862692 -73.72842 -72.76194 -7.583202 -8.05347
+C 12 .6E-3 78.419051 78.02254 -72.41281 -71.62787 -7.621145 -8.039181
+C 13 .65E-3 78.549315 78.158673 -71.07147 -70.47916 -7.65639 -8.027389
+C 14 .7E-3 78.651663 78.271409 -69.70489 -69.31574 -7.688924 -8.017745
+C 15 .75E-3 78.726915 78.367856 -68.31324 -68.14096 -7.71979 -8.014505
+C 16 .8E-3 78.777534 78.482038 -66.89676 -66.94954 -7.75238 -8.021203
+C 17 .85E-3 78.796385 78.578276 -65.45863 -65.69399 -7.778268 -7.991112
+C 18 .9E-3 78.78656 78.66135 -63.99679 -64.41226 -7.800598 -7.945947
+C 19 .95E-3 78.749002 78.71769 -62.51169 -63.1208 -7.819641 -7.907277
+C 20 .1E-2 78.683581 78.746939 -61.00415 -61.8202 -7.835692 -7.875092
+C ----------------- Preceding was before Tsu-huei's OVER8 correction.
+C Step Time RECA ENDA RECB ENDB RECC ENDC
+C 0 0.0 74.690025 74.690025 -86.37516 -86.37516 -7.01074 -7.01074
+C 1 .5E-4 75.163363 74.744884 -85.37169 -84.65358 -7.059456 -8.300563
+C 2 .1E-3 75.595736 75.003289 -84.33743 -83.20507 -7.123114 -8.557454
+C 3 .15E-3 76.001094 75.325776 -83.27324 -81.97004 -7.18451 -8.597739
+C 4 .2E-3 76.379406 75.66166 -82.17945 -80.84254 -7.243416 -8.582616
+C 5 .25E-3 76.730556 75.989351 -81.05645 -79.76068 -7.299777 -8.551501
+C 6 .3E-3 77.054425 76.299083 -79.90465 -78.69329 -7.353565 -8.516962
+C 7 .35E-3 77.350898 76.58653 -78.72446 -77.62521 -7.404759 -8.483715
+C 8 .4E-3 77.619873 76.849919 -77.51631 -76.54911 -7.453337 -8.453539
+C 9 .45E-3 77.861255 77.088671 -76.28063 -75.46146 -7.499282 -8.42697
+C 10 .5E-3 78.07496 77.302754 -75.01785 -74.36051 -7.542576 -8.403987
+C 11 .55E-3 78.260914 77.492377 -73.72842 -73.24544 -7.583202 -8.384334
+C 12 .6E-3 78.419051 77.657849 -72.41281 -72.11583 -7.621145 -8.367661
+C 13 .65E-3 78.549315 77.799509 -71.07147 -70.97152 -7.65639 -8.353591
+C 14 .7E-3 78.651663 77.917697 -69.70489 -69.81243 -7.688924 -8.341754
+C 15 .75E-3 78.726915 77.996637 -68.31324 -68.63631 -7.71979 -8.317196
+C 16 .8E-3 78.777534 78.003092 -66.89676 -67.41624 -7.75238 -8.217882
+C 17 .85E-3 78.796385 78.078973 -65.45863 -66.12507 -7.778268 -8.151926
+C 18 .9E-3 78.78656 78.16892 -63.99679 -64.82237 -7.800598 -8.093319
+C 19 .95E-3 78.749002 78.231147 -62.51169 -63.5241 -7.819641 -8.050547
+C 20 .1E-2 78.683581 78.263977 -61.00415 -62.22435 -7.835692 -8.017481
+ 144 4. 0.0 40. ENDA ENDB ENDC
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of 10 subcases demonstrates manual initialization of a JMarti line.
+C Use two different frequencies. Single phase is used for simplicity.
+C One frequency will be very low (.01 Hz) to prove no need for true dc.
+C This subcase will use phasor solution for .01 Hz. The following subcase
+C will replace the phasor solution here by initial condition cards.
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .001
+ 1 1 1 1
+-1SEND REC 1. 0.00 -2 1
+ 25 4.6006674814379022100E+02
+ -3.53674337977459482E+03 4.74463047336912496E+03 4.19877687667209159E+02
+ 1.20883875640704401E+03 1.37235832926770309E+03 1.76629378124055439E+03
+ 2.57098916005431466E+03 3.78828017768501514E+03 1.42803850501766374E+03
+ 2.65038870126655566E+04 5.80549633718908008E+04 2.89862514502709019E+04
+ 6.76266799893490243E+04 1.75748067781355756E+05 1.15921506756057055E+06
+ 5.68321189666407090E+06 9.19433740923774988E+06 1.70951407206966021E+07
+ 1.81624149219296910E+07 1.63578536348816883E+07 2.07902744942919687E+07
+ 1.63600113702911996E+07 3.05274574257793949E+07 2.82210286690547951E+07
+ 3.72990420164290220E+07
+ 2.77486902230361210E-01 2.68023805044265262E-01 4.15219939750085032E-01
+ 1.00965215217368676E+00 2.08586147641298370E+00 4.31742025828644139E+00
+ 9.38105998645288964E+00 2.16289190303449140E+01 4.71679444226597938E+01
+ 5.00972850164923444E+02 2.19667801322956757E+03 2.86760537318643128E+03
+ 1.14040516604910099E+04 2.97247489619667322E+04 9.91819942418309948E+04
+ 4.96352587435292895E+05 1.62826284096999770E+06 3.10812825436382648E+06
+ 6.60681297691485007E+06 1.23076395640831069E+07 1.54718126469801944E+07
+ 1.14181900748053603E+07 2.33626050734163225E+07 2.05401226659539938E+07
+ 2.89354778735701405E+07
+ 14 3.8038812947515656600E-04
+ 1.91758353605922701E-02 2.66649324474153904E-01 2.54923849247581425E+00
+ 9.46636313120961682E+00 2.85381149799323453E+01 7.38766350382716724E+01
+ 2.49452844472431571E+03 7.01441951080157833E+03 6.88095829884308187E+04
+ -3.34847951818855899E+06 3.31843503484260664E+06 3.96467674493048249E+10
+ -7.93497908986478425E+10 3.97029750605793992E+10
+ 3.35859634392794338E+00 4.68146974610416323E+01 4.33602484888353672E+02
+ 1.24257407602821491E+03 1.74575005233975117E+03 1.47765127586259360E+03
+ 1.69531663286821313E+04 2.85574137491229049E+04 7.36636621071784758E+04
+ 5.22749591784824327E+05 5.23272341376608878E+05 1.82407055706939399E+05
+ 1.82589462762646523E+05 1.82772052225409076E+05
+ 0.58951119
+ 0.00000000
+ REC 100.
+-1GEN END SEND REC { 2nd JMarti line is disconnected from the first
+ END 100.
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 100. 60. { No phasor presence; I.C. cards will be used
+14GEN 100. .010 { Low-freq phasor solution } -1.
+BLANK card ending source data
+C The following initial-condition cards were constructed from branch flow
+C output with the source present for a phasor solution. Full precision of
+C the ATP output is being used, note.
+C The following branch flow is for 60 Hz:
+C SEND 100. 100. .14695409358625 .29251652690644 7.3477046793123 2.9354052953678
+C 0.0 0.0 -.2529237293961 -59.8424965 12.646186469807 12.6461865
+C
+C REC 14.563049373597 29.706226229343 -.145630493736 .29706226229343 -4.412299383945
+C -25.89164864838 -60.6439325 .25891648648378 119.3560675 -.152655666E-15
+C The following initial condition cards are built from preceding phasor flow.
+C Name K V-k real V-k imag ----- Node V initial condition is type 2
+ 2SEND 100. 0.0
+ 2REC 14.563049373597-25.89164864838
+C Distributed: I-k real I-k imag I-m real I-m imag F [Hz]
+ 3SEND REC .14695409358625-.2529237293961-.145630493736 .25891648648378 60.
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Step Time SEND REC GEN END
+C 0 0.0 100. 14.56304937 100. 74.15408515
+C 1 .5E-4 99.98223524 15.04761164 100. 74.15408201
+C 2 .1E-3 99.92894726 15.52757104 100. 74.15407898
+C 3 .15E-3 99.84015501 16.00208444 100. 74.15407596
+C 4 .2E-3 99.71589003 16.47092745 99.99999999 74.15407293
+C 5 .25E-3 99.55619646 16.93392289 99.99999999 74.1540699
+C 6 .3E-3 99.36113105 17.39090307 99.99999998 74.15406686
+C 7 .35E-3 99.13076311 17.84170463 99.99999998 74.15406383
+C 8 .4E-3 98.86517447 18.28608879 99.99999997 74.15406078
+C 9 .45E-3 98.56445951 18.72384749 99.99999996 74.1540577
+C 10 .5E-3 98.22872507 19.15499653 99.99999995 74.15405464
+C 11 .55E-3 97.85809043 19.57943512 99.99999994 74.1540516
+C 12 .6E-3 97.45268728 19.99693921 99.99999993 74.15404857
+C 13 .65E-3 97.01265965 20.40734552 99.99999992 74.15404553
+C 14 .7E-3 96.53816388 20.81050376 99.9999999 74.15404249
+C 15 .75E-3 96.02936857 21.20624627 99.99999989 74.15403945
+C 16 .8E-3 95.48645447 21.59436163 99.99999987 74.1540364
+C Showing 16 steps is more than enough. Without manual initial conditions, the
+C surge arrives at the receiving end on step 8. Above exceeds 2 travel times.
+C Furthermore, above agrees exactly to output that includes a phasor solution.
+ SEND REC GEN END { Node names for node voltage output
+BLANK card ending output requests
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 9th of 10 subcases has the same two JMarti lines as the preceding.
+C It replaces the low-frequency phasor solution of the preceding by
+C by initial condition cards. This is manual, multi-frequency JMarti.
+PRINTED NUMBER WIDTH, 13, 2,
+ .000050 .001
+ 1 1 1 1
+-1SEND REC 1. 0.00 -2 1
+ 25 4.6006674814379022100E+02
+ -3.53674337977459482E+03 4.74463047336912496E+03 4.19877687667209159E+02
+ 1.20883875640704401E+03 1.37235832926770309E+03 1.76629378124055439E+03
+ 2.57098916005431466E+03 3.78828017768501514E+03 1.42803850501766374E+03
+ 2.65038870126655566E+04 5.80549633718908008E+04 2.89862514502709019E+04
+ 6.76266799893490243E+04 1.75748067781355756E+05 1.15921506756057055E+06
+ 5.68321189666407090E+06 9.19433740923774988E+06 1.70951407206966021E+07
+ 1.81624149219296910E+07 1.63578536348816883E+07 2.07902744942919687E+07
+ 1.63600113702911996E+07 3.05274574257793949E+07 2.82210286690547951E+07
+ 3.72990420164290220E+07
+ 2.77486902230361210E-01 2.68023805044265262E-01 4.15219939750085032E-01
+ 1.00965215217368676E+00 2.08586147641298370E+00 4.31742025828644139E+00
+ 9.38105998645288964E+00 2.16289190303449140E+01 4.71679444226597938E+01
+ 5.00972850164923444E+02 2.19667801322956757E+03 2.86760537318643128E+03
+ 1.14040516604910099E+04 2.97247489619667322E+04 9.91819942418309948E+04
+ 4.96352587435292895E+05 1.62826284096999770E+06 3.10812825436382648E+06
+ 6.60681297691485007E+06 1.23076395640831069E+07 1.54718126469801944E+07
+ 1.14181900748053603E+07 2.33626050734163225E+07 2.05401226659539938E+07
+ 2.89354778735701405E+07
+ 14 3.8038812947515656600E-04
+ 1.91758353605922701E-02 2.66649324474153904E-01 2.54923849247581425E+00
+ 9.46636313120961682E+00 2.85381149799323453E+01 7.38766350382716724E+01
+ 2.49452844472431571E+03 7.01441951080157833E+03 6.88095829884308187E+04
+ -3.34847951818855899E+06 3.31843503484260664E+06 3.96467674493048249E+10
+ -7.93497908986478425E+10 3.97029750605793992E+10
+ 3.35859634392794338E+00 4.68146974610416323E+01 4.33602484888353672E+02
+ 1.24257407602821491E+03 1.74575005233975117E+03 1.47765127586259360E+03
+ 1.69531663286821313E+04 2.85574137491229049E+04 7.36636621071784758E+04
+ 5.22749591784824327E+05 5.23272341376608878E+05 1.82407055706939399E+05
+ 1.82589462762646523E+05 1.82772052225409076E+05
+ 0.58951119
+ 0.00000000
+ REC 100.
+-1GEN END SEND REC
+C GEN END 100.
+ END 100.
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 100. 60.
+C 14GEN 100. 60. -1.
+14GEN 100. .010
+BLANK card ending source data
+C The following initial-condition cards were constructed from branch flow
+C output with the source present for a phasor solution. Full precision of
+C the ATP output is being used, note.
+C The following branch flow is for 60 Hz:
+C SEND 100. 100. .14695409358625 .29251652690644 7.3477046793123 2.9354052953678
+C 0.0 0.0 -.2529237293961 -59.8424965 12.646186469807 12.6461865
+C
+C REC 14.563049373597 29.706226229343 -.145630493736 .29706226229343 -4.412299383945
+C -25.89164864838 -60.6439325 .25891648648378 119.3560675 -.152655666E-15
+C The following branch flow is for .01 Hz:
+C GEN 100. 100. .74154511249386 .74160775929634 37.077255624693 9.5784693158927
+C 0.0 0.0 .00963923155659 0.7447371 -.4819615778294 -0.4819616
+C
+C END 74.154085146507 74.16034831202 -.7415408514651 .7416034831202 -27.4987863088
+C .96380384134885 0.7446492 -.0096380384135 -179.2553508 .5416403003E-15
+C
+C The following initial condition cards are built from preceding phasor flow.
+C Name K V-k real V-k imag ----- Node V initial condition is type 2
+ 2SEND 100. 0.0
+ 2GEN 100. 0.0
+ 2REC 14.563049373597-25.89164864838
+ 2END 74.154085146507.96380384134885
+C Distributed: I-k real I-k imag I-m real I-m imag F [Hz]
+ 3SEND REC .14695409358625-.2529237293961 -.145630493736.25891648648378 60.
+ 3GEN END .74154511249386.00963923155659-.7415408514651-.0096380384135 .01
+C Showing 16 steps is more than enough. Without manual initial conditions, the
+C surge arrives at the receiving end on step 8. Above exceeds 2 travel times.
+C Furthermore, above agrees exactly to output that includes a phasor solution.
+ SEND REC GEN END { Node names for node voltage output
+C Step Time SEND REC GEN END
+C 0 0.0 100. 14.56304937 100. 74.15408515
+C 1 .5E-4 99.98223524 15.04761164 100. 74.15408201
+C 2 .1E-3 99.92894726 15.52757104 100. 74.15407898
+C 3 .15E-3 99.84015501 16.00208444 100. 74.15407596
+C 4 .2E-3 99.71589003 16.47092745 99.99999999 74.15407293
+C 5 .25E-3 99.55619646 16.93392289 99.99999999 74.1540699
+C 6 .3E-3 99.36113105 17.39090307 99.99999998 74.15406686
+C 7 .35E-3 99.13076311 17.84170463 99.99999998 74.15406383
+C 8 .4E-3 98.86517447 18.28608879 99.99999997 74.15406078
+C 9 .45E-3 98.56445951 18.72384749 99.99999996 74.1540577
+C 10 .5E-3 98.22872507 19.15499653 99.99999995 74.15405464
+C 11 .55E-3 97.85809043 19.57943512 99.99999994 74.1540516
+C 12 .6E-3 97.45268728 19.99693921 99.99999993 74.15404857
+C 13 .65E-3 97.01265965 20.40734552 99.99999992 74.15404553
+C 14 .7E-3 96.53816388 20.81050376 99.9999999 74.15404249
+C 15 .75E-3 96.02936857 21.20624627 99.99999989 74.15403945
+C 16 .8E-3 95.48645447 21.59436163 99.99999987 74.1540364
+BLANK card ending output requests
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 10th of 10 subcases is like the 1st except that a repeated initial
+C condition has been added to illustrate the new trap for these. Use
+C 1st subcase data prior to 19 July 2009 (see comments in 1st subcase).
+C WSM appends this subcase 1 August 2009.
+ .000050 .002
+ 1 1 0 0 { No need to see connectivity or phasor output
+-1SEND REC .306 5.82 .012 100. { Half the length of original
+-1GEN END .306 5.82 .012 100. { Half the length of original
+ REC 100. 1
+ END 100. 1
+BLANK card terminating branch data
+BLANK card terminating all (in this case, nonexistent) switches
+14SEND 100. 60. { Excitation of (SEND, REC) is transient only
+14GEN 100. 60. { Note phasor presence } -1.
+BLANK card ending source data
+C (SEND, REC) had no phasor solution, initialize it using values of (GEN, END):
+C Name K V-k real V-k imag ----- Node V initial condition is type 2
+ 2SEND 100. 0.0 60.
+ 2REC 19.956813332748-34.69967901024
+C Distributed: I-k real I-k imag I-m real I-m imag
+ 3SEND REC .20753030414706-.3196504046191-.1995681333275.34699679010239
+ 3REC .19956813332748 { Unnecessary, since purely resistive branch
+ 3REC .19956813332748 { This is the duplicate initial condition
+ SEND GEN REC END { List of nodes for node-voltage output
+BLANK card ending node voltage outputs
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn28.dat b/benchmarks/dcn28.dat
new file mode 100644
index 0000000..0478107
--- /dev/null
+++ b/benchmarks/dcn28.dat
@@ -0,0 +1,118 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-28
+C Verify correct operation of all of Laurent Dube's own 78 test cases. Since
+C these date to 1995, and already exist as separate disk files in a separate
+C directory, we will continue to use that storage by means of the following
+C request (a comment card, note) which serves to concatenate one data subcase
+C from each of the $INCLUDE files named.
+C CONCATENATE INCLUDE FILES
+C $PREFIX, [] { $INCLUDE files are located in same place as this main data file
+$PREFIX, \ld\testmodl\ { $INCLUDE files are located in same place as this main data file
+$SUFFIX, .dat { All files used with $INCLUDE end with .dat file type
+C Data file ERRSTP tests the MODELS error stop in the subroutine of this
+C same name. At first, this was placed last, in case recovery would fail
+C because of the recursive CALL MAIN10 that Dube used. But after both
+C Salford and GNU Mingw32 ATP successfully handled 10 such consecutive
+C recoveries in succession, it was decided that this is the way the standard
+C test case would be left:
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 1 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 2 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 3 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 4 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 5 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 6 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 7 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 8 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 9 of 10
+$INCLUDE, ERRSTP , { Number 75 of Laurent Dube's own test cases, 10 of 10
+C Warning. If all the preceding can not be handled by some program version,
+C try deleting 9 of the 10 tries, and restoring the remaining line to the
+C end, where it first had been placed. 23 April 2001. WSM.
+$INCLUDE, TYP94-T1, { Number 1 of Laurent Dube's own test cases
+$INCLUDE, TYP94-T2, { Number 2 of Laurent Dube's own test cases
+$INCLUDE, TYP94-T3, { Number 3 of Laurent Dube's own test cases
+$INCLUDE, TYP94-T4, { Number 4 of Laurent Dube's own test cases
+$INCLUDE, TYP94-T5, { Number 5 of Laurent Dube's own test cases
+$INCLUDE, TYP94-T6, { Number of Laurent Dube's own test cases
+$INCLUDE, TYP94-T7, { Number of Laurent Dube's own test cases
+$INCLUDE, NONEXIST, { Demonstrate rejection of a non-existant file
+$INCLUDE, ARVAL , { Number 6 of Laurent Dube's own test cases
+$INCLUDE, ATAN2 , { Number 7 of Laurent Dube's own test cases
+$INCLUDE, LAP2Z , { Number 8 of Laurent Dube's own test cases
+$INCLUDE, COMB1I , { Number 9 of Laurent Dube's own test cases
+$INCLUDE, TYP94-N1, { Number 10 of Laurent Dube's own test cases
+$INCLUDE, TYP94-N2, { Number 11 of Laurent Dube's own test cases
+$INCLUDE, TYP94-N3, { Number 12 of Laurent Dube's own test cases
+$INCLUDE, TYP94-N4, { Number 13 of Laurent Dube's own test cases
+$INCLUDE, TYP94-N5, { Number 14 of Laurent Dube's own test cases
+$INCLUDE, TYP94-N6, { Number 15 of Laurent Dube's own test cases
+$INCLUDE, TYP94-N7, { Number 16 of Laurent Dube's own test cases
+$INCLUDE, TYP94-N8, { Number of Laurent Dube's own test cases
+$INCLUDE, TYP94-N9, { Number of Laurent Dube's own test cases
+$INCLUDE, COMB1 , { Number 17 of Laurent Dube's own test cases
+$INCLUDE, COMB2 , { Number 18 of Laurent Dube's own test cases
+$INCLUDE, COMB3 , { Number 19 of Laurent Dube's own test cases
+$INCLUDE, COMB4 , { Number 20 of Laurent Dube's own test cases
+$INCLUDE, FOR , { Number 21 of Laurent Dube's own test cases
+$INCLUDE, DO , { Number 22 of Laurent Dube's own test cases
+$INCLUDE, IF , { Number 23 of Laurent Dube's own test cases
+$INCLUDE, TYP94-I1, { Number 24 of Laurent Dube's own test cases
+$INCLUDE, TYP94-I2, { Number 25 of Laurent Dube's own test cases
+$INCLUDE, TYP94-I3, { Number 26 of Laurent Dube's own test cases
+$INCLUDE, TYP94-I4, { Number 27 of Laurent Dube's own test cases
+$INCLUDE, TYP94-I5, { Number 28 of Laurent Dube's own test cases
+$INCLUDE, TYP94-I6, { Number of Laurent Dube's own test cases
+$INCLUDE, TYP94-I7, { Number of Laurent Dube's own test cases
+$INCLUDE, LAP1 , { Number 29 of Laurent Dube's own test cases
+$INCLUDE, LAP2 , { Number 30 of Laurent Dube's own test cases
+$INCLUDE, LAP3 , { Number 31 of Laurent Dube's own test cases
+$INCLUDE, LAP1Z , { Number 32 of Laurent Dube's own test cases
+$INCLUDE, LAPDIF , { Number 33 of Laurent Dube's own test cases
+$INCLUDE, COMM , { Number 34 of Laurent Dube's own test cases
+$INCLUDE, CURRTEST, { Number 35 of Laurent Dube's own test cases
+$INCLUDE, DELAY1 , { Number 36 of Laurent Dube's own test cases
+$INCLUDE, DELAY2 , { Number 37 of Laurent Dube's own test cases
+$INCLUDE, DERIVLIM, { Number 38 of Laurent Dube's own test cases
+$INCLUDE, DLIM , { Number 39 of Laurent Dube's own test cases
+$INCLUDE, DPOL , { Number 40 of Laurent Dube's own test cases
+$INCLUDE, EXPR , { Number 41 of Laurent Dube's own test cases
+$INCLUDE, SINLIM2 , { Number 42 of Laurent Dube's own test cases
+$INCLUDE, FTNFUN , { Number 43 of Laurent Dube's own test cases
+$INCLUDE, FTNMODEL, { Number 44 of Laurent Dube's own test cases
+$INCLUDE, GLOCST , { Number 45 of Laurent Dube's own test cases
+$INCLUDE, ILIM , { Number 46 of Laurent Dube's own test cases
+$INCLUDE, INIVAL , { Number 47 of Laurent Dube's own test cases
+$INCLUDE, INPUTPOL, { Number 48 of Laurent Dube's own test cases
+$INCLUDE, ITERUSE , { Number 49 of Laurent Dube's own test cases
+$INCLUDE, NUMFUN , { Number 50 of Laurent Dube's own test cases
+$INCLUDE, NUMVAL , { Number 51 of Laurent Dube's own test cases
+$INCLUDE, PEAKTEST, { Number 52 of Laurent Dube's own test cases
+$INCLUDE, PTLST1 , { Number 53 of Laurent Dube's own test cases
+$INCLUDE, PTLST2 , { Number 54 of Laurent Dube's own test cases
+$INCLUDE, RANDOM , { Number 55 of Laurent Dube's own test cases
+$INCLUDE, SIMFUN , { Number 56 of Laurent Dube's own test cases
+$INCLUDE, SIMVAR , { Number 57 of Laurent Dube's own test cases
+$INCLUDE, SINLIM , { Number 58 of Laurent Dube's own test cases
+$INCLUDE, STEPMAX , { Number 59 of Laurent Dube's own test cases
+$INCLUDE, STEPMIN , { Number 60 of Laurent Dube's own test cases
+$INCLUDE, SUM , { Number 61 of Laurent Dube's own test cases
+$INCLUDE, SINLIM3 , { Number 62 of Laurent Dube's own test cases
+$INCLUDE, STMTFUN , { Number 63 of Laurent Dube's own test cases
+$INCLUDE, TESTALL , { Number 64 of Laurent Dube's own test cases
+$INCLUDE, TEST_HST, { Number 65 of Laurent Dube's own test cases
+$INCLUDE, TOPVAR , { Number 66 of Laurent Dube's own test cases
+$INCLUDE, WHILE , { Number 67 of Laurent Dube's own test cases
+$INCLUDE, WRITE , { Number 68 of Laurent Dube's own test cases
+$INCLUDE, WRITE1 , { Number 69 of Laurent Dube's own test cases
+$INCLUDE, ATPVAR , { Number 70 of Laurent Dube's own test cases
+$INCLUDE, BOOLFUN , { Number 71 of Laurent Dube's own test cases
+$INCLUDE, CURSW , { Number 72 of Laurent Dube's own test cases
+$INCLUDE, HISTORY , { Number 73 of Laurent Dube's own test cases
+$INCLUDE, PTLSTE , { Number 74 of Laurent Dube's own test cases
+C Following 3 illustrations of user-supplied C language were activated
+C 17 November 2001 following Dr. Tsu-huei Liu's successful linking:
+$INCLUDE, CFUN , { Number 75 of Laurent Dube's own test cases
+$INCLUDE, CMODEL , { Number 76 of Laurent Dube's own test cases
+$INCLUDE, RANDOMC , { Number 77 of Laurent Dube's own test cases
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn29.dat b/benchmarks/dcn29.dat
new file mode 100644
index 0000000..817cb52
--- /dev/null
+++ b/benchmarks/dcn29.dat
@@ -0,0 +1,1376 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCN-29
+C The first 11 subcases were provided by Prof. Aki Ametani on
+C Feb. 28, 2000 for testing of "CABLE PARAMETERS" on 400 KV
+C XLPE cables using IYG to represent the semi-conducting layer.
+C The second 4 subcases were provided by Prof. Aki Ametani in May,
+C 2000 for testing of impedance and admittance calculation for
+C pipe type SC cables using "CABLE PARAMETERS".
+C The last 3 subcases were provided by Prof. Mustafa Kizilcay: each
+C is a case of Pipe type cable with a core semiconducting layer.
+C Prof. Akihiro Ametani had to modify the code of CP to handle data
+C with core admittance only (i.e., no input for sheath admittance).
+C The code changes were sent to BPA on November 21, 2001
+C 1st of 32 subcases of dcn29.dat
+CABLE PARAMETERS
+C P Pt Ze ZC Zs ?? Zt Yt Zph Ti Tv Tot Re Im Mag Ang
+MATRIX OUTPUTS 1 1 1 3 1 1 1 1 1 1 1 1 0 0 1 1
+C 22 December 2003, optional preceding definition of KZFL27(16) is added.
+C This integer vector controls which matrices are to be outputed (to either
+C LUNIT6 or separate disk files, or both), and what coordinates are to be
+C used (e.g., a COMPLEX matrix, a matrix of real parts, a matrix of
+C imaginary parts, a matrix of magnitudes, or a matrix of angles).
+C Index Cols. Symbol Labeling of matrix in the LUNIT6 file
+C ----------------------------------------------------------------------
+C 1 17-20 P Complex potential coefficient
+C 2 21-24 Pt Transposed potential coefficient
+C 3 25-28 Ze Earth impedance ZE, in ohm/m
+C 4 29-32 Zc Conductor internal impedance ZC, in ohm/m
+C 5 33-36 Zs Space impedance ZS, in ohm/m
+C 6 37-40 Presently unused (reserved for later use)
+C 7 41-44 Zt Total impedance [Zc], in ohm/m
+C 8 45-48 Yt Total admittance [Yc], in mho/m
+C 9 49-52 Zph Characteristic impedance matrix [Zc] in phase variables, in [ohm]
+C 10 53-56 Ti The current transformation matrix [Ti] follows. ...
+C 11 57-60 Tv Voltage transformation matrix [Tv]. ...
+C Value 0 requests neither output
+C Value 1 requests output just to LUNIT6
+C Value 2 requests output just to the dedicated disk file
+C Value 3 requests both
+C ----------------------------------------------------------------------
+C 12 61-64 Comp Complex matrix, with each cell a complex pair
+C 13 65-68 Real Only the real part of the complex matrix
+C 14 69-72 Imag Only the imaginary part of the complex matrix
+C 15 73-76 Mag Only the magnitudes of the complex elements
+C 16 77-80 Angle Only the angles in degrees of the complex elements
+C Note: blank cols. 26-30 below is needed to preserve preceding requests.
+C If not blank KZFLAG, MATRIX OUTPUTS requests will be over-written
+C CASE 1 : NPP=0 for Mustafa 400kV XLPE cable
+ 3 0 1 0 1 0 0 0 0 2
+C 1 0 0 1000. .0000 A
+ 1.500 1.800 1.810 .6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 2
+ .0000 .2550E-01 .6050E-01 .6200E-01 .6700E-01
+ .2300E-07 1.000 1.000 2.400 .3300E-07 1.000 1.000 2.400
+ .1000E-11 .0000 .0000 .0000
+ 50.0000 7000.00 1000. 2
+C Conductor internal impedance ZC, in ohm/m
+C 2.19370E-04 2.93876E-05
+C 8.63256E-03 7.78018E-04 Core 1
+C Total impedance [Zc], in ohm/m
+C 2.87787E-04 9.78052E-05
+C 2.63165E-02 1.84620E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-12 -1.00000E-12
+C 6.79707E-06 -6.79707E-06 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 157.8968 123.8861
+C -.745143 -.354381
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 .9988989
+C -.52E-18 -.001736
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 2.98701E-02 190.70 8.18980E-05 7.92568E-03 1.30794E-07 6.71127E-06
+C 2 5.03023E-03 295.43 1.42268E-04 1.84320E-02 7.40114E-11 1.20247E-06
+BLANK CARD ENDING FREQUENCY CARD
+C BLANK CARD ENDING CABLE PARAMETERS
+C BEGIN NEW DATA CASE
+C 2nd of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+C CABLE PARAMETERS
+C 12 January, 2004, note about preceding. Remove exit and re-entry into CP
+C to test stacked data subcases within CP. But we also must be able to read
+C optional request cards (English text) at this point, so add copy of what
+C was used in the preceding subcase. Also, add a BRANCH request:
+C P Pt Ze ZC Zs ?? Zt Yt Zph Ti Tv Tot Re Im Mag Ang
+MATRIX OUTPUTS 1 1 1 3 1 1 1 1 1 1 1 1 0 0 1 1
+BRANCH { No names are needed, since no branch cards are to be punched
+ 3 0 1 0 1 1 0 0 0 0 2
+ 1.500 1.800 1.810 .6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 2
+ .0000 .2550E-01 .6050E-01 .6200E-01 .6700E-01
+ .2300E-07 1.000 1.000 2.400 .3300E-07 1.000 1.000 2.400
+ .1000E-11 .0000 .1000E-14 .0000
+ 50.0000 7000.00
+C Total impedance [Zc], in ohm/m
+C 2.87787E-04 9.78052E-05
+C 2.63165E-02 1.84620E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-12 -1.00000E-12
+C 6.79707E-06 -6.79707E-06 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 157.8968 123.8861
+C -.747624 -.356858
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 .9988992
+C .112E-17 -.001736
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 2.98701E-02 190.70 8.18923E-05 7.92567E-03 1.30799E-07 6.71128E-06
+C 2 4.97646E-03 295.43 1.41869E-04 1.84320E-02 0.00000E+00 1.20247E-06
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 3rd of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+C CASE 2 : NPP=1, NG=1 in CASE 1 gives the same result as CASE 1
+ 3 -1 1 0 1 1 0 1 1 0 2
+ 1.500 1.800 1.810 .6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 2
+ .0000 .2550E-01 .6050E-01 .6200E-01 .6700E-01
+ .2300E-07 1.000 1.000 2.400 .3300E-07 1.000 1.000 2.400
+ .1000E-11 .0000 .0000 .0000
+ .0000 .0000
+ 5.000 .0000
+ 50.0000 7000.00
+C Earth impedance ZE, in ohm/m
+C 6.34866E-03 6.34866E-03 6.34866E-03
+C 3.12516E-02 3.12516E-02 3.12516E-02 Core 1
+C Conductor internal impedance ZC, in ohm/m
+C 2.19370E-04 2.93876E-05 0.00000E+00
+C 8.63256E-03 7.78018E-04 0.00000E+00 Core 1
+C Total impedance [Zc], in ohm/m
+C 2.87787E-04 9.78052E-05
+C 2.63165E-02 1.84620E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-12 -1.00000E-12
+C 6.79707E-06 -6.79707E-06 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 157.8968 123.8861
+C -.745143 -.354381
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 .9988989
+C .667E-18 -.001736
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 2.98701E-02 190.70 8.18980E-05 7.92568E-03 1.30794E-07 6.71127E-06
+C 2 5.03023E-03 295.43 1.42268E-04 1.84320E-02 7.40114E-11 1.20247E-06
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 4th of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+C CASE 3 : G for sheath and pipe added to CASE 2, no difference
+ 3 -1 1 0 1 1 0 1 1 0 2
+ 1.500 1.800 1.810 .6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 2
+ .0000 .2550E-01 .6050E-01 .6200E-01 .6700E-01
+ .2300E-07 1.000 1.000 2.400 .3300E-07 1.000 1.000 2.400
+ .1000E-11 .0000 .1000E-14 .0000
+ .1000E-09 .0000
+ 5.000 .0000
+ 50.0000 7000.00
+C Total impedance [Zc], in ohm/m
+C 2.87787E-04 9.78052E-05
+C 2.63165E-02 1.84620E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-12 -1.00000E-12
+C 6.79707E-06 -6.79707E-06 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 157.8968 123.8861
+C -.747624 -.356858
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 .9988992
+C .869E-18 -.001736
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m) Charact. imp. (Ohm) Charact. Admit. (S)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag. Real Imag. Real Imag.
+C 1 2.98701E-02 190.70 8.18923E-05 7.92567E-03 1.30799E-07 6.71128E-06 34.362 .157 2.91011E-02 -1.33208E-04
+C 2 4.97646E-03 295.43 1.41869E-04 1.84320E-02 0.00000E+00 1.20247E-06 123.809 -.476 8.07684E-03 3.10829E-05
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 5th of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+C CASE 4 : NG=0 in CASE 3, modes 2 and 3 same as modes1 and 2 in CASE 3
+ 3 -1 1 0 1 1 0 1 0 0 2
+ 1.500 1.800 1.810 .6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 2
+ .0000 .2550E-01 .6050E-01 .6200E-01 .6700E-01
+ .2300E-07 1.000 1.000 2.400 .3300E-07 1.000 1.000 2.400
+ .1000E-11 .0000 .1000E-14 .0000
+ .1000E-09 .0000
+ 5.000 .0000
+ 50.0000 7000.00
+C Total impedance [Zc], in ohm/m
+C 6.64784E-03 6.45786E-03 6.36006E-03
+C 5.76283E-02 4.97737E-02 3.13118E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-12 -1.00000E-12 -7.82293E-29
+C 6.79707E-06 -6.79707E-06 0.00000E+00 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 166.3597 132.349 8.462883
+C -1.59843 -1.20766 -.850804
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 1.0 .9988992
+C -.33E-16 .485E-18 -.001736
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 3.26383E+00 11.77 6.36006E-03 3.13118E-02 1.00000E-10 4.41654E-04
+C 2 2.98701E-02 190.70 8.18923E-05 7.92567E-03 1.30799E-07 6.71128E-06
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 6th of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+C CASE 4' : SC cable (pipe deleted in CASE 4), same mode 2 (coaxial mode)
+ 2 -1 1 0 1 1 0 0 0 0 2
+ 2
+ .0000 .2550E-01 .6050E-01 .6200E-01 .6700E-01
+ .2300E-07 1.000 1.000 2.400 .3300E-07 1.000 1.000 2.400
+ .1000E-11 .0000 .1000E-14 .0000
+ 5.000 .0000
+ 50.0000 7000.00
+C Total impedance [Zc], in ohm/m
+C 6.59922E-03 6.40924E-03
+C 6.88745E-02 6.10200E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-12 -1.00000E-12
+C 6.79707E-06 -6.79707E-06 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 62.37636 28.43276
+C -1.96318 -1.48045
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.000423 1.0
+C .7666E-3 0.0
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 9.86029E-01 20.44 6.45273E-03 6.09895E-02 0.00000E+00 7.57164E-05
+C 2 2.98882E-02 190.70 2.33501E-04 7.82353E-03 0.00000E+00 6.79758E-06
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 7th of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+C CASE 4'' : Armor added to CASE 4', modes 1 and 3 nearly same as modes 1 and 2 inCASE 4'
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+ 2 -1 1 0 1 1 0 0 0 0 2
+ 3
+ .0000 .2550E-01 .6050E-01 .6200E-01 .6700E-01 .6800E-01 .7300E-01
+ .2300E-07 1.000 1.000 2.400 .3300E-07 1.000 1.000 2.400
+ .3300E-07 1.000 1.000 2.400
+ .1000E-11 .0000 .1000E-14 .0000 .1000E-09 .0000
+ 5.000 .0000
+ 50.0000 7000.00
+C Earth impedance ZE, in ohm/m
+C 6.37984E-03 6.37984E-03 6.37984E-03
+C 5.94875E-02 5.94875E-02 5.94875E-02 Core 1
+C Conductor internal impedance ZC, in ohm/m
+C 2.37056E-04 4.70742E-05 8.80821E-06
+C 9.38405E-03 1.52950E-03 6.87487E-04 Core 1
+C Total impedance [Zc], in ohm/m
+C 6.61689E-03 6.42691E-03 6.38864E-03
+C 6.88716E-02 6.10170E-02 6.01750E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-12 -1.00000E-12 -7.82293E-29
+C 6.79707E-06 -6.79707E-06 -2.52554E-21 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 64.41276 30.36306 27.00465
+C -.353587 -1.59075 -1.41604
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.000218 .8744759 1.0
+C .0012639 .3076899 0.0
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 1.03955E+00 19.68 6.46233E-03 6.01540E-02 5.81320E-11 8.27664E-05
+C 2 2.07711E-01 179.08 1.52485E-04 7.95151E-04 3.49904E-07 7.52099E-05
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 8th of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+C CASE 5 : Sheath deleted in CASE 4, same mode 1
+ 3 -1 1 1 1 0 0 1 0 0 2
+ 1.500 1.800 1.810 .6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 1
+ .0000 .2550E-01 .6050E-01
+ .2300E-07 1.000 1.000 2.400
+ .1000E-11 .0000
+ .1000E-09 .0000
+ 5.000 .0000
+ 50.0000 7000.00
+C Total impedance [Zc], in ohm/m
+C 6.58868E-03 6.36006E-03
+C 5.76505E-02 3.13118E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-12 -1.00000E-12
+C 9.92816E-07 -9.92816E-07 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 171.3428 8.462883
+C -1.55761 -.850804
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 1.0
+C -.15E-16 0.0
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 3.26383E+00 11.77 6.36006E-03 3.13118E-02 1.00000E-10 4.41654E-04
+C 2 6.09657E-03 271.98 2.28622E-04 2.63388E-02 1.00000E-12 9.92816E-07
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 9th of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+ 2 1 1 1 1 0 0 0 0 0 2 0
+ 2
+ .8000E-02 .1000E-01 .2700E-01 .3000E-01 .3100E-01
+ .3000E-07 1.000 1.000 1.063 .3000E-07 1.000 1.000 1.100
+ .1000E-14 .0000 .5000E-04 .0000
+ .9000 .0000
+ .100000E-07 .100000E+08
+C Total impedance [Zc], in ohm/m
+C 2.96434E-02 5.88727E-03
+C 6.39622E+01 5.14569E+01 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-15 -1.00000E-15
+C 3.74095E-03 -3.74095E-03 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 302.9185 245.1014
+C 7.097006 7.151923
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 1.0
+C 0.0 -.97E-15
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 1.78445E+00 290.50 2.37561E-02 1.25053E+01 0.00000E+00 3.74095E-03
+C 2 5.33727E+01 299.54 5.88727E-03 5.14569E+01 5.00000E-05 8.54359E-04
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 10th of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+C Sheath deleted from the previous case
+ 2 1 1 0 1 1 0 0 0 0 2
+ 1
+ .8000E-02 .1000E-01 .2700E-01
+ .3000E-07 1.000 1.000 1.063
+ .1000E-14 .0000
+ .9000 .0000
+ .100000E-07 .100000E+08
+C Total impedance [Zc], in ohm/m
+C 1.74555E-02
+C 6.52741E+01 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-15
+C 6.80840E-04 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 309.6335
+C -.041401
+C ..The transpose of this is the inverse of the voltage transformation matrix.
+C 1.0
+C 0.0
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0
+C 0.0
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 2.44832E-01 298.05 1.74555E-02 6.52741E+01 0.00000E+00 6.80840E-04
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 11th of 32 subcases of dcn29.dat
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+ 2 1 1 0 1 1 0 0 0 0 1
+C 1 0 0 2.000 .0000 A
+ 2
+ .8000E-02 .1000E-01 .2700E-01 .3000E-01 .3100E-01
+ .3000E-07 1.000 1.000 1.063 .3000E-07 1.000 1.000 1.100
+ .0000 .1000E-14 .0000 .5500E-10
+ .9000 .0000
+ .100000E-07 .100000E+08 2.0 2
+C Total impedance [Zc], in ohm/m
+C 2.96434E-02 5.88727E-03
+C 6.39622E+01 5.14569E+01 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00
+C 3.74102E-03 -3.74102E-03 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 167.0808 109.2642
+C -.061167 -.006251
+C ... The transpose of this is the inverse of the voltage transformation matrix.
+C 0.0 1.0
+C 0.0 -.67E-17
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 1.0
+C -.13E-18 0.0
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 2.34002E-01 133.42 5.88727E-03 5.14569E+01 0.00000E+00 4.31011E-03
+C 2 1.78446E+00 290.49 2.37561E-02 1.25053E+01 0.00000E+00 3.74102E-03
+BLANK CARD ENDING FREQUENCY CARD
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 12th of 32 subcases of dcn29.dat
+C 1st of four new test cases provided by Prof. Aki Ametani in May, 2000
+C for testing of Z and Y calculation for pipe type SC cables.
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+CABLE PARAMETERS
+C 3 0 1 0 0 0 0 0 0 0 0 0
+C KMODE --- 18 October 2002, Tsu-huei Liu activates modal out
+ 3 0 1 0 1 0 0 0 0 0 0 0
+C Note about KMODE. DC-27 and 28 were changed comparably.
+ 1.500 1.510 1.800 .6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 3
+ .0000 .2550E-01 .2650E-01 .2850E-01 .6050E-01 .6200E-01 .6700E-01
+ .2300E-07 1.000 1.000 2.400 .5000E-04 1.000 1.000 2.400
+ .3300E-07 1.000 1.000 2.400
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 2.87997E-04 1.27681E-04 9.78052E-05
+C 2.63165E-02 2.54931E-02 1.84620E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00
+C 1.52664E-04 -1.52664E-04 0.00000E+00 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 156.4303 154.7627 123.884
+C -.73725 -.757094 -.362581
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C -.00105 .9999578 .9990462
+C -.00305 .0091876 -.001508
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 2.95420E+01 12.87 1.44544E-01 6.53992E-04 0.00000E+00 1.60785E-04
+C 2 3.14054E-02 182.51 2.37593E-04 7.91624E-03 0.00000E+00 7.33482E-06
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 13th of 32 subcases of dcn29.dat
+C 2nd of four new test cases provided by Prof. Aki Ametani in May, 2000
+C for testing of Z and Y calculation for pipe type SC cables.
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+CABLE PARAMETERS
+C 3 -1 1 0 0 1 1 0 0 0 0 0
+ 3 -1 1 0 1 1 1 0 0 0 0 0
+ 1.500 1.650 1.780 .2000E-02 1.000 1.000 1.000
+ 1.145 -30.15
+ 3
+ .0000 .2000E-01 .4200E-01 .4403E-01 .4503E-01 .4583E-01 .4983E-01
+ .3746E-07 1.000 1.000 2.500 .2803E-07 1.000 1.000 2.500
+ .7265E-06 1.000 1.000 8.000
+ 100.000 50.0000 0 0 0
+C Conductor internal impedance ZC, in ohm/m
+C 3.23928E-05 4.62469E-09 0.00000E+00
+C 7.23915E-05 9.23450E-06 5.80721E-06 Core 1
+C Total impedance [Zc], in ohm/m
+C 6.88851E-05 3.64969E-05 3.64923E-05
+C 3.34994E-04 2.71837E-04 2.68410E-04 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00
+C 5.88913E-08 -5.88913E-08 -2.50068E-22 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 233.0843 199.6486 198.9199
+C -22.5078 -16.4384 -16.401
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C .4278E-4 -.688049 .9999471
+C -.772E-3 -.38441 -.01029
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 4.87705E-01 5.59 3.13169E-03 2.65190E-06 0.00000E+00 2.01513E-06
+C 2 9.92211E-03 141.71 3.17026E-05 2.25959E-05 0.00000E+00 1.59766E-07
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 14th of 32 subcases of dcn29.dat
+C 3rd of four new test cases provided by Prof. Aki Ametani in May, 2000
+C for testing of Z and Y calculation for pipe type SC cables.
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+CABLE PARAMETERS
+C 3 0 2 0 0 0 0 0 0 0 0 0
+ 3 0 2 0 1 0 0 0 0 0 0 0
+ 1.500 1.510 1.800 .6000E-06 1.000 1.000 1.000
+ 1.227 209.3 1.470 85.00
+ 3 1
+ .0000 .2550E-01 .2650E-01 .2850E-01 .6050E-01 .6200E-01 .6700E-01
+ .2300E-07 1.000 1.000 2.400 .5000E-04 1.000 1.000 2.400
+ .3300E-07 1.000 1.000 2.400
+ .0000 .1010E-01 .1020E-01
+ .2400E-07 1.000 1.000 1.000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 2.87997E-04 1.94860E-06 1.27681E-04 9.78052E-05
+C 2.63165E-02 2.46787E-05 2.54931E-02 1.84620E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 1.52664E-04 -1.42472E-23 -1.52664E-04 -6.28731E-22 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 156.4303 .1616253 154.7627 123.884
+C -.73725 -.006732 -.757093 -.362581
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C -.00105 .9999578 -.296E-3 .9990462
+C -.00305 .0091876 .6651E-3 -.001507
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 2.95420E+01 12.87 1.44544E-01 6.53992E-04 0.00000E+00 1.60785E-04
+C 2 3.14054E-02 182.51 2.37593E-04 7.91624E-03 0.00000E+00 7.33482E-06
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 15th of 32 subcases of dcn29.dat
+C 4th of four new test cases provided by Prof. Aki Ametani in May, 2000
+C for testing of Z and Y calculation for pipe type SC cables.
+C Results of this case changed on March 2, 2001 after implementing the
+C correction that Prof. Ametani made on February 17, 2001.
+C This correction only affects cables having 3 layers of conductors: core,
+C sheath and armor.
+CABLE PARAMETERS
+C 3 -1 1 0 0 1 1 1 0 0 0 0
+ 3 -1 1 0 1 1 1 1 0 0 0 0
+ 1.500 1.650 1.780 .2000E-02 1.000 1.000 1.000
+ 1.145 -30.15
+ 3
+ .0000 .2000E-01 .4200E-01 .4403E-01 .4503E-01 .4583E-01 .4983E-01
+ .3746E-07 1.000 1.000 2.500 .2803E-07 1.000 1.000 2.500
+ .7265E-06 1.000 1.000 8.000
+ 40.00 .0000
+ 100.000 50.0000 0 0 0
+C Earth impedance ZE, in ohm/m
+C 4.64557E-05 4.64557E-05 4.64557E-05 4.64557E-05
+C 3.97608E-04 3.97608E-04 3.97608E-04 3.97608E-04 Core 1
+C Conductor internal impedance ZC, in ohm/m
+C 3.23928E-05 4.62469E-09 0.00000E+00 0.00000E+00
+C 7.23915E-05 9.23450E-06 5.80721E-06 0.00000E+00 Core 1
+C Total impedance [Zc], in ohm/m
+C 8.46452E-05 5.22570E-05 5.22524E-05 4.64567E-05
+C 6.90129E-04 6.26972E-04 6.23545E-04 4.05272E-04 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 5.88913E-08 -5.88913E-08 0.00000E+00 -5.49524E-26 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 329.9094 295.7853 294.8116 25.57555
+C -39.8168 -32.0912 -31.97 8.072659
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C .6929E-5 .0989196 -.286086 1.0
+C -.849E-3 .2522515 .0341845 -.711E-4
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 4.87706E-01 5.59 3.13145E-03 2.65107E-06 0.00000E+00 2.01530E-06
+C 2 9.73010E-02 21.36 1.39867E-03 3.85548E-04 0.00000E+00 2.35598E-07
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+C 16th of 32 subcases of dcn29.dat
+C The 1st of 3 subcases provided by Prof. Mustafa Kizilcay: each
+C is a case of Pipe type cable with a core semiconducting layer.
+C Different IYG options are used in representing the distributed
+C admittance for the core and sheath.
+C This subcase uses input option of IYG =1, i.e., capacitance
+CABLE PARAMETERS
+ 3 0 1 0 0 0 0 1 0
+ 1.5 1.8 1.51 6.E-7 1. 1. 1.
+ 1.2267 209.3
+ 2
+ 0.0 0.0255 0.0605 0.062 0.067
+ 2.3E-8 1. 1. 2.4 3.3E-8 1. 1. 2.4
+ 0.0 1.E-9
+ 50. 7.E3
+C Total impedance [Zc], in ohm/m
+C 2.87707E-04 9.77249E-05
+C 2.63251E-02 1.84706E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00
+C 5.07794E-05 -5.07794E-05 Core 1
+BLANK CARD ENDING FREQUENCY CARDS
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 17th of 32 subcases of dcn29.dat
+C The 2nd of 3 subcases provided by Prof. Mustafa Kizilcay: each
+C is a case of Pipe type cable with a core semiconducting layer.
+C This subcase uses input option of IYG =2, i.e., conductance
+CABLE PARAMETERS
+C 3 0 1 0 0 0 2 0
+ 3 0 1 1 0 0 0 0 2 0
+ 1.5 1.8 1.51 6.E-7 1. 1. 1.
+ 1.2267 209.3
+ 2
+ 0.0 0.0255 0.0605 0.062 0.067
+ 2.3E-8 1. 1. 2.4 3.3E-8 1. 1. 2.4
+ .1E-07 0.
+ 50. 7.E3
+C Total impedance [Zc], in ohm/m
+C 2.87707E-04 9.77249E-05
+C 2.63251E-02 1.84706E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-08 -1.00000E-08
+C 6.79707E-06 -6.79707E-06 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 157.956 123.9451
+C -.719843 -.354075
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 .9989039
+C .165E-18 -.001738
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 3.13436E-02 190.70 8.17996E-05 7.92551E-03 1.40752E-07 6.71122E-06
+C 2 5.02506E-03 295.43 1.42186E-04 1.84406E-02 7.40835E-11 1.20188E-06
+BLANK CARD ENDING FREQUENCY CARDS
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 18th of 32 subcases of dcn29.dat
+C The 3rd of 3 subcases provided by Prof. Mustafa Kizilcay: each
+C is a case of Pipe type cable with a core semiconducting layer.
+C This subcase uses input option of IYG =3, i.e., capacitance and
+C conductance
+CABLE PARAMETERS
+C 3 0 1 0 0 0 3 0
+ 3 0 1 1 0 0 0 0 3 0
+ 1.5 1.8 1.51 6.E-7 1. 1. 1.
+ 1.2267 209.3
+ 2
+ 0.0 0.0255 0.0605 0.062 0.067
+ 2.3E-8 1. 1. 2.4 3.3E-8 1. 1. 2.4
+ .1E-09 .1E-8
+ 50. 7.E3
+C Total impedance [Zc], in ohm/m
+C 2.87707E-04 9.77249E-05
+C 2.63251E-02 1.84706E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-10 -1.00000E-10
+C 5.07794E-05 -5.07794E-05 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 134.1509 121.6984
+C -.534633 -.405567
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 .9999033
+C .106E-19 -.148E-3
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 8.16801E-02 69.77 1.40691E-04 7.88844E-03 6.04510E-07 5.03760E-05
+C 2 5.10661E-03 290.17 1.41595E-04 1.84403E-02 9.85486E-11 1.24588E-06
+BLANK CARD ENDING FREQUENCY CARDS
+BLANK CARD ENDING CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 19th of 32 subcases of dcn29.dat
+C From Steve Nurse of British Short-Circuit Testing Station Limited
+C in Hebburn, Tyne & Wear, UK. This data was mentioned in EEUG list
+C server mail dated 15 October 2003. Add it here October 28th.
+C The problem has been solved as this data demonstrates. Mr. Nurse
+C had complained: "The PI model gave almost exactly the R and X
+C values supplied by the manufacturer for both sheath earthing conditions.
+C However, the distributed parameter model gave an inductive reactance
+C value about 55% greater than the PI model!" No longer.
+C 3 SEPARATE CABLES,EACH CABLE SCREENED; 150sqmm, SOLID ALUMINUIM, SINGLE CORE,
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+C <BUS1><BUS1><BUS1><BUS1><BUS1><BUS1><BUS1><BUS1><BUS1><BUS1><BUS1><BUS1>
+BRANCH C1PHSRC2PHSRC1PHSYC2PHSYC1PHSBC2PHSBC1SCNRC2SCNRC1SCNYC2SCNYC1SCNBC2SCNB
+$ERASE
+C ITPISYST<NPC>IEARTKMODEIZFLAIYFLA<NPP>NGRNDIDATA<IYG>
+ 2 -1 3 1 0 3 0 0
+C NCP<NCP2<NCP3<NCP3
+ 2 2 2
+C **** CABLE CONDUCTOR RADII ****
+C --R1---><---R2---><---R3---><---R4---><---R5---><---R6---><---R7--->
+ 0.0 6.5E-3 1.2619E-2 1.275E-2 1.485E-2
+C **** CABLE PERMEABILITY & PERMITTIVITY ****
+C --pc---><---uc---><--uil---><--Eil---><---ps---><---us---><--ui2---><--Ei2--->
+ 2.73E-8 1.0 1.0 3.92 1.7E-8 1.0 1.0 2.5
+C **** CABLE ARMOUR DATA : ONLY REQURED IF ARMOUR IS INCLUDED ****
+ 0.0 6.5E-3 1.2619E-2 1.275E-2 1.485E-2
+ 2.73E-8 1.0 1.0 3.92 1.7E-8 1.0 1.0 2.5
+ 0.0 6.5E-3 1.2619E-2 1.275E-2 1.485E-2
+ 2.73E-8 1.0 1.0 3.92 1.7E-8 1.0 1.0 2.5
+C -VERT--><-HORIZ--><--VERT--><-HORIZ--><--VERT--><-HORIZ--><--VERT--><-HORIZ-->
+ 1.035 0.015 1.035 0.045 1.009 0.030
+C ----ROE-----><------FREQ--->IDEC>IPNT><-DIST-><-IPUNCH->
+ 100. 50. 1.0 2
+C Total impedance [Zc], in ohm/m
+C 5.31157E-04 3.23297E-04 3.23290E-04
+C 3.40759E-04 2.28987E-04 2.28958E-04 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00
+C 1.03273E-07 0.00000E+00 0.00000E+00 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 61.9281 20.89422 20.89167
+C -34.676 -10.151 -10.1519
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 -.49999 1.0
+C .1257E-5 .1257E-5 .12E-15
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m) Charact. imp. (Ohm) Charact. Admit. (S)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag. Real Imag. Real Imag.
+C 1 4.93171E-02 29.33 3.92585E-04 2.66236E-04 0.00000E+00 3.09816E-07 34.572 -18.327 2.25802E-02 1.19698E-02
+C 2 2.19975E-02 74.13 1.38577E-04 7.45471E-05 0.00000E+00 1.54908E-07 27.359 -16.349 2.69334E-02 1.60945E-02
+ 100. 50. 1.0 1
+BLANK card ending frequency cards
+$PUNCH
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C CABLE PARAMETERS
+C BRANCH C1PHSRC2PHSRC1PHSYC2PHSYC1PHSBC2PHSBC1SCNRC2SCNRC1SCNYC2SCNYC1SCNBC2SC
+C $ERASE
+C 2 -1 3 1 0 3 0 0
+C 2 2 2
+C 0.0 6.5E-3 1.2619E-2 1.275E-2 1.485E-2
+C 2.73E-8 1.0 1.0 3.92 1.7E-8 1.0 1.0 2.5
+C 0.0 6.5E-3 1.2619E-2 1.275E-2 1.485E-2
+C 2.73E-8 1.0 1.0 3.92 1.7E-8 1.0 1.0 2.5
+C 0.0 6.5E-3 1.2619E-2 1.275E-2 1.485E-2
+C 2.73E-8 1.0 1.0 3.92 1.7E-8 1.0 1.0 2.5
+C 1.035 0.015 1.035 0.045 1.009 0.030
+C 100. 50. 1.0 2
+C $VINTAGE, 1
+C Branch cards for constant-parameter distributed:
+C -1C1PHSRC2PHSR 3.92585E-04 2.93145E+01 2.93310E+07-1.00000E+00 1 3
+C -2C1PHSYC2PHSY 1.38577E-04 2.19371E+01 7.41268E+07-1.00000E+00 1 3
+C -3C1PHSBC2PHSB 1.03930E-04 1.64492E+01 7.41343E+07-1.00000E+00 1 3
+C .33333777 -.33333112 .50000000
+C .00000042 .00000084 .00000000
+C .33333777 -.33333112 -.50000000
+C .00000042 .00000084 .00000000
+C .33333112 .66667553 .00000000
+C -.00000084 .00000084 .00000000
+C $VINTAGE, -1,
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C 100. 50. 1.0 1
+C $UNITS, 0.0, 0.0
+C $VINTAGE, 1
+C Pi-equivalent model with length = 1.0000E+00 (meter)
+C 1C1PHSRC2PHSR 5.31156894E-04 1.08467088E-03 3.28729088E-04
+C 2C1PHSYC2PHSY 3.23297149E-04 7.28887046E-04 0.00000000E+00
+C 5.31156894E-04 1.08467088E-03 3.28729088E-04
+C 3C1PHSBC2PHSB 3.23290019E-04 7.28794841E-04 0.00000000E+00
+C 3.23290019E-04 7.28794841E-04 0.00000000E+00
+C 5.31147266E-04 1.08470783E-03 3.28729088E-04
+C $VINTAGE, -1,
+C $UNITS, -1., -1.,
+C =========< End of LUNIT7 punched cards as flushed by $PUNCH request >=======
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 20th of 32 subcases of dcn29.dat
+C From Andrea Mansoldo of Pirelli Cavi e Sistemi in Italy. This data
+C is added 28 October 2003 following correction of NEWCBL.SPL
+$ERASE
+C CABLE CONSTANTS -- Remove this extra request, which is old & no longer needed
+CABLE PARAMETERS
+BRANCH PIC111PIC112PIC121PIC122PIC131PIC132ABC151ABC152ABC161ABC162ABC171ABC172
+BRANCH PIS111PIS112PIS121PIS122PIS131PIS132ABS151ABS152ABS161ABS162ABS171ABS172
+BRANCH PIE141PIE142ABE161ABE162PIP111PIP112
+C
+C 4 kilohertz, PI-EQ 2067 metri
+C 1 2 3 4 5 6 7
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+ 3 -1 8 0 2 2 1 0 0 3
+C Begin pipe parameter card
+ 1.2 1.45 1.551.50000E-7 100. 1. 1.
+C Begin cross section location cards
+ .725 180. .725 142. .725 218. .725 0
+ .725 38. .725 322. 1.16 239. 1.16 301.
+C Begin card indicating number of conductors
+ 2 2 2 2 2 2 1 1
+C Begin geometrical & physical data cards
+ .004 .0317 .06395 .06525 .07085
+2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2.5
+ 1.E-6 1.E-8 1.E-6 1.E-8
+ .004 .0317 .06395 .06525 .07085
+2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2.5
+ 1.E-6 1.E-8 1.E-6 1.E-8
+ .004 .0317 .06395 .06525 .07085
+2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2.5
+ 1.E-6 1.E-8 1.E-6 1.E-8
+ .004 .0317 .06395 .06525 .07085
+2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2.5
+ 1.E-6 1.E-8 1.E-6 1.E-8
+ .004 .0317 .06395 .06525 .07085
+2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2.5
+ 1.E-6 1.E-8 1.E-6 1.E-8
+ .004 .0317 .06395 .06525 .07085
+2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2.5
+ 1.E-6 1.E-8 1.E-6 1.E-8
+ 0. .0065 .0085
+2.38900E-8 1. 1. 2.2
+ 10.E-3 1.E-8
+ 0. .0065 .0085
+2.38900E-8 1. 1. 2.2
+ 10.E-3 1.E-8
+C
+c pipe
+ 2.E-3 1.E-8
+C conductances from core to sheath (low)
+C
+C 1 2 3 4 5 6 7
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+c
+C Pipe location card
+ 3.325
+C Begin frequency & earth resistivty cards
+ 100. 50. 825. 1
+C Earth impedance ZE, in ohm/m
+C 4.89784E-05 4.89784E-05 4.89784E-05 4.89784E-05 4.89784E-05 4.89784E-05 ..
+C 4.02440E-04 4.02440E-04 4.02440E-04 4.02440E-04 4.02440E-04 4.02440E-04 ..
+C Conductor internal impedance ZC, in ohm/m
+C 1.38786E-05 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 ..
+C 6.18566E-05 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 ..
+C Total impedance [Zc], in ohm/m
+C 8.19882E-05 6.54811E-05 6.54811E-05 5.89287E-05 5.92396E-05 5.92396E-05 ..
+C 6.38810E-04 4.64085E-04 4.64085E-04 4.23660E-04 4.24767E-04 4.24767E-04 ..
+C Total admittance [Yc], in mho/m
+C 1.00000E-06 4.01383E-26 -2.20019E-26 3.65290E-26 -7.67948E-27 -3.09459E-26 ..
+C 3.21237E-06 -7.81241E-23 -7.17333E-23 -1.33579E-22 -7.16710E-23 -8.17287E-23 ..
+BLANK CARD ending frequency card
+$PUNCH
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C CABLE PARAMETERS
+C BRANCH PIC111PIC112PIC121PIC122PIC131PIC132ABC151ABC152ABC161ABC162ABC171ABC1
+C BRANCH PIS111PIS112PIS121PIS122PIS131PIS132ABS151ABS152ABS161ABS162ABS171ABS1
+C BRANCH PIE141PIE142ABE161ABE162PIP111PIP112
+C 3 -1 8 0 2 2 1 0 0 3
+C 1.2 1.45 1.551.50000E-7 100. 1. 1.
+C .725 180. .725 142. .725 218. .725
+C .725 38. .725 322. 1.16 239. 1.16 30
+C 2 2 2 2 2 2 1 1
+C .004 .0317 .06395 .06525 .07085
+C 2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2
+C 1.E-6 1.E-8 1.E-6 1.E-8
+C .004 .0317 .06395 .06525 .07085
+C 2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2
+C 1.E-6 1.E-8 1.E-6 1.E-8
+C .004 .0317 .06395 .06525 .07085
+C 2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2
+C 1.E-6 1.E-8 1.E-6 1.E-8
+C .004 .0317 .06395 .06525 .07085
+C 2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2
+C 1.E-6 1.E-8 1.E-6 1.E-8
+C .004 .0317 .06395 .06525 .07085
+C 2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2
+C 1.E-6 1.E-8 1.E-6 1.E-8
+C .004 .0317 .06395 .06525 .07085
+C 2.73600E-8 1. 1. 2.8421.25600E-7 1. 1. 2
+C 1.E-6 1.E-8 1.E-6 1.E-8
+C 0. .0065 .0085
+C 2.38900E-8 1. 1. 2.2
+C 10.E-3 1.E-8
+C 0. .0065 .0085
+C 2.38900E-8 1. 1. 2.2
+C 10.E-3 1.E-8
+C 2.E-3 1.E-8
+C 3.325
+C 100. 50. 825. 1
+C $UNITS, 0.0, 0.0
+C $VINTAGE, 1
+C Pi-equivalent model with length = 8.2500E+02 (meter)
+C 1PIC111PIC112 6.76402865E-02 1.67755129E+00 8.43586710E+00
+C 2PIC121PIC122 5.40219112E-02 1.21871468E+00 -2.05158250E-16
+C 6.76402865E-02 1.67755129E+00 8.43586710E+00
+C 3PIC131PIC132 5.40219112E-02 1.21871468E+00 -1.88375719E-16
+C 5.10964825E-02 1.14611087E+00 5.34047879E-18
+C 6.76402865E-02 1.67755129E+00 8.43586710E+00
+C ...............
+C 15PIP111PIP112 4.53392266E-02 1.08351780E+00 -4.08654688E-15
+C 4.53392266E-02 1.08351780E+00 -1.39520765E-15
+C 4.53392266E-02 1.08351780E+00 1.90309156E-15
+C ...................
+C 4.53392266E-02 1.08351780E+00 7.50414939E+01
+C $VINTAGE, -1,
+C $UNITS, -1., -1.,
+C =========< End of LUNIT7 punched cards as flushed by $PUNCH request >=======
+BLANK CARD ending CABLE PARAMETERS
+BEGIN NEW DATA CASE
+C 21st of 32 subcases of dcn29.dat
+C 1st of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 11-0********************
+C 1 PROGRAM CP7-2000.5 : CABLE PARAMETERS MODE-2 BY A.AMETANI
+C ACCURATE FORMULAS VERSION (INDEPENDENT CABLE CONSTANTS)
+C Case 11-0 ; PT cable with one SC cable of core/sheath; IYG=0
+ 3 -1 1 0 1 1 0 1 0 0 0 0
+1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+1.227 209.3
+ 2
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 6.64784E-03 6.45786E-03 6.36006E-03
+C 5.76283E-02 4.97737E-02 3.13118E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00
+C 6.79707E-06 -6.79707E-06 0.00000E+00 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 166.3596 132.349 8.462883
+C -1.6011 -1.21034 -.850805
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phase variables: v-phase = [Tv] * v-mode
+C 1.0 .9999525 .9988992
+C -.59E-16 .0097432 -.001747
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 3.26383E+00 11.77 6.36006E-03 3.13118E-02 0.00000E+00 4.41654E-04
+C 2 2.98699E-02 190.70 2.36313E-04 7.92257E-03 0.00000E+00 6.71255E-06
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 22nd of 32 subcases of dcn29.dat
+C 2nd of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 11-1********************
+C Case 11-1; PT cable with one SC cable of core/sheath; IYG=3
+ 3 -1 1 0 1 1 0 1 0 0 3 0
+1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+1.227 209.3
+ 2
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.1500E-040.1000E-080.5000E-050.1000E-10
+0.2500E-040.1000E-09
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 6.64784E-03 6.45786E-03 6.36006E-03
+C 5.76283E-02 4.97737E-02 3.13118E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.50000E-05 -1.50000E-05 1.22836E-22
+C 5.07794E-05 -5.07794E-05 -6.16963E-22 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 68.59313 56.51818 8.434837
+C 35.58395 33.96906 -.610079
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 1.0 .9992509
+C .67E-16 .359E-18 .146E-3
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 4.19527E+00 11.74 6.36006E-03 3.13118E-02 2.50000E-05 4.46053E-04
+C 2 8.82755E-01 69.19 1.51619E-04 7.91257E-03 1.53712E-05 5.00638E-05
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 23rd of 32 subcases of dcn29.dat
+C 3rd of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 12-0********************
+C Case 12-0; PT cable with one SC cable of core/sheath/armor; IYG=0
+ 3 -1 1 0 1 1 0 1 0 0 0 0
+ 1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 3
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Earth impedance ZE, in ohm/m
+C 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03
+C 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 Core 1
+C Conductor internal impedance ZC, in ohm/m
+C 3.26963E-04 1.36981E-04 5.33464E-05 0.00000E+00
+C 9.38963E-03 1.53508E-03 6.85403E-04 0.00000E+00 Core 1
+C Total impedance [Zc], in ohm/m
+C 6.75544E-03 6.56546E-03 6.48182E-03 6.36006E-03
+C 5.75112E-02 4.96567E-02 4.88070E-02 3.13118E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 6.79707E-06 -6.79707E-06 -3.01702E-20 0.00000E+00 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 163.1724 129.181 125.815 8.462883
+C -1.8345 -1.4196 -1.25847 -.850805
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 .9287082 .9995322 .9995617
+C -.11E-13 .3563902 -.030584 -.644E-4
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 3.26383E+00 11.77 6.36006E-03 3.13118E-02 0.00000E+00 4.41654E-04
+C 2 1.68391E-01 177.84 1.35154E-04 8.56765E-04 0.00000E+00 7.09500E-05
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 24th of 32 subcases of dcn29.dat
+C 4th of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 12-1********************
+C Case 12-1; PT cable with one SC cable of core/sheath/armor; IYG=3
+ 3 -1 1 0 1 1 0 1 0 0 3 0
+ 1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+ 1.227 209.3
+ 3
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+0.1500E-040.1000E-080.5000E-050.1000E-100.1000E-040.1000E-10
+0.2500E-040.1000E-09
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 6.75544E-03 6.56546E-03 6.48182E-03 6.36006E-03
+C 5.75112E-02 4.96567E-02 4.88070E-02 3.13118E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.50000E-05 -1.50000E-05 -2.37535E-21 3.41626E-22
+C 5.07794E-05 -5.07794E-05 -2.43949E-20 -1.92016E-21 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 55.67291 43.58791 40.27757 8.434837
+C 27.58217 25.96881 26.05425 -.610079
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 1.0 1.000846 .9962176
+C .746E-16 .548E-18 .3296E-3 -.010838
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 4.19527E+00 11.74 6.36006E-03 3.13118E-02 2.50000E-05 4.46053E-04
+C 2 8.82571E-01 69.19 1.29405E-04 7.89410E-03 1.55431E-05 5.01389E-05
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 25th of 32 subcases of dcn29.dat
+C 5th of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 21-0********************
+C Case 21-0; PT cable with 3-phase SC cable of core/sheath; IYG=0
+ 3 -1 3 0 1 1 0 1 0 0 0 0
+ 1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+ 1.227 209.3 1.227 89.30 1.227 329.3
+ 2 2 2
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 6.64784E-03 6.36360E-03 6.36360E-03 6.45786E-03 6.36360E-03 6.36360E-03 6.36006E-03
+C 5.76283E-02 3.15489E-02 3.15489E-02 4.97737E-02 3.15489E-02 3.15489E-02 3.13118E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 6.79707E-06 -7.40107E-24 0.00000E+00 -6.79707E-06 -1.06799E-23 -9.08817E-24 0.00000E+00 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 166.3596 10.06705 10.06705 132.349 10.06704 10.06704 8.462883
+C -1.6011 -.862671 -.862671 -1.21034 -.862727 -.862727 -.850805
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 .1929E-5 .1929E-5 .9999525 -.499442 -.998885 .9989272
+C -.51E-17 -.575E-5 -.575E-5 .0097433 .8853E-3 .0017706 -.001702
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 3.26383E+00 11.77 6.36006E-03 3.13118E-02 0.00000E+00 4.41654E-04
+C 2 2.98699E-02 190.70 2.36313E-04 7.92257E-03 0.00000E+00 6.71255E-06
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 26th of 32 subcases of dcn29.dat
+C 6th of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 21-1********************
+C Case 21-1; PT cable with 3-phase SC cable of core/sheath; IYG=3
+ 3 -1 3 0 1 1 0 1 0 0 3 0
+ 1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+ 1.227 209.3 1.227 89.30 1.227 329.3
+ 2 2 2
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.1500E-040.1000E-080.5000E-050.1000E-10
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.1500E-040.1000E-080.5000E-050.1000E-10
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.1500E-040.1000E-080.5000E-050.1000E-10
+0.2500E-040.1000E-09
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Earth impedance ZE, in ohm/m
+C 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03
+C 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 Core 1
+C Conductor internal impedance ZC, in ohm/m
+C 2.19370E-04 0.00000E+00 0.00000E+00 2.93876E-05 0.00000E+00 0.00000E+00 0.00000E+00
+C 8.63256E-03 0.00000E+00 0.00000E+00 7.78018E-04 0.00000E+00 0.00000E+00 0.00000E+00 Core 1
+C Total impedance [Zc], in ohm/m
+C 6.64784E-03 6.36360E-03 6.36360E-03 6.45786E-03 6.36360E-03 6.36360E-03 6.36006E-03
+C 5.76283E-02 3.15489E-02 3.15489E-02 4.97737E-02 3.15489E-02 3.15489E-02 3.13118E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.50000E-05 1.26321E-22 -8.19740E-23 -1.50000E-05 3.31906E-23 -1.87770E-22 -1.55096E-22
+C 5.07794E-05 1.98652E-22 -2.40558E-22 -5.07794E-05 -6.61404E-22 -7.82202E-22 -5.78034E-22 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 68.59111 8.717669 8.717669 56.51615 8.718023 8.718023 8.434837
+C 35.58146 -.307326 -.307326 33.96657 -.307396 -.307396 -.610079
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to ph..
+C 1.0 1.0 -.693E-6 -.693E-6 .9992533 -.499625 -.99925
+C .237E-15 .257E-18 .7433E-6 .7432E-6 .1549E-3 -.708E-4 -.142E-3
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag.
+C 1 4.19527E+00 11.74 6.36006E-03 3.13118E-02 2.50000E-05 4.46053E-04
+C 2 8.82755E-01 69.19 1.51621E-04 7.91257E-03 1.53712E-05 5.00638E-05
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 27th of 32 subcases of dcn29.dat
+C 7th of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 22-0********************
+C Case 22-0; PT cable with 3-phase SC cable of core/sheath/armor; IYG=0
+ 3 -1 3 0 1 1 0 1 0 0 0 0
+ 1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+ 1.227 209.3 1.227 89.30 1.227 329.3
+ 3 3 3
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 6.75544E-03 6.36360E-03 6.36360E-03 6.56546E-03 6.36360E-03 6.36360E-03 6.48182E-03 6.36360E-03 6.36360E-03 6.36006E-03
+C 5.75112E-02 3.15489E-02 3.15489E-02 4.96567E-02 3.15489E-02 3.15489E-02 4.88070E-02 3.15489E-02 3.15489E-02 3.13118E-02
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 6.79707E-06 -1.56470E-24 -1.58170E-24 -6.79707E-06 -3.60078E-23 -2.75936E-23 -1.91530E-20 0.00000E+00 0.00000E+00 -2.82146E-23
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 163.1724 10.06705 10.06705 129.181 10.06705 10.06705 125.815 10.06705 10.06705 8.462883
+C -1.83451 -.862715 -.862715 -1.4196 -.862711 -.862711 -1.25847 -.862723 -.862723 -.850805
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phase variables: v-phase = [Tv] * v-mode
+C 1.0 -.316E-4 -.316E-4 .9287082 .9995322 -.216E-7 -.216E-7 -.499778 .9995556 .9995735
+C -.11E-13 -.387E-4 -.387E-4 .3563903 -.030584 -.12E-7 -.12E-7 .3265E-4 -.653E-4 -.626E-4
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m) Charact. imp. (Ohm) Charact. Admit. (S)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag. Real Imag. Real Imag.
+C 1 3.26383E+00 11.77 6.36006E-03 3.13118E-02 0.00000E+00 4.41654E-04 8.463 -.851 1.16981E-01 1.17605E-02
+C 2 1.68391E-01 177.84 1.35154E-04 8.56765E-04 0.00000E+00 7.09500E-05 3.486 -.273 2.85132E-01 2.23515E-02
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 28th of 32 subcases of dcn29.dat
+C 8th of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 22-1********************
+C Case 22-1; PT cable with 3-phase SC cable of core/sheath/armor; IYG=3
+ 3 -1 3 0 1 1 0 1 0 0 3 0
+ 1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+ 1.227 209.3 1.227 89.30 1.227 329.3
+ 3 3 3
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+0.1500E-040.1000E-080.5000E-050.1000E-100.1000E-040.1000E-10
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+0.1500E-040.1000E-080.5000E-050.1000E-100.1000E-040.1000E-10
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+0.1500E-040.1000E-080.5000E-050.1000E-100.1000E-040.1000E-10
+0.2500E-040.1000E-09
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 6.75544E-03 6.36360E-03 6.36360E-03 6.56546E-03 6.36360E-03 6.36360E-03 6.48182E-03 6.36360E-03 6.36360E-03 6.36006E-03
+C 5.75112E-02 3.15489E-02 3.15489E-02 4.96567E-02 3.15489E-02 3.15489E-02 4.88070E-02 3.15489E-02 3.15489E-02 3.13118E-02
+C End row for Core 1
+C Total admittance [Yc], in mho/m
+C 1.50000E-05 -2.99182E-23 3.68773E-23 -1.50000E-05 2.46384E-22 -1.51477E-22 -1.31656E-21 1.65746E-22 -4.60119E-23 4.33856E-22
+C 5.07794E-05 -1.07249E-22 -1.21508E-22 -5.07794E-05 -4.26327E-22 1.67257E-22 -1.33777E-20 1.88659E-24 -1.48108E-24 -1.92794E-21
+C End row for Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 55.6716 8.633329 8.633329 43.58661 8.633334 8.633334 40.27627 8.633336 8.633336 8.434837
+C 27.58052 -.401215 -.401215 25.96715 -.401217 -.401217 26.05259 -.400898 -.400898 -.610079
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m) Charact. imp. (Ohm) Charact. Admit. (S)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag. Real Imag. Real Imag.
+C 1 4.19527E+00 11.74 6.36006E-03 3.13118E-02 2.50000E-05 4.46053E-04 8.435 -.610 1.17939E-01 8.53035E-03
+C 2 8.82571E-01 69.19 1.29405E-04 7.89410E-03 1.55431E-05 5.01389E-05 12.140 1.737 8.07178E-02 -1.15484E-02
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 29th of 32 subcases of dcn29.dat
+C 9th of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 3-0********************
+C Case 3-0; 3-phase SC cable; IYG=0
+ 2 -1 3 0 1 1 0 0 0 0 0 0
+ 2 2 2
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+ 1.500 -.5000 2.500 0.000 1.500 0.5000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 6.82970E-03 6.53320E-03 6.60374E-03 6.63972E-03 6.53320E-03 6.60374E-03
+C 6.81573E-02 3.48863E-02 3.57482E-02 6.03027E-02 3.48863E-02 3.57482E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 6.79707E-06 0.00000E+00 0.00000E+00 -6.79707E-06 0.00000E+00 0.00000E+00 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 59.9583 7.709226 7.991493 26.01134 7.712748 7.995252
+C -1.53267 -1.03753 -1.05192 -1.04899 -1.03313 -1.0472
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phase variables: v-phase = [Tv] * v-mode
+C 1.000179 -.497538 -1.00127 -1. -.496939 1.0
+C .151E-3 -.001074 -.001829 .1644E-3 -.135E-3 -.243E-3
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m) Charact. imp. (Ohm) Charact. Admit. (S)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag. Real Imag. Real Imag.
+C 1 2.05949E+00 13.94 6.61292E-03 4.37438E-02 0.00000E+00 2.26225E-04 13.945 -1.048 7.13075E-02 5.35948E-03
+C 2 2.24102E-02 31.45 6.37941E-05 1.72881E-02 0.00000E+00 1.13112E-04 12.363 -.023 8.08872E-02 1.49239E-04
+BLANK card BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 30th of 32 subcases of dcn29.dat
+C 10th of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 3-1********************
+C Case 3-1; 3-phase SC cable; IYG=3
+ 2 -1 3 0 1 1 0 0 0 0 3 0
+ 2 2 2
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.1500E-040.1000E-080.5000E-050.1000E-10
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.1500E-040.1000E-080.5000E-050.1000E-10
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.1500E-040.1000E-080.5000E-050.1000E-10
+ 1.500 -.5000 2.500 0.000 1.500 0.5000
+ 50.0000 7000.00 0 0 0
+C Total impedance [Zc], in ohm/m
+C 6.82970E-03 6.53320E-03 6.60374E-03 6.63972E-03 6.53320E-03 6.60374E-03
+C 6.81573E-02 3.48863E-02 3.57482E-02 6.03027E-02 3.48863E-02 3.57482E-02 Core 1
+C Total admittance [Yc], in mho/m
+C 1.50000E-05 0.00000E+00 0.00000E+00 -1.50000E-05 0.00000E+00 0.00000E+00
+C 5.07794E-05 0.00000E+00 0.00000E+00 -5.07794E-05 0.00000E+00 0.00000E+00 Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 37.9946 7.710669 7.992328 25.92527 7.7129 7.994687
+C 1.38059 -.778858 -.783756 -.199009 -.775514 -.78019
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phase variables: v-phase = [Tv] * v-mode
+C 1.000188 -.497735 1.001722 -1. -.496939 1.0
+C .3743E-3 -.00132 .002144 .581E-11 -.317E-3 0.0
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m) Charact. imp. (Ohm) Charact. Admit. (S)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag. Real Imag. Real Imag.
+C 1 2.96821E+00 13.93 6.63137E-03 4.37410E-02 1.48430E-05 2.27545E-04 13.916 -.594 7.17279E-02 3.06180E-03
+C 2 4.22138E-01 31.35 7.11047E-05 1.72880E-02 7.42100E-06 1.13773E-04 12.308 .376 8.11714E-02 -2.47736E-03
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 31st of 32 subcases of dcn29.dat
+C 11th of 11 cases received from Prof. Ametani on October 28, 2003
+CABLE PARAMETERS
+C ********************Case 4********************
+C Case 4; same as 22-1 (default G,C are used if user does not provide input)
+ 3 -1 3 0 1 1 0 1 0 0 3 0
+ 1.500 1.800 1.810 0.6000E-06 1.000 1.000 1.000
+ 1.227 209.3 1.227 89.30 1.227 329.3
+ 3 3 3
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+ 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+ 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.2550E-010.6050E-010.6200E-010.6700E-010.6900E-010.7400E-01
+0.2300E-07 1.000 1.000 2.400 0.3300E-07 1.000 1.000 2.400
+0.2000E-07 1.000 1.000 3.000
+ 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000
+ 5.000 0.000
+ 50.0000 7000.00 0 0 0
+C Earth impedance ZE, in ohm/m
+C 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03 6.34866E-03
+C 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02 3.12516E-02
+C End row for Core 1
+C Conductor internal impedance ZC, in ohm/m
+C 3.26963E-04 0.00000E+00 0.00000E+00 1.36981E-04 0.00000E+00 0.00000E+00 5.33464E-05 0.00000E+00 0.00000E+00 0.00000E+00
+C 9.38963E-03 0.00000E+00 0.00000E+00 1.53508E-03 0.00000E+00 0.00000E+00 6.85403E-04 0.00000E+00 0.00000E+00 0.00000E+00
+C End row for Core 1
+C Total impedance [Zc], in ohm/m
+C 6.75544E-03 6.36360E-03 6.36360E-03 6.56546E-03 6.36360E-03 6.36360E-03 6.48182E-03 6.36360E-03 6.36360E-03 6.36006E-03
+C 5.75112E-02 3.15489E-02 3.15489E-02 4.96567E-02 3.15489E-02 3.15489E-02 4.88070E-02 3.15489E-02 3.15489E-02 3.13118E-02
+C End row for Core 1
+C Total admittance [Yc], in mho/m
+C 1.00000E-10 1.18990E-27 -1.45189E-27 -1.00000E-10 -1.39444E-27 3.23117E-27 -6.46235E-27 3.23117E-27 0.00000E+00 0.00000E+00
+C 6.84105E-06 -2.97689E-24 -1.38659E-25 -6.84105E-06 -3.75253E-23 -2.73485E-23 -1.91530E-20 0.00000E+00 0.00000E+00 -2.82146E-23
+C End row for Core 1
+C Characteristic impedance matrix [Zc] in phase variables, in [ohm]:
+C 161.2469 10.01258 10.01258 127.2717 10.01258 10.01258 123.8362 10.01259 10.01259 8.462462
+C .3295742 -.862266 -.862266 -1.3951 -.862271 -.862271 -1.24651 -.862266 -.862266 -.850762
+C Voltage transformation matrix [Tv]. This gives the mapping from modal to phase variables: v-phase = [Tv] * v-mode
+C 1.0 -.249E-4 .9233616 .2931E-4 1.0 -.454E-7 -.454E-7 .9995507 .9995327 -.22E-12
+C .211E-17 -.351E-4 .3532771 .3409E-4 -.26E-17 -.298E-7 -.298E-7 -.638E-4 -.664E-4 -.29E-13
+C Modal components
+C Mode Attenuation Velocity Impedance (Ohm/m) Admittance (S/m) Charact. imp. (Ohm) Charact. Admit. (S)
+C No. (db/km) (m/mic.s) Real Imag. Real Imag. Real Imag. Real Imag.
+C 1 3.26399E+00 11.77 6.36006E-03 3.13118E-02 1.00000E-10 4.41698E-04 8.462 -.851 1.16987E-01 1.17611E-02
+C 2 1.68468E-01 177.80 1.18406E-04 8.60287E-04 1.39772E-06 7.08880E-05 3.494 -.205 2.85250E-01 1.67149E-02
+BLANK card ending frequency cards
+BLANK card ending "CABLE PARAMETERS" data subcases
+BEGIN NEW DATA CASE
+C 32nd of 32 subcases of dcn29.dat
+C 15 January 2004, add simple data that illustrates output of Potential
+C coefficient matrix and its transpose. This is done by using the snaking
+C option (for SC cable, put -99 in cols. 36-40, which is CP variable NPP).
+C Also, illustrate the single-line output that informs a user about matrix
+C reduction: variable NGRND of 41-45 is set to 3, which is a request that
+C three conductors (of the outer-most layer) will be grounded. IZFLAG of
+C columns 26-30 had to be set ("1" is a request for intermediate printout),
+C also, since the matrices in question are intermediate matrices, by CP
+C defintion. Potential coefficient matrices are 6 x 6. After eliminating
+C one, this gives 5 x 5 matrices. Tsu-huei Liu.
+CABLE PARAMETERS
+ 2 -1 3 0 1 1 0 -99 3 0 0 0
+ 2 2 2
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 0.0 23.30E-3 49.80E-3 51.00E-3 56.00E-3
+ 1.724E-8 1.0 1.4 2.7 1.724E-8 1.0 1.0 2.5
+ 2.500 0.0 2.730 0.0 2.960 0.0
+ 100. 50.E03
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE CONSTANTS data subcases
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcn3.dat b/benchmarks/dcn3.dat
new file mode 100644
index 0000000..8b1f938
--- /dev/null
+++ b/benchmarks/dcn3.dat
@@ -0,0 +1,613 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-3
+C Test of "JMARTI SETUP" using BPA's 138-mile, single-circuit, 500-kV
+C overhead line that connects "John Day" with "Lower Monumental." Each
+C phase consists of a two-conductor bundle, and there are two ground wires.
+C For usage of the punched cards, see DCNEW-4 (single line to ground fault).
+C 1st of 4 JMARTI SETUP data cases that are stacked together in one file.
+C Discontinuity of April, 1992: the default conductance to ground was made
+C smaller, which changes the answers. To reproduce the previous answers
+C (we do not want to change these, for historical reasons), we have replaced
+C the previously-blank columns 33-40 of the Marti fitting card by 0.48D-7.
+C If erased, the smaller current default value of 0.32D-8 would be used.
+C Generally, users are advised to use the new default value. The old one
+C was found to be poorer (less stable) at preserving trapped charge, which
+C had a tendency to either decay or grow, or both. See July, 92, newsletter
+JMARTI SETUP, 1.0, { Note use of PDT0 = 1 to allow reduction of order
+$ERASE
+BRANCH JDA LMA JDB LMB JDC LMC
+LINE CONSTANTS
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data
+C 100. 5000. 1 138. 1 1
+100. 5000. 138. 1 1
+C Eigenvector matrix [Ti] for current transformation: I-phase = [Ti]*I-mode.
+C 5.715321125166357E-01 7.071067811866318E-01-4.176201549395583E-01
+C 5.888141376738019E-01-1.598591340346618E-13 8.069614689540739E-01
+C 5.715321125166362E-01-7.071067811864631E-01-4.176201549395603E-01
+C 100. 60.00 1 138. 1 1
+C 100. .01 1 138. 1 9 10 1
+100. 60.00 138. 1 1
+100. .01 138. 1 9 10 1
+BLANK card ending frequency cards of inbedded "LINE CONSTANTS" data
+BLANK card ending "LINE CONSTANTS" cases (back to "JMARTI SETUP")
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C LECT +0 -3
+ 1 .48D-7
+C .30 30 0 1 1 0 0
+C .30 30 0 1 1 0 0 .0
+ .30 30 0 1 3 0 0
+C The following 2 selective mode-fitting cards were added July 8, 1994. The
+C key is the number of columns 1-8. A plus sign means "Zc" whereas a minus
+C sign means "A1" fitting. These two new cards complement the preceding one
+C and trailing one --- both of which are blank. So, the preceding card is
+C read for Zc fitting of mode 1. Blank cols. 1-8 of it means the next card
+C is read for A1 fitting of mode 1. That completes mode 1. On to mode 2.
+C The "-2" means parameters next will be redefined for A1 fitting of mode
+C 2. Finally, the "3" means that fitting parameters once again will be
+C redefined for fitting Zc of mode 3. Blank of the final card means this
+C is the end of such redefinitions (the end of the ordered chain that must
+C have nondecreasing absolute values, with any plus before any minus of the
+C same absolute value). I.e., the fitting is in order of increasing modes,
+C with Zc before A1. Of course, since fitting parameters themselves are
+C not not changed (note all cards are equal), the .PCH file is unchanged.
+ -2 .30 30 0 1 3 0 0 .0
+ 3 .30 30 0 1 3 0 0
+ .30 30 0 1 3 0 0 .0
+$PUNCH
+C Punched cards of "JMARTI SETUP" that began at 10-Aug-87 09.51.41
+C -1JDA LMA 2. 1.00 -2 3
+C 18 0.47483546377790780000E+03
+C -0.118006173002587400E+01 -0.316766900956783700E+01 0.255699296951171100E+02
+C -0.601797069186895300E+02 -0.118859429040937800E+03 0.128219138200802200E+04
+C 0.589997395707621700E+04 0.293129600118088200E+05 0.115768898315828600E+06
+C 0.456828103899603800E+06 0.153829246252950900E+07 0.682459583169392400E+07
+C 0.155607337123238500E+08 0.231961724269523100E+08 0.143948934080589300E+08
+C 0.241675278792565400E+08 0.245138253112168000E+08 0.476943020385880400E+08
+C 0.321677903818314700E+00 0.897689691243302900E+00 0.165645919958296100E+01
+C 0.166683415190411100E+01 0.253097180575255700E+01 0.200062229203238900E+02
+C 0.124317522651062500E+03 0.657769303398480700E+03 0.278828813105410800E+04
+C 0.117239570494599900E+05 0.427765134639132200E+05 0.202713488090330500E+06
+C 0.969491809065442200E+06 0.297097111714707800E+07 0.738395580253129000E+07
+C 0.121069712547776700E+08 0.132941229872169000E+08 0.252144297042472000E+08
+C 14 0.86846130501436630000E-03
+C 0.580741352606356000E-01 0.269837637255656400E+00 0.358782771207105300E+00
+C 0.775592461872770200E+00 0.512336867787723400E+01 0.838511767081199900E+01
+C 0.700476954581530900E+02 0.393237716938476200E+03 0.138256949679928300E+04
+C 0.706178806774202700E+03 0.527428040566430700E+04 0.528153458150661700E+05
+C 0.178246782288595200E+08 -0.178853348595699000E+08
+C 0.228396094282600400E+02 0.102766422507827100E+03 0.139244223706809200E+03
+C 0.269645860533437000E+03 0.389274399149027900E+03 0.427848859575681700E+03
+C 0.132164362398165100E+04 0.277206716220942800E+04 0.449377641523935900E+04
+C 0.596644826082373700E+04 0.114720521901370200E+05 0.268313097858966600E+05
+C 0.204019502378470200E+05 0.204223521880848500E+05
+C -2JDB LMB 2. 1.00 -2 3
+C 13 0.28580875773089420000E+03
+C 0.381761604339811300E+04 -0.269529222489893400E+04 0.445018224901132900E+03
+C 0.214658130219421300E+03 0.897325461203713000E+02 0.130480129629526700E+03
+C 0.683037485206987500E+02 0.746626715383730600E+02 0.133938729387730700E+04
+C 0.249954495902327700E+04 0.187764116219577300E+05 0.391031620803234800E+06
+C 0.562668431190592700E+07
+C 0.358668999787355100E+01 0.376679186832982400E+01 0.706439034439887200E+01
+C 0.109721634064779500E+02 0.140506334140284900E+02 0.234292596911142100E+02
+C 0.407686998675826200E+02 0.797598814774745600E+02 0.129106739969332700E+04
+C 0.242138030939059100E+04 0.182362646041586800E+05 0.379814243183555100E+06
+C 0.548808385606494300E+07
+C 13 0.74122289644506580000E-03
+C 0.192185759913711700E+02 0.210966359346620600E+01 0.383399136199024000E+02
+C 0.307993781731406200E+02 0.634000307105010500E+03 -0.253115847496219700E+03
+C 0.210534579670316500E+05 0.755519174690603100E+05 0.229570510891638500E+07
+C 0.612402074281027300E+13 -0.157188483305523900E+13 0.153704747373258000E+13
+C -0.608918577626942800E+13
+C 0.325736144550658200E+04 0.366694934556729300E+03 0.675727735563824900E+04
+C 0.516025006050137400E+04 0.249456170503074700E+05 0.115067825273006300E+06
+C 0.105205562251131800E+06 0.240931238307717000E+06 0.633278843013469900E+06
+C 0.975824032780069500E+06 0.976799856812848700E+06 0.974183811425177500E+06
+C 0.975157995236602000E+06
+C -3JDC LMC 2. 1.00 -2 3
+C 14 0.27244405821863850000E+03
+C 0.317764297498704800E+03 0.384056802748649200E+03 0.778154442440458800E+03
+C 0.103108351622217900E+03 0.200907768854247900E+03 0.757757930954060700E+02
+C 0.133832844810236600E+03 0.658792616195279500E+02 0.629912034598408500E+02
+C 0.949903677731806700E+02 0.117873697275294800E+04 0.256205790678172300E+04
+C 0.157517575034756300E+05 0.688063362171364400E+06
+C 0.224584095584786400E+01 0.575878921509945000E+01 0.382715001094007800E+01
+C 0.671993518910086000E+01 0.107191101706806600E+02 0.136101578984827200E+02
+C 0.235649885701294500E+02 0.387434645099158700E+02 0.702936562286210600E+02
+C 0.104170215532356800E+03 0.113673136869279500E+04 0.248316263999624400E+04
+C 0.152837834526831200E+05 0.669555085226707900E+06
+C 19 0.74860222236202140000E-03
+C 0.265528225406306100E-01 0.376498252787530200E+01 0.536951710153120600E+01
+C 0.696235049719931200E+01 0.121763805069647700E+02 0.145127857425468800E+02
+C 0.226267590422432600E+02 0.598476217646912300E+02 0.595249574950295000E+03
+C 0.242111159393989900E+04 0.172805122932578900E+05 -0.314303949832411600E+05
+C 0.220557798251039000E+06 0.129173594867216000E+06 0.423436288057568300E+06
+C 0.117774045836065600E+12 -0.130486072897154200E+12 0.120938676979489700E+12
+C -0.108227412077855500E+12
+C 0.920707195319214300E+01 0.158477433056120800E+04 0.156047471710388800E+04
+C 0.239808027560599700E+04 0.420364162756344700E+04 0.500927615198936200E+04
+C 0.777465091286091900E+04 0.255715228753519500E+05 0.233727992549882900E+05
+C 0.498201791461570800E+05 0.153061362711032300E+06 0.490289224277132400E+06
+C 0.422125480548632300E+06 0.802229594937367600E+06 0.128765820111139800E+07
+C 0.426549145433839600E+07 0.426975694579273200E+07 0.434632165606394200E+07
+C 0.435066797772000400E+07
+C 0.57153211 0.70710678 -0.41762015
+C 0.00000000 0.00000000 0.00000000
+C 0.58881414 0.00000000 0.80696147
+C 0.00000000 0.00000000 0.00000000
+C 0.57153211 -0.70710678 -0.41762015
+C 0.00000000 0.00000000 0.00000000
+BLANK card ending JMARTI SETUP data cases
+BEGIN NEW DATA CASE
+C 2nd of 4 subcases: JMARTI SETUP of a continuously transposed 3-phase line
+C Special key word "TRANSPOSED" is used which overrides the "1" punch in col
+C 69-70 of the frequency cards, & ignores the extra unnecessary freq. card.
+JMARTI SETUP, 1.0, { Note use of PDT0 = 1 to allow reduction of order
+$ERASE
+BRANCH JDA LMA JDB LMB JDC LMC
+LINE CONSTANTS
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+TRANSPOSED
+ 1.3636 .05215 4 1.602 -20.75 50. 50.
+ 1.3636 .05215 4 1.602 -19.25 50. 50.
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5
+ 3.3636 .05215 4 1.602 19.25 50. 50.
+ 3.3636 .05215 4 1.602 20.75 50. 50.
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK CARD ENDING CONDUCTOR CARDS OF &LINE CONSTANTS& CASE
+100. 5000.0 1 138. 1 1
+100. 60.00 1 138. 1 1
+100. .01 1 138. 1 9 10 1
+BLANK CARD ENDING FREQUENCY CARDS OF "LINE CONSTANTS" CASE
+BLANK CARD ENDING "LINE CONSTANTS" CASES
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C SELECT +3 -3
+ 1 .48D-7
+ .30 30 0 1 1 1 0
+ .30 30 0 1 1 1 0 .0
+$PUNCH, dcn3a.pch !
+C Punched cards of "JMARTI SETUP" that began at 09:52:03 on 20-Aug-91 from
+C a sun 3/140 workstation
+C -1JDA LMA 2. 1.00 -2
+C 18 0.47451831101101367949E+03
+C -0.120081062969104613E+01 -0.316405763317420341E+01 0.256932200021680934E+02
+C -0.602598085111239712E+02 -0.118714770675910557E+03 0.128352319644043041E+04
+C 0.591638248504535841E+04 0.294305250874395024E+05 0.116318975193179140E+06
+C 0.459249722803231853E+06 0.154677011975499266E+07 0.686025868805313855E+07
+C 0.156353274865816720E+08 0.237895960081647597E+08 0.117959279089897405E+08
+C 0.266824936920331419E+08 0.262710020538719147E+08 0.449665457754582688E+08
+C 0.327706249087417523E+00 0.897216954243062248E+00 0.165554332918051372E+01
+C 0.166586165459544766E+01 0.252939897364406763E+01 0.200105259634306663E+02
+C 0.124539630041647669E+03 0.659787753754296546E+03 0.279916903875076378E+04
+C 0.117767336727508136E+05 0.429820526044311337E+05 0.203664181161565648E+06
+C 0.973703332893298473E+06 0.304009234079004591E+07 0.611597333586343005E+07
+C 0.144324529645396136E+08 0.130708232833041418E+08 0.238306479572914056E+08
+C 14 0.86815077132324880264E-03
+C 0.559961665584082918E-01 0.275859097910389983E+00 0.366926548935257835E+00
+C 0.774887474936517773E+00 0.425201985736324595E+01 0.106499171797781962E+02
+C 0.593306573791278851E+02 0.420006314852137223E+03 0.116114242016569051E+04
+C 0.988217912353194720E+03 0.636655891008270282E+04 0.597536233332775737E+05
+C 0.181410760972106270E+08 -0.182098413523650728E+08
+C 0.220025857179722664E+02 0.104858693772308015E+03 0.142080244883088398E+03
+C 0.269881655369163752E+03 0.367818194910177681E+03 0.489749997940372850E+03
+C 0.117877893438439219E+04 0.282757087652084965E+04 0.432673393263356957E+04
+C 0.620251899708559995E+04 0.119248844904739381E+05 0.263190433404265568E+05
+C 0.203957306090503516E+05 0.204161263396594077E+05
+C -2JDB LMB 2. 1.00 -2
+C 10 0.27918412198151725079E+03
+C 0.223477735420975296E+04 -0.114637808644215829E+04 0.562713463450404333E+03
+C 0.131558796964110144E+03 0.809731120003030895E+02 0.136543470873914885E+03
+C 0.638104438173297339E+02 0.134037028090804512E+03 0.550786941658322758E+04
+C 0.769156785595086985E+06
+C 0.339528899377899274E+01 0.372152580849274051E+01 0.742888229124819865E+01
+C 0.105057373139077210E+02 0.136164452778189045E+02 0.237989900635501179E+02
+C 0.384148838273318916E+02 0.733458102735561397E+02 0.265431532831921959E+04
+C 0.372575386274277989E+06
+C 20 0.74599392992287776732E-03
+C 0.180586864036101809E-01 0.319699504616432462E+01 0.313587709498234357E+01
+C 0.593232512781096055E+01 0.743853292324601778E+01 0.122443262382636018E+02
+C 0.182863064977842029E+02 0.523917764690455456E+02 0.367819898065910706E+03
+C 0.201527604129770998E+04 0.267044905116696609E+05 0.269463815644603055E+05
+C 0.180992629990602261E+06 -0.725032339291055396E+05 0.188139771567618474E+06
+C 0.730538307893324760E+06 0.433720089866509140E+09 -0.427070911859923482E+09
+C 0.269954519835107028E+09 -0.277687001929433286E+09
+C 0.743017923300719385E+01 0.125469957724415804E+04 0.133552979902473999E+04
+C 0.239867448040181444E+04 0.306582628849187631E+04 0.495594607038898448E+04
+C 0.740487210112901539E+04 0.217329460516806612E+05 0.176792957119855382E+05
+C 0.466108042746677529E+05 0.174043620363802591E+06 0.229769370467850589E+06
+C 0.351791281276103691E+06 0.367292903450733691E+06 0.614171445953494287E+06
+C 0.920861499455755111E+06 0.210947591534454934E+07 0.211158539125989284E+07
+C 0.180499533588660508E+07 0.180680033122249064E+07
+C -3JDC LMC 2. 1.00 -2
+C 10 0.27918412198151725079E+03
+C 0.223477735420975296E+04 -0.114637808644215829E+04 0.562713463450404333E+03
+C 0.131558796964110144E+03 0.809731120003030895E+02 0.136543470873914885E+03
+C 0.638104438173297339E+02 0.134037028090804512E+03 0.550786941658322758E+04
+C 0.769156785595086985E+06
+C 0.339528899377899274E+01 0.372152580849274051E+01 0.742888229124819865E+01
+C 0.105057373139077210E+02 0.136164452778189045E+02 0.237989900635501179E+02
+C 0.384148838273318916E+02 0.733458102735561397E+02 0.265431532831921959E+04
+C 0.372575386274277989E+06
+C 20 0.74599392992287776732E-03
+C 0.180586864036101809E-01 0.319699504616432462E+01 0.313587709498234357E+01
+C 0.593232512781096055E+01 0.743853292324601778E+01 0.122443262382636018E+02
+C 0.182863064977842029E+02 0.523917764690455456E+02 0.367819898065910706E+03
+C 0.201527604129770998E+04 0.267044905116696609E+05 0.269463815644603055E+05
+C 0.180992629990602261E+06 -0.725032339291055396E+05 0.188139771567618474E+06
+C 0.730538307893324760E+06 0.433720089866509140E+09 -0.427070911859923482E+09
+C 0.269954519835107028E+09 -0.277687001929433286E+09
+C 0.743017923300719385E+01 0.125469957724415804E+04 0.133552979902473999E+04
+C 0.239867448040181444E+04 0.306582628849187631E+04 0.495594607038898448E+04
+C 0.740487210112901539E+04 0.217329460516806612E+05 0.176792957119855382E+05
+C 0.466108042746677529E+05 0.174043620363802591E+06 0.229769370467850589E+06
+C 0.351791281276103691E+06 0.367292903450733691E+06 0.614171445953494287E+06
+C 0.920861499455755111E+06 0.210947591534454934E+07 0.211158539125989284E+07
+C 0.180499533588660508E+07 0.180680033122249064E+07
+BLANK card ending JMARTI SETUP data cases
+BEGIN NEW DATA CASE
+JMARTI SETUP, 1.0,
+C 3rd of 4 subcases: JMARTI SETUP of continuously-transposed double-circuit
+$ERASE
+BRANCH SENDA RECA SENDB RECB SENDC RECC SENDD RECD SENDE RECE SENDF RECF
+LINE CONSTANTS
+ 1.3636 .0561 4 0.0 1.602 -20.75 48.9 48.9
+ 1.3636 .0561 4 0.0 1.602 -19.25 48.9 48.9
+ 2.3636 .0561 4 0.0 1.602 - 0.75 76.4 76.4
+ 2.3636 .0561 4 0.0 1.602 0.75 76.4 76.4
+ 3.3636 .0561 4 0.0 1.602 19.25 48.9 48.9
+ 3.3636 .0561 4 0.0 1.602 20.75 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 129.25 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 130.75 48.9 48.9
+ 5.3636 .0561 4 0.0 1.602 149.25 76.4 76.4
+ 5.3636 .0561 4 0.0 1.602 150.75 76.4 76.4
+ 6.3636 .0561 4 0.0 1.602 169.25 48.9 48.9
+ 6.3636 .0561 4 0.0 1.602 170.75 48.9 48.9
+ 0.5 2.61 4 0.0 .386 -12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 137.1 113.3 113.3
+ 0.5 2.61 4 0.0 .386 162.9 113.3 113.3
+BLANK card ending conductors
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+100. 60.00 1 1.00 1
+ 100. .01 1 1.00 1 9 10
+BLANK card ending frequency cards
+BLANK card ending LC cases
+ 1 .48D-7
+ .30 30 0 1 1 1 0
+ .30 30 0 1 1 1 0 .0
+$PUNCH, dcn3b.pch !
+C Punched cards of "JMARTI SETUP" that began at 09:58:14 on 20-Aug-91 from
+C a sun 3/140 workstation
+C -1SENDA RECA 2. 0.00 -2
+C 16 0.51359826038176265683E+03
+C 0.431802119789707717E+03 -0.589502442075644467E+03 -0.630030591311403100E+03
+C 0.399851051947631186E+04 0.216933819536543306E+05 0.925763110451664543E+05
+C 0.335631802797454584E+06 0.103348533458321809E+07 0.314802247167646047E+07
+C 0.108636136448393296E+08 0.214867385045098960E+08 0.345480317288025841E+08
+C 0.180854327003738545E+08 0.303536135525562577E+08 0.404523465145221725E+08
+C 0.678327893044214845E+08
+C 0.147749536166155071E+01 0.149384759544244283E+01 0.338084580366401877E+01
+C 0.347663890462675269E+02 0.274222090670830369E+03 0.128273485021289002E+04
+C 0.507724806290303059E+04 0.172599907368824934E+05 0.580681120918937231E+05
+C 0.220769332727780071E+06 0.928657933276530239E+06 0.306500624236313952E+07
+C 0.652078703205973748E+07 0.108987209923113696E+08 0.148001428261489496E+08
+C 0.251011325495531559E+08
+C 30 0.57237579326198218831E-05
+C 0.135595089441823413E+01 0.637349939717172465E+01 0.844893536681336066E+01
+C 0.108059779608878035E+02 0.126355952683281103E+02 0.150171219695762375E+02
+C 0.168772149991745302E+02 0.202293671626327978E+02 0.233375610592934137E+02
+C 0.252083255727079418E+02 0.700393107807853283E+02 0.912745365545112151E+02
+C 0.186914938232557483E+04 0.517629943326570901E+04 0.184721185449430814E+05
+C 0.732598565482461072E+04 0.703442425520987745E+05 0.445434958916523901E+05
+C 0.145355717746687791E+06 0.246512118313474464E+06 0.225437233402580285E+06
+C -0.259491413335790072E+06 0.848998863924005651E+06 0.824652528941186902E+05
+C 0.206098120308236144E+08 -0.186274683009231351E+08 0.131536034105654415E+08
+C -0.129847637126822844E+08 0.142666288816405821E+10 -0.143025138225963974E+10
+C 0.100318408443689384E+04 0.464315138722778283E+04 0.616027561194335431E+04
+C 0.781988852938061700E+04 0.918464713882178876E+04 0.108625564852548523E+05
+C 0.124409791994056541E+05 0.141700766867189177E+05 0.161306305081821029E+05
+C 0.192467742338885691E+05 0.261334525327020601E+05 0.169858310599361139E+05
+C 0.771093759676006302E+05 0.117604799225762763E+06 0.279017759387494298E+06
+C 0.304770838967292162E+06 0.640213450219832128E+06 0.798317940826885635E+06
+C 0.152869005613829079E+07 0.224508928406630363E+07 0.280107234803794092E+07
+C 0.415428852232479164E+07 0.373086422605056828E+07 0.482836392195153236E+07
+C 0.116829352695045918E+08 0.122954791987610366E+08 0.325167045566555619E+09
+C 0.325492212612121940E+09 0.341446775727152750E+08 0.341788222502879649E+08
+C -2SENDB RECB 2. 0.00 -2
+C 12 0.30817033200652326741E+03
+C 0.408490560150112651E+04 -0.292416799196371176E+04 0.445268635719193753E+03
+C 0.255257536718787946E+03 0.103625924499244775E+03 0.812112718929364661E+02
+C 0.110185044028879645E+03 0.149652982250936238E+05 0.185318904577739246E+06
+C 0.753412716766495723E+06 0.221446423538133968E+07 0.164010575829681195E+08
+C 0.369821139790174991E+01 0.386770680589037941E+01 0.713294452148843128E+01
+C 0.114503166350619576E+02 0.147717235363566690E+02 0.258212155744248228E+02
+C 0.574692515230871876E+02 0.686438108927780013E+04 0.842941167352115881E+05
+C 0.345292827956513269E+06 0.102659724846463162E+07 0.764717712178991549E+07
+C 11 0.55015615609947820481E-05
+C 0.170685634942999371E+03 0.427836022106308576E+03 0.549299381581440116E+03
+C 0.102704245015590391E+04 0.320678259784961801E+04 0.257030201120619349E+05
+C 0.511051177257291420E+05 0.605405626921454445E+06 0.119581698721174267E+07
+C 0.559514774141937308E+07 0.477727928636096790E+08
+C 0.711198083533060271E+05 0.174712453805146244E+06 0.225128043133768602E+06
+C 0.435414363899154705E+06 0.331026431768907350E+06 0.115728747442468046E+07
+C 0.144762080001168302E+07 0.643634511190695409E+07 0.985026343800214864E+07
+C 0.350993514406555668E+08 0.871373446043275446E+08
+C -3SENDC RECC 2. 0.00 -2
+C 12 0.30817033200652326741E+03
+C 0.408490560150112651E+04 -0.292416799196371176E+04 0.445268635719193753E+03
+C 0.255257536718787946E+03 0.103625924499244775E+03 0.812112718929364661E+02
+C 0.110185044028879645E+03 0.149652982250936238E+05 0.185318904577739246E+06
+C 0.753412716766495723E+06 0.221446423538133968E+07 0.164010575829681195E+08
+C 0.369821139790174991E+01 0.386770680589037941E+01 0.713294452148843128E+01
+C 0.114503166350619576E+02 0.147717235363566690E+02 0.258212155744248228E+02
+C 0.574692515230871876E+02 0.686438108927780013E+04 0.842941167352115881E+05
+C 0.345292827956513269E+06 0.102659724846463162E+07 0.764717712178991549E+07
+C 11 0.55015615609947820481E-05
+C 0.170685634942999371E+03 0.427836022106308576E+03 0.549299381581440116E+03
+C 0.102704245015590391E+04 0.320678259784961801E+04 0.257030201120619349E+05
+C 0.511051177257291420E+05 0.605405626921454445E+06 0.119581698721174267E+07
+C 0.559514774141937308E+07 0.477727928636096790E+08
+C 0.711198083533060271E+05 0.174712453805146244E+06 0.225128043133768602E+06
+C 0.435414363899154705E+06 0.331026431768907350E+06 0.115728747442468046E+07
+C 0.144762080001168302E+07 0.643634511190695409E+07 0.985026343800214864E+07
+C 0.350993514406555668E+08 0.871373446043275446E+08
+C -4SENDD RECD 2. 0.00 -2
+C 12 0.30817033200652326741E+03
+C 0.408490560150112651E+04 -0.292416799196371176E+04 0.445268635719193753E+03
+C 0.255257536718787946E+03 0.103625924499244775E+03 0.812112718929364661E+02
+C 0.110185044028879645E+03 0.149652982250936238E+05 0.185318904577739246E+06
+C 0.753412716766495723E+06 0.221446423538133968E+07 0.164010575829681195E+08
+C 0.369821139790174991E+01 0.386770680589037941E+01 0.713294452148843128E+01
+C 0.114503166350619576E+02 0.147717235363566690E+02 0.258212155744248228E+02
+C 0.574692515230871876E+02 0.686438108927780013E+04 0.842941167352115881E+05
+C 0.345292827956513269E+06 0.102659724846463162E+07 0.764717712178991549E+07
+C 11 0.55015615609947820481E-05
+C 0.170685634942999371E+03 0.427836022106308576E+03 0.549299381581440116E+03
+C 0.102704245015590391E+04 0.320678259784961801E+04 0.257030201120619349E+05
+C 0.511051177257291420E+05 0.605405626921454445E+06 0.119581698721174267E+07
+C 0.559514774141937308E+07 0.477727928636096790E+08
+C 0.711198083533060271E+05 0.174712453805146244E+06 0.225128043133768602E+06
+C 0.435414363899154705E+06 0.331026431768907350E+06 0.115728747442468046E+07
+C 0.144762080001168302E+07 0.643634511190695409E+07 0.985026343800214864E+07
+C 0.350993514406555668E+08 0.871373446043275446E+08
+C -5SENDE RECE 2. 0.00 -2
+C 12 0.30817033200652326741E+03
+C 0.408490560150112651E+04 -0.292416799196371176E+04 0.445268635719193753E+03
+C 0.255257536718787946E+03 0.103625924499244775E+03 0.812112718929364661E+02
+C 0.110185044028879645E+03 0.149652982250936238E+05 0.185318904577739246E+06
+C 0.753412716766495723E+06 0.221446423538133968E+07 0.164010575829681195E+08
+C 0.369821139790174991E+01 0.386770680589037941E+01 0.713294452148843128E+01
+C 0.114503166350619576E+02 0.147717235363566690E+02 0.258212155744248228E+02
+C 0.574692515230871876E+02 0.686438108927780013E+04 0.842941167352115881E+05
+C 0.345292827956513269E+06 0.102659724846463162E+07 0.764717712178991549E+07
+C 11 0.55015615609947820481E-05
+C 0.170685634942999371E+03 0.427836022106308576E+03 0.549299381581440116E+03
+C 0.102704245015590391E+04 0.320678259784961801E+04 0.257030201120619349E+05
+C 0.511051177257291420E+05 0.605405626921454445E+06 0.119581698721174267E+07
+C 0.559514774141937308E+07 0.477727928636096790E+08
+C 0.711198083533060271E+05 0.174712453805146244E+06 0.225128043133768602E+06
+C 0.435414363899154705E+06 0.331026431768907350E+06 0.115728747442468046E+07
+C 0.144762080001168302E+07 0.643634511190695409E+07 0.985026343800214864E+07
+C 0.350993514406555668E+08 0.871373446043275446E+08
+C -6SENDF RECF 2. 0.00 -2
+C 12 0.30817033200652326741E+03
+C 0.408490560150112651E+04 -0.292416799196371176E+04 0.445268635719193753E+03
+C 0.255257536718787946E+03 0.103625924499244775E+03 0.812112718929364661E+02
+C 0.110185044028879645E+03 0.149652982250936238E+05 0.185318904577739246E+06
+C 0.753412716766495723E+06 0.221446423538133968E+07 0.164010575829681195E+08
+C 0.369821139790174991E+01 0.386770680589037941E+01 0.713294452148843128E+01
+C 0.114503166350619576E+02 0.147717235363566690E+02 0.258212155744248228E+02
+C 0.574692515230871876E+02 0.686438108927780013E+04 0.842941167352115881E+05
+C 0.345292827956513269E+06 0.102659724846463162E+07 0.764717712178991549E+07
+C 11 0.55015615609947820481E-05
+C 0.170685634942999371E+03 0.427836022106308576E+03 0.549299381581440116E+03
+C 0.102704245015590391E+04 0.320678259784961801E+04 0.257030201120619349E+05
+C 0.511051177257291420E+05 0.605405626921454445E+06 0.119581698721174267E+07
+C 0.559514774141937308E+07 0.477727928636096790E+08
+C 0.711198083533060271E+05 0.174712453805146244E+06 0.225128043133768602E+06
+C 0.435414363899154705E+06 0.331026431768907350E+06 0.115728747442468046E+07
+C 0.144762080001168302E+07 0.643634511190695409E+07 0.985026343800214864E+07
+C 0.350993514406555668E+08 0.871373446043275446E+08
+BLANK card ending JMARTI SETUP data cases
+BEGIN NEW DATA CASE
+JMARTI SETUP, 1.0,
+C 4th of 4 subcases: JMARTI SETUP of a 6-phase line that makes use of the
+C feature "SPECIAL DOUBLE CIRCUIT TRANSPOSED" that transposes each of the
+C 2 circuits individually, and then provides only zero-sequence coupling
+C between them. As a result, there are 3 distinct modes.
+$ERASE
+BRANCH SENDA RECA SENDB RECB SENDC RECC SENDD RECD SENDE RECE SENDF RECF
+LINE CONSTANTS
+SPECIAL DOUBLE CIRCUIT TRANSPOSED
+C modified for special double-circuit continuously-transposed option, i.e.,
+C two identical 3-phase circuits with zero-sequence coupling only.
+ 1.3636 .0561 4 0.0 1.602 -20.75 48.9 48.9
+ 1.3636 .0561 4 0.0 1.602 -19.25 48.9 48.9
+ 2.3636 .0561 4 0.0 1.602 - 0.75 76.4 76.4
+ 2.3636 .0561 4 0.0 1.602 0.75 76.4 76.4
+ 3.3636 .0561 4 0.0 1.602 19.25 48.9 48.9
+ 3.3636 .0561 4 0.0 1.602 20.75 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 129.25 48.9 48.9
+ 4.3636 .0561 4 0.0 1.602 130.75 48.9 48.9
+ 5.3636 .0561 4 0.0 1.602 149.25 76.4 76.4
+ 5.3636 .0561 4 0.0 1.602 150.75 76.4 76.4
+ 6.3636 .0561 4 0.0 1.602 169.25 48.9 48.9
+ 6.3636 .0561 4 0.0 1.602 170.75 48.9 48.9
+ 0.5 2.61 4 0.0 .386 -12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 12.9 113.3 113.3
+ 0.5 2.61 4 0.0 .386 137.1 113.3 113.3
+ 0.5 2.61 4 0.0 .386 162.9 113.3 113.3
+BLANK card ending conductors
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+100. 60.00 1 1.00 1
+ 100. .01 1 1.00 1 9 10
+BLANK card ending frequency cards
+BLANK card ending LC cases
+ 1 .48D-7
+ .30 30 0 1 1 1 0
+ .30 30 0 1 1 1 0 .0
+$PUNCH, dcn3c.pch !
+C Punched cards of "JMARTI SETUP" that began at 10:07:31 on 20-Aug-91 from
+C a sun 3/140 workstation
+C -1SENDA RECA 2. 0.00 -2
+C 16 0.51359826038176265683E+03
+C 0.431802119789707717E+03 -0.589502442075644467E+03 -0.630030591311403100E+03
+C 0.399851051947631186E+04 0.216933819536543306E+05 0.925763110451664543E+05
+C 0.335631802797454584E+06 0.103348533458321809E+07 0.314802247167646047E+07
+C 0.108636136448393296E+08 0.214867385045098960E+08 0.345480317288025841E+08
+C 0.180854327003738545E+08 0.303536135525562577E+08 0.404523465145221725E+08
+C 0.678327893044214845E+08
+C 0.147749536166155071E+01 0.149384759544244283E+01 0.338084580366401877E+01
+C 0.347663890462675269E+02 0.274222090670830369E+03 0.128273485021289002E+04
+C 0.507724806290303059E+04 0.172599907368824934E+05 0.580681120918937231E+05
+C 0.220769332727780071E+06 0.928657933276530239E+06 0.306500624236313952E+07
+C 0.652078703205973748E+07 0.108987209923113696E+08 0.148001428261489496E+08
+C 0.251011325495531559E+08
+C 30 0.57237579326198218831E-05
+C 0.135595089441822880E+01 0.637349939717167224E+01 0.844893536681329138E+01
+C 0.108059779608878035E+02 0.126355952683280570E+02 0.150171219695762996E+02
+C 0.168772149991744627E+02 0.202293671626327978E+02 0.233375610592934137E+02
+C 0.252083255727078424E+02 0.700393107807853283E+02 0.912745365545104761E+02
+C 0.186914938232557483E+04 0.517629943326566627E+04 0.184721185449430814E+05
+C 0.732598565482461072E+04 0.703442425520987745E+05 0.445434958916523901E+05
+C 0.145355717746686598E+06 0.246512118313476531E+06 0.225437233402580285E+06
+C -0.259491413335790072E+06 0.848998863924005651E+06 0.824652528941186902E+05
+C 0.206098120308229402E+08 -0.186274683009221442E+08 0.131536034105610289E+08
+C -0.129847637126782481E+08 0.142666288816404080E+10 -0.143025138225962806E+10
+C 0.100318408443689384E+04 0.464315138722778283E+04 0.616027561194335431E+04
+C 0.781988852938061700E+04 0.918464713882178876E+04 0.108625564852548523E+05
+C 0.124409791994056541E+05 0.141700766867189177E+05 0.161306305081821029E+05
+C 0.192467742338885691E+05 0.261334525327020601E+05 0.169858310599361139E+05
+C 0.771093759676006302E+05 0.117604799225762763E+06 0.279017759387494298E+06
+C 0.304770838967292162E+06 0.640213450219832128E+06 0.798317940826885635E+06
+C 0.152869005613829079E+07 0.224508928406630363E+07 0.280107234803794092E+07
+C 0.415428852232479164E+07 0.373086422605056828E+07 0.482836392195153236E+07
+C 0.116829352695045918E+08 0.122954791987610608E+08 0.325167045566556931E+09
+C 0.325492212612123311E+09 0.341446775727152750E+08 0.341788222502879649E+08
+C -2SENDB RECB 2. 0.00 -2
+C 21 0.44638002921262409473E+03
+C 0.104448933487725390E+04 0.162968344316516919E+03 0.100833030728887934E+03
+C 0.659276900524803011E+02 0.691218366538096944E+02 0.195464038500958191E+04
+C 0.129622805718431409E+05 0.516820358663749066E+05 0.848672967484957335E+05
+C 0.200270253814592288E+06 0.199569833730296552E+06 0.299220123085675295E+06
+C 0.911181821823235485E+06 0.405158577268854529E+07 0.444756555110953934E+07
+C 0.284539444592342339E+07 0.485426581163450424E+07 0.660805640001724102E+07
+C 0.108575361724887323E+08 0.202128616502267830E+08 0.431685285887336656E+08
+C 0.441712799807083556E+01 0.643483512833459503E+01 0.102233692579961293E+02
+C 0.192563660844239557E+02 0.377906494010656786E+02 0.979514872634020094E+03
+C 0.637335177738464063E+04 0.252616769682396880E+05 0.423732836676186635E+05
+C 0.933487345886996773E+05 0.102538197796597480E+06 0.149167750067739165E+06
+C 0.229647347086144699E+06 0.517393605515095987E+06 0.114398527712398465E+07
+C 0.151967223356720991E+07 0.255737822457142966E+07 0.351156378800284537E+07
+C 0.578512089415501337E+07 0.107744774545924608E+08 0.233319241496927254E+08
+C 10 0.54962551345218937265E-05
+C 0.186480382320648516E+03 0.433970263049638618E+03 0.186023321577034767E+04
+C 0.370808185563189681E+04 0.703753694148877912E+04 0.818607385441724764E+05
+C 0.181339733414327959E+06 0.673654931643098011E+06 0.348495941539403331E+07
+C 0.792723361301830318E+07
+C 0.548778275639354251E+05 0.123221455744770981E+06 0.222314884248101007E+06
+C 0.247377016608636884E+06 0.287783826525072509E+06 0.191170200600726786E+07
+C 0.138117460205798247E+07 0.369901979466675455E+07 0.110823584854599070E+08
+C 0.288746060023297779E+08
+C -3SENDC RECC 2. 0.00 -2
+C 10 0.27972688296017668108E+03
+C 0.876726189401307579E+03 0.374130435385271653E+03 0.615586948586195717E+03
+C 0.715969013655861346E+02 0.914047179318123426E+02 0.146441826210069337E+03
+C 0.719304351400746782E+02 0.146908246065876654E+03 0.581396271265089126E+04
+C 0.835162611734264879E+06
+C 0.296328467154172781E+01 0.446576186459427760E+01 0.787940150051705679E+01
+C 0.106458324837110450E+02 0.143411880800437679E+02 0.250237513571616290E+02
+C 0.418026203850339044E+02 0.778079204018179524E+02 0.271573831619094562E+04
+C 0.391944092979719397E+06
+C 11 0.53843389791674477199E-05
+C 0.403595979610219331E+03 0.218285644123775091E+04 0.288260392015448542E+04
+C 0.242342560203101721E+04 0.315323358674214614E+04 0.661335964300889373E+04
+C 0.312979989478825446E+05 0.116368097200006479E+06 0.455662976051301754E+06
+C -0.610583087640212663E+07 0.122189617795018986E+09
+C 0.160607316474461608E+06 0.840919248090586974E+06 0.103590934463954705E+07
+C 0.106033477445308748E+07 0.129352394930283423E+07 0.253984943563891621E+07
+C 0.650494917853955459E+07 0.540413889966889657E+07 0.113306949724132959E+08
+C 0.599497477932795644E+09 0.131617333832152560E+09
+C -4SENDD RECD 2. 0.00 -2 6
+C 10 0.27972688296017668108E+03
+C 0.876726189401307579E+03 0.374130435385271653E+03 0.615586948586195717E+03
+C 0.715969013655861346E+02 0.914047179318123426E+02 0.146441826210069337E+03
+C 0.719304351400746782E+02 0.146908246065876654E+03 0.581396271265089126E+04
+C 0.835162611734264879E+06
+C 0.296328467154172781E+01 0.446576186459427760E+01 0.787940150051705679E+01
+C 0.106458324837110450E+02 0.143411880800437679E+02 0.250237513571616290E+02
+C 0.418026203850339044E+02 0.778079204018179524E+02 0.271573831619094562E+04
+C 0.391944092979719397E+06
+C 11 0.53843389791674477199E-05
+C 0.403595979610219331E+03 0.218285644123775091E+04 0.288260392015448542E+04
+C 0.242342560203101721E+04 0.315323358674214614E+04 0.661335964300889373E+04
+C 0.312979989478825446E+05 0.116368097200006479E+06 0.455662976051301754E+06
+C -0.610583087640212663E+07 0.122189617795018986E+09
+C 0.160607316474461608E+06 0.840919248090586974E+06 0.103590934463954705E+07
+C 0.106033477445308748E+07 0.129352394930283423E+07 0.253984943563891621E+07
+C 0.650494917853955459E+07 0.540413889966889657E+07 0.113306949724132959E+08
+C 0.599497477932795644E+09 0.131617333832152560E+09
+C -5SENDE RECE 2. 0.00 -2 6
+C 10 0.27972688296017668108E+03
+C 0.876726189401307579E+03 0.374130435385271653E+03 0.615586948586195717E+03
+C 0.715969013655861346E+02 0.914047179318123426E+02 0.146441826210069337E+03
+C 0.719304351400746782E+02 0.146908246065876654E+03 0.581396271265089126E+04
+C 0.835162611734264879E+06
+C 0.296328467154172781E+01 0.446576186459427760E+01 0.787940150051705679E+01
+C 0.106458324837110450E+02 0.143411880800437679E+02 0.250237513571616290E+02
+C 0.418026203850339044E+02 0.778079204018179524E+02 0.271573831619094562E+04
+C 0.391944092979719397E+06
+C 11 0.53843389791674477199E-05
+C 0.403595979610219331E+03 0.218285644123775091E+04 0.288260392015448542E+04
+C 0.242342560203101721E+04 0.315323358674214614E+04 0.661335964300889373E+04
+C 0.312979989478825446E+05 0.116368097200006479E+06 0.455662976051301754E+06
+C -0.610583087640212663E+07 0.122189617795018986E+09
+C 0.160607316474461608E+06 0.840919248090586974E+06 0.103590934463954705E+07
+C 0.106033477445308748E+07 0.129352394930283423E+07 0.253984943563891621E+07
+C 0.650494917853955459E+07 0.540413889966889657E+07 0.113306949724132959E+08
+C 0.599497477932795644E+09 0.131617333832152560E+09
+C -6SENDF RECF 2. 0.00 -2 6
+C 10 0.27972688296017668108E+03
+C 0.876726189401307579E+03 0.374130435385271653E+03 0.615586948586195717E+03
+C 0.715969013655861346E+02 0.914047179318123426E+02 0.146441826210069337E+03
+C 0.719304351400746782E+02 0.146908246065876654E+03 0.581396271265089126E+04
+C 0.835162611734264879E+06
+C 0.296328467154172781E+01 0.446576186459427760E+01 0.787940150051705679E+01
+C 0.106458324837110450E+02 0.143411880800437679E+02 0.250237513571616290E+02
+C 0.418026203850339044E+02 0.778079204018179524E+02 0.271573831619094562E+04
+C 0.391944092979719397E+06
+C 11 0.53843389791674477199E-05
+C 0.403595979610219331E+03 0.218285644123775091E+04 0.288260392015448542E+04
+C 0.242342560203101721E+04 0.315323358674214614E+04 0.661335964300889373E+04
+C 0.312979989478825446E+05 0.116368097200006479E+06 0.455662976051301754E+06
+C -0.610583087640212663E+07 0.122189617795018986E+09
+C 0.160607316474461608E+06 0.840919248090586974E+06 0.103590934463954705E+07
+C 0.106033477445308748E+07 0.129352394930283423E+07 0.253984943563891621E+07
+C 0.650494917853955459E+07 0.540413889966889657E+07 0.113306949724132959E+08
+C 0.599497477932795644E+09 0.131617333832152560E+09
+C 0.40824829 0.40824829 0.70710678 0.40824829 0.00000000 0.00000000
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.40824829 0.40824829 -0.70710678 0.40824829 0.00000000 0.00000000
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.40824829 0.40824829 0.00000000 -0.81649658 0.00000000 0.00000000
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.40824829 -0.40824829 0.00000000 0.00000000 0.70710678 0.40824829
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.40824829 -0.40824829 0.00000000 0.00000000 -0.70710678 0.40824829
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+C 0.40824829 -0.40824829 0.00000000 0.00000000 0.00000000 -0.81649658
+C 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+BLANK CARD ENDING "JMARTI SETUP" CASES
+BEGIN NEW DATA CASE
+BLANK card
+
diff --git a/benchmarks/dcn30.dat b/benchmarks/dcn30.dat
new file mode 100644
index 0000000..7fa763f
--- /dev/null
+++ b/benchmarks/dcn30.dat
@@ -0,0 +1,717 @@
+BEGIN NEW DATA CASE
+C 8th of ?? data subcases is a full-wave version of the preceding half-wave
+C subcase. This is comparable to Prof. Ned Mohan's DBRECT3.DAT (part
+C of "Computer Exercises for Power Electronics Education by N.Mohan;
+C January 1990"). Mohan's comment card had title " DIODE BRIDGE
+C RECTIFIER WITH A 3-PHASE INPUT " Changes are mentioned on comment
+C cards and in-line comments that follow. No snubber circuits or
+C damping resistors are being used, there are no manually-specified
+C initial conditions, and the time step dT is much larger than Mohan
+C was able to use, thanks to ISZC. 30 May 2000
+C Following request carries params MAXKNT IOPCVP
+C POCKET CALCULATOR VARIES PARAMETERS 4 0 { Loop five times
+INTERPOLATE SWITCH ZERO CROSSINGS { Request November, 1995, interpolate, average
+$DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+$DEPOSIT, NSMTH=1000 { Use SPY DEPOSIT to change STARTUP value so no averaging
+PRINTED NUMBER WIDTH, 9, 2, { Full precision on each of 8 columns of printout
+C $PARAMETER { This will be serviced by CIMAGE just as any other $-card would be
+C DELTAT__ = .000100 * KNT { Vary time step size dT = 100, 200, ... 500 usec
+C RESIST = 1.5 + KNT * 5.
+C RESIST = 24. + KNT * 0.4
+C RESIST = KNT * 15. - 5.
+C BLANK card ends $PARAMETER definitions that are processed just b4 branch cards
+C DELTAT__ .040 { Note large dT = 500 usec (Mohan used 50 usec)
+ .000100 .023 { Note large dT = 500 usec (Mohan used 50 usec)
+ 1 1 0 0 0 2
+ GENA TRANA 0.1 0.5
+ GENB TRANB GENA TRANA
+ GENC TRANC GENA TRANA
+C Note about load resistance (next). Mohan used 20 ohms, and for this curves
+C look decent. There is small overlap of positive & negative charging pulses.
+C As resistance is decreased (e.g., to 15 or 10 ohms), overlap increases and
+C charging current magnitude increases; and curves become more smooth. But
+C as resistance increases, the pulses separate. For 50 ohms, pulses are far
+C from overlapping, and curves look sufficiently smooth. But for 30 ohms, we
+C have about the worst case: neither overlap nor separation. This seems to
+C correspond to desired opening and closing at the same time: a conflict. Of
+C course, one must come first, and the other is delayed. For 30 ohms, the
+C opening is delayed, and for a big dT, the result is substantial reverse
+C current.
+C NEG POS 20.0 { Load resistance connects the 2 dc terminals
+C NEG POS 20.0 { Load resistance connects the 2 dc terminals
+C Some capacitance is needed for smoothing. But placement is not unique. In
+C the preceding subcase, note that one side of the load was grounded, so it
+C was natural to place a single capacitance across the load. But neither side
+C of the load is grounded in this full-wave case. To maintain balance, equal
+C capacitors will be added from the load terminals to ground (next). Yes, a
+C capacitor could be added across the load, too, but this is not necessary.
+C POS 0.1 900.0 { 1st of 2 capacitances to ground
+C NEG 0.1 900.0 { 2nd of 2 capacitances to ground
+ POS NEG 500.0
+C NEG POS 16.5 { Mohan's resistor is demanding of dT } 1
+ NEG POS 25.0 { Drawing more load current is easier } 1
+C NEG POS RESIST 1
+C POS 0.0 150.0 { 1st of 2 capacitances to ground
+C NEG 0.0 150.0 { 2nd of 2 capacitances to ground
+ POS 1.E4
+ NEG POS
+BLANK card ending branch cards
+11TRANA POS 13
+11TRANB POS 13
+11TRANC POS 13
+11NEG TRANA 13
+11NEG TRANB 13
+11NEG TRANC 13
+C Mohan paralleled each of his diodes with R-C snubber circuits to control
+C the transients upon opening. But for ISZC, not only is this not necessary,
+C but it would pose a complication. Snubber circuits would introduce fast
+C dynamics that would prevent use of large dT, so omit them.
+BLANK card ending switch cards
+14GENA 80.0 60.0 -1.
+14GENB 80.0 60.0 -120.0 -1.
+14GENC 80.0 60.0 -240.0 -1.
+C About preceding sources, note presence during a phasor solution. On the
+C other hand, all 6 diodes are open during this, so only the 3 smoothing
+C reactors (GEN, TRAN) are excited, and they carry no current. Whether
+C a phasor solution is, or is not used, has little effect. The dominant
+C dynamics are associated with charging the capacitances at the load, and
+C this occurs only in the dT loop.
+BLANK card ending source cards
+C In this location, Mohan would specify initial conditions manually. That
+C is not being done here. Instead, the circuit will start itself. The use
+C of CLOSED as in the preceding half-wave case is not practical because it
+C would be either 1) completely wrong (if used on 2 or more diodes); or 2)
+C partly wrong (if used on just one). It is simpler to let ATP start itself.
+C This is plenty fast (plots below show good repetition after about 1 cycle).
+ TRANA TRANB TRANC POS NEG { List of nodes for node voltage output
+BLANK card ending output requests (here, just node voltages)
+ CALCOMP PLOT { Needed to cancel PRINTER PLOT of preceding subcase
+C The following plots document the steady state. Approximately, we will plot
+C the second cycle. After about half a cycle, the switching sequence is
+C right; and after one cycle, the output is close to the steady state as
+C the following plots over the interval [20 msec, 40 msec] show:
+ 2DCNEW-30h. 3-phase, full-wave diode bridge
+ 184 2. 3. 23. BRANCH { Forward voltages across diodes of positive half
+ NEG TRANA TRANB POS NEG TRANC
+ 184 .1 22. 23. BRANCH { Forward voltages across diodes of positive half
+ NEG TRANA TRANB POS NEG TRANC
+ 194 2. 3. 23. -10. 10.BRANCH { Forward diode currents that charge positive 1/2
+ NEG TRANA TRANB POS NEG TRANC
+ 194 .1 22. 23. -10. 10.BRANCH { Forward diode currents that charge positive 1/2
+ NEG TRANA TRANB POS NEG TRANC
+ 184 2. 3. 23. BRANCH { Forward voltages across diodes of positive half
+ TRANA POS NEG TRANB TRANC POS
+ 184 .1 22. 23. BRANCH { Forward voltages across diodes of positive half
+ TRANA POS NEG TRANB TRANC POS
+C 194 .1 22. 23. -10. 10.BRANCH { Forward diode currents that charge positive 1/2
+C TRANA POS NEG TRANB TRANC POS
+BLANK card ending batch-mode plot cards
+BLANK card ending all statistical tabulation request cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
+C SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+C 184 2. 20. 40. POS NEG { dc voltage (voltage across load)
+C 144 2. 20. 40. TRANA TRANB TRANC { ac voltages that drive the bridge
+C SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 184 .1 22. 23. BRANCH { Forward voltages across diodes of positive half
+ TRANA POS TRANB POS TRANC POS
+ 194 .1 22. 23. -10. 10.BRANCH { Forward diode currents that charge positive 1/2
+ TRANA POS TRANB POS TRANC POS
+C SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+
+
+ 184 .1 22. 23. BRANCH { Forward voltages across diodes of negative half
+ NEG TRANA NEG TRANB NEG TRANC
+ 194 .1 22. 23. -10. 10.BRANCH { Forward diode currents that charge positive 1/2
+ NEG TRANA NEG TRANB NEG TRANC
+
+
+
+BEGIN NEW DATA CASE
+C FILE NAME = DBRECT3.DAT " DIODE BRIDGE RECTIFIER WITH A 3-PHASE INPUT "
+C Computer Exercises for Power Electronics Education by N.Mohan; January 1990
+C - - TIME DATA
+50.00E-6 50.E-3
+ 1000 3 1
+C - - BRANCH DATA
+00VSA VA 0.001 0.1 1
+00VSB VB VSA VA 1
+00VSC VC VSA VA 1
+C --------- TO MAKE LINE - LINE VOLTAGES AVAILABLE FOR PLOTTING
+00VSA VSB 1.00E9 2
+00VSB VSC 1.00E9 2
+00VSC VSA 1.00E9 2
+C - - Small resistance in series with the top diodes
+00POSA POSP 0.01
+00POSB POSP 0.01
+00POSC POSP 0.01
+C --------- SNUBBERS (NEXT 6 RECORDS)
+00POSP VA 33.0 1.0
+00POSP VB POSP VA
+00POSP VC POSP VA
+00VA NEG POSP VA
+00VB NEG POSP VA
+00VC NEG POSP VA
+C - - dc-side of the rectifier
+00POSP POS 0.005 0.5 1
+00POS NEG 500.0 2
+00NEG POS 16.5 1
+C - - For plotting
+00POSP NEG 1.0E+9 2
+BLANK RECORD ENDING BRANCHES
+C - - SIX DIODES
+11VA POSA 13
+11VB POSB 13
+11VC POSC 13
+11NEG VA 13
+11NEG VB 13
+11NEG VC 13
+BLANK RECORD ENDING SWITCHES
+C - - THREE PHASE VOLTAGES
+14VSA 169.7 60.0
+14VSB 169.7 60.0 -120.0
+14VSC 169.7 60.0 -240.0
+BLANK RECORD ENDING SOURCES
+C - - INITIAL CONDITIONS
+ 2POS 140.0
+ 2NEG -140.0
+ 3POS NEG 280.0
+C - - EMTP VARIABLES TO BE OUTPUTTED
+ VSA VSB VSC
+BLANK RECORD ENDING NODE VOLTAGE OUTPUT
+
+
+
+
+
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-30
+C 1st of ?? data subcases that illustrate INTERPOLATE SWITCH ZERO CROSSINGS
+C Each involves this special request word, which if removed, will result
+C in troublesome oscillation of the trapezoidal rule.
+C 1st subcase is from Hermann Dommel. It existed when WSM took over at BPA
+C following Dommel's departure in July of 1973. Look on page 6A-14 of the
+C the ATP Rule Book. This very old data case was recreated 26 April 2000 as
+C changes from late 1995 (file OS6PUM.ZIP of 5.25-inch floppy) were merged
+C with the current UTPF. No longer mandatory, the interpolation of switch
+C current zeros, followed by time-shift, followed by half step (average of
+C values at zero point and full step), are requested by following key word:
+C
+INTERPOLATE SWITCH ZERO CROSSINGS 1 { Interpolate and average
+ .000200 .001
+ 1 1 1 1
+ GEN SWIT .18 0.8 3
+BLANK card ending branches
+ SWIT -1. 3
+BLANK card ending switches
+14GEN 100. 60. 140.0 0. -1.
+BLANK card ending sources
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GEN SWIT SWIT GEN SWIT GEN
+C SWIT TERRA TERRA SWIT
+C *** Phasor I(0) = 4.5373670E+01 Switch "SWIT " to " " closed in the steady-state.
+C 0 0.0 -76.604444 0.0 0.0 -76.604444 45.3736699 45.3736699
+C 1 .2E-3 -81.228717 0.0 0.0 -81.228717 24.0817772 24.0817772
+C 2 .4E-3 -85.391432 0.0 0.0 -85.391432 2.65273205 2.65273205
+C *** Open switch "SWIT " to " " after 6.00000000E-04 sec.
+C 3 .42474E-3 -85.846349 0.0 0.0 -85.846349 0.0 0.0
+C 4 .52474E-3 0.0 -87.66771 -87.66771 -87.66771 0.0 -.1776E-14
+ 1 { Request all node-voltage outputs
+C 5 .72474E-3 .14211E-13 -91.107544 -91.107544 -91.107544 0.0 -.3909E-16
+C 6 .92474E-3 -.1421E-13 -93.953968 -93.953968 -93.953968 0.0 -.3737E-16
+C 7 .00112474 .14211E-13 -96.266527 -96.266527 -96.266527 0.0 -.3572E-16
+ CALCOMP PLOT { Needed to cancel PRINTER PLOT of preceding subcase
+ 2DCNEW-30a. Dommel Rule Book, dT = 200 usec
+ SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 1840.1 0.0 1.-120.120.GEN SWIT SWIT { 1st of 2 in overlay is V-branch
+ 1940.1 0.0 1. -50. 50.GEN SWIT SWIT { 2nd of 2 in overlay is I-branch
+BLANK card ending plot
+BEGIN NEW DATA CASE
+C 2nd of ?? data subcases is an extreme, single-phase simplification of the
+C basic network of DC-53. First, the Type-59 S.M. is replaced by sinusoidal
+C sources, and then phases "a" and "c" are dropped. The three saturable
+C TRANSFORMERs are removed, too. Finally, data is collapsed to a minimum.
+C Only 10 steps are required, to demonstrate oscillation on opening.
+INTERPOLATE SWITCH ZERO CROSSINGS { Request November, 1995, interpolate, average
+$DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+PRINTED NUMBER WIDTH, 11, 2, { Full precision on each of 8 columns of printout
+ .000100 .001 60.0 60.0
+ 1 1 0 0 0
+ NAVH MCC2 6.51162.978285.0
+ MCC2 EQV 19.52
+C The following resistor is in parallel with the following inductor. Maybe
+C it originally was needed to damp the trapezoidal rule oscillation upon
+C switch opening. But with the new interpolation, it represents more of
+C a problem than a solution, so remove it:
+C SWT MCC2 4830.0
+ MCC2 SWT 13.01 2
+BLANK card terminating branch cards
+C Note we close switch in the steady state, so it is ready to be opened
+C rapidly. The source angles are adjusted so this will occur quickly.
+ SWT -1. 0.0 1
+BLANK card terminating switch cards
+14EQV 360. 60. -187.0 -1.
+14NAVH 361. 60. -188.0 -1.
+BLANK card terminating source cards
+C First 5 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 1 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time MCC2 SWT MCC2 NAVH EQV SWT
+C SWT TERRA
+C *** Phasor I(0) = 1.4052450E+00 Switch "SWT " to " " closed in the steady-state.
+C 0 0.0 -176.453 0.0 -176.453 -357.4868 -357.3166 1.405245
+C 1 .1E-3 -177.0167 0.0 -177.0167 -359.1264 -358.7163 .89312005
+ 1 { Request the output of all node voltages
+C 2 .2E-3 -177.3288 0.0 -177.3288 -360.2556 -359.6063 .37972612
+C *** Open switch "SWT " to " " after 3.00000000E-04 sec.
+C 3 .27389E-3 -177.3733 0.0 -177.3733 -360.7118 -359.8862 -.134E-16
+C 4 .32389E-3 0.0 -414.938 -414.938 -360.8557 -359.9114 0.0
+C 5 .42389E-3 0.0 -414.5018 -414.5018 -360.9265 -359.7452 0.0
+C 6 .52389E-3 0.0 -413.4144 -413.4144 -360.3956 -358.9791 0.0
+C 7 .62389E-3 0.0 -411.766 -411.766 -359.3525 -357.7029 0.0
+C 8 .72389E-3 0.0 -409.5588 -409.5588 -357.7988 -355.9185 0.0
+C 9 .82389E-3 0.0 -406.7957 -406.7957 -355.7366 -353.6282 0.0
+C 10 .92389E-3 0.0 -403.4805 -403.4805 -353.1689 -350.8354 0.0
+C 11 .00102389 0.0 -399.6176 -399.6176 -350.0993 -347.544 0.0
+ CALCOMP PLOT
+ 2DCNEW-30b. 1-phase DC-53. dT = 100 usec
+ SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 144 .1 0.0 1.0-400.400.NAVH MCC2 SWT
+ 184 .1 0.0 1.0-400.400.MCC2 SWT
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 3rd of ?? data subcases is a 3-phase version of preceding. This is much
+C closer to the original DC-53, which was 3-phase, after all. Among other
+C extensions is use of Type-51,52,53 (i.e., coupling). But TRANSFORMER is
+C still missing.
+INTERPOLATE SWITCH ZERO CROSSINGS { Request November, 1995, interpolate, average
+$DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+$DEPOSIT, NSMTH=1000 { Use SPY DEPOSIT to change STARTUP value so no averaging
+PRINTED NUMBER WIDTH, 11, 2, { Full precision on each of 8 columns of printout
+ .000100 .001 60.0 60.0
+ 1 1 0 0 0
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+C The following resistors are in parallel with the following inductors. Maybe
+C it originally was needed to damp the trapezoidal rule oscillation upon
+C switch opening. But with the new interpolation, it represents more of
+C a problem than a solution, so remove it:
+C MCC2 A 4830.
+C SWT BMCC2 B 4830.
+C MCC2 C 4830.
+C If the preceding are 3 resistors are enable, there will be seen a small
+C oscillation in node voltage "SWT B". Presumably this is because the time
+C step is too big for the R-L time constant = L / R = ( 13.01 / 377 ) / 4830
+C = 7.1448E-6 usec. Yes, dT = 100 usec is much too big for this.
+ MCC2 A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 C 13.01
+BLANK card terminating branch cards
+ SWT B -1. 0.0
+BLANK card terminating switch cards
+14EQV A 389997. 60. -63.81293 -1.
+14EQV B 389997. 60. -183.81293 -1.
+14EQV C 389997. 60. -303.81293 -1.
+14NAVH A 390000. 60. -64.0 -1.
+14NAVH B 390000. 60. -184.0 -1.
+14NAVH C 390000. 60. -304.0 -1.
+BLANK card terminating source cards
+ SWT BMCC1 AMCC1 BMCC1 CMCC2 AMCC2 BMCC2 CNAVH ANAVH BNAVH C
+C First 10 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Step Time SWT B MCC1 A MCC1 B MCC1 C MCC2 A MCC2 B MCC2 C NAVH A NAVH B NAVH C
+C *** Phasor I(0) = 2.4468296E+03 Switch "SWT B" to " " closed in the steady-state.
+C 0 0.0 0.0 -174481.4 394812.58 -290998.8 85657.845 -193693.8 112922.73 170964.75 -389050. 218085.23
+C 1 .1E-3 0.0 -168194.6 405836.81 -314720.1 90810.935 -194755.9 109275.08 184054.8 -387748.2 230116.44
+C 2 .2E-3 0.0 -161668.8 416284.52 -337994.3 95834.982 -195541.2 105472.16 196883.3 -385895.4 241820.64
+C 3 .3E-3 0.0 -154913.4 426140.87 -360788.3 100722.85 -196048.7 101519.35 209432.02 -383494.2 253181.21
+C 4 .4E-3 0.0 -147938. 435391.84 -383069.8 105467.58 -196277.6 97422.292 221683.12 -380548.1 264181.98
+C *** Open switch "SWT B" to " " after 5.00000000E-04 sec.
+C 5 .43214E-3 0.0 -145628.6 438166.14 -390055.7 106944.28 -196261.6 96061.088 225519.14 -379427.4 267596.76
+C 6 .48214E-3 -465800.7 -144863.5 172826.49 -403694.3 106372.43 -465800.7 91075.297 231452.34 -377626.9 272868.34
+C 7 .58214E-3 -465328.5 -137555.4 181349.77 -425004.4 110860.46 -465328.5 86744.66 243175.67 -373796. 283243.34
+C 8 .68214E-3 -464115.1 -130135.1 189912.53 -445787. 115170.55 -464115.1 82277.151 254494.72 -369337.3 293146.52
+C 9 .78214E-3 -462262.7 -122588.9 198400.92 -465995.4 119320.82 -462262.7 77696.575 265452.12 -364353.9 302633.12
+C 10 .88214E-3 -459774.1 -114927.6 206801.85 -485600.6 123305.38 -459774.1 73009.427 276032.3 -358852.6 311689.66
+C 11 .98214E-3 -456652.5 -107162. 215102.21 -504574.9 127118.52 -456652.5 68222.349 286220.22 -352841.4 320303.27
+C 12 .00108214 -452902.2 -99303.03 223288.85 -522891. 130754.82 -452902.2 63342.121 296001.41 -346328.8 328461.72
+BLANK card terminating requests for node voltage output
+ CALCOMP PLOT
+ 2DCNEW-30c. 3-phase DC-53. dT = 100 usec
+ SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 144 .1 0.0 1.0-6.E56.E5MCC1 AMCC1 BMCC1 C
+ 144 .1 0.0 1.0-6.E52.E5MCC2 AMCC2 BMCC2 CSWT B
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 4th of ?? data subcases has all of preceding plus the saturable
+C TRANSFORMER --- different because it uses [A] and [R] internally.
+INTERPOLATE SWITCH ZERO CROSSINGS { Request November, 1995, interpolate, average
+$DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+$DEPOSIT, NSMTH=1000 { Use SPY DEPOSIT to change STARTUP value so no averaging
+PRINTED NUMBER WIDTH, 10, 2, { Full precision on each of 8 columns of printout
+ .000100 .001 60.0 60.0
+ 1 1 0 0
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285. 1
+ MCC1 BMCC2 B 8285. 1
+ MCC1 CMCC2 C 8285. 1
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13 1
+ NAVL B 2500. 1.13 1
+ NAVL C 2500. 1.13 1
+C SWT AMCC2 A 4830. { These look like artificial damping resistors
+C SWT BMCC2 B 4830. { since they parallel inductors. Remove them,
+C SWT CMCC2 C 4830. { to remove any such artificial influence.
+ MCC2 ASWT A 13.01 3
+ MCC2 BSWT B 13.01 3
+ MCC2 CSWT C 13.01 3
+BLANK card terminating branch cards
+ SWT A -1. 0.0 { Note switches close in steady state, so we
+ SWT B -1. 0.0 { can open immediately to generate those
+ SWT C -1. 0.0 { famous transients of the full test case
+BLANK card terminating switch cards
+14EQV A 389997. 60. -58.81293 -1.
+14EQV B 389997. 60. -178.81293 -1.
+14EQV C 389997. 60. 61.18707 -1.
+14NAVL A 21229. 60. -09.896562 -1.
+14NAVL B 21229. 60. -129.896562 -1.
+14NAVL C 21229. 60. -249.896562 -1.
+BLANK card terminating source cards
+ NAVH ANAVH BNAVH CMCC1 AMCC1 BMCC1 CMCC2 AMCC2 BMCC2 C
+C First 12 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 9 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time MCC2 A MCC2 B MCC2 C NAVH A NAVH B NAVH C MCC1 A MCC1 B MCC1 C MCC2 A MCC2 B
+C SWT A SWT B SWT C
+C
+C MCC2 C MCC1 A MCC1 B MCC1 C NAVL A NAVL B NAVL C MCC2 A MCC2 B MCC2 C
+C MCC2 A MCC2 B MCC2 C TERRA TERRA TERRA SWT A SWT B SWT C
+C *** Phasor I(0) = -8.0963211E+03 Switch "SWT A" to " " closed in the steady-state.
+C *** Phasor I(0) = 1.1523735E+03 Switch "SWT B" to " " closed in the steady-state.
+C *** Phasor I(0) = 6.9439476E+03 Switch "SWT C" to " " closed in the steady-state.
+C 0 0.0 99818.42 -178181. 78362.1 226393.8 -283398. 57004.25 -194702. 165656.9 29044.77 99818.42 -178181.
+C 78362.1 3599.475 2334.334 -5933.81 .0041897 -.018448 .0225037 -8096.32 1152.373 6943.948
+C 1 .1E-3 103717.6 -178619. 74901.35 225066.7 -288180. 63113.22 -174220. 175592.3 -1371.88 103717.6 -178619.
+C 74901.35 3688.875 2225.321 -5914.2 .0032972 -.01786 .0228056 -7801.43 635.4241 7166.004
+C 2 .2E-3 107469.4 -178804. 71334.16 223419.8 -292552. 69132.51 -153492. 185278.4 -31786.6 107469.4 -178804.
+C 71334.16 3773.034 2113.145 -5886.18 .0023986 -.017241 .023067 -7495.45 117.572 7377.877
+C *** Open switch "SWT B" to " " after 3.00000000E-04 sec.
+C 3 .2227E-3 108286.3 -178788. 70501.52 222973.9 -293450. 70476.37 -148738. 187417. -38679.4 108286.3 -178788.
+C 70501.52 3790.918 2087.004 -5877.92 .0021941 -.017096 .0231202 -7423.59 -.71E-14 7423.585
+C 4 .2727E-3 108170.2 0.0 66755.81 233082.2 -338388. 84541.63 -140151. -57621.2 -55765.2 108170.2 -428483.
+C 66755.81 3825.099 2046.881 -5863.39 .0018122 -.016824 .023218 -7266.86 0.0 7520.305
+C 5 .3727E-3 111674.3 0.0 63026.43 230983. -341937. 90444. -119092. -48039. -86099.1 111674.3 -428029.
+C 63026.43 3890.705 1965.149 -5830.18 .0010551 -.016276 .0233989 -6948.34 0.0 7708.34
+BLANK card terminating requests for node voltage output
+C 6 .4727E-3 114997.9 0.0 59194.89 228475.8 -344872. 96177.22 -97928.3 -38144.4 -116365. 114997.9 -426883.
+C 59194.89 3950.755 1880.493 -5788.72 -.222E-3 -.015324 .0236596 -6619.93 0.0 7885.42
+C 7 .5727E-3 118160.3 0.0 55281.4 225631.3 -347289. 101761.1 -76665. -28047. -146506. 118160.3 -425144.
+C 55281.4 4005.17 1793.014 -5739.05 -.851E-3 -.014821 .0237371 -6282.11 0.0 8051.28
+C 8 .6727E-3 121157. 0.0 51291.52 222453.6 -349184. 107187.8 -55332.9 -17761.7 -176479. 121157. -422812.
+C 51291.52 4053.883 1702.812 -5681.24 -.001957 -.013949 .0238914 -5935.38 0.0 8205.688
+C 9 .7727E-3 123983.6 0.0 47230.91 218947.1 -350554. 112449.5 -33962.2 -7304.08 -206241. 123983.6 -419891.
+C 47230.91 4096.836 1609.991 -5615.35 -.002707 -.013315 .02393 -5580.21 0.0 8348.432
+C 10 .8727E-3 126636.2 0.0 43105.33 215116.9 -351399. 117538.9 -12583.4 3310.273 -235750. 126636.2 -416386.
+C 43105.33 4133.977 1514.661 -5541.48 -.003714 -.012471 .0239951 -5217.1 0.0 8479.316
+C 11 .9727E-3 129110.9 0.0 38920.64 210968.6 -351716. 122448.8 8773.356 14065.26 -264964. 129110.9 -412301.
+C 38920.64 4165.265 1416.934 -5459.71 -.004523 -.01175 .0239814 -4846.56 0.0 8598.159
+C 12 .0010727 131404.3 0.0 34682.77 206508.1 -351507. 127172.3 30077.71 24944.53 -293841. 131404.3 -407642.
+C 34682.77 4190.666 1316.926 -5370.15 -.005468 -.010909 .0239667 -4469.11 0.0 8704.8
+ CALCOMP PLOT
+ 2DCNEW-30d. 3-phase DC-53. dT = 100 usec
+ SUPERIMPOSE 3 { Superimpose plots of the following 4 cards
+ 144 .1 0.0 1.0 NAVH ANAVH BNAVH C { Not a trace of oscillation in
+ 144 .1 0.0 1.0 MCC1 AMCC1 BMCC1 C { Not a trace of oscillation in
+ 144 .1 0.0 1.0 MCC2 AMCC2 BMCC2 C { either of these two plots.
+ SUPERIMPOSE 2 { Superimpose plots of the following 4 cards
+ 194 .1 0.0 1.0 BRANCH
+ MCC1 AMCC2 AMCC1 BMCC2 BMCC1 CMCC2 C
+ 184 .1 0.0 1.0 BRANCH
+ MCC2 ASWT AMCC2 BSWT BMCC2 CSWT C
+ SUPERIMPOSE 2 { Superimpose plots of the following 4 cards
+ 194 .1 0.0 1.0 BRANCH
+ MCC2 ASWT AMCC2 BSWT BMCC2 CSWT C
+ 194 .1 0.0 1.0 BRANCH
+ NAVL A NAVL B NAVL C
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 5th of ?? data subcases bears no relation to the preceding. Instead,
+C it begins the consideration of diodes with the simplest power supply:
+C single-phase and half wave. If one looks hard enough, one can note
+C similarity to Prof. Ned Mohan's DBRECT1.DAT (part of "Computer Exercises
+C for Power Electronics Education by N.Mohan; January 1990"). Exercise 2,
+C was entitled "Diode bridge rectifier 1-phase" by Mohan. Of course,
+C this was correct, but it also was full-wave, involving two diodes. The
+C circuit being used here consists of just the positive half. Among other
+C differences are lack of snubber circuits and damping resistors, and a
+C much larger time step size dT. These differences are possible, and
+C resulting waveforms are smooth, thanks to ISZC. 24 May 2000.
+INTERPOLATE SWITCH ZERO CROSSINGS { Request November, 1995, interpolate, average
+$DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+$DEPOSIT, NSMTH=1000 { Use SPY DEPOSIT to change STARTUP value so no averaging
+PRINTED NUMBER WIDTH, 9, 2, { Full precision on each of 8 columns of printout
+ .000400 .020 { Note much larger time step (Mohan used 50 usec)
+ 1 1
+ GEN ANODE .01 1.0 3
+C Mohan separated his series resistance from series inductance. Because WSM
+C understands no need for this, a single branch (the preceding) is used.
+C Mohan paralleled the preceding inductor (minus the resistance) by a
+C large resistor. Understanding no physical reason, this resistor has
+C been removed. It is believe that Mohan used the resistor to dampen
+C trapezoidal rule oscillations. But using ISZC, there is no such need.
+C In fact, the resistor would create a problem because it is so large.
+C The associated time constant L/R would be too large to track using any
+C reasonable dT. So, delete the apparent damping resistor.
+ CATHOD 1000.0 { Smoothing capacitor } 3
+ CATHOD 20.0 { Load resistance parallels capacitor }
+BLANK card ending branches
+11ANODE CATHOD 13
+C Mohan paralleled each of his diodes with an R-C snubber circuit to control
+C the transient upon opening. But for ISZC, this represents a complication.
+C A snubber circuit would introduce fast dynamics that are unnecessary to
+C basic theoretical understanding of the circuit. With the snubber, dT must
+C be kept small. But without it, dT can be almost arbitrarily large. The
+C 400 usec used here is not the maximum, but rather a step size that makes
+C output curves almost smooth. Larger dT such as 500 usec produce equally-
+C valid solutions, but the plots appear significantly more jagged.
+BLANK card ending switch cards
+14GEN 170.0 60.0 -90.0
+BLANK card ending source cards
+ 2CATHOD 120.0 { Node voltage initial condition is voltage of load capacitor
+ 3CATHOD 120.0 { Branch initial condition gives cap voltage
+ 1 { Request for the output of all node voltages
+ CALCOMP PLOT
+ 2DCNEW-30e. Half-wave, 1-phase diode rectifier
+ 144 2. 0.0 20. GEN ANODE CATHOD
+ 184 2. 0.0 20.-300.100.BRANCH
+ GEN ANODE ANODE CATHOD CATHOD
+ 194 2. 0.0 20.-20.0 60.BRANCH
+ GEN ANODE ANODE CATHODCATHOD
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 6th of ?? data subcases is a modification of Prof. Ned Mohan's
+C VDOUBLER.DAT (part of "Computer Exercises for Power Electronics
+C Education by N.Mohan; January 1990"). Mohan's comment card had title
+C " VOLTAGE DOUBLER RECTIFIER 1-PHASE " Changes are mentioned on
+C comment cards and in-line comments that follow. No snubber
+C circuits or damping resistors are being used, and the time step
+C dT is much larger. 26 May 2000
+INTERPOLATE SWITCH ZERO CROSSINGS { Request November, 1995, interpolate, average
+$DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+$DEPOSIT, NSMTH=1000 { Use SPY DEPOSIT to change STARTUP value so no averaging
+PRINTED NUMBER WIDTH, 9, 2, { Full precision on each of 8 columns of printout
+ .000400 .020 { Note larger time step (Mohan used 50 usec)
+ 1 1
+ VSA VAP 1.0 3
+C Mohan had a damping resistor in parallel with preceding reactor.
+ POS 0.1 1000.0 1
+ NEG 0.1 1000.0 1
+ POS NEG 80.0 2
+BLANK card ending branch cards
+C The following 2 diodes are the only two switches. Mohan had a MEASURING
+C switch in series with the first branch, but this no longer is needed
+C after removal of the parallel damping resistor. That inductor now can be
+C used to measure the source current.
+11VAP POS 13
+11NEG VAP 13
+C Mohan had snubber circuits in parallel with each of the two preceding diodes
+BLANK card ending switch cards
+14VSA 170.0 60.0 -90.0
+BLANK card ending source cards
+C The following initial conditions are substantially different than those used
+C by Mohan. They are believed to be close to right, however. They do provide
+C continuation of the steady-state:
+ 2POS 145.0 { Node voltage initial condition is voltage of load capacitor
+ 2NEG -178.0 { Node voltage initial condition is voltage of load capacitor
+ 3POS 145.0 { Branch initial condition gives cap voltage
+ 3 NEG 178.0 { Branch initial condition gives cap voltage
+ VSA POS NEG VAP
+BLANK card ending output requests (here, just node voltages)
+ 2DCNEW-30f. Mohan's Voltage doubler
+ 144 2. 0.0 20. VSA POS NEG VAP
+ 184 2. 0.0 20.-350. 50.BRANCH
+ VAP POS NEG VAP VSA VAP
+ 194 2. 0.0 20. BRANCH
+ VAP POS NEG VAP VAP VSA
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 7th of ?? data subcases is a 3-phase version of the 5th subcase.
+C It bears some resemblance to Prof. Ned Mohan's DBRECT3.DAT
+C (part of "Computer Exercises for Power Electronics Education
+C by N.Mohan; January 1990"). Mohan's comment card had title
+C " DIODE BRIDGE RECTIFIER WITH A 3-PHASE INPUT " But like the 5th
+C subcase, present data is half-wave rather than full-wave. I.e.,
+C rather than six diodes, it involves just three. Also, instead of
+C using manually-specified initial conditions, WSM's data illustrates
+C reliance upon a phasor solution, using CLOSED for one diode. The
+C resulting automatic initialization is surprisingly good. Within 90
+C degrees the shapes are familiar, and within 180 degrees, the solution
+C seems to have settled into the steady state. Other changes to data
+C are mentioned on comment cards and in-line comments that follow. No
+C snubber circuits are being used thanks to ISZC, and the time step
+C dT is much larger than Mohan used (200 vs. 50 usec). dT = 400 usec
+C can be used, and has been, but its is marginal for tracking the L-C
+C oscillation during charging. WSM. 30 May 2000
+INTERPOLATE SWITCH ZERO CROSSINGS { Request November, 1995, interpolate, average
+$DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+$DEPOSIT, NSMTH=1000 { Use SPY DEPOSIT to change STARTUP value so no averaging
+PRINTED NUMBER WIDTH, 9, 2, { Full precision on each of 8 columns of printout
+ .000200 .020
+ 1 1 0 0 0 -1
+ 5 5
+ GENA ANODA 0.1 0.3
+ GENB ANODB GENA ANODA
+ GENC ANODC GENA ANODA
+C The preceding reactance of 0.3 mH has been chosen near the minimum that will
+C prevent flopping of the diodes. Of course, load capacitance, resistance, &
+C this smoothing reactance form a series R-L-C circuit when a diode is closed.
+C For given R and C below, this L is near the minimum for a single charging
+C pulse for each cycle of each phase. For example, 0.2 will result in a very
+C small but distinct secondary pulse following the main pulse for each phase.
+C L = 0.15 mH will give a distinct secondary current pulse of more than 20%
+C of the primary pulse. But the pulses are very close together. For 0.1 mH,
+C the two become one, clearly revealing the oscillatory nature of the current
+C transient.
+ CATH 500.0
+ CATH 20.0
+BLANK card ending branch cards
+C For the following 3 diodes, only phase "a" is to be closed in the phasor
+C steady state. At time zero, phase "a" passes through its positive peak,
+C so timing is about right.
+11ANODA CATH CLOSED 13
+11ANODB CATH 13
+11ANODC CATH 13
+C Mohan paralleled the preceding diodes with R-C snubber circuits to control
+C the transient upon opening. But for ISZC, this represents a complication.
+C A snubber circuit would introduce fast dynamics that are unnecessary to
+C basic theoretical understanding of the circuit, so omit.
+BLANK card ending switch cards
+14GENA 80.0 60.0 -1.
+14GENB 80.0 60.0 -120.0 -1.
+14GENC 80.0 60.0 -240.0 -1.
+BLANK card ending source cards
+ ANODA ANODB ANODC CATH { List of nodes for node voltage output
+BLANK card ending output requests (here, just node voltages)
+ 2DCNEW-30g. 3-phase, half-wave diode bridge
+ 144 2. 0.0 20. ANODA ANODB ANODC CATH
+ SUPERIMPOSE 2 { Superimpose plots of the following 4 cards
+ 184 2. 0.0 20. BRANCH
+ ANODA CATH ANODB CATH ANODC CATH
+ 194 2. 0.0 20. BRANCH
+ ANODA CATH ANODB CATH ANODC CATH
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 8th of ?? data subcases is a full-wave version of the preceding half-wave
+C subcase. This is comparable to Prof. Ned Mohan's DBRECT3.DAT (part
+C of "Computer Exercises for Power Electronics Education by N.Mohan;
+C January 1990"). Mohan's comment card had title " DIODE BRIDGE
+C RECTIFIER WITH A 3-PHASE INPUT " Changes are mentioned on comment
+C cards and in-line comments that follow. No snubber circuits or
+C damping resistors are being used, there are no manually-specified
+C initial conditions, and the time step dT is much larger than Mohan
+C was able to use, thanks to ISZC. 30 May 2000
+INTERPOLATE SWITCH ZERO CROSSINGS { Request November, 1995, interpolate, average
+$DEPOSIT, D4FACT=-1. { Use SPY DEPOSIT to change STARTUP value to hold plot
+$DEPOSIT, NSMTH=1000 { Use SPY DEPOSIT to change STARTUP value so no averaging
+PRINTED NUMBER WIDTH, 9, 2, { Full precision on each of 8 columns of printout
+ .000500 .040 { Note large dT = 400 usec (Mohan used 50 usec)
+ 1 1 0 0 0
+ GENA TRANA 0.1 0.5
+ GENB TRANB GENA TRANA
+ GENC TRANC GENA TRANA
+ NEG POS 20.0 { Load resistance connects the 2 dc terminals
+C Some capacitance is needed for smoothing. But placement is not unique. In
+C the preceding subcase, note that one side of the load was grounded, so it
+C was natural to place a single capacitance across the load. But neither side
+C of the load is grounded in this full-wave case. To maintain balance, equal
+C capacitors will be added from the load terminals to ground (next). Yes, a
+C capacitor could be added across the load, too, but this is not necessary.
+ POS 0.1 900.0 { 1st of 2 capacitances to ground
+ NEG 0.1 900.0 { 2nd of 2 capacitances to ground
+BLANK card ending branch cards
+11TRANA POS 13
+11TRANB POS 13
+11TRANC POS 13
+11NEG TRANA 13
+11NEG TRANB 13
+11NEG TRANC 13
+C Mohan paralleled each of his diodes with R-C snubber circuits to control
+C the transients upon opening. But for ISZC, not only is this not necessary,
+C but it would pose a complication. Snubber circuits would introduce fast
+C dynamics that would prevent use of large dT, so omit them.
+BLANK card ending switch cards
+14GENA 80.0 60.0 -1.
+14GENB 80.0 60.0 -120.0 -1.
+14GENC 80.0 60.0 -240.0 -1.
+C About preceding sources, note presence during a phasor solution. On the
+C other hand, all 6 diodes are open during this, so only the 3 smoothing
+C reactors (GEN, TRAN) are excited, and they carry no current. Whether
+C a phasor solution is, or is not used, has little effect.
+BLANK card ending source cards
+C In this location, Mohan would specify initial conditions manually. That
+C is not being done here. Instead, the circuit will start itself. The use
+C of CLOSED as in the preceding half-wave case is not practical because it
+C would be either 1) completely wrong (if used on 2 or more diodes); or 2)
+C partly wrong (if used on just one). It is simpler to let ATP start itself.
+C This is plenty fast (plots below show repetition after about 1 cycle).
+ TRANA TRANB TRANC POS NEG { List of nodes for node voltage output
+BLANK card ending output requests (here, just node voltages)
+ 2DCNEW-30h. 3-phase, full-wave diode bridge
+ SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 144 2. 0.0 20. TRANA TRANB TRANC { ac voltages that drive the bridge
+ 144 2. 0.0 20. POS NEG { dc voltages that are the output
+ SUPERIMPOSE 2 { Superimpose plots of the following 4 cards
+ 184 2. 0.0 20. BRANCH { Forward voltages across diodes of positive half
+ TRANA POS TRANB POS TRANC POS
+ 194 2. 0.0 20. -40. 40.BRANCH { Forward diode currents that charge positive 1/2
+ TRANA POS TRANB POS TRANC POS
+ SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 184 2. 0.0 20. BRANCH { Forward voltages across diodes of negative half
+ NEG TRANA NEG TRANB NEG TRANC
+ 194 2. 0.0 20. -40. 40.BRANCH { Forward diode currents that charge negative 1/2
+ NEG TRANA NEG TRANB NEG TRANC
+ SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 144 2. 20. 40. TRANA TRANB TRANC { ac voltages that drive the bridge
+ 144 2. 20. 40. POS NEG { dc voltages that are the output
+ SUPERIMPOSE 2 { Superimpose plots of the following 4 cards
+ 184 2. 20. 40. BRANCH { Forward voltages across diodes of positive half
+ TRANA POS TRANB POS TRANC POS
+ 194 2. 20. 40. -40. 40.BRANCH { Forward diode currents that charge positive 1/2
+ TRANA POS TRANB POS TRANC POS
+ SUPERIMPOSE 2 { Superimpose plots of the following 2 cards
+ 184 2. 20. 40. BRANCH { Forward voltages across diodes of negative half
+ NEG TRANA NEG TRANB NEG TRANC
+ 194 2. 20. 40. -40. 40.BRANCH { Forward diode currents that charge negative 1/2
+ NEG TRANA NEG TRANB NEG TRANC
+C The preceding plots document settling into the steady state. After about
+C half a cycle, the switching sequence is right; after one cycle, the output
+C is close to the steady state. To see this, double T-max and plot (0, 40 ms)
+C Manual specification of limits of the diode currents serves to show the
+C steady-state pulses using a convenient scale. The initial inrush will be
+C lost off the top of the plot, but this detail is less interesting.
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+EOF
+
diff --git a/benchmarks/dcn31.dat b/benchmarks/dcn31.dat
new file mode 100644
index 0000000..c627272
--- /dev/null
+++ b/benchmarks/dcn31.dat
@@ -0,0 +1,55 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-28
+C 1st of ?? subcases illustrates creation of new C-like .PL4 file that was
+C inspired by Massimo Ceraolo of the University of Pisa in Italy. The date
+C of addition is 11 March 1999, and mention should be found in later issues
+C of the newsletter. There are no dynamics. The network is resistive, and
+C all voltages and currents are sinusoidal. An attempt has been made to
+C involve different types of variables: 1 branch voltage first, then a power,
+C then two node voltages, then a branch current, then energy, and finally,
+C a TACS signal (also power). The new C-like format should be better than
+C the old for concurrent, SPY-like plotting.
+$BEGIN PL4 COMMENTS
+C Massimo Ceraolo of the University
+C of Pisa in Italy can plot SPY-like.
+$END PL4 COMMENTS
+PRINTED NUMBER WIDTH, 9, 2,
+$DEPOSIT, NEWPL4=2 { Special value that characterizes new C-like .PL4 file type
+ .0005 .020
+ 1 1 1 0 0 0 0 2
+TACS HYBRID
+90GEN { Electric network source voltage
+91SWIT { Electric network switch current
+99VOLT = 0.5 * GEN { Half the source voltage = branch voltage
+99POWER = VOLT * SWIT { Branch power consumption = v(t) * i(t)
+33POWER { Output branch power
+BLANK card ending all TACS data
+ SWIT SEND 1.0 2
+ SEND 1.0 4
+BLANK card ending branch cards
+ GEN SWIT MEASURING 1
+BLANK card ending switch cards
+14GEN 100. 50.
+BLANK card ending source cards
+ SWIT SEND
+C First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);
+C Next 2 output variables are branch currents (flowing from the upper node to the lower node);
+C Next 1 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Branch power consumption (power flow, if a switch) is treated like a branch voltage for this grouping (1 variables);
+C Branch energy consumption (energy flow, if a switch) is treated like a branch current for this grouping (1 variables).
+C Step Time SWIT SEND SWIT SEND GEN SEND TACS
+C SEND TERRA SWIT TERRA POWER
+C *** Switch "GEN " to "SWIT " closed before 0.00000000E+00 sec.
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-3 49.3844 2438.82 98.7688 49.3844 49.3844 .609705 2438.82
+C 2 .1E-2 47.5528 2261.27 95.1057 47.5528 47.5528 1.78473 2261.27
+C 3 .0015 44.5503 1984.73 89.1007 44.5503 44.5503 2.84623 1984.73
+C .PL4 type code: 8 6 4 4 9 7 2
+C Variable class: V-bran Power V-node V-node I-bran Energy TACS
+BLANK card ending requests for node voltage output
+ PRINTER PLOT
+ 194 2. 0.0 20. SEND GEN SWIT
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcn4.dat b/benchmarks/dcn4.dat
new file mode 100644
index 0000000..0d79a92
--- /dev/null
+++ b/benchmarks/dcn4.dat
@@ -0,0 +1,287 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-4
+C Marti version of John Day to Lower Monumental fault simulation. Compare
+C with DC-31 for the Semlyen (2-exponential) version. Data from DCNEW-3
+C First of 2 subcases is unreduced; Second uses EDP Marti order reduction
+C Note column-80 output of Marti line illustrating this extension that 1st
+C became available 3 July 1987. To check, put comparable punches on the
+C first three branches below, since they are in series. Exact agreement.
+C The first subcase illustrates the common production choice for minimal
+C display of the Marti data: SKIP of columns 27-32 equal to unity. The
+C second subcase illustrates the other two possibilities: unity and two.
+C Modification 15 February 1999: Erase "1" in column 80 of 2nd phase of
+C the JMarti line. Output is identical as summarized in the April, 1999
+C newsletter. Lack of "{" results in the original blank not being seen
+C on the right of the interpreted data line. Instead, it shows a "1".
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ .000050 .02000 60. 60.
+ 1 1 1 1 1 -1 0
+ 5 5 20 20 50 50
+ JDGA JDA 15. { 1st of 3 branches in series with the
+ JDGB JDB 15. { Marti line. Key column 80 with "1"
+ JDGC JDC 15. { to check Marti branch current output
+C PUNCHED CARD OUTPUT OF "JMARTI SETUP" WHICH BEGAN AT 14.32.51 09/14/82
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 100. 5000. 1 138. 1 3-2
+C 100. 60.00 1 138. 1 3
+C 100. .01 1 138. 1 9 10 3
+C
+-1JDA LMA 2. -2 3 1
+ 18 0.47487144790587633736E+03
+ -0.117967342612603676E+01 -0.316671345021416945E+01 0.255662317832426673E+02
+ -0.601654631032706213E+02 -0.118825306534453652E+03 0.128169142098635430E+04
+ 0.589610442538186533E+04 0.292891488173549769E+05 0.115665757459954655E+06
+ 0.456394278488149546E+06 0.153681652821077613E+07 0.681848054466802243E+07
+ 0.155477562610202006E+08 0.231789897204889809E+08 0.143827766961221036E+08
+ 0.241524708800130989E+08 0.245049034784953832E+08 0.476808364145524129E+08
+ 0.321645453133055891E+00 0.897616891499021768E+00 0.165632367032913183E+01
+ 0.166669419493737986E+01 0.253073682990780913E+01 0.200014655383098283E+02
+ 0.124257951002701473E+03 0.657345842950598183E+03 0.278623017775457413E+04
+ 0.117145310573639467E+05 0.427410884649070877E+05 0.202553264108715757E+06
+ 0.968789502295299084E+06 0.296908522006270138E+07 0.737968316276072920E+07
+ 0.121009167337626640E+08 0.132891445947112725E+08 0.252097199908134253E+08
+ 14 0.86849922355034181931E-03
+ 0.580543547692016874E-01 0.269744993210885436E+00 0.358646519088149721E+00
+ 0.775351125410302933E+00 0.512138885239557462E+01 0.838265420474258915E+01
+ 0.700229782114550385E+02 0.393084113996385128E+03 0.138208543918962840E+04
+ 0.706160326497018531E+03 0.527246586822120662E+04 0.528343251309079615E+05
+ 0.178307801042203880E+08 -0.178914532139174500E+08
+ 0.228360173022402533E+02 0.102750699821169636E+03 0.139222638455845377E+03
+ 0.269608322018776320E+03 0.389220463867018722E+03 0.427793721751318500E+03
+ 0.132148883486994549E+04 0.277178340638843952E+04 0.449341296469570784E+04
+ 0.596603161966094024E+04 0.114714152641659587E+05 0.268314807408425590E+05
+ 0.204027813729699328E+05 0.204231841543429041E+05
+-2JDB LMB 2. -2 3 1
+ 13 0.28580875773089406522E+03
+ 0.381761604345214016E+04 -0.269529222495194318E+04 0.445018224900628539E+03
+ 0.214658130219351907E+03 0.897325461203551775E+02 0.130480129629523390E+03
+ 0.683037485206990933E+02 0.746626715384045969E+02 0.133938729387751110E+04
+ 0.249954495902361043E+04 0.187764116219525090E+05 0.391031620802855759E+06
+ 0.562668431190421223E+07
+ 0.358668999787749571E+01 0.376679186833120605E+01 0.706439034439901437E+01
+ 0.109721634064781350E+02 0.140506334140286961E+02 0.234292596911152251E+02
+ 0.407686998675834982E+02 0.797598814775078289E+02 0.129106739969348078E+04
+ 0.242138030939135859E+04 0.182362646041542116E+05 0.379814243183306855E+06
+ 0.548808385606378759E+07
+ 13 0.74123751236187229426E-03
+ 0.192189595814863363E+02 0.210970481418782463E+01 0.383406546226866283E+02
+ 0.307999912886148377E+02 0.634013410317139090E+03 -0.253243195247046863E+03
+ 0.210540381301789816E+05 0.755533947306502050E+05 0.229576557459444489E+07
+ 0.607777584135737231E+13 -0.156620677810598129E+13 0.153143851607186420E+13
+ -0.604300997216751013E+13
+ 0.325736126030671755E+04 0.366694913707514260E+03 0.675727697588602189E+04
+ 0.516024976370228876E+04 0.249456113770459378E+05 0.115067772934717399E+06
+ 0.105205466546493019E+06 0.240930799961836921E+06 0.633276538663731131E+06
+ 0.975820481990592802E+06 0.976796302472583498E+06 0.974176721795814519E+06
+ 0.975150898517610403E+06
+-3JDC LMC 2. -2 3 1
+ 13 0.27248404992352924125E+03
+ 0.928429573805075023E+03 0.205756155237142632E+03 0.538106630554037608E+03
+ 0.105199818376817531E+03 0.821382476778671116E+02 0.133356875032521778E+03
+ 0.654774478488469374E+02 0.612546121562179922E+02 0.905544916173387175E+02
+ 0.973244316091135204E+03 0.267481871266201051E+04 0.138566411938941123E+05
+ 0.646075558955914967E+06
+ 0.297277477955690506E+01 0.413177069940672514E+01 0.739410817322770197E+01
+ 0.103072536754267949E+02 0.135874091964585515E+02 0.234792992956042887E+02
+ 0.384075708508238121E+02 0.692539345057236435E+02 0.997101922255402791E+02
+ 0.941460937860312015E+03 0.259295974388396348E+04 0.134538093446956691E+05
+ 0.628668738677182439E+06
+ 20 0.74871165651714274120E-03
+ 0.249456855794677017E-01 0.516637614002139312E+01 0.435227595525510835E+01
+ 0.696293545843379624E+01 0.113102519337405665E+02 0.107077756312168120E+02
+ 0.136526319661978881E+02 0.103057494642840792E+03 0.647491597081196815E+03
+ 0.221213037293261823E+04 0.164010494681972204E+05 0.517776934139508076E+05
+ 0.393233870054795443E+06 -0.101893253559274247E+05 -0.173413454816459129E+06
+ 0.524218185885897590E+06 0.711044562955687729E+12 -0.559640645251973480E+12
+ 0.582892127161358521E+12 -0.734296849907947113E+12
+ 0.887741958857318814E+01 0.183177145564733675E+04 0.151655674045953921E+04
+ 0.245910936284398730E+04 0.383273362703089043E+04 0.399285585783856465E+04
+ 0.496339281485561617E+04 0.253464455063045348E+05 0.272156609769823021E+05
+ 0.475215596432249440E+05 0.149791320991727040E+06 0.333884409922466803E+06
+ 0.541583000670874084E+06 0.670984155731562481E+06 0.569769858667429973E+06
+ 0.132622344670840449E+07 0.440534234233555838E+07 0.440974768467789434E+07
+ 0.436787151891064062E+07 0.437223939042955148E+07
+ 0.57154434 0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ 0.58879039 0.00000000 0.80696823
+ 0.00000000 0.00000000 0.00000000
+ 0.57154434 -0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ TOWER 2.0 { Tower footing resistance of 2 ohms
+BLANK card ending branch cards
+ LMC TOWER .01015 1.0 { Fault simulation, begin at 10.15 msec } 1
+BLANK card ending switch cards
+14JDGA 303000. 60. 0. -1.
+14JDGB 303000. 60. -120. -1.
+14JDGC 303000. 60. 120. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.128103943251E+06
+C Last gen: JDGC -151500. 303000. -279.4644345812 316.35590847715
+C Last gen: 262405.69734669 120.00000 -148.2588635888 -152.0535725
+ LMA LMB LMC JDA { Request 4 node voltage outputs
+C Step Time LMA LMB LMC JDA LMC
+C TOWER
+C 0 0.0 320640.9953 -161304.651 -159688.528 307737.4167 0.0
+C 1 .5E-4 320588.1463 -156040.018 -164893.924 307673.3095 0.0
+C 2 .1E-3 320431.7475 -150721.966 -170048.981 307509.7473 0.0
+BLANK card ending the specification of program outputs
+C 400 .02 197731.9751 326395.1488 -327.855554 94753.88632 -163.927777
+C ... (cont.) -336.375185 179.8564629 23.55116113
+C Variable max : 424967.7275 347731.4081 301713.7469 310463.6296 2478.807822
+C Times of max : .01785 .0195 .0102 .0164 .0147
+C Variable min : -338566.201 -556333.279 -320711.082 -307732.31 -163.927777
+C Times of min : .01215 .0122 .0028 .00835 .02
+ PRINTER PLOT
+ 194 2. 0.0 20. JDA LMA { Axis limits: (-3.520, 5.295)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-4
+C 2nd of 2 subcases is identical to first except that Marti pole reduction
+C is used. This uses the modeling contributed by Electricidade de Portugal
+C (J. Allen Lima). See 1986 European spring meeting paper by Allen Lima.
+C Both the phasor steady-state solution for initial conditions and the
+C ensuing transient simulation are different from the first subcase, but
+C the differences are very, very small (of no engineering consequence).
+C Yet the 2nd case simulates significantly faster: 40 sec vs. 51 sec for
+C time spent within the time-step loop on an Apollo DN420. Outputs differ
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ .000050 .020 60. 60.
+ 1 1 1 1 1 -1 0
+ 5 5 20 20 50 50
+ JDGA JDA 15. 1
+ JDGB JDB 15.
+ JDGC JDC 15.
+C PUNCHED CARD OUTPUT OF "JMARTI SETUP" WHICH BEGAN AT 14.32.51 09/14/82
+C 1.3636 .05215 4 1.602 -20.75 50. 50.
+C 1.3636 .05215 4 1.602 -19.25 50. 50.
+C 2.3636 .05215 4 1.602 - 0.75 77.5 77.5
+C 2.3636 .05215 4 1.602 0.75 77.5 77.5
+C 3.3636 .05215 4 1.602 19.25 50. 50.
+C 3.3636 .05215 4 1.602 20.75 50. 50.
+C 0.5 2.61 4 0.386 -12.9 98.5 98.5
+C 0.5 2.61 4 0.386 12.9 98.5 98.5
+C
+C 100. 5000. 1 138. 1 3-2
+C 100. 60.00 1 138. 1 3
+C 100. .01 1 138. 1 9 10 3
+C
+-1JDA LMA 2. 1.0 -2 3 { Note PDT0 = 1.0 }
+ 18 0.47487144790587633736E+03
+ -0.117967342612603676E+01 -0.316671345021416945E+01 0.255662317832426673E+02
+ -0.601654631032706213E+02 -0.118825306534453652E+03 0.128169142098635430E+04
+ 0.589610442538186533E+04 0.292891488173549769E+05 0.115665757459954655E+06
+ 0.456394278488149546E+06 0.153681652821077613E+07 0.681848054466802243E+07
+ 0.155477562610202006E+08 0.231789897204889809E+08 0.143827766961221036E+08
+ 0.241524708800130989E+08 0.245049034784953832E+08 0.476808364145524129E+08
+ 0.321645453133055891E+00 0.897616891499021768E+00 0.165632367032913183E+01
+ 0.166669419493737986E+01 0.253073682990780913E+01 0.200014655383098283E+02
+ 0.124257951002701473E+03 0.657345842950598183E+03 0.278623017775457413E+04
+ 0.117145310573639467E+05 0.427410884649070877E+05 0.202553264108715757E+06
+ 0.968789502295299084E+06 0.296908522006270138E+07 0.737968316276072920E+07
+ 0.121009167337626640E+08 0.132891445947112725E+08 0.252097199908134253E+08
+ 14 0.86849922355034181931E-03
+ 0.580543547692016874E-01 0.269744993210885436E+00 0.358646519088149721E+00
+ 0.775351125410302933E+00 0.512138885239557462E+01 0.838265420474258915E+01
+ 0.700229782114550385E+02 0.393084113996385128E+03 0.138208543918962840E+04
+ 0.706160326497018531E+03 0.527246586822120662E+04 0.528343251309079615E+05
+ 0.178307801042203880E+08 -0.178914532139174500E+08
+ 0.228360173022402533E+02 0.102750699821169636E+03 0.139222638455845377E+03
+ 0.269608322018776320E+03 0.389220463867018722E+03 0.427793721751318500E+03
+ 0.132148883486994549E+04 0.277178340638843952E+04 0.449341296469570784E+04
+ 0.596603161966094024E+04 0.114714152641659587E+05 0.268314807408425590E+05
+ 0.204027813729699328E+05 0.204231841543429041E+05
+-2JDB LMB 1. 1.0 -2 3 { Note PDT0 = 1.0 }
+ 13 0.28580875773089406522E+03
+ 0.381761604345214016E+04 -0.269529222495194318E+04 0.445018224900628539E+03
+ 0.214658130219351907E+03 0.897325461203551775E+02 0.130480129629523390E+03
+ 0.683037485206990933E+02 0.746626715384045969E+02 0.133938729387751110E+04
+ 0.249954495902361043E+04 0.187764116219525090E+05 0.391031620802855759E+06
+ 0.562668431190421223E+07
+ 0.358668999787749571E+01 0.376679186833120605E+01 0.706439034439901437E+01
+ 0.109721634064781350E+02 0.140506334140286961E+02 0.234292596911152251E+02
+ 0.407686998675834982E+02 0.797598814775078289E+02 0.129106739969348078E+04
+ 0.242138030939135859E+04 0.182362646041542116E+05 0.379814243183306855E+06
+ 0.548808385606378759E+07
+ 13 0.74123751236187229426E-03
+ 0.192189595814863363E+02 0.210970481418782463E+01 0.383406546226866283E+02
+ 0.307999912886148377E+02 0.634013410317139090E+03 -0.253243195247046863E+03
+ 0.210540381301789816E+05 0.755533947306502050E+05 0.229576557459444489E+07
+ 0.607777584135737231E+13 -0.156620677810598129E+13 0.153143851607186420E+13
+ -0.604300997216751013E+13
+ 0.325736126030671755E+04 0.366694913707514260E+03 0.675727697588602189E+04
+ 0.516024976370228876E+04 0.249456113770459378E+05 0.115067772934717399E+06
+ 0.105205466546493019E+06 0.240930799961836921E+06 0.633276538663731131E+06
+ 0.975820481990592802E+06 0.976796302472583498E+06 0.974176721795814519E+06
+ 0.975150898517610403E+06
+-3JDC LMC 0. 1.0 -2 3 { Note PDT0 = 1.0 }
+ 13 0.27248404992352924125E+03
+ 0.928429573805075023E+03 0.205756155237142632E+03 0.538106630554037608E+03
+ 0.105199818376817531E+03 0.821382476778671116E+02 0.133356875032521778E+03
+ 0.654774478488469374E+02 0.612546121562179922E+02 0.905544916173387175E+02
+ 0.973244316091135204E+03 0.267481871266201051E+04 0.138566411938941123E+05
+ 0.646075558955914967E+06
+ 0.297277477955690506E+01 0.413177069940672514E+01 0.739410817322770197E+01
+ 0.103072536754267949E+02 0.135874091964585515E+02 0.234792992956042887E+02
+ 0.384075708508238121E+02 0.692539345057236435E+02 0.997101922255402791E+02
+ 0.941460937860312015E+03 0.259295974388396348E+04 0.134538093446956691E+05
+ 0.628668738677182439E+06
+ 20 0.74871165651714274120E-03
+ 0.249456855794677017E-01 0.516637614002139312E+01 0.435227595525510835E+01
+ 0.696293545843379624E+01 0.113102519337405665E+02 0.107077756312168120E+02
+ 0.136526319661978881E+02 0.103057494642840792E+03 0.647491597081196815E+03
+ 0.221213037293261823E+04 0.164010494681972204E+05 0.517776934139508076E+05
+ 0.393233870054795443E+06 -0.101893253559274247E+05 -0.173413454816459129E+06
+ 0.524218185885897590E+06 0.711044562955687729E+12 -0.559640645251973480E+12
+ 0.582892127161358521E+12 -0.734296849907947113E+12
+ 0.887741958857318814E+01 0.183177145564733675E+04 0.151655674045953921E+04
+ 0.245910936284398730E+04 0.383273362703089043E+04 0.399285585783856465E+04
+ 0.496339281485561617E+04 0.253464455063045348E+05 0.272156609769823021E+05
+ 0.475215596432249440E+05 0.149791320991727040E+06 0.333884409922466803E+06
+ 0.541583000670874084E+06 0.670984155731562481E+06 0.569769858667429973E+06
+ 0.132622344670840449E+07 0.440534234233555838E+07 0.440974768467789434E+07
+ 0.436787151891064062E+07 0.437223939042955148E+07
+ 0.57154434 0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ 0.58879039 0.00000000 0.80696823
+ 0.00000000 0.00000000 0.00000000
+ 0.57154434 -0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ TOWER 2.0 { Tower footing resistance of 2 ohms
+BLANK card ending branch cards
+ LMC TOWER .01015 1.0 { Fault simulation, begin at 10.15 msec } 1
+BLANK card ending switch cards
+C 3 April 2001, convert source amplitudes from 303000 to 303 as follows:
+ MULTIPLY AMPLITUDE BY 1000. { Make the following sources 303 kV:
+14JDGA 303. 60. 0. -1.
+14JDGB 303. 60. -120. -1.
+14JDGC 303. 60. 120. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.124918624343E+06
+C Last gen: JDGC -151500. 303000. -279.4624472922 316.35703640845
+C Last gen: 262405.69734669 120.00000 -148.2650162331 -152.0524195
+ LMA LMB LMC JDA JDC { Request 5 node voltage outputs
+C Step Time LMA LMB LMC JDA JDC
+C 0 0.0 320640.8987 -161303.989 -159689.113 307737.3954 -153723.975
+C 1 .5E-4 320587.1971 -156038.731 -164894.302 307672.5389 -158716.521
+C 2 .1E-3 320430.8956 -150720.74 -170049.393 307509.2832 -163659.172
+BLANK card ending the specification of program outputs
+C Last step begins: 400 .02 197649.3723 326414.6256 -327.938584 94724.73048
+C Variable maxima : 425159.9536 348039.9881 301713.8005 310510.138 306756.3219
+C Times of maxima : .01785 .0195 .0102 .0164 .0109
+C Variable minima : -338650.835 -556398.868 -320711.275 -307732.404 -307734.974
+C Times of minima : .01215 .0122 .0028 .00835 .0028
+ PRINTER PLOT { Plot limits: (-5.564, 4.252)
+ 1 SMOOTH
+ 144 2. 0.0 20. LMA LMB LMC Lower Mon. Fault Voltage [volts]
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcn5.dat b/benchmarks/dcn5.dat
new file mode 100644
index 0000000..717b631
--- /dev/null
+++ b/benchmarks/dcn5.dat
@@ -0,0 +1,257 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-5
+C Derive Marti representation of 400-kV overhead Portuguese line as used
+C in subsequent simulation of DCNEW-7. From J. Allen Lima of EDP, 1981.
+C Discontinuity of April, 1992: the default conductance to ground was made
+C smaller, which changes the answers. To reproduce the previous answers
+C (we do not want to change these, for historical reasons), we have replaced
+C the previously-blank columns 33-40 of the Marti fitting card by 0.48D-7.
+C If erased, the smaller current default value of 0.32D-8 would be used.
+C 11 December 2001, add 2 definitions of STARTUP parameters. While using
+C RUNTP DISK, we want to see vector screen plots of the fitting. Salford
+C EMTP uses NOCALC = -1 for this. As for the great DISLIN graphics of
+C Mingw32 ATP, these are unaffected; they do not use NOCALC.
+$DEPOSIT, D4FACT=2.0 { Hold plots on screen for 2 seconds in spite of STARTUP
+$DEPOSIT, NOCALC=-1 { We want screen graphics during DISK in spite of STARTUP
+C Note about preceding. It would have been more general to move this from
+C the first to the 2nd subcase. But operation then would be defective. It
+C is necessary to make the change to NOCALC before the first use. Also,
+C do not try to cancel the definition at the start of some later subcase.
+C This, too, will be defective for Salford EMTP. Value NOCALC = -1 must
+C apply to the entire disk file if it applies at all. Of course, the user
+C normally will make the change outside of data and within STARTUP. The
+C use here merely documents the use in data, and illustrates use for one
+C standard test case.
+JMARTI SETUP
+$ERASE
+C LINHA CEDILLO-ORIOL (EDP23.DAT)
+C EXEMPLO DE APLICACAO - ANEXO 2
+BRANCH CEDIL1ORIOL1CEDIL2ORIOL2CEDIL3ORIOL3
+LINE CONSTANTS
+ 10.231 0.0840 4 1.25 -39.4 70.97 32.25 15.8 0.0 2
+ 20.231 0.0840 4 1.25 0.0 70.97 32.25 15.8 0.0 2
+ 30.231 0.0840 4 1.25 39.4 70.97 32.25 15.8 0.0 2
+ 00.5 0.58 4 .575 -25.76 100.07 76.12
+ 00.5 0.58 4 .575 25.76 100.07 76.12
+BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data case
+ 250.0 5000.0 1 39.77 1
+ 250.0 50.0 1 39.77 1
+ 250.0 .01 1 39.77 9 10 1
+BLANK card ending frequency cards of imbedded "LINE CONSTANTS" data case
+BLANK card ending "LINE CONSTANTS" data cases
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C LECT +1 -4
+ 1 .48D-7
+ .30 30 0 1 1 0 0
+ .30 30 0 1 1 0 0 .0
+$PUNCH
+C Punched cards of "JMARTI SETUP" that began at 11-Aug-87 13.48.31
+C -1CEDIL1ORIOL1 2. 0.00 -2 3
+C 13 0.41285804706219800000E+03
+C 0.117013827128701600E+04 0.109328155224148600E+05 0.565854842148188200E+04
+C 0.486728968691983400E+04 0.707738202163730700E+05 0.683747081419827600E+06
+C 0.353541780131411400E+07 0.158128637229056500E+08 0.342732557798577400E+08
+C 0.393504407219363000E+08 0.341282907181993800E+08 0.204464663801654300E+08
+C 0.576218378853537400E+08
+C 0.658089815842887500E+01 0.690898889439574300E+02 0.124258964382556600E+03
+C 0.223516853729638100E+03 0.270128036573363500E+04 0.269143242842107800E+05
+C 0.146979058765937700E+06 0.698197935976008100E+06 0.314038859911038900E+07
+C 0.746337177863556100E+07 0.266392944394791100E+08 0.155396621655433500E+08
+C 0.219748648076802900E+08
+C 14 0.22647930777147510000E-03
+C 0.331451503980230500E+00 0.957810893440665900E+00 0.110134713681638100E+02
+C 0.180908805160478500E+02 0.781367826984978700E+02 0.103291086579887900E+04
+C 0.425775964441755200E+04 0.731076147881571700E+04 0.645086114448789600E+05
+C -0.121580640576776300E+07 0.120529056645769800E+07 0.269226714026515400E+11
+C -0.538881685119132500E+11 0.269654304065261300E+11
+C 0.589872958561511400E+02 0.171405582109428700E+03 0.179182409973538700E+04
+C 0.268435133910598700E+04 0.325142423749699900E+04 0.131857420615934700E+05
+C 0.213446094244524200E+05 0.291840101919225200E+05 0.635302462418500200E+05
+C 0.520162387212404600E+06 0.520682549599617000E+06 0.144355307435927900E+06
+C 0.144499662743363700E+06 0.144644162406106900E+06
+C -2CEDIL2ORIOL2 2. 0.00 -2 3
+C 14 0.32434436644879670000E+03
+C 0.252272221491383900E+04 -0.783260653525317500E+03 0.843607760308153000E+03
+C 0.405537446805999600E+03 0.172880473437216700E+03 0.230195610382546000E+03
+C 0.660733376851304400E+02 0.356064973429300400E+04 0.360876600484696400E+05
+C 0.458067308721601900E+06 0.155426951919825100E+07 0.349466741634103300E+07
+C 0.831361356808634600E+07 0.267191748194155000E+08
+C 0.395606796435294500E+01 0.463636540679569400E+01 0.937357763832626400E+01
+C 0.153396557146477500E+02 0.203063670799592800E+02 0.331878663859569700E+02
+C 0.611409934802217200E+02 0.268325289733025000E+04 0.271015097222632500E+05
+C 0.344182439511496500E+06 0.117037498667061200E+07 0.264512776776344300E+07
+C 0.633446917806616700E+07 0.205787510722953700E+08
+C 13 0.21476948015004290000E-03
+C 0.129886637076557500E+02 0.884003674519057400E+02 0.565725100840623100E+03
+C 0.292315788164491400E+04 0.117634493299715700E+05 0.532876816095669600E+05
+C 0.389311630824632000E+06 0.168009410995213200E+07 -0.473619579064887500E+06
+C 0.469591802445442400E+06 0.116082359059264000E+12 -0.233025568883434800E+12
+C 0.116941075804808200E+12
+C 0.257364856264644300E+04 0.165926108688265800E+05 0.470409224941954100E+05
+C 0.986656254049737000E+05 0.163110687161601600E+06 0.273917039852386800E+06
+C 0.492292953769284000E+06 0.752972255828020600E+06 0.140712894268528100E+08
+C 0.140853607162796500E+08 0.122661653779630500E+07 0.122784315433410000E+07
+C 0.122907099748843300E+07
+C -3CEDIL3ORIOL3 2. 0.00 -2 3
+C 11 0.28528038941022320000E+03
+C 0.105748940794460900E+04 0.844409223042977800E+03 0.989216010327055800E+03
+C 0.195811001056642700E+03 0.654649799725072200E+02 0.207639338793363700E+03
+C 0.194266409628094900E+03 0.878586181627698400E+02 0.171400400143261400E+03
+C 0.585371148745679700E+04 0.290267832276061300E+06
+C 0.291079232024637700E+01 0.541078559821623500E+01 0.100447144771793100E+02
+C 0.147071822048762200E+02 0.182300039492140500E+02 0.316863800567847800E+02
+C 0.503710160254755600E+02 0.800538621073617100E+02 0.148612948128817500E+03
+C 0.452161584069224300E+04 0.224665949971083600E+06
+C 13 0.21343895805884290000E-03
+C 0.108554887622543600E+02 0.236929928387411900E+03 0.325918823811401900E+03
+C 0.115252813965977800E+03 0.302921999671820500E+04 0.837524968172409600E+05
+C 0.344224576617094500E+06 0.348234393920939100E+06 0.961491764497367900E+07
+C 0.646090509980150900E+10 -0.636446729379484800E+10 0.109996742832034700E+11
+C -0.111065069364993700E+11
+C 0.207273725615293600E+04 0.441443915140279000E+05 0.617690223349205100E+05
+C 0.216547308002615800E+05 0.140708626146584300E+06 0.111273186182077900E+07
+C 0.171705317383626400E+07 0.212273774822868700E+07 0.588027295979568100E+07
+C 0.121782848302581600E+08 0.121904631150884000E+08 0.100139997953964900E+08
+C 0.100240137951918800E+08
+C 0.58951122 -0.70710678 -0.41265641
+C 0.00000000 0.00000000 0.00000000
+C 0.55222554 0.00000000 0.81205257
+C 0.00000000 0.00000000 0.00000000
+C 0.58951122 0.70710678 -0.41265641
+C 0.00000000 0.00000000 0.00000000
+BLANK card ending "JMARTI SETUP" data cases
+BEGIN NEW DATA CASE
+C 2nd of 3 subcases serves to document correct use of the METRIC switch
+C of LINE CONSTANTS with JMARTI SETUP. There was a problem prior to
+C the end of October, 1992 (see paragraph ending the October newsletter).
+JMARTI SETUP
+BRANCH JDA LMA JDB LMB JDC LMC
+LINE CONSTANTS
+METRIC
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3161 .1151 4 2.355 -6.5 22. 8.0
+C 2.3161 .1151 4 2.355 0.0 22. 8.0 --- disabled phase b
+C 3.3161 .1151 4 2.355 6.5 22. 8.0 --- disabled phase c
+C 0.5 4.189 4 0.914 -4.5 27.3 15.7 --- disabled ground wire
+ 0.5 4.189 4 0.914 4.5 27.3 15.7
+BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data
+1500. 60. 1 108.7
+1500. .01 1 108.7 9 10
+BLANK card ending frequency cards of inbedded "LINE CONSTANTS" data
+BLANK card ending "LINE CONSTANTS" cases (back to "JMARTI SETUP")
+C Interesting observation about shunt conductance G on next data card. Here
+C we leave the associated data field blank, meaning that the default value
+C will be used. This requires a high-order (25-th order) polynomial. If
+C instead the erroneous English value .48D-7 of the first subcase were used,
+C the order would drop to 17. This is reasonable: with more leakage to
+C ground, the function changes less for frequencies. As the shunt G goes to
+C zero, the peak characteristic impedance approaches infinity.
+ 1 { Note use of default conductance G to ground }
+ .30 30 0 1 3 0 0
+ .30 30 0 1 3 0 0 .0
+$PUNCH
+C -1JDA LMA 2. 0.00 -2
+C 25 0.46006674819799320600E+03
+C -0.353674337503784091E+04 0.474463046762956129E+04 0.419877687068265857E+03
+C 0.120883875226538931E+04 0.137235831982550076E+04 0.176629375847576239E+04
+C 0.257098909773354399E+04 0.378828009143586360E+04 0.142803911584829507E+04
+C 0.265038440421150699E+05 0.580530772060140735E+05 0.290005305743382560E+05
+C 0.676240207790939604E+05 0.175744603974291211E+06 0.115920870054683113E+07
+C 0.568319643487089128E+07 0.919434012446274423E+07 0.170951429217248112E+08
+C 0.181624166300059595E+08 0.163578552517132629E+08 0.207902755237276070E+08
+C 0.163600109479811397E+08 0.305274580680562929E+08 0.282210275921647735E+08
+C 0.372990397194275335E+08
+C 0.277486902226732169E+00 0.268023805038167807E+00 0.415219939737164312E+00
+C 0.100965215215095117E+01 0.208586147663919608E+01 0.431742026198558549E+01
+C 0.938106002799715278E+01 0.216289195749565871E+02 0.471679540507255553E+02
+C 0.500972912994803551E+03 0.219672165983386822E+04 0.286843653676094892E+04
+C 0.114041795092961475E+05 0.297253629145985179E+05 0.991818044909751771E+05
+C 0.496349599086955830E+06 0.162826334212861327E+07 0.310812887668634393E+07
+C 0.660681407251698059E+07 0.123076413226896413E+08 0.154718145716374685E+08
+C 0.114181912129457910E+08 0.233626069519292787E+08 0.205401237474932187E+08
+C 0.289354784763300457E+08
+C 14 0.38047368960473913100E-03
+C 0.191762654465991029E-01 0.271854415897994640E+00 0.254872400058983795E+01
+C 0.960087067333501488E+01 0.353570965616266478E+02 0.689188689085494133E+02
+C 0.261362377354598903E+04 0.665059273530828341E+04 0.688588924417370727E+05
+C -0.304814667012787238E+07 0.302098170955132880E+07 0.392207514357697449E+11
+C -0.784954225679361268E+11 0.392746200573015366E+11
+C 0.335866402155424960E+01 0.477240584977659666E+02 0.433612099555737530E+03
+C 0.124259419864469488E+04 0.188504607192751701E+04 0.144958307619464109E+04
+C 0.172785300546916297E+05 0.280151013482649433E+05 0.736644708225197538E+05
+C 0.537133173259724048E+06 0.537670306432983838E+06 0.182411092478490581E+06
+C 0.182593503570969304E+06 0.182776097074540158E+06
+C 0.58951122
+C 0.00000000
+BLANK card ending JMARTI SETUP data cases
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases serves to document correct use of the METRIC switch
+C of LINE CONSTANTS with JMARTI SETUP. This 3rd is identical to the 2nd
+C except this case is untransposed (see the extra "1" punch in column 70 of
+C frequency cards). Of course, with just 1 phase, answers are unchanged.
+JMARTI SETUP
+BRANCH JDA LMA JDB LMB JDC LMC
+LINE CONSTANTS
+METRIC
+C LINE CONSTANTS DATA FOR JOHN DAY TO LOWER MONUMENTAL 500-KV LINE.
+ 1.3161 .1151 4 2.355 -6.5 22. 8.0
+C 2.3161 .1151 4 2.355 0.0 22. 8.0 --- disabled phase b
+C 3.3161 .1151 4 2.355 6.5 22. 8.0 --- disabled phase c
+C 0.5 4.189 4 0.914 -4.5 27.3 15.7 --- disabled ground wire
+ 0.5 4.189 4 0.914 4.5 27.3 15.7
+BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data
+C This 3rd case adds "1" punch in column 70 to indicate no transposition.
+C Also needed is an extra frequency card for the steady state (2nd of 3):
+1500. 60. 1 108.7 1
+1500. 60. 1 108.7 1
+1500. .01 1 108.7 9 10 1
+BLANK card ending frequency cards of inbedded "LINE CONSTANTS" data
+BLANK card ending "LINE CONSTANTS" cases (back to "JMARTI SETUP")
+C Interesting observation about shunt conductance G on next data card. Here
+C we leave the associated data field blank, meaning that the default value
+C will be used. This requires a high-order (25-th order) polynomial. If
+C instead the erroneous English value .48D-7 of the first subcase were used,
+C the order would drop to 17. This is reasonable: with more leakage to
+C ground, the function changes less for frequencies. As the shunt G goes to
+C zero, the peak characteristic impedance approaches infinity.
+ 1 { Note use of default conductance G to ground }
+ .30 30 0 1 3 0 0
+ .30 30 0 1 3 0 0 .0
+$PUNCH
+C -1JDA LMA 2. 0.00 -2
+C 25 0.46006674819799320600E+03
+C -0.353674337503784091E+04 0.474463046762956129E+04 0.419877687068265857E+03
+C 0.120883875226538931E+04 0.137235831982550076E+04 0.176629375847576239E+04
+C 0.257098909773354399E+04 0.378828009143586360E+04 0.142803911584829507E+04
+C 0.265038440421150699E+05 0.580530772060140735E+05 0.290005305743382560E+05
+C 0.676240207790939604E+05 0.175744603974291211E+06 0.115920870054683113E+07
+C 0.568319643487089128E+07 0.919434012446274423E+07 0.170951429217248112E+08
+C 0.181624166300059595E+08 0.163578552517132629E+08 0.207902755237276070E+08
+C 0.163600109479811397E+08 0.305274580680562929E+08 0.282210275921647735E+08
+C 0.372990397194275335E+08
+C 0.277486902226732169E+00 0.268023805038167807E+00 0.415219939737164312E+00
+C 0.100965215215095117E+01 0.208586147663919608E+01 0.431742026198558549E+01
+C 0.938106002799715278E+01 0.216289195749565871E+02 0.471679540507255553E+02
+C 0.500972912994803551E+03 0.219672165983386822E+04 0.286843653676094892E+04
+C 0.114041795092961475E+05 0.297253629145985179E+05 0.991818044909751771E+05
+C 0.496349599086955830E+06 0.162826334212861327E+07 0.310812887668634393E+07
+C 0.660681407251698059E+07 0.123076413226896413E+08 0.154718145716374685E+08
+C 0.114181912129457910E+08 0.233626069519292787E+08 0.205401237474932187E+08
+C 0.289354784763300457E+08
+C 14 0.38047368960473913100E-03
+C 0.191762654465991029E-01 0.271854415897994640E+00 0.254872400058983795E+01
+C 0.960087067333501488E+01 0.353570965616266478E+02 0.689188689085494133E+02
+C 0.261362377354598903E+04 0.665059273530828341E+04 0.688588924417370727E+05
+C -0.304814667012787238E+07 0.302098170955132880E+07 0.392207514357697449E+11
+C -0.784954225679361268E+11 0.392746200573015366E+11
+C 0.335866402155424960E+01 0.477240584977659666E+02 0.433612099555737530E+03
+C 0.124259419864469488E+04 0.188504607192751701E+04 0.144958307619464109E+04
+C 0.172785300546916297E+05 0.280151013482649433E+05 0.736644708225197538E+05
+C 0.537133173259724048E+06 0.537670306432983838E+06 0.182411092478490581E+06
+C 0.182593503570969304E+06 0.182776097074540158E+06
+C 0.58951122
+C 0.00000000
+BLANK card ending JMARTI SETUP data cases
+BEGIN NEW DATA CASE
+BLANK card
+
diff --git a/benchmarks/dcn6.dat b/benchmarks/dcn6.dat
new file mode 100644
index 0000000..46d59a0
--- /dev/null
+++ b/benchmarks/dcn6.dat
@@ -0,0 +1,369 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-6
+C Derive Marti representation of 400-kV overhead Portuguese line as used
+C in subsequent simulation of DCNEW-7. From J. Allen Lima of EDP, 1981.
+C Discontinuity of April, 1992: the default conductance to ground was made
+C smaller, which changes the answers. To reproduce the previous answers
+C (we do not want to change these, for historical reasons), we have replaced
+C the previously-blank columns 33-40 of the Marti fitting card by 0.48D-7.
+C If erased, the smaller current default value of 0.32D-8 would be used.
+C Generally, users are advised to use the new default value. The old one
+C was found to be poorer (less stable) at preserving trapped charge, which
+C had a tendency to either decay or grow, or both. See July, 92, newsletter
+C 1st of 4 data cases. This overhead line case is followed by 3 for cables.
+JMARTI SETUP
+$ERASE
+C LINHA CEDILLO-RIO MAIOR (EDP2.DAT)
+C EXEMPLO DE APLICACAO - ANEXO 2
+BRANCH CEDIL0RIO M0CEDIL8RIO M8CEDIL4RIO M4
+LINE CONSTANTS
+ 10.231 0.0840 4 1.25 -39.4 70.97 32.25 15.8 0.0 2
+ 20.231 0.0840 4 1.25 0.0 70.97 32.25 15.8 0.0 2
+ 30.231 0.0840 4 1.25 39.4 70.97 32.25 15.8 0.0 2
+ 00.5 0.58 4 .575 -25.76 100.07 76.12
+ 00.5 0.58 4 .575 25.76 100.07 76.12
+BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data case
+ 250.0 5000.0 1 85.75 1
+ 250.0 50.0 1 85.75 1
+ 250.0 .01 1 85.75 9 10 1
+BLANK card ending frequency cards of imbedded "LINE CONSTANTS" data case
+BLANK card ending "LINE CONSTANTS" data cases
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C LECT +1 -4
+ 1 .48D-7
+C .30 30 0 1 1 0 0
+C .30 30 0 1 1 0 0 .0
+ .30 30 0 1 3 0 0
+ .30 30 0 1 3 0 0 .0
+$PUNCH
+C Punched cards of "JMARTI SETUP" that began at 11-Aug-87 14.15.29
+C -1CEDIL0RIO M0 2. 0.00 -2 3
+C 13 0.41285804706219800000E+03
+C 0.117013827128701600E+04 0.109328155224148600E+05 0.565854842148188200E+04
+C 0.486728968691983400E+04 0.707738202163730700E+05 0.683747081419827600E+06
+C 0.353541780131411400E+07 0.158128637229056500E+08 0.342732557798577400E+08
+C 0.393504407219363000E+08 0.341282907181993800E+08 0.204464663801654300E+08
+C 0.576218378853537400E+08
+C 0.658089815842887500E+01 0.690898889439574300E+02 0.124258964382556600E+03
+C 0.223516853729638100E+03 0.270128036573363500E+04 0.269143242842107800E+05
+C 0.146979058765937700E+06 0.698197935976008100E+06 0.314038859911038900E+07
+C 0.746337177863556100E+07 0.266392944394791100E+08 0.155396621655433500E+08
+C 0.219748648076802900E+08
+C 14 0.50730990999172660000E-03
+C 0.349887778185420700E+00 0.385183799451747400E+00 0.266248332878260700E+00
+C 0.101302703627398000E+01 0.108212455213644600E+01 0.239521017601984200E+01
+C 0.279893774926274700E+02 0.197810245556054600E+03 0.567095451317796800E+03
+C 0.101827034029151500E+05 0.198712743344115800E+06 0.108881451987841900E+04
+C -0.162015835275688900E+08 0.159908008795460600E+08
+C 0.707841765138503400E+02 0.823999719984897900E+02 0.532720131788135200E+02
+C 0.202956475231847800E+03 0.233040781840643500E+03 0.490731499989644900E+03
+C 0.235012914821689300E+04 0.605706538137324200E+04 0.493208405106231800E+04
+C 0.198963455259852500E+05 0.369358647098982800E+05 0.521960681977429600E+06
+C 0.445816728405941500E+05 0.446262545134347200E+05
+C -2CEDIL8RIO M8 2. 0.00 -2 3
+C 14 0.32434436644879670000E+03
+C 0.252272221491383900E+04 -0.783260653525317500E+03 0.843607760308153000E+03
+C 0.405537446805999600E+03 0.172880473437216700E+03 0.230195610382546000E+03
+C 0.660733376851304400E+02 0.356064973429300400E+04 0.360876600484696400E+05
+C 0.458067308721601900E+06 0.155426951919825100E+07 0.349466741634103300E+07
+C 0.831361356808634600E+07 0.267191748194155000E+08
+C 0.395606796435294500E+01 0.463636540679569400E+01 0.937357763832626400E+01
+C 0.153396557146477500E+02 0.203063670799592800E+02 0.331878663859569700E+02
+C 0.611409934802217200E+02 0.268325289733025000E+04 0.271015097222632500E+05
+C 0.344182439511496500E+06 0.117037498667061200E+07 0.264512776776344300E+07
+C 0.633446917806616700E+07 0.205787510722953700E+08
+C 17 0.46498754589668860000E-03
+C 0.288517470048902000E-01 0.725364888134314100E+01 0.999131789083491600E+01
+C 0.153030921256421000E+02 0.244482193358247200E+02 0.400115122032868100E+02
+C 0.122877187849543700E+03 0.820855190798686500E+03 0.879480508898586200E+04
+C 0.441511425024394600E+05 0.248753815647050200E+06 0.990837040650586800E+06
+C -0.264421592112195600E+06 0.262172272279167900E+06 0.502053009085352100E+11
+C -0.100926392651793000E+12 0.507198004150070300E+11
+C 0.115636081824773900E+02 0.282211316665886800E+04 0.392830379714747600E+04
+C 0.586261414284695500E+04 0.960221199316188700E+04 0.143387940303068500E+05
+C 0.206931546242506100E+05 0.334707109352508900E+05 0.103328087252337900E+06
+C 0.171203461893639500E+06 0.273018287506075900E+06 0.403228025347721000E+06
+C 0.703742994384159800E+07 0.704446737378543500E+07 0.635086021579934400E+06
+C 0.635721107601514000E+06 0.636356828709114700E+06
+C -3CEDIL4RIO M4 2. 0.00 -2 3
+C 11 0.28528038941022320000E+03
+C 0.105748940794460900E+04 0.844409223042977800E+03 0.989216010327055800E+03
+C 0.195811001056642700E+03 0.654649799725072200E+02 0.207639338793363700E+03
+C 0.194266409628094900E+03 0.878586181627698400E+02 0.171400400143261400E+03
+C 0.585371148745679700E+04 0.290267832276061300E+06
+C 0.291079232024637700E+01 0.541078559821623500E+01 0.100447144771793100E+02
+C 0.147071822048762200E+02 0.182300039492140500E+02 0.316863800567847800E+02
+C 0.503710160254755600E+02 0.800538621073617100E+02 0.148612948128817500E+03
+C 0.452161584069224300E+04 0.224665949971083600E+06
+C 16 0.46054840037857230000E-03
+C 0.169232871886761800E-01 0.286935787436301400E+01 0.103580120757909800E+02
+C 0.155815266183155700E+02 0.242534497739954700E+02 0.278423880349024200E+02
+C 0.282101800696905700E+02 0.274475140114087100E+02 0.657890370763595900E+03
+C 0.118250445284277200E+05 0.251953429527934600E+05 0.114341679104464300E+07
+C 0.731159039137183900E+07 0.440975123230174800E+09 0.951854529816820700E+10
+C -0.996801324343811200E+10
+C 0.702889834006048500E+01 0.118911520927119400E+04 0.425255626568891100E+04
+C 0.638485518828208100E+04 0.973498555538559800E+04 0.123767428315422400E+05
+C 0.117119756543999000E+05 0.109106508709576700E+05 0.339297808354646600E+05
+C 0.229778262786752900E+06 0.319262580516430800E+06 0.179705932460679200E+07
+C 0.294640166322813700E+07 0.449642996330517300E+07 0.437920000657641100E+07
+C 0.438357920658298600E+07
+C 0.58951122 -0.70710678 -0.41265641
+C 0.00000000 0.00000000 0.00000000
+C 0.55222554 0.00000000 0.81205257
+C 0.00000000 0.00000000 0.00000000
+C 0.58951122 0.70710678 -0.41265641
+C 0.00000000 0.00000000 0.00000000
+BLANK card ending "JMARTI SETUP" data cases
+BEGIN NEW DATA CASE
+C 2nd of 4 subcases involves an imbedded CABLE CONSTANTS data subcase.
+C This came from Dr. Ivano Bonfanti of CESI in Milano, Italy, as explained
+C in the April, 1994, newsletter. This is for part of a GIS substation
+C (note cable length is 90.1 meters).
+JMARTI SETUP 1.
+$ERASE
+CABLE CONSTANTS
+ 2 1 1 0 1 0 0 0
+C CARDS INDICATING NUMBER OF CONDUCTORS PER SC COAXIAL CABLE
+ 2
+C GEOMETRICAL AND PHYSICAL DATA CARDS
+ .055 .07 .4 .415 .415
+ 1.78E-8 1. 1. 1. 2.8E-8 1. 1. 1.
+C CROSS-SECTION LOCATION CARD
+ 3.52 0.
+C EARTH RESISTIVITY AND FREQUENCY CARDS
+ 300. 50. 90.1 { 1st of 3 is Xform matrix [T]
+ 300. 50. 90.1 { 2nd of 3 is not actually used
+ 300. 10. 6 10 90.1 { 3rd of 3 is frequency scan
+BLANK card ending frequency cards of imbedded "CABLE CONSTANTS" data case
+BLANK card ending "CABLE CONSTANTS" data cases
+ 1 .48D-7
+ .30 30 0 1 3 0 0
+ .30 30 0 1 3 0 0 .0
+C DEFAULT Note preceding cards result in printer plots showing the fitting.
+C If the user does not want or need such extra output, remove the
+C preceding 3 cards and replace by a DEFAULT (cols. 1-7) request.
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C -1 2. 1.00 -2 2
+C 8 0.18076681444364581400E+03
+C 0.395968340410608926E+04 0.295005854204842545E+05 0.174454160909646075E+06
+C 0.869158190521383775E+06 0.364662556399659720E+07 0.145520745582613517E+08
+C 0.531131969090856612E+08 0.227672588502988071E+09
+C 0.203427156262552586E+03 0.162748596590855437E+04 0.102833044902314323E+05
+C 0.546335287528216505E+05 0.245598170841564134E+06 0.104748764596227382E+07
+C 0.412423792356411741E+07 0.191322161376811006E+08
+C 13 0.30392899026088639700E-06
+C 0.539904879139891847E+02 0.402547067289846439E+03 0.123039457481669524E+04
+C 0.138908901013311129E+04 0.753649773022243608E+03 0.111542892895427417E+04
+C 0.968760873289468691E+04 -0.126043771137276141E+06 0.459787149292387185E+06
+C 0.103557188869358611E+07 0.432459583380759974E+07 -0.684191165642414429E+07
+C 0.277530558943064958E+08
+C 0.325587875143335441E+05 0.235697143057869719E+06 0.352631470503751655E+06
+C 0.411189168490573532E+06 0.469188430536555418E+06 0.596470338226857014E+06
+C 0.724813346723028459E+06 0.384515778316817433E+07 0.374877567556418246E+07
+C 0.870763693318005093E+07 0.192604243620749750E+08 0.499116989461822033E+09
+C 0.501590336460134462E+08
+C -2 2. 1.00 -2 2
+C 4 0.10451137020107520900E+03
+C 0.895419253289177704E+02 0.237227186378166011E+03 0.826336359229880146E+03
+C 0.107114138211958689E+05
+C 0.114628603535565802E+03 0.307890218295652688E+03 0.108228738484974816E+04
+C 0.140985532559441509E+05
+C 1 0.29902748896168657700E-06
+C 0.626888577669461132E+09
+C 0.626889581814834476E+09
+C 0.00127764 0.99872717
+C 0.00307146 -0.00307629
+C 0.99872717 -0.99951855
+C -0.00307629 0.00119017
+$PUNCH
+BLANK card ending "JMARTI SETUP" data cases
+BEGIN NEW DATA CASE
+C 3rd of 4 subcases involves an imbedded CABLE PARAMETERS data subcase.
+C Data came from Dr. Ivano Bonfanti of CESI in Milano, Italy, as explained
+C in the July, 1994, newsletter. This is for part of a GIS substation
+C (note cable length is 600 meters). There was a problem with stability.
+C Prof. Akihiro Ametani's new cable constants routine will be used for
+C variety (neither will stabilize the JMARTI result).
+JMARTI SETUP
+$ERASE
+CABLE CONSTANTS
+CABLE PARAMETERS { Transfer to new (August, 1994) cable constants code
+C MISCELLANEOUS DATA CARD
+ 2 -1 1 0 1 0 0 0
+C CARDS INDICATING NUMBER OF CONDUCTORS PER SC COAXIAL CABLE
+ 2
+C GEOMETRICAL AND PHYSICAL DATA CARDS
+ .0206 .02865 .06395 .0689 .0775
+ 1.775E-8 1. 1. 3.5 9.1E-8 1. 1. 2.25
+C CROSS-SECTION LOCATION CARD
+ 1.05 0.
+C EARTH RESISTIVITY AND FREQUENCY CARDS
+ 300. 2.E+4 600.
+ 300. 50. 600.
+ 300. 10. 5 10 600.
+BLANK card ending frequency cards of imbedded "CABLE PARAMETERS" data case
+BLANK card ending "CABLE CONSTANTS" data cases
+ 1 3.E-8
+ .30 30 0 1 1 0 0
+ .30 30 0 1 1 0 0
+C -1 2. 0.00 -2 2
+C 10 0.31527489296784590800E+02
+C 0.333339478968597576E+03 0.385843242263242076E+03 0.156105194364770319E+04
+C 0.265516564851181875E+04 0.744240773394244571E+04 0.146072675345095268E+05
+C 0.100782791919086580E+06 0.423953540641733329E+06 0.181153979783380428E+07
+C 0.426224308131755703E+07
+C 0.127926506879103514E+03 0.191247861270285398E+03 0.140962601658519885E+04
+C 0.256898278361350595E+04 0.719411752689923379E+04 0.147776521260217124E+05
+C 0.523694703068609670E+05 0.231983450765360467E+06 0.103162566951607960E+07
+C 0.268772287968215719E+07
+C 14 0.19555725754330640800E-04
+C 0.595812176849891984E+01 0.136598153216988170E+02 0.223062390699905855E+02
+C 0.218765134842157032E+02 0.310078805673917373E+03 0.136948065507252182E+04
+C 0.264828160326721173E+04 0.165371507469560675E+05 0.135218581976466987E+06
+C 0.996294408964042087E+05 0.366762134130366892E+07 0.114366933510132088E+07
+C 0.294681671932204888E+08 -0.345352346849985198E+08
+C 0.225946305527752293E+04 0.654716563550326282E+04 0.858605165251129074E+04
+C 0.647118553095189873E+04 0.258164726071371879E+05 0.633236066083839105E+05
+C 0.500078550365742049E+05 0.136383733902013104E+06 0.312757035620522686E+06
+C 0.431774484935509624E+06 0.845946787270792295E+06 0.146906560954104667E+07
+C 0.100731432338616043E+07 0.100832163770954637E+07
+C -2 2. 0.00 -2 2
+C 25 0.25771619753860701300E+02
+C 0.162475266380510348E+05 -0.344572775671657292E+05 0.221567870581859061E+05
+C 0.548062829423196334E+02 0.294282733485373968E+03 0.114737235662244826E+04
+C 0.111296958728743471E+04 0.616103629405914149E+03 0.593452262716258020E+03
+C 0.410058929951589903E+03 0.560072870416973956E+03 0.116370288832337929E+04
+C 0.140583167608246482E+04 0.160667392412559639E+04 0.126071408506419517E+04
+C 0.135512678818804875E+04 0.154298926737988064E+04 0.200097285266074278E+04
+C 0.243118215728368933E+04 0.389766818470841236E+04 0.543470105184340992E+04
+C 0.869585056432428246E+04 0.145112660409044493E+05 0.286736334873477863E+05
+C 0.911383809777398274E+05
+C 0.128563209709157150E+03 0.145112581702906482E+03 0.148169399876459551E+03
+C 0.169117065053743460E+03 0.356066420752889315E+03 0.431980837395433992E+04
+C 0.409460631393748736E+04 0.424759484612483994E+04 0.650771124366744516E+04
+C 0.864646715220207080E+04 0.117531733286592735E+05 0.230153259465291995E+05
+C 0.279579746317147329E+05 0.327400282639653088E+05 0.253412598146896344E+05
+C 0.290327207150341456E+05 0.343261562459948328E+05 0.423611078024432791E+05
+C 0.516735710276618266E+05 0.810350212150682346E+05 0.115590605200089733E+06
+C 0.182107115100442927E+06 0.304620180935359910E+06 0.604499969185806928E+06
+C 0.192967270147408662E+07
+C 7 0.37195367174999995500E-05
+C 0.133780513819153044E+03 0.145518656151808569E+04 0.398591319635461878E+04
+C 0.538269437655963885E+04 0.728753925137749230E+04 -0.330812244300116029E+06
+C 0.341166613783013151E+08
+C 0.313417235208839230E+05 0.337996604035161087E+06 0.908977622632142622E+06
+C 0.123253835419277894E+07 0.169290700467920979E+07 0.617846954569379092E+08
+C 0.346920308936563656E+08
+C -0.00000404 1.00000404
+C -0.00000626 0.00000000
+C 1.00000404 -0.99998632
+C 0.00000626 0.00002749
+$PUNCH
+BLANK card ending "JMARTI SETUP" data cases
+BEGIN NEW DATA CASE
+C 4th of 4 subcases comes from Dr. Antonio Carlos Siqueira de Lima
+C of Gerência de Estudos Especiais, Proteção e Controle (GPE/DPP)
+C of ONS (Operador Nacional do Sistema Elétrico) in Rio de Janeiro,
+C Brazil. On September 24, 2001, he used the EEUG list server
+C to request help with some JMARTI SETUP fitting. He wrote:
+C "ATP fails to produce the JMARTI model. Either it stops with
+C an error message or enter an infinite loop." In her response on
+C October 12th, BPA's Dr. Tsu-huei Liu explained that an improvement
+C to the JMARTI fitter logic was required: "a similar problem would
+C be encountered when one runs JMARTI SETUP with the cable data of the
+C 9th subcase of DC-27 (the second pipe-type example). ... While
+C performing the curve fitting of either the characteristic impedance
+C or the propagation function (as function of frequency), ATP now will
+C skip the splitting of a segment to allocate poles and zeros if the
+C frequency range of the segment is too small ( f1/f2 < 1.0023 )." Of
+C course, there should be further explanation in some future newsletter.
+C Unusual roundoff was controlled by a change to MAIN23 on 10 October 2001.
+C Why such behavior was not seen with other data during years past is not
+C known. For some reason, the new data printed the JMARTI fitting table
+C that was one row short of the full ending decade. For example:
+C Table of Zc vs. ZCEQ for mode 1 follows:
+C Frequency ZCMAG ZCEQMAG DELMAG ZCPH ZCEQPH DELPH
+C in Hertz in Ohms in Ohms in percent degrees degrees degrees
+C 1.000000000E-01 3.557566852E+03 3.204331628E+03 -9.929124001E+00 -4.461019744E+01 -2.083729607E+01 2.377290137E+01
+C 1.258925412E-01 3.170699522E+03 3.041719567E+03 -4.067870646E+00 -4.464329838E+01 -2.500977735E+01 1.963352103E+01
+C 1.584893192E-01 2.825902051E+03 2.830476983E+03 1.618928111E-01 -4.467639932E+01 -2.937423126E+01 1.530216806E+01
+C 1.995262315E-01 2.518599553E+03 2.576915901E+03 2.315427547E+00 -4.470950026E+01 -3.355375069E+01 1.115574958E+01
+C 2.511886432E-01 2.244714642E+03 2.299542112E+03 2.442514030E+00 -4.474260120E+01 -3.709485066E+01 7.647750545E+00
+C 3.162277660E-01 2.000613323E+03 2.024419985E+03 1.189968182E+00 -4.477570214E+01 -3.962787342E+01 5.147828724E+00
+C 3.981071706E-01 1.783056784E+03 1.775021830E+03 -4.506280699E-01 -4.480880309E+01 -4.104536614E+01 3.763436947E+00
+C 5.011872336E-01 1.589158413E+03 1.563720658E+03 -1.600706094E+00 -4.484190403E+01 -4.156692498E+01 3.274979049E+00
+C 6.309573445E-01 1.416345506E+03 1.390377117E+03 -1.833478431E+00 -4.487500497E+01 -4.162790291E+01 3.247102053E+00
+C 7.943282347E-01 1.262325125E+03 1.246766400E+03 -1.232544947E+00 -4.490810591E+01 -4.166770484E+01 3.240401064E+00
+C 1.000000000E+00 1.125053678E+03 1.122474287E+03 -2.292681872E-01 -4.494120685E+01 -4.195192005E+01 2.989286801E+00
+C ... Etc. through following decades until this termination:
+C 7.943282347E+01 1.264854975E+02 1.338400942E+02 5.814577075E+00 -4.333035447E+01 -2.514828779E+01 1.818206668E+01
+C Plot of Zc in ohms vs. frequency in Hertz, for mode IMODE = 1.
+C This behavior was corrected by adding near-zero FLZERO to at least
+C one check for termination of a loop.
+$ERASE
+JMARTI SETUP
+C CABLE CONSTANTS { For use inside of JMARTI, this CC declaration is required
+C The preceding was required prior to improvement on 26 October 2001. Now
+C the CABLE CONSTANTS declaration is optional. Illustrate non-use here.
+C If enabled, the answer should be unchanged as prior to 26 October 2001.
+CABLE PARAMETERS
+C IT>IS-->NPC->IE-->KM-->IZF->IYF->NPP->NGR->ID->IYG->
+ 3 1 3 0 0 0 1 0
+C Begin pipe parameter card
+C RP1---->RP2------>RP3------>RHOPIPE-->MUPIPE--->EPS1PIPE->EPS2PIPE->
+C Following data missing input on "RP3": outer radius of pipe outer insulator
+C .0094641 .010 1.71800E-8 1. 2.85 1.0
+ .0094641 .010 .0151.71800E-8 1. 2.85 1.0
+C Begin cross section location cards
+C D1----->THETA1--->D2------->THETA2--->D3------->THETA3--->
+ .004 -90. .004 30. .004 -210.
+C Begin card indicating number of conductors
+C NP>NP2->NP3->NP4->
+ 1 1 1
+C Begin geometrical & physical data cards
+C RIN1--->ROUT1---->RIN2----->ROUT2---->SEPP----->SEPG----->
+C 0 .002 .002 003
+ 0 .002 .002 { No more data needed for single conductor cable
+C RHOC--->MUC------>MUi1----->EPSi1---->
+3.36500E-8 1. 1. 2.85
+C RIN1--->ROUT1---->RIN2----->ROUT2---->SEPP----->SEPG----->
+C 0 .002 .002 003
+ 0 .002 .002 { No more data needed for single conductor cable
+C RHOC--->MUC------>MUi1----->EPSi1---->
+3.36500E-8 1. 1. 2.85
+C RIN1--->ROUT1---->RIN2----->ROUT2---->SEPP----->SEPG----->
+C 0 .002 .002 003
+ 0 .002 .002 { No more data needed for single conductor cable
+C RHOC--->MUC------>MUi1----->EPSi1---->
+3.36500E-8 1. 1. 2.85
+C
+C center->--------->
+ 1.0 0.0
+C Begin frequency & earth resistivty cards
+C RHO----------FREQ-----------IDEC-IPNT-DIST----IPUN
+C 100. 6.E+3 200.
+C 100. 60. 200.
+C 100. 1. 5 10 200.
+C Preceding 3 cards were the originals. Replace by the more-standard 3:
+ 100. 5000. 200.
+ 100. 60. 200.
+ 100. .1 3 1 200. { Artificially small freq scan
+C 100. .001 8 10 200. { Nominal card needed to hang
+C To speed execution, 8 decades have been reduced to 3 and 10 points/decade
+C have been reduced to 1. But an old program will not hang using this choice.
+C To demonstrate an infinite loop for versions prior to October of 2001,
+C restore the original frequency card immediately above. WSM, 15 Oct. 2001.
+BLANK card ending frequency cards within CABLE PARAMETERS
+BLANK card ending CABLE PARAMETERS data subcases
+C DEFAULT
+C 1 3.E-8
+C .30 60 0 1 1 0 0
+C .30 60 0 1 1 0 0
+ 1 { Default for GMODE is 2.E-9 mhos/km
+ .30 30 0 1 1 0 0
+ .30 30 0 1 1 0 0
+$PUNCH
+BLANK CARD ending JMARTI SETUP data subcases
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn7.dat b/benchmarks/dcn7.dat
new file mode 100644
index 0000000..600a22e
--- /dev/null
+++ b/benchmarks/dcn7.dat
@@ -0,0 +1,539 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-7
+C Simulation of 400-kV Portuguese network, supplied by J. Allen Lima of EDP
+C during 1981. Two of the 3-phase overhead lines used Semlyen modeling as
+C data was received; BPA replaced these with Marti modeling (see DCNEW-5
+C and DCNEW-6 derivations). Final results were approved by Allen Lima.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000020 .020 50.0 50.0
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 50 500 250
+ CEDIL1G CD1 60.
+ CEDIL2G CD2 CEDIL1G CD1
+ CEDIL3G CD3 CEDIL1G CD1
+ CEDIL1 40.+4
+ CEDIL2 40.+4
+ CEDIL3 40.+4
+ CEDIL0 20.+3
+ CEDIL4 20.+3
+ CEDIL8 20.+3
+ ORIOL1 1100.
+ ORIOL2 1100.
+ ORIOL3 1100.
+ MORAT1 50.
+ MORAT2 50.
+ MORAT3 50.
+ ORIOL1G OR1 30.0
+ ORIOL2G OR2 ORIOL1G OR1
+ ORIOL3G OR3 ORIOL1G OR1
+ MORAT1G MO1 5.
+ MORAT2G MO2 MORAT1G MO1
+ MORAT3G MO3 MORAT1G MO1
+C PUNCHED CARD OUTPUT OF "MARTI SETUP" WHICH BEGAN AT 16.26.05 09/14/82
+C 10.231 0.0840 4 1.25 -39.4 70.97 32.25 15.8 0.0
+C 20.231 0.0840 4 1.25 0.0 70.97 32.25 15.8 0.0
+C 30.231 0.0840 4 1.25 39.4 70.97 32.25 15.8 0.0
+C 00.5 0.58 4 .575 -25.76 100.07 76.12
+C 00.5 0.58 4 .575 25.76 100.07 76.12
+C
+C 250.0 5000.0 1 39.77 3-2
+C 250.0 50.0 1 39.77 3
+C 250.0 .01 1 39.77 9 10 3
+C
+-1CEDIL1ORIOL1 2. -2 3
+ 13 0.41325032809958360502E+03
+ 0.116666620877633503E+04 0.109183957565632813E+05 0.565519812069975512E+04
+ 0.484147546792281423E+04 0.699348167433700146E+05 0.680639173314410029E+06
+ 0.353546552880208456E+07 0.158558163852067168E+08 0.343936220208104504E+08
+ 0.402986429528001565E+08 0.333051002996165333E+08 0.192239903452177197E+08
+ 0.591785179162642127E+08
+ 0.655848255002151437E+01 0.689529809570500767E+02 0.124018603340865507E+03
+ 0.222448265068884186E+03 0.267002619247242444E+04 0.267774956803651194E+05
+ 0.146874016084362785E+06 0.699595068734068467E+06 0.314988590167556150E+07
+ 0.762879500332942314E+07 0.261916079974016361E+08 0.146966593032308880E+08
+ 0.224237565390403033E+08
+ 14 0.22722057907479428678E-03
+ 0.325119221084764556E+00 0.955995667593461287E+00 0.107719811818587452E+02
+ 0.162737617955725353E+02 0.846601995851995301E+02 0.194153514297787868E+04
+ 0.205304796633652506E+04 0.812078556800162823E+04 0.759893103397168725E+05
+ -0.131817421725105715E+07 0.130673311067578869E+07 0.261283821816253591E+11
+ -0.523061935848645258E+11 0.261777346266795864E+11
+ 0.578031724500470299E+02 0.170883883142724009E+03 0.175593437554162219E+04
+ 0.253310312724618564E+04 0.344448023385708018E+04 0.156781846805402304E+05
+ 0.179682694235832146E+05 0.291972405775985299E+05 0.660344632631146815E+05
+ 0.506367097239857656E+06 0.506873464337097532E+06 0.144341197509027377E+06
+ 0.144485538706536350E+06 0.144630024245242897E+06
+-2CEDIL2ORIOL2 2. -2 3
+ 14 0.32434436644879587419E+03
+ 0.252272221493054599E+04 -0.783260653540386542E+03 0.843607760307379550E+03
+ 0.405537446805879938E+03 0.172880473437180306E+03 0.230195610382516389E+03
+ 0.660733376851340495E+02 0.356064973429108875E+04 0.360876600484606379E+05
+ 0.458067308721460002E+06 0.155426951919779993E+07 0.349466741634031897E+07
+ 0.831361356808341283E+07 0.267191748194192564E+08
+ 0.395606796435879227E+01 0.463636540679738307E+01 0.937357763832612023E+01
+ 0.153396557146475114E+02 0.203063670799589469E+02 0.331878663859556227E+02
+ 0.611409934802227237E+02 0.268325289732902854E+04 0.271015097222558029E+05
+ 0.344182439511372744E+06 0.117037498667027464E+07 0.264512776776326954E+07
+ 0.633446917806370230E+07 0.205787510722909323E+08
+ 13 0.21477374477205599327E-03
+ 0.129889193232538838E+02 0.884021541188871076E+02 0.565737181820981561E+03
+ 0.292322581236811533E+04 0.117637318595143149E+05 0.532889556330723863E+05
+ 0.389320617216179162E+06 0.168009156675308198E+07 -0.473625905585169559E+06
+ 0.469598132803068736E+06 0.116075504186246309E+12 -0.233011870092233574E+12
+ 0.116934231878534660E+12
+ 0.257364843571493833E+04 0.165926100504714855E+05 0.470409178542860072E+05
+ 0.986656059415058608E+05 0.163110622809428558E+06 0.273916823715255116E+06
+ 0.492292176871687661E+06 0.752969879268023331E+06 0.140712450145074795E+08
+ 0.140853162595219880E+08 0.122661137580659351E+07 0.122783798718239996E+07
+ 0.122906582516958241E+07
+-3CEDIL3ORIOL3 2. -2 3
+ 12 0.28586948340215191422E+03
+ 0.469121681241953631E+03 0.233638265938181458E+03 0.133089817080063798E+04
+ 0.659219169881776438E+03 0.384148976526417606E+03 0.648556151743692784E+02
+ 0.212354841898140151E+03 0.201520145927393379E+03 0.890049222317856223E+02
+ 0.180946149365585608E+03 0.727286056036915124E+04 0.756593323883183097E+06
+ 0.233427180849573052E+01 0.652587200425930314E+01 0.445927138536190470E+01
+ 0.929408799817113418E+01 0.153081605724076526E+02 0.187127301227206799E+02
+ 0.320734227377979915E+02 0.513577120970671270E+02 0.825854535255917739E+02
+ 0.154597265896880312E+03 0.564775236979137617E+04 0.589019465642374998E+06
+ 12 0.21409749381714141754E-03
+ 0.959446494661205063E+01 0.211543139931322084E+03 0.330320356215007322E+03
+ 0.105674138126367028E+03 0.281000481977902956E+04 0.853906428242118945E+05
+ 0.130879839444872479E+06 0.473130286723824225E+06 0.431889082744958054E+07
+ 0.548392810817254744E+08 0.872278959796870160E+10 -0.878264063778379226E+10
+ 0.190426713123812291E+04 0.410418711907143561E+05 0.640194813422894686E+05
+ 0.206469677846042105E+05 0.134114222734196795E+06 0.966708188017849156E+06
+ 0.116403676985993166E+07 0.191216163992797025E+07 0.426427480259321292E+07
+ 0.945486102079298859E+07 0.810191819888780010E+07 0.811002011708668852E+07
+ 0.58951259 -0.70710678 -0.41265623
+ 0.00000000 0.00000000 0.00000000
+ 0.55222261 0.00000000 0.81205275
+ 0.00000000 0.00000000 0.00000000
+ 0.58951259 0.70710678 -0.41265623
+ 0.00000000 0.00000000 0.00000000
+C PUNCHED CARD OUTPUT OF "MARTI SETUP" WHICH BEGAN AT 15.49.05 09/14/82
+C 10.231 0.0840 4 1.25 -39.4 70.97 32.25 15.8 0.0
+C 20.231 0.0840 4 1.25 0.0 70.97 32.25 15.8 0.0
+C 30.231 0.0840 4 1.25 39.4 70.97 32.25 15.8 0.0
+C 00.5 0.58 4 .575 -25.76 100.07 76.12
+C 00.5 0.58 4 .575 25.76 100.07 76.12
+C
+C 250.0 5000.0 1 85.75 3-2
+C 250.0 50.0 1 85.75 3
+C 250.0 .01 1 85.75 9 10 3
+C
+-1CEDIL0RIO M0 2. -2 3
+ 13 0.41325032809958360502E+03
+ 0.116666620877633503E+04 0.109183957565632813E+05 0.565519812069975512E+04
+ 0.484147546792281423E+04 0.699348167433700146E+05 0.680639173314410029E+06
+ 0.353546552880208456E+07 0.158558163852067168E+08 0.343936220208104504E+08
+ 0.402986429528001565E+08 0.333051002996165333E+08 0.192239903452177197E+08
+ 0.591785179162642127E+08
+ 0.655848255002151437E+01 0.689529809570500767E+02 0.124018603340865507E+03
+ 0.222448265068884186E+03 0.267002619247242444E+04 0.267774956803651194E+05
+ 0.146874016084362785E+06 0.699595068734068467E+06 0.314988590167556150E+07
+ 0.762879500332942314E+07 0.261916079974016361E+08 0.146966593032308880E+08
+ 0.224237565390403033E+08
+ 14 0.50892744818303846681E-03
+ 0.314840158156735182E+00 0.397096644312787919E+00 0.286274567822626953E+00
+ 0.986918901234386373E+00 0.108177960738237841E+01 0.224534253968394787E+01
+ 0.293916542436028667E+02 0.197434926128950927E+03 0.567436479903287875E+03
+ 0.101953865622683602E+05 0.199276102757670906E+06 0.108851476277486117E+04
+ -0.162775077303748969E+08 0.160661481509794740E+08
+ 0.654800415945925707E+02 0.838628213020787978E+02 0.563058277026596965E+02
+ 0.198401491796740430E+03 0.231783659335135329E+03 0.461320658168496436E+03
+ 0.243671543948517166E+04 0.605460236717123485E+04 0.493217162507794524E+04
+ 0.198986212506673669E+05 0.369393457784018183E+05 0.521930791205834947E+06
+ 0.445740570557629226E+05 0.446186311128186899E+05
+-2CEDIL8RIO M8 2. -2 3
+ 14 0.32434436644879587419E+03
+ 0.252272221493054599E+04 -0.783260653540386542E+03 0.843607760307379550E+03
+ 0.405537446805879938E+03 0.172880473437180306E+03 0.230195610382516389E+03
+ 0.660733376851340495E+02 0.356064973429108875E+04 0.360876600484606379E+05
+ 0.458067308721460002E+06 0.155426951919779993E+07 0.349466741634031897E+07
+ 0.831361356808341283E+07 0.267191748194192564E+08
+ 0.395606796435879227E+01 0.463636540679738307E+01 0.937357763832612023E+01
+ 0.153396557146475114E+02 0.203063670799589469E+02 0.331878663859556227E+02
+ 0.611409934802227237E+02 0.268325289732902854E+04 0.271015097222558029E+05
+ 0.344182439511372744E+06 0.117037498667027464E+07 0.264512776776326954E+07
+ 0.633446917806370230E+07 0.205787510722909323E+08
+ 17 0.46499677048825204163E-03
+ 0.288523113835480495E-01 0.725379351796078098E+01 0.999151579386080013E+01
+ 0.153033961315346581E+02 0.244487129361870124E+02 0.400123366058129859E+02
+ 0.122879770961722842E+03 0.820872346904431552E+03 0.879503098994575475E+04
+ 0.441523136528868445E+05 0.248759594823932697E+06 0.990833174894565047E+06
+ -0.264425086594143118E+06 0.262175769209715756E+06 0.502017406096569996E+11
+ -0.100919277533544712E+12 0.507162455923000841E+11
+ 0.115636078970388239E+02 0.282211309700825944E+04 0.392830370094222508E+04
+ 0.586261399698861044E+04 0.960221176710653435E+04 0.143387936744862945E+05
+ 0.206931535817511244E+05 0.334707043265707816E+05 0.103328046449408099E+06
+ 0.171203326682069473E+06 0.273017856262755893E+06 0.403226751519098158E+06
+ 0.703740771205447835E+07 0.704444511976653314E+07 0.635083346533305579E+06
+ 0.635718429879838688E+06 0.636354148309718716E+06
+-3CEDIL4RIO M4 2. -2 3
+ 12 0.28586948340215191422E+03
+ 0.469121681241953631E+03 0.233638265938181458E+03 0.133089817080063798E+04
+ 0.659219169881776438E+03 0.384148976526417606E+03 0.648556151743692784E+02
+ 0.212354841898140151E+03 0.201520145927393379E+03 0.890049222317856223E+02
+ 0.180946149365585608E+03 0.727286056036915124E+04 0.756593323883183097E+06
+ 0.233427180849573052E+01 0.652587200425930314E+01 0.445927138536190470E+01
+ 0.929408799817113418E+01 0.153081605724076526E+02 0.187127301227206799E+02
+ 0.320734227377979915E+02 0.513577120970671270E+02 0.825854535255917739E+02
+ 0.154597265896880312E+03 0.564775236979137617E+04 0.589019465642374998E+06
+ 14 0.46171157996028366660E-03
+ 0.531412884677653463E+00 0.739743047831739649E+02 0.539474322670691464E+02
+ 0.541766001138744473E+02 0.582432744659269724E+04 0.476456197516415682E+04
+ 0.141536207623307037E+06 0.379552266384417358E+06 0.470350428764120839E+07
+ -0.762551194200545531E+08 0.755820149403780811E+08 0.654786423708226410E+12
+ -0.131260008356328448E+13 0.657809097595257614E+12
+ 0.925277436009539418E+02 0.131730936032098034E+05 0.972178959767960259E+04
+ 0.877083358217585715E+04 0.218411866736842734E+06 0.955781154778434138E+05
+ 0.711025510144528787E+06 0.110226114446630745E+07 0.244920704323492135E+07
+ 0.133576023000276599E+08 0.133709599023276884E+08 0.457964623585481581E+07
+ 0.458422588209066994E+07 0.458881010797276092E+07
+ 0.58951259 -0.70710678 -0.41265623
+ 0.00000000 0.00000000 0.00000000
+ 0.55222261 0.00000000 0.81205275
+ 0.00000000 0.00000000 0.00000000
+ 0.58951259 0.70710678 -0.41265623
+ 0.00000000 0.00000000 0.00000000
+-1ORIOL1MORAT1 .9 1.21.4885 310.
+-2ORIOL2MORAT2 .02709.307743.7338 310.
+-3ORIOL3MORAT3 .02722.4224 2.716 310.
+-4ORIOL1MORAT1
+-5ORIOL2MORAT2
+-6ORIOL3MORAT3
+99CEDIL1CEDIL0 5.2+5 1 1
+ 7.+5 7.+5
+ 10.+5 14.+5
+ 9999
+ TT44 5.3+6
+ TT0 5.3+6
+ TT00 5.3+6
+ TT4 5.3+6
+ TT8 5.3+6
+ TT88 5.3+6
+ RIO M0TT0 6670.
+ CEDIL0TT00 6670.
+ RIO M8TT8 6670.
+ CEDIL8TT88 6670.
+ RIO M4TT4 6670.
+ CEDIL4TT44 6670.
+98TT0 .02011 1600. 1
+ .02010619 1600.
+ 1.02010619 1766.9153
+ 9999
+98TT00 TT0
+98TT4 TT0
+98TT44 TT0
+98TT8 TT0
+98TT88 TT0
+BLANK card ends all branch cards
+ CEDIL1CEDIL0 -.1 0.0 3
+ CEDIL2CEDIL8 -.1 0.
+ CEDIL3CEDIL4 -.1 0.
+BLANK card ends all switch cards
+14G MO1 310.00+3 50.0 165.0 -1.
+14G MO3 310.0+3 50.0 55.0 -1.
+14G MO2 310.0+3 50.0 295.0 -1.
+14G OR1 310.0+3 50.0 165.0 -1.
+14G OR3 310.0+3 50.0 45.0 -1.
+14G OR2 310.0+3 50.0 285.0 -1.
+14G CD1 310.0+3 50.0 155.0 -1.
+14G CD3 310.0+3 50.0 35.0 -1.
+14G CD2 310.0+3 50.0 275.0 -1.
+BLANK card terminating program source cards.
+C Total network loss P-loss by summing injections = 3.047737027558E+09
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C CEDIL1 CEDIL0 -0.80284512E+02 -0.12995398E+03 0.15275353E+03
+C CEDIL2 CEDIL8 0.16222036E+03 0.11540175E+02 0.16263032E+03
+C CEDIL3 CEDIL4 -0.93117224E+02 0.11629906E+03 0.14898419E+03
+C
+C G MO3 177808.69526882 310000. 3962.4928132035 6810.5497167867
+C 253937.13372959 55.0000000 5539.1550032594 54.4215657
+C
+C ---- Initial flux of coil "TT0 " to " " = 3.59368692E+02
+C ---- Initial flux of coil "TT00 " to " " = 3.54323276E+02
+C ---- Initial flux of coil "TT4 " to " " = 6.59577293E+02
+C ---- Initial flux of coil "TT44 " to " " = 6.52855676E+02
+C ---- Initial flux of coil "TT8 " to " " = -1.00845302E+03
+C ---- Initial flux of coil "TT88 " to " " = -9.97486060E+02
+ CEDIL0CEDIL1RIO M0RIO M4RIO M8
+C Step Time CEDIL1 CEDIL0 CEDIL1 RIO M0 RIO M4
+C CEDIL0
+C *** Phasor I(0) = -0.8028451E+02 Switch "CEDIL1" to "CEDIL0" closed
+C *** Phasor I(0) = 0.1622204E+03 Switch "CEDIL2" to "CEDIL8" closed
+C *** Phasor I(0) = -0.9311722E+02 Switch "CEDIL3" to "CEDIL4" closed
+C 0 0.0 0.0 -298652.444 -298652.444 -301807.939 239354.2831
+C 1 .2E-4 0.0 -299345.099 -299345.099 -302510.8 238044.5995
+C 2 .4E-4 0.0 -300028.167 -300028.167 -303203.597 236727.2484
+BLANK card ending program output-variable requests (node voltages only, here).
+C &&& "CEDIL1" to "CEDIL0" segment 1 at time T = 1.03000000E-02 sec.
+C &&& "CEDIL1" to "CEDIL0" segment 0 at time T = 1.17600000E-02 sec.
+C &&& "CEDIL1" to "CEDIL0" segment -1 at time T = 1.22000000E-02 sec.
+C &&& "CEDIL1" to "CEDIL0" segment 0 at time T = 1.36200000E-02 sec.
+C 750 .015 54917.35879 22729.26565 77646.62444 36591.75202 -240811.052
+C -.015069991
+C 1000 .02 -292245.731 -30041.6674 -322287.398 32117.86752 -188577.744
+C -.015141205
+C Variable max : 520026.4244 795246.371 538123.5782 865611.5988 239354.2831
+C .0045159595
+C Times of max : .0103 .0122 .01224 .01176 0.0
+C 0.0
+C Variable min : -547714.329 -318797.586 -322287.398 -322309.548 -445931.745
+C -5.25795341
+C Times of min : .0122 .00114 .02 .00114 .01082
+C .01078
+ PRINTER PLOT { Axis limits : (-3.223, 8.656)
+ 1441.0 0.0 20. RIO M0 TENSAO V
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases is unrelated to the 1st. It was added 9 May 1993.
+C Demonstration that double-circuit Marti frequency-dependent line punched
+C by the 3rd subcase of DCNEW-3 will smoothly continue from a phasor
+C solution. All 6 phases are continuously transposed. This trivial case
+C was in error prior to correction on March 21, 1993, as described in the
+C April, 1993, newsletter. Our thanks to Alan Myers of Black and Veatch.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ .000005 .005 60. 60. { Small DELTAT is necessitated by short line
+ 1 1 1 3 1 -1
+ 5 5 20 20 100 100
+ JDGA SENDA 15. { 1st of 3 branches in series with one
+ JDGB SENDB 15. { circuit of the Marti line. This is
+ JDGC SENDC 15. { an approximation to source impedance
+ JDGA SENDD 15.
+ JDGB SENDE 15.
+ JDGC SENDF 15.
+$INCLUDE, dcn3b.pch, { 6-phase branch cards were punched by DCN3.DAT execution
+ RECA 1000. { Resistive load at far end of 1st of 6 phases
+ RECB RECA { 2nd of 6 phases is terminated by the same R
+ RECC RECA { Etc. for phases 3 through 6. It is balanced
+ RECD RECA
+ RECE RECA
+ RECF RECA
+BLANK card ending branch cards
+BLANK card ending switch cards
+14JDGA 303000. 60. 0. -1.
+14JDGB 303000. 60. -120. -1.
+14JDGC 303000. 60. 120. -1.
+C JDGA |SENDA *SENDD *
+C SENDA |JDGA *RECA *
+C JDGB |SENDB *SENDE *
+C SENDB |JDGB *RECB *
+C JDGC |SENDC *SENDF *
+C SENDC |JDGC *RECC *
+C SENDD |JDGA *RECD *
+C SENDE |JDGB *RECE *
+C SENDF |JDGC *RECF *
+C < < Etc. for rest of connectivity table > >
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 2.754071719021E+08
+C Last gen: JDGC -151500. 303000. -298.2665798274 605.98079669561
+C Last gen: 262405.69734668 120.0000000 527.49386093289 119.4855916
+C Step Time RECA RECB RECC RECD RECE
+C 0 0.0 302949.3018 -155589.513 -147359.789 302949.3018 -155589.513
+C 1 .5E-5 302957.6584 -155099.143 -147858.516 302957.6584 -155099.143
+C 2 .1E-4 302964.9725 -154608.24 -148356.733 302964.9725 -154608.24
+ RECA RECB RECC RECD RECE RECF { Look at voltages at far end, all 6
+BLANK card ending node names for selective voltage output
+C 1000 .005 -89097.5917 295341.234 -206243.642 -89097.5917 295341.234
+C Variable max : 302986.376 295341.234 -147359.789 302986.376 295341.234
+C Times of max : .4E-4 .005 0.0 .4E-4 .005
+C Variable min : -89097.5917 -155589.513 -302986.532 -89097.5917 -155589.513
+C Times of min : .005 0.0 .00282 .005 0.0
+ PRINTER PLOT
+ 144 1. 0.0 5.0 RECA RECB RECF { Axis limits: (-3.030, 3.030)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 3rd of 4 subcases is unrelated to the preceding two. Instead, it
+C demonstrates use of Type-98 (pseudo-nonlinear inductance) and Type-99
+C (pseudo-nonlinear resistance) elements to model magnetic saturation
+C that includes losses. Data is added 7 December 2001 beginning with
+C ELOSTY.DAT from the LOSSY SATURATION author, Orlando Hevia in Santa
+C Fe, Argentina. This is data used to produce plots of his recent paper
+C on the subject in EEUG News. The key word here is triplen harmonics.
+C This 1st of 2 subcases is for the simpler Y-connected coils.
+ .000200 .040 { Double Hevia's dT = 100 usec to speed the simulation
+ 1 1 1 1 1 -1
+ 5 5 10 10
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C LOSSY SATURATION
+C 50. 0.001 1.0E-6 0 0 1 1DOMAR STARR DOMAL STARL
+C 3.01 29107.0 50640.0
+C 4.39 31000.0 60640.0
+C 7.51 33200.0 75760.0
+C 14.45 35387.0 94960.0
+C 26.09 37280.0 114000.0
+C 53.73 39213.0 135360.0
+C 9999.
+99DOMAR STARR 1
+ 1.42053069E+00 2.37657660E+04
+ 1.78742496E+00 2.53113940E+04
+ 2.16124023E+00 2.71076865E+04
+ 2.63247274E+00 2.88933645E+04
+ 2.99836604E+00 3.04389925E+04
+ 3.37097937E+00 3.20172804E+04
+ 9999.
+98DOMAL STARL 4.013 75.65 1
+ 4.01276620E+00 7.56487826E+01
+ 9.11336416E+00 8.05686695E+01
+ 1.63508154E+01 8.62864460E+01
+ 3.39419940E+01 9.19704357E+01
+ 6.29293554E+01 9.68903225E+01
+ 1.36530279E+02 1.01914169E+02
+ 9999.
+99DOMBR STARR DOMAR STARR 0
+99DOMCR STARR DOMAR STARR 0
+98DOMBL STARL DOMAL STARL 4.013 75.65 0
+98DOMCL STARL DOMAL STARL 4.013 75.65 0
+BLANK card ending branch cards
+C AAAAAABBBBBB
+ DOMA DOMAR MEASURING 0
+ DOMB DOMBR MEASURING 0
+ DOMC DOMCR MEASURING 0
+ DOMA DOMAL MEASURING 0
+ DOMB DOMBL MEASURING 0
+ DOMC DOMCL MEASURING 0
+C AAAAAABBBBBB
+ GENA DOMA MEASURING 1
+ GENB DOMB MEASURING 0
+ GENC DOMC MEASURING 0
+ STARR MEASURING 1
+ STARL MEASURING 1
+BLANK card ending switch cards
+14GENA 1 32017.280 50.0 0.0 -1.000
+14GENB 1 32017.280 50.0 -120. -1.000
+14GENC 1 32017.280 50.0 120. -1.000
+BLANK card ending sources
+C Next 5 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time GENA STARR STARL DOMAR DOMAL
+C DOMA TERRA TERRA STARR STARL
+C *** Phasor I(0) = 3.2017280E-06 Switch "DOMA " to "DOMAR " closed in the steady-state.
+C *** Phasor I(0) = -1.6008640E-06 Switch "DOMB " to "DOMBR " closed in the steady-state.
+C *** Phasor I(0) = -1.6008640E-06 Switch "DOMC " to "DOMCR " closed in the steady-state.
+C *** Phasor I(0) = 3.2017280E-06 Switch "DOMA " to "DOMAL " closed in the steady-state.
+C *** Phasor I(0) = -4.6819370E+00 Switch "DOMB " to "DOMBL " closed in the steady-state.
+C *** Phasor I(0) = 4.6819338E+00 Switch "DOMC " to "DOMCL " closed in the steady-state.
+C *** Phasor I(0) = 6.4034560E-06 Switch "GENA " to "DOMA " closed in the steady-state.
+C *** Phasor I(0) = -4.6819386E+00 Switch "GENB " to "DOMB " closed in the steady-state.
+C *** Phasor I(0) = 4.6819322E+00 Switch "GENC " to "DOMC " closed in the steady-state.
+C *** Phasor I(0) = 1.5737111E-21 Switch "STARR " to " " closed in the steady-state.
+C *** Phasor I(0) = -8.0342889E-17 Switch "STARL " to " " closed in the steady-state.
+C &&& Type-99 v-i from "DOMAR " to "STARR " begins operation on segment 1 at time T = 0.00000000E+00 sec.
+C &&& Type-99 v-i from "DOMBR " to "STARR " begins operation on segment -1 at time T = 0.00000000E+00 sec.
+C &&& Type-99 v-i from "DOMCR " to "STARR " begins operation on segment -1 at time T = 0.00000000E+00 sec.
+C 0 0.0 .640346E-5 .15737E-20 -.8034E-16 0.0 0.0
+C 1 .2E-3 2.24962515 .74311E-15 -6.2927755 1.90996501 .339334207
+C 2 .4E-3 3.99696223 1.4206581 -15.485462 3.31930901 .677329216
+C 3 .6E-3 4.07789855 1.18508292 -41.362603 3.06492664 1.01265112
+C 4 .8E-3 4.53570533 1.33779483 -67.966398 3.19141247 1.34397655
+C 5 .1E-2 4.6713378 1.18095312 -98.560248 3.00102929 1.66999791
+BLANK card ending output requests (none here)
+C 180 .036 -62.395321 -1.3338784 -57.847076 .591378597 -62.986801
+C 190 .038 -1.2485159 -.58893346 122.911755 1.92774467 -3.1765248
+C &&& Type-99 v-i from "DOMCR " to "STARR " begins operation on segment 0 at time T = 3.84000000E-02 sec.
+C &&& Type-99 v-i from "DOMCR " to "STARR " begins operation on segment -1 at time T = 3.86000000E-02 sec.
+C 200 .04 3.37130585 1.45723794 3.6102679 3.37097928 -.1727E-12
+C Variable maxima : 136.039023 1.52221675 130.732514 3.37097928 136.039023
+C Times of maxima : .025 .0192 .0384 .02 .025
+C Variable minima : -136.03902 -1.5222168 -130.73251 -3.3709793 -136.03902
+C Times of minima : .035 .0092 .0216 .01 .035
+ CALCOMP PLOT
+ 194 4. 0.0 40. DOMAR STARR STARR
+ 194 4. 0.0 40. DOMAL STARL GENA DOMA
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+C 4th of 4 subcases is related to the preceding. Instead of Y-connected
+C coils, this demonstrates delta-connected coils, which involve more
+C interesting and complicated coil currents. Read Orlando Hevia's paper
+C to understand why. Line currents are missing the "triplen harmonics"
+C (numbers 3, 9, 15, etc.). Data is added 7 December 2001.
+ .000200 .040 { Double Hevia's dT = 100 usec to speed the simulation
+ 1 1 1 1 1 -1
+ 5 5 10 10
+C <++++++> Cards punched by support routine on 11-Nov-18 11.00.00 <++++++>
+C LOSSY SATURATION
+C 50. 0.001 1.0E-6 0 0 3 1DOMAR DOMBR DOMAL DOMBL
+C 3.01 29107.00 50640.0
+C 4.39 31000.00 60640.0
+C 7.51 33200.00 75760.0
+C 14.45 35387.0 94960.0
+C 26.09 37280.00 114000.0
+C 53.73 39213.00 135360.0
+C 9999.
+99DOMAR DOMBR 1
+ 8.20143778E-01 4.11635142E+04
+ 1.03616124E+00 4.38406204E+04
+ 1.26192415E+00 4.69518903E+04
+ 1.55242139E+00 5.00447753E+04
+ 1.77581972E+00 5.27218816E+04
+ 1.99952258E+00 5.54555564E+04
+ 9999.
+98DOMAL DOMBL 2.317 131. 1
+ 2.31677164E+00 1.31027535E+02
+ 5.52313551E+00 1.39549029E+02
+ 1.04634896E+01 1.49452508E+02
+ 2.26722126E+01 1.59297467E+02
+ 4.28985523E+01 1.67818961E+02
+ 9.45609677E+01 1.76520519E+02
+ 9999.
+C
+99DOMBR DOMCR DOMAR DOMBR 0
+99DOMCR DOMAR DOMAR DOMBR 0
+98DOMBL DOMCL DOMAL DOMBL 2.317 131. 0
+98DOMCL DOMAL DOMAL DOMBL 2.317 131. 0
+BLANK card ending branch cards
+C AAAAAABBBBBB
+ DOMA DOMAR MEASURING 1
+ DOMB DOMBR MEASURING 0
+ DOMC DOMCR MEASURING 0
+ DOMA DOMAL MEASURING 1
+ DOMB DOMBL MEASURING 0
+ DOMC DOMCL MEASURING 0
+C AAAAAABBBBBB
+ GENA DOMA MEASURING 1
+ GENB DOMB MEASURING 0
+ GENC DOMC MEASURING 0
+BLANK card ending switch cards
+14GENA 1 32017.280 50.0 0.0 -1.000
+14GENB 1 32017.280 50.0 -120. -1.000
+14GENC 1 32017.280 50.0 120. -1.000
+BLANK card ending sources
+C Next 5 output variables are branch currents (flowing from the upper node to the lower node);
+C Step Time DOMA DOMA GENA DOMAR DOMAL
+C DOMAR DOMAL DOMA DOMBR DOMBL
+C *** Phasor I(0) = 9.6051840E-06 Switch "DOMA " to "DOMAR " closed in the steady-state.
+C *** Phasor I(0) = -4.8025920E-06 Switch "DOMB " to "DOMBR " closed in the steady-state.
+C *** Phasor I(0) = -4.8025920E-06 Switch "DOMC " to "DOMCR " closed in the steady-state.
+C *** Phasor I(0) = 9.6051840E-06 Switch "DOMA " to "DOMAL " closed in the steady-state.
+C *** Phasor I(0) = -4.6831884E+00 Switch "DOMB " to "DOMBL " closed in the steady-state.
+C *** Phasor I(0) = 4.6831788E+00 Switch "DOMC " to "DOMCL " closed in the steady-state.
+C *** Phasor I(0) = 1.9210368E-05 Switch "GENA " to "DOMA " closed in the steady-state.
+C *** Phasor I(0) = -4.6831932E+00 Switch "GENB " to "DOMB " closed in the steady-state.
+C *** Phasor I(0) = 4.6831740E+00 Switch "GENC " to "DOMC " closed in the steady-state.
+C &&& Type-99 v-i from "DOMAR " to "DOMBR " begins operation on segment 1 at time T = 0.00000000E+00 sec.
+C &&& Type-99 v-i from "DOMCR " to "DOMAR " begins operation on segment -1 at time T = 0.00000000E+00 sec.
+C 0 0.0 .960518E-5 .960518E-5 .192104E-4 0.0 1.56057933
+C &&& Type-99 v-i from "DOMBR " to "DOMCR " begins operation on segment 1 at time T = 2.00000000E-04 sec.
+C 1 .2E-3 1.9099746 .339343792 2.24963793 .920293912 1.727168
+C 2 .4E-3 2.68664627 .677338744 3.36430266 1.06290122 1.88694235
+C 3 .6E-3 2.55627285 1.01266055 3.56924791 .901118772 2.03927183
+C 4 .8E-3 2.56447828 1.34398585 3.90877424 .69571598 2.18355526
+C 5 .1E-2 2.64214444 1.67000704 4.31245598 .739321791 3.00938576
+BLANK card ending output requests (none here)
+C 170 .034 -.59429806 -73.237637 -73.832034 .229721436 -71.149345
+C 180 .036 .591381566 -73.581414 -72.989934 .821100034 -2.0872622
+C &&& Type-99 v-i from "DOMCR " to "DOMAR " begins operation on segment 0 at time T = 3.68000000E-02 sec.
+C &&& Type-99 v-i from "DOMCR " to "DOMAR " begins operation on segment -1 at time T = 3.70000000E-02 sec.
+C 190 .038 2.42407329 -27.597882 -25.17355 1.97466258 -.32562914
+C 200 .04 2.70267022 .960518E-5 2.70299999 1.3628017 1.56057933
+C Variable maxima : 2.72798702 95.7745753 97.0588667 1.99852725 94.1587716
+C Times of maxima : .0198 .0234 .0234 .0384 .0234
+C Variable minima : -2.727987 -95.774566 -96.715084 -1.9985273 -93.813962
+C Times of minima : .0098 .0166 .0334 .0284 .0334
+ 194 4. 0.0 40. DOMA DOMAR DOMAR DOMBR
+ 194 4. 0.0 40.-100.100.DOMA DOMAL DOMAL DOMBL
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcn8.dat b/benchmarks/dcn8.dat
new file mode 100644
index 0000000..f9234be
--- /dev/null
+++ b/benchmarks/dcn8.dat
@@ -0,0 +1,231 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-8
+C Test "BCTRAN", the data generator for N-phase transformers. This code
+C came from Prof. Hermann Dommel of UBC. See the Rule Book, Sect. XIX-C.
+C The device is a 3-phase transformer with 3 windings/phase, so 9x9 [Z].
+C The first two of three subcases each have the same data. The first will
+C punch branch cards using [R], [L] format, whereas 2nd uses [A], [R].
+C Both could be combined in a single subcase with the output request IP of
+C columns 79-80 being negative, but this is more confusing. Separate them.
+ACCESS MODULE BCTRAN { New form of old request on following comment card:
+C XFORMER, 44., ----- Old request that is no longer valid beginning 10 Oct 1987
+$ERASE { Empty punch buffer, in case other data is solved before this by EMTP
+C 1st of two "BCTRAN" data subcases requests [R], [wL] punched output.
+C This is done by variable IP (columns 79-80) of the next data card:
+ 360. .428 300. 135.73 .428 300. 135.73 1 3 1
+ 1132.79056 .2054666 H-1 H-2 H-3
+ 263.393059 .0742333 L-1 L-2 L-3
+ 350. .0822 T-1 T-2 T-2 T-1
+ 1 20. 8.74 300. 7.3431941 300. 3 1
+ 1 30. 8.68 76. 26.258183 300.
+ 2 30. 5.31 76. 18.552824 300.
+BLANK card that terminates short-circuit test data of "BCTRAN"
+$PUNCH { Display punched cards of Pi-circuit using wide [R], [L] format:
+C $VINTAGE, 1,
+C 1T-1 T-2 55098.277352343
+C 2T-2 0.0
+C 55098.277352343
+C 3 T-1 0.0
+C 0.0
+C 55098.277352343
+C USE RL
+C $UNITS, 0.60E+02 , 0.
+C 1H-1 .2054666 41432.097487193
+C 2L-1 0.0 19771.027634364
+C .0742333 9437.8794714306
+C 3T-1 T-2 0.0 15579.567888179
+C 0.0 7437.550277142
+C .0822 5866.2181589486
+C 4H-2 0.0 -.0533106395901
+C 0.0 .95599943413096
+C 0.0 1.7517639157174
+C .2054666 41432.097487193
+C 5L-2 0.0 .95599943413096
+C 0.0 .7376473966571
+C 0.0 .83627686533707
+C 0.0 19771.027634364
+C .0742333 9437.8794714306
+C 6T-2 0.0 1.7517639157174
+C 0.0 .83627686533707
+C 0.0 .65959655404677
+C 0.0 15579.567888179
+C 0.0 7437.550277142
+C .0822 5866.2181589486
+C 7H-3 0.0 -.0533106395901
+C 0.0 .95599943413096
+C 0.0 1.7517639157174
+C 0.0 -.0533106395901
+C 0.0 .95599943413096
+C 0.0 1.7517639157174
+C .2054666 41432.097487193
+C 8L-3 0.0 .95599943413096
+C 0.0 .7376473966571
+C 0.0 .83627686533707
+C 0.0 .95599943413096
+C 0.0 .7376473966571
+C 0.0 .83627686533707
+C 0.0 19771.027634364
+C .0742333 9437.8794714306
+C 9 T-1 0.0 1.7517639157174
+C 0.0 .83627686533707
+C 0.0 .65959655404677
+C 0.0 1.7517639157174
+C 0.0 .83627686533707
+C 0.0 .65959655404677
+C 0.0 15579.567888179
+C 0.0 7437.550277142
+C .0822 5866.2181589486
+C $VINTAGE, 0,
+C $UNITS, -1.,-1.
+C USE RL
+C 2nd of 2 "BCTRAN" data subcases is identical to 1st except for [A], [R]
+C output. Note IP of columns 79-80 has changed from unity to zero:
+ 360. .428 300. 135.73 .428 300. 135.73 1 3 0
+ 1132.79056 .2054666 H-1 H-2 H-3
+ 263.393059 .0742333 L-1 L-2 L-3
+ 350. .0822 T-1 T-2 T-2 T-1
+ 1 20. 8.74 300. 7.3431941 300. 3 1
+ 1 30. 8.68 76. 26.258183 300.
+ 2 30. 5.31 76. 18.552824 300.
+BLANK card that terminates short-circuit test data of "BCTRAN"
+$PUNCH { Display punched cards of Pi-circuit using wide [A], [R] format:
+C $VINTAGE, 1,
+C 1T-1 T-2 55098.277352343
+C 2T-2 0.0
+C 55098.277352343
+C 3 T-1 0.0
+C 0.0
+C 55098.277352343
+C USE AR
+C 1H-1 26.512692374898 .2054666
+C 2L-1 -59.57848438329 0.0
+C 180.85474339841 .0742333
+C 3T-1 T-2 5.1245421614044 0.0
+C -71.06950226953 0.0
+C 76.560711306734 .0822
+C 4H-2 1.317410104146 0.0
+C -1.044760156768 0.0
+C -2.174181664407 0.0
+C 26.512692374898 .2054666
+C 5L-2 -1.044760156768 0.0
+C .10024670965949 0.0
+C 2.6475868140584 0.0
+C -59.57848438329 0.0
+C 180.85474339841 .0742333
+C 6T-2 -2.174181664407 0.0
+C 2.6475868140584 0.0
+C 2.4174362478358 0.0
+C 5.1245421614044 0.0
+C -71.06950226953 0.0
+C 76.560711306734 .0822
+C 7H-3 1.317410104146 0.0
+C -1.044760156768 0.0
+C -2.174181664407 0.0
+C 1.317410104146 0.0
+C -1.044760156768 0.0
+C -2.174181664407 0.0
+C 26.512692374898 .2054666
+C 8L-3 -1.044760156768 0.0
+C .10024670965949 0.0
+C 2.6475868140584 0.0
+C -1.044760156768 0.0
+C .10024670965949 0.0
+C 2.6475868140584 0.0
+C -59.57848438329 0.0
+C 180.85474339841 .0742333
+C 9 T-1 -2.174181664407 0.0
+C 2.6475868140584 0.0
+C 2.4174362478358 0.0
+C -2.174181664407 0.0
+C 2.6475868140584 0.0
+C 2.4174362478358 0.0
+C 5.1245421614044 0.0
+C -71.06950226953 0.0
+C 76.560711306734 .0822
+C $VINTAGE, 0,
+C $UNITS, -1.,-1.
+C USE RL
+C 3rd of 3 data subcases for "BCTRAN" has a input data correspond to
+C excitation and short-circuit tests performed on a 1-phase transformer
+C in the laboratory of K.U. Leuven on 13/02/84. From Guido Empereur.
+C Punched output of both [R], [L] and [A], [R] are used by DC-5.
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+C 1 2 3 4 5 6 7 8
+C -----------------------------------------------------------------------------
+C Excitation power loss = measured value x 3 !!! ???? Why ????? WSM, Oct 87
+C -----------------------------------------------------------------------------
+ 2 50. 6.460 0.0063 0.195 1 1 1-1
+ 1.220 0.061 PA1 PA2 PB1 PB2 PC1 PC2
+ 2.377 0.188 SA1 SA2 SB1 SB2 SC1 SC2
+C -----------------------------------------------------------------------------
+C Load loss = measured value x 1/3 !!! ???? Why ????? WSM, Oct 87
+C -----------------------------------------------------------------------------
+ 1 2 .0316 2.296 0.0063 1
+BLANK card that terminates short-circuit test data of "BCTRAN"
+$PUNCH { Display punched cards of Pi-circuit using wide [A], [R] format:
+C $VINTAGE, 1,
+C 1P1 744.75162530425
+C USE AR
+C 1P1 609.14725451514 .05780196523054
+C 2S1 -355.0194488376 0.0
+C 207.17315316786 .16973833711262
+C $VINTAGE, 0,
+C $UNITS, -1.,-1.
+C USE RL
+C C ----------------- << case separator >>> -----------
+C $VINTAGE, 1,
+C 1P1 744.75162530425
+C USE AR
+C 1 609.14725451514 .05780196523054
+C 2 -355.0194488376 0.0
+C 207.17315316786 .16973833711262
+C $VINTAGE, 0,
+C $UNITS, -1.,-1.
+C USE RL
+C C ----------------- << case separator >>> -----------
+C $VINTAGE, 1,
+C 1P1 744.75162530425
+C USE AR
+C 1 609.14725451514 .05780196523054
+C 2 -355.0194488376 0.0
+C 207.17315316786 .16973833711262
+C $VINTAGE, 0,
+C $UNITS, -1.,-1.
+C USE RL
+C C ----------------- << case separator >>> -----------
+C $VINTAGE, 1,
+C 1P1 744.75162530425
+C USE RL
+C $UNITS, 0.50E+02 , 0.
+C 1P1 .05780196523054 406.40657142444
+C 2S1 0.0 696.4330792137
+C .16973833711262 1194.9494585311
+C $VINTAGE, 0,
+C $UNITS, -1.,-1.
+C USE RL
+C C ----------------- << case separator >>> -----------
+C $VINTAGE, 1,
+C 1P1 744.75162530425
+C USE RL
+C $UNITS, 0.50E+02 , 0.
+C 1 .05780196523054 406.40657142444
+C 2 0.0 696.4330792137
+C .16973833711262 1194.9494585311
+C $VINTAGE, 0,
+C $UNITS, -1.,-1.
+C USE RL
+C C ----------------- << case separator >>> -----------
+C $VINTAGE, 1,
+C 1P1 744.75162530425
+C USE RL
+C $UNITS, 0.50E+02 , 0.
+C 1 .05780196523054 406.40657142444
+C 2 0.0 696.4330792137
+C .16973833711262 1194.9494585311
+C $VINTAGE, 0,
+C $UNITS, -1.,-1.
+C USE RL
+BLANK card to terminate the 3rd and last of "BCTRAN" data cases
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcn9.dat b/benchmarks/dcn9.dat
new file mode 100644
index 0000000..1f6ac2d
--- /dev/null
+++ b/benchmarks/dcn9.dat
@@ -0,0 +1,370 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-9
+C Test of U.M. for the option of data that is nearly compatible with the
+C Type-59 S.M. Compare with DC-53 (source of the original data). Mass 6
+C is no longer an exciter (the U.M. has no such feature). Compensation
+C will be used for armature currents. See DCNEW-10 for solution without it
+C Note: WSM and Yin change comment cards in Leuven, October 22, 1990,
+C following modifications of code that change answers in 3rd or 4th
+C decimal place (peak values of PRINTER PLOTs are barely affected).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ .000200 .150 60. 60.
+ 1 1 1 1 1 -1
+ 5 5 20 20 100 100 500 500
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+$UNITS, 0.0, 0.0 { Turn off XOPT = COPT = 60 of miscellaneous data card
+BLANK card ending branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card ending switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+19 UM
+ SMDATA 0 { Column-15 zero is a request for compensation of armature
+BLANK card ending Class-1 U.M. data cards
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+PARAMETER FITTING 1.
+ 6 5 2 1. 1. 892.4 26. +1800. 1907. 3050.
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813 BUSM1
+ 2 .26 .046379 60.9591 BUSM2
+ 3 .22 .255958 90.81823 BUSM3
+ 4 .22 .263573 123.6634 BUSM4
+ 5 .258887 4.925036 BUSM5
+ 6 .0101995 BUSM6
+ 11111111 333333
+ FINISH
+BLANK card ending all U.M. data cards
+C --------------+------------------------------
+C From bus name | Names of all adjacent busses.
+C --------------+------------------------------
+C NAVH A |TERRA *MCC1 A*
+C MCC1 A |NAVH A*MCC2 A*
+C NAVH B |TERRA *MCC1 B*
+C MCC1 B |NAVH B*MCC2 B*
+C NAVH C |TERRA *MCC1 C*
+C MCC1 C |NAVH C*MCC2 C*
+C MCC2 A |MCC1 A*EQV A*SWT A*SWT A*
+C MCC2 B |MCC1 B*EQV B*SWT B*SWT B*
+C MCC2 C |MCC1 C*EQV C*SWT C*SWT C*
+C EQV A |MCC2 A*
+C EQV B |MCC2 B*
+C EQV C |MCC2 C*
+C < < Etc. (many more not shown) > >
+BLANK card ending all source cards (including the U.M.)
+C Total network loss P-loss by summing injections = 1.775797462495E+07
+C Total network loss P-loss by summing injections = 7.638165973267E+16
+C Total network loss P-loss by summing injections = 7.637910322914E+16
+C Total network loss P-loss by summing injections = 7.638932292935E+16
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C SWT A Open Open Open
+C SWT B Open Open Open
+C SWT C Open Open Open
+C BUSM2 BUSM1 -6.37300009E+05 2.76386719E+01 6.37300009E+05
+C BUSM3 BUSM2 -1.18962668E+06 7.40189819E+01 1.18962668E+06
+C BUSM4 BUSM3 -1.65698002E+06 3.29398010E+02 1.65698005E+06
+C BUSM5 BUSM4 -2.12433336E+06 5.92635864E+02 2.12433344E+06
+C BUSM6 BUSM5 0.00000000E+00 -1.01809349E+01 1.01809349E+01
+C
+C EQV C 349966.92087687 389997. -1273.107108882 1348.5187481048
+C 172106.98504408 26.1870700 -444.6359221929 -160.7481140
+ NAVH ANAVH BNAVH C
+C Step Time BUSM1 BUSM2 BUSM3 BUSM4 BUSM5 BUSM6 NAVH A NAVH B
+C TERRA TERRA TERRA TERRA TERRA TERRA
+C
+C NAVH C BUSM2 BUSM3 BUSM4 BUSM5 BUSM6 UM-1 UM-1
+C BUSM1 BUSM2 BUSM3 BUSM4 BUSM5 TQGEN IPA
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C IPB IPC IE1 IE2 IE3 IE4
+C *** Phasor I(0) = -6.3730001E+05 Switch "BUSM2 " to "BUSM1 " closed
+C *** Phasor I(0) = -1.1896267E+06 Switch "BUSM3 " to "BUSM2 " closed
+C *** Phasor I(0) = -1.6569800E+06 Switch "BUSM4 " to "BUSM3 " closed
+C *** Phasor I(0) = -2.1243334E+06 Switch "BUSM5 " to "BUSM4 " closed
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSM6 " to "BUSM5 " closed
+C 0 0.0 376.9911184 376.9911184 376.9911184 376.9911184 376.9911184 376.9911184 54291.46171 -385072.283
+C 330780.8214 -637300.009 -.1189627E7 -.165698E7 -.2124333E7 0.0 .21243334E7 9214.545301
+C -27456.1144 18241.56909 4313.224999 0.0 0.0 0.0
+C 1 .2E-3 376.9911184 376.9911184 376.9911184 376.9911184 376.9911186 376.9911184 85318.78796 -396024.762
+C 310705.9745 -637300.009 -.1189627E7 -.165698E7 -.2124333E7 -.138837E-3 .21243107E7 11175.13477
+C -27770.8437 16595.70895 4313.232183 .556544506 .5177532216 .2174144099
+C 2 .4E-3 376.9911184 376.9911184 376.9911184 376.9911184 376.9911194 376.9911184 115764.6332 -404689.207
+C 288924.5743 -637300.009 -.1189627E7 -.165698E7 -.2124333E7 -.952727E-3 .21242684E7 13072.19218
+C -27927.6403 14855.44814 4313.236387 .8570545884 1.111579264 .4663873197
+BLANK card ending output requests (here, just node voltages)
+C *** Open switch "SWT C" to " " after 1.00200000E-01 sec.
+C 750 .15 378.9802147 378.8066705 378.5631922 378.0587633 377.9216436 362.5597378 153822.7526 -282349.318
+C 178476.3341 -.1750083E7 -.3711689E7 -.8145995E7 -.3608856E7 -369190.836 -429002.914 -21330.627
+C -16304.4988 37635.12584 5406.705235 -7773.4811 26655.00106 10976.10311
+C maxima : 387.5919106 384.6511841 381.1764335 380.9022734 381.7530779 390.8917952 688961.4857 512761.0191
+C 483186.0844 661792.7005 .13554233E7 .28091795E7 .10610433E7 767578.4255 .72538035E7 75502.19563
+C 60315.4182 76573.63775 6524.504755 46325.70396 40735.63276 15991.19325
+C Times of max : .136 .1368 .1382 .116 .1126 .12 .1202 .1092
+C .1152 .1228 .1234 .1258 .0582 .1342 .1276 .137
+C .0444 .1298 .0908 .1384 .0436 .0434
+C minima : 370.1557803 373.9716939 376.015633 375.3288512 375.0977997 361.0545505 -514378.088 -653956.984
+C -620927.877 -.1831477E7 -.3711689E7 -.8145995E7 -.4021296E7 -501320.871 -.183589E7 -76972.3829
+C -68080.9903 -74122.2189 3582.557198 -55611.1978 -44273.1329 -18983.9688
+C Times of min : .111 .1108 .0518 .1402 .1382 .1466 .112 .1174
+C .123 0.1 .15 .15 .1406 .1078 .1026 .127
+C .0356 .1396 .1156 .1132 .1262 .126
+ PRINTER PLOT
+ 19415. 150. UM-1 TQGEN { Axis limits : (-1.836, 7.254)
+ 18415. 150. BUSM6 { Axis limits : (0.000, 3.909)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C BENCHMARK DCNEW-9
+C 2nd of 2 subcases is identical to the first. Prior to its correction
+C in mid-May, 1993, this was incorrect as demonstrated by Juan Martinez.
+C WSM added 0 initialization at the top of SMDATA to solve the problem.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (if 8 output columns)
+ .000200 .0002 60. 60. { We only need look at step 1 (previously bad)
+ 1 1
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+$UNITS, 0.0, 0.0 { Turn off XOPT = COPT = 60 of miscellaneous data card
+BLANK card ending branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card ending switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+19 UM
+ SMDATA 0 { Column-15 zero is a request for compensation of armature
+BLANK card ending Class-1 U.M. data cards
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+PARAMETER FITTING 1.
+ 6 5 2 1. 1. 892.4 26. +1800. 1907. 3050.
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813 BUSM1
+ 2 .26 .046379 60.9591 BUSM2
+ 3 .22 .255958 90.81823 BUSM3
+ 4 .22 .263573 123.6634 BUSM4
+ 5 .258887 4.925036 BUSM5
+ 6 .0101995 BUSM6
+ 11111111 333333
+ FINISH
+BLANK card ending all U.M. data cards
+BLANK card ending all source cards (including the U.M.)
+ NAVH ANAVH BNAVH C
+C Step Time BUSM1 BUSM2 BUSM3 BUSM4 BUSM5 BUSM6 NAVH A NAVH B
+C TERRA TERRA TERRA TERRA TERRA TERRA
+C
+C NAVH C BUSM2 BUSM3 BUSM4 BUSM5 BUSM6 UM-1 UM-1
+C BUSM1 BUSM2 BUSM3 BUSM4 BUSM5 TQGEN IPA
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C IPB IPC IE1 IE2 IE3 IE4
+C *** Phasor I(0) = -6.3730001E+05 Switch "BUSM2 " to "BUSM1 " closed in the steady-state.
+C *** Phasor I(0) = -1.1896267E+06 Switch "BUSM3 " to "BUSM2 " closed in the steady-state.
+C *** Phasor I(0) = -1.6569800E+06 Switch "BUSM4 " to "BUSM3 " closed in the steady-state.
+C *** Phasor I(0) = -2.1243334E+06 Switch "BUSM5 " to "BUSM4 " closed in the steady-state.
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSM6 " to "BUSM5 " closed in the steady-state.
+BLANK card ending output requests (here, just node voltages)
+C 0 0.0 376.9911184 376.9911184 376.9911184 376.9911184 376.9911184 376.9911184 54291.46171 -385072.283
+C 330780.8214 -637300.009 -.1189627E7 -.165698E7 -.2124333E7 0.0 .21243334E7 9214.545301
+C -27456.1144 18241.56909 4313.224999 0.0 0.0 0.0
+C 1 .2E-3 376.9911184 376.9911184 376.9911184 376.9911184 376.9911186 376.9911184 85318.78796 -396024.762
+C 310705.9745 -637300.009 -.1189627E7 -.165698E7 -.2124333E7 -.138837E-3 .21243107E7 11175.13477
+C -27770.8437 16595.70895 4313.232183 .5565441297 .5177532617
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+C 3rd of 3 subcases.
+C Test of U.M. as used for servo motor (2-phase induction motor). See Vol.
+C XI EMTP Memoranda, 17 July 1981, page IEEO-21. For simplicity, SPY
+C is not used here. Instead, we just consider the startup transients as
+C documented in the memorandum (plots shown on pages 22 and 23). Shorten
+C the simulation to 250 msec (1981 simulation went to 400 msec), which is
+C plenty to show decay of angular error. Increase dT from half a msec to
+C 1 msec to speed the simulation. Yes, this does introduce some error, but
+C overall shapes of curves are surprisingly similar. The general principle
+C is as follows. Actual rotor angle is computed in TACS by integrating the
+C rotor speed. This is subtracted from the desired rotor angle (1/10 of a
+C radian) to generate an error signal that is used to scale the sinusoidal
+C excitation of one coil of the motor. Of course, the two coils are excited
+C by sinusoidal signals that are 90 degrees apart in phase (a 2-phase motor
+C really is just half of a 4-phase motor).
+C If one wants a normal, 2-phase induction motor instead of a servo motor,
+C the problem can be simplified considerably. Begin by removing all TACS
+C data. Also remove the Type-60 source, and replace VCTACS by BUSCON
+C in the U.M. data. In words, drive the control coil by a balanced signal
+C rather than the control signal, & the starting transient of a balanced,
+C 2-phase induction motor will be seen. This will be like DC-35, but with
+C the normal 3 phases converted to two.
+PRINTED NUMBER WIDTH, 12, 2, { Request maximum precision (for 8 output columns)
+ .001 .250
+ 1 1 1 0 1 -1
+ 5 5 20 20
+TACS HYBRID
+ 1POS +BUSOM { Integrate input rotor speed BUSOM to produce rotor angle POS
+ 1.0 0.0 { Numerator of transfer function is 1 + 0 * s
+ 0.0 1.0 { Denominator of transfer function is 0 + 1 * s
+C The following two TACS sources had T-start < 0 ("-1." in cols. 68-70). But
+C this has no effect on the answer, so remove such extra, gratuitous work:
+11GAIN 80. { -1.
+11POSREF 0.1 { -1.
+C 90BUSREF { 1981 data involved this variable. But since unused, delete it here
+90BUSCON { Bring into TACS unscaled value of voltage of control coil of motor
+90BUSOM { Bring into TACS the speed of rotor (voltage across the capacitance)
+98AMPERR = GAIN * ( POSREF - POS ) { Error signal = gain * (error in position)
+98VCTACS = BUSCON * AMPERR { Sinusoidal valu: voltage for control coil of motor
+33POS AMPERR { TACS outputs will be rotor angle & signal proportional to error
+BLANK card ending TACS data
+ BUSRD 1.E-10 { 1st of 2 rotor coils is shorted (almost)
+ BUSRQ 1.E-10 { 2nd of 2 rotor coils ...
+ BUSREF 1.0 { Dummy branch connects electric network node
+ BUSCON 1.0 { Dummy branch connects electric network node
+ VCTACS 1.0 { Dummy branch connects electric network node
+ BUSOM 6.0E+5 { Capacitor represents rotor mass
+ BUSOM .03 { Parallel resistance adds losses
+BLANK card terminating branch cards
+BLANK card ends non-existent switch cards
+C Note about following 2 source cards. The 1981 data shows T-start < 0,
+C which will involve at least one phasor solution. But since this affects
+C the solution only at the roundoff level, it here is being omitted. Note
+C the lack of influence is believable since VCTACS is the amplitude of the
+C signal applied to the control coil, and this, as a Type-60 source, is
+C ignored during the phasor solution. So, only one of the two power coils
+C is excited, and this has negligible effect on the subsequent transients.
+C Name Amplitude Hz Degrees T-start
+14BUSREF 100.0 60.0 -90.0 -0.
+14BUSCON 100.0 60.0 0.0 -0.
+60VCTACS { Signal for control coil must be electric network node, so use Type 60
+C The preceding Type-60 source was not involved in the 1981 data. It seems
+C that earlier, rules allowed the direct connection of a TACS signal to a
+C power coil. But, as tested 2 Nov 2000, such direct connection resulted
+C in an error message that suggested indirect connection. Well, this is it.
+C TACS passes the signal to an electric network node (VCTACS), and the power
+C coil of the U.M. is connected to this. The effect should be the same.
+19 UM { U.M. data cards begin with declaration of Type-19 source
+0 { Use compensation (not prediction)
+BLANK card ending Class-1 U.M. data
+ 5 1 1111BUSOM 2 0.01
+C E14 -----><---- E14 --->1<---- E14
+0.0 0.020292 0
+0.0 0.020292 0
+BLANK card begins coil data (reserve space for missing coil of 3-phase storage)
+C E14 -----><---- E14 ---><BUS1><BUS2>
+0.063 0.0003926 BUSREF 1 0.0 { 1st power coil has fixed V
+0.063 0.0003926 VCTACS 1 0.0 { 2nd power coil uses TACS V
+0.83 0.0003926 BUSRD 1 0.0 { 1st rotor coil is shorted
+0.83 0.0003926 BUSRQ 1 0.0 { 2nd rotor coil is shorted
+BLANK card ending all U.M. data
+C The preceding data cards are tricky. Document the interpretation, which
+C is quite unusual (note coil card 1):
+C U.M. data begins. List-25 allocation = 347. |19 UM { U.M. data cards begin with declaration of Type-19 source
+C Compensation is used by the U.M. power coils. |0 { Use compensation (not prediction)
+C Blank card terminating Class-1 U.M. data cards. |BLANK card ending Class-1 U.M. data
+C U.M. 1, machine card 1. Type = 5. | 5 1 1111BUSOM 2 0.01
+C U.M. 1, machine card 2. 0.000E+00 2.029E-02 |0.0 0.020292 0
+C U.M. 1, machine card 3. 0.000E+00 2.029E-02 |0.0 0.020292 0
+C U.M. 1, coil card 1. 0.000E+00 0.000E+00 |BLANK card begins coil data (reserve space for missing coil of 3-phase storage)
+C U.M. 1, coil card 2. 6.300E-02 3.926E-04 |0.063 0.0003926 BUSREF 1 0.0 { 1st winding card
+C U.M. 1, coil card 3. 6.300E-02 3.926E-04 |0.063 0.0003926 VCTACS 1 0.0
+C U.M. 1, coil card 4. 8.300E-01 3.926E-04 |0.83 0.0003926 BUSRD 1 0.0
+C U.M. 1, coil card 5. 8.300E-01 3.926E-04 |0.83 0.0003926 BUSRQ 1 0.0
+C Blank card terminating all U.M. data. |BLANK card ending all U.M. data
+BLANK card ending electric network source cards
+C Note that the following comment cards document the solution using the 1981
+C dT = 1/2 msec. By comparing these with the solution using dT = 1 msec, it
+C is easy to see that the solution has not changed much. For example, take
+C the peak torque. THETAM = .1359 is the old value and .1324 is the new.
+C Next 2 output variables belong to TACS (with "TACS" an internally-added upper name of pair).
+C Final 7 output variables pertain to Type-19 U.M. components (names are generated internally);
+C Step Time TACS TACS UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
+C POS AMPERR TQGEN OMEGM THETAM IPB IPC IE1 IE2
+C 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .5E-3 0.0 8.0 0.0 0.0 0.0 -4.7260614 0.0 -4.5903111 0.0
+C 2 .1E-2 -.75353E-7 8.00000603 .733439918 0.0 0.0 -16.719968 -198.19905 -16.148526 -192.50603
+C 3 .0015 -.64027E-6 8.00005122 3.31829481 0.0 0.0 -32.420897 -499.42028 -31.077691 -481.25111
+C 4 .002 -.19544E-5 8.00015635 .073317462 0.0 0.0 -49.532565 -645.81451 -47.080521 -613.88079
+C 5 .0025 -.21756E-5 8.00017405 -13.753032 0.0 0.0 -66.48314 -693.10732 -62.609005 -647.62106
+C 10 .005 .386893E-3 7.96904856 -260.62871 .465868681 .388535E-3 -116.85358 -231.93464 -102.90808 -149.60859
+C 15 .0075 .003387352 7.72901186 -609.56002 2.13312674 .003389103 -78.090821 517.50938 -59.76177 562.701656
+C 20 .01 .011749416 7.06004672 -725.13071 4.5810072 .011751262 12.2543295 801.605716 15.9654148 769.441724
+BLANK card ends requests for program output (none here)
+C 500 .25 .099742144 .020628514 -9.4006317 .124190097 .099757723 38.1853818 3.29866531 32.3978989 3.21713744
+C Variable maxima : .135902117 8.00017405 267.526078 6.72779235 .135917916 101.917228 803.241795 139.090132 786.335864
+C Times of maxima : .0415 .0025 .0415 .0145 .0415 .247 .0095 .045 .0095
+C Variable minima : -.21756E-5 -2.8721694 -735.50088 -2.0425339 0.0 -120.32142 -693.10732 -128.8745 -647.62106
+C Times of minima : .0025 .0415 .0095 .06 0.0 .0385 .0025 .037 .0025
+ PRINTER PLOT
+ 19450. 0.0250. UM-1 THETAM { Axis limits : (0.000, 1.324)
+C 5 of the 6 vector plots shown on pages IEEO-22 and 23 will be produced by
+C the following batch-mode plot requests. Activate if interested.
+$DISABLE { To speed execution, ignore the 5 batch-mode plot cards that follow
+ CALCOMP PLOT
+ 19425. 0.0250. 0.0 .2 UM-1 THETAM
+ 19425. 0.0250. UM-1 TQGEN
+ 19425. 0.0250. UM-1 IPC
+ 19425. 0.0250. UM-1 IE2
+ 19425. 0.0250. TACS AMPERR
+C $ENABLE { End block of plot cards being ignored.
+$EnabLE { 3 May 2003, add some lower case to demonstrate case insensitivity
+BLANK card ends the last plot card
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp1.dat b/benchmarks/dcp1.dat
new file mode 100644
index 0000000..39b1034
--- /dev/null
+++ b/benchmarks/dcp1.dat
@@ -0,0 +1,70 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-1
+C Test of 1-phase constant-parameter line. One switch is permanently
+C closed. No transients. Plot of receiving end voltage is sinusoid.
+DIAGNOSTIC 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .000100 .020 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ REC .001 { Near short at receiving end to ground } 3
+-1SEND REC 0.3 0.4 12.6 100. { 1-phase distributed line
+BLANK card ending branch cards
+ GEN SEND -1.0 1.0 { Permanently closed switch at sending end
+BLANK card ending switch cards
+14GEN 100. 60. { 60-Hz phasor solution } -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 5.992836086590E+01
+C GEN
+C SEND 100. 100. 1.1985672173179 1.9672525544427
+C 0.0 0.0 -1.559974114699 -52.4640241
+C Step Time REC REC SEND GEN REC
+C TERRA TERRA
+C 0 0.0 .001198266 .001198266 100. 100. 1.198266
+C 1 .1E-3 .0012585558 .0012585558 99.92894726 99.92894726 1.258555833
+ 1
+C 200 .02 .0019138946 .0019138946 30.90169944 30.90169944 1.913894577
+C Variable max : .0020173699 .0020173699 100. 100. 2.017369917
+C Times of max : .0025 .0025 0.0 0.0 .0025
+C Variable min : -.002017453 -.002017453 -99.9921044 -99.9921044 -2.01745286
+C Times of min : .0108 .0108 .0083 .0083 .0108
+ PRINTER PLOT
+ 194 4. 0.0 20. REC { Axis limits : (-2.017, 2.017)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd subcase involves use of trapped-charge source to initialize
+C an initially-disconnected single-phase line. Later, energize the
+C line by switch closure at 3 msec. The data was supplied by Dipl.
+C Ing. Bernd Stein of FGH (Mannheim, Germany) during April of 1986.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 0 9 9 9 0 9 9 9 0 9 9 9 9 9 9 9 9
+ALTERNATE DIAGNOSTIC PRINTOUT, 0, 0, 0, 0, { Need for 2nd or later subcase only
+ .000100 .020 { Unlike 1st of 2 subcases, here XOPT = COPT = 0
+ 1 1 0 1 1 -1
+ 2 -1 5 5 20 20 { Switch to alternate on step 2
+ GEN SWITCH 39.8
+ SWITCH 1000.
+-1SEND REC .3055 5.819 .0121 138.
+BLANK card ending branch cards
+ SEND SWITCH .003 1.0 { Transient begins at 3 msec with closure
+BLANK card ending switch cards
+C 1 2 3 4 5 6 7 8
+C 78901234567890123456789012345678901234567890123456789012345678901234567890
+14GEN 100. 60. -1.0
+14SEND -1 -100. .001 { Trapped-charge source } 5432.
+C End multiple-frequency phasor solution data. The first source is a regular
+C 60-Hertz generator, whereas the second has f = 1/1000 Hz for trapped charge
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.998874616296E+00
+C Last gen: SEND -100. 100. -.17408297E-12 .10491662826E-5 .8704148513E-11
+C Last gen: 0.0 180.0 -.1049166283E-5 -90.0000095 -.5245831413E-4
+C Step Time REC SEND SWITCH GEN
+C 0 0.0 -100. -100. 99.97749233 100.
+C 1 .1E-3 -100. -100. 99.96299489 99.92894726
+C 2 .2E-3 -100. -100. 99.80645119 99.71589003
+ 1 { Request for the output of all four node voltages
+C 200 .02 138.2909745 45.09406184 45.09406184 30.90169944
+ 144 2. 0.0 20. SEND REC { Axis limits : (-2.510, 2.052)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp10.dat b/benchmarks/dcp10.dat
new file mode 100644
index 0000000..5363777
--- /dev/null
+++ b/benchmarks/dcp10.dat
@@ -0,0 +1,53 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-10
+C Like preceding case, only here a distributed line replaces Pi-circuit
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 0 9 9 9 9 0 9 9 9 9 9 9 3 9 9 9 9 9
+ .000200 .200 60. 60.
+ 1 3 1 1 1 -1
+ 2 -1 5 5 20 20 100 100
+ RECA .001 { Short the receiving end through R=1.E-3
+ RECB .001 { ohm resistors, so that lots of current
+ RECC .001 { will flow (no subtle effects here!).
+-1SENDA RECA 0.3 0.4 12.6 100.
+-2SENDB RECB .03 0.1 6.0 100.
+-3SENDC RECC
+BLANK card ending branch cards
+ GENA SENDA -1.0 1.0
+ GENB SENDB -1.0 1.0
+ GENC SENDC -1.0 1.0
+BLANK card ending switch cards
+14GENA 100. 1.0 0.0 -1.
+14GENB 100. 1.0 -120. -1.
+14GENC 100. 1.0 +120. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.982964616306E+03
+C GENC
+C SENDC -50. 100. -15.01239867895 33.270938243721
+C 86.602540378444 120.0000000 29.691467082679 116.8217647
+C Step Time RECC RECB RECA SENDC SENDB
+C
+C GENC
+C *** Phasor I(0) = 0.3321976E+02 Switch "GENA " to "SENDA " closed
+C *** Phasor I(0) = -0.1820737E+02 Switch "GENB " to "SENDB " closed
+C *** Phasor I(0) = -0.1501240E+02 Switch "GENC " to "SENDC " closed
+C 0 0.0 -.015011966 -.018207799 .0332197641 -50. -50.
+C -50.
+C 1 .2E-3 -.015049265 -.018172791 .0332220558 -50.1087885 -49.8911326
+C -50.1087885
+ 1
+C 1000 0.2 -.032877424 .0208571557 .012020268 -97.8147601 66.91306064
+C -97.8147601
+C Variable max : -.015011966 .0208571557 .0332709464 -50. 66.91306064
+C -50.
+C Times of max : 0.0 0.2 .0088 0.0 0.2
+C 0.0
+C Variable min : -.03327093 -.018207799 .012020268 -99.9999912 -50.
+C -99.9999912
+C Times of min : .1754 0.0 0.2 .1666 0.0
+C .1666
+ PRINTER PLOT
+ 14420. 0.0 200. RECA { Axis limits : (0.000, 3.327)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp11.dat b/benchmarks/dcp11.dat
new file mode 100644
index 0000000..33e38ba
--- /dev/null
+++ b/benchmarks/dcp11.dat
@@ -0,0 +1,52 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-11
+C Make some modifications to DC-5, and turn on the DIAGNOSTIC printout
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
+ .005 1.0
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ LOAD 1.0E3 3
+ TRANSFORMER .005 30.TRAN 1.E4 3
+ .005 30.
+ .01 40.
+ .02 45.
+ 0.1 50.
+ 5.0 100.
+ 9999
+ 1GENT 5.0 5.E4 50. 1
+ 2LOAD 20. 2.E5 100.
+ GEN GENT 1.E-3 3
+BLANK card finishing all branch cards
+BLANK card ending non-existent switch cards
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards
+C Total network loss P-loss by summing injections = 8.286691569592E+00
+C GEN 70. 70. .23676261627406 .25769197917313
+C 0.0 0.0 -.1017281655454 -23.2514132
+C Step Time LOAD TRAN GEN LOAD TRAN
+C TERRA TERRA GENT
+C
+C LOAD GENT GEN
+C TERRA TRAN GENT
+C 0 0.0 116.1389467 63.72954326 .2367626E-3 116.1389467 63.72954326
+C .1161389467 .2367626163 .2367626163
+C 1 .005 116.3624275 63.7853932 .2372683E-3 116.3624275 63.7853932
+C .1163624275 .2372682943 .2372682943
+ 1
+C 200 1.0 93.06998099 30.13739524 .2333068E-3 93.06998099 30.13739524
+C .093069981 .2333067899 .2333067899
+C Variable max : 124.5474337 64.72870825 .2576919E-3 124.5474337 64.72870825
+C .1245474337 .2576918677 .2576918677
+C Times of max : .37 .175 .405 .37 .175
+C .37 .405 .405
+C Variable min : 93.06998099 24.33372134 .2271963E-3 93.06998099 24.33372134
+C .093069981 .2271963038 .2271963038
+C Times of min : 1.0 .96 .955 1.0 .96
+C 1.0 .955 .955
+ PRINTER PLOT
+ 143 .2 0.0 1.0 LOAD { Axis limits : (0.000, 1.245)
+ 193 .1 0.0 1.0 TRAN { Axis limits : (-0.189, 4.415)
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp12.dat b/benchmarks/dcp12.dat
new file mode 100644
index 0000000..d6cca1e
--- /dev/null
+++ b/benchmarks/dcp12.dat
@@ -0,0 +1,35 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-12
+C Continued phasor solution for 1 source, 1 resistor, 1 closed switch
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+ .005 1.0
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ LOAD 1000. 1
+BLANK card ending branch cards
+ GEN LOAD -1.0 1.0 1
+BLANK card ending switch cards
+14GEN 70. .1591549 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 2.450000000000E+00
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C GEN LOAD 0.70000000E-01 0.00000000E+00 0.70000000E-01
+C Step Time LOAD GEN GEN LOAD
+C LOAD TERRA
+C *** Phasor I(0) = 0.7000000E-01 Switch "GEN " to "LOAD " closed
+C 0 0.0 70. 70. .07 .07
+C 1 .005 69.999125 69.999125 .069999125 .069999125
+C 2 .01 69.99650003 69.99650003 .0699965 .0699965
+ 1
+C 200 1.0 37.82117736 37.82117736 .0378211774 .0378211774
+C Variable maxima : 70. 70. .07 .07
+C Times of maxima : 0.0 0.0 0.0 0.0
+C Variable minima : 37.82117736 37.82117736 .0378211774 .0378211774
+C Times of minima : 1.0 1.0 1.0 1.0
+ PRINTER PLOT
+ 143 .2 0.0 1.0 LOAD { Axis limits : (0.000, 7.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp13.dat b/benchmarks/dcp13.dat
new file mode 100644
index 0000000..8c152f6
--- /dev/null
+++ b/benchmarks/dcp13.dat
@@ -0,0 +1,54 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-13
+C Simplified Monte Carlo study of DC-24. Use NENERG = 2, TMAX = .013
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+OMIT BASE CASE
+DIAGNOSTIC 9 0 0 0 9 0 0 0 0 0 0 9 0 0 9 0 0 0 0 9
+ 100.E-6 13.E-3 60.
+ 1 1 1 2 1 -1 0 0 2
+C ISW ITEST IDIST IMAX IDICE NSEED
+ 1 1 0 0 1 1
+ 1 -1 5 5 20 20
+ 0GENA A1 7. 2
+ 0GENB B1 7. 1
+ 0GENC C1 7. 2
+ 0ENDA A10 7. 3
+ 0ENDB B10 7.
+ 0ENDC C10 7.
+-1ASW1 A5 .3 2.1146 0.645 50. 0
+-2BSW1 B5 .0268 .5397 0.021 50. 0
+-3CSW1 C5
+ 0A5 A5F 1.
+ 0B5 B5F 1.
+ 0C5 C5F 1.
+-1A5F ASW10 ASW1 A5
+-2B5F BSW10
+-3C5F CSW10
+BLANK card ending branch cards
+76A1 ASW1 2.E-3 .1E-3 STATISTICS
+ B1 BSW1 4.E-3 0.5E-3 STATISTICS 4
+ C1 CSW1 6.E-3 1.E-3 STATISTICS
+ A10 ASW10 7.95E-3 1.0
+ B10 BSW10 9.95E-3 1.0
+ C10 CSW10 11.95E-3 1.0
+BLANK card ending switch cards
+14GENA 303. 60. 0.0 -1.
+14GENB 303. 60. -120.0 -1.
+14GENC 303. 60. 120.0 -1.
+14ENDA 303. 60. - 10.0 -1.
+14ENDB 303. 60. -130.0 -1.
+14ENDC 303. 60. 110.0 -1.
+BLANK card ending source cards
+ ASW10 BSW10 CSW10
+BLANK card ending the specification of program outputs (node voltages, here)
+-1 100. GENA A1
+$DEBUG, 0, { Cancel overlay-20 DIAGNOSTIC value that otherwise would apply
+-1 GENC C1 ENDA A10
+ ASW10 BSW10 CSW10
+ -20. MISC. STATISTICS DATA
+-3 B1 BSW1
+-2 0. GENB B1 ENDA A10
+-4 0. B1 BSW1
+BLANK card ending statistical output variable requests
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp14.dat b/benchmarks/dcp14.dat
new file mode 100644
index 0000000..d8a219a
--- /dev/null
+++ b/benchmarks/dcp14.dat
@@ -0,0 +1,65 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-14
+C Same as DC-5b, only with debug printout. Illustration of [A], [R] use
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 0 9 9 9 9 9 9 9 9
+ 0.1 7.0.1591549
+ 1 1 1 1 1 -1
+ 2 -1 5 5
+ GEN PRIM 0.1
+ USE AR
+ 1SEC 40. .025
+ 2PRIM -20. 10. 0.1
+ USE RL
+ SEC 1.0
+BLANK card ending branch cards
+BLANK card ending switch cards
+14GEN 1.0 .15915 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.187782956381E-01
+C GEN 1.0 1.0 .23755659127612 .23782576065627
+C 0.0 0.0 -.0113118686787 -2.7262268
+C Step Time SEC PRIM GEN
+C 0 0.0 .4751131826 .998868848 1.0
+C 1 0.1 .4749983247 .9962504852 .9950044753
+C 2 0.2 .4701396172 .9836805108 .9800678119
+ 1
+C 70 7.0 .3731275232 .768806442 .754045071
+C Variable maxima : .4754220586 .9991241214 1.0
+C Times of maxima : 6.3 6.3 0.0
+C Variable minima : -.475623463 -.998554929 -.999131142
+C Times of minima : 3.2 3.2 3.1
+ PRINTER PLOT { Axis limits : (-4.756, 4.754)
+ 143 .6 0.0 7.1 SEC { Plot is perfectly sinusoidal, since no surges
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd half of test case should have the same solution, only no [A], [R] use.
+C Note no debug printout; we only want to confirm time-step loop equality.
+DIAGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ 0.1 7.0.1591549
+ 1 1 1 1 1 -1
+ 5 5
+ GEN PRIM 0.1
+ PRIM 4.2 0.1
+BLANK card ending branch cards
+BLANK card ending switch cards
+14GEN 1.0 .15915 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.187782970898E-01
+C GEN 1.0 1.0 .23755659417959 .2378257636428
+C 0.0 0.0 -.0113118704942 -2.7262272
+C Step Time PRIM GEN
+C 0 0.0 .9988688478 1.0
+C 1 0.1 .9962504851 .9950044753
+C 2 0.2 .9836805107 .9800678119
+ 1
+C 70 7.0 .768806442 .754045071
+C Variable maxima : .9991241213 1.0
+C Times of maxima : 6.3 0.0
+C Variable minima : -.998554928 -.999131142
+C Times of minima : 3.2 3.1
+ PRINTER PLOT
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp15.dat b/benchmarks/dcp15.dat
new file mode 100644
index 0000000..b11aa46
--- /dev/null
+++ b/benchmarks/dcp15.dat
@@ -0,0 +1,116 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-15
+C Same a preceding debug case PR-11, only with Type-93 not Type-98 element
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
+ .005 1.0
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ LOAD 1.0E3 3
+ TRANSFORMER TRAN
+ 9999
+ 1GENT 5.0 5.E4 50. 1
+ 2LOAD 20. 2.E5 100.
+93TRAN .005 30. 3
+ -5.0 -100.
+ -0.1 -50.
+ -.02 -45.
+ -.01 -40.
+ -.005 -30.
+ .005 30.
+ .01 40.
+ .02 45.
+ 0.1 50.
+ 5.0 100.
+ 9999
+ TRAN 1.E4
+ GEN GENT 1.E-3 3
+BLANK card finishing all branch cards
+BLANK card ending non-existent switch cards
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards
+C Total network loss P-loss by summing injections = 8.286691569592E+00
+C GEN 70. 70. .23676261627406 .25769197917313
+C 0.0 0.0 -.1017281655454 -23.2514132
+C Step Time LOAD TRAN GEN LOAD TRAN
+C TERRA TERRA GENT
+C
+C LOAD GENT GEN
+C TERRA TRAN GENT
+C 0 0.0 116.1389467 63.72954326 .2367626E-3 116.1389467 63.72954326
+C .1161389467 .2367626163 .2367626163
+C 1 .005 116.3624275 63.7853932 .2372683E-3 116.3624275 63.7853932
+C .1163624275 .2372682943 .2372682943
+C 2 .01 116.5829994 63.83964851 .237768E-3 116.5829994 63.83964851
+C .1165829994 .2377680406 .2377680406
+ 1
+C 200 1.0 93.07392906 30.13811553 .2333111E-3 93.07392906 30.13811553
+C .0930739291 .2333110743 .2333110743
+C Variable max : 124.5474337 64.72870825 .2576919E-3 124.5474337 64.72870825
+C .1245474337 .2576918677 .2576918677
+C Times of max : .37 .175 .405 .37 .175
+C .37 .405 .405
+C Variable min : 93.07392906 30.13811553 .2275063E-3 93.07392906 30.13811553
+C .0930739291 .2275063309 .2275063309
+C Times of min : 1.0 1.0 .955 1.0 1.0
+C 1.0 .955 .955
+ PRINTER PLOT
+ 143 .2 0.0 1.0 LOAD { Axis limits : (0.000, 1.245)
+ 193 .1 0.0 1.0 TRAN { Axis limits : (-0.189, 4.415)
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases replaces the Type-93 reactor by a Type-98 one
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
+ALTERNATE DIAGNOSTIC PRINTOUT, 0, 0, 0, 0, { Required for 2nd or later case only
+ .005 1.0
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ LOAD 1.0E3 3
+ TRANSFORMER TRAN
+ 9999
+ 1GENT 5.0 5.E4 50. 1
+ 2LOAD 20. 2.E5 100.
+98TRAN .005 30. 3
+ .005 30.
+ .01 40.
+ .02 45.
+ 0.1 50.
+ 5.0 100.
+ 9999
+ TRAN 1.E4
+ GEN GENT 1.E-3 3
+BLANK card finishing all branch cards
+BLANK card ending non-existent switch cards
+14GEN 70. .1591549 -1.
+BLANK card terminating program source cards
+C Total network loss P-loss by summing injections = 8.286691569592E+00
+C GEN 70. 70. .23676261627406 .25769197917313
+C 0.0 0.0 -.1017281655454 -23.2514132
+C Step Time LOAD TRAN GEN LOAD TRAN
+C TERRA TERRA GENT
+C
+C LOAD GENT GEN
+C TERRA TRAN GENT
+C 0 0.0 116.1389467 63.72954326 .2367626E-3 116.1389467 63.72954326
+C .1161389467 .2367626163 .2367626163
+C 1 .005 116.3624275 63.7853932 .2372683E-3 116.3624275 63.7853932
+C .1163624275 .2372682943 .2372682943
+C 2 .01 116.5829994 63.83964851 .237768E-3 116.5829994 63.83964851
+C .1165829994 .2377680406 .2377680406
+ 1
+C 200 1.0 93.06998099 30.13739524 .2333068E-3 93.06998099 30.13739524
+C .093069981 .2333067899 .2333067899
+C Variable max : 124.5474337 64.72870825 .2576919E-3 124.5474337 64.72870825
+C .1245474337 .2576918677 .2576918677
+C Times of max : .37 .175 .405 .37 .175
+C .37 .405 .405
+C Variable min : 93.06998099 24.33372134 .2271963E-3 93.06998099 24.33372134
+C .093069981 .2271963038 .2271963038
+C Times of min : 1.0 .96 .955 1.0 .96
+C 1.0 .955 .955
+ PRINTER PLOT
+ 193 .1 0.0 1.0 TRAN { Axis limits : (-0.189, 4.415)
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp16.dat b/benchmarks/dcp16.dat
new file mode 100644
index 0000000..94e471a
--- /dev/null
+++ b/benchmarks/dcp16.dat
@@ -0,0 +1,78 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-16
+C Copy of DCNEW-1, only with DIAGNOSTIC printout turned on. This was not
+C true for "M39." VAX solution and microfiche, since 10 mh inductance of
+C 1st three R-L branches was there missing, leading to a different solution.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 0 9 9 9 9 0 9 9 9 0 9 9 3 9 9 9 9 9
+ABSOLUTE U.M. DIMENSIONS, 20, 2, 50, 60
+ .000200 .100
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20 100 100
+C --------- ROTOR EXTERNAL RESISTANCES
+ BUSA2 BUSAS2 1.0E-4 10.0 1
+ BUSB2 BUSBS2BUSA2 BUSAS2
+ BUSC2 BUSCS2BUSA2 BUSAS2
+C --------- CONNECTIVITY OF EMTP FOR ELECTRIC NETWORK
+ BUSAS2 1.0E+6
+ BUSBS2 BUSAS2
+ BUSCS2 BUSAS2
+C --------- MECHANICAL NETWORK COMPONENTS
+ BUSMG BUSMGR .4548 1
+ BUSMGR BUSMG BUSMGR
+ BUSMG 9.8E+7 1
+C -------- FOR MEASUREMENT OF ELECTROMECHANICAL TORQUE
+ BUSMS BUSMG 1.0E-6 1
+BLANK card ending branch cards
+BLANK card ending nonexistent switch cards
+C --------- SOURCES FOR INFINITE BUS
+14BUSAS2 3000.0 60.0 0.0 -1.0
+14BUSBS2 3000.0 60.0 -120.0 -1.0
+14BUSCS2 3000.0 60.0 +120.0 -1.0
+C --------- 3-PHASE SOURCES AT ROTOR SIDE (ACTUAL FREQ SET BY SS):
+C --------- MECHANICAL INPUT TORQUE (ACTUAL VALUE SET BY SS):
+14BUSMS -1 0.000001 0.00001 -1.0
+19 UM { Beginning of U.M. data
+ 1
+BLANK CARD ENDING CLASS 1 UM DATA CARDS
+C UM-1 MACHINE TABLE :
+ 4 111BUSMG 2 0.1885
+ 0.02358
+ 0.02358
+2.0 0.0 BUSMS
+C UM-1 COIL TABLE
+ BUSA2 1
+0.412 0.0012 BUSB2 1
+0.412 0.0012 BUSC2 1
+0.110 0.0012 1
+0.110 0.0012 1
+ 1
+BLANK card terminating all U.M. data
+BLANK card ending all electric-network sources
+ BUSAS2BUSA2 BUSMG { Selective node voltage outputs
+C Step Time BUSAS2 BUSA2 BUSMG BUSA2 BUSMG
+C BUSAS2 BUSMGR
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1
+C OMEGM THETAM IPA IPB IPC
+C 0 0.0 3000. 1784.374675 184.725648 -194.050415 203.0844855
+C 184.725648 .7853981634 -194.050415 376.2746528 -182.224238
+C 1 .2E-3 2991.476701 1834.302202 184.7256479 -217.778001 203.0844854
+C 184.725648 .822343293 -217.778001 374.6919354 -156.913934
+BLANK card terminating output variable requests
+C 500 0.1 3000. 1783.984613 184.7241591 -193.987564 203.0828486
+C 184.725648 19.25796297 -193.987564 376.1921117 -182.204548
+C Variable maxima : 3000. 1928.26504 184.725648 376.2415171 203.0844855
+C 184.725648 19.25796297 376.2415171 376.2781467 376.2139786
+C Times of maxima : 0.0 .001 0.0 .0944 0.0
+C 0.0 0.1 .0944 .0166 .0722
+C Variable minima : -3000. -1928.26734 184.7241591 -376.246896 203.0828486
+C 184.725648 .7853981634 -376.246896 -376.228394 -376.231626
+C Times of minima : .075 .026 0.1 .0194 0.1
+C 0.0 0.0 .0194 .0916 .0972
+ PRINTER PLOT
+ 194 10 0.0 100 UM-1 OMEGM UM-1 THETAM { Axis limits : (0.000, 1.847)
+ 194 10 0.0 100 BUSMG BUSMGRUM-1 TQGEN { Axis limits : (-4.168, 0.203)
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp17.dat b/benchmarks/dcp17.dat
new file mode 100644
index 0000000..0e46d68
--- /dev/null
+++ b/benchmarks/dcp17.dat
@@ -0,0 +1,124 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-17
+C Copied from DCNEW-2, only with critical debug printout turned on.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+C DIAGNOSTIC 0 0 0 0 9 9 0 9 9 9 0 9 9 3 9 9 0 9 9
+ABSOLUTE U.M. DIMENSIONS, 20, 2, 50, 100
+ .000200 .070
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20 100 100
+TACS HYBRID
+ STEP1 +BAT1 -TFAULT
+ STEP2 +BAT2 -TCLEAR
+ FIRE -STEP0 +STEP1 -STEP2
+C --------- TACS UNITY SIGNAL SOURCE
+11STEP0 1.0 -1.0
+C --------- EMTP OUTPUT TO TACS
+90BAT1
+90BAT2
+90TFAULT
+90TCLEAR
+BLANK card ends all TACS data cards
+C --------- EMTP CONNECTIVITY
+ BUSA0 1.0E+8
+ BUSB0 1.0E+8
+ BUSC0 1.0E+8
+ BUSA5 BUSA1 0.001 1
+ BUSB5 BUSB1 0.001 1
+ BUSC5 BUSC1 0.001 1
+C --------- TRANSMISSION LINES (0.001 OHMS AND 1.0 MILLI HENRY)
+ BUSA1 BUSA0 1.0E-2 1.0 1
+ BUSB1 BUSB0 BUSA1 BUSA0 1
+ BUSC1 BUSC0 BUSA1 BUSA0 1
+C --------- RESISTANCES FROM BUS1 TO SWITCH (BUS2 TO GROUND)
+ BUSA1 BUSA2 0.0001 1
+ BUSB1 BUSB2 0.0001
+ BUSC1 BUSC2 0.0001
+C --------- EMTP CONNECTIVITY REQUIREMENT
+ BUSFS 1.0E+6
+ BUSFS BUSF0 1.0E-5
+C --------- RESISTANCES IN PARALLEL TO SWITCHES (BUS2 TO GROUND)
+ BUSA2 1.0E+9
+ BUSB2 1.0E+9
+ BUSC2 1.0E+9
+C --------- CIRCUIT FOR SWITCH CONTROL
+ BAT1 1.0
+ BAT2 1.0
+ BAT1 TFAULT 1.0
+ BAT2 TCLEAR 1.0
+C --------- MECH NETWORK
+ BUSMSM 1.E+09 1
+ BUSMS BUSMSM 1.0E-3 1
+BLANK card bounds the last branch card
+C --------- TIME OF FAULT AND TIME OF CLEARING
+ TFAULT .05001 { Fault is applied 1/2 DELTAT after 50 msec
+ TCLEAR 3600.0
+C --------- TACS CONTROLLED SWITCHES
+11BUSA2 FIRE
+11BUSB2 FIRE
+11BUSC2 FIRE
+ BUSA9 BUSA5 -1.0 1.0 1
+ BUSB9 BUSB5 -1.0 1.0 1
+ BUSC9 BUSC5 -1.0 1.0 1
+BLANK card ends the last electric network switch card
+C --------- EXCITATION SOURCE VOLTAGE (ACTUAL VALUE SET BY SS)
+14BUSFS 0.001 0.00001 -1.0
+C --------- INFINITE BUS SOURCE VOLTAGES
+14BUSA0 3000.0 60.0 0.0 -1.0
+14BUSB0 3000.0 60.0 -120.0 -1.0
+14BUSC0 3000.0 60.0 +120.0 -1.0
+C --------- BATTERIES FOR SWITCH CONTROL
+14BAT1 2.0 0.00001 -1.0
+14BAT2 3.0 0.00001 -1.0
+C --------- MECH INPUT TORQUE (ACTUAL VALUE SET BY SS) :
+14BUSMS -1 0.0000001 0.00001 -1.0
+C --------- SYNCHRONOUS MACHINE SPECIFICATIONS
+C --------- UM DATA
+19 UM
+ 1
+BLANK CARD ENDING CLASS 1 UM DATA
+C --------- UM-1 MACH-TABLE
+ 1 2 1111BUSMSM 1 0.0373
+ 0.0057815
+ 0.0055850
+3030.0 15.0 BUSFS BUSMS
+C --------- UM-1 COIL-TABLE
+ BUSA9 1
+0.001542 0.0005595 BUSB9 1
+0.001542 0.0005595 BUSC9 1
+0.0010 0.0003767 BUSF0 1
+0.01834 0.0002075 1
+0.07560 0.0001335 1
+BLANK card ends all U.M. data cards
+BLANK card ending all electric network sources
+C --------- REQUEST FOR NODE VOLTAGE OUTPUT
+ BUSA1 BUSA0 BUSMSM
+C Step Time BUSA1 BUSA0 BUSMSM BUSA9 BUSB9
+C BUSA5 BUSB5
+C
+C BUSC5 BUSA1 BUSB1 BUSC1 BUSA1
+C BUSC1 BUSA0 BUSB0 BUSC0 BUSA2
+C
+C UM-1 UM-1 UM-1 UM-1 UM-1
+C OMEGM THETAM IPA IPB IPC
+C *** Phasor I(0) = 0.2072773E+04 Switch "BUSA9 " to "BUSA5 " closed
+C *** Phasor I(0) = -0.8157515E+03 Switch "BUSB9 " to "BUSB5 " closed
+C *** Phasor I(0) = -0.1257021E+04 Switch "BUSC9 " to "BUSC5 " closed
+C 0 0.0 2924.682776 3000. 376.9911184 2072.772625 -815.751494
+C -1257.02113 2072.772622 -815.751493 -1257.02113 .2924025E-5
+C 376.9911184 1.174129749 2072.761251 -815.747018 -1257.01423
+C 1 .2E-3 2857.300587 2991.476701 376.9911184 2047.702816 -668.685067
+C -1379.01775 2047.702813 -668.685066 -1379.01775 .2837623E-5
+C 376.9911184 1.174129749 2047.702816 -668.685067 -1379.01775
+BLANK card ending selective variable output request (node voltages, here)
+C 350 .07 .7035049802 927.0509831 376.7447835 2436.93984 10869.29497
+C Last step: -13306.2348 -4598.10996 -807.56516 5405.675122 7035.049802
+C Last step: 376.774892 1.169600292 2436.93984 10869.29497 -13306.2348
+ PRINTER PLOT
+ 194 8. 0.0 96. UM-1 TQGEN { Plot limits: (-0.913, 1.467)
+ CALCOMP PLOT
+ 194 9. 0.0 90. UM-1 IPA
+BLANK card ending batch-mode plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcp18.dat b/benchmarks/dcp18.dat
new file mode 100644
index 0000000..7923220
--- /dev/null
+++ b/benchmarks/dcp18.dat
@@ -0,0 +1,65 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-18
+C Modification of DCPR-1, with Marti modeling for 1-phase distributed line.
+C This is artificial, with 1st mode of DCNEW-4 copied, so answers differ.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
+ .000100 .020 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ REC .001 3
+-1SEND REC -2 0
+ 13 0.47239779450626166835E+03
+ -0.157229726196222956E+03 0.126853303346030569E+04 0.588082306827178581E+04
+ 0.270627673308808407E+05 0.111458688456283317E+06 0.395589243425188717E+06
+ 0.150323164163496357E+07 0.217374838313002244E+07 0.434556992256038787E+07
+ 0.110328170351886328E+08 0.236389988397480845E+08 0.309008321141022234E+08
+ 0.431893002281190038E+09
+ 0.235701061600344552E+01 0.195173431211496342E+02 0.124846131111627939E+03
+ 0.613923453349835427E+03 0.269678738574064323E+04 0.102910878111054938E+05
+ 0.417069229964132082E+05 0.126644834971140075E+06 0.266597235969243651E+06
+ 0.699297112658407379E+06 0.262993966131300537E+07 0.479765538875125372E+07
+ 0.813526280583329517E+08
+ 17 0.85238555800063692627E-03
+ 0.127924432981992370E+01 0.561914042153726234E+01 0.180297075598248546E+02
+ 0.346261574528511265E+02 0.548783409592355325E+02 0.765032176718322354E+02
+ 0.103223467905631171E+03 0.135969275083081897E+03 0.184416687911717634E+03
+ 0.274482426982707487E+03 0.393670049088725369E+04 -0.312267057014000818E+04
+ -0.380620278636049181E+04 0.169176872171332866E+05 0.126711112212722121E+06
+ -0.137116666350032279E+06 -0.440898788048811855E+04
+ 0.108195714206271910E+03 0.425804125825632120E+03 0.671892589284894783E+03
+ 0.115424991479232875E+04 0.164930073155791996E+04 0.212471092512198550E+04
+ 0.261396550177039461E+04 0.310670382129902532E+04 0.360827684252849542E+04
+ 0.409543324291373079E+04 0.459515167691230977E+04 0.461644753586315608E+04
+ 0.775011064607788876E+04 0.965100526007415078E+04 0.391166014374037768E+05
+ 0.343819986469708529E+05 0.867321014152550142E+05
+C DUMMY 1.0
+BLANK card finishing all branch cards
+ GEN SEND -1.0 1.0 { Switch is closed for all time, note
+BLANK card ending non-existent switch cards
+14GEN 100. 60. -1.
+BLANK card terminating program source cards
+C Total network loss P-loss by summing injections = 2.272638618099E+00
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C GEN SEND 0.45452772E-01 -0.30307544E+00 0.30646480E+00
+C
+C GEN
+C SEND 100. 100. .04545277236197 .30646480232032
+C Step Time REC REC SEND GEN REC
+C TERRA TERRA
+C *** Phasor I(0) = 0.4545277E-01 Switch "GEN " to "SEND " closed
+C 0 0.0 .4500984E-4 .4500984E-4 100. 100. .0450098417
+C 1 .1E-3 .5760443E-4 .5760443E-4 99.92894726 99.92894726 .0576044324
+C 2 .2E-3 .7011336E-4 .7011336E-4 99.71589003 99.71589003 .0701133563
+ 1
+C 200 .02 .3324991E-3 .3324991E-3 30.90169944 30.90169944 .3324991413
+C Variable max : .3379377E-3 .3379377E-3 100. 100. .3379376777
+C Times of max : .0038 .0038 0.0 0.0 .0038
+C Variable min : -.338271E-3 -.338271E-3 -99.9921044 -99.9921044 -.338270602
+C Times of min : .0121 .0121 .0083 .0083 .0121
+ PRINTER PLOT { Following plot is nicely sinusoidal:
+ 194 4. 0.0 20. REC { Axis limits : (-3.383, 3.379)
+BLANK card terminating plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp19.dat b/benchmarks/dcp19.dat
new file mode 100644
index 0000000..39d1e2b
--- /dev/null
+++ b/benchmarks/dcp19.dat
@@ -0,0 +1,123 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-19
+C Copied from DCNEW-4, only with DIAGNOSTIC turned on as debug output
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
+ .000050 .020 60. 60.
+ 1 1 1 1 1 -1 0
+ 1 -1 5 5 20 20 100 100
+ JDGA JDA 15. 1
+ JDGB JDB 15.
+ JDGC JDC 15.
+-1JDA LMA 2. -2 3
+ 18 0.47487144790587633736E+03
+ -0.117967342612603676E+01 -0.316671345021416945E+01 0.255662317832426673E+02
+ -0.601654631032706213E+02 -0.118825306534453652E+03 0.128169142098635430E+04
+ 0.589610442538186533E+04 0.292891488173549769E+05 0.115665757459954655E+06
+ 0.456394278488149546E+06 0.153681652821077613E+07 0.681848054466802243E+07
+ 0.155477562610202006E+08 0.231789897204889809E+08 0.143827766961221036E+08
+ 0.241524708800130989E+08 0.245049034784953832E+08 0.476808364145524129E+08
+ 0.321645453133055891E+00 0.897616891499021768E+00 0.165632367032913183E+01
+ 0.166669419493737986E+01 0.253073682990780913E+01 0.200014655383098283E+02
+ 0.124257951002701473E+03 0.657345842950598183E+03 0.278623017775457413E+04
+ 0.117145310573639467E+05 0.427410884649070877E+05 0.202553264108715757E+06
+ 0.968789502295299084E+06 0.296908522006270138E+07 0.737968316276072920E+07
+ 0.121009167337626640E+08 0.132891445947112725E+08 0.252097199908134253E+08
+ 14 0.86849922355034181931E-03
+ 0.580543547692016874E-01 0.269744993210885436E+00 0.358646519088149721E+00
+ 0.775351125410302933E+00 0.512138885239557462E+01 0.838265420474258915E+01
+ 0.700229782114550385E+02 0.393084113996385128E+03 0.138208543918962840E+04
+ 0.706160326497018531E+03 0.527246586822120662E+04 0.528343251309079615E+05
+ 0.178307801042203880E+08 -0.178914532139174500E+08
+ 0.228360173022402533E+02 0.102750699821169636E+03 0.139222638455845377E+03
+ 0.269608322018776320E+03 0.389220463867018722E+03 0.427793721751318500E+03
+ 0.132148883486994549E+04 0.277178340638843952E+04 0.449341296469570784E+04
+ 0.596603161966094024E+04 0.114714152641659587E+05 0.268314807408425590E+05
+ 0.204027813729699328E+05 0.204231841543429041E+05
+-2JDB LMB 2. -2 3
+ 13 0.28580875773089406522E+03
+ 0.381761604345214016E+04 -0.269529222495194318E+04 0.445018224900628539E+03
+ 0.214658130219351907E+03 0.897325461203551775E+02 0.130480129629523390E+03
+ 0.683037485206990933E+02 0.746626715384045969E+02 0.133938729387751110E+04
+ 0.249954495902361043E+04 0.187764116219525090E+05 0.391031620802855759E+06
+ 0.562668431190421223E+07
+ 0.358668999787749571E+01 0.376679186833120605E+01 0.706439034439901437E+01
+ 0.109721634064781350E+02 0.140506334140286961E+02 0.234292596911152251E+02
+ 0.407686998675834982E+02 0.797598814775078289E+02 0.129106739969348078E+04
+ 0.242138030939135859E+04 0.182362646041542116E+05 0.379814243183306855E+06
+ 0.548808385606378759E+07
+ 13 0.74123751236187229426E-03
+ 0.192189595814863363E+02 0.210970481418782463E+01 0.383406546226866283E+02
+ 0.307999912886148377E+02 0.634013410317139090E+03 -0.253243195247046863E+03
+ 0.210540381301789816E+05 0.755533947306502050E+05 0.229576557459444489E+07
+ 0.607777584135737231E+13 -0.156620677810598129E+13 0.153143851607186420E+13
+ -0.604300997216751013E+13
+ 0.325736126030671755E+04 0.366694913707514260E+03 0.675727697588602189E+04
+ 0.516024976370228876E+04 0.249456113770459378E+05 0.115067772934717399E+06
+ 0.105205466546493019E+06 0.240930799961836921E+06 0.633276538663731131E+06
+ 0.975820481990592802E+06 0.976796302472583498E+06 0.974176721795814519E+06
+ 0.975150898517610403E+06
+-3JDC LMC 2. -2 3
+ 13 0.27248404992352924125E+03
+ 0.928429573805075023E+03 0.205756155237142632E+03 0.538106630554037608E+03
+ 0.105199818376817531E+03 0.821382476778671116E+02 0.133356875032521778E+03
+ 0.654774478488469374E+02 0.612546121562179922E+02 0.905544916173387175E+02
+ 0.973244316091135204E+03 0.267481871266201051E+04 0.138566411938941123E+05
+ 0.646075558955914967E+06
+ 0.297277477955690506E+01 0.413177069940672514E+01 0.739410817322770197E+01
+ 0.103072536754267949E+02 0.135874091964585515E+02 0.234792992956042887E+02
+ 0.384075708508238121E+02 0.692539345057236435E+02 0.997101922255402791E+02
+ 0.941460937860312015E+03 0.259295974388396348E+04 0.134538093446956691E+05
+ 0.628668738677182439E+06
+ 20 0.74871165651714274120E-03
+ 0.249456855794677017E-01 0.516637614002139312E+01 0.435227595525510835E+01
+ 0.696293545843379624E+01 0.113102519337405665E+02 0.107077756312168120E+02
+ 0.136526319661978881E+02 0.103057494642840792E+03 0.647491597081196815E+03
+ 0.221213037293261823E+04 0.164010494681972204E+05 0.517776934139508076E+05
+ 0.393233870054795443E+06 -0.101893253559274247E+05 -0.173413454816459129E+06
+ 0.524218185885897590E+06 0.711044562955687729E+12 -0.559640645251973480E+12
+ 0.582892127161358521E+12 -0.734296849907947113E+12
+ 0.887741958857318814E+01 0.183177145564733675E+04 0.151655674045953921E+04
+ 0.245910936284398730E+04 0.383273362703089043E+04 0.399285585783856465E+04
+ 0.496339281485561617E+04 0.253464455063045348E+05 0.272156609769823021E+05
+ 0.475215596432249440E+05 0.149791320991727040E+06 0.333884409922466803E+06
+ 0.541583000670874084E+06 0.670984155731562481E+06 0.569769858667429973E+06
+ 0.132622344670840449E+07 0.440534234233555838E+07 0.440974768467789434E+07
+ 0.436787151891064062E+07 0.437223939042955148E+07
+ 0.57154434 0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ 0.58879039 0.00000000 0.80696823
+ 0.00000000 0.00000000 0.00000000
+ 0.57154434 -0.70710678 -0.41761362
+ 0.00000000 0.00000000 0.00000000
+ TOWER 2.0 { Tower footing resistance of 2 ohms
+BLANK card ending branch cards
+ LMC TOWER .01015 1.0 { Fault simulation, beginning at 10.15 ms
+BLANK card ending switch cards
+14JDGA 303000. 60. 0. -1.
+14JDGB 303000. 60. -120. -1.
+14JDGC 303000. 60. 120. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.128103943251E+06
+C Last gen: JDGC -151500. 303000. -279.4644345812 316.35590847715
+C Last gen: 262405.69734669 120.00000 -148.2588635888 -152.0535725
+ LMA LMB LMC JDA JDC { Request 5 node voltage outputs
+C Step Time LMA LMB LMC JDA JDC
+C 0 0.0 320640.9953 -161304.651 -159688.528 307737.4167 -153723.883
+C 1 .5E-4 320588.1463 -156040.018 -164893.924 307673.3095 -158716.386
+C 2 .1E-3 320431.7475 -150721.966 -170048.981 307509.7473 -163659.037
+BLANK card ending the specification of program outputs
+C Final step begins: 400 .02 197731.9751 326395.1488 -327.855554
+C Variable maxima : 424967.7275 347731.4081 301713.7469 310463.6296 306756.2682
+C Times of maxima : .01785 .0195 .0102 .0164 .0109
+C Variable minima : -338566.201 -556333.279 -320711.082 -307732.31 -307734.935
+C Times of minima : .01215 .0122 .0028 .00835 .0028
+ PRINTER PLOT
+ 2Simulation of fault at Lower Monumental end of 500-kV, 138-mi line to John Day
+ 1 SMOOTH
+ PRINT HEAD OFF
+ Voltage at Lower Monumental, where 'c'-phase is faulted at 10.15 msec.
+ 144 2. 0.0 20. LMA LMB LMC Lower Mon. Fault Voltage [volts]
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp2.dat b/benchmarks/dcp2.dat
new file mode 100644
index 0000000..4726d0b
--- /dev/null
+++ b/benchmarks/dcp2.dat
@@ -0,0 +1,31 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-2
+C Same as preceding, only with 1-phase Pi-circuit instead of distributed
+DIAGNOSTIC 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .005 1.0 1.0 1.0
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ REC .001 3
+ 1SEND REC 1.0 1.0 1.E4 { 1-phase Pi-circuit
+BLANK card ending branch cards
+ GEN SEND -1.0 1.0 { Perman.-closed switch, including phasor
+BLANK card ending switch cards
+14GEN 100. 1.0 -1.
+BLANK card ending source cards
+C GEN
+C SEND 100. 100. 49.999975274738 70.3228447942
+C 0.0 0.0 -49.45002499974 -44.6831623
+ 1
+C REC REC SEND GEN REC
+C TERRA TERRA
+C 0 0.0 .0499997255 .0499997255 100. 100. 49.99972552
+C 1 .005 .0515439047 .0515439047 99.95065604 99.95065604 51.54390468
+C 2 .01 .0530372241 .0530372241 99.80267284 99.80267284 53.0372241
+C 3 .015 .0544782098 .0544782098 99.55619646 99.55619646 54.4782098
+C 200 1.0 .0499956247 .0499956247 100. 100. 49.99562466
+ PRINTER PLOT { Plot limits : (-7.067, 7.067)
+ 143 .1 0.0 1.0 REC { Plot card should show nice sinusoidal curve
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp20.dat b/benchmarks/dcp20.dat
new file mode 100644
index 0000000..6807aa3
--- /dev/null
+++ b/benchmarks/dcp20.dat
@@ -0,0 +1,27 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-20
+C Test of "JMARTI SETUP" from DCNEW-3, only with DIAGNOSTIC printout
+DIAGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+JMARTI SETUP
+BRANCH JDA LMA JDB LMB JDC LMC
+LINE CONSTANTS
+ 1.3636 .05215 4 1.602 -20.75 50. 50. { 1st conductor card
+ 1.3636 .05215 4 1.602 -19.25 50. 50. { Etc. for remaining
+ 2.3636 .05215 4 1.602 - 0.75 77.5 77.5 { conductors of 500
+ 2.3636 .05215 4 1.602 0.75 77.5 77.5 { kV overhead line
+ 3.3636 .05215 4 1.602 19.25 50. 50. { from "John Day" to
+ 3.3636 .05215 4 1.602 20.75 50. 50. { "Lower Monumental"
+ 0.5 2.61 4 0.386 -12.9 98.5 98.5 { (138 miles long).
+ 0.5 2.61 4 0.386 12.9 98.5 98.5
+BLANK card ending conductor cards of imbedded "LINE CONSTANTS" data case
+100. 5000. 1 138. 1 3-2
+100. 60.00 1 138. 1 3
+100. .01 1 138. 1 9 10 3
+BLANK card ending frequency cards of imbedded "LINE CONSTANTS" data case
+BLANK card ending imbedded "LINE CONSTANTS" data case
+ 1
+ .30 30 0 1 1 0 0
+ .30 30 0 1 1 0 0 .0
+BLANK card ending "JMARTI SETUP" data cases
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp21.dat b/benchmarks/dcp21.dat
new file mode 100644
index 0000000..31a89f5
--- /dev/null
+++ b/benchmarks/dcp21.dat
@@ -0,0 +1,127 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-21
+C Copied from DCNEW-9 except that DIAGNOSTIC printout has been turned on
+C Test of U.M. for the option of data that is nearly compatible with the
+C Type-59 S.M. Compare with DC-53 (source of the original data). Mass 6
+C is no longer an exciter (the U.M. has no such feature). Compensation
+C will be used for armature currents. See DCNEW-10 for solution without it
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 2 9 9 9 9 9
+ .000200 .150 60. 60.
+ 1 1 1 1 1 -1 1
+ 2 -2 20 20 100 100 500 500
+51NAVH AMCC1 A 162.67 507.51
+52NAVH BMCC1 B 6.51 162.97
+53NAVH CMCC1 C
+ MCC1 AMCC2 A 8285.
+ MCC1 BMCC2 B 8285.
+ MCC1 CMCC2 C 8285.
+ MCC2 AEQV A 19.52
+ MCC2 BEQV B 19.52
+ MCC2 CEQV C 19.52
+ TRANSFORMER TRAN A
+ 9999
+ 1NAVL ANAVL C .1 26.
+ 2NAVH A 31.23 311.09
+ TRANSFORMER TRAN A TRAN B
+ 1NAVL BNAVL A
+ 2NAVH B
+ TRANSFORMER TRAN A TRAN C
+ 1NAVL CNAVL B
+ 2NAVH C
+ NAVL A 2500. 1.13
+ NAVL B 2500. 1.13
+ NAVL C 2500. 1.13
+ SWT AMCC2 A 4830.
+ SWT BMCC2 B 4830.
+ SWT CMCC2 C 4830.
+ MCC2 ASWT A 13.01
+ MCC2 BSWT B 13.01
+ MCC2 CSWT C 13.01
+$UNITS, 0.0, 0.0 { Turn off XOPT = COPT = 60 of miscellaneous data card
+BLANK card ending branch cards
+ SWT A .01661667 .09161667
+ SWT B .01661667 .09161667
+ SWT C .01661667 .09161667
+BLANK card ending switch cards
+14EQV A 389997. 60. -93.81293 -1.
+14EQV B 389997. 60. -213.81293 -1.
+14EQV C 389997. 60. 26.18707 -1.
+19 UM
+ SMDATA 0 { Column-15 zero is a request for compensation of armature
+BLANK card ending Class-1 U.M. data cards
+59NAVL A 21229. 60. -44.896562
+ NAVL B
+ NAVL C
+PARAMETER FITTING 1.
+ 6 5 2 1. 1. 892.4 26. +1800. 1907. 3050.
+ .13 1.79 1.71 .169 .228 .13504 .20029
+ 4.3 .85 .032 .05 .13
+ 1 .3 .027691 33.68813 BUSM1
+ 2 .26 .046379 60.9591 BUSM2
+ 3 .22 .255958 90.81823 BUSM3
+ 4 .22 .263573 123.6634 BUSM4
+ 5 .258887 4.925036 BUSM5
+ 6 .0101995 BUSM6
+ 11111111 333333
+ FINISH
+BLANK card ending all U.M. data cards
+BLANK card ending all source cards (including the U.M.)
+C Total network loss P-loss by summing injections = 7.638165973292E+16
+C Total network loss P-loss by summing injections = 7.637910322939E+16
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C SWT A Open Open Open
+C SWT B Open Open Open
+C SWT C Open Open Open
+C BUSM2 BUSM1 -0.63730001E+06 0.27593750E+02 0.63730001E+06
+C BUSM3 BUSM2 -0.11896267E+07 0.74000000E+02 0.11896267E+07
+C BUSM4 BUSM3 -0.16569800E+07 0.32912500E+03 0.16569801E+07
+C BUSM5 BUSM4 -0.21243334E+07 0.59237500E+03 0.21243334E+07
+C BUSM6 BUSM5 0.00000000E+00 -0.10171875E+02 0.10171875E+02
+C
+C EQV C 349966.92087687 389997. -1273.107108876 1348.518748094
+C 172106.98504408 26.1870700 -444.6359221765 -160.7481140
+ NAVH ANAVH BNAVH C
+C Step Time BUSM1 BUSM2 BUSM3 BUSM4 BUSM5 BUSM6
+C TERRA TERRA TERRA TERRA TERRA TERRA
+C
+C BUSM3 BUSM4 BUSM5 BUSM6 UM-1 UM-1
+C BUSM2 BUSM3 BUSM4 BUSM5 TQGEN IPA
+C
+C UM-1 UM-1
+C IE3 IE4
+C *** Phasor I(0) = -0.6373000E+06 Switch "BUSM2 " to "BUSM1 " closed
+C *** Phasor I(0) = -0.1189627E+07 Switch "BUSM3 " to "BUSM2 " closed
+C *** Phasor I(0) = -0.1656980E+07 Switch "BUSM4 " to "BUSM3 " closed
+C *** Phasor I(0) = -0.2124333E+07 Switch "BUSM5 " to "BUSM4 " closed
+C *** Phasor I(0) = 0.0000000E+00 Switch "BUSM6 " to "BUSM5 " closed
+C 0 0.0 376.991118 376.991118 376.991118 376.991118 376.991118 376.991118
+C -.118963E7 -.165698E7 -.212433E7 0.0 .2124333E7 9214.5453
+C 0.0 0.0
+C 1 .2E-3 376.991118 376.991118 376.991118 376.991121 377.010587 376.991121
+C -.118963E7 -.165698E7 -.212401E7 -12.998264 .2124302E7 11174.9553
+C .666759816 .279985108
+BLANK card ending output requests (here, just node voltages)
+ PRINTER PLOT
+C *** Open switch "SWT C" to " " after 1.00200000E-01 sec.
+C 750 .15 384.126402 384.651932 385.325319 386.279569 385.945928 387.184338
+C -747405.67 -204574.87 -555435.76 101161.947 841110.502 12136.4814
+C 15476.078 6425.4336
+C Variable max:385.474659 384.840384 385.325319 386.279569 385.945928 388.150809
+C -473636.66 454873.318 274970.279 106130.573 .8166678E7 85278.5299
+C 40101.8292 15747.4839
+C Times of max : .1228 .1242 .15 .15 .15 .1426
+C .0376 .0306 .1032 .0966 .1268 .136
+C .0432 .0432
+C Variable min:376.991118 376.991118 376.991118 376.991118 376.991118 376.991118
+C -.166481E7 -.165698E7 -.212433E7 -151573.1 -.114998E7 -92288.773
+C -42088.266 -17619.892
+C Times of min : .001 0.0 0.0 0.0 0.0 0.0
+C .0604 0.0 0.0 .1276 .0528 .1268
+C .1252 .1252
+ 19415. 150. UM-1 TQGEN { Axis limits : (-1.150, 8.167)
+ 18415. 150. BUSM6 { Axis limits : (0.000, 3.882)
+BLANK card ending all plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcp22.dat b/benchmarks/dcp22.dat
new file mode 100644
index 0000000..cb49f10
--- /dev/null
+++ b/benchmarks/dcp22.dat
@@ -0,0 +1,114 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-22 (Same as DC-56, only DIAGNOSTIC)
+C First of a pair of cases providing batch-mode documentation of interactive
+C (SPY) capability. The basic data is from DC-4, to which $SPY cards
+C have been added. Included is all-enclusive SPY "HELP" output. Note
+C that SPY commands are preceded by "$SPY", and are followed by "$SPYEND"
+C (in this case, only one such group of SPY commands exists, although up to
+C 9 are allowed). The reserved disk file name "SPYFILE1.DAT" is created
+C by "DATAIN", and is connected to unit MUNIT5 of SPY by "CIMAGE", as
+C the "$SPY, SPYFILE1.DAT" command is processed.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .020 6.0 { Tmax = 6.0 will never be reached due to a SPY stop at 5.0
+ 1 1 1 0 1 -1
+ 5 5 20 20 160 10
+ GEN TRAN 5.0 5.E4 3
+ TRAN 1.E4
+93TRAN .005 30. 3
+ -5.0 -100.
+ -.1 -50.
+ -.02 -45.
+ -.01 -40.
+ -.005 -30.
+ .005 30.
+ .01 40.
+ .02 45.
+ .10 50.
+ 5.0 100.
+ 9999
+ TRAN LOADG 255. 5.E4 3
+ LOADG 1.E-6
+BLANK card ending branch cards
+BLANK card ending switch cards
+14GEN 70. .1591549 -1.
+$SPY { Request of "CIMAGE" ($-card) to begin batch-mode SPY connection
+TIME { Trivial 1st command to demonstrate we are in fact talking to SPY
+TIME { Redundant 2nd "TIME" command in a row
+DEBUG { 1st SPY command is a request to control SPY debug printout
+9 { Turn loose all normal SPY debug printout
+EXAMINE { 2nd SPY command is this involved and powerful memory display command
+CUT 0 { Begin with initialization (so far, EXAMINE SPY table has no rows)
+ADD { Desired EXAMINE symbols are added to zero-length table
+ISTEP { 1st of an arbitrarily long list of memory locations to be defined
+TMAX { 2nd of an arbitrarily long list of memory locations to be defined
+MEMSAV { 3rd of an arbitrarily long list of memory locations to be defined
+T { 4th of an arbitrarily long list of memory locations to be defined
+NCHAIN { Last of an arbitrarily long list of memory locations to be defined
+END { Exit the symbol-input loop; all EXAMINE symbols have been defined
+TABLE { Display all EXAMINE symbols and pointers defined so far
+FORM { Enter EXAMINE loop that allows the changing of output spacing
+1 6 { Symbol number 1, ISTEP, is to be allowed six columns of width
+2 8 { Symbol number 2, TMAX, is to be allowed 8 columns of width
+3 7 -5 { Symbols 3 onward (the next 5) are to be allowed 7 columns each
+SHOW { Display EXAMINE symbols and pointers defined so far (confirm changes)
+END { Exit the "FORM" loop, moving back to basic "EXAMINE" prompt
+SPY { Exit "EXAMINE" and return to the "SPY:" prompt
+NAMES { Display the "EXAMINE" headings and output (just one line for this case)
+BUS { SPY request for a display of the program bus table (a simple illustration)
+ALL { Display all rows of the bus table
+2,3 { Display a range of rows (just 2 and 3, here) of the bus table
+TOP { Display the first row (number 1) of the bus table
+BOT { Display the last row (number 4) of the bus table
+SPY { Exit the loop of the bus table display; back to "SPY:" prompt
+BRANCH
+ALL
+SPY
+SOURCE
+ALL
+SPY
+HELP { Enter loop that provides information about any SPY command
+GO { First, request information about this single names SPY command
+TOP { Next, request information about the first SPY command (which is "NAMES")
+ { <CR> is key word number 28 --- the request for another "EXAMINE" output
+BOT { Next, request information about the last SPY command ("OVERVIEW")
+C ALL { Remove "C " before "ALL" to see all "HELP" text of the program
+SPY { Exit the "HELP" command; back to basic "SPY:" prompt
+BREAK { Request a pause in the simulation that will soon resume (after "GO")
+-105 { simulation will next be interrupted on time step 105
+DEBUG { 1st SPY command is a request to control SPY debug printout
+0 { Cancel diagnostic printout until next SPY break
+GO { Out of SPY, and back to simulation --- uninterrupted until step-105 break
+DEBUG { 1st SPY command is a request to control SPY debug printout
+9 { Turn loose all normal SPY debug printout
+PLOT { Having just broken at step 105, enter SPY plotting
+MODE { Toggle from vector (Apollo default) to character mode of plotting
+SET COLUMN { Request a change in the width of the character plot
+132 { A full-width (as opposed to 80-column), 132-column plot is wanted
+CHOICE { Request a list of the output variables, available for plotting
+NAME { Plot command to begin inputting the variable names
+TRAN { The first and only variable to be plotted will be this node voltage
+LAST { Exit the loop over plot input variables; back to basic plot command
+TIME { Request for actual plotting (in this case, a character plot)
+0, 2.0 { Time span of the character plot that is to begin immediately
+SPY { Exit plotting; back to "SPY:" command
+BREAK { Request a pause in the simulation that will soon resume (after "GO")
+-162 { Next SPY activity will recommence at time step number 162
+DEBUG { 1st SPY command is a request to control SPY debug printout
+0 { Cancel diagnostic printout until next SPY break
+GO { Out of SPY, and back to simulation until the next (step-162) break
+PLOT { Having just broken at step 162, enter SPY plotting
+FRONT 1.0 { The time scale will be chosen to provide only the latest 1.0 sec
+ROLLC { Toggle flag for rolling printer plot; rolling is now to begin.
+SPY { Exit plotting; back to "SPY:" command
+BREAK { Request a pause in the simulation that will soon resume (after "GO")
+-251 { Next SPY activity will recommence at time step number 251
+GO { Out of SPY, and back to simulation until the next (step-251) break
+TIME { Trivial SPY command just to demonstrate that we have "SPY:" prompt
+STOP { This SPY command will terminate execution of the data case
+$SPYEND { Bound on in-line SPY commands; back to batch-mode program data
+BLANK card ending all electric sources
+ GEN TRAN
+BLANK card ending requests for program output (here, just node voltages)
+C Note that no plot cards are placed here, since execution won't make it!
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp23.dat b/benchmarks/dcp23.dat
new file mode 100644
index 0000000..45ad964
--- /dev/null
+++ b/benchmarks/dcp23.dat
@@ -0,0 +1,17 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-23
+C Beginning of DC-17, designed to illustrate input data sorting by class.
+C It should be executed with IPRSUP = IPRSPY = 9 in the STARTUP file.
+C There also will be program initialization diagnostic as well (valuable).
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+$PREFIX, \WSM/ { Warning! Different computers will have different prefixes
+$SUFFIX, .DAT { preceding the name on $INCLUDE below, generally.
+$LEVEL, 4
+ .020 4.0
+ 1 1 1 1 1 -1
+ 5 5 20 20
+$INCLUDE DC17INCL1, 9 .005 TRAN##
+BLANK card ending BRANCH cards
+BLANK card ending SWITCH cards (none exists, for this case)
+C Since all we want to illustrate is sorting and initial input, stop next:
+$STOP
diff --git a/benchmarks/dcp24.dat b/benchmarks/dcp24.dat
new file mode 100644
index 0000000..ded691c
--- /dev/null
+++ b/benchmarks/dcp24.dat
@@ -0,0 +1,75 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-24
+C Same as DC-18, only with T-max shortened to 4 steps, and DIAGNOSTIC.
+DIAGNOSTIC 0 9 0 0 0 0 0 0 0 0 0 9
+ 0.1 0.4
+ 1 1 1
+TACS STAND ALONE
+ DUMMY +UNITY
+11LGCL1 1. 0.25
+11FST 1. 0.05 0.15
+11SCND 1. 0.25 0.35
+99LGCL4 FST + SCND
+99LGCL2 .NOT. LGCL4
+98NAND LGCL1 .NAND.LGCL2
+98RESL1 .NOT. LGCL1 .OR. LGCL4 - NAND
+98NOR LGCL1 .NOR. LGCL2
+98RESL2 .NOT. LGCL1 .AND. LGCL4 - NOR
+33LGCL1 LGCL2 LGCL4 NAND NOR RESL1 RESL2
+C Step Time LGCL1 LGCL2 LGCL4 NAND NOR
+C 0 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 1 1.00000E-01 0.00000E+00 0.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00
+C 2 2.00000E-01 0.00000E+00 1.00000E+00 0.00000E+00 1.00000E+00 0.00000E+00
+BLANK card ending all TACS data cards
+C Row Name Minimum Maximum Time of min Time of max
+C 1 LGCL1 0.0000000000E+00 1.0000000000E+00 0.000000 0.300000
+C 2 LGCL2 0.0000000000E+00 1.0000000000E+00 0.000000 0.200000
+C 3 LGCL4 0.0000000000E+00 1.0000000000E+00 0.000000 0.100000
+C Final step begins : 20 2.00000E+00 1.00000E+00 1.00000E+00 0.00000E+00
+C completion of this : 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+ PRINTER PLOT
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C Same as 2nd subcase of DC-18, on with T-max shortened to 2 steps only
+ABSOLUTE TACS DIMENSIONS
+ 10 90 100 20 30 400 350 60
+ .02 .04 { Even though no dynamics, vary time to produce nice plots!
+ 1 1 0 0 1 -1
+ 5 5
+TACS STAND ALONE
+99TEST1 = 10.0 * ( UNITY + TIMEX ) ** 2 + 50. { High-level, single-card result
+99X1 = 1.0 + TIMEX { Expression within parentheses on preceding card
+99X2 = X1 * X1 { Mimic exponentiation for special case of square
+99X3 = 10 * X2 + 50 { 3rd of low-level, 3-card equivalent to TEST1
+99TEST2 = 1.E2 * COS ( 2.0 * PI * TEST1 / 100. ) { High-level d1-card result
+99X4 = PI * TEST1 { Beginning terms of trigonometric argument
+99X5 = X4 * .02 { Complete trig argument using modified form of 2/100
+99X6 = COS ( X5 )
+99X7 = X6 * 100. { 4th and final line of low-level equivalent gives TEST2
+99TEST3 = 10.0 + 5.5 * TIMEX * SQRT ( ABS ( TEST2 ) )
+99X8 = ABS ( X7 )
+99X9 = SQRT ( X8 )
+99X10 = X9 * 5.5 * TIMEX
+99X11 = X10 + 10 { 4th and final line of low-level equivalent gives TEST3
+99RESID = ABS ( TEST1 - X3 ) + ABS ( TEST2 - X7 ) + ABS ( TEST3 - X11 )
+ 1TEST4 +TEST3
+ 1.0
+ 0.0 1.0
+99TEST5 = 2.0 * PI * TEST1 / 100.
+99TEST6 = SIN ( TEST5 )
+99UNITY? = 1.E-4 * ( TEST2 * TEST2 + 1.E4 * TEST6 * TEST6 )
+33TEST1 X3 TEST2 X7 TEST3 X11 TEST4 UNITY?RESID
+C Step Time TEST1 X3 TEST2 X7 TEST3
+C 0 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
+C 1 2.00000E-02 6.04040E+01 6.04040E+01-7.93838E+01-7.93838E+01 1.09801E+01
+C 2 4.00000E-02 6.08160E+01 6.08160E+01-7.77831E+01-7.77831E+01 1.19403E+01
+BLANK card ending all TACS data cards
+C Final step begins : 100 2.00000 1.40000E+2 1.40000E+2 -8.09017E+1 -8.09017E+1
+C completion of this : 1.08940E+2 1.08940E+2 9.85281E+1 1.00000E+00 0.00000E+00
+ 143 .2 0.0 2.0 TEST1 TEST2 TEST3 TEST4
+ PRINTER PLOT
+ 143 .4 0.0 2.0 TEST1 TEST2 TEST4
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcp25.dat b/benchmarks/dcp25.dat
new file mode 100644
index 0000000..9138c9a
--- /dev/null
+++ b/benchmarks/dcp25.dat
@@ -0,0 +1,49 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-25 Diagnostic version of DC-9.
+DIAGNOSTIC 0 0 9 9 9 9 0 9 9 9 9
+ 0.0 0.0 60.
+ 0 0 1 1
+ CASCADED PI 3 60.0
+ 1RA1 GA1 .877 8.40 .1628
+ 2RB1 GB1 .747 4.14-.0252 .852 8.43 .1559
+ 3RC1 GC1 .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571
+ 1.0 2 0 0 1 1 2 3
+ 1.0 1 1 0 0 2 3 1
+ 2 999999
+ 3 13.1449.071
+BLANK card ending first Class-5 (Series R-L-C) set of data
+ 1.0 1 1 1 0 3 1 2
+ 1 13.14
+ 2 13.14
+ 3 13.1449.071
+BLANK card ending 2nd Class-5 (Series R-L-C) set of data
+ 1 -1 13.1449.071
+ 2 -1 13.1449.071
+ 3 -1 13.1449.071
+ -1 5.0 13.14
+BLANK card ending first Class-6 (Shunt R-L-C) set of data
+ 2.0 1 -1 -1 1 1 2 3
+ 1 .829 8.46 .1571
+ 2 .723 4.17-.0277 .852 8.43 .1559
+ 3 .735 3.47-.0067 .747 4.14-.0252 .877 8.40 .1628
+ STOP CASCADE
+BLANK card ending branch cards
+BLANK card ending switch cards (none for this problem)
+14GA1 424.35 60. 0.0 -.1
+14RA1 424.35 60. 10.0 -.1
+14GB1 424.35 60. -120.0 -.1
+14RB1 424.35 60. -110.0 -.1
+14GC1 424.35 60. 120.0 -.1
+14RC1 424.35 60. 130.0 -.1
+BLANK card ending source cards
+BLANK card ending selective node voltage outputs (none for this problem)
+C Total network loss P-loss by summing injections = 9.311041032866E+03
+C 1st gen: RA1 417.90316999073 424.35 -.0131358847782 .05382578726276
+C 1st gen: 73.687604192962 10.00000 .05219831324431 104.1253709
+C End last gen: -12.95674346101 44.419110587004 -6432.468410934 9424.6247887975
+C End last gen: -42.48741206788 -106.9593405 -6888.171205186 -0.6825172
+ PRINTER PLOT
+BLANK card ending plot cards (none allowed for CASCADED PI use, actuall)
+BEGIN NEW DATA CASE
+BLANK
+
diff --git a/benchmarks/dcp26.dat b/benchmarks/dcp26.dat
new file mode 100644
index 0000000..372201c
--- /dev/null
+++ b/benchmarks/dcp26.dat
@@ -0,0 +1,74 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-26 (Same as DC-26, only with DIAGNOSTIC, shorter TMAX)
+C Test of Type-59 S.M. dynamics, with load flow ("FIX SOURCE" request)
+C determination of initial conditions that observe power constraints.
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 0 0 9 9 3 9 9 9 9 9
+FIX SOURCE { An EMTP load flow will satisfy requested phasor power injections.
+POWER FREQUENCY, 50.0, { Avoid warning message about suspicious XOPT, COPT.
+ .000200 .100 50. 50.
+ 1 1 0 { test } 1 -1
+ 2 -1 5 5 20 20
+ A1 A2 0.1 1
+ B1 B2 0.1 1
+ C1 C2 0.1 1
+51A2 B2 .00528 571.5428
+52A3 -.029 3125.811 .1582 17115.12
+51B2 C2 A2 B2
+52B3
+51C2 A2 A2 B2
+52C3
+ A2 31.416
+ B2 31.416
+ C2 31.416
+ 1A3 A4 43.342
+ 2B3 B4 12.546 43.342
+ 3C3 C4 12.546 12.546 43.342
+BLANK card ending branch cards.
+C The next card has T-open = 80 msec minus DELTAT/2 in order to avoid
+C delayed opening (1/2 cycle) for PRIME and Burroughs. WSM. 27 FEB 1982.
+ A3 .01990 .0799 1
+BLANK card ending switch cards.
+14A4 112.059 50. -20. -1.
+14B4 112.059 50. -140. -1.
+14C4 112.059 50. 100. -1.
+C 59A1 11.3901 50.0 - 30.0 (before FIX SOURCE use)
+59A1 11.0 50.0 -40.0
+59B1
+59C1
+TOLERANCES 0200. 20
+PARAMETER FITTING 1.0
+ 1 1 2 1.0 1.0 150.0 13.8 600.0 600.0 720.0
+BLANK card for quadrature axis of machine.
+ 0.0014 0.175 1.85 1.76 0.2575 1.76 0.18 0.18
+ 5.74757 0.051142 0.382609 0.197985
+ 1 1.0 50.0 1.0
+BLANK card ending all (here, just one) mass cards.
+ 12
+ 21
+ 3 1
+BLANK card terminating all (here, three) S.M. output requests.
+ FINISH
+BLANK card terminating all EMTP source cards.
+ A1 39.98755 -4.507399 10.0 12.0 -60.
+ B1 39.98755 -4.507399 10.0 12.0 -180. -120.
+ C1 39.98755 -4.507399 10.0 12.0 60.0 120.
+ 1 1000 20 1 0.00001 0.1 2.0
+C Exit the load flow iteration loop with counter NEKITE = 133. If no warning
+C Row Node Name Voltage mag Degrees Real power Reactive power
+C 4 8 A1 0.113901E+02 -30.0002 0.399872E+02 -0.450736E+01
+C 5 9 B1 0.113901E+02 -150.0002 0.399872E+02 -0.450736E+01
+C 6 10 C1 0.113901E+02 89.9998 0.399872E+02 -0.450736E+01
+C Total network loss P-loss by summing injections = 8.018000511887E+00
+ 1
+C 500 0.1 -1.4337941 -7.4122476 8.84604165 2.92973492 -49.293242 -61.148924
+C -85.842174 -19.458841 0.0 8.024093 -5.6349461 -2.3891469
+C -.15257793 -.27951372 0.0 8.024093 -5.6349461 -2.3891469
+C 118.449756 .133792E-8
+ PRINTER PLOT
+ 19410. 0. 120. MACH 1ID MACH 1IQ { Plot limits : (-2.314, 0.917)
+ 19410. 0. 120. MACH 1IF MACH 1IG { Plot limits : (-0.431, 1.641)
+ 19410. 0. 120. BRANCH { Plot limits : (-1.885, 1.767)
+ A1 A2 B1 B2 C1 C2
+BLANK card terminating all plot cards.
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp3.dat b/benchmarks/dcp3.dat
new file mode 100644
index 0000000..e9d2be4
--- /dev/null
+++ b/benchmarks/dcp3.dat
@@ -0,0 +1,69 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-3
+C Same as preceding case, except for removal of the permanently closed switch
+POWER FREQUENCY, 1.0
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
+ .005 1.0 1.0 1.0
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ REC .001 { Near short at receiving end, to ground
+ 1SEND REC 1.0 1.0 1.E4
+ GEN SEND 1.0
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+14GEN 100. 1.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.993421807364E+03
+C GEN 100. 100. 39.86843614728 44.524811215286
+C 0.0 0.0 -19.82338550619 -26.4374857
+C Step Time REC SEND GEN
+C 0 0.0 .0399674525 60.13156385 100.
+C 1 .005 .0405797999 59.47927495 99.95065604
+C 2 .01 .0411521061 58.76828192 99.80267284
+ 1
+C 200 1.0 .0399661325 60.13289683 100.
+C Variable maxima : .044747265 63.31584536 100.
+C Times of maxima : .075 .95 0.0
+C Variable minima : -.044746753 -63.3158499 -100.
+C Times of minima : .575 .45 0.5
+ PRINTER PLOT { Plot limits: (-4.475, 4.475)
+ 143 .1 0.0 1.0 REC { Plot card should show nice sinusoidal curve
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+C 2nd of 2 subcases uses $UNITS and $VINTAGE on same problem (same answers)
+POWER FREQUENCY, 1.0
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 0 0 0 0 0 0 0 0 0
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .005 1.0 1.0 1.0 { Note that we start with XOPT = COPT = 1
+ 1 1 1 1 1 -1
+ 2 1 5 5 20 20
+ REC .001 { Near short at receiving end, to ground
+$UNITS, 0.0, 0.0, { The 1-phase Pi-circuit to follow has millihenries, micromhos
+$VINTAGE, 1, { Switch from narrow data formats (default choice) to wide formats
+ 1SEND REC 1.0 159.154943092 1591.54943092
+$VINTAGE, 0,
+$UNITS, 1.0, 1.0,
+ GEN SEND 1.0
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+14GEN 100. 1.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 1.993421807363E+03
+C GEN 100. 100. 39.868436147269 44.52481121528
+C 0.0 0.0 -19.8233855062 -26.4374857
+C Step Time REC SEND GEN
+C 0 0.0 .0399674525 60.13156385 100.
+C 1 .005 .0405797999 59.47927495 99.95065604
+C 2 .01 .0411521061 58.76828192 99.80267284
+ 1
+C 200 1.0 .0399661325 60.13289683 100.
+C Variable maxima : .044747265 63.31584536 100.
+C Times of maxima : .075 .95 0.0
+C Variable minima : -.044746753 -63.3158499 -100.
+C Times of minima : .575 .45 0.5
+ PRINTER PLOT { Plot limits: (-4.475, 4.475)
+ 143 .1 0.0 1.0 REC { Plot card should show nice sinusoidal curve
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp4.dat b/benchmarks/dcp4.dat
new file mode 100644
index 0000000..5b399a9
--- /dev/null
+++ b/benchmarks/dcp4.dat
@@ -0,0 +1,26 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-4
+C Like preceding case, except that former voltage source is a current source
+C and DIAGNOSTIC printout is turned on everywhere. Tmax set for 2 steps.
+ .05 0.1 1.0 1.0
+ 1 1 1 1 1 9
+ REC .001 { Near short at receiving end, to ground
+ 1GEN REC 1.0 1.0 1.E4
+ GEN 1.0
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+14GEN -1 100. 1.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 3.006578192636E+03
+C REC .03996745245359 .04474798787099 39.967452453595 44.747987870993
+C TERRA 0.0 0.0 -39.96745245359 44.747987870993
+C Step Time GEN REC
+C 0 0.0 60.1315639 .039967452
+C 1 .05 51.0907788 .044203499
+C 2 0.1 37.0111013 .044150144
+ 1
+ PRINTER PLOT { Limits of axis : (0.000, 4.420)
+ 143 .1 0.0 1.0 REC { Plot card goes through motions of graphing
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp5.dat b/benchmarks/dcp5.dat
new file mode 100644
index 0000000..5f4d4a7
--- /dev/null
+++ b/benchmarks/dcp5.dat
@@ -0,0 +1,40 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-5
+C Test of Type-97 staircase, pseudo-nonlinear, time-varying resistance.
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
+ .0011 .010
+ 1 1 1 1 1 -1
+ 2 -1
+ GEN LOAD 1.0 { One ohm resistor in series with R(t)
+$DEBUG, 8, { Illustrative usage of no practical importance (reduce from 9 to 8)
+97LOAD -1. 1
+ .000 1.0 { Begin 1st-quadrant (time, R) characteristic
+ .003 0.5
+ .006 2.0
+ .008 1.E35 { Final point switches to infinite resistance
+ 9999
+BLANK card ending branch cards
+BLANK card ending non-existent switch cards
+14GEN 100. 60. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 2.500000000125E+03
+C GEN 100. 100. 50.0000000025 50.0000000025
+C 0.0 0.0 0.0 0.0
+C Step Time LOAD GEN LOAD
+C TERRA
+C 0 0.0 50. 100. 50.
+C 1 .0011 45.7620586 91.5241173 45.7620586
+ 1
+C 2 .0022 33.7666404 67.5332808 33.7666404
+C 3 .0033 16.0471805 32.094361 16.0471805
+C 4 .0044 -2.9283732 -8.7851197 -5.8567464
+C 5 .0055 -16.058456 -48.175367 -32.116912
+C 6 .0066 -26.466347 -79.39904 -52.932693
+C 7 .0077 -64.775449 -97.163173 -32.387724
+C 8 .0088 -65.637622 -98.456433 -32.818811
+C 9 .0099 -83.05959 -83.05959 -.8306E-33
+ PRINTER PLOT
+ 194 2. 0.0 10. LOAD { Axis limits : (-5.293, 5.000)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp6.dat b/benchmarks/dcp6.dat
new file mode 100644
index 0000000..18340cc
--- /dev/null
+++ b/benchmarks/dcp6.dat
@@ -0,0 +1,43 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-6
+C Test of Type-99 pseudo-nonlinear resistance. 1-phase line energization.
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
+ .000200 .020 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ REC 100. 3
+-1SEND REC 0.3 0.4 12.6 100.
+99REC 5.0 2 1
+ 1.0 100.
+ 2.0 200.1
+ 9999
+BLANK card ending branch cards
+ GEN SEND .0003 1.0 { Switch that energizes line on 2nd step
+BLANK card ending switch cards
+14GEN 100. 60. { Source not present in steady state, note
+BLANK card ending source cards
+C Step Time REC REC SEND GEN REC
+C TERRA TERRA
+C 0 0.0 0.0 0.0 0.0 0.0 0.0
+C 1 .2E-3 0.0 0.0 0.0 99.71589003 0.0
+ 1
+C 2 .4E-3 0.0 0.0 0.0 98.86517447 0.0
+C 3 .6E-3 0.0 0.0 97.45268728 97.45268728 0.0
+C 4 .8E-3 0.0 0.0 95.48645447 95.48645447 0.0
+C 5 .001 1.412558111 1.412558111 92.97764859 92.97764859 0.0
+C " " begins operation on segment 2 at time T = 1.20000000E-03 sec.
+C 10 .002 31.57766457 31.57766457 72.89686274 72.89686274 .3157766457
+C " " begins operation on segment 0 at time T = 1.38000000E-02 sec.
+C " " begins operation on segment 2 at time T = 1.40000000E-02 sec.
+C 80 .016 42.14983507 42.14983507 96.85831611 96.85831611 .4214983507
+C 100 .02 40.44541516 40.44541516 30.90169944 30.90169944 .4044541516
+C Variable max : 62.79749241 62.79749241 99.96841893 99.96841893 .5668106247
+C Times of max : .0012 .0012 .0166 .0166 .018
+C Variable min : -56.7406992 -56.7406992 -99.9684189 -99.9684189 -.567406992
+C Times of min : .0096 .0096 .0084 .0084 .0096
+ PRINTER PLOT
+ 194 2. 0.0 20. REC { Axis limits : (-5.674, 5.668)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp7.dat b/benchmarks/dcp7.dat
new file mode 100644
index 0000000..1100d91
--- /dev/null
+++ b/benchmarks/dcp7.dat
@@ -0,0 +1,59 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-7
+C Test of 3-phase Pi-circuit that is excited by 3 in-phase sources that are
+C present during the phasor solution. No transients (phasor continuation).
+DIAGNOSTIC 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+ .05 1.0 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1 { Turn off the diagnostic on step number 2
+ RECA .001 { Short the receiving end through R=1.E-3
+ RECB .001 { ohm resistors, so that lots of current
+ RECC .001 { will flow (no subtle effects here!).
+ 1SENDA RECA 1.0 1.0 1.E4 { 1st card of 3-phase Pi-circuit
+ 2SENDB RECB 0.7 0.3 -2.E3 1.0 1.0 1.E4
+ 3SENDC RECC 0.7 0.3 -2.E3 0.7 0.3 -2.E3 1.0 1.0 1.E4
+BLANK card ending branch cards
+ GENA SENDA -1.0 9.0 { 1st of 3 permanently-closed switches
+ GENB SENDB -1.0 9.0
+ GENC SENDC -1.0 9.0
+BLANK card ending switch cards
+14GENA 100. 1.0 { Note all 3 sources} -1.
+14GENB 100. 1.0 { have a phase angle} -1.
+14GENC 100. 1.0 { of zero degrees.} -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 6.246626371768E+03
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C GENA SENDA 0.41644176E+02 -0.45752035E+00 0.41646689E+02
+C GENB SENDB 0.41644176E+02 -0.45752035E+00 0.41646689E+02
+C GENC SENDC 0.41644176E+02 -0.45752035E+00 0.41646689E+02
+C Last inject: GENC
+C Last inject: SENDC 100. 100. 41.644175811789 41.646688990975
+C Last inject: 0.0 0.0 -.4575203468966 -0.6294501
+C Step Time RECC RECB RECA SENDC SENDB
+C
+C GENC
+C *** Phasor I(0) = 0.4164418E+02 Switch "GENA " to "SENDA " closed
+C *** Phasor I(0) = 0.4164418E+02 Switch "GENB " to "SENDB " closed
+C *** Phasor I(0) = 0.4164418E+02 Switch "GENC " to "SENDC " closed
+C 0 0.0 .0416441758 .0416441758 .0416441758 100. 100.
+C 100.
+C 1 .05 .0397499231 .0397499231 .0397499231 95.10565163 95.10565163
+C 95.10565163
+ 1
+C 20 1.0 .0416440951 .0416440951 .0416440951 100. 100.
+C 100.
+C Variable max : .0416441758 .0416441758 .0416441758 100. 100.
+C 100.
+C Times of max : 0.0 0.0 0.0 0.0 0.0
+C 0.0
+C Variable min : -.041644069 -.041644069 -.041644069 -100. -100.
+C -100.
+C Times of min : 0.5 0.5 0.5 0.5 0.5
+C 0.5
+ PRINTER PLOT { Axis limits : (-4.164, 4.164)
+ 143 .1 0.0 1.0 RECA { This receiving end voltage is nice & sinusoidal
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp8.dat b/benchmarks/dcp8.dat
new file mode 100644
index 0000000..73c902c
--- /dev/null
+++ b/benchmarks/dcp8.dat
@@ -0,0 +1,48 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-8
+C Like the preceding case, only with distributed line replacing Pi-circuit
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 3 9 9 9 9 9
+ .000100 .020 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1 5 5 20 20
+ RECA .001
+ RECB .001
+ RECC .001
+-1SENDA RECA 0.3 0.4 12.6 100.
+-2SENDB RECB .03 0.1 6.0 100.
+-3SENDC RECC
+BLANK card ending branch cards
+ GENA SENDA -1.0 1.0
+ GENB SENDB -1.0 1.0
+ GENC SENDC -1.0 1.0
+BLANK card ending switch cards
+14GENA 100. 1.0 -1.
+14GENB 100. 1.0 -1.
+14GENC 100. 1.0 -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.997365737714E+02
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C GENA SENDA 0.33315772E+01 -0.73376324E-01 0.33323851E+01
+C GENB SENDB 0.33315772E+01 -0.73376324E-01 0.33323851E+01
+C GENC SENDC 0.33315772E+01 -0.73376324E-01 0.33323851E+01
+C Last gen: GENC
+C Last gen: SENDC 100. 100. 3.3315771584762 3.3323850989622
+C Last gen: 0.0 0.0 -.0733763238755 -1.2617070
+C Step Time RECC RECB RECA SENDC SENDB SENDA
+C *** Phasor I(0) = 0.3331577E+01 Switch "GENA " to "SENDA " closed
+C *** Phasor I(0) = 0.3331577E+01 Switch "GENB " to "SENDB " closed
+C *** Phasor I(0) = 0.3331577E+01 Switch "GENC " to "SENDC " closed
+C 0 0.0 .003331577 .003331577 .003331577 100. 100. 100.
+C 1 .1E-3 .003331623 .003331623 .003331623 99.9999803 99.9999803 99.9999803
+ 1
+C 200 .02 .003314635 .003314635 .003314635 99.2114701 99.2114701 99.2114701
+C Variable max:.003332408 .003332408 .003332408 100. 100. 100.
+C Times of max : .0036 .0036 .0036 0.0 0.0 0.0
+C Variable min:.003314635 .003314635 .003314635 99.2114701 99.2114701 99.2114701
+C Times of min : .02 .02 .02 .02 .02 .02
+ PRINTER PLOT
+ 144 2. 0.0 20. RECA { Axis limits : (0.000, 3.332)
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/dcp9.dat b/benchmarks/dcp9.dat
new file mode 100644
index 0000000..d11dd1d
--- /dev/null
+++ b/benchmarks/dcp9.dat
@@ -0,0 +1,60 @@
+BEGIN NEW DATA CASE
+C BENCHMARK DCPR-9
+C Like preceding case number 7, only with balanced 3-phase excitation here
+PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
+DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 3 9 9 9 9 9
+ .05 1.0 60. 60.
+ 1 1 1 1 1 -1
+ 2 -1
+ RECA .001 { Short the receiving end through R=1.E-3
+ RECB .001 { ohm resistors, so that lots of current
+ RECC .001 { will flow (no subtle effects here!).
+ 1SENDA RECA 1.0 1.0 1.E4
+ 2SENDB RECB 0.7 0.3 -2.E3 1.0 1.0 1.E4
+ 3SENDC RECC 0.7 0.3 -2.E3 0.7 0.3 -2.E3 1.0 1.0 1.E4
+BLANK card ending branch cards
+ GENA SENDA -1.0 9.0
+ GENB SENDB -1.0 9.0
+ GENC SENDC -1.0 9.0
+BLANK card ending switch cards
+14GENA 100. 1.0 0.0 -1.
+14GENB 100. 1.0 -120. -1.
+14GENC 100. 1.0 +120. -1.
+BLANK card ending source cards
+C Total network loss P-loss by summing injections = 4.975913322375E+04
+C Output for steady-state phasor switch currents.
+C Node-K Node-M I-real I-imag I-magn
+C GENA SENDA 0.33172755E+03 -0.12847657E+02 0.33197625E+03
+C GENB SENDB -0.17699017E+03 -0.28086066E+03 0.33197625E+03
+C GENC SENDC -0.15473738E+03 0.29370832E+03 0.33197625E+03
+C Last inject: GENC
+C Last inject: SENDC -50. 100. -154.737380025 331.97625355128
+C Last inject: 86.602540378444 120.000000 293.70831814053 117.7820691
+C Step Time RECC RECB RECA SENDC SENDB
+C
+C GENC
+C *** Phasor I(0) = 0.3317276E+03 Switch "GENA " to "SENDA " closed
+C *** Phasor I(0) = -0.1769902E+03 Switch "GENB " to "SENDB " closed
+C *** Phasor I(0) = -0.1547374E+03 Switch "GENC " to "SENDC " closed
+C 0 0.0 -.15472869 -.176998863 .3317275535 -50. -50.
+C -50.
+C 1 .05 -.237782502 -.081702388 .3194848903 -74.3144825 -20.7911691
+C -74.3144825
+ 1
+C 2 0.1 -.297802788 .0218130975 .2759896908 -91.3545458 10.45284633
+C -91.3545458
+C 20 1.0 -.154632329 -.177086923 .3317192528 -50. -50.
+C -50.
+C Variable max : .3285470726 .3312545968 .3317275535 99.45218954 99.45218954
+C 99.45218954
+C Times of max : .65 .35 0.0 .65 .35
+C .65
+C Variable min : -.328525683 -.331257201 -.331719199 -99.4521895 -99.4521895
+C -99.4521895
+C Times of min : .15 .85 0.5 .15 .85
+C .15
+ PRINTER PLOT { Axis limits : (-3.317, 3.317)
+ 143 .1 0.0 1.0 RECA { This receiving end voltage is nice & sinusoidal
+BLANK card ending plot cards
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/fort.1 b/benchmarks/fort.1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/benchmarks/fort.1
diff --git a/benchmarks/rettore.atp b/benchmarks/rettore.atp
new file mode 100644
index 0000000..2e0bc01
--- /dev/null
+++ b/benchmarks/rettore.atp
@@ -0,0 +1,26 @@
+begin new data case
+c --------------------------------------------------------
+c generated by atpdraw aprile, martedì 20, 2021
+c a bonneville power administration program
+c by h. k. høidalen at sefas/ntnu - norway 1994-2016
+c --------------------------------------------------------
+c dt >< tmax >< xopt >< copt ><epsiln>
+ 1.e-6 .1
+ 500 1 1 1 1 0 0 1 0
+c 1 2 3 4 5 6 7 8
+c 345678901234567890123456789012345678901234567890123456789012345678901234567890
+/branch
+c < n1 >< n2 ><ref1><ref2>< r >< l >< c >
+c < n1 >< n2 ><ref1><ref2>< r >< a >< b ><leng><><>0
+ xx0001 1.e3 1
+/source
+c < n 1><>< ampl. >< freq. ><phase/t0>< a1 >< t1 >< tstart >< tstop >
+14xx0001 1.e4 50. -1. 100.
+/output
+blank branch
+blank switch
+blank source
+blank output
+blank plot
+begin new data case
+blank
diff --git a/benchmarks/rettore.dat b/benchmarks/rettore.dat
new file mode 100644
index 0000000..4328754
--- /dev/null
+++ b/benchmarks/rettore.dat
@@ -0,0 +1,24 @@
+begin new data case
+c --------------------------------------------------------
+c generated by atpdraw aprile, martedì 20, 2021
+c a bonneville power administration program
+c by h. k. høidalen at sefas/ntnu - norway 1994-2016
+c --------------------------------------------------------
+c dt >< tmax >< xopt >< copt ><epsiln>
+ 10.e-6 .1
+ 500 1 1 1 1 0 0 1 0
+c 1 2 3 4 5 6 7 8
+c 345678901234567890123456789012345678901234567890123456789012345678901234567890
+/branch
+c < n1 >< n2 ><ref1><ref2>< r >< l >< c >
+c < n1 >< n2 ><ref1><ref2>< r >< a >< b ><leng><><>0
+ xx0001 1.e3 1
+/source
+c < n 1><>< ampl. >< freq. ><phase/t0>< a1 >< t1 >< tstart >< tstop >
+14xx0001 1.e4 50. -1. 100.
+/output
+blank branch
+blank switch
+blank source
+blank output
+blank plot
diff --git a/benchmarks/rettore2.atp b/benchmarks/rettore2.atp
new file mode 100644
index 0000000..9e2ac26
--- /dev/null
+++ b/benchmarks/rettore2.atp
@@ -0,0 +1,12 @@
+/branch
+xx0001 1.e3 1
+/source
+14xx0001 1.e4 50. -1. 100.
+/output
+blank branch
+blank switch
+blank source
+blank output
+blank plot
+begin new data case
+blank \ No newline at end of file
diff --git a/benchmarks/rettore2.atp~ b/benchmarks/rettore2.atp~
new file mode 100644
index 0000000..ed662b3
--- /dev/null
+++ b/benchmarks/rettore2.atp~
@@ -0,0 +1,26 @@
+BEGIN NEW DATA CASE
+C --------------------------------------------------------
+C Generated by ATPDRAW aprile, martedì 20, 2021
+C A Bonneville Power Administration program
+C by H. K. Høidalen at SEfAS/NTNU - NORWAY 1994-2016
+C --------------------------------------------------------
+C dT >< Tmax >< Xopt >< Copt ><Epsiln>
+ 1.E-6 .1
+ 500 1 1 1 1 0 0 1 0
+C 1 2 3 4 5 6 7 8
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+/BRANCH
+C < n1 >< n2 ><ref1><ref2>< R >< L >< C >
+C < n1 >< n2 ><ref1><ref2>< R >< A >< B ><Leng><><>0
+ XX0001 1.E3 1
+/SOURCE
+C < n 1><>< Ampl. >< Freq. ><Phase/T0>< A1 >< T1 >< TSTART >< TSTOP >
+14XX0001 1.E4 50. -1. 100.
+/OUTPUT
+BLANK BRANCH
+BLANK SWITCH
+BLANK SOURCE
+BLANK OUTPUT
+BLANK PLOT
+BEGIN NEW DATA CASE
+BLANK
diff --git a/benchmarks/rettore2.dat b/benchmarks/rettore2.dat
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/benchmarks/rettore2.dat
diff --git a/benchmarks/sacoi1.dat b/benchmarks/sacoi1.dat
new file mode 100644
index 0000000..3bbd58c
--- /dev/null
+++ b/benchmarks/sacoi1.dat
@@ -0,0 +1,1151 @@
+begin new data case
+c
+c
+c ------------------------------------------------------------------------------
+c miscellaneous data cards
+c ------------------------------------------------------------------------------
+c dt >< tmax >< xopt >< copt ><epsiln>
+ 2.5e-5 1.5
+ 500 1 1 1 1 0 0 1 0
+c
+c ------------------------------------------------------------------------------
+c blocco tacs
+c ------------------------------------------------------------------------------
+tacs hybrid
+c ----- misura dell'angolo gamma, convertitore suvereto ---------------
+90vysuva 10.
+90vysuvb 10.
+90vysuvc 10.
+90vdsuva 10.
+90vdsuvb 10.
+90vdsuvc 10.
+90elesuv 10.
+90meio11 10.
+90polosu 10.
+c
+98va1101 =suvera.lt.suverb
+98va1102 =suvera.lt.suverc
+98va1103 =suverb.lt.suverc
+98va1104 =suverb.lt.suvera
+98va1105 =suverc.lt.suvera
+98va1106 =suverc.lt.suverb
+98va1107 =suvera.lt.zero
+98va1108 =suverc.gt.zero
+98va1109 =suverb.lt.zero
+98va1110 =suvera.gt.zero
+98va1111 =suverc.lt.zero
+98va1112 =suverb.gt.zero
+c
+98vd110153 +va1101 2.5e-5
+98vd110253 +va1102 2.5e-5
+98vd110353 +va1103 2.5e-5
+98vd110453 +va1104 2.5e-5
+98vd110553 +va1105 2.5e-5
+98vd110653 +va1106 2.5e-5
+98vd110753 +va1107 2.5e-5
+98vd110853 +va1108 2.5e-5
+98vd110953 +va1109 2.5e-5
+98vd111053 +va1110 2.5e-5
+98vd111153 +va1111 2.5e-5
+98vd111253 +va1112 2.5e-5
+c
+98re1101 =(vysuva.lt.meio11).and.(timex.gt.0.02)
+98re1102 =(elesuv.lt.vysuvc).and.(timex.gt.0.02)
+98re1103 =(vysuvb.lt.meio11).and.(timex.gt.0.02)
+98re1104 =(elesuv.lt.vysuva).and.(timex.gt.0.02)
+98re1105 =(vysuvc.lt.meio11).and.(timex.gt.0.02)
+98re1106 =(elesuv.lt.vysuvb).and.(timex.gt.0.02)
+98re1107 =(vdsuva.lt.polosu).and.(timex.gt.0.02)
+98re1108 =(meio11.lt.vdsuvc).and.(timex.gt.0.02)
+98re1109 =(vdsuvb.lt.polosu).and.(timex.gt.0.02)
+98re1110 =(meio11.lt.vdsuva).and.(timex.gt.0.02)
+98re1111 =(vdsuvc.lt.polosu).and.(timex.gt.0.02)
+98re1112 =(meio11.lt.vdsuvb).and.(timex.gt.0.02)
+c
+98tr1101 =(.not.va1101).and.vd1101
+98tr1102 =(.not.va1102).and.vd1102
+98tr1103 =(.not.va1103).and.vd1103
+98tr1104 =(.not.va1104).and.vd1104
+98tr1105 =(.not.va1105).and.vd1105
+98tr1106 =(.not.va1106).and.vd1106
+98tr1107 =(.not.va1107).and.vd1107
+98tr1108 =(.not.va1108).and.vd1108
+98tr1109 =(.not.va1109).and.vd1109
+98tr1110 =(.not.va1110).and.vd1110
+98tr1111 =(.not.va1111).and.vd1111
+98tr1112 =(.not.va1112).and.vd1112
+c
+98ig110158 +re1101 1.8e4 1.vd1101
+98ig110258 +re1102 1.8e4 1.vd1102
+98ig110358 +re1103 1.8e4 1.vd1103
+98ig110458 +re1104 1.8e4 1.vd1104
+98ig110558 +re1105 1.8e4 1.vd1105
+98ig110658 +re1106 1.8e4 1.vd1106
+98ig110758 +re1107 1.8e4 1.vd1107
+98ig110858 +re1108 1.8e4 1.vd1108
+98ig110958 +re1109 1.8e4 1.vd1109
+98ig111058 +re1110 1.8e4 1.vd1110
+98ig111158 +re1111 1.8e4 1.vd1111
+98ig111258 +re1112 1.8e4 1.vd1112
+c
+98gi110158 +vd1101 1.8e4 1.ig1101
+98gi110258 +vd1102 1.8e4 1.ig1102
+98gi110358 +vd1103 1.8e4 1.ig1103
+98gi110458 +vd1104 1.8e4 1.ig1104
+98gi110558 +vd1105 1.8e4 1.ig1105
+98gi110658 +vd1106 1.8e4 1.ig1106
+98gi110758 +vd1107 1.8e4 1.ig1107
+98gi110858 +vd1108 1.8e4 1.ig1108
+98gi110958 +vd1109 1.8e4 1.ig1109
+98gi111058 +vd1110 1.8e4 1.ig1110
+98gi111158 +vd1111 1.8e4 1.ig1111
+98gi111258 +vd1112 1.8e4 1.ig1112
+c
+98gm110162 +gi1101 tr1101
+98gm110262 +gi1102 tr1102
+98gm110362 +gi1103 tr1103
+98gm110462 +gi1104 tr1104
+98gm110562 +gi1105 tr1105
+98gm110662 +gi1106 tr1106
+98gm110762 +gi1107 tr1107
+98gm110862 +gi1108 tr1108
+98gm110962 +gi1109 tr1109
+98gm111062 +gi1110 tr1110
+98gm111162 +gi1111 tr1111
+98gm111262 +gi1112 tr1112
+c
+98tra11y =(tr1101+tr1102+tr1103+tr1104+tr1105+tr1106)/deltat
+98gm11_y61+gm1106 +gm1101 +gm1102 +gm1103 +gm1104 99.gm1105gam11y
+98gam11y58 +tra11y 1. 1.nt1106unity
+98nt1106 =(.not.tr1106).eq.1
+98tra11d =(tr1107+tr1108+tr1109+tr1110+tr1111+tr1112)/deltat
+98gm11_d61+gm1112 +gm1107 +gm1108 +gm1109 +gm1110 99.gm1111gam11d
+98gam11d58 +tra11d 1. 1.nt1112unity
+98nt1112 =(.not.tr1112).eq.1
+98alfar 63+gm11_y +gm11_d -1.
+c
+90suvera
+90suverb
+90suverc
+c
+c ------- misura della tensione media (50hz), sbarre di commutazione ---------
+98vacm11 =sqrt(suvera*suvera+suverb*suverb+suverc*suverc)/400.e3
+33vacm11alfar
+c
+c ------- pll (per la gfu), lato suvereto -----------------------------------
+98omeg11 =2.*pi* 50.
+98iga11 =(2*suvera-suverb-suverc)/(sqrt(6.)*400.e3)
+98igb11 =(suverb-suverc)/(sqrt(2.)*400.e3)
+88err11 =iga11*cos(p11pll)+igb11*sin(p11pll)
+ 1erin11 +err11 10.
+ 1.
+ 1.
+ 0erpp11 +err11 50.
+98res11 =phd11.le.(2*pi-2*w11*deltat)
+98p11pll58 +w11 1. 1.res11 zero
+ 0w11 +erpp11 +erin11 +omeg11 1. 301.6 452.4
+ 0phd11 +p11pll 1.
+77p11pll 1.57
+c 33p##pll
+c 33w##
+c ------------------ innesco dei tiristori ----------------------------------
+90uctd11
+11grd11 .017453292
+98vad11 = sin(p11pll-(uctd11+30)*grd11)
+98vbd11 = sin(p11pll-(uctd11+150)*grd11)
+98vcd11 = sin(p11pll-(uctd11-90)*grd11)
+c -------------------------------------------------
+98vay11 = sin(p11pll-uctd11*grd11)
+98vby11 = sin(p11pll-(uctd11+120)*grd11)
+98vcy11 = sin(p11pll-(uctd11-120)*grd11)
+98ds1101 = vay11.gt.vcy11.and.vay11.gt.vby11.and.timex.gt. 0.0
+98ds1102 = vcy11.lt.vay11.and.vcy11.lt.vby11.and.timex.gt. 0.0
+98ds1103 = vby11.gt.vcy11.and.vby11.gt.vay11.and.timex.gt. 0.0
+98ds1104 = vay11.lt.vcy11.and.vay11.lt.vby11.and.timex.gt. 0.0
+98ds1105 = vcy11.gt.vay11.and.vcy11.gt.vby11.and.timex.gt. 0.0
+98ds1106 = vby11.lt.vcy11.and.vby11.lt.vay11.and.timex.gt. 0.0
+c -------------------------------------------------
+98ds1107 = vad11.gt.vcd11.and.vad11.gt.vbd11.and.timex.gt. 0.0
+98ds1108 = vcd11.lt.vad11.and.vcd11.lt.vbd11.and.timex.gt. 0.0
+98ds1109 = vbd11.gt.vcd11.and.vbd11.gt.vad11.and.timex.gt. 0.0
+98ds1110 = vad11.lt.vcd11.and.vad11.lt.vbd11.and.timex.gt. 0.0
+98ds1111 = vcd11.gt.vad11.and.vcd11.gt.vbd11.and.timex.gt. 0.0
+98ds1112 = vbd11.lt.vcd11.and.vbd11.lt.vad11.and.timex.gt. 0.0
+c
+c
+c ----- misura dell'angolo gamma, convertitore codrongianos --------------------
+90vycoda 10.
+90vycodb 10.
+90vycodc 10.
+90vdcoda 10.
+90vdcodb 10.
+90vdcodc 10.
+90poloco 10.
+90meio21 10.
+90elecod 10.
+c
+98va2101 =codroa.lt.codrob
+98va2102 =codroa.lt.codroc
+98va2103 =codrob.lt.codroc
+98va2104 =codrob.lt.codroa
+98va2105 =codroc.lt.codroa
+98va2106 =codroc.lt.codrob
+98va2107 =codroa.lt.zero
+98va2108 =codroc.gt.zero
+98va2109 =codrob.lt.zero
+98va2110 =codroa.gt.zero
+98va2111 =codroc.lt.zero
+98va2112 =codrob.gt.zero
+c
+98vd210153 +va2101 2.5e-5
+98vd210253 +va2102 2.5e-5
+98vd210353 +va2103 2.5e-5
+98vd210453 +va2104 2.5e-5
+98vd210553 +va2105 2.5e-5
+98vd210653 +va2106 2.5e-5
+98vd210753 +va2107 2.5e-5
+98vd210853 +va2108 2.5e-5
+98vd210953 +va2109 2.5e-5
+98vd211053 +va2110 2.5e-5
+98vd211153 +va2111 2.5e-5
+98vd211253 +va2112 2.5e-5
+c
+98re2101 =(vycoda.lt.meio21).and.(timex.gt.0.02)
+98re2102 =(poloco.lt.vycodc).and.(timex.gt.0.02)
+98re2103 =(vycodb.lt.meio21).and.(timex.gt.0.02)
+98re2104 =(poloco.lt.vycoda).and.(timex.gt.0.02)
+98re2105 =(vycodc.lt.meio21).and.(timex.gt.0.02)
+98re2106 =(poloco.lt.vycodb).and.(timex.gt.0.02)
+98re2107 =(vdcoda.lt.elecod).and.(timex.gt.0.02)
+98re2108 =(meio21.lt.vdcodc).and.(timex.gt.0.02)
+98re2109 =(vdcodb.lt.elecod).and.(timex.gt.0.02)
+98re2110 =(meio21.lt.vdcoda).and.(timex.gt.0.02)
+98re2111 =(vdcodc.lt.elecod).and.(timex.gt.0.02)
+98re2112 =(meio21.lt.vdcodb).and.(timex.gt.0.02)
+c
+98tr2101 =(.not.va2101).and.vd2101
+98tr2102 =(.not.va2102).and.vd2102
+98tr2103 =(.not.va2103).and.vd2103
+98tr2104 =(.not.va2104).and.vd2104
+98tr2105 =(.not.va2105).and.vd2105
+98tr2106 =(.not.va2106).and.vd2106
+98tr2107 =(.not.va2107).and.vd2107
+98tr2108 =(.not.va2108).and.vd2108
+98tr2109 =(.not.va2109).and.vd2109
+98tr2110 =(.not.va2110).and.vd2110
+98tr2111 =(.not.va2111).and.vd2111
+98tr2112 =(.not.va2112).and.vd2112
+c
+98ig210158 +re2101 1.8e4 1.vd2101
+98ig210258 +re2102 1.8e4 1.vd2102
+98ig210358 +re2103 1.8e4 1.vd2103
+98ig210458 +re2104 1.8e4 1.vd2104
+98ig210558 +re2105 1.8e4 1.vd2105
+98ig210658 +re2106 1.8e4 1.vd2106
+98ig210758 +re2107 1.8e4 1.vd2107
+98ig210858 +re2108 1.8e4 1.vd2108
+98ig210958 +re2109 1.8e4 1.vd2109
+98ig211058 +re2110 1.8e4 1.vd2110
+98ig211158 +re2111 1.8e4 1.vd2111
+98ig211258 +re2112 1.8e4 1.vd2112
+c
+98gi210158 +vd2101 1.8e4 1.ig2101
+98gi210258 +vd2102 1.8e4 1.ig2102
+98gi210358 +vd2103 1.8e4 1.ig2103
+98gi210458 +vd2104 1.8e4 1.ig2104
+98gi210558 +vd2105 1.8e4 1.ig2105
+98gi210658 +vd2106 1.8e4 1.ig2106
+98gi210758 +vd2107 1.8e4 1.ig2107
+98gi210858 +vd2108 1.8e4 1.ig2108
+98gi210958 +vd2109 1.8e4 1.ig2109
+98gi211058 +vd2110 1.8e4 1.ig2110
+98gi211158 +vd2111 1.8e4 1.ig2111
+98gi211258 +vd2112 1.8e4 1.ig2112
+c
+98gm210162 +gi2101 tr2101
+98gm210262 +gi2102 tr2102
+98gm210362 +gi2103 tr2103
+98gm210462 +gi2104 tr2104
+98gm210562 +gi2105 tr2105
+98gm210662 +gi2106 tr2106
+98gm210762 +gi2107 tr2107
+98gm210862 +gi2108 tr2108
+98gm210962 +gi2109 tr2109
+98gm211062 +gi2110 tr2110
+98gm211162 +gi2111 tr2111
+98gm211262 +gi2112 tr2112
+c
+98tra21y =(tr2101+tr2102+tr2103+tr2104+tr2105+tr2106)/deltat
+98gm21_y61+gm2106 +gm2101 +gm2102 +gm2103 +gm2104 99.gm2105gam21y
+98gam21y58 +tra21y 1. 1.nt2106unity
+98nt2106 =(.not.tr2106).eq.1
+98tra21d =(tr2107+tr2108+tr2109+tr2110+tr2111+tr2112)/deltat
+98gm21_d61+gm2112 +gm2107 +gm2108 +gm2109 +gm2110 99.gm2111gam21d
+98gam21d58 +tra21d 1. 1.nt2112unity
+98nt2112 =(.not.tr2112).eq.1
+98gammai63+gm21_y +gm21_d -1.
+c
+90codroa
+90codrob
+90codroc
+c
+c ------- misura della tensione media (50hz), sbarre di commutazione ---------
+98vacm21 =sqrt(codroa*codroa+codrob*codrob+codroc*codroc)/400.e3
+33vacm21gammai
+c
+c ------- pll (per la gfu), lato codrongianos -----------------------------------
+98omeg21 =2.*pi* 50.
+98iga21 =(2*codroa-codrob-codroc)/(sqrt(6.)*400.e3)
+98igb21 =(codrob-codroc)/(sqrt(2.)*400.e3)
+88err21 =iga21*cos(p21pll)+igb21*sin(p21pll)
+ 1erin21 +err21 10.
+ 1.
+ 1.
+ 0erpp21 +err21 50.
+98res21 =phd21.le.(2*pi-2*w21*deltat)
+98p21pll58 +w21 1. 1.res21 zero
+ 0w21 +erpp21 +erin21 +omeg21 1. 301.6 452.4
+ 0phd21 +p21pll 1.
+77p21pll 1.57
+c 33p##pll
+c 33w##
+c ------------------ innesco dei tiristori ----------------------------------
+90uctd21
+11grd21 .017453292
+98vad21 = sin(p21pll-(uctd21+30)*grd21)
+98vbd21 = sin(p21pll-(uctd21+150)*grd21)
+98vcd21 = sin(p21pll-(uctd21-90)*grd21)
+c -------------------------------------------------
+98vay21 = sin(p21pll-uctd21*grd21)
+98vby21 = sin(p21pll-(uctd21+120)*grd21)
+98vcy21 = sin(p21pll-(uctd21-120)*grd21)
+98ds2101 = vay21.gt.vcy21.and.vay21.gt.vby21.and.timex.gt. 0.0
+98ds2102 = vcy21.lt.vay21.and.vcy21.lt.vby21.and.timex.gt. 0.0
+98ds2103 = vby21.gt.vcy21.and.vby21.gt.vay21.and.timex.gt. 0.0
+98ds2104 = vay21.lt.vcy21.and.vay21.lt.vby21.and.timex.gt. 0.0
+98ds2105 = vcy21.gt.vay21.and.vcy21.gt.vby21.and.timex.gt. 0.0
+98ds2106 = vby21.lt.vcy21.and.vby21.lt.vay21.and.timex.gt. 0.0
+c -------------------------------------------------
+98ds2107 = vad21.gt.vcd21.and.vad21.gt.vbd21.and.timex.gt. 0.0
+98ds2108 = vcd21.lt.vad21.and.vcd21.lt.vbd21.and.timex.gt. 0.0
+98ds2109 = vbd21.gt.vcd21.and.vbd21.gt.vad21.and.timex.gt. 0.0
+98ds2110 = vad21.lt.vcd21.and.vad21.lt.vbd21.and.timex.gt. 0.0
+98ds2111 = vcd21.gt.vad21.and.vcd21.gt.vbd21.and.timex.gt. 0.0
+98ds2112 = vbd21.lt.vcd21.and.vbd21.lt.vad21.and.timex.gt. 0.0
+c
+c ----- misura dell'angolo gamma, convertitore lucciana -----------------------
+90vyluca 10.
+90vylucb 10.
+90vylucc 10.
+90vdluca 10.
+90vdlucb 10.
+90vdlucc 10.
+90pololu 10.
+90meio31 10.
+90eleluc 10.
+c
+98va3101 =luccia.lt.luccib
+98va3102 =luccia.lt.luccic
+98va3103 =luccib.lt.luccic
+98va3104 =luccib.lt.luccia
+98va3105 =luccic.lt.luccia
+98va3106 =luccic.lt.luccib
+98va3107 =luccia.lt.zero
+98va3108 =luccic.gt.zero
+98va3109 =luccib.lt.zero
+98va3110 =luccia.gt.zero
+98va3111 =luccic.lt.zero
+98va3112 =luccib.gt.zero
+c
+98vd310153 +va3101 2.5e-5
+98vd310253 +va3102 2.5e-5
+98vd310353 +va3103 2.5e-5
+98vd310453 +va3104 2.5e-5
+98vd310553 +va3105 2.5e-5
+98vd310653 +va3106 2.5e-5
+98vd310753 +va3107 2.5e-5
+98vd310853 +va3108 2.5e-5
+98vd310953 +va3109 2.5e-5
+98vd311053 +va3110 2.5e-5
+98vd311153 +va3111 2.5e-5
+98vd311253 +va3112 2.5e-5
+c
+98re3101 =(vyluca.lt.meio31).and.(timex.gt.0.02)
+98re3102 =(pololu.lt.vylucc).and.(timex.gt.0.02)
+98re3103 =(vylucb.lt.meio31).and.(timex.gt.0.02)
+98re3104 =(pololu.lt.vyluca).and.(timex.gt.0.02)
+98re3105 =(vylucc.lt.meio31).and.(timex.gt.0.02)
+98re3106 =(pololu.lt.vylucb).and.(timex.gt.0.02)
+98re3107 =(vdluca.lt.eleluc).and.(timex.gt.0.02)
+98re3108 =(meio31.lt.vdlucc).and.(timex.gt.0.02)
+98re3109 =(vdlucb.lt.eleluc).and.(timex.gt.0.02)
+98re3110 =(meio31.lt.vdluca).and.(timex.gt.0.02)
+98re3111 =(vdlucc.lt.eleluc).and.(timex.gt.0.02)
+98re3112 =(meio31.lt.vdlucb).and.(timex.gt.0.02)
+c
+98tr3101 =(.not.va3101).and.vd3101
+98tr3102 =(.not.va3102).and.vd3102
+98tr3103 =(.not.va3103).and.vd3103
+98tr3104 =(.not.va3104).and.vd3104
+98tr3105 =(.not.va3105).and.vd3105
+98tr3106 =(.not.va3106).and.vd3106
+98tr3107 =(.not.va3107).and.vd3107
+98tr3108 =(.not.va3108).and.vd3108
+98tr3109 =(.not.va3109).and.vd3109
+98tr3110 =(.not.va3110).and.vd3110
+98tr3111 =(.not.va3111).and.vd3111
+98tr3112 =(.not.va3112).and.vd3112
+c
+98ig310158 +re3101 1.8e4 1.vd3101
+98ig310258 +re3102 1.8e4 1.vd3102
+98ig310358 +re3103 1.8e4 1.vd3103
+98ig310458 +re3104 1.8e4 1.vd3104
+98ig310558 +re3105 1.8e4 1.vd3105
+98ig310658 +re3106 1.8e4 1.vd3106
+98ig310758 +re3107 1.8e4 1.vd3107
+98ig310858 +re3108 1.8e4 1.vd3108
+98ig310958 +re3109 1.8e4 1.vd3109
+98ig311058 +re3110 1.8e4 1.vd3110
+98ig311158 +re3111 1.8e4 1.vd3111
+98ig311258 +re3112 1.8e4 1.vd3112
+c
+98gi310158 +vd3101 1.8e4 1.ig3101
+98gi310258 +vd3102 1.8e4 1.ig3102
+98gi310358 +vd3103 1.8e4 1.ig3103
+98gi310458 +vd3104 1.8e4 1.ig3104
+98gi310558 +vd3105 1.8e4 1.ig3105
+98gi310658 +vd3106 1.8e4 1.ig3106
+98gi310758 +vd3107 1.8e4 1.ig3107
+98gi310858 +vd3108 1.8e4 1.ig3108
+98gi310958 +vd3109 1.8e4 1.ig3109
+98gi311058 +vd3110 1.8e4 1.ig3110
+98gi311158 +vd3111 1.8e4 1.ig3111
+98gi311258 +vd3112 1.8e4 1.ig3112
+c
+98gm310162 +gi3101 tr3101
+98gm310262 +gi3102 tr3102
+98gm310362 +gi3103 tr3103
+98gm310462 +gi3104 tr3104
+98gm310562 +gi3105 tr3105
+98gm310662 +gi3106 tr3106
+98gm310762 +gi3107 tr3107
+98gm310862 +gi3108 tr3108
+98gm310962 +gi3109 tr3109
+98gm311062 +gi3110 tr3110
+98gm311162 +gi3111 tr3111
+98gm311262 +gi3112 tr3112
+c
+98tra31y =(tr3101+tr3102+tr3103+tr3104+tr3105+tr3106)/deltat
+98gm31_y61+gm3106 +gm3101 +gm3102 +gm3103 +gm3104 99.gm3105gam31y
+98gam31y58 +tra31y 1. 1.nt3106unity
+98nt3106 =(.not.tr3106).eq.1
+98tra31d =(tr3107+tr3108+tr3109+tr3110+tr3111+tr3112)/deltat
+98gm31_d61+gm3112 +gm3107 +gm3108 +gm3109 +gm3110 99.gm3111gam31d
+98gam31d58 +tra31d 1. 1.nt3112unity
+98nt3112 =(.not.tr3112).eq.1
+98gammal63+gm31_y +gm31_d -1.
+c
+90luccia
+90luccib
+90luccic
+c
+c ------- misura della tensione media (50hz), sbarre di commutazione ---------
+98vacm31 =sqrt(luccia*luccia+luccib*luccib+luccic*luccic)/90.e3
+33vacm31gammal
+c
+c ------- pll (per la gfu), lato lucciana ------------------------------------
+98omeg31 =2.*pi* 50.
+98iga31 =(2*luccia-luccib-luccic)/(sqrt(6.)*90.e3)
+98igb31 =(luccib-luccic)/(sqrt(2.)*90.e3)
+88err31 =iga31*cos(p31pll)+igb31*sin(p31pll)
+ 1erin31 +err31 10.
+ 1.
+ 1.
+ 0erpp31 +err31 50.
+98res31 =phd31.le.(2*pi-2*w31*deltat)
+98p31pll58 +w31 1. 1.res31 zero
+ 0w31 +erpp31 +erin31 +omeg31 1. 301.6 452.4
+ 0phd31 +p31pll 1.
+77p31pll 1.57
+c ------------------ innesco dei tiristori ----------------------------------
+90uctd31
+11grd31 .017453292
+98vad31 = sin(p31pll-(uctd31+30)*grd31)
+98vbd31 = sin(p31pll-(uctd31+150)*grd31)
+98vcd31 = sin(p31pll-(uctd31-90)*grd31)
+c -------------------------------------------------
+98vay31 = sin(p31pll-uctd31*grd31)
+98vby31 = sin(p31pll-(uctd31+120)*grd31)
+98vcy31 = sin(p31pll-(uctd31-120)*grd31)
+98ds3101 = vay31.gt.vcy31.and.vay31.gt.vby31.and.timex.gt. 0.0
+98ds3102 = vcy31.lt.vay31.and.vcy31.lt.vby31.and.timex.gt. 0.0
+98ds3103 = vby31.gt.vcy31.and.vby31.gt.vay31.and.timex.gt. 0.0
+98ds3104 = vay31.lt.vcy31.and.vay31.lt.vby31.and.timex.gt. 0.0
+98ds3105 = vcy31.gt.vay31.and.vcy31.gt.vby31.and.timex.gt. 0.0
+98ds3106 = vby31.lt.vcy31.and.vby31.lt.vay31.and.timex.gt. 0.0
+c -------------------------------------------------
+98ds3107 = vad31.gt.vcd31.and.vad31.gt.vbd31.and.timex.gt. 0.0
+98ds3108 = vcd31.lt.vad31.and.vcd31.lt.vbd31.and.timex.gt. 0.0
+98ds3109 = vbd31.gt.vcd31.and.vbd31.gt.vad31.and.timex.gt. 0.0
+98ds3110 = vad31.lt.vcd31.and.vad31.lt.vbd31.and.timex.gt. 0.0
+98ds3111 = vcd31.gt.vad31.and.vcd31.gt.vbd31.and.timex.gt. 0.0
+98ds3112 = vbd31.lt.vcd31.and.vbd31.lt.vad31.and.timex.gt. 0.0
+blank tacs
+c ------------------------------------------------------------------------------
+c blocco models
+c ------------------------------------------------------------------------------
+models
+input
+mm0001 {i(dccodr)}
+mm0002 {v(dccodr)}
+mm0003 {tacs(gammai)}
+mm0004 {i(dcsuve)}
+mm0005 {v(dcsuve)}
+mm0006 {i(dclucc)}
+mm0007 {v(dclucc)}
+mm0008 {tacs(gammal)}
+output
+ uccai
+ uccar
+ uccal
+ iordem
+model rad_suv
+ --- modello raddrizzatore suvereto ---
+ input idc,vdc
+ output alfa,iorder
+ data vdc_ba{dflt:200.},idc_ba{dflt:1.},kpv{dflt:63},kiv{dflt:5247}
+ tc_idc{dflt:0.012},tc_vdc{dflt:0.00531},iordep{dflt:1.0}
+ vdcref{dflt:1.0},idcref{dflt:1.1},kpi{dflt:63},kii{dflt:5247}
+ var idc_pu,vdc_pu,idcmed,vdcmed,alfa,errv,errv_int,errv_pro
+ betav,erri,erri_int,erri_pro,betai,beta
+ iorder,udinp,vdcoli
+ init
+ ---- misure
+ histdef(idcmed) :=1.0
+ histdef(vdcmed) :=1.0
+ ---- regolatori
+ errv :=0
+ errv_pro :=0
+ histdef(errv_int):=163
+ erri :=0.1
+ erri_pro :=0
+ histdef(erri_int):=175
+ endinit
+ exec
+ ---- filtri grandezze dc ---
+ idc_pu:=idc/(idc_ba*1000.)
+ vdc_pu:=vdc/(vdc_ba*1000.)
+ laplace(idcmed/idc_pu):=(1|s0)/(1|s0+tc_idc|s1)
+ laplace(vdcmed/vdc_pu):=(1|s0)/(1|s0+tc_vdc|s1)
+ ---- vdcol ----
+ udinp := vdcmed {min:0.4,max:0.9}
+ vdcoli := udinp*0.9 + 0.19
+ iorder := vdcoli*iordep
+ -------------------------------------------------------------------------
+
+ ---- regolatore tensione costante (modalit?? constant-voltage) ----
+ errv := (vdcref - vdcmed)
+ laplace(errv_int/errv) {dmin:90.,dmax:175.}:=(kiv|s0)/(1|s1)
+ errv_pro := kpv*(vdcref - vdcmed)
+ betav := (errv_int + errv_pro) {min:90.,max:175.}
+
+ ---- regolatore di corrente (modalit?? cc) ----
+ erri := (iorder - idcmed + 0.1)
+ laplace(erri_int/erri) {dmin:30.,dmax:175.} := (kii|s0)/(1|s1)
+ erri_pro := kpi*(iorder - idcmed)
+ betai := (erri_int + erri_pro) {min:30.,max:175}
+
+ beta :=min(betai,betav)
+ alfa := 180. - beta
+ endexec
+endmodel
+model inv_cod
+ ---- modello inverter codrongianos ----
+ input idc,vdc,gamma,iorder
+ output alfa
+ data vdc_ba{dflt:200.},idc_ba{dflt:1.}
+ freq{dflt:50},tc_idc{dflt:0.0012},tc_vdc{dflt:0.02}
+ kpi{dflt:36},kii{dflt:3760},kpg{dflt:0.7506},kig{dflt:18.38}
+ icodro{dflt:0.75}
+ var idc_pu,vdc_pu,idcmed,vdcmed,alfa
+ betaic,erri_int,erri_pro,erri
+ gamman,gammin,errg_int,errg_pro,gnlg,gerri,betaig,g[1..12]
+ k,inter,betai
+ init
+ ---- misure
+ histdef(idcmed) :=0.75
+ histdef(vdcmed) :=0.92
+ ---- regolatori
+ erri :=0
+ erri_pro :=0
+ histdef(erri_int):=34.
+ errg_pro :=0
+ histdef(errg_int):=30.
+ gamman :=22.
+ gammin :=180
+ k :=1
+ g[1..12] :=22.
+ inter :=0.0
+ endinit
+ exec
+ --- filtri ---
+ idc_pu:=idc/(idc_ba*1000.)
+ vdc_pu:=vdc/(vdc_ba*1000.)
+ laplace(idcmed/idc_pu):=(1|s0)/(1|s0+tc_idc|s1)
+ laplace(vdcmed/vdc_pu):=(1|s0)/(1|s0+tc_vdc|s1)
+
+ -------------------------------------------------------------------------
+ --- regolatore corrente (modalita cc) ----
+ erri := (iorder*icodro - idcmed)
+ laplace(erri_int/erri) {dmin:30.,dmax:90.}:=(kii|s0)/(1|s1)
+ erri_pro:=kpi*erri
+ betaic:=(erri_int + erri_pro) {min:30.,max:90.}
+
+
+ -------------------------------------------------------------------------
+ --- regolatore angolo costante (modalit?? cea) ----
+ gerri:=15-gamman
+ gnlg:=max(-31,gerri)
+ laplace(errg_int/gnlg) {dmin:30.,dmax:90.}:=(kig|s0)/(1|s1)
+ errg_pro:=kpg*gnlg
+ betaig:=(errg_int + errg_pro) {min:30.,max:90.}
+ if and(t>0.03,inter>30) then
+ g[k]:=gamma
+ k:=k+1
+ if k=13 then k:=1 endif
+ gammin:=min(g[1],g[2],g[3],g[4],g[5],g[6])
+ gamman:=min(gammin,g[7],g[8],g[9],g[10],g[11],g[12])
+ inter:=0.0
+ endif
+ inter:=inter+timestep*360*freq
+
+ betai:=max(betaic,betaig)
+ alfa:=180-betai
+ endexec
+endmodel
+model inv_luc
+ ---- modello inverter lucciana ----
+ input idc,vdc,gamma,iorder
+ output alfa
+ data vdc_ba{dflt:200.},idc_ba{dflt:1.}
+ freq{dflt:50},tc_idc{dflt:0.0012},tc_vdc{dflt:0.02}
+ kpi{dflt:36},kii{dflt:3760},kpg{dflt:0.7506},kig{dflt:18.38}
+ ilucci{dflt:0.25}
+ var idc_pu,vdc_pu,idcmed,vdcmed,alfa
+ betaic,erri_int,erri_pro,erri
+ gamman,gammin,errg_int,errg_pro,gnlg,gerri,betaig,g[1..12]
+ k,inter,betai
+ init
+ ---- misure
+ histdef(idcmed) :=0.25
+ histdef(vdcmed) :=0.97
+ ---- regolatori
+ erri :=0
+ erri_pro :=0
+ histdef(erri_int):=30.
+ errg_pro :=0
+ histdef(errg_int):=32.
+ gamman :=15.
+ gammin :=180
+ k :=1
+ g[1..12] :=180.
+ inter :=0.0
+ endinit
+ exec
+ --- filtri ---
+ idc_pu:=idc/(idc_ba*1000.)
+ vdc_pu:=vdc/(vdc_ba*1000.)
+ laplace(idcmed/idc_pu):=(1|s0)/(1|s0+tc_idc|s1)
+ laplace(vdcmed/vdc_pu):=(1|s0)/(1|s0+tc_vdc|s1)
+
+ -------------------------------------------------------------------------
+ --- regolatore corrente (modalita cc) ----
+ erri := (iorder*ilucci - idcmed)
+ laplace(erri_int/erri) {dmin:30.,dmax:110.}:=(kii|s0)/(1|s1)
+ erri_pro:=kpi*erri
+ betaic:=(erri_int + erri_pro) {min:30.,max:110.}
+
+
+ -------------------------------------------------------------------------
+ --- regolatore angolo costante (modalit?? cea) ----
+ gerri:=15-gamman
+ gnlg:=max(-31,gerri)
+ laplace(errg_int/gnlg) {dmin:30.,dmax:90.}:=(kig|s0)/(1|s1)
+ errg_pro:=kpg*gnlg
+ betaig:=(errg_int + errg_pro) {min:30.,max:90.}
+ if and(t>0.03,inter>30) then
+ g[k]:=gamma
+ k:=k+1
+ if k=13 then k:=1 endif
+ gammin:=min(g[1],g[2],g[3],g[4],g[5],g[6])
+ gamman:=min(gammin,g[7],g[8],g[9],g[10],g[11],g[12])
+ inter:=0.0
+ endif
+ inter:=inter+timestep*360*freq
+
+ betai:=max(betaic,betaig)
+ alfa:=180-betai
+ endexec
+endmodel
+use rad_suv as rad_suv
+input
+ idc:= mm0004
+ vdc:= mm0005
+data
+ vdc_ba:= 200.
+ idc_ba:= 1.
+ kpv := 142.
+ kiv := 7194.
+ kpi := 43.
+ kii := 3547.
+ tc_idc:= 0.0012
+ tc_vdc:= 0.02
+output
+ uccar := alfa
+ iordem:= iorder
+enduse
+use inv_cod as inv_cod
+input
+ idc := mm0001
+ vdc := mm0002
+ gamma := mm0003
+ iorder:= iordem
+data
+ vdc_ba:= 200.
+ idc_ba:= 1.
+ kpi := 50.
+ kii := 476.
+ kpg := 0.4506
+ kig := 18.38
+ tc_idc:= 0.0012
+ tc_vdc:= 0.02
+ icodro:= 0.75
+output
+ uccai:=alfa
+enduse
+use inv_luc as inv_luc
+input
+ idc := mm0006
+ vdc := mm0007
+ gamma := mm0008
+ iorder:= iordem
+data
+ vdc_ba:= 200.
+ idc_ba:= 1.
+ kpi := 65.
+ kii := 568.
+ kpg := 0.4506
+ kig := 18.38
+ tc_idc:= 0.0012
+ tc_vdc:= 0.02
+ ilucci:= 0.25
+output
+ uccal:=alfa
+enduse
+record
+ inv_cod.gamman as gamman
+ inv_cod.betaig as betaig
+ inv_cod.betaic as betaic
+ inv_cod.erri as errii
+ inv_cod.gerri as gerri
+ inv_cod.erri_int as erri_i
+ inv_cod.erri_pro as erri_p
+ inv_cod.errg_int as erri_n
+ inv_cod.errg_pro as erri_r
+ rad_suv.erri as errir
+ rad_suv.alfa as alfar
+ rad_suv.idc_pu as idc_pu
+ rad_suv.idcmed as idcmed
+ rad_suv.vdc_pu as vdc_pu
+ rad_suv.vdcmed as vdcmed
+ rad_suv.errv as errv
+ rad_suv.errv_int as errv_i
+ rad_suv.errv_pro as errv_p
+ rad_suv.erri_int as erri_i
+ rad_suv.erri_pro as erri_p
+ rad_suv.betav as betav
+ rad_suv.betai as betai
+ rad_suv.beta as beta
+endmodels
+c 1 2 3 4 5 6 7 8
+c 345678901234567890123456789012345678901234567890123456789012345678901234567890
+blank models
+c ------------------------------------------------------------------------------
+c branch cards
+c ------------------------------------------------------------------------------
+c
+c ------------------- impedenze della rete -----------------------------------
+c < n1 >< n2 ><ref1><ref2>< r >< l >< c >
+ fontcamisrtc 6.4454205.16 1
+ fontcbcodrob 6.4454205.16 0
+ fontcccodroc 6.4454205.16 0
+ fontsamisrts 2.671285.026 1
+ fontsbsuverb 2.671285.026 0
+ fontscsuverc 2.671285.026 0
+ fontlamisrtl 1.366143.483 1
+ fontlbluccib 1.366143.483 0
+ fontlcluccic 1.366143.483 0
+c ----------------- linea di trasmissione ------------------------------------
+c < n1 >< n2 ><ref1><ref2>< r >< l >< c >
+ dcsuvedcsali 2.1904 37. 0
+ dcsuve 0.1665 0
+ dcsali 0.1665 0
+ dcsalidclucc 1.8621 952.2 0
+ dcsali 21.16 0
+ dclucc 21.16 0
+ dcluccdcboni 9.157 156. 0
+ dclucc 0.702 0
+ dcboni 0.702 0
+ dcbonidcsant 0.264 135. 0
+ dcboni 3. 0
+ dcsant 3. 0
+ dcsantdccodr 5.032 85. 0
+ dcsant 0.3825 0
+ dccodr 0.3825 0
+c ----------------- trasformatori --------------------------------------------
+c ----------------- suvereto ---------------------------------------------------
+ transformer xt001a136.e3 0
+ 9999
+ 1suve00 271.68 400.
+ 2vdsuvavdsuvb 34.963142.85
+ transformer xt001a xt001b 0
+ 1suverb
+ 2vdsuvbvdsuvc
+ transformer xt001a xt001c 0
+ 1suverc
+ 2vdsuvcvdsuva
+ transformer xt002a136.e3 0
+ 9999
+ 1suvera 271.68 400.
+ 2vysuvaxt0004 11.65482.474
+ transformer xt002a xt002b 0
+ 1suverb
+ 2vysuvbxt0004
+ transformer xt002a xt002c 0
+ 1suverc
+ 2vysuvcxt0004
+c -------------------- codrongianos --------------------------------------------
+ transformer xt005a136.e3 0
+ 9999
+ 1codr00 271.68 400.
+ 2vycodaxt0006 11.65484.211
+ transformer xt005a xt005b 0
+ 1codrob
+ 2vycodbxt0006
+ transformer xt005a xt005c 0
+ 1codroc
+ 2vycodcxt0006
+ transformer xt007a136.e3 0
+ 9999
+ 1codroa 271.68 400.
+ 2vdcodavdcodb 34.963145.86
+ transformer xt007a xt007b 0
+ 1codrob
+ 2vdcodbvdcodc
+ transformer xt007a xt007c 0
+ 1codroc
+ 2vdcodcvdcoda
+c --------------------- lucciana -----------------------------------------------
+ transformer xt008a13.4e3 0
+ 9999
+ 1lucc00 26.612 90.
+ 2vylucaxt0009 24.09 100.
+ transformer xt008a xt008b 0
+ 1luccib
+ 2vylucbxt0009
+ transformer xt008a xt008c 0
+ 1luccic
+ 2vyluccxt0009
+ transformer xt010a13.4e3 0
+ 9999
+ 1luccia 26.612 90.
+ 2vdlucavdlucb 72.281173.21
+ transformer xt010a xt010b 0
+ 1luccib
+ 2vdlucbvdlucc
+ transformer xt010a xt010c 0
+ 1luccic
+ 2vdluccvdluca
+c -----------------------------------------------------------------------------
+c filtri suvereto
+c -----------------------------------------------------------------------------
+c ------------------ passa-alto 2 ordine ------------------------------------
+c < n 1>< n 2><ref1><ref2>< r >< l >< c >
+ suveraxf002a 0.997 0
+ suverbxf002b 0.997 0
+ suvercxf002c 0.997 0
+ xf002a 1639.9 0
+ xf002b 1639.9 0
+ xf002c 1639.9 0
+ xf002a 72.498 0
+ xf002b 72.498 0
+ xf002c 72.498 0
+c ------------------ doppio accordo -----------------------------------------
+ suveraxf001a 35.201 0.999 0
+ suverbxf001b 35.201 0.999 0
+ suvercxf001c 35.201 0.999 0
+ xf001a 17.601 0
+ xf001b 17.601 0
+ xf001c 17.601 0
+ xf001a 1.999 0
+ xf001b 1.999 0
+ xf001c 1.999 0
+c -----------------------------------------------------------------------------
+c filtri codrongianos
+c -----------------------------------------------------------------------------
+c ------------------ passa-alto 2 ordine ------------------------------------
+c < n 1>< n 2><ref1><ref2>< r >< l >< c >
+ codroaxf004a 0.997 1
+ codrobxf004b 0.997 0
+ codrocxf004c 0.997 0
+ xf004a 1639.9 0
+ xf004b 1639.9 0
+ xf004c 1639.9 0
+ xf004a 72.498 0
+ xf004b 72.498 0
+ xf004c 72.498 0
+c ------------------ doppio accordo -----------------------------------------
+ codroaxf003a 35.201 0.999 1
+ codrobxf003b 35.201 0.999 0
+ codrocxf003c 35.201 0.999 0
+ xf003a 17.601 0
+ xf003b 17.601 0
+ xf003c 17.601 0
+ xf003a 1.999 0
+ xf003b 1.999 0
+ xf003c 1.999 0
+c -----------------------------------------------------------------------------
+c filtri lucciana
+c -----------------------------------------------------------------------------
+c ------------------ passa-alto 2 ordine ------------------------------------
+c < n 1>< n 2><ref1><ref2>< r >< l >< c >
+ lucciaxf006a 11.315 0
+ luccibxf006b 11.315 0
+ luccicxf006c 11.315 0
+ xf006a 144.57 0
+ xf006b 144.57 0
+ xf006c 144.57 0
+ xf006a 6.391 0
+ xf006b 6.391 0
+ xf006c 6.391 0
+c ------------------ doppio accordo ------------------------------------------
+ lucciaxf005a 3.10311.337 0
+ luccibxf005b 3.10311.337 0
+ luccicxf005c 3.10311.337 0
+ xf005a 1.552 0
+ xf005b 1.552 0
+ xf005c 1.552 0
+ xf005a 22.674 0
+ xf005b 22.674 0
+ xf005c 22.674 0
+c ------------------------------------------------------------------------------
+c reattori
+c ------------------------------------------------------------------------------
+ xyz005xyz004 7.9e-4 500.0
+ xyz006xyz007 7.9e-4 500.0
+ xyz015xyz016 7.9e-4 500.0
+c ------------------------------------------------------------------------------
+c convertitore 12 impulsi suvereto
+c ------------------------------------------------------------------------------
+ elesuv .001 0
+ uccar uctd11 1.e0 0
+ uctd11 1.e0 0
+c ------------------- snubber circuits ---------------------------------------
+ vdsuvacv0711 5.e3 0.05
+ vdsuvccv0811 5.e3 0.05
+ vdsuvbcv0911 5.e3 0.05
+ vdsuvacv1011 5.e3 0.05
+ vdsuvccv1111 5.e3 0.05
+ vdsuvbcv1211 5.e3 0.05
+ vysuvacv0111 5.e3 0.05
+ vysuvccv0211 5.e3 0.05
+ vysuvbcv0311 5.e3 0.05
+ vysuvacv0411 5.e3 0.05
+ vysuvccv0511 5.e3 0.05
+ vysuvbcv0611 5.e3 0.05
+c --------- resistori di accoppiamento valvole -------------------------------
+ polosucv0711 .0100
+ polosucv0911 .0100
+ polosucv1111 .0100
+ meio11cv0811 .0100
+ meio11cv1011 .0100
+ meio11cv1211 .0100
+ meio11cv0111 .0100
+ meio11cv0311 .0100
+ meio11cv0511 .0100
+ elesuvcv0211 .0100
+ elesuvcv0411 .0100
+ elesuvcv0611 .0100
+c ------------------------------------------------------------------------------
+c convertitore 12 impulsi codrongianos
+c ------------------------------------------------------------------------------
+ uccai uctd21 1.e0 0
+ uctd21 1.e0 0
+ elecod .001 0
+c ------------------- snubber circuits ---------------------------------------
+ vdcodacv0721 5.e3 0.05
+ vdcodccv0821 5.e3 0.05
+ vdcodbcv0921 5.e3 0.05
+ vdcodacv1021 5.e3 0.05
+ vdcodccv1121 5.e3 0.05
+ vdcodbcv1221 5.e3 0.05
+ vycodacv0121 5.e3 0.05
+ vycodccv0221 5.e3 0.05
+ vycodbcv0321 5.e3 0.05
+ vycodacv0421 5.e3 0.05
+ vycodccv0521 5.e3 0.05
+ vycodbcv0621 5.e3 0.05
+c --------- resistori di accoppiamento valvole -------------------------------
+ elecodcv0721 .0100
+ elecodcv0921 .0100
+ elecodcv1121 .0100
+ meio21cv0821 .0100
+ meio21cv1021 .0100
+ meio21cv1221 .0100
+ meio21cv0121 .0100
+ meio21cv0321 .0100
+ meio21cv0521 .0100
+ polococv0221 .0100
+ polococv0421 .0100
+ polococv0621 .0100
+c ------------------------------------------------------------------------------
+c convertitore 12 impulsi lucciana
+c ------------------------------------------------------------------------------
+ uccal uctd31 1.e0 0
+ uctd31 1.e0 0
+ eleluc .001 0
+c ------------------- snubber circuits ---------------------------------------
+ vdlucacv0731 5.e3 0.05
+ vdlucccv0831 5.e3 0.05
+ vdlucbcv0931 5.e3 0.05
+ vdlucacv1031 5.e3 0.05
+ vdlucccv1131 5.e3 0.05
+ vdlucbcv1231 5.e3 0.05
+ vylucacv0131 5.e3 0.05
+ vylucccv0231 5.e3 0.05
+ vylucbcv0331 5.e3 0.05
+ vylucacv0431 5.e3 0.05
+ vylucccv0531 5.e3 0.05
+ vylucbcv0631 5.e3 0.05
+c --------- resistori di accoppiamento valvole -------------------------------
+ eleluccv0731 .0100
+ eleluccv0931 .0100
+ eleluccv1131 .0100
+ meio31cv0831 .0100
+ meio31cv1031 .0100
+ meio31cv1231 .0100
+ meio31cv0131 .0100
+ meio31cv0331 .0100
+ meio31cv0531 .0100
+ pololucv0231 .0100
+ pololucv0431 .0100
+ pololucv0631 .0100
+blank branch
+c ------------------------------------------------------------------------------
+c switch cards
+c ------------------------------------------------------------------------------
+c --------------------- interruttori per l'inizializzazione ------------------
+c --------------------- sbarre di commutazione -------------------------------
+ suveraxyz001 -1.000 20.e-3 1
+ suverbxyz002 -1.000 20.e-3 1
+ suvercxyz003 -1.000 20.e-3 1
+ codroaxyz009 -1.000 20.e-3 1
+ codrobxyz010 -1.000 20.e-3 1
+ codrocxyz011 -1.000 20.e-3 1
+ lucciaxyz012 -1.000 20.e-3 1
+ luccibxyz013 -1.000 20.e-3 1
+ luccicxyz014 -1.000 20.e-3 1
+c --------------------- linea in c.c. ----------------------------------------
+ xyz004poloco 0.010 50.00 {sw2}
+ xyz016pololu 0.010 50.00 {sw2}
+ polosuxyz006 0.000 50.00 {sw2}
+ xyz006xyz008 -1.000 0.000 {sw4}
+c -------------------- interruttori di misura per la corrente in linea ------
+ dccodrxyz005 measuring 1
+ xyz007dcsuve measuring 1
+ dcluccxyz015 measuring 1
+c -------------------- interruttori di misura per la corrente tr ------------
+ suverasuve00 measuring 1
+ codroacodr00 measuring 1
+ luccialucc00 measuring 1
+ misrtccodroa measuring 1
+ misrtssuvera measuring 1
+ misrtlluccia measuring 1
+c ----------------------- valvole suvereto ----------------------------------
+11vysuvacv0111 0.0e-6 ds1101 0
+11vysuvbcv0311 0.0e-6 ds1103 0
+11vysuvccv0511 0.0e-6 ds1105 0
+11cv0411vysuva 0.0e-6 ds1104 0
+11cv0611vysuvb 0.0e-6 ds1106 0
+11cv0211vysuvc 0.0e-6 ds1102 0
+11vdsuvacv0711 0.0e-6 ds1107 0
+11vdsuvbcv0911 0.0e-6 ds1109 0
+11vdsuvccv1111 0.0e-6 ds1111 0
+11cv1011vdsuva 0.0e-6 ds1110 0
+11cv1211vdsuvb 0.0e-6 ds1112 0
+11cv0811vdsuvc 0.0e-6 ds1108 0
+c
+c ----------------------- valvole codrongianos ------------------------------
+11vycodacv0121 555.5e-6 ds2101 0
+11vycodbcv0321 555.5e-6 ds2103 0
+11vycodccv0521 555.5e-6 ds2105 0
+11cv0421vycoda 555.5e-6 ds2104 0
+11cv0621vycodb 555.5e-6 ds2106 0
+11cv0221vycodc 555.5e-6 ds2102 0
+11vdcodacv0721 555.5e-6 ds2107 0
+11vdcodbcv0921 555.5e-6 ds2109 0
+11vdcodccv1121 555.5e-6 ds2111 0
+11cv1021vdcoda 555.5e-6 ds2110 0
+11cv1221vdcodb 555.5e-6 ds2112 0
+11cv0821vdcodc 555.5e-6 ds2108 0
+c ----------------------- valvole lucciana ----------------------------------
+11vylucacv0131 555.5e-6 ds3101 0
+11vylucbcv0331 555.5e-6 ds3103 0
+11vylucccv0531 555.5e-6 ds3105 0
+11cv0431vyluca 555.5e-6 ds3104 0
+11cv0631vylucb 555.5e-6 ds3106 0
+11cv0231vylucc 555.5e-6 ds3102 0
+11vdlucacv0731 555.5e-6 ds3107 0
+11vdlucbcv0931 555.5e-6 ds3109 0
+11vdlucccv1131 555.5e-6 ds3111 0
+11cv1031vdluca 555.5e-6 ds3110 0
+11cv1231vdlucb 555.5e-6 ds3112 0
+11cv0831vdlucc 555.5e-6 ds3108 0
+blank switch
+c ------------------------------------------------------------------------------
+c source cards
+c ------------------------------------------------------------------------------
+c --------------- sorgenti per l'inizializzazione ----------------------------
+c --------------- sbarre di commutazione -------------------------------------
+14xyz001 1 327.69e3 50. +22. 0.0 -1
+14xyz002 1 327.69e3 50. -98. 0.0 -1
+14xyz003 1 327.69e3 50. -218. 0.0 -1
+14xyz009 1 328.57e3 50. -20.0 0.0 -1
+14xyz010 1 328.57e3 50. -140. 0.0 -1
+14xyz011 1 328.57e3 50. +100. 0.0 -1
+14xyz012 1 74.10e3 50. -20.0 0.0 -1
+14xyz013 1 74.10e3 50. -140. 0.0 -1
+14xyz014 1 74.10e3 50. +100. 0.0 -1
+c --------------- linea in c.c. ----------------------------------------------
+14xyz004-1 -750. 0.001 0.0 0.0 {i1} -1 0.015
+12poloco-1 750. 0.010 0.0 {i2} 0.0 0.015
+14xyz016-1 -250. 0.001 0.0 0.0 {i1} -1 0.015
+12pololu-1 250. 0.010 0.0 {i2} 0.0 0.015
+14xyz008 1 200.e3 0.001 0.0 0.0 {s3} -1 0.015
+c --------------- passaggio angolo di innesco --------------------------------
+60uccar -1 10.
+60uccai -1 10.
+60uccal -1 10.
+c --------------- sorgenti reti c.a. -----------------------------------------
+c < n 1><>< ampl. >< freq. ><phase/t0>< a1 >< t1 >< tstart >< tstop >
+14fontca 0 323000. 50. -22. -1. 10.
+14fontcb 0 323000. 50. -142. -1. 10.
+14fontcc 0 323000. 50. 98. -1. 10.
+14fontsa 0 327690. 50. 22.5 -1. 10.
+14fontsb 0 327690. 50. -97.5 -1. 10.
+14fontsc 0 327690. 50. 142.5 -1. 10.
+14fontla 0 70266. 50. 22.5 -1. 10.
+14fontlb 0 70266. 50. -97.5 -1. 10.
+14fontlc 0 70266. 50. 142.5 -1. 10.
+blank source
+ suverasuverbsuverccodroacodrobcodrocdcsuvedccodrdcluccluccialuccibluccic
diff --git a/benchmarks/sacoi1.dat~ b/benchmarks/sacoi1.dat~
new file mode 100644
index 0000000..35cf0d6
--- /dev/null
+++ b/benchmarks/sacoi1.dat~
@@ -0,0 +1,1151 @@
+BEGIN NEW DATA CASE
+C
+C
+C ------------------------------------------------------------------------------
+C MISCELLANEOUS DATA CARDS
+C ------------------------------------------------------------------------------
+C dT >< Tmax >< Xopt >< Copt ><Epsiln>
+ 2.5E-5 1.5
+ 500 1 1 1 1 0 0 1 0
+C
+C ------------------------------------------------------------------------------
+C BLOCCO TACS
+C ------------------------------------------------------------------------------
+TACS HYBRID
+C ----- MISURA DELL'ANGOLO GAMMA, CONVERTITORE SUVERETO ---------------
+90VYSUVA 10.
+90VYSUVB 10.
+90VYSUVC 10.
+90VDSUVA 10.
+90VDSUVB 10.
+90VDSUVC 10.
+90ELESUV 10.
+90MEIO11 10.
+90POLOSU 10.
+C
+98VA1101 =SUVERA.LT.SUVERB
+98VA1102 =SUVERA.LT.SUVERC
+98VA1103 =SUVERB.LT.SUVERC
+98VA1104 =SUVERB.LT.SUVERA
+98VA1105 =SUVERC.LT.SUVERA
+98VA1106 =SUVERC.LT.SUVERB
+98VA1107 =SUVERA.LT.ZERO
+98VA1108 =SUVERC.GT.ZERO
+98VA1109 =SUVERB.LT.ZERO
+98VA1110 =SUVERA.GT.ZERO
+98VA1111 =SUVERC.LT.ZERO
+98VA1112 =SUVERB.GT.ZERO
+C
+98VD110153 +VA1101 2.5E-5
+98VD110253 +VA1102 2.5E-5
+98VD110353 +VA1103 2.5E-5
+98VD110453 +VA1104 2.5E-5
+98VD110553 +VA1105 2.5E-5
+98VD110653 +VA1106 2.5E-5
+98VD110753 +VA1107 2.5E-5
+98VD110853 +VA1108 2.5E-5
+98VD110953 +VA1109 2.5E-5
+98VD111053 +VA1110 2.5E-5
+98VD111153 +VA1111 2.5E-5
+98VD111253 +VA1112 2.5E-5
+C
+98RE1101 =(VYSUVA.LT.MEIO11).AND.(TIMEX.GT.0.02)
+98RE1102 =(ELESUV.LT.VYSUVC).AND.(TIMEX.GT.0.02)
+98RE1103 =(VYSUVB.LT.MEIO11).AND.(TIMEX.GT.0.02)
+98RE1104 =(ELESUV.LT.VYSUVA).AND.(TIMEX.GT.0.02)
+98RE1105 =(VYSUVC.LT.MEIO11).AND.(TIMEX.GT.0.02)
+98RE1106 =(ELESUV.LT.VYSUVB).AND.(TIMEX.GT.0.02)
+98RE1107 =(VDSUVA.LT.POLOSU).AND.(TIMEX.GT.0.02)
+98RE1108 =(MEIO11.LT.VDSUVC).AND.(TIMEX.GT.0.02)
+98RE1109 =(VDSUVB.LT.POLOSU).AND.(TIMEX.GT.0.02)
+98RE1110 =(MEIO11.LT.VDSUVA).AND.(TIMEX.GT.0.02)
+98RE1111 =(VDSUVC.LT.POLOSU).AND.(TIMEX.GT.0.02)
+98RE1112 =(MEIO11.LT.VDSUVB).AND.(TIMEX.GT.0.02)
+C
+98TR1101 =(.NOT.VA1101).AND.VD1101
+98TR1102 =(.NOT.VA1102).AND.VD1102
+98TR1103 =(.NOT.VA1103).AND.VD1103
+98TR1104 =(.NOT.VA1104).AND.VD1104
+98TR1105 =(.NOT.VA1105).AND.VD1105
+98TR1106 =(.NOT.VA1106).AND.VD1106
+98TR1107 =(.NOT.VA1107).AND.VD1107
+98TR1108 =(.NOT.VA1108).AND.VD1108
+98TR1109 =(.NOT.VA1109).AND.VD1109
+98TR1110 =(.NOT.VA1110).AND.VD1110
+98TR1111 =(.NOT.VA1111).AND.VD1111
+98TR1112 =(.NOT.VA1112).AND.VD1112
+C
+98IG110158 +RE1101 1.8E4 1.VD1101
+98IG110258 +RE1102 1.8E4 1.VD1102
+98IG110358 +RE1103 1.8E4 1.VD1103
+98IG110458 +RE1104 1.8E4 1.VD1104
+98IG110558 +RE1105 1.8E4 1.VD1105
+98IG110658 +RE1106 1.8E4 1.VD1106
+98IG110758 +RE1107 1.8E4 1.VD1107
+98IG110858 +RE1108 1.8E4 1.VD1108
+98IG110958 +RE1109 1.8E4 1.VD1109
+98IG111058 +RE1110 1.8E4 1.VD1110
+98IG111158 +RE1111 1.8E4 1.VD1111
+98IG111258 +RE1112 1.8E4 1.VD1112
+C
+98GI110158 +VD1101 1.8E4 1.IG1101
+98GI110258 +VD1102 1.8E4 1.IG1102
+98GI110358 +VD1103 1.8E4 1.IG1103
+98GI110458 +VD1104 1.8E4 1.IG1104
+98GI110558 +VD1105 1.8E4 1.IG1105
+98GI110658 +VD1106 1.8E4 1.IG1106
+98GI110758 +VD1107 1.8E4 1.IG1107
+98GI110858 +VD1108 1.8E4 1.IG1108
+98GI110958 +VD1109 1.8E4 1.IG1109
+98GI111058 +VD1110 1.8E4 1.IG1110
+98GI111158 +VD1111 1.8E4 1.IG1111
+98GI111258 +VD1112 1.8E4 1.IG1112
+C
+98GM110162 +GI1101 TR1101
+98GM110262 +GI1102 TR1102
+98GM110362 +GI1103 TR1103
+98GM110462 +GI1104 TR1104
+98GM110562 +GI1105 TR1105
+98GM110662 +GI1106 TR1106
+98GM110762 +GI1107 TR1107
+98GM110862 +GI1108 TR1108
+98GM110962 +GI1109 TR1109
+98GM111062 +GI1110 TR1110
+98GM111162 +GI1111 TR1111
+98GM111262 +GI1112 TR1112
+C
+98TRA11Y =(TR1101+TR1102+TR1103+TR1104+TR1105+TR1106)/DELTAT
+98GM11_Y61+GM1106 +GM1101 +GM1102 +GM1103 +GM1104 99.GM1105GAM11Y
+98GAM11Y58 +TRA11Y 1. 1.NT1106UNITY
+98NT1106 =(.NOT.TR1106).EQ.1
+98TRA11D =(TR1107+TR1108+TR1109+TR1110+TR1111+TR1112)/DELTAT
+98GM11_D61+GM1112 +GM1107 +GM1108 +GM1109 +GM1110 99.GM1111GAM11D
+98GAM11D58 +TRA11D 1. 1.NT1112UNITY
+98NT1112 =(.NOT.TR1112).EQ.1
+98ALFAR 63+GM11_Y +GM11_D -1.
+C
+90SUVERA
+90SUVERB
+90SUVERC
+C
+C ------- MISURA DELLA TENSIONE MEDIA (50HZ), SBARRE DI COMMUTAZIONE ---------
+98VACM11 =SQRT(SUVERA*SUVERA+SUVERB*SUVERB+SUVERC*SUVERC)/400.E3
+33VACM11ALFAR
+C
+C ------- PLL (PER LA GFU), LATO SUVERETO -----------------------------------
+98OMEG11 =2.*PI* 50.
+98IGA11 =(2*SUVERA-SUVERB-SUVERC)/(SQRT(6.)*400.E3)
+98IGB11 =(SUVERB-SUVERC)/(SQRT(2.)*400.E3)
+88ERR11 =IGA11*COS(P11PLL)+IGB11*SIN(P11PLL)
+ 1ERIN11 +ERR11 10.
+ 1.
+ 1.
+ 0ERPP11 +ERR11 50.
+98RES11 =PHD11.LE.(2*PI-2*W11*DELTAT)
+98P11PLL58 +W11 1. 1.RES11 ZERO
+ 0W11 +ERPP11 +ERIN11 +OMEG11 1. 301.6 452.4
+ 0PHD11 +P11PLL 1.
+77P11PLL 1.57
+C 33P##PLL
+C 33W##
+C ------------------ INNESCO DEI TIRISTORI ----------------------------------
+90UCTD11
+11GRD11 .017453292
+98VAD11 = SIN(P11PLL-(UCTD11+30)*GRD11)
+98VBD11 = SIN(P11PLL-(UCTD11+150)*GRD11)
+98VCD11 = SIN(P11PLL-(UCTD11-90)*GRD11)
+C -------------------------------------------------
+98VAY11 = SIN(P11PLL-UCTD11*GRD11)
+98VBY11 = SIN(P11PLL-(UCTD11+120)*GRD11)
+98VCY11 = SIN(P11PLL-(UCTD11-120)*GRD11)
+98DS1101 = VAY11.GT.VCY11.AND.VAY11.GT.VBY11.AND.TIMEX.GT. 0.0
+98DS1102 = VCY11.LT.VAY11.AND.VCY11.LT.VBY11.AND.TIMEX.GT. 0.0
+98DS1103 = VBY11.GT.VCY11.AND.VBY11.GT.VAY11.AND.TIMEX.GT. 0.0
+98DS1104 = VAY11.LT.VCY11.AND.VAY11.LT.VBY11.AND.TIMEX.GT. 0.0
+98DS1105 = VCY11.GT.VAY11.AND.VCY11.GT.VBY11.AND.TIMEX.GT. 0.0
+98DS1106 = VBY11.LT.VCY11.AND.VBY11.LT.VAY11.AND.TIMEX.GT. 0.0
+C -------------------------------------------------
+98DS1107 = VAD11.GT.VCD11.AND.VAD11.GT.VBD11.AND.TIMEX.GT. 0.0
+98DS1108 = VCD11.LT.VAD11.AND.VCD11.LT.VBD11.AND.TIMEX.GT. 0.0
+98DS1109 = VBD11.GT.VCD11.AND.VBD11.GT.VAD11.AND.TIMEX.GT. 0.0
+98DS1110 = VAD11.LT.VCD11.AND.VAD11.LT.VBD11.AND.TIMEX.GT. 0.0
+98DS1111 = VCD11.GT.VAD11.AND.VCD11.GT.VBD11.AND.TIMEX.GT. 0.0
+98DS1112 = VBD11.LT.VCD11.AND.VBD11.LT.VAD11.AND.TIMEX.GT. 0.0
+C
+C
+C ----- MISURA DELL'ANGOLO GAMMA, CONVERTITORE CODRONGIANOS --------------------
+90VYCODA 10.
+90VYCODB 10.
+90VYCODC 10.
+90VDCODA 10.
+90VDCODB 10.
+90VDCODC 10.
+90POLOCO 10.
+90MEIO21 10.
+90ELECOD 10.
+C
+98VA2101 =CODROA.LT.CODROB
+98VA2102 =CODROA.LT.CODROC
+98VA2103 =CODROB.LT.CODROC
+98VA2104 =CODROB.LT.CODROA
+98VA2105 =CODROC.LT.CODROA
+98VA2106 =CODROC.LT.CODROB
+98VA2107 =CODROA.LT.ZERO
+98VA2108 =CODROC.GT.ZERO
+98VA2109 =CODROB.LT.ZERO
+98VA2110 =CODROA.GT.ZERO
+98VA2111 =CODROC.LT.ZERO
+98VA2112 =CODROB.GT.ZERO
+C
+98VD210153 +VA2101 2.5E-5
+98VD210253 +VA2102 2.5E-5
+98VD210353 +VA2103 2.5E-5
+98VD210453 +VA2104 2.5E-5
+98VD210553 +VA2105 2.5E-5
+98VD210653 +VA2106 2.5E-5
+98VD210753 +VA2107 2.5E-5
+98VD210853 +VA2108 2.5E-5
+98VD210953 +VA2109 2.5E-5
+98VD211053 +VA2110 2.5E-5
+98VD211153 +VA2111 2.5E-5
+98VD211253 +VA2112 2.5E-5
+C
+98RE2101 =(VYCODA.LT.MEIO21).AND.(TIMEX.GT.0.02)
+98RE2102 =(POLOCO.LT.VYCODC).AND.(TIMEX.GT.0.02)
+98RE2103 =(VYCODB.LT.MEIO21).AND.(TIMEX.GT.0.02)
+98RE2104 =(POLOCO.LT.VYCODA).AND.(TIMEX.GT.0.02)
+98RE2105 =(VYCODC.LT.MEIO21).AND.(TIMEX.GT.0.02)
+98RE2106 =(POLOCO.LT.VYCODB).AND.(TIMEX.GT.0.02)
+98RE2107 =(VDCODA.LT.ELECOD).AND.(TIMEX.GT.0.02)
+98RE2108 =(MEIO21.LT.VDCODC).AND.(TIMEX.GT.0.02)
+98RE2109 =(VDCODB.LT.ELECOD).AND.(TIMEX.GT.0.02)
+98RE2110 =(MEIO21.LT.VDCODA).AND.(TIMEX.GT.0.02)
+98RE2111 =(VDCODC.LT.ELECOD).AND.(TIMEX.GT.0.02)
+98RE2112 =(MEIO21.LT.VDCODB).AND.(TIMEX.GT.0.02)
+C
+98TR2101 =(.NOT.VA2101).AND.VD2101
+98TR2102 =(.NOT.VA2102).AND.VD2102
+98TR2103 =(.NOT.VA2103).AND.VD2103
+98TR2104 =(.NOT.VA2104).AND.VD2104
+98TR2105 =(.NOT.VA2105).AND.VD2105
+98TR2106 =(.NOT.VA2106).AND.VD2106
+98TR2107 =(.NOT.VA2107).AND.VD2107
+98TR2108 =(.NOT.VA2108).AND.VD2108
+98TR2109 =(.NOT.VA2109).AND.VD2109
+98TR2110 =(.NOT.VA2110).AND.VD2110
+98TR2111 =(.NOT.VA2111).AND.VD2111
+98TR2112 =(.NOT.VA2112).AND.VD2112
+C
+98IG210158 +RE2101 1.8E4 1.VD2101
+98IG210258 +RE2102 1.8E4 1.VD2102
+98IG210358 +RE2103 1.8E4 1.VD2103
+98IG210458 +RE2104 1.8E4 1.VD2104
+98IG210558 +RE2105 1.8E4 1.VD2105
+98IG210658 +RE2106 1.8E4 1.VD2106
+98IG210758 +RE2107 1.8E4 1.VD2107
+98IG210858 +RE2108 1.8E4 1.VD2108
+98IG210958 +RE2109 1.8E4 1.VD2109
+98IG211058 +RE2110 1.8E4 1.VD2110
+98IG211158 +RE2111 1.8E4 1.VD2111
+98IG211258 +RE2112 1.8E4 1.VD2112
+C
+98GI210158 +VD2101 1.8E4 1.IG2101
+98GI210258 +VD2102 1.8E4 1.IG2102
+98GI210358 +VD2103 1.8E4 1.IG2103
+98GI210458 +VD2104 1.8E4 1.IG2104
+98GI210558 +VD2105 1.8E4 1.IG2105
+98GI210658 +VD2106 1.8E4 1.IG2106
+98GI210758 +VD2107 1.8E4 1.IG2107
+98GI210858 +VD2108 1.8E4 1.IG2108
+98GI210958 +VD2109 1.8E4 1.IG2109
+98GI211058 +VD2110 1.8E4 1.IG2110
+98GI211158 +VD2111 1.8E4 1.IG2111
+98GI211258 +VD2112 1.8E4 1.IG2112
+C
+98GM210162 +GI2101 TR2101
+98GM210262 +GI2102 TR2102
+98GM210362 +GI2103 TR2103
+98GM210462 +GI2104 TR2104
+98GM210562 +GI2105 TR2105
+98GM210662 +GI2106 TR2106
+98GM210762 +GI2107 TR2107
+98GM210862 +GI2108 TR2108
+98GM210962 +GI2109 TR2109
+98GM211062 +GI2110 TR2110
+98GM211162 +GI2111 TR2111
+98GM211262 +GI2112 TR2112
+C
+98TRA21Y =(TR2101+TR2102+TR2103+TR2104+TR2105+TR2106)/DELTAT
+98GM21_Y61+GM2106 +GM2101 +GM2102 +GM2103 +GM2104 99.GM2105GAM21Y
+98GAM21Y58 +TRA21Y 1. 1.NT2106UNITY
+98NT2106 =(.NOT.TR2106).EQ.1
+98TRA21D =(TR2107+TR2108+TR2109+TR2110+TR2111+TR2112)/DELTAT
+98GM21_D61+GM2112 +GM2107 +GM2108 +GM2109 +GM2110 99.GM2111GAM21D
+98GAM21D58 +TRA21D 1. 1.NT2112UNITY
+98NT2112 =(.NOT.TR2112).EQ.1
+98GAMMAI63+GM21_Y +GM21_D -1.
+C
+90CODROA
+90CODROB
+90CODROC
+C
+C ------- MISURA DELLA TENSIONE MEDIA (50HZ), SBARRE DI COMMUTAZIONE ---------
+98VACM21 =SQRT(CODROA*CODROA+CODROB*CODROB+CODROC*CODROC)/400.E3
+33VACM21GAMMAI
+C
+C ------- PLL (PER LA GFU), LATO CODRONGIANOS -----------------------------------
+98OMEG21 =2.*PI* 50.
+98IGA21 =(2*CODROA-CODROB-CODROC)/(SQRT(6.)*400.E3)
+98IGB21 =(CODROB-CODROC)/(SQRT(2.)*400.E3)
+88ERR21 =IGA21*COS(P21PLL)+IGB21*SIN(P21PLL)
+ 1ERIN21 +ERR21 10.
+ 1.
+ 1.
+ 0ERPP21 +ERR21 50.
+98RES21 =PHD21.LE.(2*PI-2*W21*DELTAT)
+98P21PLL58 +W21 1. 1.RES21 ZERO
+ 0W21 +ERPP21 +ERIN21 +OMEG21 1. 301.6 452.4
+ 0PHD21 +P21PLL 1.
+77P21PLL 1.57
+C 33P##PLL
+C 33W##
+C ------------------ INNESCO DEI TIRISTORI ----------------------------------
+90UCTD21
+11GRD21 .017453292
+98VAD21 = SIN(P21PLL-(UCTD21+30)*GRD21)
+98VBD21 = SIN(P21PLL-(UCTD21+150)*GRD21)
+98VCD21 = SIN(P21PLL-(UCTD21-90)*GRD21)
+C -------------------------------------------------
+98VAY21 = SIN(P21PLL-UCTD21*GRD21)
+98VBY21 = SIN(P21PLL-(UCTD21+120)*GRD21)
+98VCY21 = SIN(P21PLL-(UCTD21-120)*GRD21)
+98DS2101 = VAY21.GT.VCY21.AND.VAY21.GT.VBY21.AND.TIMEX.GT. 0.0
+98DS2102 = VCY21.LT.VAY21.AND.VCY21.LT.VBY21.AND.TIMEX.GT. 0.0
+98DS2103 = VBY21.GT.VCY21.AND.VBY21.GT.VAY21.AND.TIMEX.GT. 0.0
+98DS2104 = VAY21.LT.VCY21.AND.VAY21.LT.VBY21.AND.TIMEX.GT. 0.0
+98DS2105 = VCY21.GT.VAY21.AND.VCY21.GT.VBY21.AND.TIMEX.GT. 0.0
+98DS2106 = VBY21.LT.VCY21.AND.VBY21.LT.VAY21.AND.TIMEX.GT. 0.0
+C -------------------------------------------------
+98DS2107 = VAD21.GT.VCD21.AND.VAD21.GT.VBD21.AND.TIMEX.GT. 0.0
+98DS2108 = VCD21.LT.VAD21.AND.VCD21.LT.VBD21.AND.TIMEX.GT. 0.0
+98DS2109 = VBD21.GT.VCD21.AND.VBD21.GT.VAD21.AND.TIMEX.GT. 0.0
+98DS2110 = VAD21.LT.VCD21.AND.VAD21.LT.VBD21.AND.TIMEX.GT. 0.0
+98DS2111 = VCD21.GT.VAD21.AND.VCD21.GT.VBD21.AND.TIMEX.GT. 0.0
+98DS2112 = VBD21.LT.VCD21.AND.VBD21.LT.VAD21.AND.TIMEX.GT. 0.0
+C
+C ----- MISURA DELL'ANGOLO GAMMA, CONVERTITORE LUCCIANA -----------------------
+90VYLUCA 10.
+90VYLUCB 10.
+90VYLUCC 10.
+90VDLUCA 10.
+90VDLUCB 10.
+90VDLUCC 10.
+90POLOLU 10.
+90MEIO31 10.
+90ELELUC 10.
+C
+98VA3101 =LUCCIA.LT.LUCCIB
+98VA3102 =LUCCIA.LT.LUCCIC
+98VA3103 =LUCCIB.LT.LUCCIC
+98VA3104 =LUCCIB.LT.LUCCIA
+98VA3105 =LUCCIC.LT.LUCCIA
+98VA3106 =LUCCIC.LT.LUCCIB
+98VA3107 =LUCCIA.LT.ZERO
+98VA3108 =LUCCIC.GT.ZERO
+98VA3109 =LUCCIB.LT.ZERO
+98VA3110 =LUCCIA.GT.ZERO
+98VA3111 =LUCCIC.LT.ZERO
+98VA3112 =LUCCIB.GT.ZERO
+C
+98VD310153 +VA3101 2.5E-5
+98VD310253 +VA3102 2.5E-5
+98VD310353 +VA3103 2.5E-5
+98VD310453 +VA3104 2.5E-5
+98VD310553 +VA3105 2.5E-5
+98VD310653 +VA3106 2.5E-5
+98VD310753 +VA3107 2.5E-5
+98VD310853 +VA3108 2.5E-5
+98VD310953 +VA3109 2.5E-5
+98VD311053 +VA3110 2.5E-5
+98VD311153 +VA3111 2.5E-5
+98VD311253 +VA3112 2.5E-5
+C
+98RE3101 =(VYLUCA.LT.MEIO31).AND.(TIMEX.GT.0.02)
+98RE3102 =(POLOLU.LT.VYLUCC).AND.(TIMEX.GT.0.02)
+98RE3103 =(VYLUCB.LT.MEIO31).AND.(TIMEX.GT.0.02)
+98RE3104 =(POLOLU.LT.VYLUCA).AND.(TIMEX.GT.0.02)
+98RE3105 =(VYLUCC.LT.MEIO31).AND.(TIMEX.GT.0.02)
+98RE3106 =(POLOLU.LT.VYLUCB).AND.(TIMEX.GT.0.02)
+98RE3107 =(VDLUCA.LT.ELELUC).AND.(TIMEX.GT.0.02)
+98RE3108 =(MEIO31.LT.VDLUCC).AND.(TIMEX.GT.0.02)
+98RE3109 =(VDLUCB.LT.ELELUC).AND.(TIMEX.GT.0.02)
+98RE3110 =(MEIO31.LT.VDLUCA).AND.(TIMEX.GT.0.02)
+98RE3111 =(VDLUCC.LT.ELELUC).AND.(TIMEX.GT.0.02)
+98RE3112 =(MEIO31.LT.VDLUCB).AND.(TIMEX.GT.0.02)
+C
+98TR3101 =(.NOT.VA3101).AND.VD3101
+98TR3102 =(.NOT.VA3102).AND.VD3102
+98TR3103 =(.NOT.VA3103).AND.VD3103
+98TR3104 =(.NOT.VA3104).AND.VD3104
+98TR3105 =(.NOT.VA3105).AND.VD3105
+98TR3106 =(.NOT.VA3106).AND.VD3106
+98TR3107 =(.NOT.VA3107).AND.VD3107
+98TR3108 =(.NOT.VA3108).AND.VD3108
+98TR3109 =(.NOT.VA3109).AND.VD3109
+98TR3110 =(.NOT.VA3110).AND.VD3110
+98TR3111 =(.NOT.VA3111).AND.VD3111
+98TR3112 =(.NOT.VA3112).AND.VD3112
+C
+98IG310158 +RE3101 1.8E4 1.VD3101
+98IG310258 +RE3102 1.8E4 1.VD3102
+98IG310358 +RE3103 1.8E4 1.VD3103
+98IG310458 +RE3104 1.8E4 1.VD3104
+98IG310558 +RE3105 1.8E4 1.VD3105
+98IG310658 +RE3106 1.8E4 1.VD3106
+98IG310758 +RE3107 1.8E4 1.VD3107
+98IG310858 +RE3108 1.8E4 1.VD3108
+98IG310958 +RE3109 1.8E4 1.VD3109
+98IG311058 +RE3110 1.8E4 1.VD3110
+98IG311158 +RE3111 1.8E4 1.VD3111
+98IG311258 +RE3112 1.8E4 1.VD3112
+C
+98GI310158 +VD3101 1.8E4 1.IG3101
+98GI310258 +VD3102 1.8E4 1.IG3102
+98GI310358 +VD3103 1.8E4 1.IG3103
+98GI310458 +VD3104 1.8E4 1.IG3104
+98GI310558 +VD3105 1.8E4 1.IG3105
+98GI310658 +VD3106 1.8E4 1.IG3106
+98GI310758 +VD3107 1.8E4 1.IG3107
+98GI310858 +VD3108 1.8E4 1.IG3108
+98GI310958 +VD3109 1.8E4 1.IG3109
+98GI311058 +VD3110 1.8E4 1.IG3110
+98GI311158 +VD3111 1.8E4 1.IG3111
+98GI311258 +VD3112 1.8E4 1.IG3112
+C
+98GM310162 +GI3101 TR3101
+98GM310262 +GI3102 TR3102
+98GM310362 +GI3103 TR3103
+98GM310462 +GI3104 TR3104
+98GM310562 +GI3105 TR3105
+98GM310662 +GI3106 TR3106
+98GM310762 +GI3107 TR3107
+98GM310862 +GI3108 TR3108
+98GM310962 +GI3109 TR3109
+98GM311062 +GI3110 TR3110
+98GM311162 +GI3111 TR3111
+98GM311262 +GI3112 TR3112
+C
+98TRA31Y =(TR3101+TR3102+TR3103+TR3104+TR3105+TR3106)/DELTAT
+98GM31_Y61+GM3106 +GM3101 +GM3102 +GM3103 +GM3104 99.GM3105GAM31Y
+98GAM31Y58 +TRA31Y 1. 1.NT3106UNITY
+98NT3106 =(.NOT.TR3106).EQ.1
+98TRA31D =(TR3107+TR3108+TR3109+TR3110+TR3111+TR3112)/DELTAT
+98GM31_D61+GM3112 +GM3107 +GM3108 +GM3109 +GM3110 99.GM3111GAM31D
+98GAM31D58 +TRA31D 1. 1.NT3112UNITY
+98NT3112 =(.NOT.TR3112).EQ.1
+98GAMMAL63+GM31_Y +GM31_D -1.
+C
+90LUCCIA
+90LUCCIB
+90LUCCIC
+C
+C ------- MISURA DELLA TENSIONE MEDIA (50HZ), SBARRE DI COMMUTAZIONE ---------
+98VACM31 =SQRT(LUCCIA*LUCCIA+LUCCIB*LUCCIB+LUCCIC*LUCCIC)/90.E3
+33VACM31GAMMAL
+C
+C ------- PLL (PER LA GFU), LATO LUCCIANA ------------------------------------
+98OMEG31 =2.*PI* 50.
+98IGA31 =(2*LUCCIA-LUCCIB-LUCCIC)/(SQRT(6.)*90.E3)
+98IGB31 =(LUCCIB-LUCCIC)/(SQRT(2.)*90.E3)
+88ERR31 =IGA31*COS(P31PLL)+IGB31*SIN(P31PLL)
+ 1ERIN31 +ERR31 10.
+ 1.
+ 1.
+ 0ERPP31 +ERR31 50.
+98RES31 =PHD31.LE.(2*PI-2*W31*DELTAT)
+98P31PLL58 +W31 1. 1.RES31 ZERO
+ 0W31 +ERPP31 +ERIN31 +OMEG31 1. 301.6 452.4
+ 0PHD31 +P31PLL 1.
+77P31PLL 1.57
+C ------------------ INNESCO DEI TIRISTORI ----------------------------------
+90UCTD31
+11GRD31 .017453292
+98VAD31 = SIN(P31PLL-(UCTD31+30)*GRD31)
+98VBD31 = SIN(P31PLL-(UCTD31+150)*GRD31)
+98VCD31 = SIN(P31PLL-(UCTD31-90)*GRD31)
+C -------------------------------------------------
+98VAY31 = SIN(P31PLL-UCTD31*GRD31)
+98VBY31 = SIN(P31PLL-(UCTD31+120)*GRD31)
+98VCY31 = SIN(P31PLL-(UCTD31-120)*GRD31)
+98DS3101 = VAY31.GT.VCY31.AND.VAY31.GT.VBY31.AND.TIMEX.GT. 0.0
+98DS3102 = VCY31.LT.VAY31.AND.VCY31.LT.VBY31.AND.TIMEX.GT. 0.0
+98DS3103 = VBY31.GT.VCY31.AND.VBY31.GT.VAY31.AND.TIMEX.GT. 0.0
+98DS3104 = VAY31.LT.VCY31.AND.VAY31.LT.VBY31.AND.TIMEX.GT. 0.0
+98DS3105 = VCY31.GT.VAY31.AND.VCY31.GT.VBY31.AND.TIMEX.GT. 0.0
+98DS3106 = VBY31.LT.VCY31.AND.VBY31.LT.VAY31.AND.TIMEX.GT. 0.0
+C -------------------------------------------------
+98DS3107 = VAD31.GT.VCD31.AND.VAD31.GT.VBD31.AND.TIMEX.GT. 0.0
+98DS3108 = VCD31.LT.VAD31.AND.VCD31.LT.VBD31.AND.TIMEX.GT. 0.0
+98DS3109 = VBD31.GT.VCD31.AND.VBD31.GT.VAD31.AND.TIMEX.GT. 0.0
+98DS3110 = VAD31.LT.VCD31.AND.VAD31.LT.VBD31.AND.TIMEX.GT. 0.0
+98DS3111 = VCD31.GT.VAD31.AND.VCD31.GT.VBD31.AND.TIMEX.GT. 0.0
+98DS3112 = VBD31.LT.VCD31.AND.VBD31.LT.VAD31.AND.TIMEX.GT. 0.0
+BLANK TACS
+C ------------------------------------------------------------------------------
+C BLOCCO MODELS
+C ------------------------------------------------------------------------------
+MODELS
+INPUT
+MM0001 {i(DCCODR)}
+MM0002 {v(DCCODR)}
+MM0003 {tacs(GAMMAI)}
+MM0004 {i(DCSUVE)}
+MM0005 {v(DCSUVE)}
+MM0006 {i(DCLUCC)}
+MM0007 {v(DCLUCC)}
+MM0008 {tacs(GAMMAL)}
+OUTPUT
+ UCCAI
+ UCCAR
+ UCCAL
+ IORDEM
+MODEL RAD_SUV
+ --- MODELLO RADDRIZZATORE SUVERETO ---
+ INPUT IDC,VDC
+ OUTPUT ALFA,IORDER
+ DATA VDC_BA{DFLT:200.},IDC_BA{DFLT:1.},KPV{DFLT:63},KIV{DFLT:5247}
+ TC_IDC{DFLT:0.012},TC_VDC{DFLT:0.00531},IORDEP{DFLT:1.0}
+ VDCREF{DFLT:1.0},IDCREF{DFLT:1.1},KPI{DFLT:63},KII{DFLT:5247}
+ VAR IDC_PU,VDC_PU,IDCMED,VDCMED,ALFA,ERRV,ERRV_INT,ERRV_PRO
+ BETAV,ERRI,ERRI_INT,ERRI_PRO,BETAI,BETA
+ IORDER,UDINP,VDCOLI
+ INIT
+ ---- MISURE
+ histdef(IDCMED) :=1.0
+ histdef(VDCMED) :=1.0
+ ---- REGOLATORI
+ ERRV :=0
+ ERRV_PRO :=0
+ histdef(ERRV_INT):=163
+ ERRI :=0.1
+ ERRI_PRO :=0
+ histdef(ERRI_INT):=175
+ ENDINIT
+ EXEC
+ ---- FILTRI GRANDEZZE DC ---
+ IDC_PU:=IDC/(IDC_BA*1000.)
+ VDC_PU:=VDC/(VDC_BA*1000.)
+ LAPLACE(IDCMED/IDC_PU):=(1|S0)/(1|S0+TC_IDC|S1)
+ LAPLACE(VDCMED/VDC_PU):=(1|S0)/(1|S0+TC_VDC|S1)
+ ---- VDCOL ----
+ UDINP := VDCMED {MIN:0.4,MAX:0.9}
+ VDCOLI := UDINP*0.9 + 0.19
+ IORDER := VDCOLI*IORDEP
+ -------------------------------------------------------------------------
+
+ ---- REGOLATORE TENSIONE COSTANTE (modalit?? Constant-Voltage) ----
+ ERRV := (VDCREF - VDCMED)
+ LAPLACE(ERRV_INT/ERRV) {DMIN:90.,DMAX:175.}:=(KIV|S0)/(1|S1)
+ ERRV_PRO := KPV*(VDCREF - VDCMED)
+ BETAV := (ERRV_INT + ERRV_PRO) {MIN:90.,MAX:175.}
+
+ ---- REGOLATORE DI CORRENTE (modalit?? CC) ----
+ ERRI := (IORDER - IDCMED + 0.1)
+ LAPLACE(ERRI_INT/ERRI) {DMIN:30.,DMAX:175.} := (KII|S0)/(1|S1)
+ ERRI_PRO := KPI*(IORDER - IDCMED)
+ BETAI := (ERRI_INT + ERRI_PRO) {MIN:30.,MAX:175}
+
+ BETA :=MIN(BETAI,BETAV)
+ ALFA := 180. - BETA
+ ENDEXEC
+ENDMODEL
+MODEL INV_COD
+ ---- MODELLO INVERTER CODRONGIANOS ----
+ INPUT IDC,VDC,GAMMA,IORDER
+ OUTPUT ALFA
+ DATA VDC_BA{DFLT:200.},IDC_BA{DFLT:1.}
+ FREQ{DFLT:50},TC_IDC{DFLT:0.0012},TC_VDC{DFLT:0.02}
+ KPI{DFLT:36},KII{DFLT:3760},KPG{DFLT:0.7506},KIG{DFLT:18.38}
+ ICODRO{DFLT:0.75}
+ VAR IDC_PU,VDC_PU,IDCMED,VDCMED,ALFA
+ BETAIC,ERRI_INT,ERRI_PRO,ERRI
+ GAMMAN,GAMMIN,ERRG_INT,ERRG_PRO,GNLG,GERRI,BETAIG,G[1..12]
+ K,INTER,BETAI
+ INIT
+ ---- MISURE
+ histdef(IDCMED) :=0.75
+ histdef(VDCMED) :=0.92
+ ---- REGOLATORI
+ ERRI :=0
+ ERRI_PRO :=0
+ histdef(ERRI_INT):=34.
+ ERRG_PRO :=0
+ histdef(ERRG_INT):=30.
+ GAMMAN :=22.
+ GAMMIN :=180
+ K :=1
+ G[1..12] :=22.
+ INTER :=0.0
+ ENDINIT
+ EXEC
+ --- FILTRI ---
+ IDC_PU:=IDC/(IDC_BA*1000.)
+ VDC_PU:=VDC/(VDC_BA*1000.)
+ LAPLACE(IDCMED/IDC_PU):=(1|S0)/(1|S0+TC_IDC|S1)
+ LAPLACE(VDCMED/VDC_PU):=(1|S0)/(1|S0+TC_VDC|S1)
+
+ -------------------------------------------------------------------------
+ --- REGOLATORE CORRENTE (modalita CC) ----
+ ERRI := (IORDER*ICODRO - IDCMED)
+ LAPLACE(ERRI_INT/ERRI) {DMIN:30.,DMAX:90.}:=(KII|S0)/(1|S1)
+ ERRI_PRO:=KPI*ERRI
+ BETAIC:=(ERRI_INT + ERRI_PRO) {MIN:30.,MAX:90.}
+
+
+ -------------------------------------------------------------------------
+ --- REGOLATORE ANGOLO COSTANTE (modalit?? CEA) ----
+ GERRI:=15-GAMMAN
+ GNLG:=MAX(-31,GERRI)
+ LAPLACE(ERRG_INT/GNLG) {DMIN:30.,DMAX:90.}:=(KIG|S0)/(1|S1)
+ ERRG_PRO:=KPG*GNLG
+ BETAIG:=(ERRG_INT + ERRG_PRO) {MIN:30.,MAX:90.}
+ IF AND(T>0.03,INTER>30) THEN
+ G[K]:=GAMMA
+ K:=K+1
+ IF K=13 THEN K:=1 ENDIF
+ GAMMIN:=MIN(G[1],G[2],G[3],G[4],G[5],G[6])
+ GAMMAN:=MIN(GAMMIN,G[7],G[8],G[9],G[10],G[11],G[12])
+ INTER:=0.0
+ ENDIF
+ INTER:=INTER+TIMESTEP*360*FREQ
+
+ BETAI:=MAX(BETAIC,BETAIG)
+ ALFA:=180-BETAI
+ ENDEXEC
+ENDMODEL
+MODEL INV_LUC
+ ---- MODELLO INVERTER LUCCIANA ----
+ INPUT IDC,VDC,GAMMA,IORDER
+ OUTPUT ALFA
+ DATA VDC_BA{DFLT:200.},IDC_BA{DFLT:1.}
+ FREQ{DFLT:50},TC_IDC{DFLT:0.0012},TC_VDC{DFLT:0.02}
+ KPI{DFLT:36},KII{DFLT:3760},KPG{DFLT:0.7506},KIG{DFLT:18.38}
+ ILUCCI{DFLT:0.25}
+ VAR IDC_PU,VDC_PU,IDCMED,VDCMED,ALFA
+ BETAIC,ERRI_INT,ERRI_PRO,ERRI
+ GAMMAN,GAMMIN,ERRG_INT,ERRG_PRO,GNLG,GERRI,BETAIG,G[1..12]
+ K,INTER,BETAI
+ INIT
+ ---- MISURE
+ histdef(IDCMED) :=0.25
+ histdef(VDCMED) :=0.97
+ ---- REGOLATORI
+ ERRI :=0
+ ERRI_PRO :=0
+ histdef(ERRI_INT):=30.
+ ERRG_PRO :=0
+ histdef(ERRG_INT):=32.
+ GAMMAN :=15.
+ GAMMIN :=180
+ K :=1
+ G[1..12] :=180.
+ INTER :=0.0
+ ENDINIT
+ EXEC
+ --- FILTRI ---
+ IDC_PU:=IDC/(IDC_BA*1000.)
+ VDC_PU:=VDC/(VDC_BA*1000.)
+ LAPLACE(IDCMED/IDC_PU):=(1|S0)/(1|S0+TC_IDC|S1)
+ LAPLACE(VDCMED/VDC_PU):=(1|S0)/(1|S0+TC_VDC|S1)
+
+ -------------------------------------------------------------------------
+ --- REGOLATORE CORRENTE (modalita CC) ----
+ ERRI := (IORDER*ILUCCI - IDCMED)
+ LAPLACE(ERRI_INT/ERRI) {DMIN:30.,DMAX:110.}:=(KII|S0)/(1|S1)
+ ERRI_PRO:=KPI*ERRI
+ BETAIC:=(ERRI_INT + ERRI_PRO) {MIN:30.,MAX:110.}
+
+
+ -------------------------------------------------------------------------
+ --- REGOLATORE ANGOLO COSTANTE (modalit?? CEA) ----
+ GERRI:=15-GAMMAN
+ GNLG:=MAX(-31,GERRI)
+ LAPLACE(ERRG_INT/GNLG) {DMIN:30.,DMAX:90.}:=(KIG|S0)/(1|S1)
+ ERRG_PRO:=KPG*GNLG
+ BETAIG:=(ERRG_INT + ERRG_PRO) {MIN:30.,MAX:90.}
+ IF AND(T>0.03,INTER>30) THEN
+ G[K]:=GAMMA
+ K:=K+1
+ IF K=13 THEN K:=1 ENDIF
+ GAMMIN:=MIN(G[1],G[2],G[3],G[4],G[5],G[6])
+ GAMMAN:=MIN(GAMMIN,G[7],G[8],G[9],G[10],G[11],G[12])
+ INTER:=0.0
+ ENDIF
+ INTER:=INTER+TIMESTEP*360*FREQ
+
+ BETAI:=MAX(BETAIC,BETAIG)
+ ALFA:=180-BETAI
+ ENDEXEC
+ENDMODEL
+USE RAD_SUV AS RAD_SUV
+INPUT
+ IDC:= MM0004
+ VDC:= MM0005
+DATA
+ VDC_BA:= 200.
+ IDC_BA:= 1.
+ KPV := 142.
+ KIV := 7194.
+ KPI := 43.
+ KII := 3547.
+ TC_IDC:= 0.0012
+ TC_VDC:= 0.02
+OUTPUT
+ UCCAR := ALFA
+ IORDEM:= IORDER
+ENDUSE
+USE INV_COD AS INV_COD
+INPUT
+ IDC := MM0001
+ VDC := MM0002
+ GAMMA := MM0003
+ IORDER:= IORDEM
+DATA
+ VDC_BA:= 200.
+ IDC_BA:= 1.
+ KPI := 50.
+ KII := 476.
+ KPG := 0.4506
+ KIG := 18.38
+ TC_IDC:= 0.0012
+ TC_VDC:= 0.02
+ ICODRO:= 0.75
+OUTPUT
+ UCCAI:=ALFA
+ENDUSE
+USE INV_LUC AS INV_LUC
+INPUT
+ IDC := MM0006
+ VDC := MM0007
+ GAMMA := MM0008
+ IORDER:= IORDEM
+DATA
+ VDC_BA:= 200.
+ IDC_BA:= 1.
+ KPI := 65.
+ KII := 568.
+ KPG := 0.4506
+ KIG := 18.38
+ TC_IDC:= 0.0012
+ TC_VDC:= 0.02
+ ILUCCI:= 0.25
+OUTPUT
+ UCCAL:=ALFA
+ENDUSE
+RECORD
+ INV_COD.GAMMAN AS GAMMAN
+ INV_COD.BETAIG AS BETAIG
+ INV_COD.BETAIC AS BETAIC
+ INV_COD.ERRI AS ERRII
+ INV_COD.GERRI AS GERRI
+ INV_COD.ERRI_INT AS ERRI_I
+ INV_COD.ERRI_PRO AS ERRI_P
+ INV_COD.ERRG_INT AS ERRI_N
+ INV_COD.ERRG_PRO AS ERRI_R
+ RAD_SUV.ERRI AS ERRIR
+ RAD_SUV.ALFA AS ALFAR
+ RAD_SUV.IDC_PU AS IDC_PU
+ RAD_SUV.IDCMED AS IDCMED
+ RAD_SUV.VDC_PU AS VDC_PU
+ RAD_SUV.VDCMED AS VDCMED
+ RAD_SUV.ERRV AS ERRV
+ RAD_SUV.ERRV_INT AS ERRV_I
+ RAD_SUV.ERRV_PRO AS ERRV_P
+ RAD_SUV.ERRI_INT AS ERRI_I
+ RAD_SUV.ERRI_PRO AS ERRI_P
+ RAD_SUV.BETAV AS BETAV
+ RAD_SUV.BETAI AS BETAI
+ RAD_SUV.BETA AS BETA
+ENDMODELS
+C 1 2 3 4 5 6 7 8
+C 345678901234567890123456789012345678901234567890123456789012345678901234567890
+BLANK MODELS
+C ------------------------------------------------------------------------------
+C BRANCH CARDS
+C ------------------------------------------------------------------------------
+C
+C ------------------- IMPEDENZE DELLA RETE -----------------------------------
+C < n1 >< n2 ><ref1><ref2>< R >< L >< C >
+ FONTCAMISRTC 6.4454205.16 1
+ FONTCBCODROB 6.4454205.16 0
+ FONTCCCODROC 6.4454205.16 0
+ FONTSAMISRTS 2.671285.026 1
+ FONTSBSUVERB 2.671285.026 0
+ FONTSCSUVERC 2.671285.026 0
+ FONTLAMISRTL 1.366143.483 1
+ FONTLBLUCCIB 1.366143.483 0
+ FONTLCLUCCIC 1.366143.483 0
+C ----------------- LINEA DI TRASMISSIONE ------------------------------------
+C < n1 >< n2 ><ref1><ref2>< R >< L >< C >
+ DCSUVEDCSALI 2.1904 37. 0
+ DCSUVE 0.1665 0
+ DCSALI 0.1665 0
+ DCSALIDCLUCC 1.8621 952.2 0
+ DCSALI 21.16 0
+ DCLUCC 21.16 0
+ DCLUCCDCBONI 9.157 156. 0
+ DCLUCC 0.702 0
+ DCBONI 0.702 0
+ DCBONIDCSANT 0.264 135. 0
+ DCBONI 3. 0
+ DCSANT 3. 0
+ DCSANTDCCODR 5.032 85. 0
+ DCSANT 0.3825 0
+ DCCODR 0.3825 0
+C ----------------- TRASFORMATORI --------------------------------------------
+C ----------------- Suvereto ---------------------------------------------------
+ TRANSFORMER XT001A136.E3 0
+ 9999
+ 1SUVE00 271.68 400.
+ 2VDSUVAVDSUVB 34.963142.85
+ TRANSFORMER XT001A XT001B 0
+ 1SUVERB
+ 2VDSUVBVDSUVC
+ TRANSFORMER XT001A XT001C 0
+ 1SUVERC
+ 2VDSUVCVDSUVA
+ TRANSFORMER XT002A136.E3 0
+ 9999
+ 1SUVERA 271.68 400.
+ 2VYSUVAXT0004 11.65482.474
+ TRANSFORMER XT002A XT002B 0
+ 1SUVERB
+ 2VYSUVBXT0004
+ TRANSFORMER XT002A XT002C 0
+ 1SUVERC
+ 2VYSUVCXT0004
+C -------------------- Codrongianos --------------------------------------------
+ TRANSFORMER XT005A136.E3 0
+ 9999
+ 1CODR00 271.68 400.
+ 2VYCODAXT0006 11.65484.211
+ TRANSFORMER XT005A XT005B 0
+ 1CODROB
+ 2VYCODBXT0006
+ TRANSFORMER XT005A XT005C 0
+ 1CODROC
+ 2VYCODCXT0006
+ TRANSFORMER XT007A136.E3 0
+ 9999
+ 1CODROA 271.68 400.
+ 2VDCODAVDCODB 34.963145.86
+ TRANSFORMER XT007A XT007B 0
+ 1CODROB
+ 2VDCODBVDCODC
+ TRANSFORMER XT007A XT007C 0
+ 1CODROC
+ 2VDCODCVDCODA
+C --------------------- Lucciana -----------------------------------------------
+ TRANSFORMER XT008A13.4E3 0
+ 9999
+ 1LUCC00 26.612 90.
+ 2VYLUCAXT0009 24.09 100.
+ TRANSFORMER XT008A XT008B 0
+ 1LUCCIB
+ 2VYLUCBXT0009
+ TRANSFORMER XT008A XT008C 0
+ 1LUCCIC
+ 2VYLUCCXT0009
+ TRANSFORMER XT010A13.4E3 0
+ 9999
+ 1LUCCIA 26.612 90.
+ 2VDLUCAVDLUCB 72.281173.21
+ TRANSFORMER XT010A XT010B 0
+ 1LUCCIB
+ 2VDLUCBVDLUCC
+ TRANSFORMER XT010A XT010C 0
+ 1LUCCIC
+ 2VDLUCCVDLUCA
+C -----------------------------------------------------------------------------
+C FILTRI SUVERETO
+C -----------------------------------------------------------------------------
+C ------------------ Passa-alto 2 ordine ------------------------------------
+C < n 1>< n 2><ref1><ref2>< R >< L >< C >
+ SUVERAXF002A 0.997 0
+ SUVERBXF002B 0.997 0
+ SUVERCXF002C 0.997 0
+ XF002A 1639.9 0
+ XF002B 1639.9 0
+ XF002C 1639.9 0
+ XF002A 72.498 0
+ XF002B 72.498 0
+ XF002C 72.498 0
+C ------------------ Doppio accordo -----------------------------------------
+ SUVERAXF001A 35.201 0.999 0
+ SUVERBXF001B 35.201 0.999 0
+ SUVERCXF001C 35.201 0.999 0
+ XF001A 17.601 0
+ XF001B 17.601 0
+ XF001C 17.601 0
+ XF001A 1.999 0
+ XF001B 1.999 0
+ XF001C 1.999 0
+C -----------------------------------------------------------------------------
+C FILTRI CODRONGIANOS
+C -----------------------------------------------------------------------------
+C ------------------ Passa-alto 2 ordine ------------------------------------
+C < n 1>< n 2><ref1><ref2>< R >< L >< C >
+ CODROAXF004A 0.997 1
+ CODROBXF004B 0.997 0
+ CODROCXF004C 0.997 0
+ XF004A 1639.9 0
+ XF004B 1639.9 0
+ XF004C 1639.9 0
+ XF004A 72.498 0
+ XF004B 72.498 0
+ XF004C 72.498 0
+C ------------------ Doppio accordo -----------------------------------------
+ CODROAXF003A 35.201 0.999 1
+ CODROBXF003B 35.201 0.999 0
+ CODROCXF003C 35.201 0.999 0
+ XF003A 17.601 0
+ XF003B 17.601 0
+ XF003C 17.601 0
+ XF003A 1.999 0
+ XF003B 1.999 0
+ XF003C 1.999 0
+C -----------------------------------------------------------------------------
+C FILTRI LUCCIANA
+C -----------------------------------------------------------------------------
+C ------------------ Passa-alto 2 ordine ------------------------------------
+C < n 1>< n 2><ref1><ref2>< R >< L >< C >
+ LUCCIAXF006A 11.315 0
+ LUCCIBXF006B 11.315 0
+ LUCCICXF006C 11.315 0
+ XF006A 144.57 0
+ XF006B 144.57 0
+ XF006C 144.57 0
+ XF006A 6.391 0
+ XF006B 6.391 0
+ XF006C 6.391 0
+C ------------------ Doppio accordo ------------------------------------------
+ LUCCIAXF005A 3.10311.337 0
+ LUCCIBXF005B 3.10311.337 0
+ LUCCICXF005C 3.10311.337 0
+ XF005A 1.552 0
+ XF005B 1.552 0
+ XF005C 1.552 0
+ XF005A 22.674 0
+ XF005B 22.674 0
+ XF005C 22.674 0
+C ------------------------------------------------------------------------------
+C REATTORI
+C ------------------------------------------------------------------------------
+ XYZ005XYZ004 7.9E-4 500.0
+ XYZ006XYZ007 7.9E-4 500.0
+ XYZ015XYZ016 7.9E-4 500.0
+C ------------------------------------------------------------------------------
+C CONVERTITORE 12 IMPULSI SUVERETO
+C ------------------------------------------------------------------------------
+ ELESUV .001 0
+ UCCAR UCTD11 1.E0 0
+ UCTD11 1.E0 0
+C ------------------- SNUBBER CIRCUITS ---------------------------------------
+ VDSUVACV0711 5.E3 0.05
+ VDSUVCCV0811 5.E3 0.05
+ VDSUVBCV0911 5.E3 0.05
+ VDSUVACV1011 5.E3 0.05
+ VDSUVCCV1111 5.E3 0.05
+ VDSUVBCV1211 5.E3 0.05
+ VYSUVACV0111 5.E3 0.05
+ VYSUVCCV0211 5.E3 0.05
+ VYSUVBCV0311 5.E3 0.05
+ VYSUVACV0411 5.E3 0.05
+ VYSUVCCV0511 5.E3 0.05
+ VYSUVBCV0611 5.E3 0.05
+C --------- RESISTORI DI ACCOPPIAMENTO VALVOLE -------------------------------
+ POLOSUCV0711 .0100
+ POLOSUCV0911 .0100
+ POLOSUCV1111 .0100
+ MEIO11CV0811 .0100
+ MEIO11CV1011 .0100
+ MEIO11CV1211 .0100
+ MEIO11CV0111 .0100
+ MEIO11CV0311 .0100
+ MEIO11CV0511 .0100
+ ELESUVCV0211 .0100
+ ELESUVCV0411 .0100
+ ELESUVCV0611 .0100
+C ------------------------------------------------------------------------------
+C CONVERTITORE 12 IMPULSI CODRONGIANOS
+C ------------------------------------------------------------------------------
+ UCCAI UCTD21 1.E0 0
+ UCTD21 1.E0 0
+ ELECOD .001 0
+C ------------------- SNUBBER CIRCUITS ---------------------------------------
+ VDCODACV0721 5.E3 0.05
+ VDCODCCV0821 5.E3 0.05
+ VDCODBCV0921 5.E3 0.05
+ VDCODACV1021 5.E3 0.05
+ VDCODCCV1121 5.E3 0.05
+ VDCODBCV1221 5.E3 0.05
+ VYCODACV0121 5.E3 0.05
+ VYCODCCV0221 5.E3 0.05
+ VYCODBCV0321 5.E3 0.05
+ VYCODACV0421 5.E3 0.05
+ VYCODCCV0521 5.E3 0.05
+ VYCODBCV0621 5.E3 0.05
+C --------- RESISTORI DI ACCOPPIAMENTO VALVOLE -------------------------------
+ ELECODCV0721 .0100
+ ELECODCV0921 .0100
+ ELECODCV1121 .0100
+ MEIO21CV0821 .0100
+ MEIO21CV1021 .0100
+ MEIO21CV1221 .0100
+ MEIO21CV0121 .0100
+ MEIO21CV0321 .0100
+ MEIO21CV0521 .0100
+ POLOCOCV0221 .0100
+ POLOCOCV0421 .0100
+ POLOCOCV0621 .0100
+C ------------------------------------------------------------------------------
+C CONVERTITORE 12 IMPULSI LUCCIANA
+C ------------------------------------------------------------------------------
+ UCCAL UCTD31 1.E0 0
+ UCTD31 1.E0 0
+ ELELUC .001 0
+C ------------------- SNUBBER CIRCUITS ---------------------------------------
+ VDLUCACV0731 5.E3 0.05
+ VDLUCCCV0831 5.E3 0.05
+ VDLUCBCV0931 5.E3 0.05
+ VDLUCACV1031 5.E3 0.05
+ VDLUCCCV1131 5.E3 0.05
+ VDLUCBCV1231 5.E3 0.05
+ VYLUCACV0131 5.E3 0.05
+ VYLUCCCV0231 5.E3 0.05
+ VYLUCBCV0331 5.E3 0.05
+ VYLUCACV0431 5.E3 0.05
+ VYLUCCCV0531 5.E3 0.05
+ VYLUCBCV0631 5.E3 0.05
+C --------- RESISTORI DI ACCOPPIAMENTO VALVOLE -------------------------------
+ ELELUCCV0731 .0100
+ ELELUCCV0931 .0100
+ ELELUCCV1131 .0100
+ MEIO31CV0831 .0100
+ MEIO31CV1031 .0100
+ MEIO31CV1231 .0100
+ MEIO31CV0131 .0100
+ MEIO31CV0331 .0100
+ MEIO31CV0531 .0100
+ POLOLUCV0231 .0100
+ POLOLUCV0431 .0100
+ POLOLUCV0631 .0100
+BLANK BRANCH
+C ------------------------------------------------------------------------------
+C SWITCH CARDS
+C ------------------------------------------------------------------------------
+C --------------------- INTERRUTTORI PER L'INIZIALIZZAZIONE ------------------
+C --------------------- Sbarre di commutazione -------------------------------
+ SUVERAXYZ001 -1.000 20.E-3 1
+ SUVERBXYZ002 -1.000 20.E-3 1
+ SUVERCXYZ003 -1.000 20.E-3 1
+ CODROAXYZ009 -1.000 20.E-3 1
+ CODROBXYZ010 -1.000 20.E-3 1
+ CODROCXYZ011 -1.000 20.E-3 1
+ LUCCIAXYZ012 -1.000 20.E-3 1
+ LUCCIBXYZ013 -1.000 20.E-3 1
+ LUCCICXYZ014 -1.000 20.E-3 1
+C --------------------- Linea in c.c. ----------------------------------------
+ XYZ004POLOCO 0.010 50.00 {SW2}
+ XYZ016POLOLU 0.010 50.00 {SW2}
+ POLOSUXYZ006 0.000 50.00 {SW2}
+ XYZ006XYZ008 -1.000 0.000 {SW4}
+C -------------------- INTERRUTTORI DI MISURA PER LA CORRENTE IN LINEA ------
+ DCCODRXYZ005 MEASURING 1
+ XYZ007DCSUVE MEASURING 1
+ DCLUCCXYZ015 MEASURING 1
+C -------------------- INTERRUTTORI DI MISURA PER LA CORRENTE TR ------------
+ SUVERASUVE00 MEASURING 1
+ CODROACODR00 MEASURING 1
+ LUCCIALUCC00 MEASURING 1
+ MISRTCCODROA MEASURING 1
+ MISRTSSUVERA MEASURING 1
+ MISRTLLUCCIA MEASURING 1
+C ----------------------- VALVOLE SUVERETO ----------------------------------
+11VYSUVACV0111 0.0E-6 DS1101 0
+11VYSUVBCV0311 0.0E-6 DS1103 0
+11VYSUVCCV0511 0.0E-6 DS1105 0
+11CV0411VYSUVA 0.0E-6 DS1104 0
+11CV0611VYSUVB 0.0E-6 DS1106 0
+11CV0211VYSUVC 0.0E-6 DS1102 0
+11VDSUVACV0711 0.0E-6 DS1107 0
+11VDSUVBCV0911 0.0E-6 DS1109 0
+11VDSUVCCV1111 0.0E-6 DS1111 0
+11CV1011VDSUVA 0.0E-6 DS1110 0
+11CV1211VDSUVB 0.0E-6 DS1112 0
+11CV0811VDSUVC 0.0E-6 DS1108 0
+C
+C ----------------------- VALVOLE CODRONGIANOS ------------------------------
+11VYCODACV0121 555.5E-6 DS2101 0
+11VYCODBCV0321 555.5E-6 DS2103 0
+11VYCODCCV0521 555.5E-6 DS2105 0
+11CV0421VYCODA 555.5E-6 DS2104 0
+11CV0621VYCODB 555.5E-6 DS2106 0
+11CV0221VYCODC 555.5E-6 DS2102 0
+11VDCODACV0721 555.5E-6 DS2107 0
+11VDCODBCV0921 555.5E-6 DS2109 0
+11VDCODCCV1121 555.5E-6 DS2111 0
+11CV1021VDCODA 555.5E-6 DS2110 0
+11CV1221VDCODB 555.5E-6 DS2112 0
+11CV0821VDCODC 555.5E-6 DS2108 0
+C ----------------------- VALVOLE LUCCIANA ----------------------------------
+11VYLUCACV0131 555.5E-6 DS3101 0
+11VYLUCBCV0331 555.5E-6 DS3103 0
+11VYLUCCCV0531 555.5E-6 DS3105 0
+11CV0431VYLUCA 555.5E-6 DS3104 0
+11CV0631VYLUCB 555.5E-6 DS3106 0
+11CV0231VYLUCC 555.5E-6 DS3102 0
+11VDLUCACV0731 555.5E-6 DS3107 0
+11VDLUCBCV0931 555.5E-6 DS3109 0
+11VDLUCCCV1131 555.5E-6 DS3111 0
+11CV1031VDLUCA 555.5E-6 DS3110 0
+11CV1231VDLUCB 555.5E-6 DS3112 0
+11CV0831VDLUCC 555.5E-6 DS3108 0
+BLANK SWITCH
+C ------------------------------------------------------------------------------
+C SOURCE CARDS
+C ------------------------------------------------------------------------------
+C --------------- SORGENTI PER L'INIZIALIZZAZIONE ----------------------------
+C --------------- Sbarre di commutazione -------------------------------------
+14XYZ001 1 327.69E3 50. +22. 0.0 -1
+14XYZ002 1 327.69E3 50. -98. 0.0 -1
+14XYZ003 1 327.69E3 50. -218. 0.0 -1
+14XYZ009 1 328.57E3 50. -20.0 0.0 -1
+14XYZ010 1 328.57E3 50. -140. 0.0 -1
+14XYZ011 1 328.57E3 50. +100. 0.0 -1
+14XYZ012 1 74.10E3 50. -20.0 0.0 -1
+14XYZ013 1 74.10E3 50. -140. 0.0 -1
+14XYZ014 1 74.10E3 50. +100. 0.0 -1
+C --------------- linea in c.c. ----------------------------------------------
+14XYZ004-1 -750. 0.001 0.0 0.0 {I1} -1 0.015
+12POLOCO-1 750. 0.010 0.0 {I2} 0.0 0.015
+14XYZ016-1 -250. 0.001 0.0 0.0 {I1} -1 0.015
+12POLOLU-1 250. 0.010 0.0 {I2} 0.0 0.015
+14XYZ008 1 200.E3 0.001 0.0 0.0 {S3} -1 0.015
+C --------------- PASSAGGIO ANGOLO DI INNESCO --------------------------------
+60UCCAR -1 10.
+60UCCAI -1 10.
+60UCCAL -1 10.
+C --------------- SORGENTI RETI C.A. -----------------------------------------
+C < n 1><>< Ampl. >< Freq. ><Phase/T0>< A1 >< T1 >< TSTART >< TSTOP >
+14FONTCA 0 323000. 50. -22. -1. 10.
+14FONTCB 0 323000. 50. -142. -1. 10.
+14FONTCC 0 323000. 50. 98. -1. 10.
+14FONTSA 0 327690. 50. 22.5 -1. 10.
+14FONTSB 0 327690. 50. -97.5 -1. 10.
+14FONTSC 0 327690. 50. 142.5 -1. 10.
+14FONTLA 0 70266. 50. 22.5 -1. 10.
+14FONTLB 0 70266. 50. -97.5 -1. 10.
+14FONTLC 0 70266. 50. 142.5 -1. 10.
+BLANK SOURCE
+ SUVERASUVERBSUVERCCODROACODROBCODROCDCSUVEDCCODRDCLUCCLUCCIALUCCIBLUCCIC
diff --git a/benchmarks/test_001.dat b/benchmarks/test_001.dat
new file mode 100644
index 0000000..cca68af
--- /dev/null
+++ b/benchmarks/test_001.dat
@@ -0,0 +1,33 @@
+begin new data case
+c ..................................................figure 3.10(b).............:
+c Energization of an RL load :
+c ----dt<---tmax...............................................................:
+ 50.e-6 50.e-3
+c -Iprnt<--Iplot<-Idoubl<-KssOut<-MaxOut <---Icat :
+ 15 1 0 0 0 0
+c :
+c Circuit data.................................................................:
+c Bus-->Bus-->Bus-->Bus--><----R<----L<----C :
+ bus13 22.61 19.72
+blank end of circuit data.......................................................
+c :
+c switch data..................................................................:
+c Bus-->Bus--><---Tclose<----Topen<-------Ie :
+ src load 1.e-3 9999. 0.0
+blank End of switch data........................................................
+c :
+c source data..................................................................:
+c Bus--><I<Amplitude<Frequency<--TO:Phi0<---0=Phi0<-Ignore-><---Tstart<----Tstop
+14 src 56.34 50. 0 0.0 -1. 9999.
+blank end of source data
+c nodal output request data.....................................................
+c Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->
+ src bus13
+blank End of output requests....................................................
+c
+c plot request data.............................................................
+ 2Figure 3.10(c) 3.10(d)
+ 194 5. 0.0 50. -4. 4.src bus13 ener 200MVA.95pfKAmps
+ 144 5. 0.0 50. bus13 ener 200MVA.95pfKVolts
+blank End of Plot Request Data..................................................
+blank End of All Cases.......................................................... \ No newline at end of file
diff --git a/benchmarks/test_001.dat~ b/benchmarks/test_001.dat~
new file mode 100644
index 0000000..ab76af7
--- /dev/null
+++ b/benchmarks/test_001.dat~
@@ -0,0 +1,16 @@
+begin new data case
+ 200.e-6 50.e-3
+ 25 1 1 0 0 0 0
+c Bus-->Bus-->Bus-->Bus--><----R<----L<----C 0
+$vintage, 0
+00 load 1.e0 1.e0 1.e0 0
+c blank End of circuit data :
+c src load 1.e-3 9999. 0 1
+c blank End of switch data :
+c 14src 1. 60. 0 0. -1. 9999.
+c blank End of source data :
+c src load
+c blank End of output requests :
+c 194 5. 0.0 50. -4. 4.src load RL Energization Amps
+c blank End of Plot Request Data :
+c blank End of All Cases : \ No newline at end of file
diff --git a/benchmarks/test_002.dat b/benchmarks/test_002.dat
new file mode 100644
index 0000000..d281712
--- /dev/null
+++ b/benchmarks/test_002.dat
@@ -0,0 +1,4 @@
+begin new data case
+ 50.e-6 50.e-3
+ 15 1 0 0 0 0
+blank
diff --git a/benchmarks/test_002.dat~ b/benchmarks/test_002.dat~
new file mode 100644
index 0000000..bdf7879
--- /dev/null
+++ b/benchmarks/test_002.dat~
@@ -0,0 +1,32 @@
+begin new data case 1
+c ..................................................figure 3.10(b).............:
+c Energization of an RL load :
+c ----dt<---tmax...............................................................:
+ 50.e-6 50.e-3 1
+c -Iprnt<--Iplot<-Idoubl<-KssOut<-MaxOut <---Icat :
+ 15 1 0 0 0 0 1
+c :
+c Circuit data.................................................................:
+c Bus-->Bus-->Bus-->Bus--><----R<----L<----C :
+ bus13 22.61 19.72 1
+blank End of circuit data.......................................................
+c :
+c switch data..................................................................:
+c Bus-->Bus--><---Tclose<----Topen<-------Ie :
+ src load 1.e-3 9999. 0 1
+blank End of switch data........................................................
+c :
+c source data..................................................................:
+c Bus--><I<Amplitude<Frequency<--TO:Phi0<---0=Phi0<-Ignore-><---Tstart<----Tstop
+14src 56.34 60. 0 0. -1. 9999.
+blank End of source data 1
+c nodal output request data....................................................1
+c Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->Bus-->
+ src bus13 1
+blank End of output requests....................................................
+c
+c plot request data.............................................................
+ 2Figure 3.10(c) 3.10(d) 1
+ 194 5. 0.0 50. -4. 4.src bus13 ener 200MVA.95pfKAmps 1
+blank End of Plot Request Data..................................................
+blank End of All Cases.......................................................... \ No newline at end of file
diff --git a/documents/from BPA/EMTP Application Guide.pdf b/documents/from BPA/EMTP Application Guide.pdf
new file mode 100644
index 0000000..29817ce
--- /dev/null
+++ b/documents/from BPA/EMTP Application Guide.pdf
Binary files differ
diff --git a/documents/from BPA/EMTP Rule Book.pdf b/documents/from BPA/EMTP Rule Book.pdf
new file mode 100644
index 0000000..653c0c3
--- /dev/null
+++ b/documents/from BPA/EMTP Rule Book.pdf
Binary files differ
diff --git a/documents/from BPA/EMTP Workbook.pdf b/documents/from BPA/EMTP Workbook.pdf
new file mode 100644
index 0000000..895eb06
--- /dev/null
+++ b/documents/from BPA/EMTP Workbook.pdf
Binary files differ
diff --git a/documents/from BPA/readme.txt b/documents/from BPA/readme.txt
new file mode 100644
index 0000000..cfbb833
--- /dev/null
+++ b/documents/from BPA/readme.txt
@@ -0,0 +1 @@
+These files were obtained from BPA under FOIA \ No newline at end of file
diff --git a/documents/other/EL-4651-V2.pdf b/documents/other/EL-4651-V2.pdf
new file mode 100644
index 0000000..0056825
--- /dev/null
+++ b/documents/other/EL-4651-V2.pdf
Binary files differ
diff --git a/documents/other/EL-4651.pdf b/documents/other/EL-4651.pdf
new file mode 100644
index 0000000..e30dfd9
--- /dev/null
+++ b/documents/other/EL-4651.pdf
Binary files differ
diff --git a/documents/other/EMTPTB.PDF b/documents/other/EMTPTB.PDF
new file mode 100644
index 0000000..db7e893
--- /dev/null
+++ b/documents/other/EMTPTB.PDF
Binary files differ
diff --git a/documents/other/readme.txt b/documents/other/readme.txt
new file mode 100644
index 0000000..c97b6f4
--- /dev/null
+++ b/documents/other/readme.txt
@@ -0,0 +1 @@
+These files were not from BPA via FOIA. These are files that I found over the internet and thought would be useful to include in the project.
diff --git a/includes/algebra.hpp b/includes/algebra.hpp
new file mode 100644
index 0000000..d16c61b
--- /dev/null
+++ b/includes/algebra.hpp
@@ -0,0 +1,64 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file algebra.hpp
+
+#ifndef _ALGEBRA_HPP
+#define _ALGEBRA_HPP
+
+// System includes.
+
+#include <iostream>
+#include <iomanip>
+#include <cmath>
+
+// Local includes.
+
+#include "blkcom.hpp"
+#include "utilities.hpp"
+#include "movecopy.hpp"
+
+namespace algebra {
+
+ bool cdivz(std::vector<double> &, \
+ std::vector<double> &, \
+ const double &, \
+ const double &, \
+ const double &, \
+ const double &, \
+ const long int &);
+ bool cmultz(std::vector<double> &, \
+ std::vector<double> &, \
+ const double &, \
+ const double &, \
+ const double &, \
+ const double &, \
+ const long int &);
+ bool trgwnd(const double &, double *);
+ bool addmxd(std::vector<double> &, \
+ const double &, \
+ std::vector<double> &, \
+ const size_t &);
+ bool multmx(std::vector<double> &, \
+ std::vector<double> &, \
+ std::vector<double> &, \
+ std::vector<double> &, \
+ const size_t &);
+ bool mult(std::vector<double> &, \
+ std::vector<double> &, \
+ std::vector<double> &, \
+ const size_t &, \
+ long int &);
+ void dgelg(std::vector<double> &, \
+ std::vector<double> &, \
+ const size_t &, \
+ const size_t &, \
+ const float &, \
+ long int &);
+ void matmul(float [ 3 ][ 3 ], float [ 3 ][ 3 ]);
+ void matvec(float [ 3 ][ 3 ], float [ 15 ]);
+
+}
+
+#endif // _ALGEBRA_HPP
+
+// end of file algebra.hpp
diff --git a/includes/blkcom.hpp b/includes/blkcom.hpp
new file mode 100644
index 0000000..b5fed96
--- /dev/null
+++ b/includes/blkcom.hpp
@@ -0,0 +1,260 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file blkcom.hpp
+
+#ifndef _BLKCOM_HPP
+#define _BLKCOM_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <fstream>
+#include <ostream>
+#include <sstream>
+#include <cstdlib>
+#include <cstdint>
+#include <cinttypes>
+#include <vector>
+
+//#include "volt45.hpp"
+
+#define BLANK " "
+
+namespace comthl {
+
+ extern int nSwTpe;
+ //
+ extern double nAngTpe;
+
+}
+
+namespace comld {
+
+ extern int nNewTAC;
+
+}
+
+namespace blkcom {
+
+ // Structures.
+ struct tagMonCar {
+ long int m_nKnt; // moncar(1)
+ long int m_nKBase; // moncar(2)
+ long int m_nLTDelt; // moncar(3)
+ long int m_nISW; // moncar(4)
+ long int m_nIDist; // moncar(5)
+ long int m_nITest; // moncar(6)
+ long int m_nUserSST; // moncar(7)
+ long int m_nJSeedR; // moncar(8)
+ long int m_nKLoaEP; // moncar(9)
+ void *m_pMTape; // moncar(10)
+ //
+ long int m_nISize; // moncar(24)
+ long int m_nRsize; // moncar(27)
+ //
+ long int m_nCSize; // moncar(29)
+ //
+ long int m_nKiTACs; // moncar(32)
+ //
+ long int m_nLSwtch; // moncar(61)
+ };
+
+ typedef struct tagMonCar tMonCar;
+
+ struct tagIPrsOv {
+ int m_nN13; // position 1
+ int m_nIPoint; // position 35
+ union {
+ int m_nIUpper; // position 36
+ int m_nLocZ11;
+ };
+ int m_nNMAuto; // position 39
+ };
+
+ typedef struct tagIPrsOv tIPrsOv;
+
+ struct tagStat {
+ long int m_nBus;
+ long int m_nBranch;
+ long int m_nData;
+ long int m_nExct;
+ long int m_nYMat;
+ long int m_nSwitch;
+ long int m_nSize7;
+ long int m_nPast;
+ long int m_nNOnL;
+ long int m_nChar;
+ long int m_nSMOut;
+ long int m_nSize12;
+ long int m_nFDep;
+ long int m_nWT;
+ long int m_nTails;
+ long int m_nIMass;
+ long int m_nSyn;
+ long int m_nMaxPE;
+ long int m_nTACST;
+ long int m_nFSem;
+ long int m_nFD;
+ long int m_nHist;
+ long int m_nSize23;
+ long int m_nComp;
+ long int m_nSPCum;
+ long int m_nSize26;
+ long int m_nSize27;
+ long int m_nSize28;
+ long int m_nTLabl;
+ } __attribute__ ((packed));
+
+ typedef struct tagStat tStat;
+
+ // Variables
+ extern char cCSepar;
+ //
+ extern void *pIAlter;
+ extern void *pIDistX;
+ extern void *pInEcho;
+ extern void *pKFile6;
+ extern void *pLFiles[ 24 ];
+ extern void *pLFilesSave[ 24 ];
+ extern void *pMFilesSave[ 24 ];
+ //
+ extern long int nChain;
+ extern long int nEnerg;
+ extern long int nIAdd;
+ extern long int nIAverg;
+ extern long int nIBr;
+ extern long int nICat;
+ extern long int nIFDep;
+ extern long int nIFDep2;
+ extern long int nIFSem;
+ extern long int nIFX;
+ extern long int nIndStp;
+ extern long int nINOnL;
+ extern long int nIofbnd;
+ extern long int nIoffd;
+ extern long int nIofgnd;
+ extern long int nIPlot;
+ extern long int nIsPlot;
+ extern long int nIsPrin;
+ extern long int nIprsUp;
+ extern long int nIPunch;
+ extern long int nIStep;
+ extern long int nIt;
+ extern long int nIt1;
+ extern long int nIt2;
+ extern long int nIType;
+ extern long int nJFLSOS;
+ extern long int nJST;
+ extern long int nJST1;
+ extern long int nKPartB;
+ extern long int nLBrnch;
+ extern long int nLBus;
+ extern long int nKanal;
+ extern long int nKBurro;
+ extern long int nKCount;
+ extern long int nKill;
+ extern long int nKol132;
+ extern long int nKolBeg;
+ extern long int nKSwtch;
+ extern long int nKTab;
+ extern long int nKTRef;
+ extern long int nKWTSpy;
+ extern long int nLastOV;
+ extern long int nLHist;
+ extern long int nLLBuff;
+ extern long int nLTLabl;
+ extern long int nM4Plot;
+ extern long int nMax99m;
+ extern long int nMaxBus;
+ extern long int nMaxZNO;
+ extern long int nMemSav;
+ extern long int nMolDat;
+ extern long int nModOut;
+ extern long int nNComp;
+ extern long int nNFrFld;
+ extern long int nNRight;
+ extern long int nNSTACS;
+ extern long int nNum99;
+ extern long int nNumDCD;
+ extern long int nNumOut;
+ extern long int nNumSM;
+ extern long int nNumUM;
+ extern long int nNWord1;
+ extern long int nNWord2;
+ extern long int nNTCSex;
+ extern long int nNOutPR;
+ extern long int nTot;
+ //
+ extern long int pIpnTV[ 11 ];
+ extern long int pIprsOV[ 39 ];
+ extern long int pLoopSS[ 13 ];
+ extern long int pKPrChg[ 6 ];
+ extern long int pKTRLSW[ 8 ];
+ extern long int pNByte[ 6 ];
+ extern long int pVoltBC[ 50 ];
+ //
+ extern double nAIncr;
+ extern double nAngle;
+ extern double nCI1;
+ extern double nCK1;
+ extern double nCOpt;
+ extern double nDegMin;
+ extern double nDegMax;
+ extern double nDelta2;
+ extern double nDeltaT;
+ extern double nEpsilon;
+ extern double nEpStop;
+ extern double nEpsZNo;
+ extern double nEpWarn;
+ extern double nFMaxFS;
+ extern double nOmega;
+ extern double nOneHaf;
+ extern double nSglFir;
+ extern double nStatFR;
+ extern double nT;
+ extern double nTEnerg;
+ extern double nTenM3;
+ extern double nTenM6;
+ extern double nTMax;
+ extern double nTolMat;
+ extern double nUnity;
+ extern double nXMaxMX;
+ extern double nXOpt;
+ //
+ extern double pBegMax[ 6 ];
+ extern double pPeakND[ 3 ];
+ extern double pZNoLim[ 2 ];
+ //
+ extern std::vector<long int> sLStat;
+ //
+ extern std::vector<double> sFLStat;
+ //
+ extern std::string sBlank;
+ extern std::string sBranch;
+ extern std::string sBus1;
+ extern std::string sBus2;
+ extern std::string sBus3;
+ extern std::string sBus4;
+ extern std::string sBus5;
+ extern std::string sBus6;
+ extern std::string sChCont;
+ extern std::string sChCopy;
+ extern std::string sCopy;
+ extern std::string sTerra;
+ extern std::string sTexCol;
+ extern std::string sTrash;
+ extern std::string sUserID;
+ extern std::string pDate1[ 2 ];
+ extern std::string pTClock[ 2 ];
+ extern std::string pTextA6[ 15 ];
+ //
+ extern std::stringstream sABuff;
+ //
+ extern tMonCar sMonCar;
+ extern tStat *pSStat;
+
+}
+
+#endif // _BLKCOM_HPP
+
+// end of file blkcom.hpp
diff --git a/includes/comlock.hpp b/includes/comlock.hpp
new file mode 100644
index 0000000..d5b7d16
--- /dev/null
+++ b/includes/comlock.hpp
@@ -0,0 +1,22 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file comlock.hpp
+
+#ifndef _COMLOCK_HPP
+#define _COMLOCK_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <cstddef>
+#include <string>
+#include <vector>
+
+namespace comlock {
+
+ extern std::string pLocker[ 2 ];
+
+}
+
+#endif // _COMLOCK_HPP
+
+// end of file comlock.hpp
diff --git a/includes/comlock.hpp~ b/includes/comlock.hpp~
new file mode 100644
index 0000000..e1014fa
--- /dev/null
+++ b/includes/comlock.hpp~
@@ -0,0 +1,21 @@
+//-*- mode: c++; indent-tabs-mode-nil; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file comlock.hpp
+
+#ifndef _COMLOCK_HPP
+#define _COMLOCK_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <cstddef>
+#include <vector>
+
+namespace comlock {
+
+ extern int pLocker[ 2 ];
+
+}
+
+#endif // _COMLOCK_HPP
+
+// end of file comlock.hpp
diff --git a/includes/datain.hpp b/includes/datain.hpp
new file mode 100644
index 0000000..1fd3741
--- /dev/null
+++ b/includes/datain.hpp
@@ -0,0 +1,36 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file datain.hpp
+
+#ifndef _DATAIN_HPP
+#define _DATAIN_HPP
+
+// System includes.
+
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+#include <string>
+
+// Local includes.
+
+#include "utilities.hpp"
+#include "blkcom.hpp"
+//#include "labcom.hpp"
+#include "dekspy.hpp"
+#include "over20.hpp"
+#include "linemodel.hpp"
+#include "freedom.hpp"
+#include "movecopy.hpp"
+#include "strcom.hpp"
+#include "time.hpp"
+
+namespace datain {
+
+ void datain (void);
+
+}
+
+#endif // _DATAIN_HPP
+
+// end of file datain.hpp
diff --git a/includes/dekplt.hpp b/includes/dekplt.hpp
new file mode 100644
index 0000000..378442b
--- /dev/null
+++ b/includes/dekplt.hpp
@@ -0,0 +1,381 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file dekplt.hpp
+
+#ifndef _DEKPLT_HPP
+#define _DEKPLT_HPP
+
+#include <iostream>
+
+namespace dekplt {
+
+ // Structures.
+ struct tagFVCom {
+ double m_nVMin;
+ double m_nVMax;
+ double m_nHMin;
+ double m_nHMax;
+ double m_nHA;
+ double m_nTAxisL;
+ double m_nTolrce;
+ double m_nHTax;
+ double m_nXTit;
+ double m_nYTit;
+ double m_nSizTit;
+ double m_nXSuper;
+ double m_nYSuper;
+ double m_nSizSup;
+ double m_nFLine;
+ double m_nSizID;
+ double m_nXID;
+ double m_nYID;
+ double m_nFact;
+ double m_nDXGrd1;
+ double m_nDYGrd1;
+ double m_nDXGrd2;
+ double m_nDYGrd2;
+ double m_nFill1;
+ double m_nFill2;
+ double m_nVS;
+ double m_nVL;
+ double m_nVH;
+ double m_nPapMax;
+ double m_nTimBeg;
+ double m_nTimEnd;
+ double m_nFHTax;
+ double m_nFXSup;
+ double m_nFYSup;
+ double m_nFXTit;
+ double m_nFYTit;
+ double m_nFXID;
+ double m_nFYID;
+ double m_nFTCarr;
+ double m_nVAxisL;
+ double m_nFXNumV;
+ double m_nFXNumH;
+ double m_FVXAxtt;
+ double m_FXVert;
+ double m_nFSymb;
+ double m_nPapLim;
+ };
+
+ typedef struct tagFVCom tFVCom;
+
+ struct tagIVCom {
+ int m_nKlevl;
+ int m_nKextr;
+ int m_nIHS;
+ int m_nLu7Plt;
+ int m_nIprsrt;
+ int m_nLimCol;
+ int m_nLinePR;
+ int m_nIBaud;
+ int m_nLTek;
+ int m_nNumTit;
+ int m_nMaxSym;
+ int m_nMTit;
+ int m_nMaxISX;
+ int m_nMaxISY;
+ int m_nGrid1;
+ int m_nGrid2;
+ int m_nMSuper;
+ int m_nMid;
+ int m_nMLine;
+ int m_nCut1;
+ int m_nCut2;
+ int m_nSmPlt;
+ int m_nLSymb;
+ int m_nXMax;
+ int m_nYMax;
+ int m_nLChId;
+ int m_nXInch;
+ int m_nYInch;
+ int m_nXOff;
+ int m_nYOff;
+ int m_nLook;
+ int m_nLChSup;
+ int m_nLChTit;
+ int m_nLChXax;
+ int m_nLCHYax;
+ int m_nITerm;
+ int m_nLTic;
+ int m_nIzTit;
+ int m_nIZGr1;
+ int m_nIZGr2;
+ int m_nLdShg1;
+ int m_nLdShg2;
+ int m_nIZXax;
+ int m_nIZYax;
+ int m_nXId6;
+ int m_nYId6;
+ int m_nXEnd;
+ int m_nYEnd;
+ int m_nIZId;
+ int m_nXVern;
+ int m_nIChRef;
+ int m_nIChEnd;
+ int m_nInchPx;
+ int m_nInchPy;
+ int m_nInWait;
+ int m_nNoLabl;
+ int m_nLChFil;
+ int m_nLChLim;
+ int m_nMu6Std;
+ };
+
+ typedef struct tagIVCom tIVCom;
+
+ struct tagANPLT {
+ char m_pChoice[ 8 ];
+ char m_pStop[ 8 ];
+ char m_pPurge[ 8 ];
+ char m_pOut[ 8 ];
+ char m_pHelp[ 8 ];
+ char m_pSmooth[ 8 ];
+ char m_pSize[ 8 ];
+ char m_pShow[ 8 ];
+ char m_pLineZZ[ 8 ];
+ char m_pPhoto[ 8 ];
+ char m_pRepeat[ 8 ];
+ char m_pFlush[ 8 ];
+ char m_pPlayBA[ 8 ];
+ char m_pPen[ 8 ];
+ char m_pMultiP[ 8 ];
+ char m_pOffset[ 8 ];
+ char m_pLimits[ 8 ];
+ char m_pDebug[ 8 ];
+ char m_pTEK[ 8 ];
+ char m_pStack[ 8 ];
+ char m_pPrintE[ 8 ];
+ char m_pMetric[ 8 ];
+ char m_pAllTim[ 8 ];
+ char m_pColumn[ 8 ];
+ char m_pSetCol[ 8 ];
+ char m_pLonger[ 8 ];
+ char m_pAverag[ 8 ];
+ char m_pInner[ 8 ];
+ char m_pRescal[ 8 ];
+ char m_pLastPL[ 8 ];
+ char m_pBatch[ 8 ];
+ char m_pPunch[ 8 ];
+ char m_pExtrem[ 8 ];
+ char m_pLevel[ 8 ];
+ char m_pNoPlot[ 8 ];
+ char m_pMessag[ 8 ];
+ char m_pEnd[ 8 ];
+ char m_pTimeSP[ 8 ];
+ char m_pLabel[ 8 ];
+ char m_pTimeUN[ 8 ];
+ char m_pCursor[ 8 ];
+ char m_pXYPlot[ 8 ];
+ char m_pSlope[ 8 ];
+ char m_pBack[ 8 ];
+ char m_pReFile[ 8 ];
+ char m_pTEXBlk[ 8 ];
+ char m_pSetDat[ 8 ];
+ };
+
+ typedef struct tagANPLT tANPLT;
+
+ // Variables.
+ extern char pBBus[ 300 ];
+ extern char pBusLst[ 1000 ];
+ //
+ extern int nIBaud;
+ extern int nIBrnch;
+ extern int nIBsOut;
+ extern int nICHEnd;
+ extern int nICHRef;
+ extern int nICP;
+ extern int nICurse;
+ extern int nIHS;
+ extern int nInchPX;
+ extern int nInchPY;
+ extern int nInd1;
+ extern int nIndExp;
+ extern int nInWait;
+ extern int nIPrsrt;
+ extern int nITerm;
+ extern int nIZgr1;
+ extern int nIZgr2;
+ extern int nIZid;
+ extern int nZtit;
+ extern int nIzxax;
+ extern int nIzyax;
+ extern int nL4Plot;
+ extern int nLchfil;
+ extern int nLchid;
+ extern int nLchlim;
+ extern int nLchsup;
+ extern int nLchtit;
+ extern int nLchxax;
+ extern int nLchyax;
+ extern int nLdshg1;
+ extern int nLdshg2;
+ extern int nLimCol;
+ extern int nLimFix;
+ extern int nLook;
+ extern int nLSymb;
+ extern int nLTic;
+ extern int nLu7Plt;
+ extern int nLinePR;
+ extern int nLTek;
+ extern int nMaxEv;
+ extern int nMaxEw;
+ extern int nMaxIp;
+ extern int nMaxIsx;
+ extern int nMaxIsy;
+ extern int nMaxSym;
+ extern int nMFake;
+ extern int nMGrid1;
+ extern int nMGrid2;
+ extern int nMid;
+ extern int nMLine;
+ extern int nMSuper;
+ extern int nMTit;
+ extern int nMu6Sav;
+ extern int nMu6Std;
+ extern int nMxypl;
+ extern int nNamVar;
+ extern int nNc;
+ extern int nChSup;
+ extern int nChVer;
+ extern int nCut;
+ extern int nCut1;
+ extern int nCut2;
+ extern int nNewFil;
+ extern int nNoLabl;
+ extern int nSmplt;
+ extern int nNT2;
+ extern int nNumBrn;
+ extern int nNumFlt;
+ extern int nNumNVO;
+ extern int nNumOut;
+ extern int nNumRaw;
+ extern int nNumTek;
+ extern int nNumTit;
+ extern int nV;
+ extern int nXEnd;
+ extern int nXId6;
+ extern int nXInch;
+ extern int nXMax;
+ extern int nXOff;
+ extern int nXVern;
+ extern int nYEnd;
+ extern int nYId6;
+ extern int nYInch;
+ extern int nYMax;
+ extern int nYOff;
+ extern int pLabrtm[ 20 ];
+ extern int pMCurve[ 20 ];
+ extern int pMLevel[ 20 ];
+ extern int pMMM[ 20 ];
+ extern int nMPlot[ 20 ];
+ extern int pMStart[ 20 ];
+ extern int pMSymbT[ 20 ];
+ extern int pNumPts[ 20 ];
+ //
+ extern double nDX;
+ extern double nDXGrd1;
+ extern double nDXGrd2;
+ extern double nDY;
+ extern double nDYGrd1;
+ extern double nDYGrd2;
+ extern double nEvnByt;
+ extern double nFact;
+ extern double nFHTax;
+ extern double nFill;
+ extern double nFill1;
+ extern double nFill2;
+ extern double nFinFin;
+ extern double nFLine;
+ extern double nFSymb;
+ extern double nFTCarr;
+ extern double nFVAxtt;
+ extern double nFXId;
+ extern double nFXNumH;
+ extern double nFXNumV;
+ extern double nFXSup;
+ extern double nFXTit;
+ extern double nFXVert;
+ extern double nFYId;
+ extern double nFYSup;
+ extern double nFYTit;
+ extern double nGMax;
+ extern double nGMin;
+ extern double nHA;
+ extern double nHMax;
+ extern double nHMin;
+ extern double nHPI;
+ extern double nHTax;
+ extern double nPapLim;
+ extern double nPapMax;
+ extern double nSizID;
+ extern double nSizSup;
+ extern double nSizTit;
+ extern double nTAxisL;
+ extern double nTimeBeg;
+ extern double nTimeEnd;
+ extern double nTMult;
+ extern double nTolrce;
+ extern double nTStep;
+ extern double nVaxIsl;
+ extern double nVH;
+ extern double nVL;
+ extern double nVMax;
+ extern double nVMaxR;
+ extern double nVMin;
+ extern double nVMinR;
+ extern double nVS;
+ extern double nXId;
+ extern double nXSuper;
+ extern double nXTit;
+ extern double nYId;
+ extern double nYSuper;
+ extern double nYTit;
+ extern double pAAA[ 20 ];
+ extern double pBBB[ 20 ];
+ extern double pBX[ 150 ];
+ extern double pDatePL[ 2 ];
+ extern double pDYOld[ 20 ];
+ extern double pEV[ 15000 ];
+ extern double pEW[ 15000 ];
+ extern double pFVCom[ 50 ];
+ extern double pFXRef[ 25 ];
+ extern double pFYRef[ 25 ];
+ extern double pTClop[ 2 ];
+ extern double pTTLev[ 20 ];
+ extern double pTTMax[ 20 ];
+ extern double pTTMin[ 20 ];
+ extern double pYLevel[ 20 ];
+ extern double pYYMax[ 20 ];
+ extern double pYYMin[ 20 ];
+ //
+ extern std::string sFilNam;
+ extern std::string sAlpha;
+ extern std::string sBuffIn;
+ extern std::string sVertL;
+ extern std::string sHeadL;
+ extern std::string sXYTitl;
+ extern std::string sTextD1;
+ extern std::string sTextD2;
+ extern std::string sCurren;
+ extern std::string sVoltag;
+ extern std::string sBrClas;
+ extern std::string sDate;
+ extern std::string sTime;
+ extern std::string sANSI;
+ extern std::string sBuffIn;
+ extern std::string pSlot1[ 20 ];
+ extern std::string pSext[ 6 ];
+ extern std::string pHorzL[ 8 ];
+ extern std::string pIBuff[ 20 ];
+ extern std::string pABuff77[ 10 ];
+ extern std::string pAnPlt[];
+ //
+ extern tFVCom sFVCom;
+ extern tIVCom sIVCom;
+
+}
+
+#endif // _DEKPLT_HPP
diff --git a/includes/dekplt.hpp~ b/includes/dekplt.hpp~
new file mode 100644
index 0000000..7f7596a
--- /dev/null
+++ b/includes/dekplt.hpp~
@@ -0,0 +1,381 @@
+//-*- mode: c++; syntax: c++; indent-tabs-mode-nil; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file dekplt.hpp
+
+#ifndef _DEKPLT_HPP
+#define _DEKPLT_HPP
+
+#include <iostream>
+
+namespace dekplt {
+
+ // Structures.
+ struct tagFVCom {
+ double m_nVMin;
+ double m_nVMax;
+ double m_nHMin;
+ double m_nHMax;
+ double m_nHA;
+ double m_nTAxisL;
+ double m_nTolrce;
+ double m_nHTax;
+ double m_nXTit;
+ double m_nYTit;
+ double m_nSizTit;
+ double m_nXSuper;
+ double m_nYSuper;
+ double m_nSizSup;
+ double m_nFLine;
+ double m_nSizID;
+ double m_nXID;
+ double m_nYID;
+ double m_nFact;
+ double m_nDXGrd1;
+ double m_nDYGrd1;
+ double m_nDXGrd2;
+ double m_nDYGrd2;
+ double m_nFill1;
+ double m_nFill2;
+ double m_nVS;
+ double m_nVL;
+ double m_nVH;
+ double m_nPapMax;
+ double m_nTimBeg;
+ double m_nTimEnd;
+ double m_nFHTax;
+ double m_nFXSup;
+ double m_nFYSup;
+ double m_nFXTit;
+ double m_nFYTit;
+ double m_nFXID;
+ double m_nFYID;
+ double m_nFTCarr;
+ double m_nVAxisL;
+ double m_nFXNumV;
+ double m_nFXNumH;
+ double m_FVXAxtt;
+ double m_FXVert;
+ double m_nFSymb;
+ double m_nPapLim;
+ };
+
+ typedef struct tagFVCom tFVCom;
+
+ struct tagIVCom {
+ int m_nKlevl;
+ int m_nKextr;
+ int m_nIHS;
+ int m_nLu7Plt;
+ int m_nIprsrt;
+ int m_nLimCol;
+ int m_nLinePR;
+ int m_nIBaud;
+ int m_nLTek;
+ int m_nNumTit;
+ int m_nMaxSym;
+ int m_nMTit;
+ int m_nMaxISX;
+ int m_nMaxISY;
+ int m_nGrid1;
+ int m_nGrid2;
+ int m_nMSuper;
+ int m_nMid;
+ int m_nMLine;
+ int m_nCut1;
+ int m_nCut2;
+ int m_nSmPlt;
+ int m_nLSymb;
+ int m_nXMax;
+ int m_nYMax;
+ int m_nLChId;
+ int m_nXInch;
+ int m_nYInch;
+ int m_nXOff;
+ int m_nYOff;
+ int m_nLook;
+ int m_nLChSup;
+ int m_nLChTit;
+ int m_nLChXax;
+ int m_nLCHYax;
+ int m_nITerm;
+ int m_nLTic;
+ int m_nIzTit;
+ int m_nIZGr1;
+ int m_nIZGr2;
+ int m_nLdShg1;
+ int m_nLdShg2;
+ int m_nIZXax;
+ int m_nIZYax;
+ int m_nXId6;
+ int m_nYId6;
+ int m_nXEnd;
+ int m_nYEnd;
+ int m_nIZId;
+ int m_nXVern;
+ int m_nIChRef;
+ int m_nIChEnd;
+ int m_nInchPx;
+ int m_nInchPy;
+ int m_nInWait;
+ int m_nNoLabl;
+ int m_nLChFil;
+ int m_nLChLim;
+ int m_nMu6Std;
+ };
+
+ typedef struct tagIVCom tIVCom;
+
+ struct tagANPLT {
+ char m_pChoice[ 8 ];
+ char m_pStop[ 8 ];
+ char m_pPurge[ 8 ];
+ char m_pOut[ 8 ];
+ char m_pHelp[ 8 ];
+ char m_pSmooth[ 8 ];
+ char m_pSize[ 8 ];
+ char m_pShow[ 8 ];
+ char m_pLineZZ[ 8 ];
+ char m_pPhoto[ 8 ];
+ char m_pRepeat[ 8 ];
+ char m_pFlush[ 8 ];
+ char m_pPlayBA[ 8 ];
+ char m_pPen[ 8 ];
+ char m_pMultiP[ 8 ];
+ char m_pOffset[ 8 ];
+ char m_pLimits[ 8 ];
+ char m_pDebug[ 8 ];
+ char m_pTEK[ 8 ];
+ char m_pStack[ 8 ];
+ char m_pPrintE[ 8 ];
+ char m_pMetric[ 8 ];
+ char m_pAllTim[ 8 ];
+ char m_pColumn[ 8 ];
+ char m_pSetCol[ 8 ];
+ char m_pLonger[ 8 ];
+ char m_pAverag[ 8 ];
+ char m_pInner[ 8 ];
+ char m_pRescal[ 8 ];
+ char m_pLastPL[ 8 ];
+ char m_pBatch[ 8 ];
+ char m_pPunch[ 8 ];
+ char m_pExtrem[ 8 ];
+ char m_pLevel[ 8 ];
+ char m_pNoPlot[ 8 ];
+ char m_pMessag[ 8 ];
+ char m_pEnd[ 8 ];
+ char m_pTimeSP[ 8 ];
+ char m_pLabel[ 8 ];
+ char m_pTimeUN[ 8 ];
+ char m_pCursor[ 8 ];
+ char m_pXYPlot[ 8 ];
+ char m_pSlope[ 8 ];
+ char m_pBack[ 8 ];
+ char m_pReFile[ 8 ];
+ char m_pTEXBlk[ 8 ];
+ char m_pSetDat[ 8 ];
+ };
+
+ typedef struct tagANPLT tANPLT;
+
+ // Variables.
+ extern char pBBus[ 300 ];
+ extern char pBusLst[ 1000 ];
+ //
+ extern int nIBaud;
+ extern int nIBrnch;
+ extern int nIBsOut;
+ extern int nICHEnd;
+ extern int nICHRef;
+ extern int nICP;
+ extern int nICurse;
+ extern int nIHS;
+ extern int nInchPX;
+ extern int nInchPY;
+ extern int nInd1;
+ extern int nIndExp;
+ extern int nInWait;
+ extern int nIPrsrt;
+ extern int nITerm;
+ extern int nIZgr1;
+ extern int nIZgr2;
+ extern int nIZid;
+ extern int nZtit;
+ extern int nIzxax;
+ extern int nIzyax;
+ extern int nL4Plot;
+ extern int nLchfil;
+ extern int nLchid;
+ extern int nLchlim;
+ extern int nLchsup;
+ extern int nLchtit;
+ extern int nLchxax;
+ extern int nLchyax;
+ extern int nLdshg1;
+ extern int nLdshg2;
+ extern int nLimCol;
+ extern int nLimFix;
+ extern int nLook;
+ extern int nLSymb;
+ extern int nLTic;
+ extern int nLu7Plt;
+ extern int nLinePR;
+ extern int nLTek;
+ extern int nMaxEv;
+ extern int nMaxEw;
+ extern int nMaxIp;
+ extern int nMaxIsx;
+ extern int nMaxIsy;
+ extern int nMaxSym;
+ extern int nMFake;
+ extern int nMGrid1;
+ extern int nMGrid2;
+ extern int nMid;
+ extern int nMLine;
+ extern int nMSuper;
+ extern int nMTit;
+ extern int nMu6Sav;
+ extern int nMu6Std;
+ extern int nMxypl;
+ extern int nNamVar;
+ extern int nNc;
+ extern int nChSup;
+ extern int nChVer;
+ extern int nCut;
+ extern int nCut1;
+ extern int nCut2;
+ extern int nNewFil;
+ extern int nNoLabl;
+ extern int nSmplt;
+ extern int nNT2;
+ extern int nNumBrn;
+ extern int nNumFlt;
+ extern int nNumNVO;
+ extern int nNumOut;
+ extern int nNumRaw;
+ extern int nNumTek;
+ extern int nNumTit;
+ extern int nV;
+ extern int nXEnd;
+ extern int nXId6;
+ extern int nXInch;
+ extern int nXMax;
+ extern int nXOff;
+ extern int nXVern;
+ extern int nYEnd;
+ extern int nYId6;
+ extern int nYInch;
+ extern int nYMax;
+ extern int nYOff;
+ extern int pLabrtm[ 20 ];
+ extern int pMCurve[ 20 ];
+ extern int pMLevel[ 20 ];
+ extern int pMMM[ 20 ];
+ extern int nMPlot[ 20 ];
+ extern int pMStart[ 20 ];
+ extern int pMSymbT[ 20 ];
+ extern int pNumPts[ 20 ];
+ //
+ extern double nDX;
+ extern double nDXGrd1;
+ extern double nDXGrd2;
+ extern double nDY;
+ extern double nDYGrd1;
+ extern double nDYGrd2;
+ extern double nEvnByt;
+ extern double nFact;
+ extern double nFHTax;
+ extern double nFill;
+ extern double nFill1;
+ extern double nFill2;
+ extern double nFinFin;
+ extern double nFLine;
+ extern double nFSymb;
+ extern double nFTCarr;
+ extern double nFVAxtt;
+ extern double nFXId;
+ extern double nFXNumH;
+ extern double nFXNumV;
+ extern double nFXSup;
+ extern double nFXTit;
+ extern double nFXVert;
+ extern double nFYId;
+ extern double nFYSup;
+ extern double nFYTit;
+ extern double nGMax;
+ extern double nGMin;
+ extern double nHA;
+ extern double nHMax;
+ extern double nHMin;
+ extern double nHPI;
+ extern double nHTax;
+ extern double nPapLim;
+ extern double nPapMax;
+ extern double nSizID;
+ extern double nSizSup;
+ extern double nSizTit;
+ extern double nTAxisL;
+ extern double nTimeBeg;
+ extern double nTimeEnd;
+ extern double nTMult;
+ extern double nTolrce;
+ extern double nTStep;
+ extern double nVaxIsl;
+ extern double nVH;
+ extern double nVL;
+ extern double nVMax;
+ extern double nVMaxR;
+ extern double nVMin;
+ extern double nVMinR;
+ extern double nVS;
+ extern double nXId;
+ extern double nXSuper;
+ extern double nXTit;
+ extern double nYId;
+ extern double nYSuper;
+ extern double nYTit;
+ extern double pAAA[ 20 ];
+ extern double pBBB[ 20 ];
+ extern double pBX[ 150 ];
+ extern double pDatePL[ 2 ];
+ extern double pDYOld[ 20 ];
+ extern double pEV[ 15000 ];
+ extern double pEW[ 15000 ];
+ extern double pFVCom[ 50 ];
+ extern double pFXRef[ 25 ];
+ extern double pFYRef[ 25 ];
+ extern double pTClop[ 2 ];
+ extern double pTTLev[ 20 ];
+ extern double pTTMax[ 20 ];
+ extern double pTTMin[ 20 ];
+ extern double pYLevel[ 20 ];
+ extern double pYYMax[ 20 ];
+ extern double pYYMin[ 20 ];
+ //
+ extern std::string sFilNam;
+ extern std::string sAlpha;
+ extern std::string sBuffIn;
+ extern std::string sVertL;
+ extern std::string sHeadL;
+ extern std::string sXYTitl;
+ extern std::string sTextD1;
+ extern std::string sTextD2;
+ extern std::string sCurren;
+ extern std::string sVoltag;
+ extern std::string sBrClas;
+ extern std::string sDate;
+ extern std::string sTime;
+ extern std::string sANSI;
+ extern std::string sBuffIn;
+ extern std::string pSlot1[ 20 ];
+ extern std::string pSext[ 6 ];
+ extern std::string pHorzL[ 8 ];
+ extern std::string pIBuff[ 20 ];
+ extern std::string pABuff77[ 10 ];
+ extern std::string pAnPlt[];
+ //
+ extern tFVCom sFVCom;
+ extern tIVCom sIVCom;
+
+}
+
+#endif // _DEKPLT_HPP
diff --git a/includes/dekspy.hpp b/includes/dekspy.hpp
new file mode 100644
index 0000000..f944f67
--- /dev/null
+++ b/includes/dekspy.hpp
@@ -0,0 +1,158 @@
+//-*- mode: c++; indent-tabs-mode-nil; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file dekspy.hpp
+
+#ifndef _DEKSPY_HPP
+#define _DEKSPY_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+#include <string>
+#include <list>
+#include <vector>
+
+extern char *cFilByt;
+extern double *pPltBuf;
+extern double pForByt[ 600 ];
+extern bool bLogVar;
+
+namespace spycom {
+
+ extern void *pMFiles[ 16 ];
+ //
+ extern char cChar1;
+ extern char pByteBuf[ 20 ];
+ extern char pDigit[ 10 ];
+ //
+ extern long int nITExp;
+ extern long int nNumSym;
+ extern long int nJJRoll;
+ extern long int nMaxArg;
+ extern long int nKilPer;
+ extern long int nKFile5;
+ extern long int nKLevel;
+ extern long int nKVerfy;
+ extern long int nJWord;
+ extern long int nIBegCL;
+ extern long int nIEndCL;
+ extern long int nLIdnt1;
+ extern long int nLIdnt2;
+ extern long int nNBreak;
+ extern long int nLinNow;
+ extern long int nLinSPN;
+ extern long int nNumKey;
+ extern long int nIndBuf;
+ extern long int nIndBeg;
+ extern long int nMFlush;
+ extern long int nNewVec;
+ extern long int nMaxFLG;
+ extern long int nKSPSav;
+ extern long int nMemKAR;
+ extern long int nNoBack;
+ extern long int nLSerLC;
+ extern long int nKSerLC;
+ extern long int nKBRSer;
+ extern long int nLockBR;
+ extern long int nKErase;
+ extern long int nKomAdd;
+ extern long int nIprSpy;
+ extern long int nMonitR;
+ extern long int nMonitS;
+ extern long int nKBreak;
+ extern long int nLimBuf;
+ extern long int nKOLOut;
+ extern long int nNexMod;
+ extern long int nNextSN;
+ extern long int nIncHlp;
+ extern long int nKSymbl;
+ extern long int nKopyIt;
+ extern long int nKSlowR;
+ extern long int nKWTSpy;
+ extern long int nNumRMP;
+ extern long int nLUntSP;
+ extern long int nLogVar;
+ extern long int nNumex;
+ //
+ extern long int pIASCII[ 1000 ];
+ extern long int pIndXRP[ 20 ];
+ extern long int pIVec[ 1000 ];
+ extern long int pLabels[ 15];
+ extern long int pKYRamp[ 20 ];
+ extern long int pLocate[ 1000 ];
+ extern long int pKSMSpy[ 3 ];
+ extern long int pNLine[ 1000 ];
+ extern long int pLimArr[ 4 ];
+ extern long int pIMin[ 55 ];
+ extern long int pIMax[ 55 ];
+ extern long int pLocOut[ 55 ];
+ extern long int pIntOut[ 55 ];
+ extern long int pLoopRP[ 20 ];
+ extern long int pN10RMP[ 20 ];
+ extern long int pKonTAC[ 14 ];
+ extern long int pKonAdd[ 14 ];
+ extern long int pKBegTX[ 85 ];
+ extern long int pKar1[ 1 ];
+ extern long int pKar2[ 2 ];
+ //
+ extern double *pFKar1;
+ extern double *pFKar2;
+ extern double *pPltBuf;
+ // equivalence (kar1, fkar1), (kar2, fkar2)
+ extern double nTMinRP;
+ extern double nTMaxRP;
+ extern double nTBreak;
+ extern double nEPSKOn[ 14 ];
+ extern double pFBegRP[ 20 ];
+ extern double pFEndRP[ 20 ];
+ extern double pForByt[ 600 ];
+ extern double pRampCN[ 20 ];
+ extern double pRampSL[ 20 ];
+ extern double pTBegRP[ 20 ];
+ extern double pTEndRP[ 20 ];
+ //
+ extern long int nLimCRD;
+ extern long int nNumCRD;
+ //
+ extern std::vector<long int> sMemRMP;
+}
+
+namespace spyf77 {
+
+ extern char cChar1;
+ extern char pDigit[ 10 ];
+ extern char pCol[ 25 ];
+ extern char pFilExt[ 10 ];
+ //
+ extern std::string sANSW80;
+ extern std::string sBlan80;
+ extern std::string sBroBus;
+ extern std::string sBuff77;
+ extern std::string sBytBuf;
+ extern std::string sBytFnd;
+ extern std::string sOutLin;
+ extern std::string pSymb[ 1000 ];
+ extern std::string sSymbRP[ 20 ];
+ extern std::string sABufSV;
+ extern std::string sJunker;
+ extern std::string pFile6B[ 20 ];
+ extern std::string sProm80;
+ extern std::string pTexPar[ 10 ];
+ extern std::string sSpyCD2;
+ //
+ extern std::stringstream sANSI8;
+ extern std::stringstream sANSI16;
+ extern std::stringstream sANSI32;
+ extern std::stringstream sMFile6;
+ extern std::stringstream sOutSav;
+ extern std::stringstream sHeding;
+ extern std::string pTexSpy[ 1250 ];
+ //
+ extern std::vector<std::string> sSpyKWD;
+ //
+ extern std::vector<std::string> sFile6;
+}
+
+#endif // _DEKSPY_HPP
+
+// end of file dekspy.hpp
diff --git a/includes/emtp.hpp b/includes/emtp.hpp
new file mode 100644
index 0000000..f0f7639
--- /dev/null
+++ b/includes/emtp.hpp
@@ -0,0 +1,75 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file emtp.hpp
+
+#ifndef _EMTP_HPP
+#define _EMTP_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <functional>
+#include <utility>
+
+// Local includes.
+#include "blkcom.hpp"
+#include "dekspy.hpp"
+#include "utilities.hpp"
+#include "datain.hpp"
+
+// Macros.
+#define CHARC "c"
+#define TEXT4 "9"
+#define CHTACS "tacs"
+#define TEXT5 "blank"
+
+namespace emtp {
+
+ // types.
+
+ struct tagWords {
+ std::string sTextAY;
+ std::string sTextAX;
+ size_t mJptr;
+ };
+
+ typedef struct tagWords tWords;
+
+ struct tagRequest {
+ std::string m_sShortName;
+ std::string m_sLongName;
+ int m_nPointer;
+ std::function<void(void)> m_sRequest;
+ };
+
+ typedef struct tagRequest tRequest;
+
+ // Global variables.
+ extern const long int nLL34;
+ extern tWords pWords[];
+ extern std::string sSizesFileName;
+
+ // function prototypes.
+ void ioerr(const long int &);
+ void caterr(const long int &, const long int &);
+ void nextcard(void);
+ void cimage(void);
+ void dummy(void);
+ void tapsav(char *, std::fstream &, const long int &, const long int &);
+ void main10(void);
+ void subr10(void);
+ void namea6(const std::string &, long int *);
+ void tables(void);
+ void csup(const long int &);
+ void erexit(void);
+ void stoptp(void);
+ void setmar(int *);
+ void chrsiz(int *);
+ void setplt(void);
+ void setstd(void);
+ void interp(void);
+
+}
+
+#endif // _EMTP_HPP
+
+// end of file emtp.hpp
diff --git a/includes/emtp.hpp~ b/includes/emtp.hpp~
new file mode 100644
index 0000000..5fb528f
--- /dev/null
+++ b/includes/emtp.hpp~
@@ -0,0 +1,55 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file main00.hpp
+
+#ifndef _MAIN00_HPP
+#define _MAIN00_HPP
+
+// Local includes.
+
+#include "main.hpp"
+
+// Macros.
+
+#define CHARC "c"
+#define TEXT4 "9"
+#define CHTACS "tacs"
+#define TEXT5 "blank"
+
+namespace kwtcom {
+
+ extern int nKWTVAX;
+
+}
+
+namespace emtp {
+
+ // types.
+
+ struct tagWords {
+ std::string sTextAY;
+ std::string sTextAX;
+ size_t mJptr;
+ };
+
+ typedef struct tagWords tWords;
+
+ // Global variables.
+
+ extern const int nLL34;
+ extern tWords pWords[ 24 ];
+
+ // Prototypes.
+ void erexit(void);
+ void stoptp(void);
+ void setmar(int *);
+ void chrsiz(int *);
+ void setplt(void);
+ void setstd(void);
+ void interp(void);
+
+}
+
+#endif // _MAIN00_HPP
+
+// end of file main00.hpp
diff --git a/includes/freedom.hpp b/includes/freedom.hpp
new file mode 100644
index 0000000..83292b4
--- /dev/null
+++ b/includes/freedom.hpp
@@ -0,0 +1,30 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file freedom.hpp
+
+#ifndef _FREEDOM_HPP
+#define _FREEDOM_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <cstdio>
+#include <cstddef>
+#include <cstdint>
+
+#include "blkcom.hpp"
+#include "dekspy.hpp"
+
+namespace freedom {
+
+ template <class T> bool freeName(T &);
+ bool freeIn(const std::string &, int32_t &);
+ bool freeIn(const std::string &, int32_t &, int32_t &);
+ bool freeFix(const std::string &, int32_t &);
+ bool freeOne(double &);
+
+}
+
+#endif // _FREEDOM_HPP
+
+// end of file freedom.hpp
diff --git a/includes/lab02.hpp~ b/includes/lab02.hpp~
new file mode 100644
index 0000000..a1ec164
--- /dev/null
+++ b/includes/lab02.hpp~
@@ -0,0 +1,22 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file labl02.hpp
+
+
+
+namespace com29 {
+#ifndef _LAB29_HPP
+#define _LAB29_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <fstream>
+#include <ostream>
+#include <sstream>
+#include <cstdlib>
+#include <cstdint>
+#include <cinttypes>
+#include <vector>
+
+namespace com29 {
diff --git a/includes/labcom.hpp b/includes/labcom.hpp
new file mode 100644
index 0000000..c62a1b5
--- /dev/null
+++ b/includes/labcom.hpp
@@ -0,0 +1,117 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file labcom.hpp
+
+#ifndef _LABCOM_HPP
+#define _LABCOM_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <cstddef>
+#include <vector>
+
+#include "emtp.hpp"
+
+// Namespaces.
+
+namespace labcom {
+
+ extern char *pKArray;
+ extern char *pNArray;
+ extern char *pSpace;
+ //
+ extern int *pKPSour;
+ extern int *pKSSFrq;
+ //
+ extern size_t *pKode;
+ //
+ extern double *pX;
+ extern double *pYkm;
+ //
+ extern std::vector<int> sIARDUB;
+ extern std::vector<int> sIBSOut;
+ extern std::vector<int> sIModel;
+ extern std::vector<int> sIndHst;
+ extern std::vector<int> sISkip;
+ extern std::vector<int> sISourc;
+ extern std::vector<int> sIWTent;
+ extern std::vector<int> sKBegSw;
+ extern std::vector<int> sKBus;
+ extern std::vector<int> sKDEPSw;
+ extern std::vector<int> sKENTNB;
+ extern std::vector<int> sKM;
+ extern std::vector<int> sKMSwit;
+ extern std::vector<int> sKode;
+ extern std::vector<int> sKodeBR;
+ extern std::vector<int> sKodSem;
+ extern std::vector<int> sKOutVP;
+ extern std::vector<int> sKPos;
+ extern std::vector<int> sKSWTyp;
+ extern std::vector<int> sLastSw;
+ extern std::vector<int> sLength;
+ extern std::vector<int> sMBus;
+ extern std::vector<int> sModSwt;
+ extern std::vector<int> sNameNL;
+ extern std::vector<int> sNBHDSw;
+ extern std::vector<int> sNextSw;
+ extern std::vector<int> sNHist;
+ extern std::vector<int> sNLType;
+ extern std::vector<int> sNOnLAD;
+ extern std::vector<int> sNOnLE;
+ extern std::vector<int> sNOnLK;
+ extern std::vector<int> sNOnLM;
+ //
+ extern std::vector<double> sADelay;
+ extern std::vector<double> sANOnL;
+ extern std::vector<double> sARDUBE;
+ extern std::vector<double> sBNRG;
+ extern std::vector<double> sBValue;
+ extern std::vector<double> sCChar;
+ extern std::vector<double> sCIK;
+ extern std::vector<double> sCI;
+ extern std::vector<double> sCK;
+ extern std::vector<double> sCNVHst;
+ extern std::vector<double> sCOn1;
+ extern std::vector<double> sCOptBR;
+ extern std::vector<double> sCrit;
+ extern std::vector<double> sCurr;
+ extern std::vector<double> sE;
+ extern std::vector<double> sEnergy;
+ extern std::vector<double> sEta;
+ extern std::vector<double> sGSlope;
+ extern std::vector<double> sHSFD;
+ extern std::vector<double> sQFD;
+ extern std::vector<double> sSCOnST;
+ extern std::vector<double> sSemAux;
+ extern std::vector<double> sSPTACS;
+ extern std::vector<double> sStailK;
+ extern std::vector<double> sStailM;
+ extern std::vector<double> sTClose;
+ extern std::vector<double> sTDNS;
+ extern std::vector<double> sTOpen;
+ extern std::vector<double> sVChar;
+ extern std::vector<double> sVecNL1;
+ extern std::vector<double> sVecNL2;
+ extern std::vector<double> sVoltI;
+ extern std::vector<double> sVOnL;
+ extern std::vector<double> sVZero;
+ extern std::vector<double> sWeight;
+ extern std::vector<double> sX;
+ extern std::vector<double> sXK;
+ extern std::vector<double> sXM;
+ extern std::vector<double> sYKM;
+ extern std::vector<double> sXMax;
+ extern std::vector<double> sXOptBR;
+ extern std::vector<double> sZInf;
+
+ //
+ extern std::vector<size_t> sNR;
+ //
+ extern std::vector<std::string> sBus;
+ extern std::vector<std::string> sTexVec;
+
+}
+
+#endif // _LABCOM_HPP
+
+// end of file labcom.hpp
diff --git a/includes/labl02.hpp b/includes/labl02.hpp
new file mode 100644
index 0000000..1112021
--- /dev/null
+++ b/includes/labl02.hpp
@@ -0,0 +1,50 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file labl02.hpp
+
+#ifndef _LABL02_HPP
+#define _LABL02_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <fstream>
+#include <ostream>
+#include <sstream>
+#include <cstdlib>
+#include <cstdint>
+#include <cinttypes>
+#include <vector>
+
+namespace com2 {
+
+ extern int nN1;
+ extern int nN2;
+ extern int nN3;
+ extern int nN4;
+ extern int nLCount;
+ extern int nModel;
+ extern int nL27Dep;
+ extern int nIBR1;
+ extern int nNRecur;
+ extern int nKGroup;
+ extern int nNC4;
+ extern int nNC5;
+ extern int nIFQ;
+ extern int nN13;
+ extern int nIDA;
+ extern int nIFKC;
+ extern int nIDY;
+ extern int nIDM;
+ extern int nIDQ;
+ extern int nIDU;
+ extern int nIDT;
+ extern int nIQ;
+ extern int nNC6;
+ extern int nNC3;
+
+}
+
+#endif // _LABL02_HPP
+
+// end of file labl02.hpp
diff --git a/includes/labl29.hpp b/includes/labl29.hpp
new file mode 100644
index 0000000..0eed3ce
--- /dev/null
+++ b/includes/labl29.hpp
@@ -0,0 +1,48 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file lab29.hpp.hpp
+
+#ifndef _LAB29_HPP
+#define _LAB29_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <fstream>
+#include <ostream>
+#include <sstream>
+#include <cstdlib>
+#include <cstdint>
+#include <cinttypes>
+#include <vector>
+
+namespace com29 {
+
+ // Variables.
+ extern int nLimInc;
+ extern int nIOFArr;
+ extern int nVar;
+ extern int nKey;
+ extern int nMaxo29;
+ //
+ extern double nPer;
+ extern double nXmean1;
+ extern double nXVar1;
+ extern double nStDev1;
+ extern double nVMax;
+
+ // subroutine guts29.
+
+ void guts29(std::string &, \
+ std::vector<int> &, \
+ std::vector<int> &, \
+ int &, \
+ int &, \
+ double &, \
+ std::vector<double> &, \
+ std::vector<double> &, \
+ std::vector<double> &);
+
+#endif // _LAB29_HPP
+
+// end of file lab29.hpp
diff --git a/includes/linemodel.hpp b/includes/linemodel.hpp
new file mode 100644
index 0000000..2042ad7
--- /dev/null
+++ b/includes/linemodel.hpp
@@ -0,0 +1,23 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file linemodel.hpp
+
+#ifndef __LINEMODEL_HPP
+#define __LINEMODEL_HPP
+
+// System includes.
+
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+#include <string>
+
+// Local includes.
+
+namespace linemodel {
+ ;
+};
+
+#endif // __LINEMODEL_HPP
+
+// end of file linemodel.hpp
diff --git a/includes/location.hpp b/includes/location.hpp
new file mode 100644
index 0000000..9ca57a5
--- /dev/null
+++ b/includes/location.hpp
@@ -0,0 +1,27 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file location.hpp
+
+#ifndef _LOCATION_HPP
+#define _LOCATION_HPP
+
+// System includes.
+
+#include <iostream>
+#include <cstdint>
+#include <vector>
+
+#include "blkcom.hpp"
+
+namespace location {
+
+ extern std::vector<size_t> sLocate;
+ //
+ void locatn(void);
+ template <class T> size_t index(T *);
+
+}
+
+#endif // _LOCATION_HPP
+
+// end of file location.hpp
diff --git a/includes/main.hpp b/includes/main.hpp
new file mode 100644
index 0000000..4c8ae34
--- /dev/null
+++ b/includes/main.hpp
@@ -0,0 +1,62 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file main.hpp
+
+#ifndef _MAIN_HPP
+#define _MAIN_HPP
+
+// System includes.
+
+#include <iostream>
+#include <iomanip>
+#include <exception>
+#include <stdexcept>
+#include <fstream>
+#include <sstream>
+#include <string>
+#include <cstdlib>
+#include <ctime>
+#include <cmath>
+#include <functional>
+#include <utility>
+
+// UNIX/Linux specifics.
+#include <unistd.h>
+#include <getopt.h>
+#include <err.h>
+
+// local includes.
+#include "blkcom.hpp"
+#include "labcom.hpp"
+//#include "volt45.hpp"
+#include "datain.hpp"
+#include "emtp.hpp"
+
+#ifdef WITH_OVER1
+#include "over1.hpp"
+#endif
+
+#ifdef WITH_OVER20
+#include "over20.hpp"
+#endif
+
+#ifdef WITH_OVER51
+#include "over51.hpp"
+#endif
+
+#include "newmods.hpp"
+
+//#include "location.hpp"
+//#include "strcom.hpp"
+//#include "movecopy.hpp"
+//#include "time.hpp"
+
+extern int opterr;
+extern int optind;
+extern char *optarg;
+
+int main(int, char *[]);
+
+#endif // _MAIN_HPP
+
+// end of file main.hpp
diff --git a/includes/movecopy.hpp b/includes/movecopy.hpp
new file mode 100644
index 0000000..b1a115b
--- /dev/null
+++ b/includes/movecopy.hpp
@@ -0,0 +1,29 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file movecopy.hpp
+
+#ifndef _MOVECOPY_HPP
+#define _MOVECOPY_HPP
+
+#include <iostream>
+#include <string>
+#include <cstdlib>
+#include <cstdint>
+#include <vector>
+
+// Functions.
+
+namespace movecopy {
+
+ template <class T> size_t copy(const T &, T *, const size_t &);
+ template <class T> size_t move(const T [], T *, const size_t &);
+ template <class T> size_t move0(T *, const size_t &);
+ template <class T> size_t copy(const T &, std::vector<T> &, const size_t &);
+ template <class T> size_t move(const std::vector<T> &, std::vector<T> &, const size_t &);
+ template <class T> size_t move0(std::vector<T> &, const size_t &);
+
+}
+
+#endif // _MOVECOPY_HPP
+
+// end of file movecopy.hpp
diff --git a/includes/newmods.hpp b/includes/newmods.hpp
new file mode 100644
index 0000000..c871e46
--- /dev/null
+++ b/includes/newmods.hpp
@@ -0,0 +1,63 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file newmods.hpp
+
+#ifndef _NEWMODS_HPP
+#define _NEWMODS_HPP
+
+// System includes.
+
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+#include <string>
+#include <cstdint>
+#include <vector>
+
+// Local includes.
+
+#include "blkcom.hpp"
+#include "labcom.hpp"
+#include "emtp.hpp"
+
+// Macros.
+#define NUMLST 28
+#define NUMKEX 7
+
+// Types.
+namespace emtp {
+
+ enum tagJBLTypes {
+ JBLTYPE_NULL = 0x00,
+ JBLTYPE_STRING = 0x01,
+ JBLTYPE_INTEGER = 0x04,
+ JBLTYPE_DOUBLE = 0x08,
+ JBLTYPE_COMPLEX_DOUBLE = 0x10
+ };
+
+ typedef enum tagJBLTypes tJBLTypes;
+
+ struct tagVariable {
+ std::string m_sName;
+ std::string m_sNameSpace;
+ int m_nSize;
+ tJBLTypes m_sType;
+ };
+
+ typedef struct tagVariable tVariable;
+
+ // Global variables.
+
+ extern tVariable pVariables[];
+
+ // Prototypes.
+
+ bool vardim(const std::string &, std::vector<long int> &);
+ bool dimens(std::vector<long int> &, const int &, std::string &, std::string &);
+ bool cleanup(void);
+
+}
+
+#endif // _NEWMODS_HPP
+
+// end of file newmods.hpp
diff --git a/includes/over1.hpp b/includes/over1.hpp
new file mode 100644
index 0000000..8c8e432
--- /dev/null
+++ b/includes/over1.hpp
@@ -0,0 +1,71 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file over1.hpp
+
+#ifndef _OVER1_HPP
+#define _OVER1_HPP
+
+// System includes.
+
+#include <iostream>
+#include <cstdlib>
+#include <cstring>
+#include <thread>
+#include <chrono>
+#include <limits>
+#include <vector>
+
+// Local includes.
+
+#include "blkcom.hpp"
+#include "dekspy.hpp"
+#include "dekplt.hpp"
+#include "comlock.hpp"
+#include "labcom.hpp"
+#include "random.hpp"
+#include "main.hpp"
+#include "newmods.hpp"
+#include "utilities.hpp"
+#include "strcom.hpp"
+#include "location.hpp"
+#include "time.hpp"
+#include "umdeck.hpp"
+#include "labl02.hpp"
+
+#define LL1 1
+#define LL6 6
+#define LL8 8
+#define LL11 11
+#define LL20 20
+#define LL24 24
+#define LL25 25
+#define LL30 30
+#define LL40 40
+#define LL60 60
+#define LL64 64
+#define LL80 80
+#define SPEEDL 2.997925e8
+
+// Prototypes.
+
+namespace over1 {
+
+ void over1(void);
+ void tacs1c(void);
+ void swmodf(void);
+ void reques(void);
+ void sysdep(void);
+ void midov1(void);
+ void nmincr(std::string &, int &);
+ void tacs1(void);
+ void tacs1a(void);
+ void tacs1b(void);
+ void expchk(int &, int &, int &);
+ void intchk(int &, int &, int &);
+ void pfatch(void);
+
+}
+
+#endif // _OVER1_HPP
+
+// end of file over1.hpp
diff --git a/includes/over1.hpp~ b/includes/over1.hpp~
new file mode 100644
index 0000000..c37af28
--- /dev/null
+++ b/includes/over1.hpp~
@@ -0,0 +1,70 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file over1.hpp
+
+#ifndef _OVER1_HPP
+#define _OVER1_HPP
+
+// System includes.
+
+#include <iostream>
+#include <cstdlib>
+#include <cstring>
+#include <thread>
+#include <chrono>
+#include <limits>
+#include <vector>
+
+// Local includes.
+
+#include "blkcom.hpp"
+#include "dekspy.hpp"
+#include "dekplt.hpp"
+#include "comlock.hpp"
+#include "labcom.hpp"
+#include "random.hpp"
+#include "main.hpp"
+#include "newmods.hpp"
+#include "utilities.hpp"
+#include "strcom.hpp"
+#include "location.hpp"
+#include "time.hpp"
+#include "umdeck.hpp"
+
+#define LL1 1
+#define LL6 6
+#define LL8 8
+#define LL11 11
+#define LL20 20
+#define LL24 24
+#define LL25 25
+#define LL30 30
+#define LL40 40
+#define LL60 60
+#define LL64 64
+#define LL80 80
+#define SPEEDL 2.997925e8
+
+// Prototypes.
+
+namespace over1 {
+
+ void over1(void);
+ void tacs1c(void);
+ void swmodf(void);
+ void reques(void);
+ void sysdep(void);
+ void midov1(void);
+ void nmincr(std::string &, int &);
+ void tacs1(void);
+ void tacs1a(void);
+ void tacs1b(void);
+ void expchk(int &, int &, int &);
+ void intchk(int &, int &, int &);
+ void pfatch(void);
+
+}
+
+#endif // _OVER1_HPP
+
+// end of file over1.hpp
diff --git a/includes/over20.hpp b/includes/over20.hpp
new file mode 100644
index 0000000..2fb2941
--- /dev/null
+++ b/includes/over20.hpp
@@ -0,0 +1,67 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file over20.hpp
+
+#ifndef _OVER20_HPP
+#define _OVER20_HPP
+
+// System includes.
+
+#include <iostream>
+#include <cstdlib>
+#include <cstring>
+#include <thread>
+#include <chrono>
+#include <limits>
+#include <vector>
+
+// Local includes.
+
+#include "blkcom.hpp"
+#include "dekspy.hpp"
+#include "dekplt.hpp"
+#include "comlock.hpp"
+#include "labcom.hpp"
+#include "random.hpp"
+#include "main.hpp"
+#include "newmods.hpp"
+#include "utilities.hpp"
+#include "strcom.hpp"
+#include "location.hpp"
+#include "time.hpp"
+#include "plot.hpp"
+
+// Prototypes.
+
+namespace over20 {
+
+ void over20(void);
+ void katalg(void);
+ void emtspy(void);
+ void spying(void);
+ void spyink(void);
+ void initsp(void);
+ void kwiter(int[ 3 ]);
+ void percnt(std::string *, const int &);
+ void numchk(std::string *, const int &, int &);
+ void getnum(int &);
+ void spylin(void);
+ void spyout(const int &, const int &);
+ void examin(void);
+ void deposi(const int &, int &, int &, double &);
+ void append(void);
+ void intpar(const int &, int &, int &, int &);
+ void sosrng(int &);
+ void locatn(void);
+ void stopin(void);
+ void helper(int &);
+ void timval(void);
+ void back14(void);
+ void setrtm(void);
+ void flatbd(void);
+
+}
+
+#endif // _OVER20_HPP
+
+// end of file over20.hpp
diff --git a/includes/over51.hpp b/includes/over51.hpp
new file mode 100644
index 0000000..c3d0a85
--- /dev/null
+++ b/includes/over51.hpp
@@ -0,0 +1,199 @@
+//-*- mode: c++; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file over51.hpp
+
+#ifndef _OVER51_HPP
+#define _OVER51_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <sstream>
+#include <limits>
+#include <exception>
+#include <stdexcept>
+
+#include "blkcom.hpp"
+#include "time.hpp"
+
+namespace emtp {
+
+ // Classes.
+ class storage_exceeded_error : public std::runtime_error
+ {
+ public:
+ storage_exceeded_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, ' ');
+ ss << "Storage exceeded for list number ";
+ ss << std::setw(2) << std::setfill('0') << blkcom::sLStat[ 15 ];
+ ss << ". See dimensioned limit in tabulation below.\n";
+ ss << std::string(5, '-');
+ ss << "The problem being inputted is simply too big for the program as currently dimensioned. Since there usually are\n";
+ ss << std::string(5, ' ');
+ ss << "ways of circumventing this difficulty, it is suggested that the user consult his friendly neighborhood program\n";
+ ss << std::string(5, ' ');
+ ss << "maintenance man.\n";
+ return ss.str().c_str();
+ }
+ };
+
+ class time_error : public std::runtime_error
+ {
+ public:
+ time_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ if (blkcom::nT >= 0.0) {
+ ss << std::string (5, '-');
+ ss << "Time-step size 'deltat' as read from columns 1-8 of the first miscellaneous data card is not positive. The\n";
+ ss << std::string (5, '-');
+ ss << "user punched a value of ";
+ ss << std::setw (14) << std::setprecision (4) << blkcom::sFLStat[ 15 ];
+ ss << ". Unlike Jules Verne, you are not allowed to stop or decrease time during\n";
+ ss << std::string (5, '-');
+ ss << "a simulation, my friend. Don't try riding out of an active volcano on a raft floating on molten lava, either,\n";
+ ss << std::string (5, '-');
+ ss << "although that's another story.\n";
+ } else {
+ ss << std::string (5, '-');
+ ss << "The starting time 't' as read from the floating-point miscellaneous data card is negative, which is\n";
+ ss << std::string (5, '-');
+ ss << "illegal. A value of";
+ ss << std::setw (15) << std::setprecision (5) << blkcom::nT;
+ ss << " was read from the data field of columns 49-56.\n";
+ }
+ return ss.str ().c_str ();
+ }
+ };
+
+ class branch_card_illegal_type_code_error : public std::runtime_error
+ {
+ public:
+ branch_card_illegal_type_code_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, '-');
+ ss << "Illegal type code read from columns 1-2 of last branch card. The user punched a value of ";
+ ss << std::setw (2) << blkcom::sLStat[ 15 ];
+ ss << ". Either\n";
+ ss << std::string (5, '-');
+ ss << "the punched number itself is patently illegal (always an error, under any circumstances), or the card in question\n";
+ ss << std::string (5, '-');
+ ss << "his out of sequence in relation to the preceding data card which was inputted. As an example of the latter\n";
+ ss << std::string (5, '-');
+ ss << "case, consider a '-3' punch, with the preceeding card not bearing a '-2' punch. In any case, open up the user's\n";
+ ss << std::string (5, ' ');
+ ss << "manual, and reread the rules for the data type that you have been trying to input, my friend.\n";
+ ss << std::string (5, ' ');
+ ss << "Yet, in case this general advice does not seem to apply, consider the possible trouble which can arise from a\n";
+ ss << std::string (5, ' ');
+ ss << "preceding faulty use of the reference-branch capability. This feature has the EMTP looking for a certain number\n";
+ ss << std::string (5, ' ');
+ ss << "and type of branch cards, based on properties of the component to which reference has been made. If the user's\n";
+ ss << std::string (5, ' ');
+ ss << "data cards do not in structure match those of the reference component, an error stop of the present type may very";
+ ss << std::string (5, ' ');
+ ss << "be expected. Remember that in cases where two or more branches from reference bus 'bus3' to reference bus\n";
+ ss << std::string (5, ' ');
+ ss << "'bus4' (ordered pair of names, read from columns 15-24 as 2a6 information) exist, the EMTP will always pick\n";
+ ss << std::string (5, ' ');
+ ss << "the first one that it finds (in order of branch input) for reference purposes.\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+ class last_branch_zero_impedance_error : public std::runtime_error
+ {
+ public:
+ last_branch_zero_impedance_error () :std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, ' ');
+ ss << "Last branch was zero impedance (R, L, C fields of columns 27-44 were all zero). If you really want a short\n";
+ ss << std::string (5, ' ');
+ ss << "circuit, you must punch a very small value for R or L. Or better yet, why not do away with one of the node\n";
+ ss << std::string (5, ' ');
+ ss << "names of this branch, treating both ends as the same bus (a perfect short circuit).\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+ class non_monotone_increasing_characteristic_error : public std::runtime_error
+ {
+ public:
+ non_monotone_increasing_characteristic_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, ' ');
+ ss << "The user has been inputting pairs of points which define a nonlinear (or pseudo-nonlinear) element characteristic.\n";
+ ss << std::string (5, ' ');
+ ss << "These must be in order, moving ever to the right and upward in the x-y plane. But the user's just-inputted\n";
+ ss << std::string (5, ' ');
+ ss << "characteristic is not monotone increasing as it should be. A decrease in one of the two coordinate points\n";
+ ss << std::string (5, ' ');
+ ss << "has been detected on the last data card which was read. Shape up or ship out, Jack.\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+ class dummy_function_called_error : public std::runtime_error
+ {
+ public:
+ dummy_function_called_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, ' ');
+ ss << "Dummy function is called, something wrong with this version of EMTP++.\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+}
+
+namespace over51 {
+
+ // Prototypes.
+ void subr51(void);
+ void over51(void);
+
+}
+
+#endif // _OVER51_HPP
diff --git a/includes/over51.hpp~ b/includes/over51.hpp~
new file mode 100644
index 0000000..30de526
--- /dev/null
+++ b/includes/over51.hpp~
@@ -0,0 +1,200 @@
+//-*- mode: c++; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file over51.hpp
+
+#ifndef _OVER51_HPP
+#define _OVER51_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <sstream>
+#include <limits>
+#include <exception>
+#include <stdexcept>
+
+#include "blkcom.hpp"
+#include "time.hpp"
+#include "main00.hpp"
+
+namespace emtp {
+
+ // Classes.
+ class storage_exceeded_error : public std::runtime_error
+ {
+ public:
+ storage_exceeded_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, ' ');
+ ss << "Storage exceeded for list number ";
+ ss << std::setw (2) << std::setfill ('0') << blkcom::sLStat[ 15 ];
+ ss << ". See dimensioned limit in tabulation below.\n";
+ ss << std::string (5, '-');
+ ss << "The problem being inputted is simply too big for the program as currently dimensioned. Since there usually are\n";
+ ss << std::string (5, ' ');
+ ss << "ways of circumventing this difficulty, it is suggested that the user consult his friendly neighborhood program\n";
+ ss << std::string (5, ' ');
+ ss << "maintenance man.\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+ class time_error : public std::runtime_error
+ {
+ public:
+ time_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ if (blkcom::nT >= 0.0) {
+ ss << std::string (5, '-');
+ ss << "Time-step size 'deltat' as read from columns 1-8 of the first miscellaneous data card is not positive. The\n";
+ ss << std::string (5, '-');
+ ss << "user punched a value of ";
+ ss << std::setw (14) << std::setprecision (4) << blkcom::pFLStat[ 15 ];
+ ss << ". Unlike Jules Verne, you are not allowed to stop or decrease time during\n";
+ ss << std::string (5, '-');
+ ss << "a simulation, my friend. Don't try riding out of an active volcano on a raft floating on molten lava, either,\n";
+ ss << std::string (5, '-');
+ ss << "although that's another story.\n";
+ } else {
+ ss << std::string (5, '-');
+ ss << "The starting time 't' as read from the floating-point miscellaneous data card is negative, which is\n";
+ ss << std::string (5, '-');
+ ss << "illegal. A value of";
+ ss << std::setw (15) << std::setprecision (5) << blkcom::nT;
+ ss << " was read from the data field of columns 49-56.\n";
+ }
+ return ss.str ().c_str ();
+ }
+ };
+
+ class branch_card_illegal_type_code_error : public std::runtime_error
+ {
+ public:
+ branch_card_illegal_type_code_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, '-');
+ ss << "Illegal type code read from columns 1-2 of last branch card. The user punched a value of ";
+ ss << std::setw (2) << blkcom::sLStat[ 15 ];
+ ss << ". Either\n";
+ ss << std::string (5, '-');
+ ss << "the punched number itself is patently illegal (always an error, under any circumstances), or the card in question\n";
+ ss << std::string (5, '-');
+ ss << "his out of sequence in relation to the preceding data card which was inputted. As an example of the latter\n";
+ ss << std::string (5, '-');
+ ss << "case, consider a '-3' punch, with the preceeding card not bearing a '-2' punch. In any case, open up the user's\n";
+ ss << std::string (5, ' ');
+ ss << "manual, and reread the rules for the data type that you have been trying to input, my friend.\n";
+ ss << std::string (5, ' ');
+ ss << "Yet, in case this general advice does not seem to apply, consider the possible trouble which can arise from a\n";
+ ss << std::string (5, ' ');
+ ss << "preceding faulty use of the reference-branch capability. This feature has the EMTP looking for a certain number\n";
+ ss << std::string (5, ' ');
+ ss << "and type of branch cards, based on properties of the component to which reference has been made. If the user's\n";
+ ss << std::string (5, ' ');
+ ss << "data cards do not in structure match those of the reference component, an error stop of the present type may very";
+ ss << std::string (5, ' ');
+ ss << "be expected. Remember that in cases where two or more branches from reference bus 'bus3' to reference bus\n";
+ ss << std::string (5, ' ');
+ ss << "'bus4' (ordered pair of names, read from columns 15-24 as 2a6 information) exist, the EMTP will always pick\n";
+ ss << std::string (5, ' ');
+ ss << "the first one that it finds (in order of branch input) for reference purposes.\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+ class last_branch_zero_impedance_error : public std::runtime_error
+ {
+ public:
+ last_branch_zero_impedance_error () :std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, ' ');
+ ss << "Last branch was zero impedance (R, L, C fields of columns 27-44 were all zero). If you really want a short\n";
+ ss << std::string (5, ' ');
+ ss << "circuit, you must punch a very small value for R or L. Or better yet, why not do away with one of the node\n";
+ ss << std::string (5, ' ');
+ ss << "names of this branch, treating both ends as the same bus (a perfect short circuit).\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+ class non_monotone_increasing_characteristic_error : public std::runtime_error
+ {
+ public:
+ non_monotone_increasing_characteristic_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, ' ');
+ ss << "The user has been inputting pairs of points which define a nonlinear (or pseudo-nonlinear) element characteristic.\n";
+ ss << std::string (5, ' ');
+ ss << "These must be in order, moving ever to the right and upward in the x-y plane. But the user's just-inputted\n";
+ ss << std::string (5, ' ');
+ ss << "characteristic is not monotone increasing as it should be. A decrease in one of the two coordinate points\n";
+ ss << std::string (5, ' ');
+ ss << "has been detected on the last data card which was read. Shape up or ship out, Jack.\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+ class dummy_function_called_error : public std::runtime_error
+ {
+ public:
+ dummy_function_called_error () : std::runtime_error ("")
+ {
+ }
+
+ public:
+ const char *what (void) const noexcept
+ {
+ std::stringstream ss;
+ //
+ ss << std::string (5, ' ');
+ ss << "Dummy function is called, something wrong with this version of EMTP++.\n";
+ return ss.str ().c_str ();
+ }
+ };
+
+}
+
+namespace over51 {
+
+ // Prototypes.
+ void subr51(void);
+ void over51(void);
+
+}
+
+#endif // _OVER51_HPP
diff --git a/includes/plot.hpp b/includes/plot.hpp
new file mode 100644
index 0000000..7069357
--- /dev/null
+++ b/includes/plot.hpp
@@ -0,0 +1,41 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file plot.hpp
+
+#ifndef _PLOT_HPP
+#define _PLOT_HPP
+
+#ifdef WITH_OVER20
+
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+#include <vector>
+
+#include "utilities.hpp"
+#include "blkcom.hpp"
+#include "dekspy.hpp"
+#include "labcom.hpp"
+#include "emtp.hpp"
+#include "over20.hpp"
+
+namespace plot
+{
+
+ void sysplt(void *);
+ void rtmplt(void);
+ void tpplot(void);
+ void pltvar(void);
+ void chrplt(void);
+ void tekplt(void);
+ void tgrid(int, int, int, int, int, int, int);
+ void pltfil(const long int &);
+ void pltlu2(double *, std::vector<double> *);
+
+}
+
+#endif // WITH_OVER20
+
+#endif // _PLOT_HPP
+
+// end of file plot.hpp
diff --git a/includes/plot.hpp~ b/includes/plot.hpp~
new file mode 100644
index 0000000..727998c
--- /dev/null
+++ b/includes/plot.hpp~
@@ -0,0 +1,17 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file plot.hpp
+
+#ifndef _PLOT_HPP
+#define _PLOT_HPP
+
+namespace plot
+{
+
+
+
+}
+
+#endif // _PLOT_HPP
+
+// end of file plot.hpp
diff --git a/includes/random.hpp b/includes/random.hpp
new file mode 100644
index 0000000..1969082
--- /dev/null
+++ b/includes/random.hpp
@@ -0,0 +1,26 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file random.hpp
+
+#ifndef _RANDOM_HPP
+#define _RANDOM_HPP
+
+#include <iostream>
+#include <string>
+
+#include "blkcom.hpp"
+#include "dekspy.hpp"
+
+namespace randomize {
+ // Variables.
+
+ //Prototypes.
+ double seedy(std::string *);
+ double randnm(const double &);
+ double sandnm(const double &);
+
+}
+
+#endif // _RANDOM_HPP
+
+// end of file random.hpp
diff --git a/includes/strcom.hpp b/includes/strcom.hpp
new file mode 100644
index 0000000..bdab939
--- /dev/null
+++ b/includes/strcom.hpp
@@ -0,0 +1,22 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file strcom.hpp
+
+#ifndef _STRCOM_HPP
+#define _STRCOM_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <algorithm>
+
+namespace strcom {
+
+ std::string toLower (const std::string &);
+ std::string toUpper (const std::string &);
+
+}
+
+#endif // _STRCOM_HPP
+
+// end of file __STRCOM_HPP
diff --git a/includes/tacsar.hpp b/includes/tacsar.hpp
new file mode 100644
index 0000000..eaed1cf
--- /dev/null
+++ b/includes/tacsar.hpp
@@ -0,0 +1,60 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file tacsar.hpp
+
+#ifndef _TACSAR_HPP
+#define _TACSAR_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <cstddef>
+#include <vector>
+
+namespace tacsar {
+
+ extern int nIColCS;
+ extern int nIlnTab;
+ extern int nInSup;
+ extern int nIsBlk;
+ extern int nIuty;
+ extern int nIVarB;
+ extern int nJOut;
+ extern int nKaliu;
+ extern int nKalksu;
+ extern int nKatcs;
+ extern int nkawkcs;
+ extern int nKColCS;
+ extern int nKInSup;
+ extern int nKIsBlk;
+ extern int nKiuty;
+ extern int nKIVarB;
+ extern int nKJOut;
+ extern int nKksus;
+ extern int nKlnTab;
+ extern int nKofsce;
+ extern int nKoncur;
+ extern int nKonsce;
+ extern int nKOnSup;
+ extern int nKOnTot;
+ extern int nKPRSup;
+ extern int nKRSBlk;
+ extern int nKSPVar;
+ extern int nKsus;
+ extern int nKud1;
+ extern int nKxar;
+ extern int nKxtcs;
+ //
+ extern double nAtcs;
+ extern double nAwks;
+ extern double nParsup;
+ extern double nRsblk;
+ extern double nSptacs;
+ extern double nUd1;
+ extern double nXar;
+ extern double nXtcs;
+
+}
+
+#endif // _TACSAR_HPP
+
+// end of file tacsar.hpp
diff --git a/includes/tacsar.hpp~ b/includes/tacsar.hpp~
new file mode 100644
index 0000000..fc17cf8
--- /dev/null
+++ b/includes/tacsar.hpp~
@@ -0,0 +1,60 @@
+//-*- mode: c++; indent-tabs-mode-nil; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file tacsar.hpp
+
+#ifndef _TACSAR_HPP
+#define _TACSAR_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <cstddef>
+#include <vector>
+
+namespace tacsar {
+
+ extern int nIColCS;
+ extern int nIlnTab;
+ extern int nInSup;
+ extern int nIsBlk;
+ extern int nIuty;
+ extern int nIVarB;
+ extern int nJOut;
+ extern int nKaliu;
+ extern int nKalksu;
+ extern int nKatcs;
+ extern int nkawkcs;
+ extern int nKColCS;
+ extern int nKInSup;
+ extern int nKIsBlk;
+ extern int nKiuty;
+ extern int nKIVarB;
+ extern int nKJOut;
+ extern int nKksus;
+ extern int nKlnTab;
+ extern int nKofsce;
+ extern int nKoncur;
+ extern int nKonsce;
+ extern int nKOnSup;
+ extern int nKOnTot;
+ extern int nKPRSup;
+ extern int nKRSBlk;
+ extern int nKSPVar;
+ extern int nKsus;
+ extern int nKud1;
+ extern int nKxar;
+ extern int nKxtcs;
+ //
+ extern double nAtcs;
+ extern double nAwks;
+ extern double nParsup;
+ extern double nRsblk;
+ extern double nSptacs;
+ extern double nUd1;
+ extern double nXar;
+ extern double nXtcs;
+
+}
+
+#endif // _TACSAR_HPP
+
+// end of file tacsar.hpp
diff --git a/includes/time.hpp b/includes/time.hpp
new file mode 100644
index 0000000..783d043
--- /dev/null
+++ b/includes/time.hpp
@@ -0,0 +1,33 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file time.hpp
+
+#ifndef _TIME_HPP
+#define _TIME_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <ctime>
+#include <cmath>
+#include <sstream>
+
+#include "utilities.hpp"
+#include "dekspy.hpp"
+
+namespace date_time {
+
+ extern std::clock_t nCPUTime;
+
+ // Functions.
+
+ bool date44(std::string *);
+ bool time44(std::string *);
+ void settym(void);
+ void runtym(double &, double &);
+ void tdelay(int &);
+
+}
+
+#endif // _TIME_HPP
+
+// end of file time.hpp
diff --git a/includes/umdeck.hpp b/includes/umdeck.hpp
new file mode 100644
index 0000000..020faa4
--- /dev/null
+++ b/includes/umdeck.hpp
@@ -0,0 +1,42 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file umdeck.hpp
+
+#ifndef _UMDECK_HPP
+#define _UMDECK_HPP
+
+#include <iostream>
+#include <string>
+#include <fstream>
+#include <ostream>
+#include <sstream>
+#include <cstdlib>
+
+namespace umcom {
+
+ extern int nSRoot2;
+ extern int nSRoot3;
+ extern int nOmegRF;
+ extern int nInpu;
+ extern int nNumBus;
+ extern int nNCLTot;
+ extern int nInitUM;
+ //
+ extern int pPTheta[ 3 ][ 3 ];
+ extern int pZTheVR[ 3 ][ 3 ];
+ extern int pVInp[ 40 ];
+ extern int pZTheVs[ 40 ];
+ extern int pUmCur[ 40 ];
+ extern int pCon[ 10 ];
+ extern int pDumVec[ 40 ];
+ extern int pDumMat[ 3 ][ 3 ];
+ extern int pDate[ 2 ];
+ extern int pClock[ 2 ];
+ extern int pNDum[ 40 ];
+ //
+ extern std::string pBUSUM[ 50 ];
+}
+
+#endif // __UMDECK_HPP
+
+// end of file umdeck.hpp
diff --git a/includes/umdeck.hpp~ b/includes/umdeck.hpp~
new file mode 100644
index 0000000..42e9b68
--- /dev/null
+++ b/includes/umdeck.hpp~
@@ -0,0 +1,17 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file umdeck.hpp
+
+#ifndef _UMDECK_HPP
+#define _UMDECK_HPP
+
+#include <iostream>
+#include <string>
+#include <fstream>
+#include <ostream>
+#include <sstream>
+#include <cstdlib>
+
+#endif // __UMDECK_HPP
+
+// end of file umdeck.hpp
diff --git a/includes/utilities.hpp b/includes/utilities.hpp
new file mode 100644
index 0000000..958c9ea
--- /dev/null
+++ b/includes/utilities.hpp
@@ -0,0 +1,67 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file utilities.hpp
+
+#ifndef _UTILITIES_HPP
+#define _UTILITIES_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+#include <sstream>
+#include <cstdio>
+#include <cstdarg>
+#include <string>
+#include <fstream>
+#include <vector>
+
+// UNIX includes.
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+
+#include "blkcom.hpp"
+#include "dekspy.hpp"
+#include "time.hpp"
+#include "strcom.hpp"
+#include "emtp.hpp"
+
+// Macros.
+#define FOREVER for(;;)
+
+namespace kwtcom {
+
+ extern long int nKWTVAX;
+
+}
+
+namespace utilities
+{
+ // Types
+
+ // Prototypes.
+ bool exists (const char *);
+ std::string format (const std::string &, ...);
+ void quiter(void);
+ void window(std::ostream &, std::stringstream &);
+ void honker(const long int &);
+ void flager(void);
+ void prompt(std::ostream &, const std::string &);
+ bool openFile(std::fstream *, \
+ std::string &, \
+ const std::ios::openmode &);
+ bool closeFile(std::fstream *);
+ bool copyFile(std::fstream *, \
+ std::fstream *, \
+ const std::string &);
+ bool deleteFile(const std::string &);
+ struct winsize getTerminalSize(void);
+ void expchk(long int &, \
+ long int &, \
+ long int &);
+
+}
+
+#endif // _UTILITIES_HPP
+
+// end of file utilities.hpp
diff --git a/includes/vardim.hpp b/includes/vardim.hpp
new file mode 100644
index 0000000..df97a0f
--- /dev/null
+++ b/includes/vardim.hpp
@@ -0,0 +1,41 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file vardim.hpp
+
+#ifndef _VARDIM_HPP
+#define _VARDIM_HPP
+
+#include <iostream>
+#include <fstream>
+#include <ostream>
+#include <sstream>
+#include <cstdlib>
+#include <exception>
+#include <stdexcept>
+#include <string>
+
+#include "blkcom.hpp"
+
+namespace vardim {
+
+ struct tagVariables {
+ std::string m_sCBlock;
+ int m_nNCB;
+ std::string m_sCBLSer;
+ int m_nJBLType;
+ };
+
+ typedef struct tagVariables tVariables;
+
+ // Default dimensions.
+ extern int pLstDef[ 28 ];
+ extern tVariables pVariables[];
+
+ // Functions.
+ bool vardim(void);
+
+}
+
+#endif // _VARDIM_HPP
+
+// end of file vardim.hpp
diff --git a/includes/vardim.hpp~ b/includes/vardim.hpp~
new file mode 100644
index 0000000..c97f11b
--- /dev/null
+++ b/includes/vardim.hpp~
@@ -0,0 +1,41 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file vardim.hpp
+
+#ifndef _VARDIM_HPP
+#define _VARDIM_HPP
+
+#include <iostream>
+#include <fstream>
+#include <ostream>
+#include <sstream>
+#include <cstdlib>
+#include <exception>
+#include <stdexcept>
+#include <string>
+
+#include "blkcom.hpp"
+
+namespace vardim {
+
+ struct tagVariables {
+ std::string m_sCBlock;
+ int m_nCB;
+ std::string m_sCBLSer;
+ int m_nJBLType;
+ };
+
+ typedef struct tagVariables tVariables;
+
+ // Default dimensions.
+ extern int pLstDef[ 28 ];
+ extern tVariables pVariables[];
+
+ // Functions.
+ bool vardim(void);
+
+}
+
+#endif // _VARDIM_HPP
+
+// end of file vardim.hpp
diff --git a/includes/volt45.hpp b/includes/volt45.hpp
new file mode 100644
index 0000000..8154e2e
--- /dev/null
+++ b/includes/volt45.hpp
@@ -0,0 +1,22 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file volt45.hpp
+
+#ifndef _VOLT45_HPP
+#define _VOLT45_HPP
+
+#include <iostream>
+#include <string>
+#include <cstdlib>
+
+namespace volpri {
+
+ extern double pVoltI[ 50 ];
+ extern double pVoltK[ 50 ];
+ extern double pVIM[ 50 ];
+
+}
+
+#endif // _VOLT45_HPP
+
+// end of file volt45.hpp
diff --git a/sources/Makefile b/sources/Makefile
new file mode 100644
index 0000000..68ac40a
--- /dev/null
+++ b/sources/Makefile
@@ -0,0 +1,144 @@
+#-*- mode: makefile; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+# Makefile
+# Copyright 2022 Angelo Rossi <angelo.rossi.homelab@gmail.com>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# Some utilities
+OS=${shell uname -s}
+
+# Debug enabled
+DEBUG=1
+
+# Defines verbose
+VERBOSE=
+
+# Defines the target name.
+TARGET=gemtp++
+
+# Linker script name.
+LINKER_SCRIPT=
+
+# Is a toolchain defined?
+ifndef TOOLCHAIN
+ TOOLCHAIN=gnu
+endif
+
+# The base directory for ST libraries.
+ROOT=..
+
+# Where to find source files that do not live in this directory.
+SOURCES_PATH=${ROOT}/sources
+
+# Where to find header files that do not live in the source directory.
+INCLUDES_PATH=${ROOT}/includes
+
+# Libraries path
+LIBRARIES_PATH=${ROOT}/libraries
+
+# Scripts path
+SCRIPTS_PATH=${ROOT}/scripts
+
+# Project definitions
+WITH_OVER1=1
+WITH_OVER20=1
+WITH_OVER51=1
+
+# Include common Makefile definitions.
+include ${ROOT}/Makefile.global
+
+# The default rule, which causes the Vibro Application to be built.
+all: ${TOOLCHAIN}
+all: ${TOOLCHAIN}/${TARGET}
+
+# List rule
+lst: all
+lst: ${TOOLCHAIN}/${TARGET}.lst
+
+# The rule to clean out all the build products.
+clean:
+ @if [ 'x${VERBOSE}' = x ]; \
+ then \
+ echo " [ CLEAN ] ${<}"; \
+ else \
+ echo "rm -rf ${TOOLCHAIN} ${wildcard *~} ${<}"; \
+ fi
+ @rm -rf ${TOOLCHAIN} ${wildcard *~} ${<}
+
+# The rule which creates the .o and executable directory.
+${TOOLCHAIN}:
+ @if [ 'x${VERBOSE}' = x ]; \
+ then \
+ echo " [ MKDIR ] ${TOOLCHAIN}"; \
+ else \
+ echo "mkdir -p ${TOOLCHAIN}"; \
+ fi
+ @mkdir -p ${TOOLCHAIN}
+
+# Rules for building the system code.
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/utilities.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/volt45.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/blkcom.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/dekspy.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/dekplt.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/tacsar.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/comlock.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/time.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/strcom.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/freedom.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/movecopy.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/location.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/algebra.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/random.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/labcom.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/newmods.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/umdeck.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/labl02.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/plot.o
+
+ifdef WITH_OVER1
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/over1.o
+endif
+
+ifdef WITH_OVER20
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/over20.o
+endif
+
+ifdef WITH_OVER51
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/over51.o
+endif
+
+
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/datain.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/emtp.o
+${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/main.o
+
+# Include the automatically generated dependency files.
+ifneq (${MAKECMDGOALS},clean)
+-include ${wildcard ${TOOLCHAIN}/*.d} __dummy__
+endif
+# DO NOT DELETE
diff --git a/sources/algebra.cpp b/sources/algebra.cpp
new file mode 100644
index 0000000..b927435
--- /dev/null
+++ b/sources/algebra.cpp
@@ -0,0 +1,362 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file algebra.cpp
+
+#include "algebra.hpp"
+
+namespace algebra {
+
+ // subroutine cdiz.
+
+ bool cdivz (double *ar, double *ai, const double &br, const double &bi, const double &cr, const double &ci, const int &nKSn)
+ {
+ bool bReturnValue = false;
+ double nFAC;
+ double nSR;
+ //
+ if (ar && ai) {
+ nFAC = cr * cr + ci * ci;
+ nFAC = 1.0 / nFAC;
+ nSR = br * nFAC * cr + bi * nFAC * ci;
+ *ai = bi * nFAC * cr - br * nFAC * ci;
+ *ar = nSR;
+ if (nKSn < 0) {
+ *ar = -*ar;
+ *ai = -*ai;
+ }
+ bReturnValue = true;
+ }
+ return bReturnValue;
+ }
+
+ // subroutine cmultz.
+
+ bool cmultz (double *ar, double *ai, const double &br, const double &bi, const double &cr, const double &ci, const int &nKSn)
+ {
+ bool bReturnValue = false;
+ //
+ if (ar && ai) {
+ *ar = br * cr - bi * ci;
+ *ai = bi * cr - br * ci;
+ if (nKSn < 0) {
+ *ar = -*ar;
+ *ai = -*ai;
+ }
+ }
+ return bReturnValue;
+ }
+
+ // subroutine trgwnd.
+
+ bool trgwnd (const double &x, double *d17)
+ {
+ bool bReturnValue = false;
+ int n13;
+ //
+ if (d17) {
+ *d17 = x;
+ if (fabs(x) >= 25000.0) {
+ n13 = x / (2.0 * M_PI);
+ *d17 -= 2.0 * n13 * M_PI;
+ if (blkcom::nIprsUp >= 1)
+ *((std::ostream *) blkcom::pLFiles[ 5 ]) << " Angle unwind in \"trgwnd\" called by \"rfunl1\". nchain, x, d17 =" << blkcom::nChain << x << *d17 << std::endl;
+ }
+ bReturnValue = true;
+ }
+ return bReturnValue;
+ }
+
+ // subroutine multmx.
+ bool multmx(std::vector<double> &sA, \
+ std::vector<double> &sB, \
+ std::vector<double> &sC, \
+ std::vector<double> &sTemp, \
+ const size_t &n)
+ {
+ // Subroutine multmx forms the matrix product (c) = (a)(b) where
+ // matrices (a), (b), and (c) are all n by n square arrays.
+ // Array 'temp' is a scratch working area of not less than 2n
+ // cells. Arrays (b) and (c) may be identical, thereby placing
+ // the product (a)(b) back into (b) . See subroutine 'mult'
+ // which is called herein, for details about the storage scheme used
+ // for these real, symmetric matrices.
+ bool bReturnValue = false;
+ long int l, ll0;
+ size_t i, ii;
+ size_t j;
+ size_t m;
+ //
+ ll0 = 0;
+ ii = 0;
+ for(j = 1; j <= n; j++) {
+ for(i = 1; i <= n; i++) {
+ if(i > j) {
+ l += (i - 1);
+ } else {
+ l = ii + i;
+ }
+ sTemp[ i - 1 ] = sB[ l - 1 ];
+ }
+ m = n + i;
+ std::vector<double> sTempX(sTemp.begin(), sTemp.begin() + n);
+ std::vector<double> sTempY(sTemp.begin() + m - 1, sTemp.begin() + n);
+ bReturnValue = algebra::mult(sA, \
+ sTempX, \
+ sTempY, \
+ n, \
+ ll0) && \
+ movecopy::move(sTemp.data() + m - 1, sC.data() + ii, j);
+ ii += j;
+ }
+ return bReturnValue;
+ }
+
+ // subroutine mult.
+ bool mult(std::vector<double> &sA, \
+ std::vector<double> &sX, \
+ std::vector<double> &sY, \
+ const size_t &n, \
+ long int &icheck)
+ {
+ bool bReturnValue = false;
+ double xx;
+ double yy;
+ size_t i, ii;
+ size_t k;
+ //
+ ii = 0;
+ k = 0;
+ FOREVER {
+ ++k;
+ if(k > n)
+ break;
+ xx = sX[ k - 1 ];
+ yy = sY[ k - 1 ];
+ if(icheck == 0)
+ yy = 0.0;
+ if(icheck < 0)
+ yy = -yy;
+ for(i = 1; i <= k; i++) {
+ ++ii;
+ sY[ i - 1 ] += sA[ ii - 1 ] * xx;
+ yy += sA[ ii - 1 ] * sX[ i - 1 ];
+ sY[ k - 1 ] = yy;
+ }
+ bReturnValue = true;
+ }
+ return bReturnValue;
+ }
+
+ // subroutine dgelg.
+ void dgelg(std::vector<double> &sR, \
+ std::vector<double> &sA, \
+ const size_t &m, \
+ const size_t &n, \
+ const float &eps, \
+ int &ier)
+ {
+ /*
+ * Purpose:
+ * to solve a general system of simultaneous linear equations.
+ *
+ * Usage:
+ * call dgelg(r, a, m, n, eps, ier)
+ *
+ * Description of parameters:
+ * r - double precision m by n right hand side matrix
+ * (destroyed). On return r contains the solutions
+ * of the equations.
+ * a - double precision m by m coefficient matrix
+ * (destroyed).
+ * m - the number of equations in the system.
+ * n - the number of right hand side vectors.
+ * eps - single precision input constant which is used as
+ * relative tolerance for test on loss of
+ * significance.
+ * ier - resulting error parameter coded as follows
+ * ier=0 - no error,
+ * ier=-1 - no result because of m less than 1 or
+ * pivot element at any elimination step
+ * equal to 0,
+ * ier=k - warning due to possible loss of signifi-
+ * cance indicated at elimination step k+1,
+ * where pivot element was less than or
+ * equal to the internal tolerance eps times
+ * absolutely greatest element of matrix a.
+ *
+ * Remarks:
+ * Input matrices r and a are assumed to be stored columnwise
+ * in m*n resp. m*m successive storage locations. On return
+ * solution matrix r is stored columnwise too.
+ * The procedure gives results if the number of equations m is
+ * greater than 0 and pivot elements at all elimination steps
+ * are different from 0. However warning ier=k - if given -
+ * indicates possible loss of significance. In case of a well
+ * scaled matrix a and appropriate tolerance eps, ier=k may be
+ * interpreted that matrix a has the rank k. No warning is
+ * given in case m=1.
+ *
+ * Method:
+ * Solution is done by means of gauss-elimination with
+ * complete pivoting.
+ */
+ size_t i, ii, ist, j, k, l, lend, ll, lst, mm, nm;
+ double piv, pivi, tb, tol;
+ /*
+ */
+ if(m <= 0)
+ goto a23;
+ ier = 0;
+ piv = 0.0;
+ mm = m * m;
+ nm = n * m;
+ for(l = 1; l <= mm; l++) {
+ tb = fabs(sA[ l - 1 ]);
+ if(tb > piv) {
+ piv = tb;
+ i = l;
+ }
+ }
+ tol = eps * piv;
+ lst = 1;
+ for(k = 1; k <= m; k++) {
+ if(piv <= 0.0)
+ goto a23;
+ if(ier != 0)
+ goto a7;
+ if(piv > tol)
+ goto a7;
+ ier = (long int) k - 1;
+
+ a7:
+ pivi = 1.0 / sA[ i - 1 ];
+ j = (i - 1) / m;
+ i = i - j * m - k;
+ j = j + 1 - k;
+ for(l = k; l <= nm; l += m) {
+ ll = l + i;
+ tb = pivi * sR[ ll - 1 ];
+ sR[ ll - 1 ] = sR[ l - 1 ];
+ sR[ l - 1 ] = tb;
+ }
+ if(k >= m)
+ goto a18;
+ lend = lst + m - k;
+ if(j <= 0)
+ goto a12;
+ ii = j * m;
+ for(l = lst; l <= lend; l++) {
+ tb = sA[ l - 1 ];
+ ll = l + ii;
+ sA[ l - 1 ] = sA[ ll - 1 ];
+ sA[ ll - 1 ] = tb;
+ }
+
+ a12:
+ for(l = lst; l <= mm; l += m) {
+ ll = l + i;
+ tb = pivi * sA[ ll - 1 ];
+ sA[ ll - 1 ] = sA[ l - 1 ];
+ sA[ l - 1 ] = tb;
+ }
+ sA[ lst - 1 ] = j;
+ piv = 0.0;
+ ++lst;
+ j = 0;
+ for(ii = lst; ii <= lend; ii++) {
+ pivi = -sA[ ii - 1 ];
+ ist = ii + m;
+ ++j;
+ for(l = ist; l <= mm; l += m) {
+ ll = l - j;
+ sA[ l - 1 ] += pivi * sA[ ll - 1 ];
+ tb = fabs(sA[ l - 1 ]);
+ if(tb > piv) {
+ piv = tb;
+ i = l;
+ }
+ }
+ for(l = k; l <= nm; l += m) {
+ ll = l + j;
+ sR[ ll - 1 ] += pivi * sR[ l - 1 ];
+ }
+ }
+ lst += m;
+ }
+
+ a18:
+ if(m > 1)
+ goto a19;
+ if (m == 1)
+ goto a22;
+ goto a23;
+
+ a19:
+ ist = mm + m;
+ lst = m + 1;
+ for(i = 2; i <= m; i++) {
+ ii = lst - i;
+ ist -= lst;
+ l = ist - m;
+ l = (long int) (sA[ l - 1 ] + 0.5);
+ for(j = ii; j <= nm; j += m) {
+ tb = sR[ j - 1 ];
+ ll = j;
+ for(k = ist; k <= mm; k += mm) {
+ ++ll;
+ tb -= sA[ k - 1 ] * sR[ ll - 1 ];
+ }
+ k = j + l;
+ sR[ j - 1 ] = sR[ k - 1 ];
+ sR[ k - 1 ] = tb;
+ }
+ }
+
+ a22:
+ return;
+
+ a23:
+ ier = -1;
+ }
+
+ // subroutine matmul
+ void matmul (double aum[ 3 ][ 3 ], double bum[ 3 ][ 3 ])
+ {
+ size_t n1, n2, n3, n5;
+ double cum[ 3 ][ 3 ];
+ //
+ n5 = 3;
+ for(n1 = 1; n1 <= n5; n1++) {
+ for(n2 = 1; n2 <= n5; n2++) {
+ cum[ n1 - 1 ][ n2 - 1 ] = aum[ n1 - 1 ][ 0 ] * bum[ 0 ][ n2 - 1 ];
+ for (n3 = 2; n3 <= n5; n3++) {
+ cum[ n1 - 1 ][ n2 - 1 ] = cum[ n1 - 1 ][ n2 - 1 ] + aum[ n1 - 1 ][ n3 - 1 ] * bum[ n3 - 1 ][ n2 - 1 ];
+ }
+ }
+ }
+ for(n1 =1; n1 <= n5; n1++) {
+ for(n2 = 1; n2 <= n5; n2++) {
+ aum[ n1 - 1 ][ n2 - 2 ] = cum[ n1 - 1 ][ n2 - 1 ];
+ }
+ }
+ }
+
+ // subroutine matvec.
+ void matvec(float aum[ 3 ][ 3 ], float yum[ 15 ])
+ {
+ size_t n1, n2, n3;
+ float x[ 3 ];
+ //
+ n1 = 3;
+ for (n2 = 1; n2 <= n1; n2++) {
+ for (n3 = 1; n3 <= n1; n3++) {
+ x[ n2 - 1 ] = x[ n2 - 1 ] + aum[ n2 - 1 ][ n3 - 1 ] * yum[ n3 - 1 ];
+ }
+ }
+ for (n2 = 1; n2 <= n1; n2++)
+ yum[ n2 - 1 ] = x[ n2 - 1 ];
+ }
+
+}
+
+// end of file algebra.cpp
diff --git a/sources/blkcom.cpp b/sources/blkcom.cpp
new file mode 100644
index 0000000..bd3952f
--- /dev/null
+++ b/sources/blkcom.cpp
@@ -0,0 +1,200 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file blkcom.cpp
+
+#include "blkcom.hpp"
+
+namespace comthl {
+
+ int nSwTpe;
+ //
+ double nAngTpe;
+
+}
+
+namespace comld {
+
+ int nNewTAC;
+
+}
+
+namespace blkcom {
+
+ char cCSepar;
+ //
+ void *pIAlter;
+ void *pIDistX;
+ void *pInEcho;
+ void *pLFiles[ 24 ] = {
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ };
+ void *pKFile6;
+ void *pLFilesSave[ 24 ];
+ void *pMFilesSave[ 24 ];
+ void *pMonCar[ 90 ];
+ //
+ char pVSTACS[ 24 ];
+ //
+ long int nChain;
+ long int nEnerg;
+ long int nIAdd;
+ long int nIAverg;
+ long int nIBr;
+ long int nICat;
+ long int nIFDep;
+ long int nIFDep2;
+ long int nIFSem;
+ long int nIFX;
+ long int nIndStp;
+ long int nINOnL;
+ long int nIofbnd;
+ long int nIoffd;
+ long int nIofgnd;
+ long int nIPlot;
+ long int nIprsUp;
+ long int nIPunch;
+ long int nIsPlot;
+ long int nIsPrin;
+ long int nIStep;
+ long int nIt;
+ long int nIt1;
+ long int nIt2;
+ long int nKanal;
+ long int nKCount;
+ long int nKill;
+ long int nKol132;
+ long int nKolBeg;
+ long int nKPartB;
+ long int nKSwtch;
+ long int nKTRef;
+ long int nKWTSpy;
+ long int nLastOV;
+ long int nLBrnch;
+ long int nLBus;
+ long int nLHist;
+ long int nLLBuff;
+ long int nLTLabl;
+ long int nM4Plot;
+ long int nNComp;
+ long int nNFrFld;
+ long int nNSTACS;
+ long int nNTCSex;
+ long int nNumDCD;
+ long int nNWord1;
+ long int nNWord2;
+ long int nNOutPR;
+ long int nIType;
+ long int nIbr;
+ long int nJFLSOS;
+ long int nJST;
+ long int nJST1;
+ long int nKTab;
+ long int nKBurro;
+ long int nMax99m;
+ long int nMaxBus;
+ long int nMaxZNO;
+ long int nMemSav;
+ long int nModOut;
+ long int nNRight;
+ long int nNum99;
+ long int nNumOut;
+ long int nNumSM;
+ long int nNumUM;
+ long int nTot;
+ long int nMolDat;
+ //
+ long int pIpnTV[ 11 ];
+ long int pIprsOV[ 39 ];
+ long int pLoopSS[ 13 ];
+ long int pKPrChg[ 6 ];
+ long int pKTRLSW[ 8 ];
+ long int pNByte[ 6 ];
+ long int pVoltBC[ 50 ];
+ //
+ double nAIncr;
+ double nAngle;
+ double nCI1;
+ double nCK1;
+ double nCOpt;
+ double nDegMin;
+ double nDegMax;
+ double nDelta2;
+ double nDeltaT;
+ double nEpsilon;
+ double nEpStop;
+ double nEpsZNo;
+ double nEpWarn;
+ double nFMaxFS;
+ double nFreqCS;
+ double nOmega;
+ double nOneHaf;
+ double nSglFir;
+ double nStatFR;
+ double nT;
+ double nTEnerg;
+ double nTenM3;
+ double nTenM6;
+ double nTMax;
+ double nTolMat;
+ double nUnity;
+ double nXMaxMX;
+ double nXOpt;
+ //
+ double pBegMax[ 6 ];
+ double pPeakND[ 3 ];
+ double pZNoLim[ 2 ];
+ //
+ std::vector<long int> sLStat(80);
+ std::vector<double> sFLStat(20);
+ //
+ std::string sBlank(" ");
+ std::string sBus1;
+ std::string sBus2;
+ std::string sBus3;
+ std::string sBus4;
+ std::string sBus5;
+ std::string sBus6;
+ std::string sChCont;
+ std::string sChCopy;
+ std::string sCopy;
+ std::string sTrash;
+ std::string sTerra;
+ std::string sUserID;
+ std::string sBranch;
+ std::string sTexCol;
+ //
+ std::string pDate1[ 2 ];
+ std::string pTClock[ 2 ];
+ std::string pTextA6[ 15 ];
+ //
+ std::stringstream sABuff;
+ //
+ tMonCar sMonCar;
+ tStat *pSStat;
+
+}
+
+// end of file blkcom.cpp
diff --git a/sources/comlock.cpp b/sources/comlock.cpp
new file mode 100644
index 0000000..e83d57b
--- /dev/null
+++ b/sources/comlock.cpp
@@ -0,0 +1,13 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file comlock.cpp
+
+#include "comlock.hpp"
+
+namespace comlock {
+
+ std::string pLocker[ 2 ];
+
+}
+
+// end of file comlock.cpp
diff --git a/sources/datain.cpp b/sources/datain.cpp
new file mode 100644
index 0000000..1d3ad11
--- /dev/null
+++ b/sources/datain.cpp
@@ -0,0 +1,1397 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file datain.cpp
+
+#include "datain.hpp"
+
+namespace datain {
+
+ void datain(void)
+ {
+ // Universal module of interactive EMTP (spy of "emtspy").
+ // If non-interactive version, module can be destroyed.
+ // First EMTP data input, and "spy" choice, are made here.
+ // Module is called only by installation-dependent "erexit".
+ int ll;
+ int n;
+ int n1, n2, n3, n4, n7, n10, n11, n15, n16, n22, n26;
+ int nn1, nn2;
+ int nKRDOff;
+ int nKRDCom;
+ int nKCut = 0;
+ int nKntDum;
+ int nKntMax;
+ int nKntOld;
+ int nKExact;
+ int nNumRun;
+ int nChPre = 0;
+ int nChSuf = 0;
+ int nMaxZno;
+ int pKArg[ 200 ], pKBeg[ 200 ], pKEnd[ 200 ], pKKKDum[ 35 ], pKTex[ 200 ];
+ int pLenTyp[ 18 ];
+ int pModArg[ 35 ];
+ int nNTACS;
+ //
+ int32_t nKomLev = -1;
+ //
+ size_t ip;
+ size_t j;
+ size_t k;
+ size_t l;
+ size_t m;
+ size_t n5, n6, n8, n12, n13, n14, n17, n18, n19, n20, n24;
+ size_t nLimArg;
+ size_t nNumHLD = 0;
+ size_t nNumArg;
+ size_t nNumTyp = 14;
+ size_t pKard[ 200 ];
+ size_t pKolInc[ 35 ];
+ //
+ std::string pArgInc[ 35 ];
+ std::string sChLMFS;
+ std::string sChar80;
+ std::string sDumNam = "dum";
+ std::string sFileSave;
+ std::string sPrefix;
+ std::string sSuffix;
+ std::string pTank[ 1000 ];
+ std::string pTypDat[ 18 ] = {
+ "request",
+ "function",
+ "TACS source",
+ "supplemental",
+ "TACS output",
+ "TACS initial",
+ "branch",
+ "switch",
+ "load flow"
+ "initial"
+ "output"
+ "plot"
+ "statistics"
+ };
+ //
+ std::fstream sFile12;
+ //
+ std::stringstream sMFile5;
+ //
+ spycom::pMFiles[ 5 ] = reinterpret_cast<void *>(&sMFile5);
+ if(nKExact != 88333)
+ nNumRun = 0;
+ if((nKExact == 88333) && (nNumRun > 0))
+ goto a5266;
+ if(nNumHLD == -8899)
+ emtp::stoptp();
+ if(nNumHLD == 0)
+ goto a5244;
+ for(j = 1; j <= nNumHLD; j++) {
+ if((strcom::toLower(pTank[ j - 1 ].substr(0, 19)) == "begin new data case") && (j > 3))
+ break;
+ spyf77::sFile6[ j - 1 ] = pTank[ j - 1 ];
+ }
+
+ a3389:
+ spycom::nNumCRD = j - 1;
+ for(k = j; k <= nNumHLD; k++)
+ pTank[ k - spycom::nNumCRD - 1 ] = pTank[ k - 1 ];
+ nNumHLD -= spycom::nNumCRD;
+ if(nNumHLD <= 0)
+ nNumHLD = -8899;
+ blkcom::nNumDCD = 0;
+ goto a1774;
+
+ a5266:
+ nKCut = 0;
+ if(sFileSave.empty())
+ goto a1712;
+ reinterpret_cast<std::fstream *>(spycom::pMFiles[ 4 ]) -> open(sFileSave.c_str(), std::ios::in);
+
+ a1712:
+ if (blkcom::nLLBuff == -3333)
+ reinterpret_cast<std::fstream *>(spycom::pMFiles[ 4 ]) -> seekg(std::ios::beg);
+
+ a5244:
+ if((blkcom::nLLBuff != -3333) && (strcom::toLower(spyf77::sFile6[ spycom::nNumCRD ].substr(0, 4)) != "eof "))
+ goto a1708;
+ spycom::nKVerfy = -4545;
+ nLimArg = 35;
+ blkcom::nNumDCD = 0;
+ spycom::pMFiles[ 4 ] = reinterpret_cast<void *>(&std::cin);
+ spycom::nLimCRD = 30000;
+ n13 = 0;
+ nNTACS = 0;
+ date_time::date44 (blkcom::pDate1);
+ date_time::time44 (blkcom::pTClock);
+ over20::initsp();
+
+ a1311:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " EMTP begins. Send (spy, $attach, debug, help, module, junk, stop) :" << std::endl << std::flush;
+ std::getline(*reinterpret_cast<std::istream *>(spycom::pMFiles[ 4 ]), spyf77::sBuff77);
+ if(!reinterpret_cast<std::fstream *>(spycom::pMFiles[ 4 ]) -> good()) {
+ *(reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 5 ])) << " Could not read from stdin." << std::endl << std::flush;
+ exit (EXIT_FAILURE);
+ }
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 5)) == "stop ")
+ emtp::stoptp();
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 5)) != "disk ")
+ goto a51329;
+ nMaxZno = 4545;
+ goto a1311;
+
+ a51329:
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 7)) == "$attach")
+ goto a1347;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 5)) != "junk ")
+ goto a1332;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Send root word to over-ride \"junk\" for spy and plot windows :" << std::endl << std::flush;
+ (*reinterpret_cast<std::istream *>(spycom::pMFiles[ 4 ])) >> spyf77::sJunker;
+ spyf77::sBuff77 = "spy ";
+
+ a1332:
+ if(spycom::nKVerfy == 0)
+ goto a41332;
+ spycom::nKVerfy = -34543;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ spycom::nKVerfy = 0;
+
+ a41332:
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 6)) == "module")
+ goto a2613;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 5)) != "module")
+ goto a1342;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Greetings, greetings. Welcome to the wonderful new world of interactive" << 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 ])) << " EMTP execution, observation, and control. After sending \"spy\", send" << 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 ])) << " \"help\", and then \"all\" to receive some 500 lines of instruction. Also," << 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 ])) << " see Section 9 of the Rule Book dated June 1984. Also see \"Apollo\"." << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ goto a1311;
+
+ a1342:
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 6)) != "debug ")
+ goto a1347;
+ n13 = 99;
+ goto a1311;
+
+ a1347:
+ spycom::nIprSpy = n13;
+ blkcom::nIprsUp = n13;
+ blkcom::pIprsOV[ 0 ] = n13;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 3)) != "spy")
+ goto a1724;
+ // Begin interactive control sequence, leading to "emtspy":
+ blkcom::nM4Plot = 1;
+ spyf77::sProm80 = " spy:";
+ utilities::prompt(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 6 ]), \
+ spyf77::sProm80);
+
+ a1708:
+ if(blkcom::nM4Plot != 1)
+ goto a2320;
+ spycom::nLockBR = 1;
+ over20::emtspy();
+ if(spycom::nLockBR == 1)
+ goto a1708;
+ goto a1774;
+ // Begin non-interactive variable initialization:
+
+ a1724:
+ blkcom::nM4Plot = 2;
+ blkcom::pLFiles[ 12 ] = reinterpret_cast<void *>(&std::cin);
+ spycom::nNumCRD = 1;
+ spyf77::sFile6.push_back(spyf77::sBuff77);
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 7)) != "$attach")
+ goto a1753;
+ // "$attach,filename,5" usage requires extraction of name:
+ blkcom::pLFiles[ 12 ] = reinterpret_cast<void *> (&sFile12);
+ n16 = 0;
+ for(j = 9; j <= 40; j++) {
+ if((spyf77::sBuff77[ j - 1 ] != ' ') && (n16 == 0))
+ n16 = j;
+ if(spyf77::sBuff77[ j - 1 ] == ',')
+ goto a1746;
+ }
+
+ a1736:
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ---- Illegal file name. Try again ...." << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ goto a1311;
+
+ a1746:
+ n14 = j - n16;
+ spyf77::sANSI32.str().replace(0, n14, spyf77::sBuff77.substr(n16 - 1, j - n16));
+ spyf77::sANSI32.str().resize(n14 + 1);
+ sFileSave = spyf77::sANSI32.str();
+ if(blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Extracted file name ansi32(1:32) =" << spyf77::sANSI32.str() << std::endl << std::flush;
+ if(!utilities::exists(spyf77::sANSI32.str().c_str()))
+ goto a1736;
+ spyf77::sSpyCD2 = spyf77::sANSI32.str();
+ sFile12 = std::fstream(spyf77::sANSI32.str().c_str(), std::ios::in);
+ blkcom::pLFiles[ 12 ] = reinterpret_cast<void *>(&sFile12);
+ spyf77::sFile6[ 0 ] = "c " + spyf77::sBuff77.substr(0, 78);
+ nKCut = 0;
+
+ a1753:
+ ;
+ nKRDOff = spycom::nNumCRD;
+ nKRDCom = 0;
+ for(j = 1; j <= spycom::nLimCRD; j++) {
+ std::string sTemp;
+ //std::getline(*reinterpret_cast<std::istream *>(blkcom::pLFiles[ 12 ]), spyf77::sFile6[ nKRDOff + j - 1 ]);
+ std::getline(*reinterpret_cast<std::istream *>(blkcom::pLFiles[ 12 ]), sTemp);
+ spyf77::sFile6.push_back(sTemp);
+ if(reinterpret_cast<std::istream *>(blkcom::pLFiles[ 12 ]) -> eof())
+ goto a1766;
+ if(nKCut == 1)
+ goto a5486;
+ if(strcom::toLower(spyf77::sFile6[ nKRDOff + j - 1 ].substr(0, 2)) == "c ")
+ ++nKRDCom;
+ if((strcom::toLower(spyf77::sFile6[ nKRDOff + j - 1 ].substr(0, 19)) != "begin new data case") || (j - nKRDCom) <= 3)
+ goto a1756;
+ nKCut = 1;
+
+ a5486:
+ ++nNumHLD;
+ if(nNumHLD > 1000) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Input data cards overflow tank(1000). Halt." << std::endl <<std::flush;
+ emtp::stoptp();
+ }
+ pTank[ nNumHLD - 1 ] = spyf77::sFile6[ nKRDOff + j - 1 ];
+ // If all EMTP data (e.g., "kill codes" use) comes via key
+ // board, it is ended with "eof"; when solved, mode keyboard.
+
+ a1756:
+ if(strcom::toLower(spyf77::sFile6[ nKRDOff + j - 1 ].substr(0, 4)) == "eof ")
+ goto a1766;
+ if(nKCut == 0)
+ ++spycom::nNumCRD;
+ }
+
+ a1760:
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " & & & & & Input buffer overflow. Limit =" << std::setw(6) << spycom::nLimCRD << ". Reject this data, and reprompt ...." << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ if (blkcom::pLFiles[ 12 ] != nullptr)
+ goto a1311;
+ emtp::stoptp();
+
+ a1766:
+ ++spycom::nNumCRD;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done reading disk file into EMTP cache. numcrd =" << std::setw(5) << spycom::nNumCRD << " cards." << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ if(blkcom::pLFiles[ 12 ] != reinterpret_cast<void *>(&std::cin))
+ if(reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> is_open())
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> close();
+
+ a1774:
+ n22 = 1;
+ n13 = 1;
+ // begin loop to replace next presently-visible $include:
+
+ a1776:
+ n17 = 0;
+ for(j = n13; j <= spycom::nNumCRD; j++) {
+
+ a1777:
+ if(spyf77::sFile6[ j - 1 ][ 0 ] != '$')
+ goto a1786;
+ spyf77::sBuff77 = spyf77::sFile6[ j - 1 ];
+ if(spycom::nIprSpy < 3)
+ goto a41777;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " j =" << std::setw(4) << j << " next $-card =" << spyf77::sBuff77.substr(0, 80) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a41777:
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 8)) == "$include")
+ goto a1787;
+ if((strcom::toLower(spyf77::sBuff77.substr(0, 7)) != "$prefix") && (strcom::toLower(spyf77::sBuff77.substr(0, 7)) != "$suffix") && (strcom::toLower(spyf77::sBuff77.substr(0, 6)) != "$level") && (strcom::toLower(spyf77::sBuff77.substr(0, 6)) != "$dummy"))
+ goto a1786;
+ k = 8;
+
+ a1778:
+ if((spyf77::sBuff77[ k - 1 ] != ' ') && (spyf77::sBuff77[ k - 1 ] != ','))
+ goto a1779;
+ ++k;
+ if (k < 80)
+ goto a1778;
+ k = 10;
+ l = 4;
+ if(strcom::toLower(spyf77::sBuff77.substr(4, 3)) == "fix")
+ goto a31779;
+ blkcom::nIStep = j;
+ over20::stopin ();
+ if(blkcom::nKill > 0)
+ goto a9200;
+ goto a1777;
+
+ a1779:
+ if((strcom::toLower(spyf77::sBuff77.substr(0, 7)) != "$prefix") && \
+ (strcom::toLower(spyf77::sBuff77.substr(0, 7)) != "$suffix"))
+ goto a1783;
+ l = spyf77::sBuff77.substr(k - 1, std::string::npos).find(" ");
+ m = spyf77::sBuff77.substr(k - 1, std::string::npos).find(",");
+ if (m != std::string::npos)
+ if (m < l)
+ l = m;
+ --l;
+
+ a31779:
+ n5 = k - 1 + l;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 7)) != "$prefix")
+ goto a1782;
+ sPrefix = spyf77::sBuff77.substr(k - 1, n5 - k + 1);
+ nChPre = l;
+ goto a1785;
+
+ a1782:
+ sSuffix = spyf77::sBuff77.substr(k - 1, n5 - k + 1);
+ nChSuf = l;
+ goto a1785;
+
+ a1783:
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 6)) != "$level")
+ goto a1784;
+ spyf77::sProm80 = spyf77::sBuff77.substr(k - 1, 80 - k + 1);
+ freedom::freeIn(spyf77::sProm80, nKomLev);
+ goto a1785;
+
+ a1784:
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 6)) != "$dummy")
+ goto a1786;
+ sDumNam.replace(0, 3, spyf77::sBuff77.substr(k - 1, 3));
+ spyf77::sANSI8.str().replace(0, 3, spyf77::sBuff77.substr(k + 2, 3));
+ nKntDum = std::stoi(spyf77::sANSI8.str());
+
+ a1785:
+ spyf77::sFile6[ j - 1 ] = "c " + spyf77::sBuff77.substr(0, 78);
+
+ a1786:
+ ;
+ }
+ goto a2320;
+
+ a1787:
+ n13 = j;
+
+ a1788:
+ n26 = 9;
+
+ a1789:
+ if((spyf77::sBuff77[ n26 - 1 ] != ' ') && (spyf77::sBuff77[ n26 - 1 ] != ','))
+ goto a1797;
+ ++n26;
+ if (n26 < 40)
+ goto a1789;
+
+ a1794:
+ blkcom::nIStep = j;
+ over20::stopin();
+ if (blkcom::nKill > 0)
+ goto a9200;
+ goto a1776;
+
+ a1797:
+ k = n26 + 1;
+
+ a1801:
+ if((spyf77::sBuff77[ k - 1 ] == ',') || (spyf77::sBuff77[ k - 1 ] == ' '))
+ goto a1804;
+ ++k;
+ if(k > 60)
+ goto a1794;
+ goto a1801;
+
+ a1804:
+ if (nChPre > 0)
+ spyf77::sANSW80.replace(0, nChPre, sPrefix.substr(0, nChPre));
+ n7 = nChPre + k - n26;
+ spyf77::sANSW80.replace(nChPre, n7 - nChPre, spyf77::sBuff77.substr(n26 - 1, k - n26));
+ if(nChSuf > 0)
+ spyf77::sANSW80.replace(n7, n8 - n7, sSuffix.substr(0, nChSuf));
+ spyf77::sANSW80.resize(n8 + 1);
+
+ a1811:
+ if(n17 == 1)
+ goto a1819;
+ l = spycom::nNumCRD;
+ n19 = spycom::nLimCRD;
+ for(m = j + 1; m <= spycom::nNumCRD; m++) {
+ spyf77::sFile6[ n19 - 1 ] = spyf77::sFile6[ l - 1 ];
+ --l;
+ --n19;
+ }
+ ++n19;
+
+ a1819:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " --- Pass" << std::setw(3) << n22 << ", card =" << std::setw(4) << j << ". Ready to open $include =" << spyf77::sANSW80.substr(0, n8) << std::endl;
+ if(utilities::exists(spyf77::sANSW80.substr(0, n8).c_str()))
+ goto a1794;
+ spyf77::sProm80 = spyf77::sFile6[ j - 1 ];
+ spyf77::sFile6[ j - 1 ] = "c " + spyf77::sProm80.substr(0, 78);
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> open(spyf77::sANSW80.substr(0, n8).c_str(), std::ios::in);
+ n16 = 0;
+ n26 = k + 1;
+
+ a4203:
+ for(l = n26; l <= 80; l++)
+ if((spyf77::sBuff77[ l - 1 ] != ',') && (spyf77::sBuff77[ l - 1 ] != ' '))
+ goto a4208;
+ goto a4226;
+
+ a4208:
+ ++n16;
+ if(n16 > 10)
+ emtp::stoptp();
+ n12 = spyf77::sBuff77.substr(l - 1, std::string::npos).find(",");
+ n13 = spyf77::sBuff77.substr(l - 1, std::string::npos).find(" ");
+ n14 = n12;
+ if(n12 != std::string::npos)
+ goto a4214;
+ n14 = n13;
+ if(n13 != std::string::npos)
+ goto a4220;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " No bounding symbol. Stop after display." << 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 ])) << " Done with argument. l, n12, n13, n14, n26 =" << std::setw(6) << l << n12 << n13 << n14 << n26 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ emtp::stoptp();
+
+ a4214:
+ if((n13 != std::string::npos) && (n13 < n14))
+ n14 = n13;
+
+ a4220:
+ n15 = n14 - 1;
+ pKolInc[ n16 - 1 ] = n15;
+ n18 = l - 1 + n15;
+ pArgInc[ n16 - 1 ] = " ";
+ pArgInc[ n16 - 1 ].replace(0, n15, spyf77::sBuff77.substr(l - 1, n18 - l + 1));
+ n26 = n18 + 1;
+ if(spycom::nIprSpy < 5)
+ goto a4224;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done with argument. l, n12, n13, n14, n26 =" << std::setw(6) << l << n12 << n13 << n14 << n26 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a4224:
+ goto a4203;
+
+ a4226:
+ pKard[ 0 ] = 999999;
+ n1 = 0;
+ if(n16 == 0)
+ goto a4239;
+
+ a4228:
+ for(l = 1; l <= 25; l++)
+ (*reinterpret_cast<std::istream *>(blkcom::pLFiles[ 12 ])) >> pKBeg[ l - 1 ];
+ for(l = 1; l <= 25; l++)
+ if(pKBeg[ l - 1 ] == 0)
+ goto a4230;
+ n1 += 25;
+ if(n1 <= 175)
+ // Overflow. 199 is max number of replacements, temporarily
+ emtp::stoptp();
+
+ a4230:
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> seekg(std::ios::beg);
+ n6 = n1 + l - 1;
+ for (k = 1; k <= n6; k++)
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ])) >> pKard[ k - 1 ];
+ for(k = 1; k <= n6; k++)
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ])) >> pKArg[ k - 1 ];
+ for(k = 1; k <= n6; k++)
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ])) >> pKBeg[ k - 1 ];
+ for(k = 1; k <= n6; k++)
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ])) >> pKEnd[ k - 1 ];
+ for(k = 1; k <= n6; k++)
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ])) >> pKTex[ k - 1 ];
+ if(spycom::nIprSpy < 1)
+ goto a4235;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done reading argument usage vectors. n4 =" << std::setw(5) << n6 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a4235:
+ if(spycom::nIprSpy < 5)
+ goto a4238;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Vectors kard, karg, kbeg, kend, ktext(1:25) ..." << std::setw(5) << n6 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ for(k = 1; k <= n5; k++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << pKard[ k - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ for(k = 1; k <= n5; k++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << pKArg[ k - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ for(k = 1; k <= n5; k++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << pKBeg[ k - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ for(k = 1; k <= n5; k++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << pKEnd[ k - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ for(k = 1; k <= n5; k++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << pKTex[ k - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a4238:
+ pKard[ n6 ] = 999999;
+
+ a4239:
+ n20 = 0;
+ n24 = 1;
+ n5 = 0;
+ n18 = j + 1;
+ nKntMax = 0;
+ nKntOld = nKntDum;
+ for(k = n18; k <= spycom::nLimCRD; k++) {
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ])) >> spyf77::sBuff77;
+ if(reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> eof())
+ goto a1828;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 4)) == "$eof")
+ goto a1828;
+ if(spyf77::sBuff77[ 0 ] == '/')
+ n5 = 1;
+ if(tolower(spyf77::sBuff77[ 0 ]) != 'c')
+ goto a4247;
+ for(l = 1; l <= 10; l++)
+ if(spyf77::sBuff77[ 1 ] == spyf77::pDigit[ l - 1 ])
+ goto a4244;
+ goto a4247;
+
+ a4244:
+ if (l == 10)
+ l = 0;
+ if(l < (size_t) nKomLev)
+ goto a4273;
+ spyf77::sBuff77[ 1 ] = ' ';
+
+ a4247:
+ ++j;
+ spyf77::sFile6[ j - 1 ] = spyf77::sBuff77;
+ if (tolower(spyf77::sBuff77[ 0 ]) == 'c')
+ goto a4273;
+ ++n20;
+ if(spycom::nIprSpy < 3)
+ goto a4249;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Ready with next card. n20, n24, kard(n24) =" << std::setw(8) << n20 << n24 << pKard[ n24 - 1 ] << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a4249:
+ if(n20 < pKard[ n24 - 1 ])
+ goto a4273;
+ n1 = pKBeg[ n24 - 1 ];
+ n2 = pKEnd[ n24 - 1 ];
+ n4 = pKArg[ n24 - 1 ];
+ n3 = pKolInc[ n4 - 1 ];
+ if(n4 <= n16)
+ goto a34250;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " ? ? ? ? Error stop at s.n. 4250 of \"datain\". Insufficient number of $include arguments." << std::endl << " n24, n4, n16 =" << std::setw(8) << n24 << n4 << n16 << std::endl;
+ emtp::stoptp();
+
+ a34250:
+ if(n4 > 0)
+ goto a4252;
+ nKntDum = nKntOld - n4;
+ if(-n4 > nKntMax)
+ nKntMax = -n4;
+ char pTemp[ 4 ];
+ snprintf(pTemp, 4, "%03u", nKntDum);
+ spyf77::sANSI8 << std::string(pTemp);
+ if((n2 - n1) != 5)
+ emtp::stoptp();
+ sDumNam.replace(3, 6, spyf77::sANSI8.str().substr(0, 3));
+ spyf77::sFile6[ j - 1 ].replace(n1 - 1, n2, sDumNam);
+ goto a4249;
+
+ a4252:
+ if(((n2 - n1) != (n3 - 1)) && (pKTex[ n24 - 1 ] == 1))
+ goto a4253;
+ if((n2 - n1) >= (n3 - 1))
+ goto a4261;
+
+ a4253:
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " +++ Argument" << std::setw(4) << n4 << " length-mismatch error. Used on card" << std::setw(4) << n20 << " ." << 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 ])) << " n24 =" << std::setw(4) << n24 << " kbeg, kend =" << std::setw(4) << n1 << n2 << " Length from $include =" << std::setw(4) << n3 << " ." << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ spyf77::sProm80 = " Send correct argument (stop) :";
+ utilities::prompt(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ spyf77::sProm80);
+ if(blkcom::nM4Plot == 1)
+ goto a4259;
+ blkcom::nKill = 79;
+ blkcom::sLStat[ 18 ] = 4259;
+ goto a9200;
+
+ a4259:
+ reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ]) -> read(&pArgInc[ n4 - 1 ][ 0 ], 20);
+ if(strcom::toLower(pArgInc[ n4 - 1 ].substr(0, 5)) == "stop ")
+ emtp::stoptp();
+
+ a4261:
+ n = n2;
+ if(spycom::nIprSpy < 4)
+ goto a34261;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Argument now processed, arginc(n4) =" << pArgInc[ n4 - 1 ].substr(0, 20) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a34261:
+ for(ip = 1; ip <= 20; ip++) {
+ m = 21 - ip;
+ spyf77::cChar1 = pArgInc[ n4 - 1 ][ m - 1 ];
+ if(spyf77::cChar1 == ' ')
+ goto a4263;
+ if(spycom::nIprSpy < 8)
+ goto a54262;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Next non-blank digit. ip, n, digit =" << std::setw(6) << ip << m << "\"" << spyf77::cChar1 << "\"" << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a54262:
+ if(spyf77::cChar1 == '#')
+ spyf77::cChar1 = ' ';
+ if(n < n1)
+ goto a4253;
+ spyf77::sFile6[ j - 1 ][ n - 1 ] = spyf77::cChar1;
+ --n;
+
+ a4263:
+ ;
+ }
+ if(((n + 1) > n1) && (pKTex[ n24 - 1 ] == 1))
+ goto a4253;
+ if(n >= n1)
+ spyf77::sFile6[ j - 1 ].replace(n1 - 1, n - n1, n - n1, ' ');
+ ++n24;
+ goto a4249;
+
+ a4273:
+ ;
+ }
+ goto a1760;
+
+ a1828:
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> close();
+ if(spycom::nIprSpy < 1)
+ goto a1832;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done with disk file (close). j, n19 =" << std::setw(8) << j << n19 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a1832:
+ nKntOld += nKntMax;
+ if(n5 == 1)
+ goto a1833;
+ spyf77::sBuff77.replace(0, 32, "c end of $include. File name = ");
+ spyf77::sBuff77.replace(32, 80, spyf77::sANSW80.substr(0, 48));
+ ++j;
+ spyf77::sFile6[ j - 1 ] = spyf77::sBuff77;
+
+ a1833:
+ if(j > n19)
+ goto a1760;
+ for(m = n19; m <= spycom::nLimCRD; m++) {
+ ++j;
+ spyf77::sFile6[ j - 1 ] = spyf77::sFile6[ m - 1 ];
+ if(strcom::toLower(spyf77::sFile6[ j ].substr(0, 8)) == "$include")
+ goto a1841;
+ }
+ spycom::nNumCRD = j;
+ ++n22;
+ goto a1776;
+
+ a1841:
+ n19 = m + 1;
+ if(spycom::nIprSpy < 1)
+ goto a1847;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Next $include recognized in do 1835. m =" << std::setw(6) << m << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a1847:
+ spyf77::sBuff77 = spyf77::sFile6[ j - 1 ];
+ n17 = 1;
+ goto a1788;
+ // Following code processes any $spy usage:
+
+ a2320:
+ j = 1;
+ n7 = 0;
+ n17 = 0;
+
+ a2347:
+ do {
+ if(j > spycom::nNumCRD)
+ goto a2415;
+ if(spyf77::sFile6[ j - 1 ].substr (0, 3) != "$spy")
+ goto a2378;
+ ++n7;
+ if(n7 > 9)
+ emtp::stoptp ();
+ spyf77::sFile6[ j - 1 ] = "$spy, spyfile .dat, 0,";
+ spyf77::sFile6[ j - 1 ][ 13 ] = spyf77::pDigit[ n7 - 1 ];
+ spyf77::sANSI32 << "spyfile .dat";
+ spyf77::sANSI32.str()[ 7 ] = spyf77::pDigit[ n7 - 1 ];
+ if(blkcom::nIprsUp < 1)
+ goto a2353;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Prepare to open for $spy. ansi32 =" << spyf77::sANSI32.str().substr(0, 32) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2353:
+ blkcom::pLFiles[ 12 ] = reinterpret_cast<void *> (new std::fstream);
+ if(!blkcom::pLFiles[ 12 ]) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 0 ])) << " Could not reserve memory for stream in datain a2353. Exiting.\n";
+ exit(EXIT_FAILURE);
+ }
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> open(spyf77::sANSI32.str().c_str(), std::ios::in);
+ for(k = j + 1; k <= spycom::nNumCRD; k++) {
+ if(strcom::toLower(spyf77::sFile6[ k - 1 ].substr(0, 7)) != "$spyend") {
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> close();
+ n24 = k - j;
+ for(l = k + 1; l <= spycom::nNumCRD; l++)
+ spyf77::sFile6[ l - n24 - 1 ] = spyf77::sFile6[ l - 1 ];
+ spycom::nNumCRD -= n24;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done with upward shift. n24, k, numcrd =" << std::setw(8) << n24 << j << spycom::nNumCRD << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ break;
+ } else
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ])) << spyf77::sFile6[ k - 1 ].substr(0, 80) << std::endl;
+ }
+
+ a2378:
+ if(spyf77::sFile6[ j - 1 ][ 0 ] == '/')
+ n17 = 1;
+ if(strcom::toLower(spyf77::sFile6[ j - 1 ].substr (0, 8)) != "tacs old")
+ goto a2410;
+ nNTACS = 2;
+ spyf77::sFile6[ j - 1 ].replace(0, 2, "c ");
+
+ a2410:
+ ++j;
+ } while(1);
+
+ a2415:
+ if (n17 == 0)
+ goto a9800;
+ // Begin code to sort EMTP data according to class :
+ n1 = 0;
+ n10 = 0;
+ n11 = 0;
+ n12 = 0;
+ if (blkcom::nIprsUp >= 9)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Entire input file as we start sorting ..." << std::endl << std::setw(5);
+ for(j = 1; j <= spycom::nNumCRD; j++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << j << spyf77::sFile6[ j - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ for(j = 1; j <= spycom::nNumCRD; j++) {
+
+ a2418:
+ if(spyf77::sFile6[ j - 1 ][ 0 ] != '/')
+ goto a2431;
+ ++n12;
+ labcom::pKSSFrq[ n12 - 1 ] = j;
+ labcom::pKPSour[ n12 - 1 ] = 0;
+ if(n12 == 1)
+ goto a2420;
+ if(labcom::pKPSour[ n12 - 2 ] == 0)
+ labcom::pKPSour[ n12 - 2 ] = j - 1;
+
+ a2420:
+ for(k = 1; k <= nNumTyp; k++)
+ if(spyf77::sFile6[ j - 1 ].substr(1, 12) == pTypDat[ k - 1 ])
+ goto a2428;
+ if(strcom::toLower(spyf77::sFile6[ j - 1 ].substr(1, 9)) != "tacs data")
+ goto a2424;
+ k = 6;
+ nNTACS = 1;
+ goto a2428;
+
+ a2424:
+ if(spycom::pMFiles[ 3 ] == nullptr)
+ emtp::stoptp();
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ---- Illegal file name. Try again ...." << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ]) -> read(&spyf77::sFile6[ j - 1 ][ 0 ], 80);
+ goto a2418;
+
+ a2428:
+ labcom::pKode[ n12 - 1 ] = k;
+ if(k == 1)
+ n1 = 1;
+ if(k == 10)
+ n10 = 1;
+ if(k == 11)
+ n11 = 1;
+
+ a2431:
+ if((n12 >= 1) && (labcom::pKPSour[ n12 - 1 ] == 0) && (strcom::toLower(spyf77::sFile6[j - 1 ].substr(0, 6)) == "blank "))
+ labcom::pKPSour[ n12 - 1 ] = j - 1;
+ }
+ if(labcom::pKPSour[ n12 - 1 ] == 0)
+ labcom::pKPSour[ n12 - 1 ] = spycom::nNumCRD;
+ l = 0;
+ if(spycom::nIprSpy < 2)
+ goto a12438;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " row kssfrq kpsour kode" << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ for(j = 1; j <= n12; j++) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(8) << j << labcom::pKSSFrq[ j - 1 ] << labcom::pKPSour[ j - 1 ] << labcom::pKode[ j - 1 ] << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ }
+
+ a12438:
+ ++l;
+ if(l > n12)
+ goto a2444;
+ if((labcom::pKode[ l - 1 ] <= 1) || (labcom::pKode[ l - 1 ] > 6))
+ goto a12438;
+ if(nNTACS == 1)
+ goto a12438;
+ nn1 = labcom::pKSSFrq[ l - 1 ] + 1;
+ nn2 = labcom::pKPSour[ l - 1 ];
+ if(labcom::pKode[ l - 1 ] > 2)
+ goto a12448;
+ for(ll = nn1; ll <= nn2; ll++) {
+ if(spyf77::sFile6[ ll - 1 ].substr(0, 2) != "99")
+ spyf77::sFile6[ ll - 1 ].replace (0, 2, " ");
+ }
+ goto a12438;
+
+ a12448:
+ if(labcom::pKode[ l - 1 ] > 3)
+ goto a12458;
+ for(ll = nn1; ll <= nn2; ll++) {
+ if((spyf77::sFile6[ ll - 1 ][ 0 ] == '$') || (spyf77::sFile6[ ll - 1 ][ 0 ] == '9') || (tolower(spyf77::sFile6[ ll - 1 ][ 0 ]) == 'c'))
+ goto a12456;
+ if(spyf77::sFile6[ ll - 1 ][ 1 ] != '1')
+ goto a12450;
+ spyf77::sFile6[ ll - 1 ][ 0 ] = '1';
+ goto a12456;
+
+ a12450:
+ if(spyf77::sFile6[ ll - 1 ][ 1 ] != '2')
+ goto a12452;
+ spyf77::sFile6[ ll - 1 ].replace(0, 2, "14");
+ goto a12456;
+
+ a12452:
+ spyf77::sFile6[ ll - 1 ][ 0 ] = '2';
+
+ a12456:
+ ;
+ }
+ goto a12438;
+
+ a12458:
+ if(labcom::pKode[ l - 1 ] > 4)
+ goto a12468;
+ goto a12438;
+
+ a12468:
+ if(labcom::pKode[ l - 1 ] > 5)
+ goto a12478;
+ for(ll = nn1; ll <= nn2; ll++) {
+ if(spyf77::sFile6[ ll - 1 ][ 0 ] == ' ')
+ spyf77::sFile6[ ll - 1 ].replace(0, 1, "33");
+ }
+ goto a12438;
+
+ a12478:
+ for(ll = nn1; ll <= nn2; ll++) {
+ if(spyf77::sFile6[ ll - 1 ][ 0 ] == ' ')
+ spyf77::sFile6[ ll - 1 ].replace(0, 2, "77");
+ }
+ goto a12438;
+
+ a2444:
+ n17 = 1;
+ n18 = labcom::pKSSFrq[ n17 - 1 ];
+ n8 = 0;
+ n24 = spycom::nNumCRD;
+ j = 0;
+ if(strcom::toLower(spyf77::sFile6[ 0 ].substr(0, 9)) != "c $attach")
+ goto a2445;
+ ++n24;
+ spyf77::sFile6[ n24 - 1 ] = spyf77::sFile6[ 0 ];
+ j = 1;
+
+ a2445:
+ if(strcom::toLower(spyf77::sFile6[ j ].substr(0, 16)) != "begin new data c")
+ goto a2446;
+ ++n24;
+ spyf77::sFile6[ n24 - 1 ] = spyf77::sFile6[ j ];
+ ++j;
+
+ a2446:
+ if(n1 == 0)
+ goto a2453;
+ n8 = 1;
+ goto a2472;
+
+ a2453:
+ ++j;
+ if(j > spycom::nNumCRD)
+ goto a2497;
+ if(j != n18)
+ goto a2456;
+ j = labcom::pKPSour[ n17 - 1 ];
+ ++n17;
+ n18 = labcom::pKSSFrq[ n17 - 1 ];
+ goto a2453;
+
+ a2456:
+ if(n8 != 9)
+ goto a2458;
+ if(n10 == 0)
+ goto a2460;
+ n8 = n10;
+ goto a2472;
+
+ a2458:
+ if(n8 != 10)
+ goto a2462;
+
+ a2460:
+ if(n11 == 0)
+ goto a2462;
+ n8 = n11;
+ goto a2472;
+
+ a2462:
+ if(strcom::toLower(spyf77::sFile6[ j - 1 ].substr(0, 6)) != "blank ")
+ goto a2493;
+ if(spycom::nIprSpy < 2)
+ goto a2465;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Blank card recognized. j =" << std::setw(6) << j << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2465:
+ for(k = 1; k < nNumTyp; k++) {
+ n8 = pLenTyp[ k - 1 ];
+ n14 = spyf77::sFile6[ j - 1 ].find(pTypDat[ k - 1 ].substr(0, n8));
+ if(n14 != std::string::npos)
+ goto a2469;
+ }
+ n14 = strcom::toLower(spyf77::sFile6[ j - 1 ]).find("tacs data");
+ if(n14 == std::string::npos)
+ goto a2493;
+ k = 6;
+
+ a2469:
+ n8 = k;
+ // Convert end of class blank card in old TACS data to comment card
+ if((k == 2) || (k == 3) || (k == 4) || (k == 5))
+ spyf77::sFile6[ j - 1 ].replace(0, 2, "c ");
+
+ a2472:
+ if(spycom::nIprSpy < 3)
+ goto a2475;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Data class needs consideration. n8 =" << std::setw(6) << n8 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2475:
+ for(k = 1; k <= n12; k++) {
+ if(labcom::pKode[ k - 1 ] == n8) {
+ n5 = labcom::pKSSFrq[ k - 1 ] + 1;
+ n6 = labcom::pKPSour[ k - 1 ];
+ if((n24 + n6 - n5) >= spycom::nLimCRD)
+ goto a1760;
+ for(l = n5; l <= n6; l++) {
+ ++n24;
+ spyf77::sFile6[ n24 - 1 ] = spyf77::sFile6[ l - 1 ];
+ }
+ if(spycom::nIprSpy >= 3) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done with \"/\" copy below. n5, n6, n24 =" << std::setw(6) << n5 << n6 << n24 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ }
+ }
+ }
+ if((n8 == 10) || (n8 == 11))
+ goto a2456;
+ if(j <= 2)
+ goto a2453;
+
+ a2493:
+ ++n24;
+ spyf77::sFile6[ n24 - 1 ] = spyf77::sFile6[ j - 1 ];
+ if(n24 >= spycom::nLimCRD)
+ goto a1760;
+ if(j < spycom::nNumCRD)
+ goto a2453;
+
+ a2497:
+ if(spycom::nIprSpy < 9)
+ goto a2500;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done with lower assembly. n24 =" << std::setw(8) << n24 <<std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2500:
+ j = 0;
+ for(k = spycom::nNumCRD + 1; k <= n24; k++) {
+ ++j;
+ spyf77::sFile6[ j - 1 ] = spyf77::sFile6[ k - 1 ];
+ if(spycom::nIprSpy >= 9) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Card" << std::setw(3) << j << "." << spyf77::sFile6[ j - 1 ].substr(0, 80) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ }
+ }
+ spycom::nNumCRD = j;
+ if(spycom::nIprSpy < 1)
+ goto a2509;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done with all \"/\" processing. numcrd =" << std::setw(8) << spycom::nNumCRD << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2509:
+ if(blkcom::nM4Plot == 1)
+ over20::spying();
+ goto a9800;
+ // Begin code to process "module" of user. Convert user data
+ // from "arg", "dum", and "num" character declarations to
+ // the vectors kard/karg/kbeg/kend/ktex as needed by $include
+
+ a2613:
+ spycom::nIprSpy = n13;
+ spycom::nNumCRD = 0;
+ over20::spying();
+ n8 = 0;
+ nNumArg = 0;
+ n11 = spycom::nLimCRD + 1;
+ n13 = 0;
+ n4 = 1;
+ movecopy::copy(n4, pModArg, nLimArg);
+ goto a2628;
+
+ a2621:
+ --n11;
+ spyf77::sFile6[ n11 - 1 ] = spyf77::sBuff77;
+
+ a2628:
+ ++n13;
+ if(n13 > spycom::nNumCRD)
+ goto a2703;
+ spyf77::sBuff77 = spyf77::sFile6[ n13 - 1 ];
+ if((strcom::toLower(spyf77::sBuff77.substr(0, 3)) != "arg") && (strcom::toLower(spyf77::sBuff77.substr(0, 3)) != "dum") && (strcom::toLower(spyf77::sBuff77.substr(0, 3)) != "num"))
+ goto a2621;
+ k = 4;
+ ++n8;
+ spyf77::sFile6[ n8 - 1 ] = spyf77::sBuff77;
+
+ a2637:
+ if((spyf77::sBuff77[ k - 1 ] != ' ') && (spyf77::sBuff77[ k - 1 ] != ','))
+ goto a2648;
+ ++k;
+ if(k <= 80)
+ goto a2637;
+ goto a2628;
+
+ a2648:
+ l = k + 1;
+
+ a2656:
+ if((spyf77::sBuff77[ l - 1 ] != ' ') || (spyf77::sBuff77[ l - 1 ] != ','))
+ goto a2664;
+ ++l;
+ if(l <= 80)
+ goto a2656;
+
+ a2664:
+ --l;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 3)) != "num")
+ goto a2687;
+ for(m = 1; m <= nNumArg; m++) {
+ n6 = l - k + 1;
+ if((pKolInc[ m - 1 ] == n6) && (pArgInc[ m - 1 ].substr(0, n6) == spyf77::sBuff77.substr(k - 1, l - k + 1))) {
+ pModArg[ m - 1 ] = 0;
+ goto a2695;
+ }
+ }
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ??? Illegal \"num\" declaration. Unrecognized name = " << spyf77::sBuff77.substr(k - 1, l - k + 1) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ emtp::stoptp();
+
+ a2687:
+ ++nNumArg;
+ if(nNumArg <= nLimArg)
+ goto a2692;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Overflow error stop. Argument usage is limited in number to limarg =" << std::setw(5) << nLimArg;
+
+ a2692:
+ pArgInc[ nNumArg - 1 ] = spyf77::sBuff77.substr(k - 1, l - k + 1);
+ pKolInc[ nNumArg - 1 ] = l - k + 1;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 3)) == "dum")
+ pKKKDum[ nNumArg - 1 ] = 1;
+
+ a2695:
+ k = l + 1;
+ goto a2637;
+
+ a2703:
+ --n11;
+ spyf77::sANSI32 << blkcom::pDate1[ 0 ].substr (0, 4) + blkcom::pDate1[ 1 ].substr (0, 4) + std::string(2, ' ') + blkcom::pTClock[ 0 ].substr (0, 4) + blkcom::pTClock[ 1 ].substr(0, 4);
+ spyf77::sFile6[ n11 - 1 ] = "$eof user-supplied header cards follow. ";
+ spyf77::sFile6[ n11 - 1 ].replace(50, 18, spyf77::sANSI32.str().substr(0, 18));
+ for(j = 1; j <= n8; j++) {
+ --n11;
+ spyf77::sFile6[ n11 - 1 ] = spyf77::sFile6[ j - 1 ];
+ }
+ if(spycom::nIprSpy < 1)
+ goto a2721;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done processing declarations. n8, n11, limcrd =" << std::setw(5) << n8 << n11 << spycom::nLimCRD << 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 ])) << " row kolinc kkkdum modarg arginc ...." << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ for(j = 1; j <= nNumArg; j++) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << j << pKolInc[ j - 1 ] << pKKKDum[ j - 1 ] << pModArg[ j - 1 ] << pArgInc[ j - 1 ].substr(0, 20) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ }
+
+ a2721:
+ n20 = 0;
+ n16 = spycom::nLimCRD + 1;
+ n13 = 0;
+ for(n17 = n11; n17 <= spycom::nLimCRD; n17++) {
+ --n16;
+ spyf77::sBuff77 = spyf77::sFile6[ n16 - 1 ];
+ if(tolower(spyf77::sBuff77[ 0 ]) == 'c')
+ goto a2766;
+ ++n13;
+ if(spyf77::sBuff77[ 0 ] == '/')
+ goto a2766;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 4)) == "$eof")
+ goto a2772;
+ for(j = 1; j <= nNumArg; j++) {
+ l = 1;
+ n15 = pKolInc[ j - 1 ];
+
+ a2724:
+ k = spyf77::sBuff77.substr(l - 1, std::string::npos).find(pArgInc[ j - 1 ].substr(0, n15));
+ if(k == std::string::npos)
+ goto a2754;
+ ++n20;
+ if(n20 <= 200)
+ goto a2737;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ==== Overflow error stop at card number" << std::setw(6) << n16 << " over 200 arguments." << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ emtp::stoptp();
+
+ a2737:
+ pKArg[ n20 - 1 ] = j;
+ if(j > nNumArg)
+ pKArg[ n20 - 1 ] = -(j - nNumArg);
+ pKard[ n20 - 1 ] = n13;
+ pKBeg[ n20 - 1 ] = l - 1 + k;
+ pKEnd[ n20 - 1 ] = pKBeg[ n20 ] + n15 - 1;
+ if(j <= nNumArg)
+ pKTex[ n20 - 1 ] = pModArg[ j - 1 ];
+ l = pKEnd[ n20 - 1 ] + 1;
+ if(spycom::nIprSpy < 6)
+ goto a2749;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Another string found. n16, j, l, k, n20 =" << std::setw(6) << n16 << j << l << k << n20 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2749:
+ goto a2724;
+
+ a2754:
+ ;
+ }
+ if(spycom::nIprSpy < 2)
+ goto a2766;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done with this card. n16, n20 =" << std::setw(5) << n16 << n20 << " buff77=" << spyf77::sBuff77.substr(0, 80) << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2766:
+ ;
+ }
+
+ a2772:
+ if(spycom::nIprSpy < 1)
+ goto a2778;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Done with identifying all arguments of all cards. n20 =" << std::setw(4) << n20 << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a2778:
+ if(((n20 / 25) * 25) != n20)
+ goto a2783;
+ // Extra zero entry must be added, since otherwise card is full:
+ ++n20;
+ pKard[ n20 - 1 ] = 0;
+ pKArg[ n20 - 1 ] = 0;
+ pKBeg[ n20 - 1 ] = 0;
+ pKEnd[ n20 - 1 ] = 0;
+ pKTex[ n20 - 1 ] = 0;
+
+ a2783:
+ spyf77::sProm80 = " Send output file name for final $include file :";
+ utilities::prompt(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ spyf77::sProm80);
+ reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ]) -> read(&spyf77::sBuff77[ 0 ], 80);
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> open(spyf77::sBuff77.c_str(), std::ios::in);
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> seekg(std::ios::beg);
+ spyf77::sANSI8.str().replace(0, 4, "kard");
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << spyf77::sANSI8.str().substr(0, 4);
+ for(j = 1; j <= n20; j++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << pKard[ j - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << std::endl;
+ spyf77::sANSI8.str().replace(0, 4, "karg");
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << spyf77::sANSI8.str().substr(0, 4);
+ for(j = 1; j <= n20; j++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << pKArg[ j - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << std::endl;
+ spyf77::sANSI8.str().replace(0, 4, "kbeg");
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << spyf77::sANSI8.str().substr(0, 4);
+ for(j = 1; j <= n20; j++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << pKBeg[ j - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << std::endl;
+ spyf77::sANSI8.str().replace(0, 4, "kend");
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << spyf77::sANSI8.str().substr(0, 4);
+ for(j = 1; j <= n20; j++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << pKEnd[ j - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << std::endl;
+ spyf77::sANSI8.str().replace(0, 4, "ktex");
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << spyf77::sANSI8.str().substr(0, 4);
+ for(j = 1; j <= n20; j++)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << pKTex[ j - 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ])) << std::endl;
+ for(j = n11; j <= spycom::nLimCRD; j++)
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ])) << spyf77::sFile6[ spycom::nLimCRD + n11 - j - 1 ].substr(0, 80) << std::endl;
+ reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 12 ]) -> close();
+ goto a1311;
+
+ a9200:
+ blkcom::nChain = 51;
+ blkcom::sLStat[ 17 ] = -1;
+
+ a9800:
+ if(nNTACS != 2)
+ goto a9002;
+ k = 1;
+ for(j = 1; j <= spycom::nNumCRD; j++) {
+ if((strcom::toLower(spyf77::sFile6[ j - 1 ].substr(0, 5)) != "blank") && !spyf77::sFile6[ j - 1 ].empty())
+ goto a3005;
+ ++k;
+ if(k >= 6)
+ goto a9002;
+ spyf77::sFile6[ j - 1 ].replace(0, 2, "c ");
+ goto a3500;
+
+ a3005:
+ switch(k) {
+ case 1:
+ goto a3010;
+
+ case 2:
+ goto a3020;
+
+ case 3:
+ goto a3500;
+
+ case 4:
+ goto a3040;
+
+ case 5:
+ goto a3050;
+ }
+
+ a3010:
+ if(spyf77::sFile6[ j - 1 ].substr(0, 2) == "99")
+ spyf77::sFile6[ j - 1 ].replace(0, 2, " ");
+ goto a3500;
+
+ a3020:
+ if((tolower(spyf77::sFile6[ j - 1 ][ 0 ]) == 'c') || (spyf77::sFile6[ j - 1 ][ 0 ] == '9') || (spyf77::sFile6[ j - 1 ][ 0 ] == '$'))
+ ;
+ else {
+ if(spyf77::sFile6[ j - 1 ][ 0 ] != '1')
+ goto a3022;
+ spyf77::sFile6[ j - 1 ][ 0 ] = '1';
+ }
+ break;
+
+ a3022:
+ if(spyf77::sFile6[ j - 1 ][ 1 ] != '2')
+ goto a3024;
+ spyf77::sFile6[ j - 1 ].replace(0, 2, "14");
+ break;
+
+ a3024:
+ spyf77::sFile6[ j - 1 ][ 0 ] = '2';
+ break;
+
+ a3040:
+ if(spyf77::sFile6[ j - 1 ][ 0 ] != ' ')
+ goto a3500;
+ spyf77::sFile6[ j - 1 ].replace(0, 2, "33");
+ break;
+
+ a3050:
+ if(spyf77::sFile6[ j - 1 ][ 0 ] != ' ')
+ goto a3500;
+ spyf77::sFile6[ j - 1 ].replace(0, 2, "77");
+ break;
+ }
+
+ a3500:
+ ;
+
+ a9002:
+ if(blkcom::nIprsUp < 1)
+ goto a9007;
+ (*reinterpret_cast<std::stringstream *> (spycom::pMFiles[ 5 ])) << " Exit \"datain\". numcrd, limcrd, kill =" << std::setw(8) << spycom::nNumCRD << spycom::nLimCRD << blkcom::nKill << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a9007:
+ return;
+ }
+
+}
+
+// end of file datain.cpp
diff --git a/sources/dekplt.cpp b/sources/dekplt.cpp
new file mode 100644
index 0000000..bded79d
--- /dev/null
+++ b/sources/dekplt.cpp
@@ -0,0 +1,265 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file dekplt.cpp
+
+#include "dekplt.hpp"
+
+namespace dekplt {
+
+ char pBBus[ 300 ];
+ char pBusLst[ 1000 ];
+ //
+ int nIBaud;
+ int nIBrnch;
+ int nIBsOut;
+ int nICHEnd;
+ int nICHRef;
+ int nICP;
+ int nICurse;
+ int nIHS;
+ int nInchPX;
+ int nInchPY;
+ int nInd1;
+ int nIndExp;
+ int nInWait;
+ int nIPrsrt;
+ int nITerm;
+ int nIZgr1;
+ int nIZgr2;
+ int nIZid;
+ int nZtit;
+ int nIzxax;
+ int nIzyax;
+ int nJhmsp = 0;
+ int nKLevl = 0;
+ int nKExtr = 0;
+ int nL4Plot;
+ int nLchfil;
+ int nLchid;
+ int nLchlim;
+ int nLchsup;
+ int nLchtit;
+ int nLchxax;
+ int nLchyax;
+ int nLdshg1;
+ int nLdshg2;
+ int nLimCol;
+ int nLimFix = 0;
+ int nLook;
+ int nLSymb;
+ int nLTic;
+ int nLu7Plt;
+ int nLinePR;
+ int nLTek;
+ int nMaxEv;
+ int nMaxEw;
+ int nMaxIp;
+ int nMaxIsx;
+ int nMaxIsy;
+ int nMaxSym;
+ int nMFake;
+ int nMGrid1;
+ int nMGrid2;
+ int nMid;
+ int nMLine;
+ int nMSuper;
+ int nMTit;
+ int nMu6Sav;
+ int nMu6Std;
+ int nMxypl;
+ int nNamVar;
+ int nNc;
+ int nChSup;
+ int nChVer;
+ int nCut;
+ int nCut1;
+ int nCut2;
+ int nNewFil;
+ int nNoLabl;
+ int nSmplt = 50;
+ int nNT2;
+ int nNumBrn;
+ int nNumFlt;
+ int nNumNVO;
+ int nNumOut;
+ int nNumRaw;
+ int nNumTek;
+ int nNumTit;
+ int nV;
+ int nXEnd;
+ int nXId6;
+ int nXInch;
+ int nXMax;
+ int nXOff;
+ int nXVern;
+ int nYEnd;
+ int nYId6;
+ int nYInch;
+ int nYMax;
+ int nYOff;
+ int pIVCom[ 60 ];
+ int pLabrtm[ 20 ];
+ int pMCurve[ 20 ];
+ int pMLevel[ 20 ];
+ int pMMM[ 20 ];
+ int nMPlot[ 20 ];
+ int pMStart[ 20 ];
+ int pMSymbT[ 20 ];
+ int pNumPts[ 20 ];
+ //
+ double nDX;
+ double nDXGrd1;
+ double nDXGrd2;
+ double nDY;
+ double nDYGrd1;
+ double nDYGrd2;
+ double nEvnByt;
+ double nFact;
+ double nFHTax;
+ double nFill;
+ double nFill1;
+ double nFill2;
+ double nFinFin = 1.0e12;
+ double nFLine;
+ double nFSymb;
+ double nFTCarr;
+ double nFVAxtt;
+ double nFXId;
+ double nFXNumH;
+ double nFXNumV;
+ double nFXSup;
+ double nFXTit;
+ double nFXVert;
+ double nFYId;
+ double nFYSup;
+ double nFYTit;
+ double nGMax;
+ double nGMin;
+ double nHA;
+ double nHMax;
+ double nHMin;
+ double nHPI;
+ double nHTax;
+ double nPapLim = 36.0;
+ double nPapMax;
+ double nSizID;
+ double nSizSup;
+ double nSizTit;
+ double nTAxisL = 5.0;
+ double nTimeBeg = 0.0;
+ double nTimeEnd = 1.0e20;
+ double nTMult;
+ double nTolrce = 8.0e-5;
+ double nTStep;
+ double nVaxIsl;
+ double nVH = 6.0;
+ double nVL = 5.0;
+ double nVMax;
+ double nVMaxR;
+ double nVMin;
+ double nVMinR;
+ double nVS = 1.0;
+ double nXId;
+ double nXSuper;
+ double nXTit;
+ double nYId;
+ double nYSuper;
+ double nYTit;
+ double pAAA[ 20 ];
+ double pBBB[ 20 ];
+ double pBX[ 150 ];
+ double pDatePL[ 2 ];
+ double pDYOld[ 20 ];
+ double pEV[ 15000 ];
+ double pEW[ 15000 ];
+ double pFVCom[ 50 ];
+ double pFXRef[ 25 ];
+ double pFYRef[ 25 ];
+ double pTClop[ 2 ];
+ double pTTLev[ 20 ];
+ double pTTMax[ 20 ];
+ double pTTMin[ 20 ];
+ double pYLevel[ 20 ];
+ double pYYMax[ 20 ];
+ double pYYMin[ 20 ];
+ //
+ extern std::string sFilNam;
+ std::string sAlpha;
+ std::string sBuffIn;
+ std::string sVertL;
+ std::string sHeadL;
+ std::string sXYTitl;
+ std::string sTextD1;
+ std::string sTextD2;
+ std::string sCurren;
+ std::string sVoltag;
+ std::string sBrClas;
+ std::string sDate;
+ std::string sTime;
+ std::string sANSI;
+ std::string pSlot1[ 20 ];
+ std::string pSext[ 6 ];
+ std::string pHorzL[ 8 ];
+ std::string pIBuff[ 20 ];
+ std::string pABuff77[ 10 ];
+ std::string pAnPlt[] = {
+ "choice",
+ "stop",
+ "purge",
+ "help",
+ "smooth",
+ "size",
+ "show",
+ "line",
+ "copy",
+ "end",
+ "repeat",
+ "flush",
+ "playback",
+ "pen",
+ "factor",
+ "offset",
+ "limits",
+ "time",
+ "timespan",
+ "debug",
+ "tek",
+ "stack",
+ "printer",
+ "metric",
+ "all time",
+ "column",
+ "set colu",
+ "out",
+ "longer",
+ "average",
+ "in",
+ "rescale",
+ "last",
+ "batch",
+ "punch",
+ "extrema",
+ "level",
+ "no plot",
+ "message",
+ "time uni",
+ "label",
+ "cursor",
+ "x-y plot",
+ "slope",
+ "back",
+ "set data"
+ };
+ //
+ tIVCom sIVCom = {
+ .m_nXInch = 74,
+ .m_nYInch = 68,
+ .m_nXOff = 100,
+ .m_nYOff = 40,
+ .m_nXVern = 30,
+ };
+ //
+}
+
+
+// end of file dekplt.cpp
diff --git a/sources/dekspy.cpp b/sources/dekspy.cpp
new file mode 100644
index 0000000..aeacd05
--- /dev/null
+++ b/sources/dekspy.cpp
@@ -0,0 +1,164 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file dekspy.cpp
+
+#include "dekspy.hpp"
+
+char *cFilByt;
+double *pPltBuf;
+double pForByt[ 600 ];
+bool bLogVar;
+
+namespace spycom {
+
+ void *pMFiles[ 16 ] = {
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr
+ };
+ //
+ char cChar1;
+ char pByteBuf[ 20 ];
+ //
+ long int nITExp;
+ long int nNumSym;
+ long int nJJRoll;
+ long int nMaxArg;
+ long int nKilPer;
+ long int nKFile5;
+ long int nKLevel;
+ long int nKVerfy;
+ long int nJWord;
+ long int nIBegCL;
+ long int nIEndCL;
+ long int nLIdnt1;
+ long int nLIdnt2;
+ long int nNBreak;
+ long int nLinNow;
+ long int nLinSPN;
+ long int nNumKey;
+ long int nIndBuf;
+ long int nIndBeg;
+ long int nMFlush;
+ long int nNewVec;
+ long int nMaxFLG;
+ long int nKSPSav;
+ long int nMemKAR;
+ long int nNoBack;
+ long int nLSerLC;
+ long int nKSerLC;
+ long int nKBRSer;
+ long int nLockBR;
+ long int nKErase;
+ long int nKomAdd;
+ long int nIprSpy;
+ long int nMonitR;
+ long int nMonitS;
+ long int nKBreak;
+ long int nLimBuf;
+ long int nKOLOut;
+ long int nNumex;
+ long int nNexMod;
+ long int nNextSN;
+ long int nIncHlp;
+ long int nKSymbl;
+ long int nKopyIt;
+ long int nKSlowR;
+ long int nKWTSpy;
+ long int nNumRMP;
+ long int nLUntSP;
+ long int nLogVar;
+ long int nLimCRD;
+ long int nNumCRD;
+ //
+ long int pIASCII[ 1000 ];
+ long int pIndXRP[ 20 ];
+ long int pIVec[ 1000 ];
+ long int pLabels[ 15];
+ long int pLocate[ 1000 ];
+ long int pNLine[ 1000 ];
+ long int pLimArr[ 4 ];
+ long int pIMin[ 55 ];
+ long int pIMax[ 55 ];
+ long int pKSMSpy[ 3 ];
+ long int pLocOut[ 55 ];
+ long int pIntOut[ 55 ];
+ long int pLoopRP[ 20 ];
+ long int pN10RMP[ 20 ];
+ long int pKonTAC[ 14 ];
+ long int pKonAdd[ 14 ];
+ long int pKBegTX[ 85 ];
+ long int pKar1[ 1 ];
+ long int pKar2[ 2 ];
+ long int pKYRamp[ 20 ];
+ //
+ double *pFKar1;
+ double *pFKar2;
+ double *pPltBuf;
+ // equivalence (kar1, fkar1), (kar2, fkar2)
+ double nTMinRP;
+ double nTMaxRP;
+ double nTBreak;
+ double nEPSKOn[ 14 ];
+ double pFBegRP[ 20 ];
+ double pFEndRP[ 20 ];
+ double pForByt[ 600 ];
+ double pRampCN[ 20 ];
+ double pRampSL[ 20 ];
+ double pTBegRP[ 20 ];
+ double pTEndRP[ 20 ];
+ //
+ std::vector<long int> sMemRMP(20);
+
+}
+
+namespace spyf77 {
+
+ char cChar1;
+ char pDigit[ 10 ] = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };
+ char pCol[ 25 ];
+ char pFilExt[ 10 ];
+ //
+ std::string sANSW80;
+ std::string sBlan80;
+ std::string sBroBus;
+ std::string sBuff77;
+ std::string sBytBuf;
+ std::string sBytFnd;
+ std::string pSymb[ 1000 ];
+ std::string sSymbRP[ 20 ];
+ std::string sABufSV;
+ std::string sJunker;
+ std::string sOutLin;
+ std::string pFile6B[ 20 ];
+ std::string sProm80;
+ std::string pTexPar[ 10 ];
+ std::string sSpyCD2;
+ std::string pTexSpy[ 1250 ];
+ //
+ std::stringstream sANSI8;
+ std::stringstream sANSI16;
+ std::stringstream sANSI32;
+ std::stringstream sMFile5;
+ std::stringstream sOutSav;
+ std::stringstream sHeding;
+ //
+ std::vector<std::string> sSpyKWD;
+ //
+ std::vector<std::string> sFile6;
+}
+
+// end of file dekspy.cpp
diff --git a/sources/emtp.cpp b/sources/emtp.cpp
new file mode 100644
index 0000000..5364890
--- /dev/null
+++ b/sources/emtp.cpp
@@ -0,0 +1,1130 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file emtp.cpp
+
+#include "emtp.hpp"
+
+// The EMTP solution process proper consists of numerous secondary-
+// level overlays, each called from module main10 using
+// module number 'nchain' as the indicator of where control is to
+// pass next. The following is a tabulation of valid 'nchain'
+// values, along with the function of the corresponding code. With
+// the possible exception of the time-step loop, 'nchain' is the
+// utpf overlay number of the code to which control is to be
+// transfered next. The overlay number of the time-step loop
+// is given by 'nchain' corresponding to the first quarter of
+// the time-step-loop segmentation, on machines not using ecs
+// overlaying.
+//
+// 1. Input of miscellaneous data cards.
+// 2. Input branch data.
+// 3. Code associated with the cascading of pi-circuits for
+// steady-state phasor solutions only.
+// 4. Input and processing of frequency-dependence data for
+// distributed-parameter line mode.
+// 5. Input of switch and source data cards.
+// 6. Network connectivity output. Setup of transient-network
+// renumbering tables.
+// 7. Network node renumbering routine (John Walker's old
+// subroutine number).
+// 8. Convert tables to new node numbers. Find steady-state
+// phasor equivalents for distributed branches.
+// 9. Set up steady-state phasor network renumbering tables.
+// 10. Form the steady-state admittance matrix (y). Solve for
+// steady-state phasor voltages.
+// 11. Output steady-state phasor solution (if requested).
+// 12. Branch-table and switch-table processing, as preparation
+// for the integration in time-step loop.
+// 13. Setup initial conditions on lumped elements, and past
+// history for distributed lines.
+// 14. Form (Y) for the transients network. Triangularize the
+// first partition (nonswitch/source nodes).
+// 15. Final setup operations before time-step loop.
+// 16. First quarter of time-step loop (checking for changes of
+// switches and pseudo-nonlinear elements, retriangularization
+// of Ybb and calculation of thevenin impedance vectors).
+// 17. Second quarter of time-step loop (branch-table history
+// updating, addition of branch contributions to nodal
+// injected current vector i ).
+// 18. Third quarter of time-step loop (source update, repeat
+// solution of (Y)v = i for node voltage vector v ).
+// 19. Fourth quarter of time-step loop (solution of 3-phase
+// nonlinearities and compensation-based rotating
+// machinery [type-50 s.m., u.m.], superposition to
+// give the total solution including compensation).
+// 20. Punch and print terminal conditions (if requested).
+// Catalog plot-data points on the disk as a permanent file, if
+// misc. data parameter 'icat' is positive.
+
+namespace emtp {
+
+ const long int nLL34 = 34;
+ std::string sSizesFileName;
+ tWords pWords[ 24 ] = {
+ { "a", "attach", 1 },
+ { "p", "punch", 2 },
+ { "out", "output", 3 },
+ { "s", "save", 4 },
+ { "spy", "spydata", 5 },
+ { "d", "disable", 7 },
+ { "r", "return", 10 },
+ { "n", "newfile", 11 },
+ { "ne", "new epsln", 13 },
+ { "de", "delete", 15 },
+ { "m", "monitor", 16 },
+ { "lf", "listoff", 18 },
+ { "ln", "liston", 20 },
+ { "v", "vintage", 21 },
+ { "old", "oldfile", 23 },
+ { "st", "stop", 25 },
+ { "w", "watch5", 26 },
+ { "com", "comment", 27 },
+ { "wi", "width", 29 },
+ { "u", "units", 30 },
+ { "", "", 31 },
+ { "", "", 0 }
+ };
+
+ // subroutine ioerr.
+ void ioerr(const long int &nAddr)
+ {
+ ;
+ }
+
+ // subroutine caterr.
+ void caterr(const long int &nAddr, const long int &nKodErr)
+ {
+ ;
+ }
+
+ void stoptp(void)
+ {
+ // Temporary stop statements of EMTP have been converted to
+ // "CALL STOPTP", allowing installation-dependent clean up.
+ blkcom::sTexCol = blkcom::sABuff.str().substr(0, 80);
+ if((blkcom::nChain == 31) && (blkcom::nLastOV == 1) && (blkcom::nKill == 9999))
+ exit(EXIT_FAILURE);
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Temporary error stop in \"stoptp\"., nchain, lastov =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << blkcom::nChain << blkcom::nLastOV;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Last-read card image ABUFF follows ...." << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << blkcom::sABuff.str() << std::endl << std::flush;
+ exit(EXIT_FAILURE);
+ }
+
+ // subroutine nextcard.
+ void nextcard(void)
+ {
+ long int n7;
+ // This entry is used only for interactive EMTP. It gets
+ // next card image from memory rather than unit 5.
+ n7 = blkcom::nNumDCD + 1;
+
+ a1472:
+ if(spycom::nIprSpy < 5)
+ goto a1486;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " in \"nextcard\":";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setfill(' ') << std::setw(5) << std::dec << n7;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setfill(' ') << std::setw(80) << spyf77::sFile6[ n7 - 1 ] << std::endl;
+ utilities::window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a1486:
+ if(n7 <= spycom::nNumCRD)
+ goto a1488;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " **** **** Data crisis. Last card has been read. numcrd =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << spycom::nNumCRD << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Use \"data\" command of spy to read in next block of data." << std::endl;
+ if(blkcom::nM4Plot != 1)
+ goto a9000;
+ over20::emtspy();
+ goto a1472;
+
+ a1488:
+ blkcom::sABuff.str(spyf77::sFile6[ n7 - 1 ]);
+ goto a9200;
+
+ a9000:
+ blkcom::nKill = 7654;
+
+ a9200:
+ return;
+ }
+
+ // subroutine cimage.
+ void cimage(void)
+ {
+ // VAX-11 installation-dependent EMTP module which serves
+ // to return the next input card. All systems will substitute.
+ //
+ //char pBuff10[ 80 ];
+ //
+ long int i;
+ long int j;
+ long int k;
+ long int l;
+ long int n1, n2, n3, n8 = 0, n11 = 0, n12 = 99999, n13 = 99999;
+ //
+ double d1;
+ double d11 = 0.0;
+ //
+ std::string sBuff10;
+ std::string sFileName;
+ std::string sText1;
+ std::string sText2;
+ std::string sText4("9");
+ std::string sText5("blank");
+ std::string sCharC("c");
+ std::string sChTACS("tacs");
+ //
+ std::fstream *pTempFile1 = nullptr, *pTempFile2 = nullptr, *pTempFile7 = nullptr;
+ //
+ auto a4209 = [ & ](void)
+ {
+ //
+ blkcom::nNFrFld = 1;
+ free((void *) &d11);
+
+ a4225:
+ if(d11 < 0.0)
+ pTempFile1 = pTempFile2;
+ else
+ pTempFile1 = reinterpret_cast<std::fstream *>(blkcom::pLFiles[ (int) d11 ]);
+ if(n8 == 8) {
+ utilities::closeFile(reinterpret_cast<std::fstream *>(pTempFile1));
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+Close file on unit 0x" << std::setfill('0') << std::setw(8) << std::hex << pTempFile1 << " ." << std::endl;
+ if(pTempFile1 == blkcom::pLFiles[ 4 ])
+ blkcom::nNOutPR = 1;
+ } else {
+ if(blkcom::nNOutPR == 0) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+Copy file";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "0x" << std::setfill('0') << std::setw(8) << std::hex << pTempFile1;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " to" << sText1 << " ." << std::endl;
+ }
+ utilities::copyFile(pTempFile1, \
+ pTempFile7, \
+ sFileName);
+ }
+ };
+ auto a4206 = [ & ](void)
+ {
+ pTempFile2 = reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 6 ]);
+ a4209();
+ };
+ auto a4506 = [ & ](void)
+ {
+ long int i;
+ long int k;
+ long int n4;
+ //
+ std::fstream *pTempFile6 = nullptr;
+ std::fstream *pTempFile7 = nullptr;
+ //
+ n4 = 0;
+ sFileName = std::string(25, ' ');
+ for(k = blkcom::nKolBeg; k <= 80; k++) {
+ if(blkcom::sTexCol[ k - 1 ] != ' ') {
+ if((blkcom::sTexCol[ k - 1 ] == blkcom::cCSepar) || \
+ (blkcom::sTexCol[ k - 1 ] == '('))
+ goto a4536;
+ ++n4;
+ sFileName[ n4 - 1 ] = blkcom::sTexCol[ k - 1 ];
+ }
+ }
+ k = 80;
+
+ a4536:
+ blkcom::nKolBeg = k + 1;
+ blkcom::nNFrFld = 1;
+ free((void *) &d11);
+ pTempFile7 = reinterpret_cast<std::fstream *>(blkcom::pLFiles[ (int) d11 - 1 ]);
+ if(n8 == 4) {
+ free((void *) &d11);
+ pTempFile6 = reinterpret_cast<std::fstream *>(blkcom::pLFiles[ (int) d11 - 1 ]);
+ } else {
+ if(!pTempFile6)
+ pTempFile6 = reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 6 ]);
+ if(n8 == 5)
+ pTempFile7 = reinterpret_cast<std::fstream *>(spycom::pMFiles[ 4 ]);
+ if(!pTempFile7) {
+ for(k = 1; k <= 15; k++)
+ if(blkcom::pLFilesSave[ k - 1 ] == nullptr)
+ goto a4568;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ for(i = 1; i <= 10; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Error, ";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(5, ' ') << " All I/O channels occupied. Kill run at s.n. 4566 of \"cimage\" ." << std::endl;
+ for(i = 1; i <= 20; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(5) << std::dec << blkcom::pLFilesSave[ i - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ stoptp();
+
+ a4568:
+ pTempFile7 = reinterpret_cast<std::fstream *>(blkcom::pLFiles[ k - 1 ]);
+ } else {
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+" << sText1.substr(0, 6) << " file:" << sFileName.substr(0, 25) << " unit = 0x" << std::setfill('0') << std::setw(8) << std::hex << pTempFile7 << std::endl;
+ switch(n8) {
+ case 4:
+ utilities::copyFile(pTempFile6, pTempFile7, sFileName); // label 4423
+ break;
+
+ case 9:
+ utilities::openFile(pTempFile7, sFileName, std::ios::out); // label 4907
+ break;
+
+ case 11:
+ utilities::deleteFile(sFileName); // label 5106
+ break;
+
+ case 16:
+ utilities::closeFile(pTempFile7); // label 5608
+ utilities::openFile(pTempFile7, sFileName, std::ios::out);
+ break;
+
+ default:
+ utilities::closeFile(pTempFile7);
+ utilities::openFile(pTempFile7, sFileName, std::ios::out);
+ pTempFile7 -> seekp(0, std::ios::beg);
+ if(n8 == 5)
+ over20::spying();
+ break;
+ }
+ }
+ }
+ };
+ auto cattach = [ & ](void)
+ {
+ sText1 = "attach";
+ a4506();
+ };
+ auto cpunch = [ & ](void)
+ {
+ long int n1;
+ //
+ sText1 = "punch";
+ a4206();
+ };
+ auto coutput = [ & ](void)
+ {
+ sText1 = "output";
+ a4206();
+ };
+ auto csave = [ & ](void)
+ {
+ sText1 = "saved";
+ a4506();
+ };
+ auto cspydata = [ & ](void)
+ {
+ sText1 = "spying";
+ blkcom::pMFilesSave[ 1 ] = nullptr; // remember $spy for eof time in "spying (2288)"
+ blkcom::pMFilesSave[ 0 ] = spycom::pMFiles[ 4 ]; // remember spy input channel till now
+ spycom::pMFiles[ 4 ] = blkcom::pLFiles[ 16 ]; // special I/O unit used for $spy connection
+ spycom::nKFile5 = 1; // flag so "spying" knows munit5 opened to disk
+ a4506();
+ };
+ auto cdisable = [ & ](void)
+ {
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+Begin data to be ignored." << std::endl;
+ };
+ auto cenable = [ & ](void)
+ {
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+End of data to be ignored." << std::endl;
+ };
+ auto creturn = [ & ](void)
+ {
+ pTempFile2 = reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 3 ]);
+ a4209();
+ };
+ auto cnewfile = [ & ](void)
+ {
+ sText1 = "newfil";
+ pTempFile2 = reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 3 ]);
+ a4506();
+ };
+ auto cnew_epsilon = [ & ](void)
+ {
+ double d1;
+ //
+ blkcom::nNFrFld = 1;
+ d1 = blkcom::nEpsilon;
+ freedom::freeOne(blkcom::nEpsilon);
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+ Epsiln change. old, new =" << std::setfill(' ') << std::setw(13) << d1 << blkcom::nEpsilon << std::endl;
+ };
+ auto cdelete = [ & ](void)
+ {
+ sText1 = "delete";
+ a4506();
+ utilities::deleteFile(sFileName);
+ };
+ auto cmonitor = [ & ](void)
+ {
+ if(blkcom::nNOutPR != 0) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << sBuff10 << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+CRT Monitor. Card number = " << std::setfill(' ') << std::setw(5) << std::dec << blkcom::nNumDCD << std::endl;
+ }
+ };
+ auto clistoff = [ & ](void)
+ {
+ if(blkcom::nNOutPR == 0) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+Turn off input listing at card" << std::setfill(' ') << std::setw(5) << std::dec << blkcom::nNumDCD << std::endl;
+ blkcom::nNOutPR = 1;
+ }
+ };
+ auto cliston = [ & ](void)
+ {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(51, ' ') << "|$liston"<< std::endl;
+ blkcom::nNOutPR = 0;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+Turn on input listing at card" << std::setfill(' ') << std::setw(5) << std::dec << blkcom::nNumDCD << std::endl;
+ };
+ auto cvintage = [ & ](void)
+ {
+ ;
+ };
+ auto coldfile = [ & ](void)
+ {
+ ;
+ };
+ auto cstop = [ & ](void)
+ {
+ ;
+ };
+ auto cwatch5 = [ & ](void)
+ {
+ ;
+ };
+ auto ccomment = [ & ](void)
+ {
+ ;
+ };
+ auto cwidth = [ & ](void)
+ {
+ ;
+ };
+ auto cunits = [ & ](void)
+ {
+ ;
+ };
+ tRequest pRequests[] = {
+ { "a", "attach", 1, cattach },
+ { "p", "punch", 2, cpunch },
+ { "out", "output", 3, coutput },
+ { "s", "save", 4, csave },
+ { "spy", "spydata", 5, cspydata },
+ { "d", "disable", 7, cdisable },
+ { "e", "enable", 9, cenable },
+ { "r", "return", 10, creturn },
+ { "n", "newfile", 11, cnewfile },
+ { "ne", "new epsiln", 13, cnew_epsilon },
+ { "de", "delete", 15, cdelete },
+ { "m", "monitor", 16, cmonitor },
+ { "lf", "listoff", 18, clistoff },
+ { "ln", "liston", 20, cliston },
+ { "v", "vintage", 21, cvintage },
+ { "old", "oldfile", 23, coldfile },
+ { "st", "stop", 25, cstop },
+ { "w", "watch5", 26, cwatch5 },
+ { "com", "comment", 27, ccomment },
+ { "wi", "width", 29, cwidth },
+ { "u", "units", 30, cunits }
+ };
+ std::list<tRequest> sRequests(pRequests, pRequests + sizeof(pRequests) / sizeof(tRequest));
+ auto cecho = [ & ](void)
+ {
+ if(blkcom::nChain <= 15)
+ ++blkcom::pIpnTV[ 10 ] + 1;
+ reinterpret_cast<std::fstream *>(blkcom::pInEcho) -> write(blkcom::sABuff.str().c_str(), 80);
+ };
+ auto ibrinc = [ & ](void)
+ {
+ ++blkcom::nIBr;
+ labcom::sXOptBR[ blkcom::nIBr - 1 ] = blkcom::nXOpt;
+ labcom::sCOptBR[ blkcom::nIBr - 1 ] = blkcom::nCOpt;
+ };
+ //
+ // The main body of cimage subroutine.
+ //
+ if(blkcom::nIprsUp >= 10) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Begin cimage. lunit5, lunit6, noutpr, numdcd =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "0x" << std::setfill('0') << std::setw(8) << std::hex << blkcom::pLFiles[ 4 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "0x" << std::setfill('0') << std::setw(8) << std::hex << blkcom::pLFiles[ 5 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(5) << std::dec << blkcom::nNOutPR;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(5) << std::dec << blkcom::nNumDCD << std::endl << std::flush;
+ }
+
+ a1000:
+ if(blkcom::nM4Plot == 1)
+ over20::emtspy();
+ if(blkcom::pLFiles[ 4 ] != nullptr) {
+ if(reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 4 ]) -> is_open()) {
+ std::getline(*reinterpret_cast<std::istream *>(blkcom::pLFiles[ 4 ]), sBuff10, '\n');
+ if(reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 4 ]) -> eof())
+ goto a4000;
+ }
+ }
+ if(blkcom::pLFiles[ 4 ]) {
+ if(!reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 4 ]) -> is_open())
+ nextcard();
+ } else
+ nextcard();
+ if(blkcom::nKill > 0)
+ goto a4000;
+ if(!blkcom::pLFilesSave[ 4 ])
+ ++blkcom::nNumDCD;
+ sBuff10 = blkcom::sABuff.str();
+ sText1 = sBuff10[ 0 ];
+ sText2 = sBuff10[ 1 ];
+ if(sText1 != CHARC)
+ goto a3034;
+ if(sText2 != BLANK)
+ goto a3034;
+
+ a1036:
+ if(blkcom::nNOutPR != 0)
+ goto a1000;
+ if(n11 != 0)
+ goto a1000;
+ if(blkcom::nKol132 == 132)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Comment card. " << std::string(37, ' ') << "|" << sBuff10.substr(0, 80) << std::endl;
+ else
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Comment card. " << std::string(37, ' ') << "|" << sBuff10.substr(0, 29) << std::endl;
+ goto a1000;
+
+ a3034:
+ if(blkcom::nNOutPR != 0)
+ goto a3035;
+ if(blkcom::nKol132 == 132)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(52, ' ') << "|" << sBuff10.substr(0, 80) << std::endl;
+ else
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(52, ' ') << "|" << sBuff10.substr(0, 29) << std::endl;
+
+ a3035:
+ if(n13 > 0)
+ goto a3011;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::setfill(' ') << std::setw(5) << std::dec << blkcom::nNumDCD << " :" << blkcom::sABuff.str().substr(0, 72) << std::endl;
+ n13 = n12;
+
+ a3011:
+ --n13;
+ blkcom::sABuff >> sText2;
+ if(strcom::toLower(sText2) != sText5)
+ goto a3040;
+ if(n8 == 6)
+ goto a3044;
+
+ a3039:
+ blkcom::sABuff.str("");
+ goto a3233;
+
+ a3040:
+ if(blkcom::sChCont == strcom::toLower(sText4))
+ goto a3233;
+ blkcom::sTexCol = blkcom::sABuff.str().substr(0, 80);
+ if((strcom::toLower(blkcom::sABuff.str()) != "$listoff") && \
+ (strcom::toLower(blkcom::sABuff.str()) != "$liston"))
+ goto a3042;
+ goto a3246;
+
+ a3042:
+ if(blkcom::sChCont == sChTACS)
+ goto a3233;
+ if(blkcom::sTexCol == blkcom::sChCont)
+ goto a3246;
+ if(n8 != 6)
+ goto a1144;
+
+ a3044:
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "+Comment card (impicit)." << std::endl;
+ goto a1000;
+
+ a1144:
+ for(k = 1; k <= 80; k++) {
+ if(blkcom::sTexCol[ k - 1 ] == blkcom::cCSepar)
+ goto a3237;
+ if(blkcom::sTexCol.substr(k - 1, blkcom::sChCont.size()) == blkcom::sChCont)
+ goto a3237;
+ }
+
+ a3233:
+ blkcom::nKolBeg = -std::numeric_limits<long int>::infinity();
+ goto a7014;
+
+ a3237:
+ blkcom::nKolBeg = 1;
+ goto a7014;
+
+ a3246:
+ blkcom::nKolBeg = 2;
+
+ a3251:
+ blkcom::nNRight = -2;
+ freedom::freeOne(d1);
+ if(blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << " nfrfld = " << std::setfill(' ') << std::setw(8) << blkcom::nNFrFld << std::string(5, ' ') << "texta6 = " << blkcom::pTextA6[ 0 ].substr(0, 7) << blkcom::pTextA6[ 1 ].substr(0, 7) << std::endl;
+ blkcom::nNRight = 0;
+ for(i = 1; i <= 200; i++) {
+ n1 = pRequests[ i - 1 ].m_nPointer;
+ n2 = pRequests[ i ].m_nPointer - 1;
+ if(n2 < 0)
+ goto a3319;
+ if(blkcom::nIprsUp >= 35) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Special-request word" << std::setfill(' ') << std::setw(4) << i << " .";
+ for(j = n1; j <= n2; j++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << pRequests[ j - 1 ].m_sLongName;
+ }
+ if(strcom::toLower(pRequests[ n1 - 1 ].m_sLongName) == BLANK)
+ goto a3306;
+ l = 0;
+ n2 = n2 - n1 + 1;
+ if(n3 != blkcom::nNFrFld)
+ goto a3306;
+ for(j = n1; j <= n2; j++) {
+ ++l;
+ if(strcom::toLower(blkcom::pTextA6[ l - 1 ]) != pRequests[ j - 1 ].m_sLongName)
+ goto a3306;
+ }
+ if(blkcom::nIprsUp >= 2) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << " key-word found. i, n8 =" << std::setfill(' ') << std::setw(5) << i << n8;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(5, ' ') << "texta6, textay = " << blkcom::pTextA6[ 0 ] << pRequests[ i - 1 ].m_sLongName << std::endl;
+ }
+
+ a3294:
+ if(n8 != 6)
+ goto a3301;
+ if(i != 7)
+ goto a1036;
+
+ a3301:
+ n8 = i;
+ switch(n8) {
+ case 1: // ***** Request no. 1. "$attach" *****
+ cattach();
+ break;
+
+ case 2: // ***** Request no. 2. "$punch" *****
+ cpunch();
+ break;
+
+ case 3: // ***** Request no. 3. "$output" *****
+ coutput();
+ break;
+
+ case 4: // ***** Request no. 4. "$save" *****
+ csave();
+ break;
+
+ case 5: // ***** Request no. 5. "$spy" *****
+ cspydata();
+ break;
+
+ case 6: // ***** Request no. 6. "$disable" *****
+ cdisable();
+ break;
+
+ case 7: // ***** Request no. 7. "$enable" *****
+ cenable();
+ break;
+
+ case 8: // ***** Request no. 8. "$return" *****
+ creturn();
+ break;
+
+ case 9: // ***** Request no. 9. "$newfile" *****
+ cnewfile();
+ break;
+
+ case 10: // ***** Request no. 10. "new epsiln" *****
+ cnew_epsilon();
+ break;
+
+ case 11: // ***** Request no. 11. "delete" *****
+ cdelete();
+ break;
+
+ case 12: // ***** Request no. 12. "monitor" *****
+ cmonitor();
+ break;
+
+ case 13: // ***** Request no. 13. "listoff" *****
+ clistoff();
+ break;
+
+ case 14: // ***** Request no. 14. "liston" *****
+ cliston();
+ break;
+
+ case 15: // ***** Request no. 15. "vintage" *****
+ cvintage();
+ break;
+
+ case 16: // ***** Request no. 16. "oldfile" *****
+ coldfile();
+ break;
+
+ case 17: // ***** Request no. 17. "stop" *****
+ cstop();
+ break;
+
+ case 18: // ***** Request no. 18. "watch5" *****
+ cwatch5();
+ break;
+
+ case 19: // ***** Request no. 19. "comment" *****
+ ccomment();
+ break;
+
+ case 21: // ***** Request no. 21. "units" *****
+ cunits();
+ break;
+ }
+ if((n8 >= 1) && (n8 <= 21))
+ goto a1000;
+
+ a3306:
+ if(strcom::toLower(blkcom::pTextA6[ 0 ]) == pRequests[ i - 1 ].m_sLongName)
+ goto a3294;
+ }
+
+ a3319:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Illegal $-card. Stop at s.n. 3319 of \"cimage\" ." << std::endl;
+ stoptp();
+ cattach();
+ goto a1000;
+
+ a4000:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << " " << std::string(85, '=') << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " End of file encounted in \"cimage\" while, attempting to read another data card. Stop." << std::endl << " " << std::string(85, '=') << std::endl;
+ stoptp();
+
+ a7014:
+ if(blkcom::pInEcho == nullptr)
+ return;
+ cecho();
+ }
+
+ void erexit(void)
+ {
+ // VAX-11 installation-dependent EMTP module. This is
+ // called by the top of "MAIN00", before any EMTP data input.
+ //int idum[ 3 ];
+ //nKWTVAX = 0;
+ datain::datain();
+ }
+
+ void dummy(void)
+ {
+ std::stringstream sTemp;
+ //
+ //(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Dummy overlay function called. nchain = " << blkcom::nChain << ". Exiting." << std::endl << std::flush;
+ sTemp << " Dummy overlay function called. nchain = " << blkcom::nChain << ". Exiting." << std::endl << std::flush;
+ throw(std::runtime_error(sTemp.str().c_str()));
+ blkcom::nKill = 60;
+ }
+
+ // subroutine tapsav.
+ void tapsav(char *narray, std::fstream &n1, const long int &n2, const long int &n3)
+ {
+ // Near-universal module for dumping or restoring (central memory
+ // vs. disk) of /label/ . This does not work for those
+ // computers like Prime and Burroughs where common blocks
+ // are not ordered regularly in memory. Switch "KBURRO"
+ // selects between disk or virtual memory (/C29B01/).
+ int i;
+ int j;
+ int k;
+ int nKVecSv, n13;
+ //
+ long int n4, n9;
+ //
+ std::vector<long int> sKPen(5);
+ //
+ auto a5448 = [&](void)
+ {
+ if(n3 <= 1)
+ n1.write(&narray[ 0 ], n2);
+ else
+ n1.read(&narray[ 0 ], n2);
+ };
+ auto a6327 = [&](void)
+ {
+ if((blkcom::nChain == 20) && (blkcom::nMemSav == 1))
+ a5448 ();
+ else {
+ if(blkcom::nChain == 1)
+ a5448 ();
+ else {
+ if(!((blkcom::nChain == 6) || (blkcom::nChain == 8))) {
+ n13 = 29;
+ emtp::dimens(sKPen, n13, blkcom::sTrash, blkcom::sTrash);
+ nKVecSv = 2 * (blkcom::nIt + blkcom::nIt + blkcom::nIBr + blkcom::nTot + blkcom::nIoffd) + blkcom::nKSwtch + blkcom::nLHist;
+ n9 = blkcom::sSStat.m_nTLabl + nKVecSv * blkcom::pNByte[ 2 ] / blkcom::pNByte[ 3 ];
+ if(n9 >= sKPen[ 1 ] + 50) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Error stop in \"tapsav\". Overflow of /c29b01/ storage. n2, kpen(2) =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (8) << n2 << sKPen[ 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " needed storage n9 =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (8) << n9;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "\n memory requirement in integer words for virtual computer implementation of tapsav. Storage must\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "provide for all of --/label/--( deck \"labcom\" ), the several usages \"vecrsv\" and \"vecisv\" (over6-11), plus 50 extra cells.\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "nchain =" << std::setw (5) << blkcom::nChain << std::endl << std::flush;
+ emtp::stoptp();
+ } else {
+ j = 50;
+ if(n3 <= 1) {
+ for(k = 1; k <= n2; k++) {
+ ++j;
+ labcom::pKArray[ j - 1 ] = narray[ k - 1 ];
+ }
+ } else {
+ for(k = 1; k <= n2; k++) {
+ ++j;
+ narray[ k - 1 ] = labcom::pKArray[ j - 1 ];
+ }
+ }
+ }
+ }
+ }
+ }
+ };
+ //
+ if(narray) {
+ if(blkcom::nIprsUp >= 1) {
+ n9 = 0;
+ sKPen[ 1 ] = 0;
+ n4 = (size_t) narray;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "\n Top of \"tapsav\". n1 n2 n3 kburro n4" << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "0x" << std::setw(8) << std::setfill('0') << std::hex << &n1 << " " << n2;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << n3 << " " << blkcom::nKBurro << std::setw(8) << " " << n4 << std::endl << std::flush;
+ } else {
+ if(blkcom::nKBurro != 1)
+ a5448();
+ else
+ a6327();
+ }
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Exit \"tapsav\". n9, kpen(2) = " << n9 << " " << sKPen[ 1 ] << std:: endl << std::flush;
+ }
+ }
+
+ /* subroutine main10. */
+
+ void main10(void)
+ {
+ subr10();
+ }
+
+ /* subroutine subr10. */
+
+ void subr10(void)
+ {
+ int nIprCBL;
+ int n24;
+ //
+ try {
+ blkcom::nKTab = 0;
+ FOREVER {
+ if(blkcom::nChain <= 20) {
+ if(blkcom::nKill != 0)
+ blkcom::nChain = 51;
+ else {
+ n24 = blkcom::nChain;
+ if(n24 < 1)
+ n24 = 1;
+ blkcom::nIprsUp = blkcom::pIprsOV[ n24 - 1 ];
+ nIprCBL = blkcom::nIprsUp;
+ if(blkcom::nM4Plot == 1)
+ over20::emtspy ();
+ if(blkcom::nChain == 0)
+ blkcom::nChain = 1;
+ switch (blkcom::nChain) {
+ case 1:
+#ifdef WITH_OVER1
+ over1::over1();
+#else
+ dummy();
+#endif
+ break;
+
+ case 2:
+#ifdef WITH_OVER2
+ over2();
+#else
+ dummy();
+#endif
+ break;
+
+ case 3:
+ case 4:
+ emtp::stoptp();
+ break;
+
+#ifdef WITH_OVER5
+ over5();
+#else
+ dummy();
+#endif
+ break;
+
+#ifdef WITH_OVER6
+ over6();
+#else
+ dummy();
+#endif
+ break;
+
+#ifdef WITH_OVER7
+ over7();
+#else
+ dummy();
+#endif
+ break;
+
+#ifdef WITH_OVER8
+ over8();
+#else
+ dummy();
+#endif
+ break;
+
+#ifdef WITH_OVER9
+ over9();
+#else
+ dummy();
+#endif
+ break;
+
+#ifdef WITH_OVER10
+ over10();
+#else
+ dummy();
+#endif
+ break;
+
+#ifdef WITH_OVER11
+ over11();
+#else
+ dummy();
+#endif
+ break;
+
+ case 12:
+#ifdef WITH_OVER12
+ over12();
+#else
+ dummy();
+#endif
+ break;
+
+ case 13:
+#ifdef WITH_OVER13
+ over13();
+#else
+ dummy();
+#endif
+ break;
+
+ case 14:
+#ifdef WITH_OVER14
+ over14();
+#else
+ dummy ();
+#endif
+ break;
+
+ case 15:
+#ifdef WITH_OVER15
+ over15();
+#else
+ dummy();
+#endif
+ break;
+
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+#ifdef WITH_OVER16
+ over16();
+#else
+ dummy();
+#endif
+ break;
+
+ case 20:
+#ifdef WITH_OVER20
+ over20::over20();
+#else
+ dummy();
+#endif
+ break;
+ }
+ }
+ } else
+ break;
+ }
+ }
+ catch(std::exception &e) {
+ std::cerr << e.what() << std::endl;
+ exit(EXIT_FAILURE);
+ }
+ }
+ void setmar(int *n)
+ {
+ if (*n)
+ *n = 0;
+ }
+
+ void chrsiz(int *n)
+ {
+ if (*n)
+ *n = 0;
+ }
+
+ void setplt(void)
+ {
+ ;
+ }
+
+ void setstd (void)
+ {
+ ;
+ }
+
+ void interp(void)
+ {
+ ;
+ }
+
+ void namea6(const std::string &sText1, long int *n24)
+ {
+ // module for maintainance of alphanumeric vector texvec of
+ // "labcom". maxbus of "blkcom" is last used cell. n24 chooses
+ // mode of use: 0 will add text1, positive will locate it,
+ // and negative will destroy (remove) it.
+ int j;
+ int n17 = 0;
+ //
+ std::string sText2("unused");
+ //
+ if(blkcom::nMaxBus <= 0)
+ goto a3423;
+ for(j = 1; j <= blkcom::nMaxBus; j++)
+ if(strcom::toLower(sText1) == strcom::toLower(labcom::sTexVec[ j - 1 ]))
+ goto a3446;
+
+ a3423:
+ if(*n24 != 0)
+ goto a3438;
+ if (n17 == 0)
+ goto a3434;
+ labcom::sTexVec[ n17 - 1 ] = strcom::toLower (sText1);
+ *n24 = n17;
+ for(j = 1; j <= blkcom::nMaxBus; j++)
+ if(strcom::toLower(labcom::sTexVec[ j - 1 ]) != strcom::toLower(sText2)) {
+ ;
+ } else {
+ n17 = j;
+ goto a9000;
+ }
+ n17 = 0;
+ goto a9000;
+
+ a3434:
+ ++blkcom::nMaxBus;
+ if (blkcom::nMaxBus > blkcom::sSStat.m_nSize7)
+ exit(EXIT_FAILURE);
+ labcom::sTexVec[ blkcom::nMaxBus - 1 ] = strcom::toLower(sText1);
+ *n24 = blkcom::nMaxBus;
+ goto a9000;
+
+ a3438:
+ if(blkcom::nIprsUp >= 1) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " +++++ Search of EMTP name vector bus through cell";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (5) << blkcom::nMaxBus;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " in \"namea6\" shows no match for\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " . \"";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (6) << sText1;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "\". Return -intinf.";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (10) << *n24 << std::endl << std::flush;
+ }
+ *n24 = std::numeric_limits<int>::min();
+ goto a9000;
+
+ a3446:
+ if (*n24 < 0)
+ goto a3455;
+ *n24 = j;
+ goto a9000;
+
+ a3455:
+ labcom::sTexVec[ j - 1 ] = strcom::toLower (sText2);
+ n17 = j;
+
+ a9000:
+ if(blkcom::nIprsUp >= 6) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Exit \"namea6\". text1, maxbus, n24, j =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (6) << sText1;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (10) << blkcom::nMaxBus << *n24 << j << std::endl << std::flush;
+ }
+ }
+
+ void tables(void)
+ {
+ // Utility which is used to both dump and restore EMTP
+ // tables (central memory vs. disk). Usage is for both
+ // "statistics" (over12, over15, over20) and "start again"
+ // (over1, over20). Call to "tapsav" dumps /label/ .
+ // Also used by $restart request of "cimage" (called
+ // from "lookie" which is called by "subts3" of ov16).
+ // Also used by "restore" request of rtm, where table
+ // restoration is in "katalg" of overlay 20.
+ // Note about deck "synmac". If EMTP s.m. modeling
+ // Brandwajn (type-59), is to be deleted,
+ // then all s.m. subroutines ( smdat, smout, smpfit,
+ // smint, uncor, premec, elec, past,
+ // update, increm ) are to be destroyed, and
+ // deck "synmac" is to be removed from the present module.
+ // but then "dimension z(1)" should be added in its
+ // place, and the "n4 =" calculation involving "locint"
+ // should be replaced by the simple statements "n4 = 1" .
+ // comment card immediately preceding "synmac" -------------
+ // comment card immediately following "synmac" -------------
+ long int i, iprsav[] = { 0, 0, 0, 0 };
+ long int j;
+ long int ll0, ll1, ll2, ll4;
+ long int n1, n2, n3, n4, n5, n9, n24;
+ //
+ char *pBusOne = &blkcom::sBus1[ 0 ];
+ long int *pIDistX = &blkcom::nEnerg;
+ long int *pKBase = &blkcom::sMonCar.m_nKBase;
+ std::vector<long int> sIntegX;
+ std::vector<long int> sITemp;
+ std::vector<long int> sJTemp;
+ std::vector<long int> sKTemp;
+ std::vector<long int> sKPen;
+ //
+ ll1 = 1;
+ ll2 = 2;
+ ll4 = 4;
+ blkcom::nNWord1 = (size_t) blkcom::pVoltBC - (size_t) &sKPen;
+ blkcom::nNWord2 = (size_t) blkcom::pIDistX - (size_t) &blkcom::pLFilesSave[ 14 ];
+ // ... to complete.
+ }
+
+ // subroutine csup.
+
+ void csup(const long int &l)
+ {
+ ;
+ }
+
+}
+
+// end of file emtp.hpp
diff --git a/sources/freedom.cpp b/sources/freedom.cpp
new file mode 100644
index 0000000..fb65cad
--- /dev/null
+++ b/sources/freedom.cpp
@@ -0,0 +1,64 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file freedom.cpp
+
+#include "freedom.hpp"
+
+namespace freedom {
+
+ template <> bool freeName<int>(int &a)
+ {
+ bool bReturnValue = false;
+ //
+ return bReturnValue;
+ }
+
+ template <> bool freeName<double>(double &a)
+ {
+ bool bReturnValue = false;
+ //
+ ;
+ return bReturnValue;
+ }
+
+ bool freeIn(const std::string &sANSI, int32_t &n12)
+ {
+ int32_t n8;
+ double d12;
+ bool bReturnValue = false;
+ //
+ if(n12) {
+ n8 = 1;
+ freeFix(sANSI, n8);
+ std::sscanf(sANSI.substr(0, 80).c_str (), "%lf", &d12);
+ n12 = (uint32_t) d12;
+ bReturnValue = true;
+ }
+ return bReturnValue;
+ }
+
+ bool freeIn(const std::string &, int32_t &, int32_t &)
+ {
+ bool bReturnValue = false;
+ //
+ return bReturnValue;
+ }
+
+ bool freeFix(const std::string &, int32_t &)
+ {
+ bool bReturnValue = false;
+ //
+ return bReturnValue;
+ }
+
+ bool freeOne(double &d)
+ {
+ bool bReturnValue = false;
+ //
+ //bReturnValue = freeFLD(sANSI, d);
+ return bReturnValue;
+ }
+
+}
+
+// end of file freedom.cpp
diff --git a/sources/labcom.cpp b/sources/labcom.cpp
new file mode 100644
index 0000000..62695ff
--- /dev/null
+++ b/sources/labcom.cpp
@@ -0,0 +1,101 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file labcom.cpp
+
+#include "labcom.hpp"
+
+namespace labcom {
+
+ char *pKArray;
+ char *pNArray;
+ char *pSpace;
+ //
+ int *pKPSour;
+ int *pKSSFrq;
+ //
+ size_t *pKode;
+ //
+ std::vector<int> sIARDUB;
+ std::vector<int> sIBSOut;
+ std::vector<int> sIModel;
+ std::vector<int> sIndHst;
+ std::vector<int> sISkip;
+ std::vector<int> sISourc;
+ std::vector<int> sIWTent;
+ std::vector<int> sKBegSw;
+ std::vector<int> sKBus;
+ std::vector<int> sKDEPSw;
+ std::vector<int> sKENTNB;
+ std::vector<int> sKM;
+ std::vector<int> sKMSwit;
+ std::vector<int> sKode;
+ std::vector<int> sKodeBR;
+ std::vector<int> sKodSem;
+ std::vector<int> sKOutVP;
+ std::vector<int> sKPos;
+ std::vector<int> sKSWTyp;
+ std::vector<int> sLastSw;
+ std::vector<int> sLength;
+ std::vector<int> sMBus;
+ std::vector<int> sModSwt;
+ std::vector<int> sNameNL;
+ std::vector<int> sNextSw;
+ std::vector<int> sNBHDSw;
+ std::vector<int> sNHist;
+ std::vector<int> sNLType;
+ std::vector<int> sNOnLAD;
+ std::vector<int> sNOnLE;
+ std::vector<int> sNOnLK;
+ std::vector<int> sNOnLM;
+ //
+ std::vector<double> sADelay;
+ std::vector<double> sANOnL;
+ std::vector<double> sARDUBE;
+ std::vector<double> sBNRG;
+ std::vector<double> sBValue;
+ std::vector<double> sCChar;
+ std::vector<double> sCIK;
+ std::vector<double> sCI;
+ std::vector<double> sCK;
+ std::vector<double> sCNVHst;
+ std::vector<double> sCOn1;
+ std::vector<double> sCOptBR;
+ std::vector<double> sCrit;
+ std::vector<double> sCurr;
+ std::vector<double> sE;
+ std::vector<double> sEnergy;
+ std::vector<double> sEta;
+ std::vector<double> sGSlope;
+ std::vector<double> sHSFD;
+ std::vector<double> sQFD;
+ std::vector<double> sSCOnST;
+ std::vector<double> sSemAux;
+ std::vector<double> sSPTACS;
+ std::vector<double> sStailK;
+ std::vector<double> sStailM;
+ std::vector<double> sTClose;
+ std::vector<double> sTDNS;
+ std::vector<double> sTOpen;
+ std::vector<double> sVChar;
+ std::vector<double> sVecNL1;
+ std::vector<double> sVecNL2;
+ std::vector<double> sVoltI;
+ std::vector<double> sVOnL;
+ std::vector<double> sVZero;
+ std::vector<double> sWeight;
+ std::vector<double> sX;
+ std::vector<double> sXK;
+ std::vector<double> sXM;
+ std::vector<double> sXMax;
+ std::vector<double> sXOptBR;
+ std::vector<double> sYKM;
+ std::vector<double> sZInf;
+ //
+ std::vector<size_t> sNR;
+ //
+ std::vector<std::string> sBus;
+ std::vector<std::string> sTexVec;
+
+}
+
+// end of file labcom.cpp
diff --git a/sources/labl02.cpp b/sources/labl02.cpp
new file mode 100644
index 0000000..09b07ac
--- /dev/null
+++ b/sources/labl02.cpp
@@ -0,0 +1,36 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file labl02.cpp
+
+#include "labl02.hpp"
+
+namespace com2 {
+
+ int nN1;
+ int nN2;
+ int nN3;
+ int nN4;
+ int nLCount;
+ int nModel;
+ int nL27Dep;
+ int nIBR1;
+ int nNRecur;
+ int nKGroup;
+ int nNC4;
+ int nNC5;
+ int nIFQ;
+ int nN13;
+ int nIDA;
+ int nIFKC;
+ int nIDY;
+ int nIDM;
+ int nIDQ;
+ int nIDU;
+ int nIDT;
+ int nIQ;
+ int nNC6;
+ int nNC3;
+
+}
+
+// end of file labl02.cpp
diff --git a/sources/labl29.cpp b/sources/labl29.cpp
new file mode 100644
index 0000000..5216d11
--- /dev/null
+++ b/sources/labl29.cpp
@@ -0,0 +1,50 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file labl29.cpp
+
+#include "labl29.hpp"
+
+namespace com29 {
+
+ // Variables.
+ int nLimInc;
+ int nIOFArr;
+ int nVar;
+ int nKey;
+ int nMaxo29;
+ //
+ double nPer;
+ double nXmean1;
+ double nXVar1;
+ double nStDev1;
+ double nVMax;
+
+ // subroutine guts29.
+
+ void guts29(std::string &sBus, \
+ std::vector<int> &sKMSwit, \
+ std::vector<int> &sKdepsw, \
+ int &mIBrnch, \
+ int &nJBrnch, \
+ double &nAKey, \
+ std::vector<double> &sTStat, \
+ std::vector<double> &sTClose, \
+ std::vector<double> &sTOpen)
+ {
+ vector<double> sArray(reinterpret_cast<double *> (labcom::sKArray.data()), reinterpret_cast<double *> (labcom::sKArray.data () + labcom::sKArray.size ()));
+ //
+ std::string sText1 = "misc.";
+ std::string sText2 = "statistics d";
+ std::string sText5 = "begin";
+ std::string sText6 = "new da";
+ std::string sText7 = "bndc";
+ //
+ // missing other vars;
+ //
+
+
+ }
+
+}
+
+// end of file labl29.cpp
diff --git a/sources/location.cpp b/sources/location.cpp
new file mode 100644
index 0000000..3d13e38
--- /dev/null
+++ b/sources/location.cpp
@@ -0,0 +1,65 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file location.cpp
+
+#include "location.hpp"
+
+namespace location {
+
+ std::vector<size_t> sLocate = std::vector<size_t> ({
+ reinterpret_cast<size_t>(&blkcom::sBus1),
+ reinterpret_cast<size_t>(&blkcom::sBus2),
+ reinterpret_cast<size_t>(&blkcom::sBus3),
+ reinterpret_cast<size_t>(&blkcom::sBus4),
+ reinterpret_cast<size_t>(&blkcom::sBus5),
+ reinterpret_cast<size_t>(&blkcom::sBus6),
+ reinterpret_cast<size_t>(&blkcom::sTrash),
+ reinterpret_cast<size_t>(&blkcom::sBlank),
+ reinterpret_cast<size_t>(&blkcom::sTerra),
+ reinterpret_cast<size_t>(&blkcom::sUserID),
+ reinterpret_cast<size_t>(&blkcom::sBranch),
+ reinterpret_cast<size_t>(&blkcom::sChCopy),
+ reinterpret_cast<size_t>(&blkcom::cCSepar),
+ reinterpret_cast<size_t>(&blkcom::sChCont),
+ reinterpret_cast<size_t>(&blkcom::sTexCol),
+ reinterpret_cast<size_t>(&blkcom::pTextA6[ 0 ]),
+ reinterpret_cast<size_t>(&blkcom::pDate1[ 0 ]),
+ reinterpret_cast<size_t>(&blkcom::pTClock[ 0 ]),
+ // To be continued
+ });
+
+ void locatn(void)
+ {
+ //
+ }
+
+ //
+
+ template <> size_t index<char>(char *a)
+ {
+ return ((size_t) &a[ 0 ] / sizeof(char));
+ }
+
+ template <> size_t index<int>(int *a)
+ {
+ return ((size_t) &a[ 0 ] / sizeof(int));
+ }
+
+ template <> size_t index<long int>(long int *a)
+ {
+ return ((size_t) &a[ 0 ] / sizeof(long int));
+ }
+
+ template <> size_t index<double>(double *a)
+ {
+ return ((size_t) &a[ 0 ] / sizeof(double));
+ }
+
+ template <> size_t index<std::string>(std::string *a)
+ {
+ return index((char *) a -> c_str());
+ }
+
+}
+
+// end of file location.cpp
diff --git a/sources/main.cpp b/sources/main.cpp
new file mode 100644
index 0000000..2d52703
--- /dev/null
+++ b/sources/main.cpp
@@ -0,0 +1,387 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file main.cpp
+
+#include "main.hpp"
+
+//**********************************************************************
+// *
+// --------------- Electromagnetic Transients Program ------------ *
+// methods development branch, route eogb *
+// division of system engineering *
+// Bonneville Power Administration *
+// P. O. Box 3621 *
+// Portland, Oregon 97208 *
+// U.S.A. phone: (503) 230-4404 *
+// *
+// The fortran comment-card text now being read represents a *
+// summary introduction and explanation which applies to a very *
+// large program development referred to by the title of *
+// 'electromagnetic transients program' (abbreviated 'EMTP' , *
+// or 't.p.' in the older notation). *
+// *
+// In general terms, the purpose of this work is to simulate *
+// transient phenomena in power system networks, taking into *
+// account traveling waves (electromagnetic transients) on *
+// transmission lines, saturation of transformers, nonlinearities *
+// of surge arresters, etc. While not so restricted in theory, *
+// the most common program application is for the simulation of *
+// switching surges which propagate on power network transmission *
+// lines. for a more detailed explantion of the modeling *
+// techniques which are used, the reader is referred to the *
+// manual for this program (840 pages for the version dated *
+// march, 1983). ). while older issues were titled *
+// "EMTP user's manual", beginning in september of 1980 *
+// this work is now called the "EMTP rule book" . *
+// *
+// The utpf is a large 80-column bcd card-image file, to be used *
+// as input to e/t programs. E/t programs machine translate this *
+// utpf code into legal fortran for most computer systems of *
+// interest (ibm, cdc, univac, honeywell, dec pdp-10, dec vax-11, *
+// prime, sel, apollo, hitachi, facom, harris, etc.). *
+// *
+// In conformity with long-standing bpa policy, as well as the *
+// more recent (february 19, 1975) federal freedom of information *
+// act, dissemination of these program materials is freely made *
+// to any and all interested parties. a fee to cover reproduction,*
+// handling, and mailing costs may be assessed against the *
+// organization receiving the material, however. No claim or *
+// warranty as to the usefulness, accuracy, fidelity, or *
+// completeness of these materials is (or ever has been) in any *
+// way expressed or implied. *
+// *
+//**********************************************************************
+//
+// The present module main00 is always in memory. It is the
+// highest level module of a program which has two levels of
+// overlaying. It calls primary level overlays only (directly),
+// based on the value of variable 'nchain' . The following
+// legitimate values, and the meaning of the associated overlay
+// calls, exist .....
+// 1-20. For overlays 1, 2, ..., 20, which are secondary-level
+// overlays, a call must be first made to the controlling
+// primary-level overlay. Thus for such 'nchain' values,
+// control is transfered first to module main10 . This
+// is the only case where calls to overlays are not made
+// directly.
+//
+// 29. Completion of statistics (Monte Carlo) study, where variable
+// maxima of the different case solutions are read off the
+// disk, and are processed statistically to produce
+// cumulative distribution functions, etc.
+//
+// 31. Plot routine, for graphical output of transients.
+// The program also terminates execution here, usually,
+// after writing an end-of-information mark on the
+// plot tape (whether or not the user has plotted anything).
+//
+// 39. Supporting routine which generates EMTP branch
+// cards for the frequency-dependent representation of
+// an untransposed transmission line. this is the
+// "marti setup" code, named after dr. jose marti of
+// vancouver and caracas (see 1981 ieee pica paper).
+//
+// 41. Supporting routine which calculates transformer matrices (R)
+// and (L) from short-circuit and open-circuit data.
+//
+// 42. Supporting routine which converts an rms voltage vs. current
+// saturation characteristic into an instantaneous flux vs.
+// current characteristic.
+//
+// 43. Supporting routine which calculates weighting functions
+// a1(t) and a2(2) for the zero-sequence mode of a
+// distributed line which has frequency-dependent line
+// constants r and l .
+//
+// 44. Supporting routine which calculates line constants for
+// overhead transmission lines by means of carson's formula.
+// this is a modified version of what was originally (until
+// january 1975) the completely-separate bpa line-constants
+// program.
+//
+// 45. Supporting routine of 'Semlyen setup' code. the output
+// is a group of punched cards, as are required for the EMTP
+// simulation of a transmission circuit using semlyen
+// recursive convolution modeling.
+//
+// 47. Supporting routine of 'cable constants' code. the
+// primary function is to calculate (r), (l), % (c)
+// matrices for a multi-phase system of single-core coaxial
+// cables.
+//
+// 51. Printing of introductory paragraph of error-message
+// termination ('you lose, fella, ... '), plus error-message
+// texts for 'kill' codes numbered 1 through 50 .
+// the exiting linkage is to the last error overlay.
+//
+// 52. Error message texts for 'kill' codes numbered 51
+// the exiting linkage is to the last error overlay.
+//
+// 53. Error message texts for 'kill' codes numbered 91
+// through 150. the exiting linkage is to the last
+// error overlay.
+//
+// 54. Error message texts for 'kill' codes numbered 151
+// through 200. the exiting linkage is to the
+// last error overlay.
+//
+// 55. Final error overlay. Messages for kill = 201
+// onward are contained, as well as summary statistics
+// --- table sizes and timing figures for the run.
+// The exiting linkage is generally to module over1 (to read
+// a new data case), but may be to module over31 (for final
+// case termination).
+//**********************************************************************
+
+int main(int argc, char *argv[])
+{
+ char c;
+ char optopt;
+ int n1;
+ long int nReturnValue = EXIT_FAILURE;
+ static struct option long_options[] = {
+ { "dimensioning-file", optional_argument, nullptr, 'd' },
+ { "case-file", optional_argument, nullptr, 'f' },
+ { "help", optional_argument, nullptr, 'h' },
+ { "output-file", optional_argument, nullptr, 'o' },
+ { "verbose", optional_argument, nullptr, 'v' },
+ { "version", optional_argument, nullptr, 'V' },
+ { nullptr, 0, nullptr, 0 }
+ };
+ struct winsize sWindow;
+ //
+ auto a2010 = [&](void)
+ {
+ if(blkcom::nM4Plot == 1)
+ ;//emtspy();
+ switch(blkcom::nChain) {
+ case 29:
+#ifdef WITH_OVER29
+ over29();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 31:
+#ifdef WITH_OVER31
+ over31();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 39:
+#ifdef WITH_OVER39
+ over39();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 41:
+#ifdef WITH_OVER41
+ over41();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 42:
+#ifdef WITH_OVER42
+ over42();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 44:
+#ifdef WITH_OVER44
+ over44();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 45:
+#ifdef WITH_OVER45
+ over45();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 47:
+#ifdef WITH_OVER47
+ over47();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 51:
+#ifdef WITH_OVER51
+ over51::over51();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 52:
+#ifdef WITH_OVER52
+ over52();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 53:
+#ifdef WITH_OVER53
+ over53();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 54:
+#ifdef WITH_OVER54
+ over54();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ case 55:
+#ifdef WITH_OVER55
+ over55();
+#else
+ emtp::dummy();
+#endif
+ break;
+
+ default:
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << " Illegal NCHAIN in MAIN00." << blkcom::nChain << std::endl << std::flush;
+ break;
+ }
+ };
+ auto a2001 = [&](void)
+ {
+ //
+ n1 = blkcom::nChain;
+ if(n1 > 30)
+ n1 -= 30;
+ if(n1 <= 0)
+ n1 = 1;
+ if(blkcom::nIprsUp == 0)
+ blkcom::nIprsUp = blkcom::pIprsOV[ n1 - 1 ];
+ if(blkcom::nChain > 20)
+ a2010();
+ else {
+ if((blkcom::nChain == 12) || (blkcom::nChain == 2))
+ emtp::main10();
+ else {
+ if(blkcom::nChain == -1)
+ ;//movecopy::move0(&blkcom::pIprsOv[ 0 ], nLL34);
+ emtp::vardim(emtp::sSizesFileName, blkcom::sLStat);
+ emtp::erexit();
+ blkcom::nChain = 0;
+ if (blkcom::nChain <= 20)
+ emtp::main10();
+ }
+ }
+ };
+ //
+ opterr = 0;
+ optind = 0;
+ blkcom::nLLBuff = -3333;
+ blkcom::nChain = -1;
+ blkcom::nLastOV = 0;
+ blkcom::nKill = 0;
+ blkcom::pLFiles[ 0 ] = reinterpret_cast<void *>(&std::cerr);
+ blkcom::pLFiles[ 4 ] = reinterpret_cast<void *>(&std::cin);
+ blkcom::pLFiles[ 5 ] = reinterpret_cast<void *>(&std::cout);
+ sWindow = utilities::getTerminalSize();
+ if(sWindow.ws_col >= 132)
+ blkcom::nKol132 = 132;
+ else if(sWindow.ws_col >= 80)
+ blkcom::nKol132 = 80;
+ else
+ blkcom::nKol132 = sWindow.ws_col;
+ while((c = getopt_long(argc, argv, "d:f:ho:vV", long_options, &optind)) != -1) {
+ switch(c) {
+ case 0:
+ // If this option set a flag, do nothing else now.
+ if(long_options[ optind ].flag != 0)
+ break;
+ std::cout << "Option " << long_options[ optind ].name;
+ if(optarg)
+ std::cout << " with arg " << optarg;
+ std::cout << std::endl;
+ break;
+
+ case 'd':
+ {
+ std::stringstream sTemp(optarg);
+ if(sTemp.str().empty()) {
+ blkcom::nChain = 51;
+ blkcom::nKill = 100;
+ emtp::sSizesFileName = "";
+ } else {
+ emtp::sSizesFileName = sTemp.str();
+ }
+ }
+ break;
+
+ case 'f':
+ // To do.
+ break;
+
+ case 'h':
+ std::cout << "Usage: gemtp++ [-d|--dimensioning-file dimfile] [-f|--case-file infile] [-h|--help] [-o|--output-file outfile] [-v|--verbose] [-V|--Version] [< infile]" << std::endl;
+ emtp::stoptp();
+ exit(EXIT_SUCCESS);
+ break;
+
+ case 'o':
+ // To do.
+ break;
+
+ case 'v':
+ ++blkcom::nIprsUp;
+ break;
+
+ case 'V':
+ // To do.
+ break;
+ }
+ }
+ FOREVER {
+ switch(blkcom::nKill) {
+ case 0:
+ case 9999:
+ a2001();
+ break;
+
+ case 7733:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " \"main\" intercept of \"begin\" request." << std::endl << std::flush;
+ blkcom::nKill = 0;
+ blkcom::nNumDCD = 0;
+ blkcom::nChain = 1;
+ emtp::main10();
+ break;
+
+ default:
+ if(blkcom::nChain > 51)
+ a2001();
+ else {
+ blkcom::nChain = 51;
+ a2001();
+ }
+ break;
+ }
+ }
+ ;;
+ return nReturnValue;
+}
+
+// end of file main.cpp
diff --git a/sources/movecopy.cpp b/sources/movecopy.cpp
new file mode 100644
index 0000000..470e815
--- /dev/null
+++ b/sources/movecopy.cpp
@@ -0,0 +1,306 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file movecopy.cpp
+
+#include "movecopy.hpp"
+
+namespace movecopy {
+
+ template <> size_t copy<double>(const double &from, double *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0L;
+
+ if(to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<int>(const int &from, int *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0L;
+
+ if(to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<long int>(const long int &from, long int *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0L;
+
+ if(to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<size_t>(const size_t &from, size_t *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0L;
+
+ if(to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<std::string>(const std::string &from, std::string *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+
+ if (to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<double>(const double &from, std::vector<double> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0L;
+
+ if(to.size() >= n) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<int>(const int &from, std::vector<int> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0L;
+
+ if(to.size() >= n) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<long int>(const long int &from, std::vector<long int> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0L;
+
+ if(to.size() >= n) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<size_t>(const size_t &from, std::vector<size_t> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0L;
+
+ if(to.size() >= n) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t copy<std::string>(const std::string &from, std::vector<std::string> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+ //
+ if(to.size() >= n) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from;
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move<double>(const double from[], double *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+
+ if (from) {
+ if (to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move<int>(const int from[], int *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+
+ if (from) {
+ if (to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move<long int>(const long int from[], long int *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+
+ if (from) {
+ if (to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move<std::string>(const std::string from[], std::string *to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+
+ if (from) {
+ if (to) {
+ for (i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move0<double>(double *to, const size_t &n)
+ {
+ return copy(0.0, to, n);
+ }
+
+ template <> size_t move0<int>(int *to, const size_t &n)
+ {
+ return copy((int) 0, to, n);
+ }
+
+ template <> size_t move0<long int>(long int *to, const size_t &n)
+ {
+ return copy((long int) 0, to, n);
+ }
+
+ template <> size_t move0<size_t>(size_t *to, const size_t &n)
+ {
+ return copy((size_t) 0, to, n);
+ }
+
+ template <> size_t move<double>(const std::vector<double> &from, std::vector<double> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+ //
+ if(from.size() == to.size()) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move<int>(const std::vector<int> &from, std::vector<int> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+ //
+ if(from.size() == to.size()) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move<long int>(const std::vector<long int> &from, std::vector<long int> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+ //
+ if(from.size() == to.size()) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move<std::string>(const std::vector<std::string> &from, std::vector<std::string> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+ //
+ if(from.size() == to.size()) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move<size_t>(const std::vector<size_t> &from, std::vector<size_t> &to, const size_t &n)
+ {
+ size_t i;
+ size_t nReturnValue = 0;
+ //
+ if(from.size() == to.size()) {
+ for(i = 0; i < n; i++)
+ to[ i ] = from[ i ];
+ nReturnValue = n;
+ }
+ return nReturnValue;
+ }
+
+ template <> size_t move0<double>(std::vector<double> &to, const size_t &n)
+ {
+ return copy(0.0, to, n);
+ }
+
+ template <> size_t move0<int>(std::vector<int> &to, const size_t &n)
+ {
+ return copy((int) 0, to, n);
+ }
+
+ template <> size_t move0<long int>(std::vector<long int> &to, const size_t &n)
+ {
+ return copy((long int) 0, to, n);
+ }
+
+ template <> size_t move0<size_t>(std::vector<size_t> &to, const size_t &n)
+ {
+ return copy((size_t) 0, to, n);
+ }
+
+}
+
+// end of file movecopy.cpp
diff --git a/sources/newmods.cpp b/sources/newmods.cpp
new file mode 100644
index 0000000..e8d38f8
--- /dev/null
+++ b/sources/newmods.cpp
@@ -0,0 +1,325 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file newmods.cpp
+
+#include "newmods.hpp"
+
+//
+
+namespace emtp {
+
+ tVariable pVariables[] = {
+ { "x", "c0b001", 3, JBLTYPE_DOUBLE },
+ { "ykm", "c0b002", 5, JBLTYPE_DOUBLE },
+ { "km", "c0b003", 5, JBLTYPE_DOUBLE },
+ { "xk", "c0b004", 72, JBLTYPE_DOUBLE },
+ { "xm", "c0b005", 72, JBLTYPE_DOUBLE },
+ { "weight", "c0b006", 14, JBLTYPE_DOUBLE },
+ { "iwtent", "c0b007", 52, JBLTYPE_DOUBLE },
+ { "con1", "c0b008", 51, JBLTYPE_DOUBLE },
+ { "iskip", "c0b009", 13, JBLTYPE_DOUBLE },
+ { "zinf", "c0b010", 13, JBLTYPE_DOUBLE },
+ { "eta", "c0b011", 13, JBLTYPE_DOUBLE },
+ // To do.
+ { "itbtb3", "c44b25", 72, JBLTYPE_COMPLEX_DOUBLE },
+ { "tbtext", "c44b26", 73, JBLTYPE_COMPLEX_DOUBLE },
+ { "karray", "c45b01", 9, JBLTYPE_DOUBLE },
+ { "karray", "c47b01", 9, JBLTYPE_DOUBLE }
+ };
+
+ //
+
+ bool vardim(const std::string &sFileName, std::vector<long int> &sListNew)
+ {
+ long int i;
+ long int j;
+ long int n4, n9, n37;
+ bool bReturnValue = false;
+ long int n1;
+ long int nMTot;
+ long int pKExtra[ NUMKEX ];
+ long int pDefaultSizes[ NUMLST ] = {
+ 250, 300, 500, 100,
+ 2500, 40, 550, 1750,
+ 75, 160, 50, 50,
+ 5, 460, 50, 40,
+ 4, 5, 1600, 650,
+ 100, 150, 4000, 3,
+ 400, 50, 50, 1080
+ };
+ std::fstream sSizesFile;
+ std::vector<long int> sKExtra(NUMKEX);
+ std::vector<long int> sDefaultSizes(&pDefaultSizes[ 0 ], &pDefaultSizes[ NUMLST ]);
+ //
+ if(blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << " Begin of vardim." << std::endl;
+ sListNew.resize(99);
+ sSizesFile.open(sFileName.c_str(), std::ios::in);
+ if(sSizesFile.good()) {
+ for(i = 1; i <= NUMLST; i++)
+ sSizesFile >> std::setw(8) >> sListNew[ i - 1 ];
+ if((sListNew[ 0 ] / 10e6) == 9) {
+ for(i = 1; i <= NUMKEX; i++)
+ sSizesFile >> sKExtra[ i - 1 ];
+ sListNew[ 0 ] -= 90e6;
+ }
+ sSizesFile.close();
+ } else {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Using default data sizes." << std::endl;
+ for(i = 1; i <= NUMLST; i++)
+ sListNew[ i - 1 ] = sDefaultSizes[ i - 1 ];
+ }
+ if(blkcom::nIprsUp >= 1) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Pseudo-listing of data cards";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " which have been read by the variable";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "-dimensioning program 'vardim' . Only" << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " if all data fields are punched with";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " 'clean' i8 integer information will";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " this be a true listing. Data cards" << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " are in fact read in and then printed out";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " using integer variables and 10i8";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " format." << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(111, '-') << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(31, ' ') << "0";
+ for(i = 1; i <= 8; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(9, ' ') << std::setw(1) << i;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << std::string(31, ' ') << "0";
+ for(i = 1; i <= 8; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(9, ' ') << "0";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << std::string(31, ' ') << std::string(81, '-') << std::endl;
+ for(j = 0; j < 3; j++) {
+ switch(j) {
+ case 0:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " 1st card (lists 1-10)." << std::string(7, ' ') << "|";
+ break;
+
+ case 1:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " 2nd card (lists 11-20)." << std::string(7, ' ') << "|";
+ break;
+
+ case 2:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " 3rd card (lists 21-30)." << std::string(7, ' ') << "|";
+ break;
+ }
+ for(i = 0; i < 8; i++)
+ if((i + 8 * j) < NUMLST)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(10) << std::setfill(' ') << sListNew[ i + 8 * j ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ }
+ }
+ if((sListNew[ 0 ] / 10e6) != 9)
+ goto a5294;
+ if(blkcom::nIprsUp >= 1) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Supplemental offsets." << std::string(9, ' ') << "|";
+ for (i = 1; i <= NUMKEX; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << pKExtra[ i - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ }
+ sListNew[ 0 ] -= 90e6;
+
+ a5294:
+ if((sListNew[ 10 ] / 10e6) == 9) {
+ n4 = sListNew[ 10 ] - 90e6;
+ for(j = 1; j <= NUMLST; j++) // 5296
+ sListNew[ j - 1 ] = pDefaultSizes[ j - 1 ] * n4; // end 5296
+ }
+ if(sListNew[ 0 ] > 0)
+ sListNew[ 0 ] += 2;
+ for(i = 1; i <= NUMLST; i++) {
+ n1 = i;
+ if(sListNew[ i - 1 ] >= 1e6)
+ return false;
+ if(sListNew[ i - 1 ] <= 0)
+ sListNew[ i - 1 ] = pDefaultSizes[ i - 1 ];
+ }
+ if(sListNew[ 18 ] <= 23)
+ sListNew[ 18 ] = 23;
+ if(sListNew[ 25 ] <= 10)
+ sListNew[ 25 ] = 10;
+ n1 = sListNew[ 15 ] / 2;
+ if(2 * n1 != sListNew[ 15 ])
+ sListNew[ 15 ] += 1;
+ n1 = sListNew[ 26 ] / 2;
+ if(2 * n1 != sListNew[ 26 ])
+ sListNew[ 26 ] += 1;
+ // list number 51 is a dependent list, always twice
+ // the size of list number 13.
+ // This is for frequency-dependence arrays
+ // 'con1' , 'con2' , and 'con3' .
+ sListNew[ 50 ] = 6 * sListNew[ 12 ];
+ // list number 52 is a dependent list, always twice
+ // the size of list number 1, plus one.
+ // This is for frequency-dependence array 'iwtent' .
+ sListNew[ 51 ] += 1;
+ // list number 7 also serves for storage as part of
+ // list number 3. Hence list 7 must not be shorter.
+ // if (lstnew(3) .gt. lstnew(7))
+ // 1 lstnew(7) = lstnew(3)
+ // List number 53 is for terminal pairs
+ // associated with compensation elements.
+ sListNew[ 52 ] = sListNew[ 8 ] + 3 * sListNew[ 16 ];
+ // cable adds 5 list-2 extensions to 'namebr'
+ sListNew[ 53 ] = 6 * sListNew[ 1 ];
+ // list 55 has one entry for each subnetwork.
+ sListNew[ 54 ] = sListNew[ 8 ] + sListNew[ 16 ];
+ // list 56 is for vladimir's "cikfd" and "rmfd"
+ // arrays for freq-depend. generator equivalent
+ sListNew[ 55 ] = sListNew[ 1 ] * sListNew[ 26 ] / 2;
+ // list 57 maps #phases into znonl size.
+ sListNew[ 56 ] = sListNew[ 0 ] * sListNew[ 23 ];
+ // list 58 is for extrema vector "xmax" .
+ sListNew[ 57 ] = 4 * sListNew[ 11 ];
+ // list 59 is extended working vector "volti"
+ sListNew[ 58 ] = 2 * sListNew[ 25 ];
+ // list 60 provides double-length "kmswit" as
+ // replacement for earlier "klow" and "khigh"
+ sListNew[ 59 ] = 3 * sListNew[ 5 ];
+ // list 61 is for ontario hydro freq-dep source
+ sListNew[ 60 ] = 1;
+ // list 62 is for power/energy ("koutvp" which
+ // now includes former, separate "koutie")
+ sListNew[ 61 ] = 2 * sListNew[ 17 ];
+ sListNew[ 62 ] = 3 * sListNew[ 5 ];
+ sListNew[ 63 ] = 4 * sListNew[ 5 ];
+ // list 65 is for type-59 s.m. electrical data:
+ sListNew[ 64 ] = 101 * sListNew[ 16 ];
+ // list 66 is for type-59 s.m. electrical variables:
+ sListNew[ 65 ] = 24 * sListNew[ 16 ];
+ // list 67 is for type-59 s.m. mechanical data:
+ sListNew[ 66 ] = 12 * sListNew[ 15 ];
+ // list 68 is for type-59 s.m. mechanical variables:
+ sListNew[ 67 ] = 6 * sListNew[ 15 ];
+ // list 69 is for type-59 s.m. pointers:
+ sListNew[ 68 ] = 30 * sListNew[ 16 ];
+ // list 70 is for type-59 s.m. output pointers:
+ sListNew[ 69 ] = 5 * sListNew[ 10 ] + 2;
+ // list 71 is to extend list 21 for Ljg (18 aug 1987):
+ sListNew[ 70 ] = 2 * sListNew[ 20 ];
+ sListNew[ 71 ] = sListNew[ 7 ] + sListNew[ 27 ];
+ // list 73 is to extend list 22 for Ljg (10 mar 1988):
+ sListNew[ 72 ] = sListNew[ 21 ] + sListNew[ 20 ];
+ nMTot = 0;
+ std::vector<tVariable> sVariables(pVariables, pVariables + sizeof(pVariables) / sizeof(tVariable));
+ std::vector<tVariable>::iterator pI;
+ for(pI = sVariables.begin(); pI != sVariables.end(); pI++) {
+ n9 = pI -> m_nSize;
+ if((n9 != 0) && (n9 != 98)) {
+ n37 = 3;
+ if(pI -> m_sType != 0)
+ n37 = (long int) pI -> m_sType;
+ nMTot += (size_t) (n37 * sListNew[ n9 - 1 ]);
+ }
+ }
+ sListNew[ 28 ] = nMTot;
+ labcom::sX.resize(sListNew[ sVariables[ 0 ].m_nSize ]);
+ labcom::sYKM.resize(sListNew[ sVariables[ 1 ].m_nSize ]);
+ labcom::sKM.resize(sListNew[ sVariables[ 2 ].m_nSize ]);
+ labcom::sXK.resize(sListNew[ sVariables[ 3 ].m_nSize ]);
+ labcom::sXM.resize(sListNew[ sVariables[ 4 ].m_nSize ]);
+ labcom::sWeight.resize(sListNew[ sVariables[ 5 ].m_nSize ]);
+ labcom::sIWTent.resize(sListNew[ sVariables[ 6 ].m_nSize ]);
+ labcom::sCOn1.resize(sListNew[ sVariables[ 7 ].m_nSize ]);
+ labcom::sISkip.resize(sListNew[ sVariables[ 8 ].m_nSize ]);
+ labcom::sZInf.resize(sListNew[ sVariables[ 9 ].m_nSize ]);
+ labcom::sEta.resize(sListNew[ sVariables[ 10 ].m_nSize ]);
+ labcom::sNHist.resize(sListNew[ sVariables[ 11 ].m_nSize ]);
+ labcom::sStailM.resize(sListNew[ sVariables[ 12 ].m_nSize ]);
+ labcom::sStailK.resize(sListNew[ sVariables[ 13 ].m_nSize ]);
+ labcom::sXMax.resize(sListNew[ sVariables[ 14 ].m_nSize ]);
+ labcom::sKOutVP.resize(sListNew[ sVariables[ 15 ].m_nSize ]);
+ labcom::sBNRG.resize(sListNew[ sVariables[ 16 ].m_nSize ]);
+ labcom::sSCOnST.resize(sListNew[ sVariables[ 17 ].m_nSize ]);
+ labcom::sCNVHst.resize(sListNew[ sVariables[ 18 ].m_nSize ]);
+ labcom::sHSFD.resize(sListNew[ sVariables[ 19 ].m_nSize ]);
+ labcom::sQFD.resize(sListNew[ sVariables[ 20 ].m_nSize ]);
+ labcom::sSemAux.resize(sListNew[ sVariables[ 21 ].m_nSize ]);
+ labcom::sIBSOut.resize(sListNew[ sVariables[ 22 ].m_nSize ]);
+ labcom::sBValue.resize(sListNew[ sVariables[ 23 ].m_nSize ]);
+ labcom::sSPTACS.resize(sListNew[ sVariables[ 24 ].m_nSize ]);
+ labcom::sKSWTyp.resize(sListNew[ sVariables[ 25 ].m_nSize ]);
+ labcom::sModSwt.resize(sListNew[ sVariables[ 26 ].m_nSize ]);
+ labcom::sKBegSw.resize(sListNew[ sVariables[ 27 ].m_nSize ]);
+ labcom::sLastSw.resize(sListNew[ sVariables[ 28 ].m_nSize ]);
+ labcom::sKENTNB.resize(sListNew[ sVariables[ 29 ].m_nSize ]);
+ labcom::sNBHDSw.resize(sListNew[ sVariables[ 30 ].m_nSize ]);
+ labcom::sTOpen.resize(sListNew[ sVariables[ 31 ].m_nSize ]);
+ labcom::sCrit.resize(sListNew[ sVariables[ 32 ].m_nSize ]);
+ labcom::sKDEPSw.resize(sListNew[ sVariables[ 33 ].m_nSize ]);
+ labcom::sTDNS.resize(sListNew[ sVariables[ 34 ].m_nSize ]);
+ labcom::sISourc.resize(sListNew[ sVariables[ 35 ].m_nSize ]);
+ labcom::sEnergy.resize(sListNew[ sVariables[ 36 ].m_nSize ]);
+ labcom::sIARDUB.resize(sListNew[ sVariables[ 37 ].m_nSize ]);
+ labcom::sARDUBE.resize(sListNew[ sVariables[ 38 ].m_nSize ]);
+ labcom::sNOnLAD.resize(sListNew[ sVariables[ 39 ].m_nSize ]);
+ labcom::sNOnLE.resize(sListNew[ sVariables[ 40 ].m_nSize ]);
+ labcom::sVOnL.resize(sListNew[ sVariables[ 41 ].m_nSize ]);
+ labcom::sCurr.resize(sListNew[ sVariables[ 42 ].m_nSize ]);
+ labcom::sANOnL.resize(sListNew[ sVariables[ 43 ].m_nSize ]);
+ labcom::sVecNL1.resize(sListNew[ sVariables[ 44 ].m_nSize ]);
+ labcom::sVecNL2.resize(sListNew[ sVariables[ 45 ].m_nSize ]);
+ labcom::sNameNL.resize(sListNew[ sVariables[ 46 ].m_nSize ]);
+ labcom::sVZero.resize(sListNew[ sVariables[ 47 ].m_nSize ]);
+ bReturnValue = true;
+ return bReturnValue;
+ }
+
+ bool dimens(std::vector<long int> &sLSizes, \
+ const int &nChain, \
+ std::string &sBus1, \
+ std::string &sBus2)
+ {
+ long int n7;
+ bool bReturnValue = false;
+ //
+ if(sLSizes.size() > 0) {
+ if(blkcom::nChain < 29) {
+ n7 = 29;
+ sLSizes.push_back(0);
+ sBus1 = "91205";
+ sBus2 = "123093";
+ bReturnValue = true;
+ } else if(blkcom::nChain <= 29) {
+ sLSizes[ 0 ] = 0;
+ sLSizes[ 1 ] = 1992869;
+ sLSizes[ 2 ] = 23;
+ sLSizes[ 3 ] = 30000;
+ sLSizes[ 4 ] = 1;
+ sLSizes[ 5 ] = 3002;
+ sLSizes[ 6 ] = 9;
+ sLSizes[ 7 ] = 300;
+ bReturnValue = true;
+ } else if(blkcom::nChain <= 39) {
+ // To do.
+ } else if(blkcom::nChain <= 10) {
+ // To do.
+ } else if(blkcom::nChain <= 44) {
+ // To do.
+ } else if(blkcom::nChain <= 45) {
+ // To do.
+ } else if(blkcom::nChain <= 47) {
+ // To do.
+ } else {
+ sLSizes[ 0 ] = (size_t) &sBus1 - (size_t) &sBus2;
+ }
+ }
+ if(blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Exiting vardim." << std::endl;
+ return bReturnValue;
+ }
+
+ bool cleanup(void)
+ {
+ bool bReturnValue = false;
+ //
+ if (labcom::pSpace) {
+ delete [] labcom::pSpace;
+ labcom::pSpace = nullptr;
+ bReturnValue = true;
+ }
+ return bReturnValue;
+ }
+
+}
+
+// end of file newmods.cpp
diff --git a/sources/over1.cpp b/sources/over1.cpp
new file mode 100644
index 0000000..35b6ced
--- /dev/null
+++ b/sources/over1.cpp
@@ -0,0 +1,767 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file over1.cpp
+
+#include "over1.hpp"
+
+namespace over1 {
+
+ // subroutine over1.
+ void over1(void)
+ {
+ long int i;
+ long int j;
+ long int ll1, ll8, ll80;
+ long int n1, n5, n6, n7, n9;
+ long int nIAdQQ;
+ long int nIDA;
+ long int nIFKC;
+ long int nIP;
+ long int nIsWent;
+ long int nIY;
+ long int nNFDBR;
+ long int nNFDHST;
+ long int nNFDPH;
+ long int nNFDPol;
+ long int nNGroup;
+ long int nNK;
+ long int nNMAuto;
+ long int nNTLin;
+ long int nNTurn;
+ long int nNumBCO;
+ long int nNumNam;
+ long int pLSTACS[] = { 20, 90, 100, 20, 30, 250, 350, 60 };
+ double d1, d2, d3, d13;
+ double nPU;
+ double nZNVRef;
+ void *pLU2 = nullptr;
+ void *pLU6 = nullptr;
+ std::string sBus;
+ std::string sDiskFileName;
+ std::string sText2("name ");
+ std::string sText6("copy ");
+ std::string sText1("tacs o");
+ std::string sText3("tacs h");
+ std::string sText4("tacs s");
+ std::string sText5("4 ");
+ std::string sText7("tacs ");
+ //
+ auto start_again = [ & ](void)
+ {
+ long int j;
+ //
+ blkcom::pIAlter = blkcom::pLFiles[ 1 ];
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pKFile6)) << "+Continue partially-completed data case." << std::endl;
+ if(blkcom::sTexCol[ 12 ] == sText5[ 0 ])
+ goto a2861;
+ blkcom::sABuff >> sDiskFileName;
+ for(j = 1; j <= 2; j++) {
+ n7 = sDiskFileName.find(',');
+ sDiskFileName.replace(0, n7, " ");
+ }
+ for(j = n7; j <= 80; j++)
+ if(sDiskFileName[ j - 1 ] != ' ')
+ break;
+ std::cout << " name of old pl4 file disk_file(j : 80) = " << sDiskFileName.substr(j, 80) << std::endl;
+ blkcom::pLFiles[ 76 ] = nullptr;
+ blkcom::pLFiles[ 76 ] = (void *) new std::ifstream;
+ if(blkcom::pLFiles[ 76 ]) {
+ reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ]) -> open(sDiskFileName.substr(j, 80).c_str(), std::ios::in);
+ }
+ std::cout << " 1st record. numnam, numnvo, numbco, numbrn =" << nNumNam << dekplt::nNumNVO << nNumBCO << dekplt::nNumBrn << std::endl;
+ if(((blkcom::nLBus + blkcom::pSStat -> m_nSize7) >= nNumNam) && \
+ (blkcom::pSStat -> m_nSize12 >= dekplt::nNumNVO) && \
+ (blkcom::nLBranch >= dekplt::nNumBrn))
+ goto a2859;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Temporary error stop in \"over1\". Program dimensioning is inadequate. numnam, numnvo, numbrn =" << std::setfill(' ') << std::setw(8) << blkcom::nNumName << blkcom::nNumNVO << blkcom::nNumBRN << std::endl;
+ if(blkcom::pLFiles[ 76 ]) {
+ reinterpret_cast<std::ifstream *>(blkcom::pLFiles) -> close();
+ delete blkcom::pLFiles[ 76 ];
+ }
+ stoptp();
+
+ a2859:
+ reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ]) -> seekg(0, std::ios::beg);
+ n8 = blkcom::nLBus;
+ if(blkcom::nLBus >= blkcom::nNumNam)
+ n8 = blkcom::nNumNam - 1;
+ std::cout << " New name logic. n8, numnam, lbus =" << n8 << blkcom::nNumNam << blkcom::nLBus << std::endl;
+ (*reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ])) << datexx << tcloxx << blkcom::nNumNam << blkcom << nNumNVO << blkcom::nNumBCO << blkcom::nNumBRN;
+ for(j = 1; j <= n8; j++)
+ (*reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ])) >> blkcom::sBus[ j - 1 ];
+ std::cout << " bus(1 : n8) =";
+ for(j = 1; j <= n8; j++)
+ std::cout << blkcom::sBus[ j - 1 ] << " ";
+ std::cout << std::endl;
+
+ a2859:
+ reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ]) -> seekg(0, std::ios::beg);
+ blkcom::nNum888 = blkcom::nNumNam - n8;
+ std::cout << " Ready for final, full read with num888 =" << blkcom::nNum888 << std::endl;
+ (*reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ])) >> datexx >> tcloxx >> blkcom::nNumNam >> blckom::nNumNVO >> blkcom::nNumBCO >> blkcom::nNumBRN;
+ for(j = 1; j <= n8; j++)
+ (*reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ])) >> blkcom::sBus[ j - 1 ];
+ for(j = 1; j <= blkcom::nNum888; j++)
+ (*reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ])) >> blkcom::pTexVec[ j - 1 ];
+ std::cout << " After all named are read. Next, ibsout." << std::endl;
+ if(blkcom::nNumNVO > 0)
+ for(j = 1; j <= blkcom::nNumNVO)
+ (*reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ])) >> blkcom::pIBSOut[ j - 1 ];
+ std::cout << " After ibsout. Next, ...." << std::endl;
+ if(blkcom::nNumBRN > 0)
+ for(j = 1; j <= blkcom::nNumBRN)
+ (*reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ])) >> blkcom::sMBus[ j - 1 ];
+ std::cout << " After kbus, mbus." << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 3 ])) << blkcom::sDate1 << blkcom::sTClock << blkcom::nNumNam << blkcom::nNumNVO << blkcom::nNumBCO << blkcom::nNumBRN;
+ for(j = 1; j <= n8; j++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 3 ])) << blkcom::sBus[ j - 1 ];
+ for(j = 1; j <= blkcom::nNum888; j++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 3 ])) << blkcom::sTexVec[ j - 1 ];
+ std::cout << " over1, lunit4 date and time =" << blkcom::pDate1[ 0 ] << blkcom::pDate1[ 1 ] << " " << blkcom::pTClock[ 0 ] << blkcom::pTClock[ 1 ] << std::endl;
+ if(blkcom::nNumNVO > 0)
+ for(j = 1; j <= blkcom::nNumNVO; j++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 3 ])) << blkcom::pIBSOut[ j - 1 ];
+ if(blkcom::nNumBRN > 0)
+ for(j = 1; j <= blkcom::nNumBRN; j++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 3 ])) << blkcom::pKBus[ j - 1 ] << blkcom::pMBus[ j - 1 ];
+ n18 = blkcom::nNumNVO + blkcom::nNumBRN + 1;
+ std::cout << " Enter loop over numbers. n18 =" << n18 << std::endl;
+ j = 1;
+ FOREVER {
+ for(k = 1; k <= n18; k++) {
+ (*reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ])) >> labcom::sR4[ k - 1 ];
+ if(reinterpret_cast<std::ifstream *>(blkcom::pLFiles[ 76 ]) -> eof())
+ goto a6539;
+ }
+ if((blkcom::nIprsUp == 7) || (blkcom::nIprsUp > 9))
+ std::cout << " j, r4(1) =" << j << labcom::sR4[ 0 ];\
+ if(sR4[ 0 ] == -9999.0e0)
+ break;
+ for(k = 1; k <= n18; k++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 3 ])) << labcom::sR4[ k - 1 ];
+ ++j;
+ }
+
+ a6539:
+ std::cout << " Done transferring lun77 to lunit(4). j =" << j << std::endl;
+ runtym(d1, d2);
+ n18 = pLocker[ 0 ];
+ n19 = pLocker[ 1 ];
+ pfatch();
+ tables();
+ std::cout << " n18, n19, locker(1), locker(2) =" << n18 << n19 << pLocker[ 0 ] << pLocker[ 1 ] << std::endl;
+ blkcom::pFLStat[ 0 ] = -d1;
+ blkcom::pFLStat[ 1 ] = -d2;
+ if((n18 == pLocker[ 0 ]) && (n19 == pLocker[ 1 ]))
+ goto a2863;
+ blkcom::nKill = 201;
+ blkcom::sStat.m_nTACST = 2861;
+ };
+ auto absolute_TACS_dimensions = [ & ](void)
+ {
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pKFile6)) << "+Set absolute TACS list size limits." << std::endl;
+ // To do.
+ };
+ auto relative_TACS_dimensions = [ & ](void)
+ {
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFile6)) << "+Proportional allocation of total TACS storage." << std::endl;
+ cimage();
+ if(blkcom::nKolBeg > 0)
+ goto a7120;
+ expchk(ll1, ll80, ll8);
+ if(blkcom::nKill > 0)
+ goto a9200;
+ for(i = 1; i <= 10; i++)
+ blkcom::sABuff >> labcom::sVoltBC[ i - 1 ];
+ goto a7130;
+
+ a7120:
+ blkcom::nNFrFld = 10;
+ freeOne(sVoltBC);
+
+ a7130:
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pKFile6)) "+Relative list sizes." << labcom::sVoltBC[ 0 ] << labcom::sVoltBC[ 1 ] << labcom::sVoltBC[ 2 ] << std::endl;
+ d1 = 0.0e0;
+ for(i = 1; i <= 8; i++)
+ d1 += labcom::sVoltBC[ i - 1 ];
+ d1 = blckom::nLTACST * blkcom::pNByte[ 2 ] / d1;
+ pLSTACS[ 0 ] = (long int) (labcom::sVoltBC[ 0 ] * d1 / (4 * blkcom::pNByte[ 2 ] + 8 * blkcom::pNByte[ 3 ]));
+ pLSTACS[ 1 ] = (long int) (labcom::sVoltBC[ 1 ] * d1 / (2 * blkcom::pNByte[ 2 ] + blkcom::pNByte[ 3 ]));
+ pLSTACS[ 2 ] = (long int) (labcom::sVoltBC[ 2 ] * d1 / (2 * blkcom::pNByte[ 3 ]));
+ pLSTACS[ 3 ] = (long int) (labcom::sVoltBC[ 3 ] * d1 / (5 * blkcom::pNByte[ 2 ] + blkcom::pNByte[ 3 ]));
+ pLSTACS[ 4 ] = (long int) (labcom::sVoltBC[ 4 ] * d1 / (3 * blkcom::pNByte[ 3 ]));
+ pLSTACS[ 5 ] = (long int) (labcom::sVoltBC[ 5 ] * d1 / blkcom::pNByte[ 3 ]);
+ PLSTACS[ 6 ] = (long int) (labcom::sVoltBC[ 6 ] * d1 / blkcom::pNByte[ 2 ]);
+ pLSTACS[ 7 ] = (long int) (labcom::sVoltBC[ 7 ] * d1 / (6 * blkcom::pNByte[ 2 ] + 2 * blkcom::pNByte[ 3 ]));
+ };
+ auto read_input_card = [ & ](void)
+ {
+ cimage();
+ for(i = 1; i <= 14; i++)
+ blkcom::sABuff >> blkcom::sAUpper[ i - 1 ];
+ if(strcom::toLower(blkcom::sAUpper[ 0 ]) == sText1)
+ goto a2697;
+ if(strcom::toLower(blkcom::sAUpper[ 0 ]) == sText3)
+ goto a2697;
+ if(strcom::toLower(blkcom::sAUpper[ 0 ]) == sText4)
+ goto a2699;
+ if(strcom::toLower(blkcom::sAUpper[ 0 ]) == sText6)
+ goto a7722;
+ (*reinterpret_cast<std::ostream *>(blkcom::pKFile6)) << " Begin TACS. " << std::string(27, ' ') << std::endl;
+ blkcom::nNewTAC = 1;
+ blkcom::nNTCSEX = 1;
+ blkcom::nNIUNRS = 1;
+ std::cout << " Prepare to call ntacs1 from over1." << std::endl;
+ ntacs1();
+ std::cout << " Back from ntacs1, back in over1." << std::endl;
+ goto a4284;
+
+ a2697:
+ blkcom::nNTCSEX = 1;
+
+ a2699:
+ n1 = 1;
+ if(blkcom::nNOutPR != 0)
+ goto a2691;
+ if(blckom::nNTCSEX == 0)
+ goto a22699;
+ if(blckom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pKFile6)) << "+TACS hyvrid setup. TACS data cards follow." << std::endl;
+ // 1984 format(18x, i2)
+
+ char *pTemp[ 20 ];
+ blkcom::sABuff.read(pTemp, 18);
+ blkcom::sABuff >> blkcom::sLStat[ 51 ];
+ goto a2691;
+
+ a4281:
+ if(n1 == 0)
+ goto a4284;
+ move(blkcom::pLSTACS, &blkcom::pLStat[ 60 ], ll8);
+ blkcom::nKTab = 1;
+ tacs1();
+ if(blkcom::nKill > 0)
+ goto a9200;
+ if((blkcom::nNTCSEX + blkcom::nNSTACS) > 0)
+ goto a4276;
+ blkcom::nIndStp = 1;
+ blkcom::LimStp = blkcom::pKprChg[ 0 ];
+ runtym(d1, d2);
+ blkcom::pFLStat[ 0 ] += d1;
+ blkcom::pFLStat[ 1 ] += d2;
+ blkcom::pFLStat[ 6 ] -= d1;
+ blkcom::pFLStat[ 7 ] -= d2;
+ blkcom::nChain = 12;
+ };
+ //
+ // over1 main function body.
+ //
+ ll8 = LL8;
+ ll80 = LL80;
+ //
+ if(blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "Begin module over1." << std::endl;
+ nPU = std::numeric_limits<double>::infinity();
+ movecopy::move0<long int>(blkcom::pKTRLSW, LL6);
+ movecopy::move0<long int>(blkcom::pIpnTV, LL11);
+ movecopy::move0<long int>(blkcom::pLoopSS, LL11);
+ blkcom::sMonCar.m_nUserSST = 0;
+ nNMAuto = 0;
+ umcom::pBUSUM[ 0 ] = sText2;
+ blkcom::nNRight = 0;
+ blkcom::nIofgnd = 0;
+ blkcom::nMolDat = 0;
+ blkcom::nIStep = 0;
+ blkcom::sMonCar.m_nKLoaEP = 0;
+ blkcom::nTEnerg = 1e+20;
+ blkcom::sBranch = sText2;
+ blkcom::sCopy = sText6;
+ blkcom::nIAlter = 0;
+ blkcom::nIsPrin = 0;
+ blkcom::nIsPlot = 0;
+ blkcom::nIndStp = 1;
+ blkcom::nNOutPR = 0;
+ blkcom::pLFiles[ 0 ] = reinterpret_cast<void *>(&std::cerr);
+ blkcom::pLFiles[ 4 ] = reinterpret_cast<void *>(&std::cin);
+ blkcom::pLFiles[ 5 ] = reinterpret_cast<void *>(&std::cout);
+ blkcom::pKFile6 = blkcom::pLFiles[ 5 ];
+ blkcom::pPeakND[ 0 ] = 0.0;
+ blkcom::nKBurro = 0;
+ // Assign default relative precision for 6 EMTP variable types.
+ // 1 --- alphanumeric 2 --- complex
+ // 3 --- floating-point numeric 4 --- integer numeric
+ // 5 --- 3 of 'subr31' 6 --- 4 of 'subr31'
+ // setting all equal to unity means that all have equal length.
+ for(j = 1; j <= 6; j++)
+ blkcom::pNByte[ j - 1 ] = 1;
+ emtp::dimens(blkcom::sLStat, \
+ blkcom::nChain, \
+ blkcom::sBus1, \
+ blkcom::sBus2);
+ /*
+ blkcom::nLBus = blkcom::sLStat[ 0 ];
+ blkcom::nLBrnch = blkcom::sLStat[ 1 ];
+ blkcom::nLData = blkcom::sLStat[ 2 ];
+ blkcom::nLExct = blkcom::sLStat[ 3 ];
+ blkcom::nLYMat = blkcom::sLStat[ 4 ];
+ blkcom::nLSwtch = blkcom::sLStat[ 5 ];
+ blkcom::nLSize7 = blkcom::sLStat[ 6 ];
+ blkcom::nLPast = blkcom::sLStat[ 7 ];
+ blkcom::nLNonL = blkcom::sLStat[ 8 ];
+ blkcom::nLChar = blkcom::sLStat[ 9 ];
+ blkcom::nLSMOut = blkcom::sLStat[ 10 ];
+ blkcom::nLSize12 = blkcom::sLStat[ 11 ];
+ blkcom::nLFDep = blkcom::sLStat[ 12 ];
+ blkcom::nLWT = blkcom::sLStat[ 13 ];
+ blkcom::nLTails = blkcom::sLStat[ 14 ];
+ blkcom::nLIMass = blkcom::sLStat[ 15 ];
+ blkcom::nLSyn = blkcom::sLStat[ 16 ];
+ blkcom::nMaxPE = blkcom::sLStat[ 17 ];
+ blkcom::nLTCST = blkcom::sLStat[ 18 ];
+ blkcom::nLFSem = blkcom::sLStat[ 19 ];
+ blkcom::nLFD = blkcom::sLStat[ 20 ];
+ blkcom::nLHist = blkcom::sLStat[ 21 ];
+ blkcom::nLSize23 = blkcom::sLStat[ 22 ];
+ blkcom::nLComp = blkcom::sLStat[ 23 ];
+ blkcom::nLSPCum = blkcom::sLStat[ 24 ];
+ blkcom::nLSize26 = blkcom::sLStat[ 25 ];
+ blkcom::nLSize27 = blkcom::sLStat[ 26 ];
+ blkcom::nLSize28 = blkcom::sLStat[ 27 ];
+ */
+ // memcpy((void *) &blkcom::sSStat, \
+ // (void *) blkcom::sLStat.data(), \
+ //sizeof(blkcom::tStat));
+ blkcom::pSStat = blkcom::sLStat.data()
+ // Assign 'n1' equal to the number of EMTP lists of variable
+ // dimensioning (of the solution overlays).
+ //n1 = 27;
+ //blkcom::nLTLabl = blkcom::sLStat[ n1 + 1 ];
+ comlock::pLocker[ 0 ] = blkcom::sBus1;
+ comlock::pLocker[ 1 ] = blkcom::sBus2;
+ d13 = blkcom::pSStat -> m_nTACST;
+ d13 /= 1600.;
+ for(j = 1; j <= 8; j++)
+ pLSTACS[ j - 1 ] *= d13;
+ n1 = -9999;
+ movecopy::copy<long int>(n1, blkcom::sLStat, LL60);
+ sysdep();
+ movecopy::move0<double>(blkcom::sFLStat, LL20);
+ date_time::runtym(d1, d2);
+ blkcom::sFLStat[ 0 ] -= d1;
+ blkcom::sFLStat[ 1 ] -= d2;
+ blkcom::nTenM6 = pow(blkcom::nTenM3, 2.0);
+ blkcom::nMaxZNO = 50;
+ blkcom::nEpsZNo = blkcom::nEpsilon;
+ blkcom::nEpWarn = blkcom::nTenM3;
+ blkcom::nEpStop = 0.1;
+ blkcom::pZNoLim[ 0 ] = 1.0;
+ blkcom::pZNoLim[ 1 ] = 1.5;
+ blkcom::sMonCar.m_nKBase = 0;
+ blkcom::sMonCar.m_nISW = 0;
+ blkcom::pKPrChg[ 0 ] = -7777;
+ blkcom::nJFLSOS = 0;
+ // rewind lunit1
+ // rewind lunit3
+ // rewind lunit4
+ blkcom::sMonCar.m_nKnt = 1;
+ blkcom::sMonCar.m_pMTape = blkcom::pLFiles[ 4 ];
+ blkcom::nIFDep = 0;
+ blkcom::nNTCSex = 0;
+ blkcom::nNSTACS = 0;
+ blkcom::nKanal = 0;
+
+ // Initialize KPARTB with nonzero value so later minus
+ // sign can be applied as flag of "renumber bypass" usage:
+ blkcom::nKPartB = 1000;
+
+ // SYSDEP will redefine if low-prec. Complex ("cable constants"):
+ nZNVRef = 0.0;
+ blkcom::nFMaxFS = 0.0;
+ blkcom::pBegMax[ 0 ] = 0.0;
+ blkcom::pBegMax[ 1 ] = 0.0;
+ blkcom::pBegMax[ 2 ] = std::numeric_limits<double>::infinity();
+ blkcom::nKTRef = 0;
+ blkcom::nNComp = 0;
+ blkcom::nNumSM = 0;
+ blkcom::nNumUM = 0;
+ blkcom::nNumOut = 0;
+ blkcom::nKill = 0;
+ blkcom::nNum99 = 0;
+ blkcom::nModOut = 0;
+ blkcom::pInEcho = nullptr;
+ sBus = blkcom::sBlank;
+ blkcom::nIAverg = 0;
+ movecopy::move0<int>(labcom::sISourc, blkcom::sSStat.m_nSwitch);
+ movecopy::move0<int>(labcom::sKodeBR, blkcom::sSStat.m_nBranch);
+ movecopy::move0<int>(labcom::sKodSem, blkcom::sSStat.m_nBranch);
+ movecopy::move0<int>(labcom::sLength, blkcom::sSStat.m_nBranch);
+ movecopy::move0<int>(labcom::sIndHst, blkcom::sSStat.m_nBranch);
+ movecopy::move0<double>(labcom::sBValue, blkcom::sSStat.m_nSize12);
+ nIsWent = 1;
+ blkcom::nOmega = 0.0;
+ blkcom::nDegMin = 0.0;
+ blkcom::nDegMax = 0.0;
+ blkcom::nSglFir = 2.0 * M_PI;
+ blkcom::nJST = 0;
+ blkcom::nJST1 = 1;
+ blkcom::nIFDep2 = 1;
+ blkcom::nIAdd = 0;
+ blkcom::nIFSem = 0;
+ //
+ com2::nIDM = 1;
+ com2::nIDQ = 1;
+ com2::nIDU = 1;
+ com2::nIDT = 1;
+ nIAdQQ = 1;
+ com2::nIQ = 0;
+ com2::nIDA = 0;
+ com2::nIDY = 0;
+ com2::nIFKC = 0;
+ nNK = 0;
+ nNGroup = 0;
+ nNTurn = 0;
+ nNFDBR = 0;
+ nNFDPH = 9;
+ nNFDHST = 5400;
+ // nNFDPOL = 25;
+ nNFDPol = 30;
+ nNTLin = 0;
+ // pLU2 = ...
+ pLU6 = blkcom::pLFiles[ 5 ];
+
+ a5223:
+ blkcom::nIFX = 0;
+ nIP = 2;
+ nIY = 2;
+ blkcom::nICat = 0;
+ if(blkcom::nNOutPR != 0)
+ goto a15;
+ if(blkcom::nKol132 == 132)
+ goto a6452;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " ********* Begin \"M40.\" EMTP solution.";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Size /label/ =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(7) << std::setfill(' ') << std::dec;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << blkcom::sSStat.m_nTLabl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " integer words." << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " list limits 1-10 :";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nBus;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nBranch;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nData;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nExct;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nYMat;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nSwitch;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nSize7;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nPast;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nNOnL;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nChar << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " list limits 11-20 :";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nSMOut;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nSize12;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nFDep;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nWT;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nTails;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nIMass;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nSyn;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nMaxPE;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nTACST;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(6) << std::dec << blkcom::sSStat.m_nFSem << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " list limits 21-end:";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nFD;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nHist;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize23;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nComp;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSPCum;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize26;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize27;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize28 << std::endl;
+ goto a15;
+
+ a6452:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Associated user documentation is the 864-page EMTP rule book dated June, 1984. Version M43. Vardim time/date =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << comlock::pLocker[ 0 ] << comlock::pLocker[ 1 ] << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Independent list limits follow. Total length of /label/ equals ";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(8) << std::dec << blkcom::sSStat.m_nTLabl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " integer words. ";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nBus;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nBranch;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nData;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nExct;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nYMat;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSwitch << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize7;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nPast;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nNOnL;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nChar;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSMOut;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize12;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nFDep;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nWT;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nTails;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nIMass;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSyn;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nMaxPE;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nTACST;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nFSem;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nFD;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nHist;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize23;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nComp;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSPCum;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize26;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize27;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(6) << std::setfill(' ') << std::dec << blkcom::sSStat.m_nSize28 << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(51, '-') << "+" << std::string(80, '-') << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Descriptive interpretation of new-case input data |" << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " input data card images printed below, all 80 columns, character by character." << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(51, ' ') << "|" << std::flush;
+ for(i = 1; i <= 8; i++) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(9, ' ') << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(1) << std::dec << i << std::flush;
+ }
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(51, ' ') << "|" << std::flush;
+ for(i = 1; i <= 8; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(9, ' ') << "0" << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(51, '-') << "+" << std::string(80, '-') << std::endl;
+
+ a15:
+ FOREVER {
+ emtp::cimage();
+ if(blkcom::nKill > 0)
+ goto a9200;
+ blkcom::nNRight = -2;
+ n9 = blkcom::nKolBeg;
+ blkcom::nKolBeg = 1;
+ blkcom::sTexCol = blkcom::sABuff.str().substr(0, 80);
+ freedom::freeOne(d1);
+
+ a3247:
+ blkcom::nNRight = 0;
+ if(n9 == -std::numeric_limits<long int>::infinity())
+ blkcom::nKolBeg = n9;
+ if(blkcom::nNFrFld > 0)
+ goto a3280;
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pKFile6)) << "+Blank termination-of-run card." << std::endl;
+ interp();
+ blkcom::nIVolt = 7777;
+
+ a3273:
+ blkcom::nKill = 9999;
+ blkcom::nChain = 31;
+ goto a9800;
+
+ a3280:
+ reques();
+ i = sStat.m_nMaxPE;
+ switch(i) {
+ case 0:
+
+ a2843:
+ if((blkcom::nNOutPR != 0) && (blkcom::nIprsUp > 0))
+ blkcom::nNOutPR = 0;
+ blkcom::nXOpt = blkcom::nStatFR;
+ blkcom::nCOpt = blkcom::nStatFR;
+ blkcom::nKolBeg = n9;
+ if(blkcom::nKolBeg > 0)
+ goto a4201;
+ utilities::expchk(ll1, ll80, ll8);
+ if(blkcom::nKill > 0)
+ goto a9200;
+ blkcom::sABuff >> blkcom::nDeltaT >> blkcom::nTMax >> d1 >> d2 >> d3 >> blkcom::nTolMat >> blkcom::nT;
+ if(blkcom::nT == 0.0)
+ blkcom::nT = 0.0e0;
+ goto a4202;
+
+ a4201:
+ blkcom::nNFrFld = 1;
+ blkcom::nNRight = 0;
+ freedom::freeOne(blkcom::nDeltaT);
+ freedom::freeOne(blkcom::nTMax);
+ freedom::freeOne(d1);
+ freedom::freeOne(d2);
+ freedom::freeOne(d3);
+ freedom::freeOne(blkcom::nTolMat);
+ freedom::freeOne(blkcom::nT);
+
+ a4202:
+ if(blkcom::nNOutPR == 0)
+ (*reinterpret_cast<std::ostream *>(blkcom::pKFile6)) << "+Misc. data." << std::setfill(' ') << std::setw(12) << blkcom::nDeltaT << blkcom::nTMax << d1 << std::endl;
+ if(blkcom::nIofbnd != 33666)
+ goto a4206;
+ blkcom::nChain = 41;
+ blkcom::nXOpt = d1;
+ goto a9800;
+ break;
+
+ case 11:
+ goto a3273;
+ break;
+
+ case 15:
+ start_again();
+ goto a9200;
+ break;
+
+ case 28:
+ goto a3247;
+ break;
+
+ case 32:
+ absolute_TACS_dimensions();
+ goto a15;
+ break;
+
+ case 33:
+ relative_TACS_dimensions();
+ goto a15;
+ break;
+
+ case 34:
+ goto a523;
+ break;
+
+ case 38:
+ goto a15;
+ break;
+
+ case 40:
+ goto a4308;
+ break;
+ }
+ if(blkcom::nKill > 0)
+ goto a9200;
+ if(blkcom::nChain != 1)
+ goto a9800;
+ }
+
+ a4276:
+ blkcom::nChain = 12;
+ goto a9800;
+
+ a4284:
+ blkcom::nChain = 2;
+ goto a9800;
+
+ a9200:
+ blkcom::nChain = 51;
+ blkcom::sLStat[ 17 ] = 1;
+
+ a9800:
+ blkcom::nLastOV = 1;
+ n5 = (size_t) &nIDA;
+ n6 = (size_t) &nIFKC;
+ if(blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "Exit module over1." << std::endl;
+
+ a99999:
+ return;
+ }
+
+ // subroutine tacs1c.
+ void tacs1c(void)
+ {
+ // To do.
+ }
+
+ // subroutine swmodf.
+ void swmodf(void)
+ {
+ // To do.
+ }
+
+ // subroutine reques.
+ void reques(void)
+ {
+ // To do.
+ }
+
+ // subroutine sysdep.
+ void sysdep(void)
+ {
+ std::string sCol("");
+ std::string sColXXX("plt00000000000.pl4");
+ std::string sLettra("a");
+ std::string sLettrb("b");
+ std::string sLettrc("c");
+ std::string sBusNM1(" ");
+ std::string sBusNM2("........");
+ std::string sBusNM3("terra");
+ std::string sText1 = ",";
+ std::string sText2 = "$";
+ //
+ sCol = sColXXX;
+ // To do.
+ blkcom::sBlank = sBusNM1;
+ blkcom::sTrash = sBusNM2;
+ blkcom::sTerra = sBusNM3;
+ blkcom::cCSepar = sText1[ 0 ];
+ blkcom::sChCont = sText2;
+ blkcom::nTenM3 = 1.0e-3;
+ blkcom::nUnity = 1.0e0;
+ blkcom::nOneHaf = 0.5e0;
+ blkcom::pNByte[ 0 ] = 2;
+ blkcom::pNByte[ 1 ] = 2;
+ blkcom::pKTRLSW[ 5 ] = 0;
+ blkcom::pNByte[ 2 ] = 2;
+ blkcom::nEpsilon = 1.0e-8;
+ //blkcom::nTwoPI = 2.0 * M_PI;
+ // To do.
+ }
+
+ // subroutine midov1.
+ void midov1(void)
+ {
+ // To do.
+ }
+
+ // subroutine nmincr.
+ void nmincr(std::string &, int &)
+ {
+ // To do.
+ }
+
+ // subroutine tacs1.
+ void tacs1(void)
+ {
+ // To do.
+ }
+
+ // subroutine tacs1a.
+ void tacs1a(void)
+ {
+ // To do.
+ }
+
+ // subroutine tacs1b.
+ void tacs1b(void)
+ {
+ // To do.
+ }
+
+ // subroutine expchk.
+ void expchk(int &, int &, int &)
+ {
+ // To do.
+ }
+
+ // subroutine intchk.
+ void intchk(int &, int &, int &)
+ {
+ // To do.
+ }
+
+ // subroutine pfatch.
+ void pfatch(void)
+ {
+ // To do.
+ }
+
+}
+
+// end of file over1.cpp
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
diff --git a/sources/over51.cpp b/sources/over51.cpp
new file mode 100644
index 0000000..601a25b
--- /dev/null
+++ b/sources/over51.cpp
@@ -0,0 +1,147 @@
+//-*- mode: c++; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file over51.cpp
+
+#include "over51.hpp"
+
+namespace over51 {
+
+ // subroutine over51.
+
+ void over51(void)
+ {
+ double nVMin;
+ double nVMax;
+ //
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Begin \"over51\". kill = " << blkcom::nKill << std::endl << std::flush;
+ date_time::runtym(nVMin, nVMax);
+ blkcom::sFLStat[ 8 ] = nVMin - blkcom::sFLStat[ 8 ];
+ blkcom::sFLStat[ 9 ] = nVMax - blkcom::sFLStat[ 9 ];
+ if (blkcom::nKill == 0)
+ goto a4521;
+ subr51 ();
+ goto a4536;
+
+ a4521:
+ blkcom::nLastOV = blkcom::nChain;
+ blkcom::nChain = 55;
+
+ a4536:
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Exit module \"over51\"." << std::endl << std::flush;
+ }
+
+ // subroutine subr51.
+
+ void subr51 (void)
+ {
+ //
+ // Note. --- As the structure of the EMTP error overlays change,
+ // the following assignments may have to be altered ...
+ // nfrfld ---- total number of error overlays
+ // kpen(j) ---- storage for the highest kill-code
+ // number handled by error overlay
+ // number 50+j , for all but the
+ // last error overlay.
+ int i;
+ int j;
+ int nKSat;
+ //
+ double nD1;
+ double nVMin;
+ double nVMax;
+ //
+ size_t pKPen[ 5 ] = { 50, 90, 150, 200 };
+ //
+ try {
+ blkcom::nNFrFld = 5;
+ if(blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Begin \"subr51\". kill = " << blkcom::nKill << std::endl << std::flush;
+ if ((blkcom::nKill == 99) && blkcom::sLStat[ 18 ] == 11111)
+ emtp::stoptp ();
+ pKPen[ blkcom::nNFrFld ] = std::numeric_limits<size_t>::max ();
+ date_time::runtym (nVMin, nVMax);
+ blkcom::sFLStat[ 8 ] = nVMin - blkcom::sFLStat[ 8 ];
+ if (blkcom::pIpnTV[ 0 ] != -8888)
+ goto a1643;
+ if (blkcom::nKill == 38)
+ blkcom::sFLStat[ 12 ] = 1.0;
+ if (blkcom::nKill == 41)
+ blkcom::sLStat[ 10 ] = 1;
+ if (blkcom::nKill == 43)
+ blkcom::sFLStat[ 12 ] = 1.0;
+ if ((blkcom::nKill - 1) != blkcom::pIpnTV[ 2 ])
+ goto a1643;
+ blkcom::pIpnTV[ 2 ] = blkcom::nKill;
+ goto a1649;
+
+ a1643:
+ if (blkcom::nLastOV >= blkcom::nChain)
+ goto a1649;
+ blkcom::nNOutPR = 0;
+ emtp::interp ();
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string (132, '-') << std::endl << std::flush;
+ for (i = 1; i <= 2; i++) {
+ for (j = 1; j <= 22; j++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "error/";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ }
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string (132, '-') << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "0You lose, fella. The EMTP logic has detected an error condition, and is going to terminate your run. The following\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " printout message summarizes the data difficulty leading to this program decision. By studying this message, the problem\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " data, and the rules delineated by the 840-page EMTP rule book, it is hoped that the user can rectify the problem.\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " If still in doubt after some study, come see program maintenance for assistance.\n" << std::flush;
+ blkcom::sTexCol = blkcom::sABuff.str ().substr (0, 80);
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Where an otherwise-unidentified card is referred to, or is called the 'last' card, this means the most-recently-\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " read card of the input data deck. The 80-column card image in question is the last one printed out before this\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " termination message. A copy follows.... " << blkcom::sTexCol << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string (14, ' ') << "kill code number" << std::string (16, ' ') << "overlay number " << std::string (10, ' ') << "nearby statement no.\n" << blkcom::nKill << " " << blkcom::sLStat[ 17 ] << " " << blkcom::sLStat[ 18 ] << std::endl << std::flush;
+
+ a1649:
+ for(j = 1; j <= blkcom::nNFrFld; j++) {
+ if(blkcom::nKill > pKPen[ j - 1 ])
+ goto a1658;
+ if(j == 1)
+ goto a1684;
+ blkcom::nLastOV = blkcom::nChain;
+ blkcom::nChain = 50 + j;
+ if(blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Error overlay found. kill, j, kpen(j), nchain = " << blkcom::nKill << " " << j << " " << pKPen[ j - 1 ] << " " << blkcom::nChain << std::endl << std::flush;
+ goto a9000;
+ }
+
+ a1658:
+ ;
+
+ a1684:
+ ;
+
+ switch (blkcom::nKill) {
+ case 1:
+ throw emtp::storage_exceeded_error();
+ break;
+
+ case 60:
+ throw emtp::dummy_function_called_error();
+ break;
+ }
+ }
+ catch (const std::runtime_error &e) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 0 ])) << e.what () << std::endl << std::flush;
+ }
+
+ blkcom::nLastOV = blkcom::nChain;
+ blkcom::nChain = blkcom::nNFrFld + 50;
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Exit \"subr51\". nchain, kill = " << blkcom::nChain << " " << blkcom::nKill << std::endl << std::flush;
+
+ a9000:
+ return;
+ }
+
+}
+
+// end of file over51.f90
diff --git a/sources/plot.cpp b/sources/plot.cpp
new file mode 100644
index 0000000..34d8d1b
--- /dev/null
+++ b/sources/plot.cpp
@@ -0,0 +1,172 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file plot.cpp
+
+#include "plot.hpp"
+
+namespace plot {
+
+ // subroutine sysplt.
+ void sysplt(void *pLUnit4)
+ {
+ // To do.
+ }
+
+ // subroutine rtmplt.
+ void rtmplt(void)
+ {
+ // To do.
+ }
+
+ // subroutine tpplot.
+ void tpplot(void)
+ {
+ // To do.
+ }
+
+ // subroutine pltvar.
+ void pltvar(void)
+ {
+ // To do.
+ }
+
+ // subroutine chrplt.
+ void chrplt(void)
+ {
+ // To do.
+ }
+
+ // subroutine tekplt.
+ void tekplt(void)
+ {
+ // To do.
+ }
+
+ // subroutine tgrid.
+ void tgrid(int nIX, int nIY, int nNX, int nIDelX, int nNY, int nIDelY, int nLDash)
+ {
+ // To do.
+ }
+
+ // subroutine pltfil.
+ void pltfil(const long int &k)
+ {
+ // Installation-dependent module which is called for
+ // output-vector dumping by "subts3" and "over20" if
+ // "m4plot" of /blank/ is nonzero. This
+ // is alternative to conventional in-line dumping on disk.
+ // Module should be universal for computers using fortran 77
+ // compilers and real*4 variables which give single precision.
+ int j;
+ int ll10;
+ int n7, n13, n17 = 0;
+ //
+ if(blkcom::nM4Plot == 1)
+ goto a7286;
+ if(k <= 450)
+ goto a7273;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " ^^^^^^^^^^^^^^^ Error stop in \"pltfil\" ^^^^^^^^^^^^^^\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " ^^^^^^ too many output variables (\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (3) << k;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " ) for use real*4 plot file. limit = 450." << std::endl << std::flush;
+ emtp::stoptp();
+
+ a7273:
+ for (j = 1; j <= k; j++) {
+ spycom::pForByt[ j - 1 ] = labcom::sVoltI[ j - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 3 ])) << spycom::pForByt[ j - 1 ];
+ }
+ goto a9000;
+
+ a7286:
+ if (blkcom::nIprsUp >= 3) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Top of \"pltfil\". indub, mflush, k, limbuf, newvec, numcrd = ";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (10) << spycom::nIndBuf << spycom::nMFlush << k << spycom::nLimBuf << spycom::nNewVec << spycom::nNumCRD;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "\n ";
+ for (std::vector<double>::iterator nI = labcom::sVoltI.begin (); nI != labcom::sVoltI.end (); nI++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (13) << std::setprecision (4) << *nI;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << std::flush;
+ }
+ n7 = 0;
+ if(spycom::nIndBuf > 0)
+ goto a7308;
+ spycom::nMFlush = 0;
+ spycom::nIndBeg = blkcom::pSStat -> m_nTLabl + 51;
+ spycom::nIndBuf = spycom::nIndBeg;
+ spycom::nNewVec = spycom::nIndBuf + 1;
+
+ a7308:
+ if((spycom::nIndBuf + k) <= spycom::nLimBuf)
+ goto a7374;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " % % % % % % Suspended simulation; plot data space exhausted; use spy. indbuf, limbuf =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw (8) << spycom::nIndBuf << spycom::nLimBuf << std::endl << std::flush;
+ (*reinterpret_cast<std::ostream *>(spycom::pMFiles[ 5 ])) << " % % % % % % Suspended simulation; plot data space exhausted; use spy. indbuf, limbuf =";
+ (*reinterpret_cast<std::ostream *>(spycom::pMFiles[ 5 ])) << std::setw (8) << spycom::nIndBuf << spycom::nLimBuf << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " % % Time-sharing disabled. Send user-keyed interrupt to silence alarm." << std::endl << std::flush;
+ utilities::window(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ ll10 = 10;
+ utilities::honker(ll10);
+ n13 = spycom::nKBreak;
+ spycom::nLockBR = 1;
+ blkcom::nLastOV = 9911;
+ over20::emtspy();
+ goto a7308;
+
+ a7374:
+ for(j = 1; j <= k; j++) {
+ ++spycom::nIndBuf;
+ spycom::pPltBuf[ spycom::nIndBuf - 1 ] = labcom::sVoltI[ j - 1 ];
+ }
+ ++n17;
+ if(n17 < spycom::nKSlowR)
+ goto a9000;
+ n17 = 0;
+ if(spycom::nMonitR == 0)
+ goto a7396;
+ plot::tekplt();
+ if(spycom::nMonitR != 8765)
+ goto a7396;
+ over20::timval();
+ spycom::nMonitR = 1;
+
+ a7396:
+ if (spycom::nMonitS != 0)
+ plot::chrplt();
+
+ a9000:
+ if (blkcom::nIprsUp >= 4)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Exit \"pltfil\"." << std::endl << std::flush;
+ }
+
+ // subroutine pltlu2.
+ void pltlu2(double *d2, std::vector<double> *pVoltI)
+ {
+ // called by "tacs2" only, if and only if m4plot .ne. 0
+ // this module is universal for fortran 77 compilers and
+ // computers for which real*4 corresponds to single precision.
+ int j;
+ int n12;
+ //
+ std::vector<double> sForByt(150, 0.0);
+ //
+ if(blkcom::nIofgnd > 149)
+ emtp::stoptp();
+ n12 = blkcom::nIofgnd + 1;
+ for(std::vector<double>::iterator nI = sForByt.begin(); nI != sForByt.begin() + n12; nI++)
+ (*reinterpret_cast<std::fstream *>(blkcom::pLFiles[ 1 ])) >> *nI;
+ *d2 = sForByt[ 0 ];
+ for(j = 1; j <= blkcom::nIofgnd; j++)
+ (*pVoltI)[ j - 1 ] = sForByt[ j ];
+ if(blkcom::nIprsUp >= 1) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Exit \"pltlu2\". d2, volti(1, iofgnd) =";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(14) << std::setprecision(5) << *d2 << (*pVoltI)[ 0 ] << (*pVoltI)[ blkcom::nIofgnd - 1 ] << std::endl << std::flush;
+ }
+ }
+
+
+}
+
+// end of file plot.cpp
diff --git a/sources/random.cpp b/sources/random.cpp
new file mode 100644
index 0000000..749a5fe
--- /dev/null
+++ b/sources/random.cpp
@@ -0,0 +1,236 @@
+//-*- mode: c++; indent-tabs-mode-nil; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file random.cpp
+
+#include "random.hpp"
+
+namespace randomize {
+ // Variables.
+
+ // Functions.
+ double seedy(std::string *atim)
+ {
+ //
+ // This function is designed to take the time of day (wall-clock
+ // time) in bcd form as input, and return the number of seconds
+ // since midnight as output. The time of day is assumed to be
+ // coded in words atim(1) and atim(2) , as found by a call to
+ // subroutine 'time44' . The storage here is in format 2a4 ,
+ // with the first four characters of 'hh.mm.ss' assumed to be
+ // in atim(1) , and the last four in atim(2) .
+ //
+ //
+ int amin;
+ int hour;
+ int ihr, imin, imin10, imin1, isec;
+ int sec;
+ double nReturnValue;
+ //
+ if (atim) {
+ if (0 < sscanf(atim[ 0 ].c_str(), "%2d %1d", &ihr, &imin10)) {
+ if (0 < sscanf(atim[ 1 ].c_str(), "%1d %2d", &imin1, &isec)) {
+ imin = imin10 * 10 + imin1;
+ hour = ihr * 3600;
+ amin = imin * 60;
+ sec = isec;
+ nReturnValue = sec + amin + hour + 1.0;
+ }
+ }
+ }
+ return nReturnValue;
+ }
+
+ double randnm(const double &x)
+ {
+ //
+ // This is a random number generating function, whose purpose is to
+ // return with a value for a random variable which is uniformly-
+ // distributed over the interval from zero to unity.
+ // A typical call is y = randnm(x) , where 'x' is a
+ // floating-point variable which is present only because 'random'
+ // number-generating algorithms are never truly random, and generally
+ // require some sort of 'random' initialization to even get started.
+ // Since such number-generating algorithms are actually cyclic if a
+ // large enough sampling is taken, it is also desirable to
+ // re-initialize the algorithm periodically, by means of a 'random'
+ // external input. Variable 'x' is this 'random' input, whose
+ // purpose is to randomly re-initialize the algorithm, as follows ...
+ // 1. If 'x' is identically zero, there is no initialization.
+ // the next random number is simply returned through the
+ // function name.
+ // 2. If 'x' is positive, the random number generating
+ // algorithm is to be initialized. EMTP usage has 'x'
+ // as the wall-clock time in seconds since midnight, an
+ // integer (though stored in floating-point mode, note).
+ // In this case, no random number need be returned with the
+ // function name, since the emtp will not use it.
+ // If a non-cdc user has access to a random number generating
+ // function which does not require initialization, he may simply
+ // ignore 'x' , and return the random number through the function
+ // name every time this module is called.
+ //
+ // A minus sign appended to variable 'xmaxmx' of /blank/ is a
+ // flag that the user wants to employ the standard table of random
+ // numbers which is built into module 'sandnm' .
+ //
+ // Installation-dependent emtp module written for the dec
+ // VAX-11/780. 'ran' is a DEC system subroutine which
+ // returns a random number uniformly distributed over (0, 1) .
+ long int *pKnt;
+ long int n14;
+ double nReturnValue = 0.0;
+ //
+ pKnt = &blkcom::sMonCar.m_nKnt;
+ if (blkcom::nXMaxMX >= 0.0) {
+ if (x != 0.0) {
+ if (*pKnt > 1)
+ return nReturnValue;
+ n14 = (int) x;
+ if (n14 / 2 * 2 == n14)
+ ++n14;
+ }
+ nReturnValue = rand() % n14;
+ return nReturnValue;
+ }
+ nReturnValue = sandnm(x);
+ return nReturnValue;
+ }
+
+ double sandnm(const double &x)
+ {
+ // This version of 'randnm' is used for testing of the
+ // statistical overvoltage capability of the EMTP only. It uses
+ // built-in random numbers, so as to produce identical results
+ // on all computer systems, thereby permitting comparative
+ // verification of results exactly as for conventional test cases.
+ // In order to avoid re-use of random numbers, the number of
+ // energizations 'nenerg' times the number of switches 'kswtch'
+ // must not exceed the dimension of array 'a' .
+ // If 'statistics' miscellaneous data parameter 'xmaxmx'
+ // is input by the user with negative value, the EMTP takes
+ // this to mean that "sandnm" is to be used for random
+ // numbers rather than "randnm" .
+ long int *pKnt;
+ long int l = 0;
+ long int n1;
+ double a[ 100 ] = {
+ .1445312506618,
+ .8477795260409,
+ .8267723125831,
+ .6660710406131,
+ .7152322826372,
+ .3239128029543,
+ .5051959208554,
+ .3805491872180,
+ .5609474043286,
+ .5996361115942,
+ .4159594349328,
+ .6756609755246,
+ .0995378032610,
+ .6033780421273,
+ .4515533431030,
+ .0020932062778,
+ .9161858062074,
+ .3434229008090,
+ .7876940045781,
+ .2760908032985,
+ .3665660303205,
+ .8204300122029,
+ .2413831265551,
+ .1246653115746,
+ .2802441882439,
+ .0466535013838,
+ .4742772736449,
+ .9477027545777,
+ .2260144770748,
+ .2987460629005,
+ .5203589181526,
+ .8981967037721,
+ .3873885562436,
+ .5780913804991,
+ .1280852320759,
+ .3327754064471,
+ .4043867414456,
+ .9490362532099,
+ .6261391859471,
+ .3291406705415,
+ .3366864607083,
+ .9438413593777,
+ .9369008057740,
+ .0713971670442,
+ .6500854844946,
+ .9737952005663,
+ .6485758973471,
+ .7724301318424,
+ .9676692044394,
+ .5163953619955,
+ .5788464270596,
+ .7758933795560,
+ .0910635448877,
+ .0439510552688,
+ .0707223001462,
+ .9379043319315,
+ .0052391978463,
+ .9420572226295,
+ .5932597508799,
+ .6466146627873,
+ .4395400252824,
+ .1972895298303,
+ .5017482047726,
+ .1503404202877,
+ .9624699228977,
+ .0098276069324,
+ .6571365402082,
+ .4233003554891,
+ .1203194365765,
+ .7436871629477,
+ .8136524161969,
+ .7311319136405,
+ .0594772166524,
+ .2374863512189,
+ .2450459940689,
+ .4326371816340,
+ .3562832359564,
+ .3723442477773,
+ .1694432139356,
+ .3735622812899,
+ .0610718353086,
+ .2782657746530,
+ .5137050416289,
+ .4340395038268,
+ .5766543446808,
+ .4413641042052,
+ .9812390285872,
+ .2625281459037,
+ .9554345097074,
+ .4741647690234,
+ .9906793757886,
+ .7820837820369,
+ .2206664815389,
+ .0901816247992,
+ .7625227133400,
+ .4434728419824,
+ .7905859532294,
+ .9796097207935,
+ .7599602497147,
+ .1154361048406
+ };
+ double nReturnValue;
+ //
+ pKnt = &blkcom::sMonCar.m_nKnt;
+ if (x != 0.0)
+ l = (*pKnt - 1) * blkcom::nKSwtch + 1;
+ else
+ ++l;
+ n1 = (l - 1) / 100;
+ if (blkcom::nIprsUp >= 1)
+ (*reinterpret_cast<std::ostream *> (blkcom::pLFiles[ 5 ])) << std::endl << " Variables in 'sandnm', the random number generator with 100 built-in numbers. l knt kswtch n1 , x" << std::endl << std::string(82, ' ') << l << *pKnt << blkcom::nKSwtch << n1 << x << std::endl;
+ if (n1 > 0)
+ l -= 100 * n1;
+ nReturnValue = a[ l - 1 ];
+ return nReturnValue;
+ }
+
+}
+
+// end of file random.cpp
diff --git a/sources/strcom.cpp b/sources/strcom.cpp
new file mode 100644
index 0000000..f885d77
--- /dev/null
+++ b/sources/strcom.cpp
@@ -0,0 +1,33 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file strcom.cpp
+
+#include "strcom.hpp"
+
+namespace strcom {
+
+ std::string toLower (const std::string &s)
+ {
+ std::string sTemp = s;
+ //
+ std::for_each (sTemp.begin (), sTemp.end (), [](char &c)
+ {
+ c = std::tolower (c);
+ });
+ return sTemp;
+ }
+
+ std::string toUpper (const std::string &s)
+ {
+ std::string sTemp = s;
+ //
+ std::for_each (sTemp.begin (), sTemp.end (), [](char &c)
+ {
+ c = std::toupper (c);
+ });
+ return sTemp;
+ }
+
+}
+
+// end of file strcom.cpp
diff --git a/sources/tacsar.cpp b/sources/tacsar.cpp
new file mode 100644
index 0000000..65a6bb4
--- /dev/null
+++ b/sources/tacsar.cpp
@@ -0,0 +1,52 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file tacsar.cpp
+
+#include "tacsar.hpp"
+
+namespace tacsar {
+
+ int nIColCS;
+ int nIlnTab;
+ int nInSup;
+ int nIsBlk;
+ int nIuty;
+ int nIVarB;
+ int nJOut;
+ int nKaliu;
+ int nKalksu;
+ int nKatcs;
+ int nkawkcs;
+ int nKColCS;
+ int nKInSup;
+ int nKIsBlk;
+ int nKiuty;
+ int nKIVarB;
+ int nKJOut;
+ int nKksus;
+ int nKlnTab;
+ int nKofsce;
+ int nKoncur;
+ int nKonsce;
+ int nKOnSup;
+ int nKOnTot;
+ int nKPRSup;
+ int nKRSBlk;
+ int nKSPVar;
+ int nKsus;
+ int nKud1;
+ int nKxar;
+ int nKxtcs;
+ //
+ double nAtcs;
+ double nAwks;
+ double nParsup;
+ double nRsblk;
+ double nSptacs;
+ double nUd1;
+ double nXar;
+ double nXtcs;
+
+}
+
+// end of file tacsar.cpp
diff --git a/sources/time.cpp b/sources/time.cpp
new file mode 100644
index 0000000..d8622ea
--- /dev/null
+++ b/sources/time.cpp
@@ -0,0 +1,153 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file time.cpp
+
+#include "time.hpp"
+
+extern long int spycom::nKWTSpy;
+
+namespace date_time {
+
+ std::clock_t nCPUTime;
+
+ bool date44(std::string *a)
+ {
+ // The purpose of subroutine DATE44 is to interrogate the
+ // installation calendar, and return the current date through the
+ // argument of the subroutine. Eight BCD characters are allowed,
+ // with the first (left) four characters to be placed in a(1) ,
+ // and the final (right) four placed in a(2) . A statement like
+ // write (lunit6, 4041) a
+ // 4041 format ( 1x, 2a4 )
+ // Thus outputs the current date as first the month, then the day,
+ // and finally the year, separated by slashes (MM/DD/YY) .
+ // subroutine DATE44 is of course installation dependent.
+ // European (or generally non-United-States, perhaps) users of this
+ // program may want to reverse the order of appearance of the month
+ // and the day, in conformity with established european usage.
+ // Installation-dependent EMTP module written for the DEC
+ // VAX-11/780. 'IDATE' is a DEC system subroutine which
+ // returns the month, day, and year (of century) as three integer*2
+ // numerical values.
+ bool bReturnValue = false;
+ int year, decade;
+ std::stringstream ss;
+ std::time_t sCurrentTime;
+ std::tm *pLocalTime;
+
+ if(a) {
+ sCurrentTime = std::time(NULL);
+ pLocalTime = std::localtime(&sCurrentTime);
+ if(pLocalTime) {
+ ss << std::setfill('0') << std::setw(2) << (1 + pLocalTime -> tm_mon);
+ ss << ".";
+ ss << std::setfill('0') << std::setw(2) << pLocalTime -> tm_mday;
+ ss << ".";
+ year = pLocalTime -> tm_year + 1900;
+ decade = 100 * (((float) year) / 100.0 - (float) floor (year / 100.0));
+ ss << std::setfill('0') << std::setw(2) << decade;
+ a[ 0 ] = ss.str().substr(0, 4);
+ a[ 1 ] = ss.str().substr(4, 8);
+ bReturnValue = true;
+ }
+ }
+ return bReturnValue;
+ }
+
+ bool time44(std::string *a)
+ {
+ // The purpose of subroutine TIME44 is to interrogate the
+ // installation clock, and return the wall-clock time through the
+ // argument of the subroutine. Eight BCD characters are allowed,
+ // with the first (left) four characters to be placed in a(1) ,
+ // and the final (right) four placed in a(2) . A statement like
+ // write (lunit6, 4041) a
+ // 4041 format ( 1x, 2a4 )
+ // Thus outputs the wall-clock time as first hours, then minutes,
+ // and finally seconds, separated by periods (HH.MM.SS) .
+ // subroutine TIME44 is of course installation dependent.
+ // Installation-dependent EMTP module written for the DEC
+ // VAX-11/780. 'TIME' is a DEC system subroutine which
+ // returns the wall-clock time as an 8-byte character string.
+ // This is just what the EMTP needs, except that we want periods
+ // rather than colons, and of course we require 2a4 format.
+ bool bReturnValue = false;
+ std::stringstream ss;
+ std::time_t sCurrentTime;
+ std::tm *pLocalTime;
+
+ if(a) {
+ sCurrentTime = std::time(NULL);
+ pLocalTime = std::localtime(&sCurrentTime);
+ if(pLocalTime) {
+ ss << std::setfill('0') << std::setw(2) << pLocalTime -> tm_hour;
+ ss << ".";
+ ss << std::setfill('0') << std::setw(2) << pLocalTime -> tm_min;
+ ss << ".";
+ ss << std::setfill('0') << std::setw(2) << pLocalTime -> tm_sec;
+ a[ 0 ] = ss.str().substr(0, 4);
+ a[ 1 ] = ss.str().substr(4, 8);
+ bReturnValue = true;
+ }
+ }
+ return bReturnValue;
+ }
+
+ void settym(void)
+ {
+ // VAX-11 Installation-dependent EMTP module.
+ // Called only by VAX "RUNTYM"; destroy for other computers.
+ // Include '[SCOTT]COMMUK.FOR' --- share with "RUNTYM" in-line:
+ date_time::nCPUTime = std::clock ();
+ }
+
+ void runtym(double &d1, double &d2)
+ {
+ // This subroutine returns with the current job-execution time, as
+ // broken down into two categories ....
+ // d1 = central processor job time, in seconds
+ // d2 = peripheral processor (or input/output) job time,
+ // in seconds.
+ // If two such figures are not available ont the user's computre,
+ // 'd2' should be set to zero so that case-summary statistics
+ // will not print out garbage values. Such is the only use of
+ // the values gotten by calling this subroutine ---- for the case-
+ // summary printout. Hence if one wants to convert time into
+ // dollars, or some other measure of job effort, it is easily done.
+ // Include '[SCOTT]COMMUK.FOR' --- share with "SETTYM" in-line:
+ std::clock_t nNowCPUTime;
+ //
+ nNowCPUTime = std::clock ();
+ d1 = std::difftime (date_time::nCPUTime, nNowCPUTime) / CLOCKS_PER_SEC;
+ d2 = 0.0;
+ }
+
+ // subroutine tdelay.
+
+ void tdelay(int &d8)
+ {
+ // Module of interactive EMTP only, which services "emtspy".
+ // If no interactive use, this module can be deleted.
+ // VAX-11 module designed to stall for d8 seconds.
+ // Present use of disk writes is temporary only, and should
+ // later be replaced by a less-wasteful, true hibernation.
+ clock_t sNow = clock();
+ //
+ int nDelay; // integer number of seconds for hibernation
+ //
+ nDelay = d8 * CLOCKS_PER_SEC;
+ while((clock() - sNow) < nDelay) { // loop once for each second of delay
+ utilities::quiter(); // check for user-keyed interrupt signal
+ if (spycom::nKWTSpy == 0) { // no user abort of alarm
+ ;
+ } else {
+ spycom::nKWTSpy = 0; // reset interrupt indicator as we begin service
+ d8 = -7654; // argument flag remembering abort (for honker)
+ break; // jump out of time-delay loop, to return
+ }
+ }
+ }
+
+}
+
+// end of file time.cpp
diff --git a/sources/umdeck.cpp b/sources/umdeck.cpp
new file mode 100644
index 0000000..90f0a83
--- /dev/null
+++ b/sources/umdeck.cpp
@@ -0,0 +1,32 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file umdeck.cpp
+
+#include "umdeck.hpp"
+
+namespace umcom {
+
+ int nSRoot2;
+ int nSRoot3;
+ int nOmegRF;
+ int nInpu;
+ int nNumBus;
+ int nNCLTot;
+ int nInitUM;
+ //
+ int pPTheta[ 3 ][ 3 ];
+ int pZTheVR[ 3 ][ 3 ];
+ int pVInp[ 40 ];
+ int pZTheVs[ 40 ];
+ int pUmCur[ 40 ];
+ int pCon[ 10 ];
+ int pDumVec[ 40 ];
+ int pDumMat[ 3 ][ 3 ];
+ int pDate[ 2 ];
+ int pClock[ 2 ];
+ int pNDum[ 40 ];
+ //
+ std::string pBUSUM[ 50 ];
+}
+
+// end of file umdeck.cpp
diff --git a/sources/utilities.cpp b/sources/utilities.cpp
new file mode 100644
index 0000000..82544a5
--- /dev/null
+++ b/sources/utilities.cpp
@@ -0,0 +1,356 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file utilities.cpp
+
+#include "utilities.hpp"
+
+//
+
+namespace kwtcom {
+
+ long int nKWTVAX;
+
+}
+
+namespace utilities
+{
+
+#ifdef USE_POSIX
+
+ bool exists(const char *p)
+ {
+ struct stat sb;
+ //
+ return p && (0 == stat (p, &sb));
+ }
+
+#else
+
+ bool exists(const char *p)
+ {
+ bool bReturnValue = false;
+ std::fstream sFile;
+ //
+ if(p) {
+ sFile.open(p, std::ios_base::in);
+ bReturnValue = sFile.is_open();
+ if(bReturnValue)
+ sFile.close();
+ }
+ return bReturnValue;
+ }
+
+#endif
+
+ std::string format(const std::string &format, ...)
+ {
+ va_list args;
+ va_start(args, format);
+ size_t nLength = std::vsnprintf(NULL, 0, format.c_str(), args);
+ va_end (args);
+ std::vector<char> sVector (nLength + 1);
+ va_start (args, format);
+ std::vsnprintf (&sVector[ 0 ], nLength + 1, format.c_str(), args);
+ va_end (args);
+ return &sVector[ 0 ];
+ }
+
+ void quiter(void)
+ {
+ ;
+ }
+
+ // subroutine window.
+ void window(std::ostream &os, std::stringstream &ss)
+ {
+ // Module of interactive emtp usage only, which services "emtspy".
+ // For non-interactive emtp, this module can be destroyed.
+ // For character*132 spy display channel munit6, this serves
+ // to actually output the line to the spy display device.
+ // VAX-11 installation-dependent EMTP module.
+ size_t j;
+ size_t k;
+ std::string sData;
+ //
+ sData = ss.str();
+ if(abs(spycom::nKVerfy) != 34543) {
+ for(j = 1; j <= 132; j++) {
+ k = 133 - j;
+ if(sData[ k - 1 ] != ' ')
+ break;
+ }
+ os << sData.substr(0, k) << std::endl;
+ os.flush();
+ }
+ }
+
+ // subroutine honker.
+ void honker(const long int &nKLevel)
+ {
+ // Module of interactive EMTP only, which services "emtspy".
+ // If no interactive use, this module can be deleted.
+ // VAX-11 installation-dependent emtp module which issues
+ // an audible alarm (via a terminal speaker) of intensity
+ // controlled by argument klevel. This is on a scale of
+ // one to ten, with zero meaning no noise at all, and ten
+ // corresponding to a disaster alert (e.g., air raid sirens).
+ // This VAX-11 module is designed for DEC VT100 terminal. The
+ // idea is by Albert H. Schmidt, BPA route EOGA. At the keyboard,
+ // ctrl-g will ring the bell, and the ascii character 7 is
+ // equivalent within a program. Shortage of 1 bell is due to
+ // carriage control, maybe (see n8 = j + 1, rather than j, below).
+ int nd13;
+ double d13;
+ std::string pSpyTim[ 2 ], pSpDate[ 2 ];
+ //
+ d13 = 2.0;
+ date_time::time44(pSpyTim);
+ date_time::date44(pSpDate);
+ spyf77::sBuff77 = std::string (10, '\7');
+ FOREVER {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Audible alarm began at ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(4) << pSpyTim[ 0 ] << pSpyTim[ 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " ";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(4) << pSpDate[ 0 ] << pSpDate[ 1 ];
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::string(5, ' ');
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << std::setw(3) << spycom::nKLevel;
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " bells.";
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << spyf77::sBuff77 << std::endl << std::flush;
+ window(*reinterpret_cast<std::ostream*>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ if(spycom::nKLevel < 10)
+ break;
+ nd13 = (int) d13;
+ date_time::tdelay(nd13);
+ if(d13 == -7654)
+ break;
+ flager();
+ if(spycom::nKWTSpy != 0) {
+ spycom::nKWTSpy = 0;
+ break;
+ } else
+ d13 = 1.5 * d13;
+ }
+ }
+
+ // subroutine flager.
+ void flager(void)
+ {
+ // Module of interactive EMTP only, which services "emtspy".
+ // if no interactive use, convert to dummy module ("return").
+ // VAX-11 installation-dependent emtp module which serves
+ // to read spy command from munit5 if: 1) ctrl-c interrupt
+ // has occurred, or 2) if lockbr = 1 upon entry.
+ long int pIDum[ 3 ];
+ //
+ if(spycom::nIprSpy >= 10) {
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Top flager. istep, kwtspy, itype, lastov =" << blkcom::nIStep << blkcom::nKWTSpy << blkcom::nIType << blkcom::nLastOV << std::endl;
+ window(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ }
+ if(blkcom::nLastOV == 9911) {
+ spyf77::sBuff77 = "space";
+ blkcom::nKWTSpy = 1;
+ spycom::nKFile5 = 2;
+ goto a3651;
+ }
+ if(kwtcom::nKWTVAX != 0) {
+ spyf77::sProm80 = " spy:";
+ prompt(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ spyf77::sProm80);
+ //
+ if (spycom::nIprSpy < 1)
+ (*reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ])) << " Enable VAX ctrl-c interception in \"flager\"." << std::endl;
+ window(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+
+ a3491:
+ goto a3643;
+ }
+ if((spycom::nLockBR != 1) || (spycom::nKFile5 == 1))
+ goto a3651;
+
+ a3643:
+ reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 4 ]) -> read(&spyf77::sBuff77[ 0 ], 80);
+ blkcom::nKWTSpy = 1;
+ spycom::nKFile5 = 2;
+ if(spycom::nKSPSav == 0)
+ goto a3650;
+ if(strcom::toLower(spyf77::sBuff77.substr(0, 7)) == "cancel ")
+ goto a3648;
+ ++spycom::nKSPSav;
+ goto a3643;
+
+ a3648:
+ --spycom::nKSPSav;
+ if (spycom::nKSPSav > spycom::nNumCRD)
+ goto a3649;
+ std::cout << " Error stop; overflow in \"flager\"." << std::endl;
+ emtp::stoptp();
+
+ a3649:
+ spyf77::sFile6[ spycom::nKSPSav - 1 ] = spyf77::sBuff77;
+
+ a3650:
+ goto a3651;
+
+ a3651:
+ if (spycom::nIprSpy >= 9) {
+ *((std::stringstream *) spycom::pMFiles[ 5 ]) << " Exit \"flager\". kwtspy =" << blkcom::nKWTSpy << " buff77 = " << spyf77::sBuff77.substr(0, 80) << std::endl;
+ window(*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]), \
+ *reinterpret_cast<std::stringstream *>(spycom::pMFiles[ 5 ]));
+ }
+ }
+
+ // subroutine prompt.
+ void prompt(std::ostream &os, const std::string &sPrompt)
+ {
+ // VAX-11 installation-dependent emtp module used only
+ // for interactive EMTP ("emtspy"). Input is program
+ // prompt in character*80 variable prom80 of deck "dekspy".
+ // The prompt must end with colon (":"). Then line feed
+ // will be suppressed, so subsequent read is to right of ":".
+ // For non-interactive EMTP, this module can be destroyed.
+ long int j;
+ long int n2;
+ //
+ n2 = 80;
+ for(j = 1; j <= 80; j++) {
+ if(sPrompt[ n2 - 1 ] == ' ')
+ break;
+ --n2;
+ }
+ os << sPrompt.substr(0, n2);
+ }
+
+ // subroutine openfile.
+ bool openFile(std::fstream *pFile, \
+ std::string &sFileName, \
+ const std::ios::openmode &mode)
+ {
+ bool bReturnValue = false;
+ //
+ if(pFile) {
+ pFile -> open(sFileName.c_str(), mode);
+ bReturnValue = pFile -> good();
+ }
+ return bReturnValue;
+ }
+
+ // subroutine closefile.
+ bool closeFile(std::fstream *pFile)
+ {
+ bool bReturnValue = false;
+ //
+ if(pFile) {
+ pFile -> close();
+ bReturnValue = true;
+ }
+ return bReturnValue;
+ }
+
+ // subroutine copyfile.
+ bool copyFile(std::fstream *pInFile, \
+ std::fstream *pOutFile, \
+ const std::string &sFileName)
+ {
+ bool bReturnValue = false;
+ //
+ if(pInFile && pOutFile) {
+ pOutFile -> close();
+ pOutFile -> open(sFileName.c_str(), std::ios::out | std::ios::trunc);
+ pInFile -> seekg(0, std::ios::beg);
+ char pTempData[ 80 ];
+ while(!pInFile -> eof()) {
+ pInFile -> read(pTempData, 80);
+ pOutFile -> write(pTempData, 80);
+ }
+ pOutFile -> close();
+ pInFile -> seekg(0, std::ios::beg);
+ bReturnValue = true;
+ }
+ return bReturnValue;
+ }
+
+ // subroutine deletefile.
+ bool deleteFile(const std::string &sFileName)
+ {
+ ;
+ }
+
+ struct winsize getTerminalSize(void)
+ {
+ struct winsize sReturnValue;
+ //
+ ioctl(STDOUT_FILENO, TIOCGWINSZ, &sReturnValue);
+ if(blkcom::nNOutPR > 0) {
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Terminal lines = ";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(8) << std::dec << sReturnValue.ws_row;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << ", columns = ";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setfill(' ') << std::setw(8) << std::dec << sReturnValue.ws_col << std::endl;
+ }
+ return sReturnValue;
+ }
+
+ void expchk(long int &n1, \
+ long int &n2, \
+ long int &n5)
+ {
+ const char cText1 = 'e', cTextN = '-', cTextP = '+';
+ const char pTexNum[ 11 ] = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '.' };
+ char pX[ 80 ];
+ //
+ long int i;
+ long int j;
+ long int k;
+ long int l;
+ long int n3, n4;
+ long int nKey;
+ //
+ blkcom::sABuff.read(pX, 80);
+ for(i = n1; i <= n2; i += n5) {
+ nKey = 0;
+ for(j = 1; j <= n5; j++) {
+ n3 = i + j - 1;
+ if(pX[ 2 ] == cText1)
+ goto a2622;
+ if(nKey > 0)
+ goto a2620;
+ for(k = 1; k <= 11; k++) {
+
+ a2619:
+ if(pX[ n3 - 1 ] == pTexNum[ k - 1 ])
+ nKey = k;
+ goto a2621;
+
+ a2620:
+ if((pX[ n3 - 1 ] == cTextP) || (pX[ n3 - 1 ] == cTextN))
+ goto a2622;
+
+ a2621:
+ ;
+ }
+ goto a2625;
+
+ a2622:
+ n4 = i + n5 - 1;
+ for(l = 1; l<= 10; l++) {
+ if(pX[ n4 - 1 ] == pTexNum[ l - 1 ])
+ goto a2625;
+ }
+
+ a2624:
+ blkcom::nKill = 97;
+ blkcom::pSStat -> m_nWT = i;
+ blkcom::pSStat -> m_nTails = n4;
+ blkcom::pSStat -> m_nTACST = 2624;
+ return;
+
+ a2625:
+ ;
+ }
+ }
+ }
+
+}
+// end of file utilities.cpp
diff --git a/sources/vardim.cpp b/sources/vardim.cpp
new file mode 100644
index 0000000..24c485f
--- /dev/null
+++ b/sources/vardim.cpp
@@ -0,0 +1,219 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+// file vardim.cpp
+
+#include "vardim.hpp"
+
+namespace vardim {
+
+ int pLstDef[] = {
+ 250, 300, 500, 100,
+ 2500, 40, 550, 1750,
+ 75, 160, 50, 50,
+ 5, 460, 50, 40,
+ 4, 5, 1600, 650,
+ 100, 150, 4000, 3,
+ 400, 50, 50, 1080
+ };
+
+ tVariables pVariables[] = {
+ { "x", 3, "c0b001", 0 },
+ { "ykm", 5, "c0b002", 0 },
+ };
+
+ // Functions.
+ bool vardim(int *pLstNew)
+ {
+ bool bReturnValue = false;
+ long int j;
+ long int n1, n4, n9, n37;
+ long int nMTot;
+ long int nNumLst = 28;
+ long int nNumKEx;
+ long int pKExtra[ 29 ];
+ long int pNCBarr[ 300 ];
+ long int pCBlock[ 300 ];
+ long int pJBLTyp[ 300 ];
+ long int pMulVar[ 4 ];
+ std::string sBus1, sBus2;
+ //
+ try {
+ if(pLstNew) {
+ for(int i = 1; i <= nNumLst; i++)
+ (*reinterpret_cast<std::istream *>(blkcom::pLFiles[ 4 ])) >> std::setw(8) >> pLstNew[ i - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "\n Pseudo-listing of data cards";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " which have been read by the variable-";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "dimensioning program 'vardim' . Only\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " if all data fields are punched with";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " 'clean' I8 integer information will";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " this be a true listing. Data cards\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Are in fact read in and then printed out";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " using integer variables and 10I8";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " format." << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(111, '-') << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(31, ' ') << "0";
+ for(int i = 1; i <= 8; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(9, ' ') << std::setw(1) << i;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(31, ' ') << "0";
+ for(int i = 1; i <= 8; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(9, ' ') << "0";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(31, ' ') << std::string(80, '-') << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " 1st card (lists 1-10)." << std::string(7, ' ') << "1";
+ for(int i = 1; i <= 10; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(8) << pLstNew[ i - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " 2nd card (lists 11-20)." << std::string(7, ' ') << "1";
+ for(int i = 11; i <= 20; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(8) << pLstNew[ i - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " 3rd card (lists 21-30)." << std::string(7, ' ') << "1";
+ for(int i = 21; i <= nNumLst; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(8) << pLstNew[ i - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ if(pLstNew[ 0 ] / 10000000 != 9)
+ goto a5294;
+ for(size_t i = 1; i <= nNumKEx; i++)
+ (*reinterpret_cast<std::istream *>(blkcom::pLFiles[ 4 ])) >> std::setw(8) >> pKExtra[ i - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Supplemental offsets." << std::string(9, ' ') << "1";
+ for(size_t i = 1; i <= nNumKEx; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(8) << pKExtra[ i - 1 ];
+ pLstNew[ 0 ] -= 90000000;
+
+ a5294:
+ if(pLstNew[ 10 ] / 10000000 != 9)
+ goto a5297;
+ n4 = pLstNew[ 10 ] - 90000000;
+ for(size_t j = 1; j <= nNumLst; j++)
+ pLstNew[ j - 1 ] = pLstDef[ j - 1 ] * n4;
+
+ a5297:
+ if(pLstNew[ 0 ] > 0)
+ pLstNew[ 0 ] += 2;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(111, '-') << std::endl;
+ for(size_t i = 1; i < nNumLst; i++) {
+ n1 = i;
+ if(pLstNew[ i - 1 ] >= 1000000)
+ goto a9000;
+ if(pLstNew[ i - 1 ] <= 0)
+ pLstNew[ i - 1 ] = pLstDef[ i - 1 ];
+ }
+ if(pLstNew[ 18 ] <= 23)
+ pLstNew[ 18 ] = 23;
+ if(pLstNew[ 25 ] <= 10)
+ pLstNew[ 25 ] = 10;
+ n1 = pLstNew[ 15 ] / 2;
+ if((2 * n1) != pLstNew[ 15 ])
+ ++pLstNew[ 15 ];
+ n1 = pLstNew[ 26 ] / 2;
+ if(2 * n1 != pLstNew[ 26 ])
+ ++pLstNew[ 26 ];
+ pLstNew[ 50 ] = 6 * pLstNew[ 12 ];
+ pLstNew[ 51 ] = pLstNew[ 50 ] + 1;
+ pLstNew[ 52 ] = pLstNew[ 8 ] + 3 * pLstNew[ 16 ];
+ pLstNew[ 53 ] = 6 * pLstNew[ 1 ];
+ pLstNew[ 54 ] = pLstNew[ 8 ] + pLstNew[ 16 ];
+ pLstNew[ 55 ] = pLstNew[ 1 ] + pLstNew[ 26 ] / 2;
+ pLstNew[ 56 ] = pLstNew[ 0 ] * pLstNew[ 23 ];
+ pLstNew[ 57 ] = 4 * pLstNew[ 11 ];
+ pLstNew[ 58 ] = 2 * pLstNew[ 25 ];
+ pLstNew[ 59 ] = 3 * pLstNew[ 5 ];
+ pLstNew[ 60 ] = 1;
+ pLstNew[ 61 ] = 2 * pLstNew[ 17 ];
+ pLstNew[ 62 ] = 3 * pLstNew[ 5 ];
+ pLstNew[ 63 ] = 4 * pLstNew[ 5 ];
+ pLstNew[ 64 ] = 101 * pLstNew[ 16 ];
+ pLstNew[ 65 ] = 24 * pLstNew[ 16 ];
+ pLstNew[ 66 ] = 12 * pLstNew[ 15 ];
+ pLstNew[ 67 ] = 6 * pLstNew[ 15 ];
+ pLstNew[ 68 ] = 30 * pLstNew[ 16 ];
+ pLstNew[ 69 ] = 5 * pLstNew[ 10 ] + 2;
+ pLstNew[ 70 ] = 2 * pLstNew[ 20 ];
+ pLstNew[ 71 ] = pLstNew[ 7 ] + pLstNew[ 27 ];
+ pLstNew[ 72 ] = pLstNew[ 21 ] + pLstNew[ 20 ];
+ nMTot = 0;
+ for(size_t i = 1; i <= 126; i++) {
+ n9 = pVariables[ i - 1 ].m_nNCB;
+ if((n9 == 0) || (n9 == 98))
+ goto a4301;
+ n37 = 3;
+ sBus1[ 0 ] = pCBlock[ i - 1 ];
+ sBus2 = sBus1[ 0 ];
+ for(j = 1; j <= 6; j++)
+ if(sBus2[ 0 ] == (char) (j - 1))
+ n37 = 4;
+ if(pJBLTyp[ i - 1 ] != 0)
+ n37 = pVariables[ i - 1 ].m_nJBLType;
+ nMTot += pMulVar[ n37 - 1 ] * pLstNew[ n9 - 1 ];
+
+ a4301:
+ ;
+ }
+ bReturnValue = true;
+
+ a9000:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << std::endl << " ";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(131, '-') << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " ";
+ for(int i = 1; i <= 22; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ]));
+ for(int i = 1; i << 22; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(" Error");
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(131, '-') << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl << " " << "The user is in trouble,";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " unless he has made a data-punching error.";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " Variable-dimensioning of the EMTP has\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << "broken down within the separate variable";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "-dimensioning program 'vardim' . In";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " particular, one or more of the\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << "user-inputted list sizes must be";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " rejected as being illegally large. User-";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "supplied limits (or default limits,";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << "for any non-positive data";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " fields) are as follows ....\n ";
+ for(size_t i = 1; i < nNumLst; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::setw(10) << pLstNew[ i - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ if(blkcom::pLStat -> m_nTLabl > 0)
+ goto a9061;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << "Specifically, the user-";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << "supplied value which was read for list";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " number " << n1 << " exceeds 999999 ,\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << "which is unreal. A value of " << pLstNew[ n1 - 1 ];
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " was read from the user's data card";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " for this list.\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(131, '-') << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " ";
+ for(int i = 1; i <= 22; i++)
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::string(" Error");
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << std::endl;
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << std::string(131, '-') << std::endl;
+ goto a9900;
+
+ a9061:
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << "Specifically the user-supplied";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " dimensions have collectively produced a";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " total labeled-common allocation\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << "of " << blkcom::pLStat -> m_nTLabl << " words, which is unreal.";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " A limit of 9999999 has arbitrarily";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " been imposed by the better judgment";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " " << "of the program. A machine this";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " big (with this much real central memory)";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " is not known to be in existence anywhere\n";
+ (*reinterpret_cast<std::ostream *>(blkcom::pLFiles[ 5 ])) << " in the world.\n";
+
+ a9900:
+ bReturnValue = true;
+ }
+ }
+ catch(std::exception &e) {
+ std::cerr << e.what() << std::endl;
+ }
+ return bReturnValue;
+ }
+
+}
+
+// end of file vardim.cpp
diff --git a/sources/volt45.cpp b/sources/volt45.cpp
new file mode 100644
index 0000000..c4cebf0
--- /dev/null
+++ b/sources/volt45.cpp
@@ -0,0 +1,15 @@
+//-*- mode: c++; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*-
+
+// file volt45.cpp
+
+#include "volt45.hpp"
+
+namespace volpri {
+
+ double pVoltI[ 50 ];
+ double pVoltK[ 50 ];
+ double pVIM[ 50 ];
+
+}
+
+// end of file volt45.cpp