Changeset 647 for codes/icosagcm/devel
- Timestamp:
- 12/21/17 15:13:40 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/Python/src/unstructured/macros.jin
r644 r647 88 88 {# ------------------------------ MESHES --------------------------- #} 89 89 90 {% macro get_edges(thecode, mesh,degree) %} 91 {% for iedge in range(1,degree+1) %} 92 {{ 'edge%d = %s_edge(%d,ij)'%(iedge,mesh,iedge) }} 93 {% endfor %} 94 {% for iedge in range(1,degree+1) %} 95 {{ 'le_de%d = le_de(edge%d)'%(iedge,iedge) }} 96 {% endfor %} 97 {% for iedge in range(1,degree+1) %} 98 {{ 'sign%d = %s_ne(%d,ij)'%(iedge,mesh,iedge) }} 99 {% endfor %} 100 {% for iedge in range(1,degree+1) %} 101 {{ 'ij_up%d = up(edge%d)'%(iedge,iedge) if 'VERTEX1' in thecode }} 102 {% endfor %} 103 {% for iedge in range(1,degree+1) %} 104 {{ 'ij_down%d = down(edge%d)'%(iedge,iedge) if 'VERTEX2' in thecode }} 105 {% endfor %} 106 {% endmacro %} 107 90 108 {# argument 'code' is the body enclosed by ON_XXX ... END_BLOCK ; it takes arguments : mesh,degree=0 #} 91 109 … … 114 132 SELECT CASE(primal_deg(ij)) 115 133 CASE(4) 134 {{ get_edges(thecode, mesh, 4) }} 116 135 {{ vloop(mesh, lrange, flags, code, 4) }} 117 136 CASE(5) 137 {{ get_edges(thecode, mesh, 5) }} 118 138 {{ vloop(mesh, lrange, flags, code, 5) }} 119 139 CASE(6) 140 {{ get_edges(thecode, mesh, 6) }} 120 141 {{ vloop(mesh, lrange, flags, code, 6) }} 121 142 CASE DEFAULT … … 180 201 181 202 {{ define('IS_BOTTOM_LEVEL', '_FALSE_') }} 203 !DIR$ SIMD 182 204 DO l = {{start}}, {{end}} 183 205 {{ 'kdown = l-1' if 'KDOWN' in thecode }} … … 247 269 {% macro forall_edges(mesh,degree) -%} 248 270 {% set thecode = caller() %} 271 272 {% if degree>1 %} 273 {% for iedge in range(1,degree+1) %} 274 {{ define('EDGE', 'l,edge%d'%iedge) }} 275 {{ define('SIGN', 'sign%d'%iedge) }} 276 {{ define('LE_DE', 'le_de%d'%iedge) }} 277 {{ define('VERTEX1', 'l,ij_up%d'%iedge) }} 278 {{ define('VERTEX2', 'l,ij_down%d'%iedge) }} 279 {{ thecode }} 280 {% endfor %} 281 {% else %} 249 282 {{ define('EDGE', 'l,edge') }} 250 {{ define('VERTEX1', 'l,ij_down') }}251 {{ define('VERTEX2', 'l,ij_up') }}252 283 {{ define('SIGN', mesh + '_ne(iedge,ij)') }} 253 284 {{ define('LE_DE', 'le_de(edge)') }} 254 255 {% if degree>1 %} 256 {% for iedge in range(1,degree+1) %} 257 iedge = {{ iedge }} 258 edge = {{ mesh }}_edge({{ iedge }},ij) 259 {{ 'ij_up = up(edge)' if 'VERTEX1' in thecode }} 260 {{ 'ij_down = down(edge)' if 'VERTEX2' in thecode }} 261 {{ thecode }} 262 {% endfor %} 263 {% else %} 285 {{ define('VERTEX1', 'l,ij_up') }} 286 {{ define('VERTEX2', 'l,ij_down') }} 264 287 DO iedge = 1, {{ mesh }}_deg(ij) 265 288 edge = {{ mesh }}_edge(iedge,ij) … … 273 296 {{ undef('SIGN') }} 274 297 {{ undef('LE_DE') }} 298 {{ undef('VERTEX1') }} 299 {{ undef('VERTEX2') }} 275 300 {%- endmacro %} 276 301 … … 280 305 {% if degree>1 %} 281 306 {% for itrisk in range(1,degree+1) %} 307 itrisk = {{ itrisk }} 282 308 edge_trisk = trisk({{ itrisk }},edge) 283 309 {{ thecode }}
Note: See TracChangeset
for help on using the changeset viewer.