24 lines
914 B
Fortran
24 lines
914 B
Fortran
C-----------------------------------------------------------------------
|
|
C 4*4 matrix multiply for the space group routine
|
|
C-----------------------------------------------------------------------
|
|
SUBROUTINE SGMTML (X,I,Y,J,Z,K)
|
|
DIMENSION X(5,4,24),Y(5,4,24),Z(5,4,24)
|
|
DO 100 L = 1,4
|
|
DO 100 M = 1,4
|
|
Z(L,M,K) = 0.0
|
|
DO 100 N = 1,4
|
|
Z(L,M,K) = Z(L,M,K) + Y(L,N,J)*X(N,M,I)
|
|
100 CONTINUE
|
|
Z(1,4,K) = AMOD(5.0 + Z(1,4,K),1.0)
|
|
Z(2,4,K) = AMOD(5.0 + Z(2,4,K),1.0)
|
|
Z(3,4,K) = AMOD(5.0 + Z(3,4,K),1.0)
|
|
Z(5,1,K) = 81*(2*Z(1,1,K) + 3*Z(1,2,K) + 4*Z(1,3,K)) +
|
|
$ 9*(2*Z(2,1,K) + 3*Z(2,2,K) + 4*Z(2,3,K)) +
|
|
$ 2*Z(3,1,K) + 3*Z(3,2,K) + 4*Z(3,3,K)
|
|
Z(5,2,K) = 1728*Z(1,4,K) + 144*Z(2,4,K) + 12*Z(3,4,K)
|
|
Z(5,3,K) = 0.0
|
|
Z(5,4,K) = 0.0
|
|
CONTINUE
|
|
RETURN
|
|
END
|