C----------------------------------------------------------------------- C This subroutine gets the next DH set for automatic data collection C----------------------------------------------------------------------- SUBROUTINE NEXSEG INCLUDE 'COMDIF' DIMENSION ISET(25) IUPDWN = 1 READ (IID,REC=4) ICENT,NUMDH,(SCRAP,I = 1,48),NSYM,LSET,ISET C----------------------------------------------------------------------- C IHO(5) = 1 means pointer mode, i.e. typed in DH matrices. C----------------------------------------------------------------------- IF (IHO(5) .EQ. 1) THEN IHO(6) = IHO(6) + 1 NHO = IHO(6) IF (NHO .GT. 25) THEN NSET = 0 RETURN ENDIF NSET = ISET(NHO) IF (NSET .EQ. 0) RETURN NMSEG = 1 MSET = 1 IF (NSET .LT. 0) MSET = -1 IF (NSET .LT. 0) NSET = -NSET DO 100 I = 1,3 DO 100 J = 1,3 IDH(8,I,J) = JRT(I,J,NSET)*MSET 100 CONTINUE NSET = NSET*MSET C----------------------------------------------------------------------- C Normal sequence of sets. NSYM is the max no. of sets (+/-). C If end of data collection set NSET = 0 C----------------------------------------------------------------------- ELSE IF (NSET .EQ. -NSYM) THEN NSET = 0 RETURN C----------------------------------------------------------------------- C If a + set make it -; if a - set get the next + set. C----------------------------------------------------------------------- ELSE IF (NSET .GE. 0) THEN NSET = -NSET NMSEG = 1 DO 110 I = 1,3 DO 110 J = 1,3 IDH(8,I,J) = -IDH(8,I,J) 110 CONTINUE ELSE NSET = 1 - NSET DO 120 I = 1,3 DO 120 J = 1,3 IDH(8,I,J) = JRT(I,J,NSET) 120 CONTINUE NMSEG = 1 ENDIF ENDIF RETURN END