57 lines
1.7 KiB
Fortran
57 lines
1.7 KiB
Fortran
C-----------------------------------------------------------------------
|
|
C Subroutine to find the coarse centre for Chi
|
|
C-----------------------------------------------------------------------
|
|
SUBROUTINE CFIND (TIM)
|
|
INCLUDE 'COMDIF'
|
|
DIMENSION TCOUNT(NSIZE)
|
|
EQUIVALENCE (ACOUNT(9*NSIZE+1),TCOUNT(1))
|
|
ICPSMX = 25000
|
|
STEPM = 0.02
|
|
SENSE = -1.0
|
|
CSTEP = 0.25
|
|
NPTS = 10
|
|
CHI = CHI + NPTS*CSTEP/2
|
|
100 IF (CHI .LT. 0) CHI = CHI + 360
|
|
IF (CHI .GE. 360) CHI = CHI - 360
|
|
CHISV = CHI
|
|
110 CALL ANGSET (THETA,OMEGA,CHISV,PHI,NATT,ICOL)
|
|
ICOUNT = 0
|
|
MCOUNT = 0
|
|
DO 120 I = 1,NPTS
|
|
CALL CCTIME (TIM,TCOUNT(I))
|
|
IF (TCOUNT(I)/TIM .GT. ICPSMX .AND. NATT .LT. NATTEN) THEN
|
|
NATT = NATT + 1
|
|
GO TO 110
|
|
ENDIF
|
|
IF (TCOUNT(I) .GT. MCOUNT) THEN
|
|
MCOUNT = TCOUNT(I)
|
|
ICOUNT = I
|
|
ENDIF
|
|
CHI = CHI + SENSE*CSTEP
|
|
IF (CHI .LT. 0) CHI = CHI + 360
|
|
IF (CHI .GE. 360) CHI = CHI - 360
|
|
CALL ANGSET (THETA,OMEGA,CHI,PHI,NATT,ICOL)
|
|
120 CONTINUE
|
|
IF (ICOUNT .EQ. 1) THEN
|
|
SENSE = -SENSE
|
|
CHI = CHI + 9*SENSE*CSTEP
|
|
GO TO 100
|
|
ELSE IF (ICOUNT .EQ. 10) THEN
|
|
CHI = CHI - 3*SENSE*CSTEP
|
|
GO TO 100
|
|
ENDIF
|
|
CHI = CHI + (ICOUNT - 12.25)*SENSE*CSTEP
|
|
IF(TCOUNT(ICOUNT) .GT. 0)THEN
|
|
TIM = 500.*TIM/TCOUNT(ICOUNT)
|
|
ELSE
|
|
TIM = 500 * TIM
|
|
ENDIF
|
|
IF (TIM .LT. 10000.0) THEN
|
|
IF (TIM .LT. 1000.) TIM =1000.
|
|
CSTEP = CSTEP/4
|
|
IF (CSTEP .GT. STEPM) GO TO 100
|
|
ENDIF
|
|
CHI = CHI + 5*SENSE*CSTEP
|
|
RETURN
|
|
END
|