4from itertools
import product
10 range(1, glob.n_dom + 1),
11 [comin.COMIN_ZAXIS_2D, comin.COMIN_ZAXIS_3D, comin.COMIN_ZAXIS_3D_HALF],
13 comin.COMIN_HGRID_UNSTRUCTURED_CELL,
14 comin.COMIN_HGRID_UNSTRUCTURED_EDGE,
15 comin.COMIN_HGRID_UNSTRUCTURED_VERTEX,
19for jg, zaxis, hgrid
in test_space:
20 descr = (f
"{zaxis}_{hgrid}", jg)
21 comin.var_request_add(descr,
False)
25@comin.EP_SECONDARY_CONSTRUCTOR
30 [comin.EP_ATM_TIMELOOP_BEFORE],
31 (f
"{zaxis}_{hgrid}", jg),
32 comin.COMIN_FLAG_READ,
34 for jg, zaxis, hgrid
in test_space
38@comin.EP_ATM_TIMELOOP_BEFORE
41 for jg, zaxis, hgrid
in test_space:
42 var = var_handles[(jg, zaxis, hgrid)]
44 dim_sema = var.dim_semantics
46 assert shape[dim_sema.index(comin.COMIN_DIM_SEMANTICS_NPROMA)] == glob.nproma
49 shape[dim_sema.index(comin.COMIN_DIM_SEMANTICS_BLOCK)]
51 comin.COMIN_HGRID_UNSTRUCTURED_CELL: domains[jg].cells.nblks,
52 comin.COMIN_HGRID_UNSTRUCTURED_EDGE: domains[jg].edges.nblks,
53 comin.COMIN_HGRID_UNSTRUCTURED_VERTEX: domains[jg].verts.nblks,
57 dim = len(np.squeeze(var).shape)
58 if zaxis == comin.COMIN_ZAXIS_2D:
59 assert comin.COMIN_DIM_SEMANTICS_LEVEL
not in dim_sema
63 shape[dim_sema.index(comin.COMIN_DIM_SEMANTICS_LEVEL)]
65 comin.COMIN_ZAXIS_3D: glob.nlev,
66 comin.COMIN_ZAXIS_3D: glob.nlev + 1,
var_get(context, var_descriptor, flag)
get variable object, arguments: [entry point], (name string, domain id), access flag)
metadata_set(var_descriptor, **kwargs)
sets metadata for a requested field, arguments: name string, domain id, metadata key,...
descrdata_get_domain(jg)
returns descriptive data for a given domain, arguments: jg
descrdata_get_global()
returns global descriptive data object