program fphase IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER*4 (I-N) PARAMETER (MX3=1000) CHARACTER*1 OK CHARACTER*4 JOB LOGICAL LBMAT DIMENSION ZIM(MX),AS(3,MX3),CHAR(MX),FINT(MX3,MX3) COMMON/ITERA/AMULT(MX3),SCFAC(MX), 1ZM(MX3),FCAR(MX3,MX3),SN(MX3),FNEW(MX3,MX3), 2SMAT(MX3,MX3),Q(MX3),ZNU(MX3),NC(MX,MX),NA,NM(MX) COMMON /DIAG/E(MX3) DATA IERR/0/ C write(6,*)unifies phases in two sets of S-vectors if(iargc().eq.0)then write('specify the file names in command line') stop endif call getarg(1,f1) call getarg(2,f2) OPEN(34,FILE=f1) read(34,*)NI,NAT3 if(NI.gt.MX3.or.NAT3.gt.MX3)then write(6,*)'dimension overflow' stop endif do 2 i=1,NAT3/3 2 READ(34,*)IAT(i),X(i),Y(i),Z(i) read(34,*) DO 1 I=1,NAT3/3 DO 1 J=1,NI IU=3*(I-1) 1 read(34,15)I,K,S(ZZIU+1,J),S(IU+2,J),S(IU+3,J) 15 FORMAT(2I5,3F11.6) WRITE(34,11)NI WRITE(34,13)(AS(1,I),I=IRANGE,JRANGE) 13 format(6F11.3) CLOSE(34) OPEN(34,FILE=f1) WRITE(34,10)NI,NAT3,NAT3/3 10 FORMAT(3I5) OPEN(35,FILE='FILE.X',STATUS='OLD') READ(35,*) READ(35,*)NAT DO 3 I=1,NAT READ(35,*)IAT,X,Y,Z 3 WRITE(34,11)IAT,X,Y,Z 11 FORMAT(I4,3F12.6) CLOSE(35) WRITE(34,14) 14 FORMAT(' Atom Mode X-disp. Y-disp. Z-disp.') DO 1 I=1,NAT3/3 DO 1 J=IRANGE,JRANGE IU=3*(I-1) K=NAT3-J+1 1 WRITE(34,15)I,K,S(IU+1,J),S(IU+2,J),S(IU+3,J) 15 FORMAT(2I5,3F11.6) WRITE(34,11)NI WRITE(34,13)(AS(1,I),I=IRANGE,JRANGE) 13 format(6F11.3) CLOSE(34) OPEN(34,FILE=f1) WRITE(34,10)NI,NAT3,NAT3/3 10 FORMAT(3I5) OPEN(35,FILE='FILE.X',STATUS='OLD') READ(35,*) READ(35,*)NAT DO 3 I=1,NAT READ(35,*)IAT,X,Y,Z 3 WRITE(34,11)IAT,X,Y,Z 11 FORMAT(I4,3F12.6) CLOSE(35) WRITE(34,14) 14 FORMAT(' Atom Mode X-disp. Y-disp. Z-disp.') DO 1 I=1,NAT3/3 DO 1 J=IRANGE,JRANGE IU=3*(I-1) K=NAT3-J+1 1 WRITE(34,15)I,K,S(IU+1,J),S(IU+2,J),S(IU+3,J) 15 FORMAT(2I5,3F11.6) WRITE(34,11)NI WRITE(34,13)(AS(1,I),I=IRANGE,JRANGE) 13 format(6F11.3) CLOSE(34) stop