45 include
'exodusII.inc' 46 include
'test_nem.inc' 49 INTEGER NEID, IO_WS, CPU_WS, T_PASS, T_FAIL, DBG_FLAG, IERR
50 CHARACTER FNAME*256, YO*6
63 fname =
'test_nem.exo' 67 print*,
'******************Output Tests*****************' 69 print*,
'creating ExodusII file...' 70 neid =
excre(fname, exclob, cpu_ws, io_ws, ierr)
74 print*, yo,
': ERROR, unable to create test file', fname,
'!' 77 print*,
'...successful' 82 print*,
'testing init info output...' 83 CALL expii(neid, nproc, nprocf,
'S', ierr)
87 IF (dbg_flag.EQ.1)
THEN 91 print*,
'...successful' 96 print*,
'testing global init info output...' 97 CALL expig(neid, nng, neg, nebg, nnsg, nssg, ierr)
101 IF (dbg_flag.EQ.1)
THEN 105 print*,
'...successful' 110 print*,
'testing global element block ID output...' 111 CALL extpebi(neid, ierr)
115 IF (dbg_flag.EQ.1)
THEN 119 print*,
'...successful' 124 print*,
'testing global node-set params output...' 125 CALL extpnsp(neid, ierr)
129 IF (dbg_flag.EQ.1)
THEN 133 print*,
'...successful' 138 print*,
'testing global side-set params output...' 139 CALL extpssp(neid, ierr)
143 IF (dbg_flag.EQ.1)
THEN 147 print*,
'...successful' 152 print*,
'testing concatenated load balance info output...' 153 CALL extplbpc(neid, ierr)
157 IF (dbg_flag.EQ.1)
THEN 161 print*,
'...successful' 166 print*,
'testing node map output...' 167 CALL extpnm(neid, ierr)
171 IF (dbg_flag.EQ.1)
THEN 175 print*,
'...successful' 180 print*,
'testing element map output...' 181 CALL extpem(neid, ierr)
185 IF (dbg_flag.EQ.1)
THEN 189 print*,
'...successful' 194 print*,
'testing concatenated communication map params output...' 195 CALL extpcmpc(neid, ierr)
199 IF (dbg_flag.EQ.1)
THEN 203 print*,
'...successful' 208 print*,
'testing nodal communication map output...' 209 CALL extpncm(neid, ierr)
213 IF (dbg_flag.EQ.1)
THEN 217 print*,
'...successful' 222 print*,
'testing elemental communication map output...' 223 CALL extpecm(neid, ierr)
227 IF (dbg_flag.EQ.1)
THEN 231 print*,
'...successful' 236 print*,
'closing ExodusII file...' 241 print*, yo,
': ERROR, unable to close test file', fname,
'!' 244 print*,
'...successful' 252 print*,
'******************Input Tests******************' 255 print*,
'reopening ExodusII file...' 256 neid =
exopen(fname, exread, cpu_ws, io_ws, version, ierr)
260 print*, yo,
': ERROR, unable to open test file', fname,
'!' 263 print*,
'...successful' 268 print*,
'testing init info input...' 269 CALL extgii(neid, ierr)
273 IF (dbg_flag.EQ.1)
THEN 277 print*,
'...successful' 282 print*,
'testing global init info input...' 283 CALL extgig(neid, ierr)
287 IF (dbg_flag.EQ.1)
THEN 291 print*,
'...successful' 296 print*,
'testing global element block IDs input...' 297 CALL extgebi(neid, ierr)
301 IF (dbg_flag.EQ.1)
THEN 305 print*,
'...successful' 310 print*,
'testing global node-set params input...' 311 CALL extgnsp(neid, ierr)
315 IF (dbg_flag.EQ.1)
THEN 319 print*,
'...successful' 324 print*,
'testing global side-set params input...' 325 CALL extgssp(neid, ierr)
329 IF (dbg_flag.EQ.1)
THEN 333 print*,
'...successful' 338 print*,
'testing load-balance params input...' 339 CALL extglbp(neid, ierr)
343 IF (dbg_flag.EQ.1)
THEN 347 print*,
'...successful' 352 print*,
'testing node map input...' 353 CALL extgnm(neid, ierr)
357 IF (dbg_flag.EQ.1)
THEN 361 print*,
'...successful' 366 print*,
'testing element map input...' 367 CALL extgem(neid, ierr)
371 IF (dbg_flag.EQ.1)
THEN 375 print*,
'...successful' 380 print*,
'testing nodal communication map input...' 381 CALL extgncm(neid, ierr)
385 IF (dbg_flag.EQ.1)
THEN 389 print*,
'...successful' 394 print*,
'testing elemental communication map input...' 395 CALL extgecm(neid, ierr)
399 IF (dbg_flag.EQ.1)
THEN 403 print*,
'...successful' 408 print*,
'closing ExodusII file...' 413 print*, yo,
': ERROR, unable to close test file', fname,
'!' 416 print*,
'...successful' 420 print*,
'Tests Passed: ', t_pass
421 print*,
'Tests Failed: ', t_fail
427 SUBROUTINE extpebi(NEID, IERR)
430 include
'test_nem.inc' 432 INTEGER I, EBLK_IDS(NEBG)
433 INTEGER EBLK_CNTS(NEBG)
440 CALL expebig(neid, eblk_ids, eblk_cnts, ierr)
445 SUBROUTINE extpnsp(NEID, IERR)
448 include
'test_nem.inc' 450 INTEGER I, GLBL_IDS(NNSG), GLBL_NC(NNSG), GLBL_DFC(NNSG)
458 CALL expnspg(neid, glbl_ids, glbl_nc, glbl_dfc, ierr)
463 SUBROUTINE extpssp(NEID, IERR)
466 include
'test_nem.inc' 468 INTEGER I, GLBL_IDS(NSSG), GLBL_ELC(NSSG), GLBL_DFC(NSSG)
476 CALL expsspg(neid, glbl_ids, glbl_elc, glbl_dfc, ierr)
481 SUBROUTINE extplbpc(NEID, IERR)
484 include
'test_nem.inc' 486 INTEGER IPROC, NUM_IN(NPROCF), NUM_BN(NPROCF), NUM_EN(NPROCF),
487 1 NUM_IE(NPROCF), NUM_BE(NPROCF), NUM_NCM(NPROCF), NUM_ECM(NPROCF)
489 DO 140 iproc = 1,nprocf
490 num_in(iproc) = nintn
491 num_bn(iproc) = nborn
492 num_en(iproc) = nextn
494 num_ie(iproc) = ninte
495 num_be(iproc) = nbore
497 num_ncm(iproc) = nncmap
498 num_ecm(iproc) = necmap
501 CALL explbpc(neid, num_in, num_bn, num_en, num_ie, num_be,
502 1 num_ncm, num_ecm, ierr)
507 SUBROUTINE extpnm(NEID, IERR)
510 include
'test_nem.inc' 512 INTEGER IPROC, I, J, NMAPI(NINTN), NMAPB(NBORN), NMAPE(NEXTN)
515 DO 200 iproc = 0,(nprocf-1)
531 CALL expnmp(neid, nmapi, nmapb, nmape, iproc, ierr)
532 IF (ierr.NE.0)
GOTO 210
540 SUBROUTINE extpem(NEID, IERR)
543 include
'test_nem.inc' 545 INTEGER IPROC, I, J, EMAPI(NINTE), EMAPB(NBORE)
548 DO 200 iproc = 0,(nprocf-1)
560 CALL expemp(neid, emapi, emapb, iproc, ierr)
561 IF (ierr.NE.0)
GOTO 210
569 SUBROUTINE extpcmpc(NEID, IERR)
572 include
'test_nem.inc' 574 INTEGER IPROC, I, NCNTR, ECNTR, NMAPIDS(NNCXNPF),
575 1 NMAPCNT(NNCXNPF), NMAPPROC(NPROCF+1), EMAPIDS(NECXNPF),
576 1 EMAPCNT(NECXNPF), EMAPPROC(NPROCF+1)
582 DO 200 iproc = 1,nprocf
585 nmapcnt(ncntr) = ncntcm
590 emapcnt(ecntr) = ecntcm
594 nmapproc(iproc+1) = nmapproc(iproc) + nncmap
595 emapproc(iproc+1) = emapproc(iproc) + necmap
599 CALL expcmpc(neid, nmapids, nmapcnt, nmapproc, emapids, emapcnt,
605 SUBROUTINE extpncm(NEID, IERR)
608 include
'test_nem.inc' 610 INTEGER IPROC, I, NMAPIDS(NNCMAP), NIDS(NCNTCM), PIDS(NCNTCM)
612 DO 200 iproc = 0,(nprocf-1)
622 CALL expncm(neid, nmapids(i), nids, pids, iproc, ierr)
623 IF (ierr.NE.0)
GOTO 210
632 SUBROUTINE extpecm(NEID, IERR)
635 include
'test_nem.inc' 637 INTEGER IPROC, I, EMAPIDS(NECMAP), EIDS(ECNTCM), PIDS(ECNTCM),
640 DO 200 iproc = 0,(nprocf-1)
651 CALL expecm(neid, emapids(i), eids, sids, pids, iproc, ierr)
652 IF (ierr.NE.0)
GOTO 210
661 SUBROUTINE extgii(NEID, IERR)
664 include
'test_nem.inc' 669 CALL exgii(neid, np, npf, ftype, ierr)
671 IF (ierr.NE.0)
GOTO 210
673 IF (np.NE.nproc) ierr = -1
674 IF (npf.NE.nprocf) ierr = -1
675 IF (np.NE.nproc) ierr = -1
681 SUBROUTINE extgig(NEID, IERR)
684 include
'test_nem.inc' 686 INTEGER NUMNG, NUMEG, NUMEBG, NUMNSG, NUMSSG
688 CALL exgig(neid, numng, numeg, numebg, numnsg, numssg, ierr)
690 IF (ierr.NE.0)
GOTO 210
692 IF (numng.NE.nng) ierr = -1
693 IF (numeg.NE.neg) ierr = -1
694 IF (numebg.NE.nebg) ierr = -1
695 IF (numnsg.NE.nnsg) ierr = -1
696 IF (numssg.NE.nssg) ierr = -1
702 SUBROUTINE extgebi(NEID, IERR)
705 include
'test_nem.inc' 707 INTEGER I, EBLK_IDS(NEBG)
708 INTEGER EBLK_CNTS(NEBG)
710 CALL exgebig(neid, eblk_ids, eblk_cnts, ierr)
712 IF (ierr.NE.0)
GOTO 210
715 IF (eblk_ids(i).NE.i) ierr = -1
716 IF (eblk_cnts(i) .NE. 10) ierr = -1
723 SUBROUTINE extgnsp(NEID, IERR)
726 include
'test_nem.inc' 728 INTEGER I, GLBL_IDS(NNSG), GLBL_NC(NNSG), GLBL_DFC(NNSG)
730 CALL exgnspg(neid, glbl_ids, glbl_nc, glbl_dfc, ierr)
732 IF (ierr.NE.0)
GOTO 210
735 IF (glbl_ids(i).NE.(2*i)) ierr = -1
736 IF (glbl_nc(i).NE.(3*i)) ierr = -1
737 IF (glbl_dfc(i).NE.1) ierr = -1
744 SUBROUTINE extgssp(NEID, IERR)
747 include
'test_nem.inc' 749 INTEGER I, GLBL_IDS(NSSG), GLBL_EC(NSSG), GLBL_DFC(NSSG)
751 CALL exgsspg(neid, glbl_ids, glbl_ec, glbl_dfc, ierr)
753 IF (ierr.NE.0)
GOTO 210
756 IF (glbl_ids(i).NE.(3*i)) ierr = -1
757 IF (glbl_ec(i).NE.(2*i)) ierr = -1
758 IF (glbl_dfc(i).NE.1) ierr = -1
765 SUBROUTINE extglbp(NEID, IERR)
768 include
'test_nem.inc' 770 INTEGER IPROC, NUM_IN, NUM_BN, NUM_EN, NUM_IE, NUM_BE,
773 DO 150 iproc = 0,(nprocf-1)
774 CALL exglbp(neid, num_in, num_bn, num_en, num_ie, num_be,
775 1 num_ncm, num_ecm, iproc, ierr)
777 IF (ierr.NE.0)
GOTO 210
779 IF(num_in.NE.nintn) ierr = -1
780 IF(num_bn.NE.nborn) ierr = -1
781 IF(num_en.NE.nextn) ierr = -1
782 IF(num_ie.NE.ninte) ierr = -1
783 IF(num_be.NE.nbore) ierr = -1
784 IF(num_ncm.NE.nncmap) ierr = -1
785 IF(num_ecm.NE.necmap) ierr = -1
792 SUBROUTINE extgnm(NEID, IERR)
795 include
'test_nem.inc' 797 INTEGER IPROC, I, J, NMAPI(NINTN), NMAPB(NBORN), NMAPE(NEXTN)
800 DO 200 iproc = 0,(nprocf-1)
802 CALL exgnmp(neid, nmapi, nmapb, nmape, iproc, ierr)
804 IF (ierr.NE.0)
GOTO 210
807 IF (nmapi(j).NE.i) err = -1
811 IF (nmapb(j).NE.i) err = -1
815 IF (nmape(j).NE.i) err = -1
821 IF (ierr.NE.0)
GOTO 210
829 SUBROUTINE extgem(NEID, IERR)
832 include
'test_nem.inc' 834 INTEGER IPROC, I, J, EMAPI(NINTE), EMAPB(NBORE)
837 DO 200 iproc = 0,(nprocf-1)
838 CALL exgemp(neid, emapi, emapb, iproc, ierr)
840 IF (ierr.NE.0)
GOTO 210
843 IF (emapi(j).NE.i) err = -1
847 IF (emapb(j).NE.i) err = -1
853 IF (ierr.NE.0)
GOTO 210
861 SUBROUTINE extgncm(NEID, IERR)
864 include
'test_nem.inc' 866 INTEGER IPROC, I, J, NMAPIDS(NNCMAP), NMAPCNT(NNCMAP),
867 1 NIDS(NCNTCM), PIDS(NCNTCM), EMAPIDS(NECMAP), EMAPCNT(NECMAP)
869 DO 200 iproc = 0,(nprocf-1)
870 CALL exgcmp(neid, nmapids, nmapcnt, emapids, emapcnt,
873 IF (ierr.NE.0)
GOTO 210
876 CALL exgncm(neid, nmapids(i), nids, pids, iproc, ierr)
878 IF (ierr.NE.0)
GOTO 210
880 IF (nmapids(i).NE.i) ierr = -1
882 IF (nids(j).NE.2*j) ierr = -1
883 IF (pids(j).NE.3*j) ierr = -1
886 IF (ierr.NE.0)
GOTO 210
895 SUBROUTINE extgecm(NEID, IERR)
898 include
'test_nem.inc' 900 INTEGER IPROC, I, EMAPIDS(NECMAP), EMAPCNT(NECMAP), EIDS(ECNTCM),
901 1 PIDS(ECNTCM), SIDS(ECNTCM), NMAPIDS(NNCMAP), NMAPCNT(NNCMAP)
903 DO 200 iproc = 0,(nprocf-1)
904 CALL exgcmp(neid, nmapids, nmapcnt, emapids, emapcnt,
907 IF (ierr.NE.0)
GOTO 210
910 CALL exgecm(neid, emapids(i), eids, sids, pids, iproc, ierr)
912 IF (ierr.NE.0)
GOTO 210
914 IF (emapids(i).NE.(2*i)) ierr = -1
916 IF (eids(j).NE.2*j) ierr = -1
917 IF (sids(j).NE.3*j) ierr = -1
918 IF (pids(j).NE.4*j) ierr = -1
921 IF (ierr.NE.0)
GOTO 210