This program was originally written in Fortran in 1989 by David R. Brown and the American Public Power Association.
The following sources provided data on the electrical properties of different conductors:
EFFECTS OF EARTH RESISTANCE ARE INCLUDED.
{rho: earth resistivity in ohm-meters}
IF SHIELDS ARE SEGMENTED (INSULATED) TO PREVENT 60 HZ SHIELD WIRE CURRENTS, SHIELD WIRE CURRENTS SHOULD BE SET TO ZERO.
{nins : TO INCLUDE SHIELD CURRENTS, TYPE A 1. TO SET SHIELD CURRENTS TO ZERO, TYPE A 2}
{xlngth : LINE LENGTH IN MILES}
# Click the Blue Plane to preview this asa CrossCompute tool
conductor_table_path = 'conductors.csv'
phase_table_path = 'phases.csv'
shield_table_path = 'shields.csv'
span_table_path = 'spans.csv'
rho = 100
nins = 1 # 1 or 2
xlngth = 10
target_folder = '/tmp'
nins = 1 if int(nins) == 1 else 2
from os.path import join
output_text_path = join(target_folder, 'lcap.log')
target_text_path = join(target_folder, 'lcap.txt')
from macros import transmogrify_conductors
conductor_text_path = transmogrify_conductors(join(
target_folder, 'conductors.dat'), conductor_table_path)
from macros import transmogrify_pylons
pylon_text_path = transmogrify_pylons(join(
target_folder, 'pylons.dat',
), phase_table_path, shield_table_path, span_table_path)
from subprocess import run
executable = 'lcap.out'
script = 'lcap.f'
output_text = run([
'gfortran',
'-o',
executable,
script,])
from os.path import expanduser
from subprocess import check_output, STDOUT
output_text = check_output([
join('.', executable),
conductor_text_path,
pylon_text_path,
expanduser(target_text_path),
str(rho),
str(nins),
str(xlngth),
], stderr=STDOUT)
with open(output_text_path, 'wb') as output_file:
output_file.write(output_text)
print('output_text_path = ' + output_text_path)
print('target_text_path = ' + target_text_path)