[57] | 1 | SUBROUTINE SGMTML(X,I,J,K) |
---|

| 2 | |
---|

| 3 | !Purpose: Form product of operators to generate the full group |
---|

| 4 | |
---|

[211] | 5 | INCLUDE '../INCLDS/COPYRIGT.FOR' |
---|

[57] | 6 | |
---|

| 7 | C This program was developed for |
---|

| 8 | C The Division of Chemistry |
---|

| 9 | C of |
---|

| 10 | C The National Research Council of Canada |
---|

| 11 | C by |
---|

| 12 | C Allen C. Larson, 14 Cerrado Loop, Santa Fe, NM 87505, USA |
---|

| 13 | |
---|

| 14 | REAL*4 X(5,4,25) |
---|

| 15 | INTEGER*4 I !Input matrix number |
---|

| 16 | INTEGER*4 J !Input matrix number |
---|

| 17 | INTEGER*4 K !Output matrix number |
---|

| 18 | |
---|

| 19 | DO L=1,4 |
---|

| 20 | DO M=1,4 |
---|

| 21 | X(L,M,K) = 0.0 |
---|

| 22 | DO N=1,4 |
---|

| 23 | X(L,M,K) = X(L,M,K)+X(L,N,J)*X(N,M,I) |
---|

| 24 | END DO |
---|

| 25 | END DO |
---|

| 26 | END DO |
---|

| 27 | |
---|

| 28 | X(1,4,K) = MOD(NINT((7.0+X(1,4,K))*12)/12.0,1.0) !Force the translations to be in the cell |
---|

| 29 | X(2,4,K) = MOD(NINT((7.0+X(2,4,K))*12)/12.0,1.0) !Also reset them to the value nearest to n/12 |
---|

| 30 | X(3,4,K) = MOD(NINT((7.0+X(3,4,K))*12)/12.0,1.0) |
---|

| 31 | |
---|

| 32 | X(5,1,K) = 81*(2*X(1,1,K)+3*X(1,2,K)+4*X(1,3,K)) !Calculate a matrix flag |
---|

| 33 | 1 +9*(2*X(2,1,K)+3*X(2,2,K)+4*X(2,3,K)) |
---|

| 34 | 1 +2*X(3,1,K)+3*X(3,2,K)+4*X(3,3,K) |
---|

| 35 | X(5,2,K) = 1728*X(1,4,K)+144*X(2,4,K)+12*X(3,4,K) !Calculate the translation flag |
---|

| 36 | X(5,2,K) = NINT(X(5,2,K)) !These should be whole numbers |
---|

| 37 | X(5,3,K) = IEOR(NINT(X(5,3,J)),NINT(X(5,3,I))) !Note the generator matrix number |
---|

| 38 | X(5,4,K) = 0.0 |
---|

| 39 | |
---|

| 40 | RETURN |
---|

| 41 | END |
---|