1      program testwtm
2c
3c This is a test program for the Fortran binding of the EXODUS II
4c database write routines. It tests multiple simultaneous output files.
5c
6c     09/07/93	V.R. Yarberry - Revised for 2.00 API
7
8      include 'exodusII.inc'
9
10      integer iin, iout
11      integer exoid, num_dim, num_nodes, num_elem, num_elem_blk
12      integer exoidm(10),num_dim2,num_nodes2,num_elem2,num_elem_blk2
13      integer num_elem_in_block(2), num_node_sets
14      integer num_elem_in_block2(2), num_node_sets2
15      integer num_side_sets
16      integer num_side_sets2
17      integer nexofiles
18      integer i, j, k, m, elem_map(2), connect(4)
19      integer elem_map2(2), connect2(4)
20      integer node_list(10), elem_list(10), side_list(10)
21      integer node_list2(10), elem_list2(10), side_list2(10)
22      integer ebids(2),ids(2), num_nodes_per_set(2), num_elem_per_set(2)
23      integer ebids2(2)
24      integer num_df_per_set(2)
25      integer df_ind(2), node_ind(2), elem_ind(2), num_qa_rec, num_info
26      integer num_qa_rec2,num_info2
27      integer num_glo_vars, num_nod_vars, num_ele_vars
28      integer num_glo_vars2, num_nod_vars2, num_ele_vars2
29      integer truth_tab(3,2)
30      integer whole_time_step, num_time_steps
31      integer cpu_word_size, io_word_size
32      integer prop_array(2)
33
34      real glob_var_vals(10), nodal_var_vals(8)
35      real time_value, elem_var_vals(20)
36      real time_value2
37      real x(8), y(8), dummy(1)
38      real x2(8), y2(8)
39      real attrib(1), dist_fact(8)
40      real attrib2(1), dist_fact2(8)
41
42      character*(MXLNLN) title
43      character*(MXLNLN) title2
44      character*(MXSTLN) coord_names(3)
45      character*(MXSTLN) coord_names2(3)
46      character*(MXSTLN) cname
47      character*(MXSTLN) cname2
48      character*(MXSTLN) var_names(3)
49      character*(MXSTLN) var_names2(3)
50      character*(MXSTLN) qa_record(4,2)
51      character*(MXSTLN) qa_record2(4,2)
52      character*(MXLNLN) inform(3)
53      character*(MXLNLN) inform2(3)
54      character*(MXSTLN) prop_names(2)
55      character*(MXSTLN) exofname
56
57      data iin /5/, iout /6/, nexofiles /5/
58
59c
60c  create EXODUS II files
61c
62      cpu_word_size = 0
63      io_word_size = 4
64c
65      exoid = excre ("test.exo",
66     1               EXCLOB, cpu_word_size, io_word_size, ierr)
67      write (iout,'("after excre for test.exo,id: ",i4,", err=",i3)')
68     1           exoid, ierr
69      write (iout,'("  cpu word size: ",i4," io word size: ",i4)')
70     1                  cpu_word_size, io_word_size
71      write (iout, '("after excre, error = ", i4)' ) ierr
72
73      do 1000 i=1,nexofiles
74        write(exofname,'("test",i1,".exo")')i
75        exoidm(i)= excre (exofname,
76     1               EXCLOB, cpu_word_size, io_word_size, ierr)
77        write (iout,
78     1    '("after excre for test",i1,".exo,id: ",i4,", err=",i3)')
79     2	  i, exoidm(i), ierr
80        write (iout, '("after excre (",i1,"), error = ", i4)' )
81     1		i, ierr
821000  continue
83
84c
85c  initialize file with parameters
86c
87
88      title = "This is test m"
89      num_dim = 2
90      num_nodes = 8
91      num_elem = 2
92      num_elem_blk = 2
93      num_node_sets = 2
94      num_side_sets = 2
95
96      call expini (exoid, title, num_dim, num_nodes,
97     1             num_elem, num_elem_blk, num_node_sets,
98     2             num_side_sets, ierr)
99
100      write (iout, '("after expini, error = ", i4)' ) ierr
101
102      title2 = "This is test m"
103      num_dim2 = 2
104      num_nodes2 = 8
105      num_elem2 = 2
106      num_elem_blk2 = 2
107      num_node_sets2 = 2
108      num_side_sets2 = 2
109
110      do 1001 i=1,nexofiles
111        call expini (exoidm(i), title2, num_dim2, num_nodes2,
112     1             num_elem2, num_elem_blk2, num_node_sets2,
113     2             num_side_sets2, ierr)
114
115        write (iout, '("after expini (",i1,"), error = ", i4)' )
116     1		i, ierr
1171001  continue
118
119
120c
121c  write nodal coordinates values and names to database
122c
123
124      x(1) = 0.0
125      x(2) = 1.0
126      x(3) = 1.0
127      x(4) = 0.0
128      x(5) = 1.0
129      x(6) = 2.0
130      x(7) = 2.0
131      x(8) = 1.0
132      y(1) = 0.0
133      y(2) = 0.0
134      y(3) = 1.0
135      y(4) = 1.0
136      y(5) = 0.0
137      y(6) = 0.0
138      y(7) = 1.0
139      y(8) = 1.0
140
141      call expcor (exoid, x, y, dummy, ierr)
142      write (iout, '("after expcor, error = ", i4)' ) ierr
143
144      x2(1) = 0.0
145      x2(2) = 1.0
146      x2(3) = 1.0
147      x2(4) = 0.0
148      x2(5) = 1.0
149      x2(6) = 2.0
150      x2(7) = 2.0
151      x2(8) = 1.0
152      y2(1) = 0.0
153      y2(2) = 0.0
154      y2(3) = 1.0
155      y2(4) = 1.0
156      y2(5) = 0.0
157      y2(6) = 0.0
158      y2(7) = 1.0
159      y2(8) = 1.0
160
161      do 1002 i=1,nexofiles
162        call expcor (exoidm(i), x2, y2, dummy, ierr)
163        write (iout, '("after expcor (",i1,"), error = ", i4)')
164     1		i, ierr
1651002  continue
166
167      coord_names(1) = "xcoor"
168      coord_names(2) = "ycoor"
169
170      call expcon (exoid, coord_names, ierr)
171      write (iout, '("after expcon, error = ", i4)' ) ierr
172
173      coord_names2(1) = "xcoor"
174      coord_names2(2) = "ycoor"
175
176      do 1003 i=1,nexofiles
177        call expcon (exoidm(i), coord_names2, ierr)
178        write (iout, '("after expcon (",i1,"), error = ", i4)')
179     1		i, ierr
1801003  continue
181
182
183c
184c write element order map
185c
186
187      do 10 i = 1, num_elem
188         elem_map(i) = i
18910    continue
190
191      call expmap (exoid, elem_map, ierr)
192      write (iout, '("after expmap, error = ", i4)' ) ierr
193
194      do 12 i = 1, num_elem2
195         elem_map2(i) = i
19612    continue
197
198      do 1004 i=1,nexofiles
199        call expmap (exoidm(i), elem_map2, ierr)
200        write (iout, '("after expmap (",i1,"), error = ", i4)')
201     1		i, ierr
2021004  continue
203
204c
205c write element block parameters
206c
207
208      num_elem_in_block(1) = 1
209      num_elem_in_block(2) = 1
210
211      ebids(1) = 10
212      ebids(2) = 11
213
214      cname = "quad"
215
216      call expelb (exoid,ebids(1),cname,num_elem_in_block(1)
217     1		,4,1,ierr)
218      write (iout, '("after expelb, error = ", i4)' ) ierr
219
220      call expelb (exoid,ebids(2),cname,num_elem_in_block(2),
221     1		 4,1,ierr)
222      write (iout, '("after expelb, error = ", i4)' ) ierr
223
224      num_elem_in_block2(1) = 1
225      num_elem_in_block2(2) = 1
226
227      ebids2(1) = 10
228      ebids2(2) = 11
229
230      cname2 = "quad2"
231
232      do 1005 i=1,nexofiles
233        call expelb(exoidm(i),ebids2(1),cname2,num_elem_in_block2(1),
234     1		4,1,ierr)
235        write (iout, '("after expelb (",i1,"), error = ", i4)')
236     1		i, ierr
237
238        call expelb(exoidm(i),ebids2(2),cname2,num_elem_in_block2(2),
239     1		4,1,ierr)
240        write (iout, '("after expelb (",i1,"), error = ", i4)')
241     1		i, ierr
2421005  continue
243
244c  write element block properties
245
246      prop_names(1) = "MATL"
247      prop_names(2) = "DENSITY"
248      call exppn(exoid,EXEBLK,2,prop_names,ierr)
249      write (iout, '("after exppn, error = ", i4)' ) ierr
250
251      call expp(exoid, EXEBLK, ebids(1), "MATL", 10, ierr)
252      write (iout, '("after expp, error = ", i4)' ) ierr
253      call expp(exoid, EXEBLK, ebids(2), "MATL", 20, ierr)
254      write (iout, '("after expp, error = ", i4)' ) ierr
255
256      do 1006 i=1,nexofiles
257        call exppn(exoidm(i),EXEBLK,2,prop_names,ierr)
258        write (iout, '("after exppn (",i1,"), error = ", i4)')
259     1		i, ierr
260
261        call expp(exoidm(i), EXEBLK, ebids(1), "MATL", 10, ierr)
262        write (iout, '("after expp (",i1,"), error = ", i4)')
263     1		i, ierr
264        call expp(exoidm(i), EXEBLK, ebids(2), "MATL", 20, ierr)
265        write (iout, '("after expp (",i1,"), error = ", i4)')
266     1		i, ierr
2671006  continue
268
269c
270c write element connectivity
271c
272
273      connect(1) = 1
274      connect(2) = 2
275      connect(3) = 3
276      connect(4) = 4
277
278      call expelc (exoid, ebids(1), connect, ierr)
279      write (iout, '("after expelc, error = ", i4)' ) ierr
280
281      connect(1) = 5
282      connect(2) = 6
283      connect(3) = 7
284      connect(4) = 8
285
286      call expelc (exoid, ebids(2), connect, ierr)
287      write (iout, '("after expelc, error = ", i4)' ) ierr
288
289      connect2(1) = 1
290      connect2(2) = 2
291      connect2(3) = 3
292      connect2(4) = 4
293
294      do 1007 i=1,nexofiles
295        call expelc (exoidm(i), ebids2(1), connect2, ierr)
296        write (iout, '("after expelc (",i1,"), error = ", i4)')
297     1		i, ierr
2981007  continue
299
300      connect2(1) = 5
301      connect2(2) = 6
302      connect2(3) = 7
303      connect2(4) = 8
304
305      do 1008 i=1,nexofiles
306        call expelc (exoidm(i), ebids2(2), connect2, ierr)
307        write (iout, '("after expelc (",i1,"), error = ", i4)')
308     1		i, ierr
3091008  continue
310
311c
312c write element block attributes
313c
314
315      attrib(1) = 3.14159
316      call expeat (exoid, ebids(1), attrib, ierr)
317      write (iout, '("after expeat, error = ", i4)' ) ierr
318
319      attrib(1) = 6.14159
320      call expeat (exoid, ebids(2), attrib, ierr)
321      write (iout, '("after expeat, error = ", i4)' ) ierr
322
323      attrib2(1) = 3.
324      do 1009 i=1,nexofiles
325        call expeat (exoidm(i), ebids2(1), attrib2, ierr)
326        write (iout, '("after expeat (",i1,"), error = ", i4)')
327     1		i, ierr
3281009  continue
329
330      attrib2(1) = 6.
331      do 1010 i=1,nexofiles
332        call expeat (exoidm(i), ebids2(2), attrib2, ierr)
333        write (iout, '("after expeat (",i1,"), error = ", i4)')
334     1		i, ierr
3351010  continue
336
337c
338c write individual node sets
339c
340
341      call expnp (exoid, 20, 5, 5, ierr)
342      write (iout, '("after expnp, error = ", i4)' ) ierr
343
344      node_list(1) = 100
345      node_list(2) = 101
346      node_list(3) = 102
347      node_list(4) = 103
348      node_list(5) = 104
349
350      dist_fact(1) = 1.0
351      dist_fact(2) = 2.0
352      dist_fact(3) = 3.0
353      dist_fact(4) = 4.0
354      dist_fact(5) = 5.0
355
356      call expns (exoid, 20, node_list, ierr)
357      write (iout, '("after expns, error = ", i4)' ) ierr
358      call expnsd (exoid, 20, dist_fact, ierr)
359      write (iout, '("after expnsd, error = ", i4)' ) ierr
360
361      call expnp (exoid, 21, 3, 3, ierr)
362      write (iout, '("after expnp, error = ", i4)' ) ierr
363
364      node_list(1) = 200
365      node_list(2) = 201
366      node_list(3) = 202
367
368      dist_fact(1) = 1.1
369      dist_fact(2) = 2.1
370      dist_fact(3) = 3.1
371
372      call expns (exoid, 21, node_list, ierr)
373      write (iout, '("after expns, error = ", i4)' ) ierr
374      call expnsd (exoid, 21, dist_fact, ierr)
375      write (iout, '("after expnsd, error = ", i4)' ) ierr
376
377      prop_names(1) = "FACE"
378      call expp(exoid, EXNSET, 20, prop_names(1), 4, ierr)
379      write (iout, '("after expp, error = ", i4)' ) ierr
380
381      call expp(exoid, EXNSET, 21, prop_names(1), 5, ierr)
382      write (iout, '("after expp, error = ", i4)' ) ierr
383
384      prop_array(1) = 1000
385      prop_array(2) = 2000
386
387      prop_names(1) = "VELOCITY"
388      call exppa(exoid, EXNSET, prop_names(1), prop_array, ierr)
389      write (iout, '("after exppa, error = ", i4)' ) ierr
390
391C**** file 2
392
393      node_list2(1) = 2100
394      node_list2(2) = 2101
395      node_list2(3) = 2102
396      node_list2(4) = 2103
397      node_list2(5) = 2104
398
399      dist_fact2(1) = 21.0
400      dist_fact2(2) = 22.0
401      dist_fact2(3) = 23.0
402      dist_fact2(4) = 24.0
403      dist_fact2(5) = 25.0
404
405      do 1011 i=1,nexofiles
406        call expnp (exoidm(i), 20, 5, 5, ierr)
407        write (iout, '("after expnp (",i1,"), error = ", i4)')
408     1		i, ierr
409
410        call expns (exoidm(i), 20, node_list, ierr)
411        write (iout, '("after expns (",i1,"), error = ", i4)')
412     1		i, ierr
413        call expnsd (exoidm(i), 20, dist_fact, ierr)
414        write (iout, '("after expnsd (",i1,"), error = ", i4)')
415     1		i, ierr
416
417        call expnp (exoidm(i), 21, 3, 3, ierr)
418        write (iout, '("after expnp (",i1,"), error = ", i4)')
419     1		i, ierr
4201011  continue
421
422      node_list2(1) = 2200
423      node_list2(2) = 2201
424      node_list2(3) = 2202
425
426      dist_fact2(1) = 21.1
427      dist_fact2(2) = 22.1
428      dist_fact2(3) = 23.1
429
430      do 1012 i=1,nexofiles
431        call expns (exoidm(i), 21, node_list, ierr)
432        write (iout, '("after expns (",i1,"), error = ", i4)')
433     1		i, ierr
434        call expnsd (exoidm(i), 21, dist_fact, ierr)
435        write (iout, '("after expnsd (",i1,"), error = ", i4)')
436     1		i, ierr
4371012  continue
438
439c
440c write concatenated node sets; this produces the same information as
441c the above code which writes individual node sets
442c
443
444      ids(1) = 20
445      ids(2) = 21
446
447      num_nodes_per_set(1) = 5
448      num_nodes_per_set(2) = 3
449
450      node_ind(1) = 1
451      node_ind(2) = 6
452
453      node_list(1) = 100
454      node_list(2) = 101
455      node_list(3) = 102
456      node_list(4) = 103
457      node_list(5) = 104
458      node_list(6) = 200
459      node_list(7) = 201
460      node_list(8) = 202
461
462      dist_fact(1) = 1.0
463      dist_fact(2) = 2.0
464      dist_fact(3) = 3.0
465      dist_fact(4) = 4.0
466      dist_fact(5) = 5.0
467      dist_fact(6) = 1.1
468      dist_fact(7) = 2.1
469      dist_fact(8) = 3.1
470
471c     call expcns (exoid, ids, num_nodes_per_set, node_ind, node_list,
472c    1        dist_fact, ierr)
473c     write (iout, '("after expcns, error = ", i4)' ) ierr
474c
475
476      do 1013 i=1,nexofiles
477        prop_names(1) = "FACE"
478        call expp(exoidm(i), EXNSET, 20, prop_names(1), 4, ierr)
479        write (iout, '("after expp (",i1,"), error = ", i4)')
480     1		i, ierr
481
482        call expp(exoidm(i), EXNSET, 21, prop_names(1), 5, ierr)
483        write (iout, '("after expp (",i1,"), error = ", i4)')
484     1		i, ierr
485
486        prop_array(1) = 1000
487        prop_array(2) = 2000
488
489        prop_names(1) = "VELOCITY"
490        call exppa(exoidm(i), EXNSET, prop_names(1), prop_array, ierr)
491        write (iout, '("after exppa (",i1,"), error = ", i4)')
492     1		i, ierr
4931013  continue
494
495c write individual side sets
496c
497
498      elem_list(1) = 11
499      elem_list(2) = 12
500
501      node_list(1) = 1
502      node_list(2) = 2
503      node_list(3) = 3
504      node_list(4) = 4
505
506      dist_fact(1) = 30.0
507      dist_fact(2) = 30.1
508      dist_fact(3) = 30.2
509      dist_fact(4) = 30.3
510
511      call expsp (exoid, 30, 2, 4, ierr)
512      write (iout, '("after expsp, error = ", i4)' ) ierr
513
514      call expss (exoid, 30, elem_list, node_list, ierr)
515      write (iout, '("after expss, error = ", i4)' ) ierr
516
517      call expssd (exoid, 30, dist_fact, ierr)
518      write (iout, '("after expssd, error = ", i4)' ) ierr
519
520      elem_list(1) = 13
521      elem_list(2) = 14
522
523      side_list(1) = 3
524      side_list(2) = 4
525
526      dist_fact(1) = 31.0
527      dist_fact(2) = 31.1
528      dist_fact(3) = 31.2
529      dist_fact(4) = 31.3
530
531      call expsp (exoid, 31, 2, 4, ierr)
532      write (iout, '("after expsp, error = ", i3)' ) ierr
533
534      call expss (exoid, 31, elem_list, side_list, ierr)
535      write (iout, '("after expss, error = ", i3)' ) ierr
536
537      call expssd (exoid, 31, dist_fact, ierr)
538      write (iout, '("after expssd, error = ", i3)' ) ierr
539
540
541      elem_list2(1) = 11
542      elem_list2(2) = 12
543
544      node_list2(1) = 1
545      node_list2(2) = 2
546      node_list2(3) = 3
547      node_list2(4) = 4
548
549      dist_fact2(1) = 1.1
550      dist_fact2(2) = 2.1
551      dist_fact2(3) = 3.1
552      dist_fact2(4) = 4.1
553
554      do 1014 i=1,nexofiles
555        call expsp (exoidm(i), 30, 2, 4, ierr)
556        write (iout, '("after expsp (",i1,"), error = ", i4)')
557     1		i, ierr
558
559        call expss (exoidm(i), 30, elem_list2, node_list2, ierr)
560        write (iout, '("after expss (",i1,"), error = ", i4)')
561     1		i, ierr
562
563        call expssd (exoidm(i), 30, dist_fact2, ierr)
564        write (iout, '("after expssd (",i1,"), error = ", i4)')
565     1		i, ierr
5661014  continue
567
568      elem_list2(1) = 13
569      elem_list2(2) = 14
570
571      side_list2(1) = 3
572      side_list2(2) = 4
573
574      dist_fact2(1) = 31.0
575      dist_fact2(2) = 31.1
576      dist_fact2(3) = 31.2
577      dist_fact2(4) = 31.3
578
579      do 1015 i=1,nexofiles
580        call expsp (exoidm(i), 31, 2, 4, ierr)
581        write (iout, '("after expsp (",i1,"), error = ", i3)')
582     1		i, ierr
583
584        call expss (exoidm(i), 31, elem_list2, side_list2, ierr)
585        write (iout, '("after expss (",i1,"), error = ", i3)')
586     1		i, ierr
587
588        call expssd (exoidm(i), 31, dist_fact2, ierr)
589        write (iout, '("after expssd (",i1,"), error = ", i3)')
590     1		i, ierr
5911015  continue
592
593c
594c write concatenated side sets; this produces the same information as
595c the above code which writes individual side sets
596c
597
598      ids(1) = 30
599      ids(2) = 31
600
601      num_elem_per_set(1) = 2
602      num_elem_per_set(2) = 2
603
604      num_df_per_set(1) = 4
605      num_df_per_set(2) = 4
606
607      elem_ind(1) = 1
608      elem_ind(2) = 3
609
610      df_ind(1) = 1
611      df_ind(2) = 5
612
613      elem_list(1) = 11
614      elem_list(2) = 12
615      elem_list(3) = 13
616      elem_list(4) = 14
617
618      side_list(1) = 1
619      side_list(2) = 2
620      side_list(3) = 3
621      side_list(4) = 4
622
623      dist_fact(1) = 30.0
624      dist_fact(2) = 30.1
625      dist_fact(3) = 30.2
626      dist_fact(4) = 30.3
627      dist_fact(5) = 31.0
628      dist_fact(6) = 31.1
629      dist_fact(7) = 31.2
630      dist_fact(8) = 31.3
631
632c     call expcss (exoid, ids, num_elem_per_set, num_df_per_set,
633c    1             elem_ind, df_ind, elem_list, side_list, dist_fact,
634c    2             ierr)
635c     write (iout, '("after expcss, error = ", i4)' ) ierr
636
637c     call expcss (exoidm(i), ids, num_elem_per_set, num_df_per_set,
638c    1             elem_ind, df_ind, elem_list, side_list, dist_fact,
639c    2             ierr)
640c     write (iout, '("after expcss (",i1,"), error = ", i4)' ) ierr
641
642      prop_names(1) = "COLOR"
643      call expp(exoid, EXSSET, 30, prop_names(1), 100, ierr)
644      write (iout, '("after expp, error = ", i4)' ) ierr
645
646      call expp(exoid, EXSSET, 31, prop_names(1), 101, ierr)
647      write (iout, '("after expp, error = ", i4)' ) ierr
648
649
650      do 1016 i=1,nexofiles
651        prop_names(1) = "COLOR"
652        call expp(exoidm(i), EXSSET, 30, prop_names(1), 100, ierr)
653        write (iout, '("after expp (",i1,"), error = ", i4)')
654     1		i, ierr
655
656        call expp(exoidm(i), EXSSET, 31, prop_names(1), 101, ierr)
657        write (iout, '("after expp (",i1,"), error = ", i4)')
658     1		i, ierr
6591016  continue
660
661
662c
663c write QA records
664c
665
666      num_qa_rec = 2
667
668      qa_record(1,1) = "TESTWTM fortran version"
669      qa_record(2,1) = "testwtm"
670      qa_record(3,1) = "07/07/93"
671      qa_record(4,1) = "15:41:33"
672      qa_record(1,2) = "FASTQ"
673      qa_record(2,2) = "fastq"
674      qa_record(3,2) = "07/07/93"
675      qa_record(4,2) = "16:41:33"
676
677      call expqa (exoid, num_qa_rec, qa_record, ierr)
678      write (iout, '("after expqa, error = ", i4)' ) ierr
679
680      num_qa_rec2 = 2
681
682      qa_record2(1,1) = "TESTWTM fortran version"
683      qa_record2(2,1) = "testwtm"
684      qa_record2(3,1) = "07/07/93"
685      qa_record2(4,1) = "15:41:33"
686      qa_record2(1,2) = "FASTQ"
687      qa_record2(2,2) = "fastq"
688      qa_record2(3,2) = "07/07/93"
689      qa_record2(4,2) = "16:41:33"
690
691      do 1017 i=1,nexofiles
692        call expqa (exoidm(i), num_qa_rec2, qa_record2, ierr)
693        write (iout, '("after expqa (",i1,"), error = ", i4)')
694     1		i, ierr
6951017  continue
696
697
698c
699c write information records
700c
701
702      num_info = 3
703
704      inform(1) = "This is the first information record."
705      inform(2) = "This is the second information record."
706      inform(3) = "This is the third information record."
707
708      call expinf (exoid, num_info, inform, ierr)
709      write (iout, '("after expinf, error = ", i4)' ) ierr
710
711      num_info2 = 3
712
713      inform2(1) = "This is the first info record."
714      inform2(2) = "This is the second info record."
715      inform2(3) = "This is the third info record."
716
717      do 1018 i=1,nexofiles
718        call expinf (exoidm(i), num_info2, inform2, ierr)
719        write (iout, '("after expinf (",i1,"), error = ", i4)')
720     1		i, ierr
7211018  continue
722
723c write results variables parameters and names
724
725      num_glo_vars = 1
726
727      var_names(1) = "glo_vars"
728
729      call expvp (exoid, "g", num_glo_vars, ierr)
730      write (iout, '("after expvp, error = ", i4)' ) ierr
731      call expvan (exoid, "g", num_glo_vars, var_names, ierr)
732      write (iout, '("after expvan, error = ", i4)' ) ierr
733
734      num_glo_vars2 = 1
735
736      var_names2(1) = "glovars2"
737
738      do 1019 i=1,nexofiles
739        call expvp (exoidm(i), "g", num_glo_vars2, ierr)
740        write (iout, '("after expvp (",i1,"), error = ", i4)')
741     1		i, ierr
742        call expvan (exoidm(i), "g", num_glo_vars2, var_names2, ierr)
743        write (iout, '("after expvan (",i1,"), error = ", i4)')
744     1		i, ierr
7451019  continue
746
747      num_nod_vars = 2
748
749      var_names(1) = "nod_var0"
750      var_names(2) = "nod_var1"
751
752      call expvp (exoid, "n", num_nod_vars, ierr)
753      write (iout, '("after expvp, error = ", i4)' ) ierr
754      call expvan (exoid, "n", num_nod_vars, var_names, ierr)
755      write (iout, '("after expvan, error = ", i4)' ) ierr
756
757      num_nod_vars2 = 2
758
759      var_names2(1) = "nodvar20"
760      var_names2(2) = "nodvar21"
761
762      do 1020 i=1,nexofiles
763        call expvp (exoidm(i), "n", num_nod_vars2, ierr)
764        write (iout, '("after expvp (",i1,"), error = ", i4)')
765     1		i, ierr
766        call expvan (exoidm(i), "n", num_nod_vars2, var_names2, ierr)
767        write (iout, '("after expvan (",i1,"), error = ", i4)')
768     1		i, ierr
7691020  continue
770
771      num_ele_vars = 3
772
773      var_names(1) = "ele_var0"
774      var_names(2) = "ele_var1"
775      var_names(3) = "ele_var2"
776
777      call expvp (exoid, "e", num_ele_vars, ierr)
778      write (iout, '("after expvp, error = ", i4)' ) ierr
779      call expvan (exoid, "e", num_ele_vars, var_names, ierr)
780      write (iout, '("after expvan, error = ", i4)' ) ierr
781
782      num_ele_vars2 = 3
783
784      var_names2(1) = "elevar20"
785      var_names2(2) = "elevar21"
786      var_names2(3) = "elevar22"
787
788      do 1021 i=1,nexofiles
789        call expvp (exoidm(i), "e", num_ele_vars2, ierr)
790        write (iout, '("after expvp (",i1,"), error = ", i4)')
791     1		i, ierr
792        call expvan (exoidm(i), "e", num_ele_vars2, var_names2, ierr)
793        write (iout, '("after expvan (",i1,"), error = ", i4)')
794     1		i, ierr
7951021  continue
796c
797c write element variable truth table
798c
799
800      k = 0
801
802      do 30 i = 1,num_elem_blk
803         do 20 j = 1,num_ele_vars
804            truth_tab(j,i) = 1
80520       continue
80630    continue
807
808      call exgebi (exoid, ebids, ierr)
809      write (iout, '("after exgebi, error = ", i4)' ) ierr
810      call expvtt (exoid, num_elem_blk, num_ele_vars, truth_tab, ierr)
811      write (iout, '("after expvtt, error = ", i4)' ) ierr
812
813      do 1022 i=1,nexofiles
814        call exgebi (exoidm(i), ebids2, ierr)
815        write (iout, '("after exgebi (",i1,"), error = ", i4)')
816     1		i, ierr
817        call expvtt (exoidm(i),num_elem_blk,num_ele_vars,truth_tab,ierr)
818        write (iout, '("after expvtt (",i1,"), error = ", i4)')
819     1		i, ierr
8201022  continue
821c
822c for each time step, write the analysis results;
823c the code below fills the arrays glob_var_vals,
824c nodal_var_vals, and elem_var_vals with values for debugging purposes;
825c obviously the analysis code will populate these arrays
826c
827
828      whole_time_step = 1
829      num_time_steps = 10
830
831      do 110 iii = 1, num_time_steps
832        time_value = real(iii)/100
833        time_value2 = real(iii)/100
834c
835c write time value to regular file
836c
837
838        call exptim (exoid, whole_time_step, time_value, ierr)
839        write (iout, '("after exptim, error = ", i4)' ) ierr
840
841        do 1023 i=1,nexofiles
842          call exptim (exoidm(i), whole_time_step, time_value2, ierr)
843          write (iout, '("after exptim (",i1,"), error = ", i4)')
844     1		i, ierr
8451023    continue
846
847c
848c write global variables
849c
850
851        do 50 j = 1, num_glo_vars
852          glob_var_vals(j) = real(j+1) * time_value
85350      continue
854
855        call expgv (exoid, whole_time_step, num_glo_vars,
856     1              glob_var_vals, ierr)
857        write (iout, '("after expgv, error = ", i4)' ) ierr
858
859        do 1024 i=1,nexofiles
860          call expgv (exoidm(i), whole_time_step, num_glo_vars,
861     1              glob_var_vals, ierr)
862          write (iout, '("after expgv (",i1,"), error = ", i4)')
863     1		i, ierr
8641024    continue
865
866c
867c write nodal variables
868c
869
870        do 70 k = 1, num_nod_vars
871          do 60 j = 1, num_nodes
872
873            nodal_var_vals(j) = real(k) + (real(j) * time_value)
874
87560        continue
876
877          call expnv (exoid, whole_time_step, k, num_nodes,
878     1                nodal_var_vals, ierr)
879          write (iout, '("after expnv, error = ", i4)' ) ierr
880
881          do 1025 i=1,nexofiles
882            call expnv (exoidm(i), whole_time_step, k, num_nodes,
883     1                nodal_var_vals, ierr)
884            write (iout, '("after expnv (",i1,"), error = ", i4)')
885     1		i, ierr
8861025      continue
887
88870      continue
889
890c
891c write element variables
892c
893
894        do 100 k = 1, num_ele_vars
895          do 90 j = 1, num_elem_blk
896            do 80 m = 1, num_elem_in_block(j)
897
898              elem_var_vals(m) = real(k+1) + real(j+1) +
899     1                          (real(m)*time_value)
900
90180          continue
902
903            call expev (exoid, whole_time_step, k, ebids(j),
904     1                  num_elem_in_block(j), elem_var_vals, ierr)
905            write (iout, '("after expev, error = ", i4)' ) ierr
906            do 1026 i=1,nexofiles
907              call expev (exoidm(i), whole_time_step, k, ebids(j),
908     1                  num_elem_in_block(j), elem_var_vals, ierr)
909              write (iout, '("after expev (",i1,"), error = ", i4)')
910     1		i, ierr
9111026        continue
912
91390        continue
914100     continue
915
916        whole_time_step = whole_time_step + 1
917
918c
919c update the data file; this should be done at the end of every time
920c step to ensure that no data is lost if the analysis dies
921c
922        call exupda (exoid, ierr)
923        write (iout, '("after exupda, error = ", i4)' ) ierr
924        do 1027 i=1,nexofiles
925          call exupda (exoidm(i), ierr)
926          write (iout, '("after exupda (",i1,"), error = ", i4)')
927     1		i, ierr
9281027    continue
929
930110   continue
931
932c
933c close the EXODUS files
934c
935      call exclos (exoid, ierr)
936      write (iout, '("after exclos, error = ", i4)' ) ierr
937
938      do 1028 i=1,nexofiles
939        call exclos (exoidm(i), ierr)
940        write (iout, '("after exclos (",i1,"), error = ", i4)')
941     1		i, ierr
9421028  continue
943
944      stop
945      end
946
947