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