SUBROUTINE IDENT_1 ( D2C, N1, N2, SPACING, PEAK, IMARK, NPTS ) C C Decide if this data is on fringe -2, -1, 0, +1, or +2. C by chosing the fringe that gives the smallest deviation. C IMPLICIT UNDEFINED (A-Z) INTEGER *4 IMARK(*), I, J, K, NPTS, N1, N2, IFRINGE(5) REAL *4 D2C(N1,N2), PEAK(*), CHISQ REAL *4 NEWCHI, DELTA1, DELTA2, SPACING(9,2) DATA IFRINGE / 0, 1, -1, 2, -2 / DO I = 1, NPTS DO K = 1, 2 DELTA1 = ABS( D2C(I,K) - PEAK(K) - SPACING(1,1) ) DELTA2 = ABS( D2C(I,K) - PEAK(K) - SPACING(1,2) ) END DO CHISQ = MAX ( DELTA1, DELTA2 ) IMARK(I) = 1 DO J = 2, 5 NEWCHI = 0. DELTA1 = MIN ( $ ABS( D2C(I,1) - PEAK(1) - SPACING(2*J-1,1) ), $ ABS( D2C(I,1) - PEAK(1) - SPACING(2*J-2,1) ) ) DELTA2 = MIN ( $ ABS( D2C(I,2) - PEAK(2) - SPACING(2*J-1,2) ), $ ABS( D2C(I,2) - PEAK(2) - SPACING(2*J-2,2) ) ) NEWCHI = MAX( DELTA1, DELTA2 ) IF ( NEWCHI .LT. CHISQ ) THEN IMARK(I) = J CHISQ = NEWCHI END IF END DO IMARK(I) = IFRINGE(IMARK(I)) END DO RETURN END