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.
59 lines
1.9 KiB
59 lines
1.9 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 SCLATR (NELBLK, IDELB, NUMATR, IDATR, DOALLA,
|
|
* IDBLK, DOALLB, ASCALE, ATRSCL, VERBOS, SCLSET)
|
|
C=======================================================================
|
|
|
|
INTEGER IDELB(*)
|
|
INTEGER NUMATR(*)
|
|
LOGICAL DOALLA
|
|
LOGICAL DOALLB
|
|
REAL ATRSCL(2,*)
|
|
C ... Row 1 == value to set attribute to, Row 2 == value to scale by.
|
|
LOGICAL VERBOS
|
|
LOGICAL SCLSET
|
|
C ... SCLSET == .TRUE. then do scale, .FALSE. then set to value
|
|
|
|
IAT = 0
|
|
DO 110 IELB = 1, NELBLK
|
|
IF (IDELB(IELB) .EQ. IDBLK .OR. DOALLB) THEN
|
|
DO 100 IATR = 1, NUMATR(IELB)
|
|
IF (IDATR .EQ. IATR .OR. DOALLA) THEN
|
|
IF (SCLSET) THEN
|
|
ATRSCL(1,IAT+IATR) = 0.0
|
|
ATRSCL(2,IAT+IATR) = ASCALE
|
|
if (verbos) then
|
|
WRITE (*, 10000) IATR, IDELB(IELB), ' Scaled by ',
|
|
* ASCALE
|
|
end if
|
|
ELSE
|
|
ATRSCL(1,IAT+IATR) = ASCALE
|
|
ATRSCL(2,IAT+IATR) = 1.0
|
|
if (verbos) then
|
|
WRITE (*, 10000) IATR, IDELB(IELB), ' Set to ', ASCALE
|
|
end if
|
|
END IF
|
|
|
|
END IF
|
|
100 CONTINUE
|
|
END IF
|
|
IAT = IAT + NUMATR(IELB)
|
|
110 CONTINUE
|
|
RETURN
|
|
|
|
10000 FORMAT (1X, 'Attribute', I3, ' of Block', I5,A, 1PE10.3)
|
|
END
|
|
|
|
SUBROUTINE CNTATR (NELBLK, NUMATR, IAT)
|
|
INTEGER NUMATR(*)
|
|
IAT = 0
|
|
DO 110 IELB = 1, NELBLK
|
|
IAT = IAT + NUMATR(IELB)
|
|
110 CONTINUE
|
|
RETURN
|
|
END
|
|
|