From 9ef25f4c654051010685b72654543a0d3f64bd4c Mon Sep 17 00:00:00 2001 From: ignis Date: Fri, 10 May 2019 04:45:30 +0900 Subject: [PATCH] print build information when running --- code/code_gen/code_gen.py | 39 +++++++++++++++++++++++++++++++++++++-- code/m_terms.f90 | 3 +++ code/post.f90 | 5 +++++ 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/code/code_gen/code_gen.py b/code/code_gen/code_gen.py index abffa1c..51ea9a7 100644 --- a/code/code_gen/code_gen.py +++ b/code/code_gen/code_gen.py @@ -57,6 +57,33 @@ calc_grammar = """ """ +class VersionInfo(object): + + def __init__ (self, input_raw): + import os, datetime + import subprocess as sp + + bd = 'character (len=*), parameter :: build_date="{}"' + bb = 'character (len=*), parameter :: build_base="{}"' + + self.build_date = bd.format(datetime.datetime.today().ctime()) + + try: + self.build_base = bb.format(sp.check_output(["git", "rev-parse", "HEAD"]).strip()) + except subprocess.CalledProcessError: + self.build_base = "None" + + tinfo = 'character (len=*), parameter :: term_info={}' + + self.lines = input_raw.split(os.linesep) + + nl = len(self.lines) + + self.term_info = tinfo.format("//char(10)//".join(map('"{}"'.format, self.lines))) + + def fparams (self): + return "\n".join([self.build_date, self.build_base, self.term_info]) + def test(): with open("resources/m_template.f90") as template_file: @@ -65,6 +92,8 @@ def test(): with open("terms.input") as inputfile: terms_raw = ((inputfile.read())) + vinfo = VersionInfo(terms_raw) + tree = Lark(calc_grammar, parser='lalr' ).parse(terms_raw) @@ -76,12 +105,18 @@ def test(): ir4 = Stage4(ir3) - # ir4.save_ir() + cdict = ir4.print_program() - print mod_form.format( ir4.print_program() ) + cdict["module_data"] = vinfo.fparams() + "\n" + cdict["module_data"] + + print mod_form.format( cdict ) + + # print mod_form.format( ir4.print_program() ) # print mod_form.format( ir3.print_program() ) + # ir4.save_ir() + if __name__ == '__main__': diff --git a/code/m_terms.f90 b/code/m_terms.f90 index 7a1dcb6..d9183d0 100644 --- a/code/m_terms.f90 +++ b/code/m_terms.f90 @@ -7,6 +7,9 @@ use m_calculate implicit none +character (len=*), parameter :: build_date="Fri May 10 04:36:01 2019" +character (len=*), parameter :: build_base="b4db0e2f8a3669de8450525bdabbfeeb7c215005" +character (len=*), parameter :: term_info="[u, v, w, y]"//char(10)//""//char(10)//"c = 1.0 - y"//char(10)//"wrate = rxn_rate(c)"//char(10)//"fsd = sqrt (sqr(ddx(c)) + sqr(ddy(c)) + sqr(ddz(c)))"//char(10)//""//char(10)//"sd = ((d2dx(c) + d2dy(c) + d2dz(c)) * $rod + wrate) / fsd"//char(10)//""//char(10)//"nx = - ddx(c) / fsd"//char(10)//"ny = - ddy(c) / fsd"//char(10)//"nz = - ddz(c) / fsd"//char(10)//""//char(10)//"vn = u * nx + v * ny + w * nz"//char(10)//""//char(10)//"divn = ddx(nx) + ddy(ny) + ddz(nz)"//char(10)//""//char(10)//"absk = abs(divn)"//char(10)//""//char(10)//"lapc = d2dx(c) + d2dy(c) + d2dz(c)"//char(10)//""//char(10)//"t1 = (vn + sd) * nx"//char(10)//""//char(10)//"t2 = t1' * nx'"//char(10)//""//char(10)//"t3 = t1' * divn'"//char(10)//""//char(10)//"t4 = t1' * absk'"//char(10)//""//char(10)//"t5 = sqr(t1')"//char(10)//""//char(10)//"t6 = sqr(nx')"//char(10)//""//char(10)//"t7 = sqr(divn')"//char(10)//""//char(10)//"t8 = sqr(absk')"//char(10)//""//char(10)//"avg { c, u, v, w, fsd, lapc, ddx_c, ddy_c, ddz_c, d2dx_c, d2dy_c, d2dz_c }"//char(10)//""//char(10)//"avg fsd { u, v, w, nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }"//char(10)//"" character (len = *), parameter :: output_header="x avg_c avg_d2dx_c avg_d2dy_c avg_d2dz_c avg_ddx_c avg_ddy_c avg_ddz_c avg_fsd avg_lapc avg_u avg_v avg_w fsd_avg_absk fsd_avg_divn fsd_avg_nx fsd_avg_ny fsd_avg_nz fsd_avg_sd fsd_avg_t1 fsd_avg_u fsd_avg_v fsd_avg_w fsd_avg_t2 fsd_avg_t3 fsd_avg_t4 fsd_avg_t5 fsd_avg_t6 fsd_avg_t7 fsd_avg_t8" real*8, allocatable, dimension(:) :: fsd_avg_divn real*8, allocatable, dimension(:) :: fsd_avg_ny diff --git a/code/post.f90 b/code/post.f90 index 395e5a8..c985b64 100644 --- a/code/post.f90 +++ b/code/post.f90 @@ -100,6 +100,11 @@ !======================================================================================== SUBROUTINE PRINT_BANNER + WRITE(*,*) ' build date: ', build_date + WRITE(*,*) ' build base: ', build_base + WRITE(*,*) ' terms to process ' + WRITE(*,*) term_info + WRITE(*,*) ' This program, x-edge-cold-bc-5-hybrid, is written by D. Kim, 2018' WRITE(*,*) ' It is to study the statistics of the flame parameters at the leading edge' WRITE(*,*) ' in turbulent premixed flames.'