Initial revision
This commit is contained in:
58
difrac/nexseg.f
Normal file
58
difrac/nexseg.f
Normal file
@@ -0,0 +1,58 @@
|
||||
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
|
||||
Reference in New Issue
Block a user