13 version
as yac_version,
15from packaging.version
import Version
18import matplotlib.pyplot
as plt
21assert glob.yac_instance_id != -1,
"The host-model is not configured with yac"
23yac = YAC.from_id(glob.yac_instance_id)
24source_comp = yac.predef_comp(
"comin_example_source")
27connectivity = (np.asarray(domain.cells.vertex_blk) - 1) * glob.nproma + (
28 np.asarray(domain.cells.vertex_idx) - 1
30icon_grid = UnstructuredGrid(
32 np.ones(domain.cells.ncells) * 3,
33 np.array(np.ravel(np.transpose(domain.verts.vlon))[: domain.verts.nverts]),
34 np.array(np.ravel(np.transpose(domain.verts.vlat))[: domain.verts.nverts]),
35 np.ravel(np.swapaxes(connectivity, 0, 1))[: 3 * domain.cells.ncells],
37icon_cell_centers = icon_grid.def_points(
39 np.ravel(domain.cells.clon)[: domain.cells.ncells],
40 np.ravel(domain.cells.clat)[: domain.cells.ncells],
43rank = comin.parallel_get_host_mpi_rank()
45 target_comp = yac.predef_comp(
"comin_example_target")
47 vlon = np.linspace(-np.pi, np.pi, 360)
48 vlat = np.linspace(np.pi / 2, -np.pi / 2, 180)
49 grid = Reg2dGrid(
"comin_example_grid", vlon, vlat, cyclic=(
True,
False))
50 cell_centers = grid.def_points(
52 vlon + 0.5 * (vlon[1] - vlon[0]),
53 vlat[:-1] + 0.5 * (vlat[1] - vlat[0]),
57@comin.register_callback(comin.EP_SECONDARY_CONSTRUCTOR)
61 [comin.EP_ATM_WRITE_OUTPUT_BEFORE], (
"pres_sfc", 1), comin.COMIN_FLAG_READ
65@comin.register_callback(comin.EP_ATM_YAC_DEFCOMP_AFTER)
67 global yac_pres_sfc_target, yac_pres_sfc_source
68 yac_pres_sfc_source = Field.create(
73 str(int(comin.descrdata_get_timesteplength(1))),
77 yac_pres_sfc_target = Field.create(
82 str(int(comin.descrdata_get_timesteplength(1))),
85 nnn = InterpolationStack()
87 if Version(yac_version()) > Version(
"3.3.0"):
88 kwargs[
"max_search_distance"] = 0.0
89 nnn.add_nnn(NNNReductionType.AVG, n=1, scale=1.0, **kwargs)
91 "comin_example_source",
94 "comin_example_target",
97 str(int(comin.descrdata_get_timesteplength(1))),
104@comin.register_callback(comin.EP_ATM_TIMELOOP_END)
106 yac_pres_sfc_source.put(np.ravel(comin_pres_sfc)[: domain.cells.ncells])
108 data, info = yac_pres_sfc_target.get()
109 plt.imshow(np.reshape(data, [179, 360]))
110 print(f
"pres_sfc_{comin.current_get_datetime()}.png")
111 plt.savefig(f
"pres_sfc_{comin.current_get_datetime()}.png")
var_get(context, var_descriptor, flag)
get variable object, arguments: [entry point], (name string, domain id), access flag)
descrdata_get_domain(jg)
returns descriptive data for a given domain, arguments: jg
descrdata_get_global()
returns global descriptive data object