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.

33 lines
1.2 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
subroutine dorot(ndim, numnp, xn, yn, zn, rotmat, rotcen)
real xn(*), yn(*), zn(*)
real rotmat(3,3), rotcen(3)
if (NDIM .EQ. 3) THEN
DO 10 JNP = 1, NUMNP
X = XN(JNP) - ROTCEN(1)
Y = YN(JNP) - ROTCEN(2)
Z = ZN(JNP) - ROTCEN(3)
XN(JNP) = X*ROTMAT(1,1) + Y*ROTMAT(2,1) + Z*ROTMAT(3,1)
$ + ROTCEN(1)
YN(JNP) = X*ROTMAT(1,2) + Y*ROTMAT(2,2) + Z*ROTMAT(3,2)
$ + ROTCEN(2)
ZN(JNP) = X*ROTMAT(1,3) + Y*ROTMAT(2,3) + Z*ROTMAT(3,3)
$ + ROTCEN(3)
10 continue
ELSE IF (NDIM .EQ. 2) THEN
DO 20 JNP = 1, NUMNP
X = XN(JNP) - ROTCEN(1)
Y = YN(JNP) - ROTCEN(2)
XN(JNP) = X*ROTMAT(1,1) + Y*ROTMAT(2,1) + ROTCEN(1)
YN(JNP) = X*ROTMAT(1,2) + Y*ROTMAT(2,2) + ROTCEN(2)
20 continue
END IF
return
end