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