You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
910 lines
26 KiB
910 lines
26 KiB
2 years ago
|
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
||
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
||
|
C NTESS, the U.S. Government retains certain rights in this software.
|
||
|
C
|
||
|
C See packages/seacas/LICENSE for details
|
||
|
|
||
|
program testwtm
|
||
|
|
||
|
c This is a test program for the Fortran binding of the EXODUS II
|
||
|
c database write routines. It tests multiple simultaneous output files.
|
||
|
|
||
|
c 09/07/93 V.R. Yarberry - Revised for 2.00 API
|
||
|
|
||
|
include 'exodusII.inc'
|
||
|
|
||
|
integer iin, iout
|
||
|
integer exoid, num_dim, num_nodes, num_elem, num_elem_blk
|
||
|
integer exoidm(10),num_dim2,num_nodes2,num_elem2,num_elem_blk2
|
||
|
integer num_elem_in_block(2), num_node_sets
|
||
|
integer num_elem_in_block2(2), num_node_sets2
|
||
|
integer num_side_sets
|
||
|
integer num_side_sets2
|
||
|
integer nexofiles
|
||
|
integer i, j, k, m, elem_map(2), connect(4)
|
||
|
integer elem_map2(2), connect2(4)
|
||
|
integer node_list(10), elem_list(10), side_list(10)
|
||
|
integer node_list2(10), elem_list2(10), side_list2(10)
|
||
|
integer ebids(2),ids(2), num_nodes_per_set(2), num_elem_per_set(2)
|
||
|
integer ebids2(2)
|
||
|
integer num_df_per_set(2)
|
||
|
integer df_ind(2), node_ind(2), elem_ind(2), num_qa_rec, num_info
|
||
|
integer num_qa_rec2,num_info2
|
||
|
integer num_glo_vars, num_nod_vars, num_ele_vars
|
||
|
integer num_glo_vars2, num_nod_vars2, num_ele_vars2
|
||
|
integer truth_tab(3,2)
|
||
|
integer whole_time_step, num_time_steps
|
||
|
integer cpu_word_size, io_word_size
|
||
|
integer prop_array(2)
|
||
|
|
||
|
real glob_var_vals(10), nodal_var_vals(8)
|
||
|
real time_value, elem_var_vals(20)
|
||
|
real time_value2
|
||
|
real x(8), y(8), dummy(1)
|
||
|
real x2(8), y2(8)
|
||
|
real attrib(1), dist_fact(8)
|
||
|
real attrib2(1), dist_fact2(8)
|
||
|
|
||
|
character*(MXLNLN) title
|
||
|
character*(MXLNLN) title2
|
||
|
character*(MXSTLN) coord_names(3)
|
||
|
character*(MXSTLN) coord_names2(3)
|
||
|
character*(MXSTLN) cname
|
||
|
character*(MXSTLN) cname2
|
||
|
character*(MXSTLN) var_names(3)
|
||
|
character*(MXSTLN) var_names2(3)
|
||
|
character*(MXSTLN) qa_record(4,2)
|
||
|
character*(MXSTLN) qa_record2(4,2)
|
||
|
character*(MXLNLN) inform(3)
|
||
|
character*(MXLNLN) inform2(3)
|
||
|
character*(MXSTLN) prop_names(2)
|
||
|
character*(MXSTLN) exofname
|
||
|
|
||
|
data iin /5/, iout /6/, nexofiles /5/
|
||
|
|
||
|
c create EXODUS II files
|
||
|
|
||
|
cpu_word_size = 0
|
||
|
io_word_size = 4
|
||
|
|
||
|
exoid = excre ("test.exo",
|
||
|
1 EXCLOB, cpu_word_size, io_word_size, ierr)
|
||
|
write (iout,'("after excre for test.exo,id: ",i4,", err=",i3)')
|
||
|
1 exoid, ierr
|
||
|
write (iout,'(" cpu word size: ",i4," io word size: ",i4)')
|
||
|
1 cpu_word_size, io_word_size
|
||
|
write (iout, '("after excre, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1000 i=1,nexofiles
|
||
|
write(exofname,'("test",i1,".exo")')i
|
||
|
exoidm(i)= excre (exofname,
|
||
|
1 EXCLOB, cpu_word_size, io_word_size, ierr)
|
||
|
write (iout,
|
||
|
1 '("after excre for test",i1,".exo,id: ",i4,", err=",i3)')
|
||
|
2 i, exoidm(i), ierr
|
||
|
write (iout, '("after excre (",i1,"), error = ", i4)' )
|
||
|
1 i, ierr
|
||
|
1000 continue
|
||
|
|
||
|
c initialize file with parameters
|
||
|
|
||
|
title = "This is test m"
|
||
|
num_dim = 2
|
||
|
num_nodes = 8
|
||
|
num_elem = 2
|
||
|
num_elem_blk = 2
|
||
|
num_node_sets = 2
|
||
|
num_side_sets = 2
|
||
|
|
||
|
call expini (exoid, title, num_dim, num_nodes,
|
||
|
1 num_elem, num_elem_blk, num_node_sets,
|
||
|
2 num_side_sets, ierr)
|
||
|
|
||
|
write (iout, '("after expini, error = ", i4)' ) ierr
|
||
|
|
||
|
title2 = "This is test m"
|
||
|
num_dim2 = 2
|
||
|
num_nodes2 = 8
|
||
|
num_elem2 = 2
|
||
|
num_elem_blk2 = 2
|
||
|
num_node_sets2 = 2
|
||
|
num_side_sets2 = 2
|
||
|
|
||
|
do 1001 i=1,nexofiles
|
||
|
call expini (exoidm(i), title2, num_dim2, num_nodes2,
|
||
|
1 num_elem2, num_elem_blk2, num_node_sets2,
|
||
|
2 num_side_sets2, ierr)
|
||
|
|
||
|
write (iout, '("after expini (",i1,"), error = ", i4)' )
|
||
|
1 i, ierr
|
||
|
1001 continue
|
||
|
|
||
|
c write nodal coordinates values and names to database
|
||
|
|
||
|
x(1) = 0.0
|
||
|
x(2) = 1.0
|
||
|
x(3) = 1.0
|
||
|
x(4) = 0.0
|
||
|
x(5) = 1.0
|
||
|
x(6) = 2.0
|
||
|
x(7) = 2.0
|
||
|
x(8) = 1.0
|
||
|
y(1) = 0.0
|
||
|
y(2) = 0.0
|
||
|
y(3) = 1.0
|
||
|
y(4) = 1.0
|
||
|
y(5) = 0.0
|
||
|
y(6) = 0.0
|
||
|
y(7) = 1.0
|
||
|
y(8) = 1.0
|
||
|
|
||
|
call expcor (exoid, x, y, dummy, ierr)
|
||
|
write (iout, '("after expcor, error = ", i4)' ) ierr
|
||
|
|
||
|
x2(1) = 0.0
|
||
|
x2(2) = 1.0
|
||
|
x2(3) = 1.0
|
||
|
x2(4) = 0.0
|
||
|
x2(5) = 1.0
|
||
|
x2(6) = 2.0
|
||
|
x2(7) = 2.0
|
||
|
x2(8) = 1.0
|
||
|
y2(1) = 0.0
|
||
|
y2(2) = 0.0
|
||
|
y2(3) = 1.0
|
||
|
y2(4) = 1.0
|
||
|
y2(5) = 0.0
|
||
|
y2(6) = 0.0
|
||
|
y2(7) = 1.0
|
||
|
y2(8) = 1.0
|
||
|
|
||
|
do 1002 i=1,nexofiles
|
||
|
call expcor (exoidm(i), x2, y2, dummy, ierr)
|
||
|
write (iout, '("after expcor (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1002 continue
|
||
|
|
||
|
coord_names(1) = "xcoor"
|
||
|
coord_names(2) = "ycoor"
|
||
|
|
||
|
call expcon (exoid, coord_names, ierr)
|
||
|
write (iout, '("after expcon, error = ", i4)' ) ierr
|
||
|
|
||
|
coord_names2(1) = "xcoor"
|
||
|
coord_names2(2) = "ycoor"
|
||
|
|
||
|
do 1003 i=1,nexofiles
|
||
|
call expcon (exoidm(i), coord_names2, ierr)
|
||
|
write (iout, '("after expcon (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1003 continue
|
||
|
|
||
|
c write element order map
|
||
|
|
||
|
do 10 i = 1, num_elem
|
||
|
elem_map(i) = i
|
||
|
10 continue
|
||
|
|
||
|
call expmap (exoid, elem_map, ierr)
|
||
|
write (iout, '("after expmap, error = ", i4)' ) ierr
|
||
|
|
||
|
do 12 i = 1, num_elem2
|
||
|
elem_map2(i) = i
|
||
|
12 continue
|
||
|
|
||
|
do 1004 i=1,nexofiles
|
||
|
call expmap (exoidm(i), elem_map2, ierr)
|
||
|
write (iout, '("after expmap (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1004 continue
|
||
|
|
||
|
c write element block parameters
|
||
|
|
||
|
num_elem_in_block(1) = 1
|
||
|
num_elem_in_block(2) = 1
|
||
|
|
||
|
ebids(1) = 10
|
||
|
ebids(2) = 11
|
||
|
|
||
|
cname = "quad"
|
||
|
|
||
|
call expelb (exoid,ebids(1),cname,num_elem_in_block(1)
|
||
|
1 ,4,1,ierr)
|
||
|
write (iout, '("after expelb, error = ", i4)' ) ierr
|
||
|
|
||
|
call expelb (exoid,ebids(2),cname,num_elem_in_block(2),
|
||
|
1 4,1,ierr)
|
||
|
write (iout, '("after expelb, error = ", i4)' ) ierr
|
||
|
|
||
|
num_elem_in_block2(1) = 1
|
||
|
num_elem_in_block2(2) = 1
|
||
|
|
||
|
ebids2(1) = 10
|
||
|
ebids2(2) = 11
|
||
|
|
||
|
cname2 = "quad2"
|
||
|
|
||
|
do 1005 i=1,nexofiles
|
||
|
call expelb(exoidm(i),ebids2(1),cname2,num_elem_in_block2(1),
|
||
|
1 4,1,ierr)
|
||
|
write (iout, '("after expelb (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expelb(exoidm(i),ebids2(2),cname2,num_elem_in_block2(2),
|
||
|
1 4,1,ierr)
|
||
|
write (iout, '("after expelb (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1005 continue
|
||
|
|
||
|
c write element block properties
|
||
|
|
||
|
prop_names(1) = "MATL"
|
||
|
prop_names(2) = "DENSITY"
|
||
|
call exppn(exoid,EXEBLK,2,prop_names,ierr)
|
||
|
write (iout, '("after exppn, error = ", i4)' ) ierr
|
||
|
|
||
|
call expp(exoid, EXEBLK, ebids(1), "MATL", 10, ierr)
|
||
|
write (iout, '("after expp, error = ", i4)' ) ierr
|
||
|
call expp(exoid, EXEBLK, ebids(2), "MATL", 20, ierr)
|
||
|
write (iout, '("after expp, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1006 i=1,nexofiles
|
||
|
call exppn(exoidm(i),EXEBLK,2,prop_names,ierr)
|
||
|
write (iout, '("after exppn (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expp(exoidm(i), EXEBLK, ebids(1), "MATL", 10, ierr)
|
||
|
write (iout, '("after expp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
call expp(exoidm(i), EXEBLK, ebids(2), "MATL", 20, ierr)
|
||
|
write (iout, '("after expp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1006 continue
|
||
|
|
||
|
c write element connectivity
|
||
|
|
||
|
connect(1) = 1
|
||
|
connect(2) = 2
|
||
|
connect(3) = 3
|
||
|
connect(4) = 4
|
||
|
|
||
|
call expelc (exoid, ebids(1), connect, ierr)
|
||
|
write (iout, '("after expelc, error = ", i4)' ) ierr
|
||
|
|
||
|
connect(1) = 5
|
||
|
connect(2) = 6
|
||
|
connect(3) = 7
|
||
|
connect(4) = 8
|
||
|
|
||
|
call expelc (exoid, ebids(2), connect, ierr)
|
||
|
write (iout, '("after expelc, error = ", i4)' ) ierr
|
||
|
|
||
|
connect2(1) = 1
|
||
|
connect2(2) = 2
|
||
|
connect2(3) = 3
|
||
|
connect2(4) = 4
|
||
|
|
||
|
do 1007 i=1,nexofiles
|
||
|
call expelc (exoidm(i), ebids2(1), connect2, ierr)
|
||
|
write (iout, '("after expelc (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1007 continue
|
||
|
|
||
|
connect2(1) = 5
|
||
|
connect2(2) = 6
|
||
|
connect2(3) = 7
|
||
|
connect2(4) = 8
|
||
|
|
||
|
do 1008 i=1,nexofiles
|
||
|
call expelc (exoidm(i), ebids2(2), connect2, ierr)
|
||
|
write (iout, '("after expelc (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1008 continue
|
||
|
|
||
|
c write element block attributes
|
||
|
|
||
|
attrib(1) = 3.14159
|
||
|
call expeat (exoid, ebids(1), attrib, ierr)
|
||
|
write (iout, '("after expeat, error = ", i4)' ) ierr
|
||
|
|
||
|
attrib(1) = 6.14159
|
||
|
call expeat (exoid, ebids(2), attrib, ierr)
|
||
|
write (iout, '("after expeat, error = ", i4)' ) ierr
|
||
|
|
||
|
attrib2(1) = 3.
|
||
|
do 1009 i=1,nexofiles
|
||
|
call expeat (exoidm(i), ebids2(1), attrib2, ierr)
|
||
|
write (iout, '("after expeat (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1009 continue
|
||
|
|
||
|
attrib2(1) = 6.
|
||
|
do 1010 i=1,nexofiles
|
||
|
call expeat (exoidm(i), ebids2(2), attrib2, ierr)
|
||
|
write (iout, '("after expeat (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1010 continue
|
||
|
|
||
|
c write individual node sets
|
||
|
|
||
|
call expnp (exoid, 20, 5, 5, ierr)
|
||
|
write (iout, '("after expnp, error = ", i4)' ) ierr
|
||
|
|
||
|
node_list(1) = 100
|
||
|
node_list(2) = 101
|
||
|
node_list(3) = 102
|
||
|
node_list(4) = 103
|
||
|
node_list(5) = 104
|
||
|
|
||
|
dist_fact(1) = 1.0
|
||
|
dist_fact(2) = 2.0
|
||
|
dist_fact(3) = 3.0
|
||
|
dist_fact(4) = 4.0
|
||
|
dist_fact(5) = 5.0
|
||
|
|
||
|
call expns (exoid, 20, node_list, ierr)
|
||
|
write (iout, '("after expns, error = ", i4)' ) ierr
|
||
|
call expnsd (exoid, 20, dist_fact, ierr)
|
||
|
write (iout, '("after expnsd, error = ", i4)' ) ierr
|
||
|
|
||
|
call expnp (exoid, 21, 3, 3, ierr)
|
||
|
write (iout, '("after expnp, error = ", i4)' ) ierr
|
||
|
|
||
|
node_list(1) = 200
|
||
|
node_list(2) = 201
|
||
|
node_list(3) = 202
|
||
|
|
||
|
dist_fact(1) = 1.1
|
||
|
dist_fact(2) = 2.1
|
||
|
dist_fact(3) = 3.1
|
||
|
|
||
|
call expns (exoid, 21, node_list, ierr)
|
||
|
write (iout, '("after expns, error = ", i4)' ) ierr
|
||
|
call expnsd (exoid, 21, dist_fact, ierr)
|
||
|
write (iout, '("after expnsd, error = ", i4)' ) ierr
|
||
|
|
||
|
prop_names(1) = "FACE"
|
||
|
call expp(exoid, EXNSET, 20, prop_names(1), 4, ierr)
|
||
|
write (iout, '("after expp, error = ", i4)' ) ierr
|
||
|
|
||
|
call expp(exoid, EXNSET, 21, prop_names(1), 5, ierr)
|
||
|
write (iout, '("after expp, error = ", i4)' ) ierr
|
||
|
|
||
|
prop_array(1) = 1000
|
||
|
prop_array(2) = 2000
|
||
|
|
||
|
prop_names(1) = "VELOCITY"
|
||
|
call exppa(exoid, EXNSET, prop_names(1), prop_array, ierr)
|
||
|
write (iout, '("after exppa, error = ", i4)' ) ierr
|
||
|
|
||
|
C**** file 2
|
||
|
|
||
|
node_list2(1) = 2100
|
||
|
node_list2(2) = 2101
|
||
|
node_list2(3) = 2102
|
||
|
node_list2(4) = 2103
|
||
|
node_list2(5) = 2104
|
||
|
|
||
|
dist_fact2(1) = 21.0
|
||
|
dist_fact2(2) = 22.0
|
||
|
dist_fact2(3) = 23.0
|
||
|
dist_fact2(4) = 24.0
|
||
|
dist_fact2(5) = 25.0
|
||
|
|
||
|
do 1011 i=1,nexofiles
|
||
|
call expnp (exoidm(i), 20, 5, 5, ierr)
|
||
|
write (iout, '("after expnp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expns (exoidm(i), 20, node_list, ierr)
|
||
|
write (iout, '("after expns (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
call expnsd (exoidm(i), 20, dist_fact, ierr)
|
||
|
write (iout, '("after expnsd (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expnp (exoidm(i), 21, 3, 3, ierr)
|
||
|
write (iout, '("after expnp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1011 continue
|
||
|
|
||
|
node_list2(1) = 2200
|
||
|
node_list2(2) = 2201
|
||
|
node_list2(3) = 2202
|
||
|
|
||
|
dist_fact2(1) = 21.1
|
||
|
dist_fact2(2) = 22.1
|
||
|
dist_fact2(3) = 23.1
|
||
|
|
||
|
do 1012 i=1,nexofiles
|
||
|
call expns (exoidm(i), 21, node_list, ierr)
|
||
|
write (iout, '("after expns (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
call expnsd (exoidm(i), 21, dist_fact, ierr)
|
||
|
write (iout, '("after expnsd (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1012 continue
|
||
|
|
||
|
c write concatenated node sets; this produces the same information as
|
||
|
c the above code which writes individual node sets
|
||
|
|
||
|
ids(1) = 20
|
||
|
ids(2) = 21
|
||
|
|
||
|
num_nodes_per_set(1) = 5
|
||
|
num_nodes_per_set(2) = 3
|
||
|
|
||
|
node_ind(1) = 1
|
||
|
node_ind(2) = 6
|
||
|
|
||
|
node_list(1) = 100
|
||
|
node_list(2) = 101
|
||
|
node_list(3) = 102
|
||
|
node_list(4) = 103
|
||
|
node_list(5) = 104
|
||
|
node_list(6) = 200
|
||
|
node_list(7) = 201
|
||
|
node_list(8) = 202
|
||
|
|
||
|
dist_fact(1) = 1.0
|
||
|
dist_fact(2) = 2.0
|
||
|
dist_fact(3) = 3.0
|
||
|
dist_fact(4) = 4.0
|
||
|
dist_fact(5) = 5.0
|
||
|
dist_fact(6) = 1.1
|
||
|
dist_fact(7) = 2.1
|
||
|
dist_fact(8) = 3.1
|
||
|
|
||
|
c call expcns (exoid, ids, num_nodes_per_set, node_ind, node_list,
|
||
|
c 1 dist_fact, ierr)
|
||
|
c write (iout, '("after expcns, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1013 i=1,nexofiles
|
||
|
prop_names(1) = "FACE"
|
||
|
call expp(exoidm(i), EXNSET, 20, prop_names(1), 4, ierr)
|
||
|
write (iout, '("after expp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expp(exoidm(i), EXNSET, 21, prop_names(1), 5, ierr)
|
||
|
write (iout, '("after expp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
prop_array(1) = 1000
|
||
|
prop_array(2) = 2000
|
||
|
|
||
|
prop_names(1) = "VELOCITY"
|
||
|
call exppa(exoidm(i), EXNSET, prop_names(1), prop_array, ierr)
|
||
|
write (iout, '("after exppa (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1013 continue
|
||
|
|
||
|
c write individual side sets
|
||
|
|
||
|
elem_list(1) = 11
|
||
|
elem_list(2) = 12
|
||
|
|
||
|
node_list(1) = 1
|
||
|
node_list(2) = 2
|
||
|
node_list(3) = 3
|
||
|
node_list(4) = 4
|
||
|
|
||
|
dist_fact(1) = 30.0
|
||
|
dist_fact(2) = 30.1
|
||
|
dist_fact(3) = 30.2
|
||
|
dist_fact(4) = 30.3
|
||
|
|
||
|
call expsp (exoid, 30, 2, 4, ierr)
|
||
|
write (iout, '("after expsp, error = ", i4)' ) ierr
|
||
|
|
||
|
call expss (exoid, 30, elem_list, node_list, ierr)
|
||
|
write (iout, '("after expss, error = ", i4)' ) ierr
|
||
|
|
||
|
call expssd (exoid, 30, dist_fact, ierr)
|
||
|
write (iout, '("after expssd, error = ", i4)' ) ierr
|
||
|
|
||
|
elem_list(1) = 13
|
||
|
elem_list(2) = 14
|
||
|
|
||
|
side_list(1) = 3
|
||
|
side_list(2) = 4
|
||
|
|
||
|
dist_fact(1) = 31.0
|
||
|
dist_fact(2) = 31.1
|
||
|
dist_fact(3) = 31.2
|
||
|
dist_fact(4) = 31.3
|
||
|
|
||
|
call expsp (exoid, 31, 2, 4, ierr)
|
||
|
write (iout, '("after expsp, error = ", i3)' ) ierr
|
||
|
|
||
|
call expss (exoid, 31, elem_list, side_list, ierr)
|
||
|
write (iout, '("after expss, error = ", i3)' ) ierr
|
||
|
|
||
|
call expssd (exoid, 31, dist_fact, ierr)
|
||
|
write (iout, '("after expssd, error = ", i3)' ) ierr
|
||
|
|
||
|
elem_list2(1) = 11
|
||
|
elem_list2(2) = 12
|
||
|
|
||
|
node_list2(1) = 1
|
||
|
node_list2(2) = 2
|
||
|
node_list2(3) = 3
|
||
|
node_list2(4) = 4
|
||
|
|
||
|
dist_fact2(1) = 1.1
|
||
|
dist_fact2(2) = 2.1
|
||
|
dist_fact2(3) = 3.1
|
||
|
dist_fact2(4) = 4.1
|
||
|
|
||
|
do 1014 i=1,nexofiles
|
||
|
call expsp (exoidm(i), 30, 2, 4, ierr)
|
||
|
write (iout, '("after expsp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expss (exoidm(i), 30, elem_list2, node_list2, ierr)
|
||
|
write (iout, '("after expss (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expssd (exoidm(i), 30, dist_fact2, ierr)
|
||
|
write (iout, '("after expssd (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1014 continue
|
||
|
|
||
|
elem_list2(1) = 13
|
||
|
elem_list2(2) = 14
|
||
|
|
||
|
side_list2(1) = 3
|
||
|
side_list2(2) = 4
|
||
|
|
||
|
dist_fact2(1) = 31.0
|
||
|
dist_fact2(2) = 31.1
|
||
|
dist_fact2(3) = 31.2
|
||
|
dist_fact2(4) = 31.3
|
||
|
|
||
|
do 1015 i=1,nexofiles
|
||
|
call expsp (exoidm(i), 31, 2, 4, ierr)
|
||
|
write (iout, '("after expsp (",i1,"), error = ", i3)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expss (exoidm(i), 31, elem_list2, side_list2, ierr)
|
||
|
write (iout, '("after expss (",i1,"), error = ", i3)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expssd (exoidm(i), 31, dist_fact2, ierr)
|
||
|
write (iout, '("after expssd (",i1,"), error = ", i3)')
|
||
|
1 i, ierr
|
||
|
1015 continue
|
||
|
|
||
|
c write concatenated side sets; this produces the same information as
|
||
|
c the above code which writes individual side sets
|
||
|
|
||
|
ids(1) = 30
|
||
|
ids(2) = 31
|
||
|
|
||
|
num_elem_per_set(1) = 2
|
||
|
num_elem_per_set(2) = 2
|
||
|
|
||
|
num_df_per_set(1) = 4
|
||
|
num_df_per_set(2) = 4
|
||
|
|
||
|
elem_ind(1) = 1
|
||
|
elem_ind(2) = 3
|
||
|
|
||
|
df_ind(1) = 1
|
||
|
df_ind(2) = 5
|
||
|
|
||
|
elem_list(1) = 11
|
||
|
elem_list(2) = 12
|
||
|
elem_list(3) = 13
|
||
|
elem_list(4) = 14
|
||
|
|
||
|
side_list(1) = 1
|
||
|
side_list(2) = 2
|
||
|
side_list(3) = 3
|
||
|
side_list(4) = 4
|
||
|
|
||
|
dist_fact(1) = 30.0
|
||
|
dist_fact(2) = 30.1
|
||
|
dist_fact(3) = 30.2
|
||
|
dist_fact(4) = 30.3
|
||
|
dist_fact(5) = 31.0
|
||
|
dist_fact(6) = 31.1
|
||
|
dist_fact(7) = 31.2
|
||
|
dist_fact(8) = 31.3
|
||
|
|
||
|
c call expcss (exoid, ids, num_elem_per_set, num_df_per_set,
|
||
|
c 1 elem_ind, df_ind, elem_list, side_list, dist_fact,
|
||
|
c 2 ierr)
|
||
|
c write (iout, '("after expcss, error = ", i4)' ) ierr
|
||
|
|
||
|
c call expcss (exoidm(i), ids, num_elem_per_set, num_df_per_set,
|
||
|
c 1 elem_ind, df_ind, elem_list, side_list, dist_fact,
|
||
|
c 2 ierr)
|
||
|
c write (iout, '("after expcss (",i1,"), error = ", i4)' ) ierr
|
||
|
|
||
|
prop_names(1) = "COLOR"
|
||
|
call expp(exoid, EXSSET, 30, prop_names(1), 100, ierr)
|
||
|
write (iout, '("after expp, error = ", i4)' ) ierr
|
||
|
|
||
|
call expp(exoid, EXSSET, 31, prop_names(1), 101, ierr)
|
||
|
write (iout, '("after expp, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1016 i=1,nexofiles
|
||
|
prop_names(1) = "COLOR"
|
||
|
call expp(exoidm(i), EXSSET, 30, prop_names(1), 100, ierr)
|
||
|
write (iout, '("after expp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
|
||
|
call expp(exoidm(i), EXSSET, 31, prop_names(1), 101, ierr)
|
||
|
write (iout, '("after expp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1016 continue
|
||
|
|
||
|
c write QA records
|
||
|
|
||
|
num_qa_rec = 2
|
||
|
|
||
|
qa_record(1,1) = "TESTWTM fortran version"
|
||
|
qa_record(2,1) = "testwtm"
|
||
|
qa_record(3,1) = "07/07/93"
|
||
|
qa_record(4,1) = "15:41:33"
|
||
|
qa_record(1,2) = "FASTQ"
|
||
|
qa_record(2,2) = "fastq"
|
||
|
qa_record(3,2) = "07/07/93"
|
||
|
qa_record(4,2) = "16:41:33"
|
||
|
|
||
|
call expqa (exoid, num_qa_rec, qa_record, ierr)
|
||
|
write (iout, '("after expqa, error = ", i4)' ) ierr
|
||
|
|
||
|
num_qa_rec2 = 2
|
||
|
|
||
|
qa_record2(1,1) = "TESTWTM fortran version"
|
||
|
qa_record2(2,1) = "testwtm"
|
||
|
qa_record2(3,1) = "07/07/93"
|
||
|
qa_record2(4,1) = "15:41:33"
|
||
|
qa_record2(1,2) = "FASTQ"
|
||
|
qa_record2(2,2) = "fastq"
|
||
|
qa_record2(3,2) = "07/07/93"
|
||
|
qa_record2(4,2) = "16:41:33"
|
||
|
|
||
|
do 1017 i=1,nexofiles
|
||
|
call expqa (exoidm(i), num_qa_rec2, qa_record2, ierr)
|
||
|
write (iout, '("after expqa (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1017 continue
|
||
|
|
||
|
c write information records
|
||
|
|
||
|
num_info = 3
|
||
|
|
||
|
inform(1) = "This is the first information record."
|
||
|
inform(2) = "This is the second information record."
|
||
|
inform(3) = "This is the third information record."
|
||
|
|
||
|
call expinf (exoid, num_info, inform, ierr)
|
||
|
write (iout, '("after expinf, error = ", i4)' ) ierr
|
||
|
|
||
|
num_info2 = 3
|
||
|
|
||
|
inform2(1) = "This is the first info record."
|
||
|
inform2(2) = "This is the second info record."
|
||
|
inform2(3) = "This is the third info record."
|
||
|
|
||
|
do 1018 i=1,nexofiles
|
||
|
call expinf (exoidm(i), num_info2, inform2, ierr)
|
||
|
write (iout, '("after expinf (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1018 continue
|
||
|
|
||
|
c write results variables parameters and names
|
||
|
|
||
|
num_glo_vars = 1
|
||
|
|
||
|
var_names(1) = "glo_vars"
|
||
|
|
||
|
call expvp (exoid, "g", num_glo_vars, ierr)
|
||
|
write (iout, '("after expvp, error = ", i4)' ) ierr
|
||
|
call expvan (exoid, "g", num_glo_vars, var_names, ierr)
|
||
|
write (iout, '("after expvan, error = ", i4)' ) ierr
|
||
|
|
||
|
num_glo_vars2 = 1
|
||
|
|
||
|
var_names2(1) = "glovars2"
|
||
|
|
||
|
do 1019 i=1,nexofiles
|
||
|
call expvp (exoidm(i), "g", num_glo_vars2, ierr)
|
||
|
write (iout, '("after expvp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
call expvan (exoidm(i), "g", num_glo_vars2, var_names2, ierr)
|
||
|
write (iout, '("after expvan (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1019 continue
|
||
|
|
||
|
num_nod_vars = 2
|
||
|
|
||
|
var_names(1) = "nod_var0"
|
||
|
var_names(2) = "nod_var1"
|
||
|
|
||
|
call expvp (exoid, "n", num_nod_vars, ierr)
|
||
|
write (iout, '("after expvp, error = ", i4)' ) ierr
|
||
|
call expvan (exoid, "n", num_nod_vars, var_names, ierr)
|
||
|
write (iout, '("after expvan, error = ", i4)' ) ierr
|
||
|
|
||
|
num_nod_vars2 = 2
|
||
|
|
||
|
var_names2(1) = "nodvar20"
|
||
|
var_names2(2) = "nodvar21"
|
||
|
|
||
|
do 1020 i=1,nexofiles
|
||
|
call expvp (exoidm(i), "n", num_nod_vars2, ierr)
|
||
|
write (iout, '("after expvp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
call expvan (exoidm(i), "n", num_nod_vars2, var_names2, ierr)
|
||
|
write (iout, '("after expvan (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1020 continue
|
||
|
|
||
|
num_ele_vars = 3
|
||
|
|
||
|
var_names(1) = "ele_var0"
|
||
|
var_names(2) = "ele_var1"
|
||
|
var_names(3) = "ele_var2"
|
||
|
|
||
|
call expvp (exoid, "e", num_ele_vars, ierr)
|
||
|
write (iout, '("after expvp, error = ", i4)' ) ierr
|
||
|
call expvan (exoid, "e", num_ele_vars, var_names, ierr)
|
||
|
write (iout, '("after expvan, error = ", i4)' ) ierr
|
||
|
|
||
|
num_ele_vars2 = 3
|
||
|
|
||
|
var_names2(1) = "elevar20"
|
||
|
var_names2(2) = "elevar21"
|
||
|
var_names2(3) = "elevar22"
|
||
|
|
||
|
do 1021 i=1,nexofiles
|
||
|
call expvp (exoidm(i), "e", num_ele_vars2, ierr)
|
||
|
write (iout, '("after expvp (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
call expvan (exoidm(i), "e", num_ele_vars2, var_names2, ierr)
|
||
|
write (iout, '("after expvan (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1021 continue
|
||
|
|
||
|
c write element variable truth table
|
||
|
|
||
|
k = 0
|
||
|
|
||
|
do 30 i = 1,num_elem_blk
|
||
|
do 20 j = 1,num_ele_vars
|
||
|
truth_tab(j,i) = 1
|
||
|
20 continue
|
||
|
30 continue
|
||
|
|
||
|
call exgebi (exoid, ebids, ierr)
|
||
|
write (iout, '("after exgebi, error = ", i4)' ) ierr
|
||
|
call expvtt (exoid, num_elem_blk, num_ele_vars, truth_tab, ierr)
|
||
|
write (iout, '("after expvtt, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1022 i=1,nexofiles
|
||
|
call exgebi (exoidm(i), ebids2, ierr)
|
||
|
write (iout, '("after exgebi (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
call expvtt (exoidm(i),num_elem_blk,num_ele_vars,truth_tab,ierr)
|
||
|
write (iout, '("after expvtt (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1022 continue
|
||
|
|
||
|
c for each time step, write the analysis results;
|
||
|
c the code below fills the arrays glob_var_vals,
|
||
|
c nodal_var_vals, and elem_var_vals with values for debugging purposes;
|
||
|
c obviously the analysis code will populate these arrays
|
||
|
|
||
|
whole_time_step = 1
|
||
|
num_time_steps = 10
|
||
|
|
||
|
do 110 iii = 1, num_time_steps
|
||
|
time_value = real(iii)/100
|
||
|
time_value2 = real(iii)/100
|
||
|
|
||
|
c write time value to regular file
|
||
|
|
||
|
call exptim (exoid, whole_time_step, time_value, ierr)
|
||
|
write (iout, '("after exptim, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1023 i=1,nexofiles
|
||
|
call exptim (exoidm(i), whole_time_step, time_value2, ierr)
|
||
|
write (iout, '("after exptim (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1023 continue
|
||
|
|
||
|
c write global variables
|
||
|
|
||
|
do 50 j = 1, num_glo_vars
|
||
|
glob_var_vals(j) = real(j+1) * time_value
|
||
|
50 continue
|
||
|
|
||
|
call expgv (exoid, whole_time_step, num_glo_vars,
|
||
|
1 glob_var_vals, ierr)
|
||
|
write (iout, '("after expgv, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1024 i=1,nexofiles
|
||
|
call expgv (exoidm(i), whole_time_step, num_glo_vars,
|
||
|
1 glob_var_vals, ierr)
|
||
|
write (iout, '("after expgv (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1024 continue
|
||
|
|
||
|
c write nodal variables
|
||
|
|
||
|
do 70 k = 1, num_nod_vars
|
||
|
do 60 j = 1, num_nodes
|
||
|
|
||
|
nodal_var_vals(j) = real(k) + (real(j) * time_value)
|
||
|
|
||
|
60 continue
|
||
|
|
||
|
call expnv (exoid, whole_time_step, k, num_nodes,
|
||
|
1 nodal_var_vals, ierr)
|
||
|
write (iout, '("after expnv, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1025 i=1,nexofiles
|
||
|
call expnv (exoidm(i), whole_time_step, k, num_nodes,
|
||
|
1 nodal_var_vals, ierr)
|
||
|
write (iout, '("after expnv (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1025 continue
|
||
|
|
||
|
70 continue
|
||
|
|
||
|
c write element variables
|
||
|
|
||
|
do 100 k = 1, num_ele_vars
|
||
|
do 90 j = 1, num_elem_blk
|
||
|
do 80 m = 1, num_elem_in_block(j)
|
||
|
|
||
|
elem_var_vals(m) = real(k+1) + real(j+1) +
|
||
|
1 (real(m)*time_value)
|
||
|
|
||
|
80 continue
|
||
|
|
||
|
call expev (exoid, whole_time_step, k, ebids(j),
|
||
|
1 num_elem_in_block(j), elem_var_vals, ierr)
|
||
|
write (iout, '("after expev, error = ", i4)' ) ierr
|
||
|
do 1026 i=1,nexofiles
|
||
|
call expev (exoidm(i), whole_time_step, k, ebids(j),
|
||
|
1 num_elem_in_block(j), elem_var_vals, ierr)
|
||
|
write (iout, '("after expev (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1026 continue
|
||
|
|
||
|
90 continue
|
||
|
100 continue
|
||
|
|
||
|
whole_time_step = whole_time_step + 1
|
||
|
|
||
|
c update the data file; this should be done at the end of every time
|
||
|
c step to ensure that no data is lost if the analysis dies
|
||
|
|
||
|
call exupda (exoid, ierr)
|
||
|
write (iout, '("after exupda, error = ", i4)' ) ierr
|
||
|
do 1027 i=1,nexofiles
|
||
|
call exupda (exoidm(i), ierr)
|
||
|
write (iout, '("after exupda (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1027 continue
|
||
|
|
||
|
110 continue
|
||
|
|
||
|
c close the EXODUS files
|
||
|
|
||
|
call exclos (exoid, ierr)
|
||
|
write (iout, '("after exclos, error = ", i4)' ) ierr
|
||
|
|
||
|
do 1028 i=1,nexofiles
|
||
|
call exclos (exoidm(i), ierr)
|
||
|
write (iout, '("after exclos (",i1,"), error = ", i4)')
|
||
|
1 i, ierr
|
||
|
1028 continue
|
||
|
|
||
|
stop
|
||
|
end
|