Cloned SEACAS for EXODUS library with extra build files for internal package management.
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.
 
 
 
 
 
 

81 lines
2.6 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 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