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, k, elem_map(5), connect(10), node_list(100)
50 integer elem_list(100), side_list(100), ids(10)
51 integer num_elem_per_set(10), num_nodes_per_set(10)
52 integer num_df_per_set(10)
53 integer num_df_in_set, num_sides_in_set
54 integer df_ind(10),node_ind(10),elem_ind(10),num_qa_rec,num_info
55 integer num_glo_vars, num_nod_vars, num_ele_vars
56 integer truth_tab(3,5)
57 integer num_time_steps
58 integer num_elem_in_block(10), num_nodes_per_elem(10)
59 integer num_attr(10), node_ctr_list(10), node_ctr
60 integer num_nodes_in_set, num_elem_in_set
61 integer df_list_len, list_len, elem_list_len, node_list_len
62 integer node_num, time_step, var_index, beg_time, end_time
64 integer cpu_ws,io_ws, mod_sz
65 integer num_props, prop_value
66 integer mxalnmlen, mxusnmlen
68 real time_value, time_values(100), var_values(100)
69 real x(100), y(100), z(100)
70 real attrib(100), dist_fact(100)
73 character*(MXSTLN) coord_names(3), qa_record(4,2), var_names(3)
74 character*(MXSTLN) name
75 character*(MXSTLN) blk_names(5)
76 character*(MXSTLN) nset_names(2)
77 character*(MXSTLN) sset_names(5)
78 character*(MXLNLN) inform(3), titl
79 character typ*(MXSTLN)
80 character*(MXSTLN) prop_names(3)
81 character*(MXSTLN) attrib_names(100)
83 data iin /5/, iout /6/
93 exoid =
excre(
"test.exo", exnocl, cpu_ws, io_ws, ierr)
95 exoid =
exopen(
"test.exo", exread, cpu_ws, io_ws, vers, ierr)
96 write (iout,
'(/"after exopen, error = ",i3)')
99 write (iout,
'("test.exo is an EXODUSII file; version ",
101 write (iout,
'(" I/O word size",i2)') io_ws
104 write (iout,
'(" Model Size",i2)') mod_sz
106 num_props =
exinqi(exoid, exnebp)
107 mxalnmlen =
exinqi(exoid, exdbmxalnm)
108 mxusnmlen =
exinqi(exoid, exdbmxusnm)
109 write (iout,
'(" Maximum Allowed/Used DB Name Size ",i4,i4)')
110 * mxalnmlen, mxusnmlen
116 call exgini (exoid, titl, num_dim, num_nodes, num_elem,
117 1 num_elem_blk, num_node_sets, num_side_sets, ierr)
118 write (iout,
'(/"after exgini, error = ", i3)' ) ierr
120 write (iout,
'("database parameters:"/
123 3 "num_nodes = ", i3 /
124 4 "num_elem = ", i3 /
125 5 "num_elem_blk = ", i3 /
126 6 "num_node_sets = ", i3 /
127 7 "num_side_sets = ", i3)')
128 8 titl,num_dim, num_nodes, num_elem,
129 9 num_elem_blk,num_node_sets, num_side_sets
136 call exgcor (exoid, x, y, z, ierr)
137 write (iout,
'(/"after exgcor, error = ", i3)' ) ierr
139 write (iout,
'("x coords = ")')
140 do 10 i = 1, num_nodes
141 write (iout,
'(f5.1)') x(i)
144 write (iout,
'("y coords = ")')
145 do 20 i = 1, num_nodes
146 write (iout,
'(f5.1)') y(i)
149 if (num_dim .gt. 2)
then
150 write (iout,
'("z coords = ")')
151 do 22 i = 1, num_nodes
152 write (iout,
'(f5.1)') z(i)
156 call exgcon (exoid, coord_names, ierr)
157 write (iout,
'(/"after exgcon, error = ", i3)' ) ierr
159 write (iout,
'("x coord name = ", a9)') coord_names(1)
160 write (iout,
'("y coord name = ", a9)') coord_names(2)
166 call exgmap (exoid, elem_map, ierr)
167 write (iout,
'(/"after exgmap, error = ", i3)' ) ierr
169 do 30 i = 1, num_elem
170 write (iout,
'("elem_map(",i1,") = ", i1)') i, elem_map(i)
177 call exgebi (exoid, ids, ierr)
178 write (iout,
'(/"after exgebi, error = ", i3)' ) ierr
180 do 40 i = 1, num_elem_blk
182 call exgelb (exoid, ids(i), typ, num_elem_in_block(i),
183 1 num_nodes_per_elem(i), num_attr(i), ierr)
184 write (iout,
'(/"after exgelb, error = ", i3)' ) ierr
186 call exgnam (exoid, exeblk, ids(i), name, ierr)
187 write (iout,
'("element block id = ", i2,/
188 1 "element type = ", a9,/
189 * "block name = ", a32,/
190 2 "num_elem_in_block = ", i2,/
191 3 "num_nodes_per_elem = ", i2,/
192 4 "num_attr = ", i2)')
194 * num_elem_in_block(i),
195 6 num_nodes_per_elem(i), num_attr(i)
201 num_props =
exinqi(exoid, exnebp)
203 1
'(/"There are ",i2," properties for each element block")')
207 call exgpn(exoid, exeblk, prop_names, ierr)
208 write (iout,
'("after exgpn, error = ", i3)' ) ierr
210 do 47 i = 1, num_props
211 do 45 j = 1, num_elem_blk
212 call exgp(exoid, exeblk,ids(j),prop_names(i),prop_value,ierr)
213 if (ierr .eq. 0)
then
215 1
'("elem block ",i2," property(",i2,"): ",a," = ",i5)' )
216 2 j, i, prop_names(i), prop_value
218 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
227 do 60 i = 1, num_elem_blk
229 call exgelc (exoid, ids(i), connect, ierr)
230 write (iout,
'(/"after exgelc, error = ", i3)' ) ierr
232 write (iout,
'("connect array for elem block ", i2)') ids(i)
234 do 50 j = 1, num_nodes_per_elem(i)
235 write (iout,
'(i3)') connect(j)
243 call exgnams(exoid, exeblk, num_elem_blk, blk_names, ierr)
244 write (iout,
'(/"after exgnams, error = ", i3)' ) ierr
246 write (iout,
'("element block ",i2," name: ",a)' )
254 do 70 i = 1, num_elem_blk
256 call exgeat (exoid, ids(i), attrib, ierr)
257 write (iout,
'(/"after exgeat, error = ", i3)' ) ierr
259 call exgean (exoid, ids(i), num_attr(i), attrib_names, ierr)
260 write (iout,
'(/"after exgean, error = ", i3)' ) ierr
263 *
'("element block ", i2, " has ",i2," attribute(s) and ",
264 * i2, " element(s):")')
265 * ids(i), num_attr(i), num_elem_in_block(i)
267 write (iout, 69) attrib_names(j),
268 * (attrib(k),k= j, num_attr(i)*num_elem_in_block(i),
271 69
format(a32,
" = ", 10(f6.4,2x))
277 if (num_node_sets .gt. 0)
then
278 call exgnsi (exoid, ids, ierr)
279 write (iout,
'(/"after exgnsi, error = ", i3)' ) ierr
282 do 100 i = 1, num_node_sets
284 call exgnp (exoid, ids(i), num_nodes_in_set,
285 1 num_df_in_set, ierr)
286 write (iout,
'(/"after exgnp, error = ", i3)' ) ierr
288 write (iout,
'(/"node set ", i2, " parameters: ",/
289 2 "num_nodes = ", i2)') ids(i), num_nodes_in_set
291 call exgns (exoid, ids(i), node_list, ierr)
292 write (iout,
'(/"after exgns, error = ", i3)' ) ierr
294 if (num_df_in_set .gt. 0)
then
295 call exgnsd (exoid, ids(i), dist_fact, ierr)
296 write (iout,
'(/"after exgnsd, error = ", i3)' ) ierr
299 write (iout,
'(/"node list for node set ", i2)') ids(i)
301 do 80 j = 1, num_nodes_in_set
302 write (iout,
'(i3)') node_list(j)
305 if (num_df_in_set .gt. 0)
then
306 write (iout,
'("dist factors for node set ", i2)') ids(i)
307 do 90 j = 1, num_nodes_in_set
308 write (iout,
'(f5.2)') dist_fact(j)
311 write (iout,
'("no dist factors for node set ", i2)') ids(i)
319 call exgnams(exoid, exnset, num_node_sets, nset_names, ierr)
320 write (iout,
'(/"after exgnams, error = ", i3)' ) ierr
321 do i=1, num_node_sets
322 write (iout,
'("node set ",i2," name: ",a)' )
329 num_props =
exinqi(exoid, exnnsp)
331 1
'(/"There are ",i2," properties for each node set")')
335 call exgpn(exoid, exnset, prop_names, ierr)
336 write (iout,
'("after exgpn, error = ", i3)' ) ierr
338 do 107 i = 1, num_props
339 do 105 j = 1, num_node_sets
340 call exgp(exoid,exnset,ids(j),prop_names(i),prop_value,ierr)
341 if (ierr .eq. 0)
then
343 1
'("node set ",i2," property(",i2,"): ",a," = ",i5)' )
344 2 j, i, prop_names(i), prop_value
346 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
355 num_node_sets =
exinqi(exoid, exnods)
357 if (num_node_sets .gt. 0)
then
358 list_len =
exinqi(exoid, exnsnl)
359 write(iout,
'(/"after EXNSNL =",i3," exinq, error = ",i3)')
362 list_len =
exinqi(exoid, exnsdf)
363 write(iout,
'(/"after EXNSDF =",i3," exinq, error = ",i3)')
366 call exgcns (exoid, ids, num_nodes_per_set, num_df_per_set,
367 1 node_ind, df_ind, node_list, dist_fact, ierr)
368 write (iout,
'(/"after exgcns, error = ", i3)' ) ierr
370 write (iout,
'(/"concatenated node set info")')
372 write (iout,
'("ids = ")')
374 do 110 i = 1, num_node_sets
375 write (iout,
'(i3)') ids(i)
378 write (iout,
'("num_nodes_per_set = ")')
380 do 120 i = 1, num_node_sets
381 write (iout,
'(i3)') num_nodes_per_set(i)
384 write (iout,
'("node_ind = ")')
386 do 130 i = 1, num_node_sets
387 write (iout,
'(i3)') node_ind(i)
390 write (iout,
'("node_list = ")')
392 do 140 i = 1, list_len
393 write (iout,
'(i3)') node_list(i)
396 write (iout,
'("dist_fact = ")')
398 do 150 i = 1, list_len
399 write (iout,
'(f5.3)') dist_fact(i)
406 if (num_side_sets .gt. 0)
then
407 call exgssi (exoid, ids, ierr)
408 write (iout,
'(/"after exgssi, error = ", i3)' ) ierr
411 do 190 i = 1, num_side_sets
413 call exgsp (exoid, ids(i), num_sides_in_set, num_df_in_set,
415 write (iout,
'(/"after exgsp, error = ", i3)' ) ierr
417 write (iout,
'("side set ", i2, " parameters:",/
418 2 "num_sides = ", i3,/
419 3 "num_dist_factors = ", i3)')
420 4 ids(i), num_sides_in_set, num_df_in_set
422 call exgss (exoid, ids(i), elem_list, side_list, ierr)
423 write (iout,
'(/"after exgss, error = ", i3)' ) ierr
425 call exgssn (exoid, ids(i), node_ctr_list, node_list, ierr)
426 write (iout,
'(/"after exgssn, error = ", i3)' ) ierr
428 if (num_df_in_set .gt. 0)
then
429 call exgssd (exoid, ids(i), dist_fact, ierr)
430 write (iout,
'(/"after exgssd, error = ", i3)' ) ierr
433 write (iout,
'(/"element list for side set ", i2)') ids(i)
435 num_elem_in_set = num_sides_in_set
436 do 160 j = 1, num_elem_in_set
437 write (iout,
'(i3)') elem_list(j)
440 write (iout,
'("side list for side set ", i2)') ids(i)
442 do 170 j = 1, num_sides_in_set
443 write (iout,
'(i3)') side_list(j)
447 write (iout,
'("node list for side set ", i2)') ids(i)
448 do 178 k=1, num_elem_in_set
449 do 175 j=1, node_ctr_list(k)
450 write (iout,
'(i3)') node_list(j+node_ctr)
452 node_ctr = node_ctr+node_ctr_list(k)
455 if (num_df_in_set .gt. 0)
then
456 write (iout,
'("dist factors for side set ", i2)') ids(i)
457 do 180 j = 1, num_df_in_set
458 write (iout,
'(f6.3)') dist_fact(j)
461 write (iout,
'("no dist factors for side set ", i2)') ids(i)
469 call exgnams(exoid, exsset, num_side_sets, sset_names, ierr)
470 write (iout,
'(/"after exgnams, error = ", i3)' ) ierr
471 do i=1, num_side_sets
472 write (iout,
'("side set ",i2," name: ",a)' )
478 num_props =
exinqi(exoid, exnssp)
480 1
'(/"There are ",i2," properties for each side set")')
484 call exgpn(exoid, exsset, prop_names, ierr)
485 write (iout,
'("after exgpn, error = ", i3)' ) ierr
487 do 197 i = 1, num_props
488 do 195 j = 1, num_side_sets
489 call exgp(exoid, exsset,ids(j),prop_names(i),prop_value,ierr)
490 if (ierr .eq. 0)
then
492 1
'("side set ",i2," property(",i2,"): ",a," = ",i5)' )
493 2 j, i, prop_names(i), prop_value
495 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
500 num_side_sets =
exinqi(exoid, exsids)
501 write (iout,
'(/"after exinq: EXSIDS =",i3,", error = ",i3)')
504 if (num_side_sets .gt. 0)
then
505 elem_list_len =
exinqi(exoid, exssel)
506 write (iout,
'(/"after exinq: EXSSEL =",i3,", error = ",i3)')
509 node_list_len =
exinqi(exoid, exssnl)
510 write (iout,
'(/"after exinq: EXSSNL =",i3,", error = ",i3)')
513 df_list_len =
exinqi(exoid, exssdf)
514 write (iout,
'(/"after exinq: EXSSDF =",i3,", error = ",i3)')
520 call exgcss (exoid, ids, num_elem_per_set, num_df_per_set,
521 1 elem_ind, df_ind, elem_list, side_list, dist_fact,
523 write (iout,
'(/"after exgcss, error = ", i3)' ) ierr
525 write (iout,
'("concatenated side set info")')
527 write (iout,
'("ids = ")')
529 do 200 i = 1, num_side_sets
530 write (iout,
'(i3)') ids(i)
533 write (iout,
'("num_elem_per_set = ")')
535 do 210 i = 1, num_side_sets
536 write (iout,
'(i3)') num_elem_per_set(i)
539 write (iout,
'("num_df_per_set = ")')
541 do 220 i = 1, num_side_sets
542 write (iout,
'(i3)') num_df_per_set(i)
545 write (iout,
'("elem_ind = ")')
547 do 230 i = 1, num_side_sets
548 write (iout,
'(i3)') elem_ind(i)
551 write (iout,
'("df_ind = ")')
553 do 240 i = 1, num_side_sets
554 write (iout,
'(i3)') df_ind(i)
557 write (iout,
'("elem_list = ")')
559 do 250 i = 1, elem_list_len
560 write (iout,
'(i3)') elem_list(i)
563 write (iout,
'("side_list = ")')
565 do 260 i = 1, elem_list_len
566 write (iout,
'(i3)') side_list(i)
569 write (iout,
'("dist_fact = ")')
571 do 270 i = 1, df_list_len
572 write (iout,
'(f6.3)') dist_fact(i)
579 num_qa_rec =
exinqi(exoid, exqa)
580 call exgqa (exoid, qa_record, ierr)
581 write (iout,
'(/"after exgqa, error = ", i3)' ) ierr
583 write (iout,
'("QA records = ")')
585 do 290 i = 1, num_qa_rec
587 write (iout,
'(a)') qa_record(j,i)
594 num_info =
exinqi(exoid, exinfo)
595 call exginf (exoid, inform, ierr)
596 write (iout,
'(/"after exginf, error = ", i3)' ) ierr
598 write (iout,
'("info records = ")')
600 do 300 i = 1, num_info
601 write (iout,
'(a81)') inform(i)
607 call exgvp (exoid,
"g", num_glo_vars, ierr)
608 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
610 call exgvan (exoid,
"g", num_glo_vars, var_names, ierr)
611 write (iout,
'(/"after exgvan, error = ", i3)' ) ierr
613 write (iout,
'("There are ",i2," global variables; their names ",
614 1 "are :")') num_glo_vars
616 do 320 i = 1, num_glo_vars
617 write (iout,
'(a9)') var_names(i)
623 call exgvp (exoid,
"n", num_nod_vars, ierr)
624 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
626 call exgvan (exoid,
"n", num_nod_vars, var_names, ierr)
627 write (iout,
'(/"after exgvan, error = ", i3)' ) ierr
629 write (iout,
'("There are ",i2," nodal variables; their names ",
630 1 "are :")') num_nod_vars
632 do 330 i = 1, num_nod_vars
633 write (iout,
'(a9)') var_names(i)
639 call exgvp (exoid,
"e", num_ele_vars, ierr)
640 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
642 call exgvan (exoid,
"e", num_ele_vars, var_names, ierr)
643 write (iout,
'(/"after exgvan, error = ", i3)' ) ierr
645 write (iout,
'("There are ",i2," element variables; their names ",
646 1 "are :")') num_ele_vars
648 do 340 i = 1, num_ele_vars
649 write (iout,
'(a9)') var_names(i)
655 call exgvtt (exoid, num_elem_blk, num_ele_vars, truth_tab, ierr)
656 write (iout,
'(/"after exgvtt, error = ", i3)' ) ierr
658 write (iout,
'("This is the element variable truth table:")')
660 do 360 i = 1, num_elem_blk
661 do 350 j = 1, num_ele_vars
662 write (iout,
'(i2)') truth_tab(j,i)
669 num_time_steps =
exinqi(exoid, extims)
670 write (iout,
'("There are ",i2," time steps in the database.")')
676 call exgtim (exoid, time_step, time_value, ierr)
677 write (iout,
'(/"after exgtim, error = ", i3)' ) ierr
679 write (iout,
'("time value at time step ",i2," = ", f5.3)')
680 1 time_step, time_value
684 call exgatm (exoid, time_values, ierr)
685 write (iout,
'(/"after exgatm, error = ", i3)' ) ierr
687 write (iout,
'("time values at all time steps are:")')
689 do 370 i = 1, num_time_steps
690 write (iout,
'(f5.3)') time_values(i)
699 call exggv (exoid, time_step, num_glo_vars, var_values, ierr)
700 write (iout,
'(/"after exggv, error = ", i3)' ) ierr
702 write (iout,
'("global variable values at time step ",i2)')
705 do 400 i = 1, num_glo_vars
706 write (iout,
'(f5.3)') var_values(i)
712 call exggvt (exoid, var_index, beg_time, end_time, var_values,
714 write (iout,
'(/"after exggvt, error = ", i3)' ) ierr
716 write (iout,
'("global variable ",i2," values through time:")')
719 do 410 i = 1, num_time_steps
720 write (iout,
'(f5.3)') var_values(i)
726 call exgnv (exoid, time_step, var_index, num_nodes, var_values,
728 write (iout,
'(/"after exgnv, error = ", i3)' ) ierr
730 write (iout,
'("nodal variable ",i2," values at time step ",i2)')
731 1 var_index, time_step
733 do 420 i = 1, num_nodes
734 write (iout,
'(f5.3)') var_values(i)
742 call exgnvt (exoid, var_index, node_num, beg_time, end_time,
744 write (iout,
'(/"after exgnvt, error = ", i3)' ) ierr
746 write (iout,
'("nodal variable ",i2," values for node ",i2,
747 1 " through time:")') var_index, node_num
749 do 430 i = 1, num_time_steps
750 write (iout,
'(f5.3)') var_values(i)
756 call exgebi (exoid, ids, ierr)
757 write (iout,
'(/"after exgebi, error = ", i3)' ) ierr
759 do 450 i = 1, num_elem_blk
761 call exgev (exoid, time_step, var_index, ids(i),
762 1 num_elem_in_block(i), var_values, ierr)
763 write (iout,
'(/"after exgev, error = ", i3)' ) ierr
765 if (ierr .eq. 0)
then
766 write (iout,
'("element variable ",i2," values of element ",
767 1 "block ",i2," at time step ",i2)')
768 2 var_index, ids(i), time_step
771 do 440 j = 1, num_elem_in_block(i)
772 write (iout,
'(f5.3)') var_values(j)
783 call exgevt (exoid, var_index, elem_num, beg_time, end_time,
785 write (iout,
'(/"after exgevt, error = ", i3)' ) ierr
787 write (iout,
'("element variable ",i2," values for element ",i2,
788 1 " through time:")') var_index, elem_num
790 do 460 i = 1, num_time_steps
791 write (iout,
'(f5.3)') var_values(i)
795 write (iout,
'(/"after exclos, error = ", i3)' ) ierr