Changeset 1049
- Timestamp:
- 09/17/20 11:58:14 (4 years ago)
- Location:
- codes/icosagcm/devel/DySL
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/DySL/jinja
r941 r1049 2 2 from sys import argv 3 3 from textwrap import dedent 4 import re 4 5 from re import search # regular expressions 5 6 … … 10 11 else: 11 12 print (3*indent)*' ' + line 13 14 # Jinja2 custom tests 15 # https://jinja.palletsprojects.com/en/2.10.x/templates/ 16 17 def is_keyword(word, txt): 18 pattern=r'\b%s\b'%word 19 match = search(pattern, txt) 20 return True if match else False 12 21 13 22 env=Environment(loader=FileSystemLoader('.')) 23 env.tests['in'] = is_keyword 24 14 25 tpl=env.get_template(argv[1]) 15 26 source = tpl.render() … … 41 52 else: 42 53 pretty(line,indent) 54 55 # print is_keyword('LE','LE_DE') -
codes/icosagcm/devel/DySL/macros.jin
r941 r1049 25 25 26 26 {% macro cdef(code, key,val) %} 27 {{ define(key,val) if key i n code }}27 {{ define(key,val) if key is in code }} 28 28 {%- endmacro %} 29 29 30 30 {% macro cundef(code, keys) %} 31 31 {% for key in keys %} 32 {{ undef(key) if key i n code }}32 {{ undef(key) if key is in code }} 33 33 {%- endfor %} 34 34 {%- endmacro %} -
codes/icosagcm/devel/DySL/unstructured/macros.jin
r941 r1049 127 127 {% macro get_edges(thecode, mesh,degree) %} 128 128 {% for iedge in range(1,degree+1) %} 129 {{ 'edge%d = %s_edge(%d,ij)'%(iedge,mesh,iedge) if 'EDGE' in thecode }} 130 {% endfor %} 131 {% for iedge in range(1,degree+1) %} 132 {{ 'le_de%d = le_de(edge%d)'%(iedge,iedge) if 'LE_DE' in thecode }} 133 {% endfor %} 134 {% for iedge in range(1,degree+1) %} 135 {{ 'sign%d = %s_ne(%d,ij)'%(iedge,mesh,iedge) if 'SIGN' in thecode }} 136 {% endfor %} 137 {% for iedge in range(1,degree+1) %} 138 {{ 'ij_up%d = up(edge%d)'%(iedge,iedge) if 'VERTEX1' in thecode }} 139 {% endfor %} 140 {% for iedge in range(1,degree+1) %} 141 {{ 'ij_down%d = down(edge%d)'%(iedge,iedge) if 'VERTEX2' in thecode }} 129 {{ 'edge%d = %s_edge(%d,ij)'%(iedge,mesh,iedge) if 'EDGE' is in thecode }} 130 {% endfor %} 131 {% for iedge in range(1,degree+1) %} 132 {{ 'le_de%d = le_de(edge%d)'%(iedge,iedge) if 'LE_DE' is in thecode }} 133 {% endfor %} 134 {% for iedge in range(1,degree+1) %} 135 {{ 'de%d = de(edge%d)'%(iedge,iedge) if 'DE' is in thecode }} 136 {% endfor %} 137 {% for iedge in range(1,degree+1) %} 138 {{ 'le%d = le(edge%d)'%(iedge,iedge) if 'LE' is in thecode }} 139 {% endfor %} 140 {% for iedge in range(1,degree+1) %} 141 {{ 'sign%d = %s_ne(%d,ij)'%(iedge,mesh,iedge) if 'SIGN' is in(thecode) }} 142 {% endfor %} 143 {% for iedge in range(1,degree+1) %} 144 {{ 'ij_up%d = up(edge%d)'%(iedge,iedge) if 'VERTEX1' is in thecode }} 145 {% endfor %} 146 {% for iedge in range(1,degree+1) %} 147 {{ 'ij_down%d = down(edge%d)'%(iedge,iedge) if 'VERTEX2' is in thecode }} 142 148 {% endfor %} 143 149 {% endmacro %} … … 303 309 END DO 304 310 !$OMP END DO 305 {{ cundef(thecode, ('EDGE','LE_DE',' SIGN','CELL1','CELL2','VERTEX1','VERTEX2') ) }}311 {{ cundef(thecode, ('EDGE','LE_DE','LE','DE','SIGN','CELL1','CELL2','VERTEX1','VERTEX2') ) }} 306 312 {%- endmacro %} 307 313 … … 314 320 {{ cdef(thecode, 'SIGN', 'sign%d'%iedge) }} 315 321 {{ cdef(thecode, 'LE_DE', 'le_de%d'%iedge) }} 322 {{ cdef(thecode, 'DE', 'de%d'%iedge) }} 323 {{ cdef(thecode, 'LE', 'le%d'%iedge) }} 316 324 {{ cdef(thecode, 'VERTEX1', 'l,ij_up%d'%iedge) }} 317 325 {{ cdef(thecode, 'VERTEX2', 'l,ij_down%d'%iedge) }} … … 322 330 {{ cdef(thecode, 'SIGN', mesh + '_ne(iedge,ij)') }} 323 331 {{ cdef(thecode, 'LE_DE', 'le_de(edge)') }} 332 {{ cdef(thecode, 'DE', 'de(edge)') }} 333 {{ cdef(thecode, 'LE', 'le(edge)') }} 324 334 {{ cdef(thecode, 'VERTEX1', 'l,ij_up') }} 325 335 {{ cdef(thecode, 'VERTEX2', 'l,ij_down') }} … … 331 341 END DO 332 342 {% endif %} 333 {{ cundef(thecode, ('EDGE', 'SIGN', 'LE_DE', ' VERTEX1', 'VERTEX2') ) }}343 {{ cundef(thecode, ('EDGE', 'SIGN', 'LE_DE', 'LE', 'DE', 'VERTEX1', 'VERTEX2') ) }} 334 344 {%- endmacro %} 335 345
Note: See TracChangeset
for help on using the changeset viewer.