C----------------------------------------------------------------------- C Input from the existing cell C----------------------------------------------------------------------- SUBROUTINE CINPUT (IOUT,PRIM,ANPRIM,TRANSF) INCLUDE 'COMDIF' DIMENSION A(3),ALP(3),SYS(7),TRANS(3,3,7),AA(3,3),PRIM(3), $ ANPRIM(3),TRANSF(3,3),H(3,3) CHARACTER CATMOD*1,SYS*1,LINE*80 DATA SYS/'P','A','B','C','I','F','R'/ DATA TRANS/ 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0,.5,.5, $ 0, 0, 1, .5, 0,.5, 0, 1, 0, 0, 0, 1, .5,.5, 0, $ 0, 1, 0, 0, 0, 1, .5,.5,.5, 0, 1, 0, 0, 0, 1, $ .5,.5, 0, 0,.5,.5, .5, 0,.5, $ .666667, .333333, .333333, $ -.333333, .333333, .333333, $ -.333333, -.666667, .333333/ RADEG = 180./3.141593 DO 100 I = 1,3 A(I) = AP(I) ALP(I) = RADEG*ATAN2(SANG(I),CANG(I)) 100 CONTINUE 110 WRITE (COUT,10000) CALL ALFNUM (LINE) CATMOD = LINE(1:1) IF (CATMOD .EQ. ' ') CATMOD = 'P' READ (CATMOD,11000) ATMOD WRITE (COUT,12000) A,ALP,CATMOD CALL GWRITE (IOUT,' ') DO 120 I = 1,7 IF (CATMOD .EQ. SYS(I)) GO TO 130 120 CONTINUE GO TO 110 C----------------------------------------------------------------------- C CRAP is a dummy floating argument C----------------------------------------------------------------------- 130 CALL MATRIX(A,ALP,AA,CRAP,'ORTHOG') DO 140 N = 1,3 CALL MATRIX(AA,TRANS(1,N,I),H(1,N),CRAP,'MATVEC') 140 CONTINUE DO 150 N = 1,3 CALL MATRIX(AA,TRANS(1,N,I),PRIM(N),CRAP,'LENGTH') J = MOD(N,3) + 1 K = 6 - N - J CALL MATRIX(H(1,J),H(1,K),COSNG,CRAP,'SCALPR') ANPRIM(N) = ACOS(COSNG)*RADEG 150 CONTINUE DO 160 N = 1,3 DO 160 NN = 1,3 TRANSF(NN,N) = TRANS(N,NN,I) 160 CONTINUE CALL BURGER(IOUT,PRIM,ANPRIM,TRANSF) RETURN 10000 FORMAT (' Lattice Type (P) ? ',$) 11000 FORMAT (A1) 12000 FORMAT (' Input Cell:',F8.3,5F10.3/12X,'Lattice Type ',A) END