refactoring print_program

This commit is contained in:
ignis 2019-07-07 14:21:55 +09:00
parent d61bbaeef0
commit 1dabc539ca

View file

@ -699,17 +699,14 @@ class Stage4():
allocavg = "\n".join(v.code_alloc() for v in self.averaged.itervalues()) allocavg = "\n".join(v.code_alloc() for v in self.averaged.itervalues())
freeavg = "\n".join(v.code_free() 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) sub_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_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())] set1 = sorted([a.name for a in filter(AveragedField.pass1, self.averaged.values())])
set2 = [a.name for a in filter(AveragedField.pass2, self.averaged.values())] set2 = sorted([a.name for a in filter(AveragedField.pass2, self.averaged.values())])
set1.sort() sub_avg1 = "\n".join(allvar[v].code_avg() for v in set1)
set2.sort() sub_avg2 = "\n".join(allvar[v].code_avg() for v in set2)
avg1 = "\n".join(allvar[v].code_avg() for v in set1)
avg2 = "\n".join(allvar[v].code_avg() for v in set2)
ffmt = 'logical, parameter :: pass2_required={}' ffmt = 'logical, parameter :: pass2_required={}'
declf = ffmt.format('.true.' if len(set2) > 0 else '.false.') 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_data"] = "\n".join((declf, declh, declavg, declarr))
md["module_init"] = "\n".join((allocavg, allocarr)) md["module_init"] = "\n".join((allocavg, allocarr))
md["module_finalize"] = "\n".join((freeavg, freearr)) md["module_finalize"] = "\n".join((freeavg, freearr))
md["module_pass1"] = calc1 md["module_pass1"] = sub_calc1
md["module_pass1_avg"] = avg1 md["module_pass1_avg"] = sub_avg1
md["module_pass2"] = calc2 md["module_pass2"] = sub_calc2
md["module_pass2_avg"] = avg2 md["module_pass2_avg"] = sub_avg2
md["module_write_result"] = write_avg md["module_write_result"] = write_avg
return md return md