38 lines
1.2 KiB
Fortran
38 lines
1.2 KiB
Fortran
C-----------------------------------------------------------------------
|
|
C Get the lattice mode of the conventional cell
|
|
C-----------------------------------------------------------------------
|
|
SUBROUTINE LATMOD (LAT,MODE)
|
|
REAL LAT
|
|
DIMENSION LAT(3,3),M(3)
|
|
CHARACTER*1 CMODE
|
|
CALL MATRIX(LAT(1,1),LAT(1,2),LAT(1,3),DET,'DETERM')
|
|
IDET = ABS(DET) + .1
|
|
CMODE = ' '
|
|
IF (IDET .EQ. 1) CMODE = 'P'
|
|
IF (IDET .EQ. 3) CMODE = 'R'
|
|
IF (IDET .EQ. 4) CMODE = 'F'
|
|
IF (IDET .NE. 2) GO TO 130
|
|
DO 120 I = 1,2
|
|
M(1) = MOD(I,2)
|
|
DO 120 J = 1,2
|
|
M(2) = MOD(J,2)
|
|
DO 120 K = 1,2
|
|
M(3) = MOD(K,2)
|
|
IF (M(1) + M(2) + M(3) .LT. 2) GO TO 120
|
|
DO 110 L = 1,3
|
|
ISUM = 0
|
|
DO 100 N = 1,3
|
|
100 ISUM = ISUM + M(N)*ABS(LAT(L,N)) + 0.1
|
|
IF (MOD(ISUM,2) .NE. 0) GO TO 120
|
|
110 CONTINUE
|
|
CMODE = 'I'
|
|
IF (M(1) .EQ. 0) CMODE = 'A'
|
|
IF (M(2) .EQ. 0) CMODE = 'B'
|
|
IF (M(3) .EQ. 0) CMODE = 'C'
|
|
GO TO 130
|
|
120 CONTINUE
|
|
130 READ (CMODE,10000) MODE
|
|
RETURN
|
|
10000 FORMAT (A1)
|
|
END
|