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(10), connect(10), node_list(100)
50 integer elem_list(100), side_list(100), ids(10), node_map(100)
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,7)
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
65 integer num_props, prop_value, n_node_map, n_elem_map
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*(MXLNLN) inform(3), titl
75 character typ*(MXSTLN)
76 character*(MXSTLN) prop_names(3)
77 character*(MXSTLN) attrib_names(100)
78 data iin /5/, iout /6/
90 exoid =
exopen(
"test.exo", exread, cpu_ws, io_ws, vers, ierr)
91 write (iout,
'(/"after exopen, error = ",i3)')
94 write (iout,
'("test.exo is an EXODUSII file; version ",
96 write (iout,
'(" I/O word size",i2)') io_ws
102 call exgini (exoid, titl, num_dim, num_nodes, num_elem,
103 1 num_elem_blk, num_node_sets, num_side_sets, ierr)
104 write (iout,
'(/"after exgini, error = ", i3)' ) ierr
106 write (iout,
'("database parameters:"/
109 3 "num_nodes = ", i3 /
110 4 "num_elem = ", i3 /
111 5 "num_elem_blk = ", i3 /
112 6 "num_node_sets = ", i3 /
113 7 "num_side_sets = ", i3)')
114 8 titl,num_dim, num_nodes, num_elem,
115 9 num_elem_blk,num_node_sets, num_side_sets
122 call exgcor (exoid, x, y, z, ierr)
123 write (iout,
'(/"after exgcor, error = ", i3)' ) ierr
125 write (iout,
'("x coords = ")')
126 do 10 i = 1, num_nodes
127 write (iout,
'(f5.1)') x(i)
130 write (iout,
'("y coords = ")')
131 do 20 i = 1, num_nodes
132 write (iout,
'(f5.1)') y(i)
135 if (num_dim .gt. 2)
then
136 write (iout,
'("z coords = ")')
137 do 22 i = 1, num_nodes
138 write (iout,
'(f5.1)') z(i)
142 call exgcon (exoid, coord_names, ierr)
143 write (iout,
'(/"after exgcon, error = ", i3)' ) ierr
145 write (iout,
'("x coord name = ", a9)') coord_names(1)
146 write (iout,
'("y coord name = ", a9)') coord_names(2)
152 call exgmp (exoid, n_node_map, n_elem_map, ierr)
153 write (iout,
'(/"after exgmp, error = ", i3)' ) ierr
159 call exgpa (exoid, exemap,
"ID", ids, ierr)
160 write (iout,
'(/"after exgpa, error = ", i3)' ) ierr
162 do 26 j = 1,n_elem_map
164 call exgem (exoid, ids(j), elem_map, ierr)
165 write (iout,
'(/"after exgem, error = ", i3)' ) ierr
167 write (iout,
'(/"element map id = ", i3)' ) ids(j)
169 do 24 i = 1, num_elem
170 write (iout,
'("elem_map(",i3,") = ", i3)') i, elem_map(i)
172 call exgpem(exoid, ids(j), i, 1, ival, ierr)
173 if (ival .ne. elem_map(i))
then
174 write (iout,
'("bad value found for map ",
175 * " element ", i3)') i, elem_map(i)
185 num_props =
exinqi(exoid, exnemp)
187 1
'(/"There are ",i2," properties for each element map")')
191 call exgpn(exoid, exemap, prop_names, ierr)
192 write (iout,
'("after exgpn, error = ", i3)' ) ierr
194 do 30 i = 1, num_props
195 do 28 j = 1, n_elem_map
196 call exgp(exoid, exemap,ids(j),prop_names(i),prop_value,ierr)
197 if (ierr .eq. 0)
then
199 1
'("elem map ",i2," property(",i2,"): ",a," = ",i5)' )
200 2 j, i, prop_names(i), prop_value
202 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
211 call exgpa (exoid, exnmap,
"ID", ids, ierr)
212 write (iout,
'(/"after exgpa, error = ", i3)' ) ierr
214 do 34 j = 1,n_node_map
216 call exgnm (exoid, ids(j), node_map, ierr)
217 write (iout,
'(/"after exgnm, error = ", i3)' ) ierr
219 write (iout,
'(/"node map id = ", i3)' ) ids(j)
221 do 32 i = 1, num_nodes
222 write (iout,
'("node_map(",i3,") = ", i3)') i, node_map(i)
231 num_props =
exinqi(exoid, exnnmp)
233 1
'(/"There are ",i2," properties for each node map")')
237 call exgpn(exoid, exnmap, prop_names, ierr)
238 write (iout,
'("after exgpn, error = ", i3)' ) ierr
240 do 38 i = 1, num_props
241 do 36 j = 1, n_node_map
242 call exgp(exoid, exnmap,ids(j),prop_names(i),prop_value,ierr)
243 if (ierr .eq. 0)
then
245 1
'("node map ",i2," property(",i2,"): ",a," = ",i5)' )
246 2 j, i, prop_names(i), prop_value
248 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
257 call exgebi (exoid, ids, ierr)
258 write (iout,
'(/"after exgebi, error = ", i3)' ) ierr
260 do 40 i = 1, num_elem_blk
262 call exgelb (exoid, ids(i), typ, num_elem_in_block(i),
263 1 num_nodes_per_elem(i), num_attr(i), ierr)
264 write (iout,
'(/"after exgelb, error = ", i3)' ) ierr
266 write (iout,
'("element block id = ", i2,/
267 1 "element type = ", a9,/
268 2 "num_elem_in_block = ", i2,/
269 3 "num_nodes_per_elem = ", i2,/
270 4 "num_attr = ", i2)')
271 5 ids(i), typ, num_elem_in_block(i),
272 6 num_nodes_per_elem(i), num_attr(i)
278 num_props =
exinqi(exoid, exnebp)
280 1
'(/"There are ",i2," properties for each element block")')
284 call exgpn(exoid, exeblk, prop_names, ierr)
285 write (iout,
'("after exgpn, error = ", i3)' ) ierr
287 do 47 i = 1, num_props
288 do 45 j = 1, num_elem_blk
289 call exgp(exoid, exeblk,ids(j),prop_names(i),prop_value,ierr)
290 if (ierr .eq. 0)
then
292 1
'("elem block ",i2," property(",i2,"): ",a," = ",i5)' )
293 2 j, i, prop_names(i), prop_value
295 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
304 do 60 i = 1, num_elem_blk
306 call exgelc (exoid, ids(i), connect, ierr)
307 write (iout,
'(/"after exgelc, error = ", i3)' ) ierr
309 write (iout,
'("connect array for elem block ", i2)') ids(i)
311 do 50 j = 1, num_nodes_per_elem(i)
312 write (iout,
'(i3)') connect(j)
321 do 70 i = 1, num_elem_blk
323 call exgeat (exoid, ids(i), attrib, ierr)
324 write (iout,
'(/"after exgeat, error = ", i3)' ) ierr
326 call exgean (exoid, ids(i), num_attr(i), attrib_names, ierr)
327 write (iout,
'(/"after exgean, error = ", i3)' ) ierr
330 *
'("element block ", i2, " has ",i2," attribute(s) and ",
331 * i2, " element(s):")')
332 1 ids(i), num_attr(i), num_elem_in_block(i)
334 write (iout, 69) attrib_names(j),
335 * (attrib(k),k= j, num_attr(i)*num_elem_in_block(i),
338 69
format(a32,
" = ", 10(f6.4,2x))
344 if (num_node_sets .gt. 0)
then
345 call exgnsi (exoid, ids, ierr)
346 write (iout,
'(/"after exgnsi, error = ", i3)' ) ierr
349 do 100 i = 1, num_node_sets
351 call exgnp (exoid, ids(i), num_nodes_in_set,
352 1 num_df_in_set, ierr)
353 write (iout,
'(/"after exgnp, error = ", i3)' ) ierr
355 write (iout,
'(/"node set ", i2, " parameters: ",/
356 2 "num_nodes = ", i2)') ids(i), num_nodes_in_set
358 call exgns (exoid, ids(i), node_list, ierr)
359 write (iout,
'(/"after exgns, error = ", i3)' ) ierr
361 if (num_df_in_set .gt. 0)
then
362 call exgnsd (exoid, ids(i), dist_fact, ierr)
363 write (iout,
'(/"after exgnsd, error = ", i3)' ) ierr
366 write (iout,
'(/"node list for node set ", i2)') ids(i)
368 do 80 j = 1, num_nodes_in_set
369 write (iout,
'(i3)') node_list(j)
372 if (num_df_in_set .gt. 0)
then
373 write (iout,
'("dist factors for node set ", i2)') ids(i)
374 do 90 j = 1, num_nodes_in_set
375 write (iout,
'(f5.2)') dist_fact(j)
378 write (iout,
'("no dist factors for node set ", i2)') ids(i)
385 num_props =
exinqi(exoid, exnnsp)
387 1
'(/"There are ",i2," properties for each node set")')
391 call exgpn(exoid, exnset, prop_names, ierr)
392 write (iout,
'("after exgpn, error = ", i3)' ) ierr
394 do 107 i = 1, num_props
395 do 105 j = 1, num_node_sets
396 call exgp(exoid,exnset,ids(j),prop_names(i),prop_value,ierr)
397 if (ierr .eq. 0)
then
399 1
'("node set ",i2," property(",i2,"): ",a," = ",i5)' )
400 2 j, i, prop_names(i), prop_value
402 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
411 num_node_sets =
exinqi(exoid, exnods)
412 if (num_node_sets .gt. 0)
then
413 list_len =
exinqi(exoid, exnsnl)
414 write(iout,
'(/"after EXNSNL =",i3," exinq, error = ",i3)')
417 list_len =
exinqi(exoid, exnsdf)
418 write(iout,
'(/"after EXNSDF =",i3," exinq, error = ",i3)')
421 call exgcns (exoid, ids, num_nodes_per_set, num_df_per_set,
422 1 node_ind, df_ind, node_list, dist_fact, ierr)
423 write (iout,
'(/"after exgcns, error = ", i3)' ) ierr
425 write (iout,
'(/"concatenated node set info")')
427 write (iout,
'("ids = ")')
429 do 110 i = 1, num_node_sets
430 write (iout,
'(i3)') ids(i)
433 write (iout,
'("num_nodes_per_set = ")')
435 do 120 i = 1, num_node_sets
436 write (iout,
'(i3)') num_nodes_per_set(i)
439 write (iout,
'("node_ind = ")')
441 do 130 i = 1, num_node_sets
442 write (iout,
'(i3)') node_ind(i)
445 write (iout,
'("node_list = ")')
447 do 140 i = 1, list_len
448 write (iout,
'(i3)') node_list(i)
451 write (iout,
'("dist_fact = ")')
453 do 150 i = 1, list_len
454 write (iout,
'(f5.3)') dist_fact(i)
461 if (num_side_sets .gt. 0)
then
462 call exgssi (exoid, ids, ierr)
463 write (iout,
'(/"after exgssi, error = ", i3)' ) ierr
466 do 190 i = 1, num_side_sets
468 call exgsp (exoid, ids(i), num_sides_in_set, num_df_in_set,
470 write (iout,
'(/"after exgsp, error = ", i3)' ) ierr
472 write (iout,
'("side set ", i2, " parameters:",/
473 2 "num_sides = ", i3,/
474 3 "num_dist_factors = ", i3)')
475 4 ids(i), num_sides_in_set, num_df_in_set
477 call exgss (exoid, ids(i), elem_list, side_list, ierr)
478 write (iout,
'(/"after exgss, error = ", i3)' ) ierr
480 call exgssn (exoid, ids(i), node_ctr_list, node_list, ierr)
481 write (iout,
'(/"after exgssn, error = ", i3)' ) ierr
483 if (num_df_in_set .gt. 0)
then
484 call exgssd (exoid, ids(i), dist_fact, ierr)
485 write (iout,
'(/"after exgssd, error = ", i3)' ) ierr
488 write (iout,
'(/"element list for side set ", i2)') ids(i)
490 num_elem_in_set = num_sides_in_set
491 do 160 j = 1, num_elem_in_set
492 write (iout,
'(i3)') elem_list(j)
495 write (iout,
'("side list for side set ", i2)') ids(i)
497 do 170 j = 1, num_sides_in_set
498 write (iout,
'(i3)') side_list(j)
502 write (iout,
'("node list for side set ", i2)') ids(i)
503 do 178 k=1, num_elem_in_set
504 do 175 j=1, node_ctr_list(k)
505 write (iout,
'(i3)') node_list(j+node_ctr)
507 node_ctr = node_ctr+node_ctr_list(k)
510 if (num_df_in_set .gt. 0)
then
511 write (iout,
'("dist factors for side set ", i2)') ids(i)
512 do 180 j = 1, num_df_in_set
513 write (iout,
'(f6.3)') dist_fact(j)
516 write (iout,
'("no dist factors for side set ", i2)') ids(i)
523 num_props =
exinqi(exoid, exnssp)
525 1
'(/"There are ",i2," properties for each side set")')
529 call exgpn(exoid, exsset, prop_names, ierr)
530 write (iout,
'("after exgpn, error = ", i3)' ) ierr
532 do 197 i = 1, num_props
533 do 195 j = 1, num_side_sets
534 call exgp(exoid, exsset,ids(j),prop_names(i),prop_value,ierr)
535 if (ierr .eq. 0)
then
537 1
'("side set ",i2," property(",i2,"): ",a," = ",i5)' )
538 2 j, i, prop_names(i), prop_value
540 write (iout,
'(/"after exgp, error = ", i3)' ) ierr
545 num_side_sets =
exinqi(exoid, exsids)
546 write (iout,
'(/"after exinq: EXSIDS =",i3,", error = ",i3)')
549 if (num_side_sets .gt. 0)
then
550 elem_list_len =
exinqi(exoid, exssel)
551 write (iout,
'(/"after exinq: EXSSEL =",i3,", error = ",i3)')
554 node_list_len =
exinqi(exoid, exssnl)
555 write (iout,
'(/"after exinq: EXSSNL =",i3,", error = ",i3)')
558 df_list_len =
exinqi(exoid, exssdf)
559 write (iout,
'(/"after exinq: EXSSDF =",i3,", error = ",i3)')
565 call exgcss (exoid, ids, num_elem_per_set, num_df_per_set,
566 1 elem_ind, df_ind, elem_list, side_list, dist_fact,
568 write (iout,
'(/"after exgcss, error = ", i3)' ) ierr
570 write (iout,
'("concatenated side set info")')
572 write (iout,
'("ids = ")')
574 do 200 i = 1, num_side_sets
575 write (iout,
'(i3)') ids(i)
578 write (iout,
'("num_elem_per_set = ")')
580 do 210 i = 1, num_side_sets
581 write (iout,
'(i3)') num_elem_per_set(i)
584 write (iout,
'("num_df_per_set = ")')
586 do 220 i = 1, num_side_sets
587 write (iout,
'(i3)') num_df_per_set(i)
590 write (iout,
'("elem_ind = ")')
592 do 230 i = 1, num_side_sets
593 write (iout,
'(i3)') elem_ind(i)
596 write (iout,
'("df_ind = ")')
598 do 240 i = 1, num_side_sets
599 write (iout,
'(i3)') df_ind(i)
602 write (iout,
'("elem_list = ")')
604 do 250 i = 1, elem_list_len
605 write (iout,
'(i3)') elem_list(i)
608 write (iout,
'("side_list = ")')
610 do 260 i = 1, elem_list_len
611 write (iout,
'(i3)') side_list(i)
614 write (iout,
'("dist_fact = ")')
616 do 270 i = 1, df_list_len
617 write (iout,
'(f6.3)') dist_fact(i)
624 num_qa_rec =
exinqi(exoid, exqa)
625 call exgqa (exoid, qa_record, ierr)
626 write (iout,
'(/"after exgqa, error = ", i3)' ) ierr
628 write (iout,
'("QA records = ")')
630 do 290 i = 1, num_qa_rec
632 write (iout,
'(a)') qa_record(j,i)
639 num_info =
exinqi(exoid, exinfo)
640 call exginf (exoid, inform, ierr)
641 write (iout,
'(/"after exginf, error = ", i3)' ) ierr
643 write (iout,
'("info records = ")')
645 do 300 i = 1, num_info
646 write (iout,
'(a81)') inform(i)
652 call exgvp (exoid,
"g", num_glo_vars, ierr)
653 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
655 call exgvnm (exoid,
"g", 1, var_names(1), ierr)
656 write (iout,
'(/"after exgvnm, error = ", i3)' ) ierr
658 write (iout,
'("There are ",i2," global variables; their names ",
659 1 "are :")') num_glo_vars
661 do 320 i = 1, num_glo_vars
662 write (iout,
'(a9)') var_names(i)
668 call exgvp (exoid,
"n", num_nod_vars, ierr)
669 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
671 call exgvan (exoid,
"n", num_nod_vars, var_names, ierr)
672 write (iout,
'(/"after exgvan, error = ", i3)' ) ierr
674 write (iout,
'("There are ",i2," nodal variables; their names ",
675 1 "are :")') num_nod_vars
677 do 330 i = 1, num_nod_vars
678 write (iout,
'(a9)') var_names(i)
684 call exgvp (exoid,
"e", num_ele_vars, ierr)
685 write (iout,
'(/"after exgvp, error = ", i3)' ) ierr
687 call exgvan (exoid,
"e", num_ele_vars, var_names, ierr)
688 write (iout,
'(/"after exgvan, error = ", i3)' ) ierr
690 write (iout,
'("There are ",i2," element variables; their names ",
691 1 "are :")') num_ele_vars
693 do 340 i = 1, num_ele_vars
694 write (iout,
'(a9)') var_names(i)
700 call exgvtt (exoid, num_elem_blk, num_ele_vars, truth_tab, ierr)
701 write (iout,
'(/"after exgvtt, error = ", i3)' ) ierr
703 write (iout,
'("This is the element variable truth table:")')
705 do 360 i = 1, num_elem_blk
706 do 350 j = 1, num_ele_vars
707 write (iout,
'(i2)') truth_tab(j,i)
714 num_time_steps =
exinqi(exoid, extims)
715 write (iout,
'("There are ",i2," time steps in the database.")')
721 call exgtim (exoid, time_step, time_value, ierr)
722 write (iout,
'(/"after exgtim, error = ", i3)' ) ierr
724 write (iout,
'("time value at time step ",i2," = ", f5.3)')
725 1 time_step, time_value
729 call exgatm (exoid, time_values, ierr)
730 write (iout,
'(/"after exgatm, error = ", i3)' ) ierr
732 write (iout,
'("time values at all time steps are:")')
734 do 370 i = 1, num_time_steps
735 write (iout,
'(f5.3)') time_values(i)
744 call exggv (exoid, time_step, num_glo_vars, var_values, ierr)
745 write (iout,
'(/"after exggv, error = ", i3)' ) ierr
747 write (iout,
'("global variable values at time step ",i2)')
750 do 400 i = 1, num_glo_vars
751 write (iout,
'(f5.3)') var_values(i)
757 call exggvt (exoid, var_index, beg_time, end_time, var_values,
759 write (iout,
'(/"after exggvt, error = ", i3)' ) ierr
761 write (iout,
'("global variable ",i2," values through time:")')
764 do 410 i = 1, num_time_steps
765 write (iout,
'(f5.3)') var_values(i)
771 call exgnv (exoid, time_step, var_index, num_nodes, var_values,
773 write (iout,
'(/"after exgnv, error = ", i3)' ) ierr
775 write (iout,
'("nodal variable ",i2," values at time step ",i2)')
776 1 var_index, time_step
778 do 420 i = 1, num_nodes
779 write (iout,
'(f5.3)') var_values(i)
787 call exgnvt (exoid, var_index, node_num, beg_time, end_time,
789 write (iout,
'(/"after exgnvt, error = ", i3)' ) ierr
791 write (iout,
'("nodal variable ",i2," values for node ",i2,
792 1 " through time:")') var_index, node_num
794 do 430 i = 1, num_time_steps
795 write (iout,
'(f5.3)') var_values(i)
801 call exgebi (exoid, ids, ierr)
802 write (iout,
'(/"after exgebi, error = ", i3)' ) ierr
804 do 450 i = 1, num_elem_blk
806 call exgev (exoid, time_step, var_index, ids(i),
807 1 num_elem_in_block(i), var_values, ierr)
808 write (iout,
'(/"after exgev, error = ", i3)' ) ierr
810 if (ierr .eq. 0)
then
811 write (iout,
'("element variable ",i2," values of element ",
812 1 "block ",i2," at time step ",i2)')
813 2 var_index, ids(i), time_step
816 do 440 j = 1, num_elem_in_block(i)
817 write (iout,
'(f6.3)') var_values(j)
828 call exgevt (exoid, var_index, elem_num, beg_time, end_time,
830 write (iout,
'(/"after exgevt, error = ", i3)' ) ierr
832 write (iout,
'("element variable ",i2," values for element ",i2,
833 1 " through time:")') var_index, elem_num
835 do 460 i = 1, num_time_steps
836 write (iout,
'(f5.3)') var_values(i)
840 write (iout,
'(/"after exclos, error = ", i3)' ) ierr