result output header add label x
This commit is contained in:
parent
06f5c0b0b9
commit
5943744e64
2 changed files with 2 additions and 150 deletions
|
|
@ -208,6 +208,7 @@ class ToFortran(Transformer):
|
|||
abs = lambda self : "dabs"
|
||||
rxn_rate = lambda self : "rxn_rate"
|
||||
|
||||
|
||||
class CheckPass(Visitor):
|
||||
|
||||
def __init__(self):
|
||||
|
|
@ -348,121 +349,6 @@ class CalculateTree(Transformer):
|
|||
+ [(k, False) for k, v in self.exp_parser.dependency.items()]
|
||||
)
|
||||
|
||||
def array_decl (self):
|
||||
|
||||
f_code = ""
|
||||
|
||||
for var in self.derived.iterkeys():
|
||||
f_code = f_code + real_array_decl.format(var) + "\n"
|
||||
|
||||
for var in self.derivatives.iterkeys():
|
||||
f_code = f_code + real_array_decl.format(var) + "\n"
|
||||
|
||||
for var in self.averaged.iterkeys():
|
||||
f_code = f_code + avg_array_decl.format(var) + "\n"
|
||||
|
||||
return f_code
|
||||
|
||||
|
||||
def array_init (self):
|
||||
|
||||
f_code = ""
|
||||
|
||||
for var in self.derived.iterkeys():
|
||||
f_code = f_code + real_array_alloc.format(var) + "\n"
|
||||
|
||||
for var in self.derivatives.iterkeys():
|
||||
f_code = f_code + real_array_alloc.format(var) + "\n"
|
||||
|
||||
for var in self.averaged.iterkeys():
|
||||
f_code = f_code + avg_array_alloc.format(var) + "\n"
|
||||
|
||||
return f_code
|
||||
|
||||
|
||||
def array_final (self):
|
||||
|
||||
f_code = ""
|
||||
|
||||
for var in self.derived.iterkeys():
|
||||
f_code = f_code + real_array_free.format(var) + "\n"
|
||||
|
||||
for var in self.derivatives.iterkeys():
|
||||
f_code = f_code + real_array_free.format(var) + "\n"
|
||||
|
||||
for var in self.averaged.iterkeys():
|
||||
f_code = f_code + real_array_free.format(var) + "\n"
|
||||
|
||||
return f_code
|
||||
|
||||
|
||||
def array_pass1 (self):
|
||||
|
||||
f_code = ""
|
||||
|
||||
code_dict = {}
|
||||
|
||||
for tup in self.derived.iteritems():
|
||||
code_dict[tup[0]] = real_array_loop.format(tup) + "\n"
|
||||
|
||||
for tup in self.derivatives.iteritems():
|
||||
code_dict[tup[0]] = real_array_diff.format(tup[1]) + "\n"
|
||||
|
||||
wfmt = "* {}(i,j,k)"
|
||||
for k, (v,w) in self.averaged.iteritems():
|
||||
code_dict[k] = avg_array_sum.format(k, v, wfmt.format(w) if w is not None else "") + "\n"
|
||||
|
||||
for var in self.sort_vars():
|
||||
f_code = f_code + code_dict[var]
|
||||
|
||||
return f_code
|
||||
|
||||
|
||||
def array_pass1_avg (self):
|
||||
|
||||
f_code = ""
|
||||
|
||||
meanw = "/ avg_{}"
|
||||
|
||||
for k, (v,w) in self.averaged.iteritems():
|
||||
if k.startswith("avg"):
|
||||
f_code = avg_array_divide.format(k, meanw.format(w) if w is not None else "") + "\n" + f_code
|
||||
else:
|
||||
f_code = f_code + avg_array_divide.format(k, meanw.format(w) if w is not None else "") + "\n"
|
||||
|
||||
return f_code
|
||||
|
||||
|
||||
def module_dict (self):
|
||||
md = {}
|
||||
md["module_name"] = "terms"
|
||||
md["module_data"] = self.array_decl()
|
||||
md["module_init"] = self.array_init()
|
||||
md["module_finalize"] = self.array_final()
|
||||
md["module_pass1"] = self.array_pass1()
|
||||
md["module_pass1_avg"] = self.array_pass1_avg()
|
||||
|
||||
return md
|
||||
|
||||
def sort_vars (self):
|
||||
order = []
|
||||
remain = set(self.derived.iterkeys()) | set(self.derivatives.iterkeys()) | set(self.averaged.iterkeys())
|
||||
|
||||
while len(remain) > 0:
|
||||
for v in remain:
|
||||
if len(set(self.dependency[v]) & remain) == 0:
|
||||
order.append(v)
|
||||
remain.remove(v)
|
||||
break
|
||||
|
||||
return order
|
||||
|
||||
|
||||
tf=CalculateTree()
|
||||
|
||||
|
||||
calc_parser = Lark(calc_grammar, parser='lalr' ) # , transformer=tf)
|
||||
calc = calc_parser.parse
|
||||
|
||||
import sys
|
||||
|
||||
|
|
@ -487,13 +373,6 @@ class FortranProgram:
|
|||
dg = self.parser.dep_graph()
|
||||
fd = self.parser.has_fluc()
|
||||
|
||||
'''
|
||||
for v in dg.iterkeys():
|
||||
fd[v] = False
|
||||
|
||||
for n, d in (self.parser.definitions.iteritems()):
|
||||
fd[n] = CheckPass.check(d)
|
||||
'''
|
||||
|
||||
def isFluc (a):
|
||||
for x in dg[a]:
|
||||
|
|
@ -613,13 +492,6 @@ class FortranProgram:
|
|||
return md
|
||||
|
||||
|
||||
def calculate_pass1 (self):
|
||||
return
|
||||
|
||||
def calculate_pass2 (self):
|
||||
return
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
while True:
|
||||
|
|
@ -637,7 +509,6 @@ def test():
|
|||
|
||||
with open("terms.input") as inputfile:
|
||||
terms_raw = ((inputfile.read()))
|
||||
parsed_tree = (calc(terms_raw))
|
||||
|
||||
|
||||
fp = FortranProgram(terms_raw)
|
||||
|
|
@ -645,25 +516,6 @@ def test():
|
|||
|
||||
print mod_form.format( fp.print_program() )
|
||||
|
||||
'''
|
||||
for f, ts in zip(namelist, deps):
|
||||
for t in ts:
|
||||
print "{} -> {}".format(f, t)
|
||||
|
||||
for d, (op, phi) in ft.derivatives.iteritems():
|
||||
print "{} -> {}".format(d, phi)
|
||||
|
||||
print tf.averaged
|
||||
'''
|
||||
|
||||
#print mod_form.format(tf.module_dict())
|
||||
|
||||
#print "! ", tf.derived
|
||||
#print "! ", tf.derivatives
|
||||
#print "! ", tf.dependency
|
||||
|
||||
#print "! ", tf.sort_vars()
|
||||
|
||||
if __name__ == '__main__':
|
||||
test()
|
||||
# main()
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ use m_calculate
|
|||
|
||||
implicit none
|
||||
|
||||
character (len = *), parameter :: output_header="avg_fsd fsd_avg_t1 fsd_avg_t2 fsd_avg_fu fsd_avg_absk"
|
||||
character (len = *), parameter :: output_header="x avg_fsd fsd_avg_t1 fsd_avg_t2 fsd_avg_fu fsd_avg_absk"
|
||||
real*8, allocatable, dimension(:,:,:) :: ddx_nx
|
||||
real*8, allocatable, dimension(:,:,:) :: t1_fsd
|
||||
real*8, allocatable, dimension(:,:,:) :: t2_fsd
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue