cantera/src/fortran/makect.py
Ray Speth 6cb4bd93ce Cleaned up whitespace in all Python files using reindent.py
4 spaces per indentation level, no tabs, no trailing whitespace,
and a single newline at end of each file.
2012-02-27 18:13:05 +00:00

44 lines
1.2 KiB
Python

f = open('modules','r')
lines = f.readlines()
gen = {}
mods = []
for m in lines:
file, prefix = m.split()
fm = open(file,'r')
mlines = fm.readlines()
for line in mlines:
toks = line.split()
if len(toks) == 2:
if toks[0] == 'module':
mods.append(toks[1])
le = line.find('end')
lf = line.find('function')
ls = line.find('subroutine')
loc = line.find(prefix+'_')
if le < 0 and (lf > 0 or ls > 0):
if loc > 0:
sline = line[loc:]
n = len(prefix)
p = sline.find('(')
nm = sline[n+1:p]
if nm <> '':
if gen.has_key(nm):
gen[nm].append(prefix+'_'+nm)
else:
gen[nm] = [prefix+'_'+nm]
fout = open('canteramod.f90','w')
fout.write('MODULE CANTERA\n\n')
for m in mods:
fout.write(' USE '+m+'\n')
funcs = gen.keys()
funcs.sort()
for fn in funcs:
fout.write('\n INTERFACE '+fn+'\n')
for cf in gen[fn]:
fout.write(' MODULE PROCEDURE '+cf+'\n')
fout.write(' END INTERFACE '+fn+'\n')
fout.write('\nEND MODULE CANTERA\n\n')