9 #define ERRORR(a) if (0 .ne. err) print *, a
16 ibase_entitysethandle root_set
19 ibase_handle_t rpsets, rptags
20 pointer(rpsets, sets(0:*))
21 pointer(rptags, tags(0:*))
22 ibase_entitysethandle sets
24 integer sets_alloc, sets_size, tags_alloc, tags_size
27 integer int_val, tag_type
28 character*128 tname, fname
31 integer i, j, num_hops, num_commands, tname_len
33 data read_par/.false./
35 num_commands = command_argument_count()
36 if (num_commands .eq. 0)
then
37 fname =
"../MeshFiles/125hex.vtk"
39 call get_command_argument(1, tname, tname_len, err)
41 errorr(
"Problem getting filename argument.")
45 if (num_commands .eq. 2)
then
46 call get_command_argument(2, tname, tname_len, err)
48 errorr(
"Problem getting filename argument.")
51 if (tname(1:1) .eq.
'p' .or. tname(1:1) .eq.
'P')
then
58 call imesh_newmesh(
"", mesh, err)
59 errorr(
"Error creating new mesh.")
62 call imesh_getrootset(%VAL(mesh), root_set, err)
63 errorr(
"Couldn't get root set.")
67 call imesh_load(%VAL(mesh), %VAL(root_set), fname, &
68 " moab:PARALLEL=READ_PART moab:PARTITION=PARALLEL_PARTITION moab:PARTITION_DISTRIBUTE moab:PARALLEL_RESOLVE_SHARED_ENTS " &
71 call imesh_load(%VAL(mesh), %VAL(root_set), fname,
"", err)
73 errorr(
"Couldn't load mesh.")
78 call imesh_getentsets(%VAL(mesh), %VAL(root_set), %VAL(num_hops), &
79 rpsets, sets_alloc, sets_size, err)
80 errorr(
"Couldn't get all sets.")
86 call imesh_getallentsettags(%VAL(mesh), %VAL(sets(i)), &
87 rptags, tags_alloc, tags_size, err)
88 errorr(
"Failed to get ent set tags.")
90 if (0 .ne. tags_size)
then
91 print *,
"Set ", sets(i),
" Tags:"
96 call imesh_gettagname(%VAL(mesh), %VAL(tags(j)), tname, err)
97 call imesh_gettagtype(%VAL(mesh), %VAL(tags(j)), tag_type, err)
98 errorr(
"Failed to get tag type.")
99 if (ibase_integer .eq. tag_type)
then
100 call imesh_getentsetintdata(%VAL(mesh), %VAL(sets(i)), &
101 %VAL(tags(j)), int_val, err)
102 errorr(
"Failed to get int data type.")
103 print *, tname, int_val
104 else if (ibase_double .eq. tag_type)
then
105 call imesh_getentsetdbldata(%VAL(mesh), %VAL(sets(i)), &
106 %VAL(tags(j)), dbl_val, err)
107 print *, tname, dbl_val
114 if (tags_size .ne. 0)
call free(rptags)
118 if (sets_size .ne. 0)
call free(rpsets)
120 call imesh_dtor(%VAL(mesh), err)
121 errorr(
"Failed to destruct interface.")