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.
82 lines
2.6 KiB
82 lines
2.6 KiB
2 years ago
|
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 SORTID (STYP, ITOTAL, IBEGIN, IEND)
|
||
|
C=======================================================================
|
||
|
|
||
|
C --*** SORTID *** (ALGEBRA) Gather equation variables of one type
|
||
|
C -- Written by Amy Gilkey - revised 08/19/87
|
||
|
C --
|
||
|
C --SORTID gathers the variables of the specified type into one area
|
||
|
C --of the /VAR../ arrays and orders these variables by IDVAR.
|
||
|
C --The variables are sorted at the start of the specified range.
|
||
|
C --
|
||
|
C --Parameters:
|
||
|
C -- STYP - IN - the variable type to be sorted
|
||
|
C -- ITOTAL - IN - the ending /VAR../ index of the variables to be ordered
|
||
|
C -- IBEGIN - IN - the starting /VAR../ index of the variables of type STYP
|
||
|
C -- IEND - OUT - the ending /VAR../ index of the variables of type STYP
|
||
|
C --
|
||
|
C --Common Variables:
|
||
|
C -- Sets NAMVAR, TYPVAR, IDVAR, ISTVAR, IEVVAR of /VAR../
|
||
|
|
||
|
include 'ag_namlen.blk'
|
||
|
include 'exodusII.inc'
|
||
|
include 'ag_var.blk'
|
||
|
|
||
|
CHARACTER STYP
|
||
|
|
||
|
CHARACTER*(maxnam) NAMTMP
|
||
|
CHARACTER TYPTMP
|
||
|
INTEGER ISTTMP(3)
|
||
|
|
||
|
IEND = IBEGIN - 1
|
||
|
|
||
|
DO 110 NVAR = IBEGIN, ITOTAL
|
||
|
|
||
|
NID = 0
|
||
|
DO 100 I = NVAR, ITOTAL
|
||
|
IF (TYPVAR(I) .EQ. STYP) THEN
|
||
|
IF (NID .EQ. 0) NID = I
|
||
|
IF (IDVAR(I) .LT. IDVAR(NID)) NID = I
|
||
|
END IF
|
||
|
100 CONTINUE
|
||
|
IF (NID .EQ. 0) GOTO 120
|
||
|
|
||
|
IEND = IEND + 1
|
||
|
|
||
|
IF (NID .NE. NVAR) THEN
|
||
|
NAMTMP = NAMVAR(NVAR)
|
||
|
TYPTMP = TYPVAR(NVAR)
|
||
|
IDTMP = IDVAR(NVAR)
|
||
|
ISTTMP(1) = ISTVAR(1,NVAR)
|
||
|
ISTTMP(2) = ISTVAR(2,NVAR)
|
||
|
ISTTMP(3) = ISTVAR(3,NVAR)
|
||
|
IEVTMP = IEVVAR(NVAR)
|
||
|
|
||
|
NAMVAR(NVAR) = NAMVAR(NID)
|
||
|
TYPVAR(NVAR) = TYPVAR(NID)
|
||
|
IDVAR(NVAR) = IDVAR(NID)
|
||
|
ISTVAR(1,NVAR) = ISTVAR(1,NID)
|
||
|
ISTVAR(2,NVAR) = ISTVAR(2,NID)
|
||
|
ISTVAR(3,NVAR) = ISTVAR(3,NID)
|
||
|
IEVVAR(NVAR) = IEVVAR(NID)
|
||
|
|
||
|
NAMVAR(NID) = NAMTMP
|
||
|
TYPVAR(NID) = TYPTMP
|
||
|
IDVAR(NID) = IDTMP
|
||
|
ISTVAR(1,NID) = ISTTMP(1)
|
||
|
ISTVAR(2,NID) = ISTTMP(2)
|
||
|
ISTVAR(3,NID) = ISTTMP(3)
|
||
|
IEVVAR(NID) = IEVTMP
|
||
|
END IF
|
||
|
110 CONTINUE
|
||
|
|
||
|
120 CONTINUE
|
||
|
RETURN
|
||
|
END
|