1- C Copyright(C) 1999-2020, 2022 National Technology & Engineering Solutions
1+ C Copyright(C) 1999-2020, 2022, 2025 National Technology & Engineering Solutions
22C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
33C NTESS, the U.S. Government retains certain rights in this software.
44C
@@ -14,7 +14,7 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
1414 include ' exodusII.inc'
1515 CHARACTER * 80 TITLE, COMMENT
1616 INTEGER IA(* )
17- DIMENSION A(* ), TIME(* ), MAT(6 ,* ), DISP(NUMNP,* ), CRD(NUMNP,* ),
17+ DIMENSION A(* ), TIME(* ), MAT(7 ,* ), DISP(NUMNP,* ), CRD(NUMNP,* ),
1818 * LINK(* ), DENSTY(* ), WAVE(* )
1919 INTEGER ITMSEL(* ), ISEVOK(* )
2020 CHARACTER * (MXSTLN) NAMEGL(* ), NAMENV(* ), NAMEEL(* )
@@ -102,8 +102,8 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
102102
103103C ... GET SOME SCRATCH SPACE
104104
105- CALL MDRSRV (' SCRTCH' , ISCR, NDIM* NUMNP)
106- CALL MDRSRV (' SCRTC2' , ISCR2, NDIM* NUMNP)
105+ CALL MDRSRV (' SCRTCH' , ISCR, NDIM* MAX (NUMEL, NUMNP) )
106+ CALL MDRSRV (' SCRTC2' , ISCR2, NDIM* MAX (NUMEL, NUMNP) )
107107 CALL MDRSRV (' SORTMP' , ISMP, MAX (NUMEL, NUMNP) )
108108 CALL MDRSRV (' NODSEL' , INDSEL, NUMNP)
109109 CALL MDRSRV (' ELMSEL' , IELSEL, NUMEL)
@@ -247,6 +247,11 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
247247C -----------------------------------------------------------------------
248248 ELSE IF (NAME .EQ. ' TIMESTEP' ) THEN
249249
250+ if (mat(7 ,1 ) .eq. 4 ) then
251+ CALL PRTERR (' CMDERR' ,
252+ * ' TIMESTEP command not supported for TET meshes' )
253+ GO TO 20
254+ end if
250255 CALL FFREAL (IFLD, KV, RV,
251256 * ' common material wavespeed' , 0.0 , CWAVE, * 20 )
252257 IF (CWAVE .GT. 0 .) THEN
@@ -310,7 +315,7 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
310315 END IF
311316 CALL CAVITY (A, CRD, A(IBC1), A(IBC2), A(IBC3), A(IBC4),
312317 * A(IBC5),A(IBC6), A(IBC7), A(IBC8), DISP, NUMNP, NDIM,
313- * NUMESS, TIME, ITMSEL, TITLE, CENT, CENTER)
318+ * NUMESS, TIME, ITMSEL, TITLE, CENT, CENTER, MAT( 7 , 1 ) )
314319
315320 ELSE IF (NAME .EQ. ' MCAVITY' ) THEN
316321 NUMCAV = 0
@@ -346,10 +351,15 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
346351 END IF
347352 CALL MULTI_CAVITY (A, CRD, A(IBC1), A(IBC2), A(IBC3), A(IBC4),
348353 * A(IBC5),A(IBC6), A(IBC7), A(IBC8), DISP, NUMNP, NDIM,
349- * NUMESS, TIME, ITMSEL, TITLE, CENT, CENTER)
354+ * NUMESS, TIME, ITMSEL, TITLE, CENT, CENTER, MAT( 7 , 1 ) )
350355
351356C -----------------------------------------------------------------------
352357 ELSE IF (NAME .EQ. ' GAP' ) THEN
358+ if (mat(7 ,1 ) .eq. 4 ) then
359+ CALL PRTERR (' CMDERR' ,
360+ * ' GAP command not supported for TET meshes' )
361+ GO TO 20
362+ end if
353363 CALL FFINTG (IFLD, KV, IVAL,
354364 * ' gap master surface' , 0 , IMAS, * 20 )
355365 CALL FFINTG (IFLD, KV, IVAL,
@@ -373,6 +383,11 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
373383
374384C -----------------------------------------------------------------------
375385 ELSE IF (NAME .EQ. ' OVERLAP' ) THEN
386+ if (mat(7 ,1 ) .eq. 4 ) then
387+ CALL PRTERR (' CMDERR' ,
388+ * ' OVERLAP command not supported for TET meshes' )
389+ GO TO 20
390+ end if
376391 CALL FFINTG (IFLD, KV, IVAL,
377392 * ' overlap master surface' , 0 , IMAS, * 20 )
378393 CALL FFINTG (IFLD, KV, IVAL,
@@ -529,12 +544,12 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
529544 END IF
530545
531546 ELSE IF (LISTYP .EQ. ' VOLUME' ) THEN
532- CALL PRVOL (ndim, CRD, link, numnp, numel, 8 ,
547+ CALL PRVOL (ndim, CRD, link, numnp, numel, mat( 7 , 1 ) ,
533548 & a(ismp), IHARD)
534549 CALL PRTERR (' CMDSPEC' ,
535550 * ' Element Volumes were written to the list file' )
536551 ELSE IF (LISTYP .EQ. ' NODALVOL' ) THEN
537- CALL PRNVOL (ndim, CRD, link, numnp, numel, 8 ,
552+ CALL PRNVOL (ndim, CRD, link, numnp, numel, mat( 7 , 1 ) ,
538553 & a(ismp), IHARD)
539554 CALL PRTERR (' CMDSPEC' ,
540555 * ' Nodal Volumes were written to the list file' )
@@ -739,11 +754,11 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
739754 END IF
740755 IF (ALLTIM) THEN
741756 CALL LIMITS (A(IXYZMN), A(IXYZMX), CRD, LINK, MAT, NDIM,
742- * NELBLK, 2 ** NDIM , ALLTIM, TIME, ITMSEL,
757+ * NELBLK, MAT( 7 , 1 ) , ALLTIM, TIME, ITMSEL,
743758 * DISP, NUMNP)
744759 ELSE
745760 CALL LIMITS (A(IXYZMN), A(IXYZMX), CRD, LINK, MAT, NDIM,
746- * NELBLK, 2 ** NDIM , ALLTIM, TIME, ITMSEL,
761+ * NELBLK, MAT( 7 , 1 ) , ALLTIM, TIME, ITMSEL,
747762 * CRD, NUMNP)
748763 END IF
749764 CALL MDDEL (' XYZMIN' )
@@ -838,6 +853,11 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
838853 END IF
839854C ----------------------------------------
840855 ELSE IF (NAME .EQ. ' CONDITIO' ) THEN
856+ if (mat(7 ,1 ) .eq. 4 ) then
857+ CALL PRTERR (' CMDERR' ,
858+ * ' CONDITION command not supported for TET meshes' )
859+ GO TO 20
860+ end if
841861 LTMP = .FALSE.
842862 CALL FFCHAR (IFLD, KV, CV, ' NODEBUG' , CTMP)
843863 IF (MATSTR(CTMP, ' DEBUG' , 1 )) LTMP = .TRUE.
@@ -861,13 +881,12 @@ SUBROUTINE COMMAND (A, IA, TITLE, TIME, ITMSEL, MAT, DISP,
861881 CALL MEMERR
862882 STOP ' MEMORY'
863883 END IF
864- NNODES = 2 ** NDIM
865884 IF (NDIM .EQ. 2 ) THEN
866- CALL CON2D(CRD, NDIM, NUMNP, LINK, NNODES , NUMEL, MAT,
885+ CALL CON2D(CRD, NDIM, NUMNP, LINK, 2 ** NDIM , NUMEL, MAT,
867886 * NELBLK, A(IELSEL), A(IASPEC), A(ISKEW), A(ITAPER),
868887 * A(IAREA), A(ISUMR), A(IISUM), LTMP)
869888 ELSE
870- CALL CON3D(CRD, NDIM, NUMNP, LINK, NNODES , NUMEL, MAT,
889+ CALL CON3D(CRD, NDIM, NUMNP, LINK, 2 ** NDIM , NUMEL, MAT,
871890 * NELBLK, A(IELSEL), A(IASPEC), A(ISKEW), A(ITAPER),
872891 * A(IAREA), A(ISUMR), A(IISUM), A(ISKX), A(ISKY), A(ISKZ),
873892 * A(ITPX), A(ITPY), A(ITPZ), A(IJAC), LTMP)
0 commit comments