From 1dabc539ca6cb6426921f11232d9357fd7ce231d Mon Sep 17 00:00:00 2001 From: ignis Date: Sun, 7 Jul 2019 14:21:55 +0900 Subject: [PATCH] refactoring print_program --- code/code_gen/post.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/code/code_gen/post.py b/code/code_gen/post.py index 5217357..436cc2e 100644 --- a/code/code_gen/post.py +++ b/code/code_gen/post.py @@ -699,17 +699,14 @@ class Stage4(): allocavg = "\n".join(v.code_alloc() for v in self.averaged.itervalues()) freeavg = "\n".join(v.code_free() for v in self.averaged.itervalues()) - calc1 = "\n".join(allvar[v].code(self.alloc1) for v in self.pass1) - calc2 = "\n".join(allvar[v].code(self.alloc2) for v in self.pass2) + sub_calc1 = "\n".join(allvar[v].code(self.alloc1) for v in self.pass1) + sub_calc2 = "\n".join(allvar[v].code(self.alloc2) for v in self.pass2) - set1 = [a.name for a in filter(AveragedField.pass1, self.averaged.values())] - set2 = [a.name for a in filter(AveragedField.pass2, self.averaged.values())] + set1 = sorted([a.name for a in filter(AveragedField.pass1, self.averaged.values())]) + set2 = sorted([a.name for a in filter(AveragedField.pass2, self.averaged.values())]) - set1.sort() - set2.sort() - - avg1 = "\n".join(allvar[v].code_avg() for v in set1) - avg2 = "\n".join(allvar[v].code_avg() for v in set2) + sub_avg1 = "\n".join(allvar[v].code_avg() for v in set1) + sub_avg2 = "\n".join(allvar[v].code_avg() for v in set2) ffmt = 'logical, parameter :: pass2_required={}' declf = ffmt.format('.true.' if len(set2) > 0 else '.false.') @@ -742,10 +739,10 @@ close (200) md["module_data"] = "\n".join((declf, declh, declavg, declarr)) md["module_init"] = "\n".join((allocavg, allocarr)) md["module_finalize"] = "\n".join((freeavg, freearr)) - md["module_pass1"] = calc1 - md["module_pass1_avg"] = avg1 - md["module_pass2"] = calc2 - md["module_pass2_avg"] = avg2 + md["module_pass1"] = sub_calc1 + md["module_pass1_avg"] = sub_avg1 + md["module_pass2"] = sub_calc2 + md["module_pass2_avg"] = sub_avg2 md["module_write_result"] = write_avg return md