You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.3 KiB
65 lines
2.3 KiB
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
|
C NTESS, the U.S. Government retains certain rights in this software.
|
|
C
|
|
C See packages/seacas/LICENSE for details
|
|
|
|
C=======================================================================
|
|
SUBROUTINE SWPESS (NUMESS, IDESS, NEESS, NEDSS,
|
|
* IXEESS, IXEDSS, LTEESS, LTSSS, LTSNC, FAC, ALLONE, NONQUD,
|
|
* COMTOP)
|
|
C=======================================================================
|
|
|
|
C --Parameters:
|
|
C --
|
|
C -- NUMESS - IN/OUT - the number of element side sets
|
|
C -- LESSEL - IN/OUT - the length of the element side sets element list
|
|
C -- IDESS - IN/OUT - the element side set ID for each set
|
|
C -- NEESS - IN/OUT - the number of elements for each set
|
|
C -- NEDSS - IN/OUT - the number of dist-fac for each set
|
|
C -- IXEESS - IN/OUT - the index of the first element for each set
|
|
C -- IXEDSS - IN/OUT - the index of the first dist-fac for each set
|
|
C -- LTEESS - IN/OUT - the elements for all sets
|
|
C -- LTSSS - IN/OUT - the sides for all sets
|
|
C -- LTSNC - IN/OUT - the face count for each element/side in the list
|
|
C -- FACESS - IN/OUT - the distribution factors for all sets????????????
|
|
|
|
C -- USESDF - IN - true if df are non-unity, false if all unity
|
|
C -- NONQUAD - IN - true if model contains non-hex/non-quad elements
|
|
|
|
INTEGER IDESS(*) ! NUMESS
|
|
INTEGER NEESS(*) ! NUMESS
|
|
INTEGER NEDSS(*) ! NUMESS
|
|
INTEGER IXEESS(*) ! NUMESS
|
|
INTEGER IXEDSS(*) ! NUMESS
|
|
INTEGER LTEESS(*) ! LESSEL
|
|
INTEGER LTSSS(*) ! LESSEL
|
|
INTEGER LTSNC(*) ! LESSEL
|
|
REAL FAC(*) ! LESSDL
|
|
LOGICAL ALLONE, NONQUD
|
|
CHARACTER*(*) COMTOP
|
|
|
|
IF (COMTOP(:3) .NE. 'SHE') THEN
|
|
CALL PRTERR ('PROGRAM',
|
|
* 'Swapping of sidesets on non-shell elements not supported')
|
|
return
|
|
END IF
|
|
DO 30 I=1, NUMESS
|
|
IF (IDESS(I) .LT. 0) THEN
|
|
CALL SWPS1(NEESS(I), LTSSS(IXEESS(I)))
|
|
IDESS(I) = -IDESS(I)
|
|
END IF
|
|
30 CONTINUE
|
|
RETURN
|
|
END
|
|
|
|
subroutine swps1(numsid, side)
|
|
|
|
integer numsid
|
|
integer side(*)
|
|
|
|
do 10 i = 1, numsid
|
|
side(i) = 3 - side(i)
|
|
10 continue
|
|
return
|
|
end
|
|
|