9 if (ierr .ne. 0) print *, a
17 ibase_handle_t rpents, rpverts, rpallverts, ipoffsets
19 ibase_handle_t ents, verts, allverts, verths
20 pointer(rpents, ents(0:*))
21 pointer(rpverts, verts(0:*))
22 pointer(rpallverts, allverts(0:*))
23 pointer(ipoffsets, ioffsets(0:*))
25 ibase_entityhandle verth
26 pointer(verths, verth(0:*))
27 integer ierr, ents_alloc, ents_size
28 integer iverts_alloc, iverts_size
29 integer allverts_alloc, allverts_size
30 integer offsets_alloc, offsets_size, coords_alloc, coords_size
31 ibase_entitysethandle root_set
32 integer vert_uses, i, num_ents
34 pointer(pcoord, coords(0:*))
36 ibase_entitysethandle :: sethand
39 call imesh_newmesh(
"", mesh, ierr)
40 check(
"Problems instantiating interface.")
43 call imesh_getrootset(%VAL(mesh), root_set, ierr)
44 check(
"Problems getting root set")
46 call imesh_load(%VAL(mesh), %VAL(root_set), &
47 "../../MeshFiles/unittest/125hex.g",
"", ierr)
52 call imesh_getentities(%VAL(mesh), %VAL(root_set), %VAL(ibase_region), &
53 %VAL(imesh_all_topologies), rpents, ents_alloc, ents_size, &
55 check(
"Couldn't get entities")
63 call imesh_getentadj(%VAL(mesh), %VAL(ents(i)), &
65 rpverts, iverts_alloc, iverts_size, &
67 check(
"Failure in getEntAdj")
70 vert_uses = vert_uses + iverts_size
72 if (iverts_size .ne. 0)
call imesh_freememory(%VAL(mesh), rpverts)
78 call imesh_getentarradj(%VAL(mesh), %VAL(rpents), &
79 %VAL(ents_size), %VAL(ibase_vertex), rpallverts, &
80 allverts_alloc, allverts_size, ipoffsets, offsets_alloc, &
82 check(
"Failure in getEntArrAdj")
84 if (allverts_size .ne. 0)
call imesh_freememory(%VAL(mesh), rpallverts);
85 if (offsets_size .ne. 0)
call imesh_freememory(%VAL(mesh), ipoffsets);
86 if (ents_size .ne. 0)
call imesh_freememory(%VAL(mesh), rpents);
89 if (allverts_size .ne. vert_uses)
then
90 write(*,
'("Sizes didn''t agree!")')
92 write(*, *)
"Sizes did agree: ", vert_uses
96 call imesh_getentities(%VAL(mesh), %VAL(root_set), %VAL(ibase_vertex), &
97 %VAL(imesh_all_topologies), verths, ents_alloc, ents_size, &
99 write (*, *)
"number of vertices: " , ents_size
100 print *,
"few vertex handles: ", (verth(i), i=0,ents_size/10)
103 call imesh_createentset(%VAL(mesh), %VAL(1), &
105 write(0,*)
"createset",ierr,sethand
108 call imesh_addentarrtoset(%VAL(mesh),verth,%VAL(ents_size), &
110 write(0,*)
"add Ent Arr to Set",ierr,sethand
112 call imesh_getnumoftype(%VAL(mesh), %VAL(sethand), &
113 %VAL(ibase_vertex), num_ents, ierr)
114 write(0,*)
"num verts retrieved from set", num_ents
117 call imesh_getvtxarrcoords(%VAL(mesh), verth, %VAL(ents_size), &
118 %VAL(ibase_interleaved), pcoord, ents_alloc , ents_size, ierr)
120 write(*, *)
"num coords: ", ents_size,
" few coords: ", (coords(i), i=0, ents_size/100)
122 call imesh_freememory(%VAL(mesh), verths);
123 call imesh_freememory(%VAL(mesh), pcoord);
125 call imesh_dtor(%VAL(mesh), ierr)
126 check(
"Failed to destroy interface")