Exodus 8.24
Loading...
Searching...
No Matches
/exodus_for/test/testwt1.f
1C Copyright(C) 1999-2020 National Technology & Engineering Solutions
2C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
3C NTESS, the U.S. Government retains certain rights in this software.
4C
5C See packages/seacas/LICENSE for details
6
7 program testwt1
8
9c This is a test program for the Fortran binding of the EXODUS II
10c database write routines.
11
12c history -
13c Original L.A. Schoof
14c 02/25/93 V.R. Yarberry - Added error checks for file creation.
15c 03/04/93 V.R. Yarberry - Fixed bug in expvtt test, ebids was not passed
16c 08/31/93 VRY - updated to match API version 2.00
17
18 include 'exodusII.inc'
19
20 integer iin, iout
21 integer exoid, num_dim, num_nodes, num_elem, num_elem_blk
22 integer num_elem_in_block(10), num_nodes_per_elem(10),numattr(10)
23 integer num_node_sets, num_side_sets
24 integer i, j, k, m, elem_map(10), node_map(100), connect(10)
25 integer node_list(100), elem_list(100), side_list(100)
26 integer ebids(10),ids(10), num_nodes_per_set(10)
27 integer num_elem_per_set(10), num_df_per_set(10)
28 integer df_ind(10), node_ind(10), elem_ind(10)
29 integer num_qa_rec, num_info
30 integer num_glo_vars, num_nod_vars, num_ele_vars
31 integer truth_tab(3,7)
32 integer whole_time_step, num_time_steps
33 integer cpu_word_size, io_word_size
34 integer prop_array(2)
35
36 real glob_var_vals(100), nodal_var_vals(100)
37 real time_value, elem_var_vals(100)
38 real x(100), y(100), z(100)
39 real attrib(100), dist_fact(100)
40
41 character*(MXSTLN) coord_names(3)
42 character*(MXSTLN) cname
43 character*(MXSTLN) var_names(3)
44 character*(MXSTLN) qa_record(4,2)
45 character*(MXLNLN) inform(3)
46 character*(MXSTLN) prop_names(2)
47 character*(MXSTLN) attrib_names(3)
48 character*(MXSTLN) blk_names(7)
49
50 data iin /5/, iout /6/
51
52 cpu_word_size = 0
53 io_word_size = 0
54
55c create EXODUS II files
56
57 exoid = excre("test.exo",
58 1 exclob, cpu_word_size, io_word_size, ierr)
59 write (iout,'("after excre for test.exo, id: ", i4)') exoid
60 write (iout,'(" cpu word size: ",i4," io word size: ",i4)')
61 1 cpu_word_size, io_word_size
62 write (iout,'("after excre, error = ", i4)') ierr
63
64c initialize file with parameters
65
66 num_dim = 3
67 num_nodes = 28
68 num_elem = 8
69 num_elem_blk = 7
70 num_node_sets = 2
71 num_side_sets = 5
72c Uncomment the following line to test NULL side sets
73c num_side_sets = 6
74
75 call expini (exoid, "This is testwt1", num_dim, num_nodes,
76 1 num_elem, num_elem_blk, num_node_sets,
77 2 num_side_sets, ierr)
78
79 write (iout, '("after expini, error = ", i4)' ) ierr
80
81c write nodal coordinates values and names to database
82
83c Quad #1
84 x(1) = 0.0
85 x(2) = 1.0
86 x(3) = 1.0
87 x(4) = 0.0
88
89 y(1) = 0.0
90 y(2) = 0.0
91 y(3) = 1.0
92 y(4) = 1.0
93
94 z(1) = 0.0
95 z(2) = 0.0
96 z(3) = 0.0
97 z(4) = 0.0
98
99c Quad #2
100 x(5) = 1.0
101 x(6) = 2.0
102 x(7) = 2.0
103 x(8) = 1.0
104
105 y(5) = 0.0
106 y(6) = 0.0
107 y(7) = 1.0
108 y(8) = 1.0
109
110 z(5) = 0.0
111 z(6) = 0.0
112 z(7) = 0.0
113 z(8) = 0.0
114
115c Hex #1
116 x(9) = 0.0
117 x(10) = 10.0
118 x(11) = 10.0
119 x(12) = 1.0
120 x(13) = 1.0
121 x(14) = 10.0
122 x(15) = 10.0
123 x(16) = 1.0
124
125 y(9) = 0.0
126 y(10) = 0.0
127 y(11) = 0.0
128 y(12) = 0.0
129 y(13) = 10.0
130 y(14) = 10.0
131 y(15) = 10.0
132 y(16) = 10.0
133
134 z(9) = 0.0
135 z(10) = 0.0
136 z(11) =-10.0
137 z(12) =-10.0
138 z(13) = 0.0
139 z(14) = 0.0
140 z(15) =-10.0
141 z(16) =-10.0
142
143c Tetra #1
144 x(17) = 0.0
145 x(18) = 1.0
146 x(19) = 10.0
147 x(20) = 7.0
148
149 y(17) = 0.0
150 y(18) = 0.0
151 y(19) = 0.0
152 y(20) = 5.0
153
154 z(17) = 0.0
155 z(18) = 5.0
156 z(19) = 2.0
157 z(20) = 3.0
158
159c Circle #1
160 x(21) = 100.0
161 y(21) = 100.0
162 z(21) = 0.0
163
164c Sphere #1
165 x(22) = 50.0
166 y(22) = 50.0
167 z(22) = 20.0
168
169c Wedge #1
170 x(23) = 3.0
171 x(24) = 6.0
172 x(25) = 0.0
173 x(26) = 3.0
174 x(27) = 6.0
175 x(28) = 0.0
176
177 y(23) = 0.0
178 y(24) = 0.0
179 y(25) = 0.0
180 y(26) = 2.0
181 y(27) = 2.0
182 y(28) = 2.0
183
184 z(23) = 6.0
185 z(24) = 0.0
186 z(25) = 0.0
187 z(26) = 6.0
188 z(27) = 2.0
189 z(28) = 0.0
190 call expcor (exoid, x, y, z, ierr)
191 write (iout, '("after expcor, error = ", i4)' ) ierr
192
193 coord_names(1) = "xcoor"
194 coord_names(2) = "ycoor"
195 coord_names(3) = "zcoor"
196
197 call expcon (exoid, coord_names, ierr)
198 write (iout, '("after expcon, error = ", i4)' ) ierr
199
200c write node and element map parameters
201
202 n_node_maps = 1
203 n_elem_maps = 2
204
205 call expmp (exoid, n_node_maps, n_elem_maps, ierr)
206 write (iout, '("after expmp, error = ", i4)' ) ierr
207
208c write element map properties
209
210 prop_names(1) = "ORDER"
211 prop_names(2) = "NUMBER"
212 call exppn(exoid,exemap,2,prop_names,ierr)
213 write (iout, '("after exppn, error = ", i4)' ) ierr
214
215c write element order map
216
217 do 10 i = 1, num_elem
218 elem_map(i) = i
21910 continue
220
221 id = 111
222 call expem (exoid, id, elem_map, ierr)
223 write (iout, '("after expem, error = ", i4)' ) ierr
224
225 call expp(exoid, exemap, id, "ORDER", 1, ierr)
226 write (iout, '("after expp, error = ", i4)' ) ierr
227
228c write element numbering map
229
230 id = 222
231C write map an element at a time...
232 do 11 i = 1, num_elem
233 elem_map(i) = i*2
234 call exppem (exoid, id, i, 1, elem_map(i), ierr)
235 write (iout, '("after exppem, error = ", i4)' ) ierr
23611 continue
237
238 call expp(exoid, exemap, id, "NUMBER", 1, ierr)
239 write (iout, '("after expp, error = ", i4)' ) ierr
240
241c write node map properties
242
243 prop_names(1) = "NUMBER"
244 call exppn(exoid,exnmap,1,prop_names,ierr)
245 write (iout, '("after exppn, error = ", i4)' ) ierr
246
247c write node numbering map
248
249 do 13 i = 1, num_nodes
250 node_map(i) = i*3
251 13 continue
252
253 id = 333
254 call expnm (exoid, id, node_map, ierr)
255 write (iout, '("after expnm, error = ", i4)' ) ierr
256
257 call expp(exoid, exnmap, id, "NUMBER", 1, ierr)
258 write (iout, '("after expp, error = ", i4)' ) ierr
259
260c write element block parameters
261
262 num_elem_in_block(1) = 1
263 num_elem_in_block(2) = 2
264 num_elem_in_block(3) = 1
265 num_elem_in_block(4) = 1
266 num_elem_in_block(5) = 1
267 num_elem_in_block(6) = 1
268 num_elem_in_block(7) = 1
269
270 num_nodes_per_elem(1) = 4
271 num_nodes_per_elem(2) = 4
272 num_nodes_per_elem(3) = 8
273 num_nodes_per_elem(4) = 4
274 num_nodes_per_elem(5) = 1
275 num_nodes_per_elem(6) = 1
276 num_nodes_per_elem(7) = 6
277
278 ebids(1) = 10
279 ebids(2) = 11
280 ebids(3) = 12
281 ebids(4) = 13
282 ebids(5) = 14
283 ebids(6) = 15
284 ebids(7) = 16
285
286 numattr(1) = 3
287 numattr(2) = 3
288 numattr(3) = 3
289 numattr(4) = 3
290 numattr(5) = 3
291 numattr(6) = 3
292 numattr(7) = 3
293
294 blk_names(1) = "e_block_i"
295 blk_names(2) = "e_block_ii"
296 blk_names(3) = "e_block_iii"
297 blk_names(4) = "e_block_iv"
298 blk_names(5) = "e_block_v"
299 blk_names(6) = "e_block_vi"
300 blk_names(7) = "e_block_vii"
301
302 cname = "quad"
303 call expelb (exoid,ebids(1),cname,num_elem_in_block(1),
304 1 num_nodes_per_elem(1),numattr(1),ierr)
305 write (iout, '("after expelb, error = ", i4)' ) ierr
306
307 call expnam (exoid,exeblk,ebids(1),blk_names(1), ierr)
308 write (iout, '("after expnam, error = ", i4)' ) ierr
309
310 call expelb (exoid,ebids(2),cname,num_elem_in_block(2),
311 1 num_nodes_per_elem(2),numattr(2),ierr)
312 write (iout, '("after expelb, error = ", i4)' ) ierr
313
314 call expnam (exoid,exeblk,ebids(2),blk_names(2), ierr)
315 write (iout, '("after expnam, error = ", i4)' ) ierr
316
317 cname = "hex"
318 call expelb (exoid,ebids(3),cname,num_elem_in_block(3),
319 1 num_nodes_per_elem(3),numattr(3),ierr)
320 write (iout, '("after expelb, error = ", i4)' ) ierr
321
322 call expnam (exoid,exeblk,ebids(3),blk_names(3), ierr)
323 write (iout, '("after expnam, error = ", i4)' ) ierr
324
325 cname = "tetra"
326 call expelb (exoid,ebids(4),cname,num_elem_in_block(4),
327 1 num_nodes_per_elem(4),numattr(4),ierr)
328 write (iout, '("after expelb, error = ", i4)' ) ierr
329
330 call expnam (exoid,exeblk,ebids(4),blk_names(4), ierr)
331 write (iout, '("after expnam, error = ", i4)' ) ierr
332
333 cname = "circle"
334 call expelb (exoid,ebids(5),cname,num_elem_in_block(5),
335 1 num_nodes_per_elem(5),numattr(5),ierr)
336 write (iout, '("after expelb, error = ", i4)' ) ierr
337
338 call expnam (exoid,exeblk,ebids(5),blk_names(5), ierr)
339 write (iout, '("after expnam, error = ", i4)' ) ierr
340
341 cname = "sphere"
342 call expelb (exoid,ebids(6),cname,num_elem_in_block(6),
343 1 num_nodes_per_elem(6),numattr(6),ierr)
344 write (iout, '("after expelb, error = ", i4)' ) ierr
345
346 call expnam (exoid,exeblk,ebids(6),blk_names(6), ierr)
347 write (iout, '("after expnam, error = ", i4)' ) ierr
348
349 cname = "wedge"
350 call expelb (exoid,ebids(7),cname,num_elem_in_block(7),
351 1 num_nodes_per_elem(7),numattr(7),ierr)
352 write (iout, '("after expelb, error = ", i4)' ) ierr
353
354 call expnam (exoid,exeblk,ebids(7),blk_names(7), ierr)
355 write (iout, '("after expnam, error = ", i4)' ) ierr
356
357c write element block properties
358
359 prop_names(1) = "MATL"
360 prop_names(2) = "DENSITY"
361 call exppn(exoid,exeblk,2,prop_names,ierr)
362 write (iout, '("after exppn, error = ", i4)' ) ierr
363
364 call expp(exoid, exeblk, ebids(1), "MATL", 10, ierr)
365 write (iout, '("after expp, error = ", i4)' ) ierr
366 call expp(exoid, exeblk, ebids(2), "MATL", 20, ierr)
367 write (iout, '("after expp, error = ", i4)' ) ierr
368 call expp(exoid, exeblk, ebids(3), "MATL", 30, ierr)
369 write (iout, '("after expp, error = ", i4)' ) ierr
370 call expp(exoid, exeblk, ebids(4), "MATL", 40, ierr)
371 write (iout, '("after expp, error = ", i4)' ) ierr
372 call expp(exoid, exeblk, ebids(5), "MATL", 50, ierr)
373 write (iout, '("after expp, error = ", i4)' ) ierr
374 call expp(exoid, exeblk, ebids(6), "MATL", 60, ierr)
375 write (iout, '("after expp, error = ", i4)' ) ierr
376 call expp(exoid, exeblk, ebids(7), "MATL", 70, ierr)
377 write (iout, '("after expp, error = ", i4)' ) ierr
378
379c write element connectivity
380
381 connect(1) = 1
382 connect(2) = 2
383 connect(3) = 3
384 connect(4) = 4
385
386 call expelc (exoid, ebids(1), connect, ierr)
387 write (iout, '("after expelc, error = ", i4)' ) ierr
388
389 connect(1) = 1
390 connect(2) = 2
391 connect(3) = 3
392 connect(4) = 4
393 connect(5) = 5
394 connect(6) = 6
395 connect(7) = 7
396 connect(8) = 8
397
398 call expelc (exoid, ebids(2), connect, ierr)
399 write (iout, '("after expelc, error = ", i4)' ) ierr
400
401 connect(1) = 9
402 connect(2) = 10
403 connect(3) = 11
404 connect(4) = 12
405 connect(5) = 13
406 connect(6) = 14
407 connect(7) = 15
408 connect(8) = 16
409
410 call expelc (exoid, ebids(3), connect, ierr)
411 write (iout, '("after expelc, error = ", i4)' ) ierr
412
413 connect(1) = 17
414 connect(2) = 18
415 connect(3) = 19
416 connect(4) = 20
417
418 call expelc (exoid, ebids(4), connect, ierr)
419 write (iout, '("after expelc, error = ", i4)' ) ierr
420
421 connect(1) = 21
422
423 call expelc (exoid, ebids(5), connect, ierr)
424 write (iout, '("after expelc, error = ", i4)' ) ierr
425
426 connect(1) = 22
427
428 call expelc (exoid, ebids(6), connect, ierr)
429 write (iout, '("after expelc, error = ", i4)' ) ierr
430
431 connect(1) = 23
432 connect(2) = 24
433 connect(3) = 25
434 connect(4) = 26
435 connect(5) = 27
436 connect(6) = 28
437
438 call expelc (exoid, ebids(7), connect, ierr)
439 write (iout, '("after expelc, error = ", i4)' ) ierr
440
441c write element block attributes
442
443 attrib(1) = 1.0 ! block 1
444 attrib(2) = 2.0
445 attrib(3) = 3.0
446 attrib(4) = 1.11 ! block 2, element 1
447 attrib(5) = 2.11
448 attrib(6) = 3.11
449 attrib(7) = 1.12 ! block 2, element 2
450 attrib(8) = 2.12
451 attrib(9) = 3.12
452 attrib(10) = 1.2 ! block 3
453 attrib(11) = 2.2
454 attrib(12) = 3.2
455 attrib(13) = 1.3 ! block 4
456 attrib(14) = 2.3
457 attrib(15) = 3.3
458 attrib(16) = 1.4 ! block 5
459 attrib(17) = 2.4
460 attrib(18) = 3.4
461 attrib(19) = 1.5 ! block 6
462 attrib(20) = 2.5
463 attrib(21) = 3.5
464 attrib(22) = 1.6 ! block 7
465 attrib(23) = 2.6
466 attrib(24) = 3.6
467
468 call expeat (exoid, ebids(1), attrib(1), ierr)
469 write (iout, '("after expeat, error = ", i4)' ) ierr
470
471 call expeat (exoid, ebids(2), attrib(4), ierr)
472 write (iout, '("after expeat, error = ", i4)' ) ierr
473
474 call expeat (exoid, ebids(3), attrib(10), ierr)
475 write (iout, '("after expeat, error = ", i4)' ) ierr
476
477 call expeat (exoid, ebids(4), attrib(13), ierr)
478 write (iout, '("after expeat, error = ", i4)' ) ierr
479
480 call expeat (exoid, ebids(5), attrib(16), ierr)
481 write (iout, '("after expeat, error = ", i4)' ) ierr
482
483 call expeat (exoid, ebids(6), attrib(19), ierr)
484 write (iout, '("after expeat, error = ", i4)' ) ierr
485
486 call expeat (exoid, ebids(7), attrib(22), ierr)
487 write (iout, '("after expeat, error = ", i4)' ) ierr
488
489 attrib_names(1) = "attribute_1"
490 attrib_names(2) = "attribute_2"
491 attrib_names(3) = "attribute_3"
492 do i=1, num_elem_blk
493 call expean (exoid, ebids(i), numattr(i), attrib_names, ierr)
494 write (iout, '("after expean, error = ", i4)' ) ierr
495 end do
496
497c write individual node sets
498
499 node_list(1) = 100
500 node_list(2) = 101
501 node_list(3) = 102
502 node_list(4) = 103
503 node_list(5) = 104
504
505 dist_fact(1) = 1.0
506 dist_fact(2) = 2.0
507 dist_fact(3) = 3.0
508 dist_fact(4) = 4.0
509 dist_fact(5) = 5.0
510
511c call expnp (exoid, 20, 5, 5, ierr)
512c write (iout, '("after expnp, error = ", i4)' ) ierr
513c call expns (exoid, 20, node_list, ierr)
514c write (iout, '("after expns, error = ", i4)' ) ierr
515c call expnsd (exoid, 20, dist_fact, ierr)
516c write (iout, '("after expnsd, error = ", i4)' ) ierr
517
518 node_list(1) = 200
519 node_list(2) = 201
520 node_list(3) = 202
521
522 dist_fact(1) = 1.1
523 dist_fact(2) = 2.1
524 dist_fact(3) = 3.1
525
526c call expnp (exoid, 21, 3, 3, ierr)
527c write (iout, '("after expnp, error = ", i4)' ) ierr
528c call expns (exoid, 21, node_list, ierr)
529c write (iout, '("after expns, error = ", i4)' ) ierr
530c call expnsd (exoid, 21, dist_fact, ierr)
531c write (iout, '("after expnsd, error = ", i4)' ) ierr
532
533c write concatenated node sets; this produces the same information as
534c the above code which writes individual node sets
535
536 ids(1) = 20
537 ids(2) = 21
538
539 num_nodes_per_set(1) = 5
540 num_nodes_per_set(2) = 3
541
542 num_df_per_set(1) = 5
543 num_df_per_set(2) = 3
544
545 node_ind(1) = 1
546 node_ind(2) = 6
547
548 df_ind(1) = 1
549 df_ind(2) = 6
550
551 node_list(1) = 100
552 node_list(2) = 101
553 node_list(3) = 102
554 node_list(4) = 103
555 node_list(5) = 104
556 node_list(6) = 200
557 node_list(7) = 201
558 node_list(8) = 202
559
560 dist_fact(1) = 1.0
561 dist_fact(2) = 2.0
562 dist_fact(3) = 3.0
563 dist_fact(4) = 4.0
564 dist_fact(5) = 5.0
565 dist_fact(6) = 1.1
566 dist_fact(7) = 2.1
567 dist_fact(8) = 3.1
568
569 call expcns (exoid, ids, num_nodes_per_set, num_df_per_set,
570 1 node_ind, df_ind, node_list, dist_fact, ierr)
571 write (iout, '("after expcns, error = ", i4)' ) ierr
572
573c write node set properties
574
575 prop_names(1) = "FACE"
576 call expp(exoid, exnset, 20, prop_names(1), 4, ierr)
577 write (iout, '("after expp, error = ", i4)' ) ierr
578
579 call expp(exoid, exnset, 21, prop_names(1), 5, ierr)
580 write (iout, '("after expp, error = ", i4)' ) ierr
581
582 prop_array(1) = 1000
583 prop_array(2) = 2000
584
585 prop_names(1) = "VELOCITY"
586 call exppa(exoid, exnset, prop_names(1), prop_array, ierr)
587 write (iout, '("after exppa, error = ", i4)' ) ierr
588
589c write individual side sets
590
591 elem_list(1) = 11
592 elem_list(2) = 12
593
594 side_list(1) = 1
595 side_list(2) = 2
596
597 dist_fact(1) = 30.0
598 dist_fact(2) = 30.1
599 dist_fact(3) = 30.2
600 dist_fact(4) = 30.3
601
602c call expsp (exoid, 30, 2, 4, ierr)
603c write (iout, '("after expsp, error = ", i4)' ) ierr
604
605c call expss (exoid, 30, elem_list, side_list, ierr)
606c write (iout, '("after expss, error = ", i4)' ) ierr
607
608c call expssd (exoid, 30, dist_fact, ierr)
609c write (iout, '("after expssd, error = ", i4)' ) ierr
610
611 elem_list(1) = 13
612 elem_list(2) = 14
613
614 side_list(1) = 3
615 side_list(2) = 4
616
617 dist_fact(1) = 31.0
618 dist_fact(2) = 31.1
619 dist_fact(3) = 31.2
620 dist_fact(4) = 31.3
621
622c call expsp (exoid, 31, 2, 4, ierr)
623c write (iout, '("after expsp, error = ", i4)' ) ierr
624
625c call expss (exoid, 31, elem_list, side_list, ierr)
626c write (iout, '("after expss, error = ", i4)' ) ierr
627
628c call expssd (exoid, 31, dist_fact, ierr)
629c write (iout, '("after expssd, error = ", i4)' ) ierr
630
631c write concatenated side sets; this produces the same information as
632c the above code which writes individual side sets
633
634 ids(1) = 30
635 ids(2) = 31
636 ids(3) = 32
637 ids(4) = 33
638 ids(5) = 34
639 ids(6) = 35
640
641c side set #1 - quad
642 node_list(1) = 8
643 node_list(2) = 5
644 node_list(3) = 6
645 node_list(4) = 7
646
647c side set #2 - quad/hex, spanning 2 element types
648 node_list(5) = 2
649 node_list(6) = 3
650 node_list(7) = 7
651 node_list(8) = 8
652
653c side set #3 - hex
654 node_list(9) = 9
655 node_list(10) = 12
656 node_list(11) = 11
657 node_list(12) = 10
658
659 node_list(13) = 11
660 node_list(14) = 12
661 node_list(15) = 16
662 node_list(16) = 15
663
664 node_list(17) = 16
665 node_list(18) = 15
666 node_list(19) = 11
667 node_list(20) = 12
668
669 node_list(21) = 10
670 node_list(22) = 11
671 node_list(23) = 15
672 node_list(24) = 14
673
674 node_list(25) = 13
675 node_list(26) = 16
676 node_list(27) = 12
677 node_list(28) = 9
678
679 node_list(29) = 14
680 node_list(30) = 13
681 node_list(31) = 9
682 node_list(32) = 10
683
684 node_list(33) = 16
685 node_list(34) = 13
686 node_list(35) = 14
687 node_list(36) = 15
688
689c side set #4 - Tetra
690 node_list(37) = 17
691 node_list(38) = 18
692 node_list(39) = 20
693
694 node_list(40) = 18
695 node_list(41) = 19
696 node_list(42) = 20
697
698 node_list(43) = 20
699 node_list(44) = 19
700 node_list(45) = 17
701
702 node_list(46) = 19
703 node_list(47) = 18
704 node_list(48) = 17
705
706c side set #5 - Circle/Sphere
707 node_list(49) = 21
708 node_list(50) = 22
709
710c side set #6 - Wedges
711 node_list(51) = 27
712 node_list(52) = 26
713 node_list(53) = 23
714 node_list(54) = 24
715
716 node_list(55) = 28
717 node_list(56) = 27
718 node_list(57) = 24
719 node_list(58) = 25
720
721 node_list(59) = 28
722 node_list(60) = 25
723 node_list(61) = 23
724 node_list(62) = 26
725
726 node_list(63) = 25
727 node_list(64) = 24
728 node_list(65) = 23
729
730 node_list(66) = 26
731 node_list(67) = 27
732 node_list(68) = 28
733
734 num_elem_per_set(1) = 2
735 num_elem_per_set(2) = 2
736 num_elem_per_set(3) = 7
737 num_elem_per_set(4) = 4
738 num_elem_per_set(5) = 2
739 num_elem_per_set(6) = 5
740c Uncomment following line to test NULL side sets
741c num_elem_per_set(6) = 0
742
743 num_nodes_per_set(1) = 4
744 num_nodes_per_set(2) = 4
745 num_nodes_per_set(3) = 28
746 num_nodes_per_set(4) = 12
747 num_nodes_per_set(5) = 2
748 num_nodes_per_set(6) = 18
749
750 elem_ind(1) = 1
751 elem_ind(2) = 3
752 elem_ind(3) = 5
753 elem_ind(4) = 12
754 elem_ind(5) = 16
755 elem_ind(6) = 18
756
757 node_ind(1) = 1
758 node_ind(2) = 5
759 node_ind(3) = 9
760 node_ind(4) = 37
761 node_ind(5) = 48
762 node_ind(6) = 50
763
764 elem_list(1) = 3
765 elem_list(2) = 3
766 elem_list(3) = 1
767 elem_list(4) = 3
768 elem_list(5) = 4
769 elem_list(6) = 4
770 elem_list(7) = 4
771 elem_list(8) = 4
772 elem_list(9) = 4
773 elem_list(10) = 4
774 elem_list(11) = 4
775 elem_list(12) = 5
776 elem_list(13) = 5
777 elem_list(14) = 5
778 elem_list(15) = 5
779 elem_list(16) = 6
780 elem_list(17) = 7
781 elem_list(18) = 8
782 elem_list(19) = 8
783 elem_list(20) = 8
784 elem_list(21) = 8
785 elem_list(22) = 8
786
787c side_list(1) = 1
788c side_list(2) = 2
789c side_list(3) = 3
790c side_list(4) = 4
791
792 call excn2s(exoid, num_elem_per_set, num_nodes_per_set, elem_ind,
793 1 node_ind, elem_list, node_list, side_list, ierr)
794 write (iout, '("after excn2s, error = ", i4)' ) ierr
795
796 num_df_per_set(1) = 4
797 num_df_per_set(2) = 4
798 num_df_per_set(3) = 0
799 num_df_per_set(4) = 0
800 num_df_per_set(5) = 0
801 num_df_per_set(6) = 0
802
803 df_ind(1) = 1
804 df_ind(2) = 5
805 df_ind(3) = 9
806 df_ind(4) = 9
807 df_ind(5) = 9
808 df_ind(6) = 9
809
810 dist_fact(1) = 30.0
811 dist_fact(2) = 30.1
812 dist_fact(3) = 30.2
813 dist_fact(4) = 30.3
814 dist_fact(5) = 31.0
815 dist_fact(6) = 31.1
816 dist_fact(7) = 31.2
817 dist_fact(8) = 31.3
818
819 call expcss (exoid, ids, num_elem_per_set, num_df_per_set,
820 1 elem_ind, df_ind, elem_list, side_list, dist_fact,
821 2 ierr)
822 write (iout, '("after expcss, error = ", i4)' ) ierr
823
824 prop_names(1) = "COLOR"
825 call expp(exoid, exsset, 30, prop_names(1), 100, ierr)
826 write (iout, '("after expp, error = ", i4)' ) ierr
827
828 call expp(exoid, exsset, 31, prop_names(1), 101, ierr)
829 write (iout, '("after expp, error = ", i4)' ) ierr
830
831c write QA records
832
833 num_qa_rec = 2
834
835 qa_record(1,1) = "TESTWT1 fortran version"
836 qa_record(2,1) = "testwt1"
837 qa_record(3,1) = "03/16/94"
838 qa_record(4,1) = "15:41:33"
839 qa_record(1,2) = "FASTQ"
840 qa_record(2,2) = "fastq"
841 qa_record(3,2) = "07/07/93"
842 qa_record(4,2) = "16:41:33"
843
844 call expqa (exoid, num_qa_rec, qa_record, ierr)
845 write (iout, '("after expqa, error = ", i4)' ) ierr
846
847c write information records
848
849 num_info = 3
850
851 inform(1) = "This is the first information record."
852 inform(2) = "This is the second information record."
853 inform(3) = "This is the third information record."
854
855 call expinf (exoid, num_info, inform, ierr)
856 write (iout, '("after expinf, error = ", i4)' ) ierr
857
858c write results variables parameters and names
859
860 num_glo_vars = 1
861
862 var_names(1) = "glo vars"
863
864 call expvp (exoid, "g", num_glo_vars, ierr)
865 write (iout, '("after expvp, error = ", i4)' ) ierr
866 call expvnm (exoid, "g", 1, var_names(1), ierr)
867 write (iout, '("after expvan, error = ", i4)' ) ierr
868
869 num_nod_vars = 2
870
871 var_names(1) = "nod_var0"
872 var_names(2) = "nod_var1"
873
874 call expvp (exoid, "n", num_nod_vars, ierr)
875 write (iout, '("after expvp, error = ", i4)' ) ierr
876 call expvan (exoid, "n", num_nod_vars, var_names, ierr)
877 write (iout, '("after expvan, error = ", i4)' ) ierr
878
879 num_ele_vars = 3
880
881 var_names(1) = "ele_var0"
882 var_names(2) = "ele_var1"
883 var_names(3) = "ele_var2"
884
885 call expvp (exoid, "e", num_ele_vars, ierr)
886 write (iout, '("after expvp, error = ", i4)' ) ierr
887 call expvan (exoid, "e", num_ele_vars, var_names, ierr)
888 write (iout, '("after expvan, error = ", i4)' ) ierr
889
890c write element variable truth table
891
892 k = 0
893
894 do 30 i = 1,num_elem_blk
895 do 20 j = 1,num_ele_vars
896 truth_tab(j,i) = 1
89720 continue
89830 continue
899
900 truth_tab(1,3) = 0
901
902c call expvtt (exoid, num_elem_blk, num_ele_vars, truth_tab, ierr)
903c write (iout, '("after expvtt, error = ", i4)' ) ierr
904
905c for each time step, write the analysis results;
906c the code below fills the arrays glob_var_vals,
907c nodal_var_vals, and elem_var_vals with values for debugging purposes;
908c obviously the analysis code will populate these arrays
909
910 whole_time_step = 1
911 num_time_steps = 10
912
913 do 110 i = 1, num_time_steps
914 time_value = real(i)/100.
915
916c write time value
917
918 call exptim (exoid, whole_time_step, time_value, ierr)
919 write (iout, '("after exptim, error = ", i4)' ) ierr
920
921c write global variables
922
923 do 50 j = 1, num_glo_vars
924 glob_var_vals(j) = real(j+1) * time_value
92550 continue
926
927 call expgv (exoid, whole_time_step, num_glo_vars,
928 1 glob_var_vals, ierr)
929 write (iout, '("after expgv, error = ", i4)' ) ierr
930
931c write nodal variables
932
933 do 70 k = 1, num_nod_vars
934 do 60 j = 1, num_nodes
935
936 nodal_var_vals(j) = real(k) + (real(j) * time_value)
937
93860 continue
939
940 call expnv (exoid, whole_time_step, k, num_nodes,
941 1 nodal_var_vals, ierr)
942 write (iout, '("after expnv, error = ", i4)' ) ierr
943
94470 continue
945
946c write element variables
947
948 do 100 k = 1, num_ele_vars
949 do 90 j = 1, num_elem_blk
950 do 80 m = 1, num_elem_in_block(j)
951
952 elem_var_vals(m) = real(k+1) + real(j+1) +
953 1 (real(m)*time_value)
954c write(iout,*)'elem_var_val(',m,'): ',elem_var_vals(m)
955
95680 continue
957
958 if (k .eq. 1 .and. j .eq. 3) then
959 continue ! skip element block 3, variable 1
960 else
961 call expev (exoid, whole_time_step, k, ebids(j),
962 1 num_elem_in_block(j), elem_var_vals, ierr)
963 write (iout, '("after expev, error = ", i4)' ) ierr
964 endif
965
96690 continue
967100 continue
968
969 whole_time_step = whole_time_step + 1
970
971c update the data file; this should be done at the end of every time
972c step to ensure that no data is lost if the analysis dies
973
974 call exupda (exoid, ierr)
975 write (iout, '("after exupda, error = ", i4)' ) ierr
976
977110 continue
978
979c close the EXODUS files
980
981 call exclos (exoid, ierr)
982 write (iout, '("after exclos, error = ", i4)' ) ierr
983
984 stop
985 end
#define real
Definition exo_jack-windows.c:59
void expgv(int *idexo, int *time_step, int *num_glob_vars, real *glob_var_vals, int *ierr)
Definition exo_jack.c:2149
int excre(char *path, int *clobmode, int *cpu_word_size, int *io_word_size, int *ierr, int pathlen)
Definition exo_jack.c:176
void expini(int *idexo, char *title, void_int *num_dim, void_int *num_nodes, void_int *num_elem, void_int *num_elem_blk, void_int *num_node_sets, void_int *num_side_sets, int *ierr, int titlelen)
Definition exo_jack.c:239
void expcor(int *idexo, real *x_coor, real *y_coor, real *z_coor, int *ierr)
Definition exo_jack.c:551
void expvnm(int *idexo, char *var_type, int *var_index, char *var_name, int *ierr, int var_typelen, int var_namelen)
Definition exo_jack.c:2825
void expnv(int *idexo, int *time_step, int *nodal_var_index, void_int *num_nodes, real *nodal_var_vals, int *ierr)
Definition exo_jack.c:2180
void expcss(int *idexo, void_int *side_set_ids, void_int *num_elem_per_set, void_int *num_dist_per_set, void_int *side_sets_elem_index, void_int *side_sets_dist_index, void_int *side_sets_elem_list, void_int *side_sets_side_list, real *side_sets_dist_fact, int *ierr)
Definition exo_jack.c:1760
void excn2s(int *idexo, void_int *num_elem_per_set, void_int *num_nodes_per_set, void_int *side_sets_elem_index, void_int *side_sets_node_index, void_int *side_sets_elem_list, void_int *side_sets_node_list, void_int *side_sets_side_list, int *ierr)
Definition exo_jack.c:2411
void expvan(int *idexo, char *var_type, int *num_vars, char *var_names, int *ierr, int var_typelen, int var_nameslen)
Definition exo_jack.c:1931
void expqa(int *idexo, int *num_qa_records, char *qa_record, int *ierr, int qa_recordlen)
Definition exo_jack.c:306
void expeat(int *idexo, entity_id *elem_blk_id, real *attrib, int *ierr)
Definition exo_jack.c:917
void exclos(int *idexo, int *ierr)
Definition exo_jack.c:227
void expev(int *idexo, int *time_step, int *elem_var_index, entity_id *elem_blk_id, void_int *num_elem_this_blk, real *elem_var_vals, int *ierr)
Definition exo_jack.c:2235
void expp(int *idexo, int *obj_type, entity_id *obj_id, char *prop_name, entity_id *value, int *ierr, int prop_namelen)
Definition exo_jack.c:1358
void expelb(int *idexo, entity_id *elem_blk_id, char *elem_type, void_int *num_elem_this_blk, void_int *num_nodes_per_elem, void_int *num_attr, int *ierr, int elem_typelen)
Definition exo_jack.c:757
void expcns(int *idexo, void_int *node_set_ids, void_int *num_nodes_per_set, void_int *num_dist_per_set, void_int *node_sets_node_index, void_int *node_sets_dist_index, void_int *node_sets_node_list, real *node_sets_dist_fact, int *ierr)
Definition exo_jack.c:1568
void expnm(int *idexo, entity_id *map_id, void_int *node_map, int *ierr)
Definition exo_jack.c:2807
void exppn(int *idexo, int *obj_type, int *num_props, char *prop_names, int *ierr, int prop_nameslen)
Definition exo_jack.c:1217
void expean(int *idexo, entity_id *elem_blk_id, int *num_attr, char *names, int *ierr, int nameslen)
Definition exo_jack.c:992
void exppem(int *idexo, entity_id *map_id, void_int *start, void_int *count, void_int *elem_map, int *ierr)
Definition exo_jack.c:2769
void expelc(int *idexo, entity_id *elem_blk_id, void_int *connect, int *ierr)
Definition exo_jack.c:839
void expem(int *idexo, entity_id *map_id, void_int *elem_map, int *ierr)
Definition exo_jack.c:2760
void expcon(int *idexo, char *coord_names, int *ierr, int coord_nameslen)
Definition exo_jack.c:569
void expinf(int *idexo, int *num_info, char *info, int *ierr, int infolen)
Definition exo_jack.c:442
void expvp(int *idexo, char *var_type, int *num_vars, int *ierr, int var_typelen)
Definition exo_jack.c:1909
void expmp(int *idexo, int *num_node_maps, int *num_elem_maps, int *ierr)
Definition exo_jack.c:2798
void exppa(int *idexo, int *obj_type, char *prop_name, void_int *values, int *ierr, int prop_namelen)
Definition exo_jack.c:1460
void exupda(int *idexo, int *ierr)
Definition exo_jack.c:233
void expnam(int *idexo, int *type, int *id, char *name, int *ierr, int namelen)
Definition exo_jack.c:1090
void exptim(int *idexo, int *time_step, real *time_value, int *ierr)
Definition exo_jack.c:2364