43 include
'exodusII.inc'
45 integer iin, iout, ierr
46 integer exoid, num_dim, num_nodes, num_elem, num_elem_blk
49 integer i, j, elem_map(2), connect(4), node_list(10)
50 integer elem_list(10), side_list(10), ids(5)
51 integer num_elem_per_set(2), num_nodes_per_set(2)
52 integer num_df_per_set(2)
53 integer num_df_in_set, num_sides_in_set
54 integer df_ind(2), node_ind(2), elem_ind(2), num_qa_rec, num_info
55 integer num_glo_vars, num_nod_vars, num_ele_vars
56 integer truth_tab(3,2)
57 integer num_time_steps
58 integer num_elem_in_block(2), num_nodes_per_elem(2)
60 integer num_nodes_in_set, num_elem_in_set
61 integer df_list_len, list_len, elem_list_len
62 integer node_num, time_step, var_index, beg_time, end_time
65 integer num_props, prop_value
67 real*8 time_value, time_values(10), var_values(10)
68 real*8 x(8), y(8), dummy(1)
69 real*8 attrib(1), dist_fact(8)
72 character*(MXSTLN) coord_names(3), qa_record(4,2), var_names(3)
73 character*(MXLNLN) inform(3), titl
74 character typ*(MXSTLN)
75 character*(MXSTLN) prop_names(3)
77 data iin /5/, iout /6/
87 exoid =
exopen(
"test.exo", exread, cpu_ws, io_ws, vers, ierr)
88 write (iout,
'(/"after exopen, error = ",i3)')
91 write (iout,
'("test.exo is an EXODUSII file; version ",
93 write (iout,
'(" I/O word size",i2)') io_ws
99 call exgini (exoid, titl, num_dim, num_nodes, num_elem,
100 1 num_elem_blk, num_node_sets, num_side_sets, ierr)
101 write (iout,
'(/"after exgini, error = ", i3)' ) ierr
103 write (iout,
'("database parameters:"/
106 3 "num_nodes = ", i3 /
107 4 "num_elem = ", i3 /
108 5 "num_elem_blk = ", i3 /
109 6 "num_node_sets = ", i3 /
110 7 "num_side_sets = ", i3)')
111 8 titl,num_dim, num_nodes, num_elem,
112 9 num_elem_blk,num_node_sets, num_side_sets
119 call exgcor (exoid, x, y, dummy, ierr)
120 write (iout,
'(/"after exgcor, error = ", i3)' ) ierr
122 write (iout,
'("x coords = ")')
123 do 10 i = 1, num_nodes
124 write (iout,
'(f5.1)') x(i)
127 write (iout,
'("y coords = ")')
128 do 20 i = 1, num_nodes
129 write (iout,
'(f5.1)') y(i)
132 call exgcon (exoid, coord_names, ierr)
133 write (iout,
'(/"after exgcon, error = ", i3)' ) ierr
135 write (iout,
'("x coord name = ", a9)') coord_names(1)
136 write (iout,
'("y coord name = ", a9)') coord_names(2)
142 call exgmap (exoid, elem_map, ierr)
143 write (iout,
'(/"after exgmap, error = ", i3)' ) ierr
145 do 30 i = 1, num_elem
146 write (iout,
'("elem_map(",i1,") = ", i1)') i, elem_map(i)
153 call exgebi (exoid, ids, ierr)
154 write (iout,
'(/"after exgebi, error = ", i3)' ) ierr
156 do 40 i = 1, num_elem_blk
158 call exgelb (exoid, ids(i), typ, num_elem_in_block(i),
159 1 num_nodes_per_elem(i), num_attr(i), ierr)
160 write (iout,
'(/"after exgelb, error = ", i3)' ) ierr
162 write (iout,
'("element block id = ", i2,/
163 1 "element type = ", a9,/
164 2 "num_elem_in_block = ", i2,/
165 3 "num_nodes_per_elem = ", i2,/
166 4 "num_attr = ", i2)')
167 5 ids(i), typ, num_elem_in_block(i),
168 6 num_nodes_per_elem(i), num_attr(i)
174 num_props =
exinqi(exoid, exnebp)
176 1
'(/"There are ",i2," properties for each element block")')
180 call exgpn(exoid, exeblk, prop_names, ierr)
181 write (iout,
'("after exgpn, error = ", i3)' ) ierr
183 do 47 i = 1, num_props
184 do 45 j = 1, num_elem_blk
185 call exgp(exoid, exeblk,ids(j),prop_names(i),prop_value,ierr)
186 if (ierr .eq. 0)
then
188 1
'("elem block ",i2," property(",i2,"): ",a," = ",i5)' )
189 2 j, i, prop_names(i), prop_value
191 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
200 do 60 i = 1, num_elem_blk
202 call exgelc (exoid, ids(i), connect, ierr)
203 write (iout,
'(/"after exgelc, error = ", i3)' ) ierr
205 write (iout,
'("connect array for elem block ", i2)') ids(i)
207 do 50 j = 1, num_nodes_per_elem(i)
208 write (iout,
'(i3)') connect(j)
217 do 70 i = 1, num_elem_blk
219 call exgeat (exoid, ids(i), attrib, ierr)
220 write (iout,
'(/"after exgeat, error = ", i3)' ) ierr
222 write (iout,
'("element block ", i2, " attributes = ", f6.4)')
230 if (num_node_sets .gt. 0)
then
231 call exgnsi (exoid, ids, ierr)
232 write (iout,
'(/"after exgnsi, error = ", i3)' ) ierr
235 do 100 i = 1, num_node_sets
237 call exgnp (exoid, ids(i), num_nodes_in_set,
238 1 num_df_in_set, ierr)
239 write (iout,
'(/"after exgnp, error = ", i3)' ) ierr
241 write (iout,
'(/"node set ", i2, " parameters: ",/
242 2 "num_nodes = ", i2)') ids(i), num_nodes_in_set
244 call exgns (exoid, ids(i), node_list, ierr)
245 write (iout,
'(/"after exgns, error = ", i3)' ) ierr
246 call exgnsd (exoid, ids(i), dist_fact, ierr)
247 write (iout,
'(/"after exgnsd, error = ", i3)' ) ierr
249 write (iout,
'(/"node list for node set ", i2)') ids(i)
251 do 80 j = 1, num_nodes_in_set
252 write (iout,
'(i3)') node_list(j)
255 write (iout,
'("dist factors for node set ", i2)') ids(i)
257 do 90 j = 1, num_nodes_in_set
258 write (iout,
'(f5.2)') dist_fact(j)
265 num_props =
exinqi(exoid, exnnsp)
267 1
'(/"There are ",i2," properties for each node set")')
271 call exgpn(exoid, exnset, prop_names, ierr)
272 write (iout,
'("after exgpn, error = ", i3)' ) ierr
274 do 107 i = 1, num_props
275 do 105 j = 1, num_node_sets
276 call exgp(exoid,exnset,ids(j),prop_names(i),prop_value,ierr)
277 if (ierr .eq. 0)
then
279 1
'("node set ",i2," property(",i2,"): ",a," = ",i5)' )
280 2 j, i, prop_names(i), prop_value
282 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
291 num_node_sets =
exinqi(exoid, exnods)
292 if (num_node_sets .gt. 0)
then
293 list_len =
exinqi(exoid, exnsnl)
294 write(iout,
'(/"after EXNSNL =",i3," exinq, error = ",i3)')
297 list_len =
exinqi(exoid, exnsdf)
298 write(iout,
'(/"after EXNSDF =",i3," exinq, error = ",i3)')
301 call exgcns (exoid, ids, num_nodes_per_set, num_df_per_set,
302 1 node_ind, df_ind, node_list, dist_fact, ierr)
303 write (iout,
'(/"after exgcns, error = ", i3)' ) ierr
305 write (iout,
'(/"concatenated node set info")')
307 write (iout,
'("ids = ")')
309 do 110 i = 1, num_node_sets
310 write (iout,
'(i3)') ids(i)
313 write (iout,
'("num_nodes_per_set = ")')
315 do 120 i = 1, num_node_sets
316 write (iout,
'(i3)') num_nodes_per_set(i)
319 write (iout,
'("node_ind = ")')
321 do 130 i = 1, num_node_sets
322 write (iout,
'(i3)') node_ind(i)
325 write (iout,
'("node_list = ")')
327 do 140 i = 1, list_len
328 write (iout,
'(i3)') node_list(i)
331 write (iout,
'("dist_fact = ")')
333 do 150 i = 1, list_len
334 write (iout,
'(f5.3)') dist_fact(i)
341 if (num_side_sets .gt. 0)
then
342 call exgssi (exoid, ids, ierr)
343 write (iout,
'(/"after exgssi, error = ", i3)' ) ierr
346 do 190 i = 1, num_side_sets
348 call exgsp (exoid, ids(i), num_sides_in_set, num_df_in_set,
350 write (iout,
'(/"after exgsp, error = ", i3)' ) ierr
352 write (iout,
'("side set ", i2, " parameters:",/
353 2 "num_sides = ", i3,/
354 3 "num_dist_factors = ", i3)')
355 4 ids(i), num_sides_in_set, num_df_in_set
357 call exgss (exoid, ids(i), elem_list, side_list, ierr)
358 write (iout,
'(/"after exgss, error = ", i3)' ) ierr
360 call exgssd (exoid, ids(i), dist_fact, ierr)
361 write (iout,
'(/"after exgssd, error = ", i3)' ) ierr
363 write (iout,
'(/"element list for side set ", i2)') ids(i)
365 num_elem_in_set = num_sides_in_set
366 do 160 j = 1, num_elem_in_set
367 write (iout,
'(i3)') elem_list(j)
370 write (iout,
'("side list for side set ", i2)') ids(i)
372 do 170 j = 1, num_sides_in_set
373 write (iout,
'(i3)') side_list(j)
377 write (iout,
'("dist factors for side set ", i2)') ids(i)
379 do 180 j = 1, num_df_in_set
380 write (iout,
'(f6.3)') dist_fact(j)
387 num_props =
exinqi(exoid, exnssp)
389 1
'(/"There are ",i2," properties for each side set")')
393 call exgpn(exoid, exsset, prop_names, ierr)
394 write (iout,
'("after exgpn, error = ", i3)' ) ierr
396 do 197 i = 1, num_props
397 do 195 j = 1, num_side_sets
398 call exgp(exoid, exsset,ids(j),prop_names(i),prop_value,ierr)
399 if (ierr .eq. 0)
then
401 1
'("side set ",i2," property(",i2,"): ",a," = ",i5)' )
402 2 j, i, prop_names(i), prop_value
404 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
409 num_side_sets =
exinqi(exoid, exsids)
410 write (iout,
'(/"after exinq: EXSIDS =",i3,", error = ",i3)')
413 if (num_side_sets .gt. 0)
then
414 elem_list_len =
exinqi(exoid, exssel)
415 write (iout,
'(/"after exinq: EXSSEL =",i3,", error = ",i3)')
418 df_list_len =
exinqi(exoid, exssdf)
419 write (iout,
'(/"after exinq: EXSSDF =",i3,", error = ",i3)')
428 call exgcss (exoid, ids, num_elem_per_set, num_df_per_set,
429 1 elem_ind, df_ind, elem_list, side_list, dist_fact,
431 write (iout,
'(/"after exgcss, error = ", i3)' ) ierr
433 write (iout,
'("concatenated side set info")')
435 write (iout,
'("ids = ")')
437 do 200 i = 1, num_side_sets
438 write (iout,
'(i3)') ids(i)
441 write (iout,
'("num_elem_per_set = ")')
443 do 210 i = 1, num_side_sets
444 write (iout,
'(i3)') num_elem_per_set(i)
447 write (iout,
'("num_df_per_set = ")')
449 do 220 i = 1, num_side_sets
450 write (iout,
'(i3)') num_df_per_set(i)
453 write (iout,
'("elem_ind = ")')
455 do 230 i = 1, num_side_sets
456 write (iout,
'(i3)') elem_ind(i)
459 write (iout,
'("df_ind = ")')
461 do 240 i = 1, num_side_sets
462 write (iout,
'(i3)') df_ind(i)
465 write (iout,
'("elem_list = ")')
467 do 250 i = 1, elem_list_len
468 write (iout,
'(i3)') elem_list(i)
471 write (iout,
'("side_list = ")')
473 do 260 i = 1, elem_list_len
474 write (iout,
'(i3)') side_list(i)
477 write (iout,
'("dist_fact = ")')
479 do 270 i = 1, df_list_len
480 write (iout,
'(f6.3)') dist_fact(i)
487 num_qa_rec =
exinqi(exoid, exqa)
488 call exgqa (exoid, qa_record, ierr)
489 write (iout,
'(/"after exgqa, error = ", i3)' ) ierr
491 write (iout,
'("QA records = ")')
493 do 290 i = 1, num_qa_rec
495 write (iout,
'(a)') qa_record(j,i)
502 num_info =
exinqi(exoid, exinfo)
504 call exginf (exoid, inform, ierr)
505 write (iout,
'(/"after exginf, error = ", i3)' ) ierr
507 write (iout,
'("info records = ")')
509 do 300 i = 1, num_info
510 write (iout,
'(a81)') inform(i)
516 call exgvp (exoid,
"g", num_glo_vars, ierr)
517 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
519 call exgvan (exoid,
"g", num_glo_vars, var_names, ierr)
520 write (iout,
'(/"after exgvan, error = ", i3)' ) ierr
522 write (iout,
'("There are ",i2," global variables; their names ",
523 1 "are :")') num_glo_vars
525 do 320 i = 1, num_glo_vars
526 write (iout,
'(a9)') var_names(i)
532 call exgvp (exoid,
"n", num_nod_vars, ierr)
533 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
535 call exgvan (exoid,
"n", num_nod_vars, var_names, ierr)
536 write (iout,
'(/"after exgvan, error = ", i3)' ) ierr
538 write (iout,
'("There are ",i2," nodal variables; their names ",
539 1 "are :")') num_nod_vars
541 do 330 i = 1, num_nod_vars
542 write (iout,
'(a9)') var_names(i)
548 call exgvp (exoid,
"e", num_ele_vars, ierr)
549 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
551 call exgvan (exoid,
"e", num_ele_vars, var_names, ierr)
552 write (iout,
'(/"after exgvan, error = ", i3)' ) ierr
554 write (iout,
'("There are ",i2," element variables; their names ",
555 1 "are :")') num_ele_vars
557 do 340 i = 1, num_ele_vars
558 write (iout,
'(a9)') var_names(i)
564 call exgvtt (exoid, num_elem_blk, num_ele_vars, truth_tab, ierr)
565 write (iout,
'(/"after exgvtt, error = ", i3)' ) ierr
567 write (iout,
'("This is the element variable truth table:")')
569 do 360 i = 1, num_elem_blk
570 do 350 j = 1, num_ele_vars
571 write (iout,
'(i2)') truth_tab(j,i)
578 num_time_steps =
exinqi(exoid, extims)
579 write (iout,
'("There are ",i2," time steps in the database.")')
585 call exgtim (exoid, time_step, time_value, ierr)
586 write (iout,
'(/"after exgtim, error = ", i3)' ) ierr
588 write (iout,
'("time value at time step ",i2," = ", f5.3)')
589 1 time_step, time_value
593 call exgatm (exoid, time_values, ierr)
594 write (iout,
'(/"after exgatm, error = ", i3)' ) ierr
596 write (iout,
'("time values at all time steps are:")')
598 do 370 i = 1, num_time_steps
599 write (iout,
'(f5.3)') time_values(i)
608 call exggv (exoid, time_step, num_glo_vars, var_values, ierr)
609 write (iout,
'(/"after exggv, error = ", i3)' ) ierr
611 write (iout,
'("global variable values at time step ",i2)')
614 do 400 i = 1, num_glo_vars
615 write (iout,
'(f5.3)') var_values(i)
621 call exggvt (exoid, var_index, beg_time, end_time, var_values,
623 write (iout,
'(/"after exggvt, error = ", i3)' ) ierr
625 write (iout,
'("global variable ",i2," values through time:")')
628 do 410 i = 1, num_time_steps
629 write (iout,
'(f5.3)') var_values(i)
635 call exgnv (exoid, time_step, var_index, num_nodes, var_values,
637 write (iout,
'(/"after exgnv, error = ", i3)' ) ierr
639 write (iout,
'("nodal variable ",i2," values at time step ",i2)')
640 1 var_index, time_step
642 do 420 i = 1, num_nodes
643 write (iout,
'(f5.3)') var_values(i)
651 call exgnvt (exoid, var_index, node_num, beg_time, end_time,
653 write (iout,
'(/"after exgnvt, error = ", i3)' ) ierr
655 write (iout,
'("nodal variable ",i2," values for node ",i2,
656 1 " through time:")') var_index, node_num
658 do 430 i = 1, num_time_steps
659 write (iout,
'(f5.3)') var_values(i)
665 call exgebi (exoid, ids, ierr)
666 write (iout,
'(/"after exgebi, error = ", i3)' ) ierr
668 do 450 i = 1, num_elem_blk
670 call exgev (exoid, time_step, var_index, ids(i),
671 1 num_elem_in_block(i), var_values, ierr)
672 write (iout,
'(/"after exgev, error = ", i3)' ) ierr
674 if (ierr .eq. 0)
then
675 write (iout,
'("element variable ",i2," values of element ",
676 1 "block ",i2," at time step ",i2)')
677 2 var_index, ids(i), time_step
680 do 440 j = 1, num_elem_in_block(i)
681 write (iout,
'(f5.3)') var_values(j)
692 call exgevt (exoid, var_index, elem_num, beg_time, end_time,
694 write (iout,
'(/"after exgevt, error = ", i3)' ) ierr
696 write (iout,
'("element variable ",i2," values for element ",i2,
697 1 " through time:")') var_index, elem_num
699 do 460 i = 1, num_time_steps
700 write (iout,
'(f5.3)') var_values(i)
704 write (iout,
'(/"after exclos, error = ", i3)' ) ierr