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.
51 lines
1.4 KiB
51 lines
1.4 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
|
|
|
|
SUBROUTINE DONRM2 (COORD, LTNESS, MAP, DIRCOS, TEMP,
|
|
* NSEG, NUMNIQ, NUMNP)
|
|
DIMENSION COORD(NUMNP, *), LTNESS(2,*), MAP(*), DIRCOS(4,*),
|
|
* TEMP(2,*)
|
|
|
|
DO 10 ISEG = 1, NSEG
|
|
XI = COORD( LTNESS(1,ISEG),1 )
|
|
YI = COORD( LTNESS(1,ISEG),2 )
|
|
|
|
XJ = COORD( LTNESS(2,ISEG),1 )
|
|
YJ = COORD( LTNESS(2,ISEG),2 )
|
|
|
|
DX = XI - XJ
|
|
DY = YI - YJ
|
|
RMAG = SQRT ( DX**2 + DY**2)
|
|
|
|
TEMP(1,ISEG) = -DY / RMAG
|
|
TEMP(2,ISEG) = DX / RMAG
|
|
|
|
10 CONTINUE
|
|
|
|
DO 20 I=1,NUMNIQ
|
|
DIRCOS(1,I) = 0.0
|
|
DIRCOS(2,I) = 0.0
|
|
20 CONTINUE
|
|
|
|
DO 40 ISEG = 1, NSEG
|
|
DO 30 J = 1, 2
|
|
MISEG = MAP( 2 * (ISEG-1) + J )
|
|
DIRCOS(1,MISEG) = DIRCOS(1,MISEG) + TEMP(1,ISEG)
|
|
DIRCOS(2,MISEG) = DIRCOS(2,MISEG) + TEMP(2,ISEG)
|
|
30 CONTINUE
|
|
40 CONTINUE
|
|
|
|
C ... NORMALIZE ALL DIRECTION COSINES
|
|
|
|
DO 50 I = 1, NUMNIQ
|
|
A = DIRCOS(1,I)
|
|
B = DIRCOS(2,I)
|
|
R = SQRT(A**2 + B**2)
|
|
DIRCOS(1,I) = A/R
|
|
DIRCOS(2,I) = B/R
|
|
50 CONTINUE
|
|
RETURN
|
|
END
|
|
|