- Fixed a bug which caused the SICServer to die when a socket was broken.
- Fixed many things in DIFRAC subsystem:
* Recoded tcentr.f etc so that the course centering will work and will not
go into an endless loop.
* fixed boundary overwrites which occurred when yesno or alfnum where
uset to get a single character and several were given.
* Addeded documentation for DIFRAC
- Added tcl-files which support the WWW status system
This commit is contained in:
@@ -1,24 +1,31 @@
|
||||
C-----------------------------------------------------------------------
|
||||
C Subroutine to find the coarse centre for Chi
|
||||
C-----------------------------------------------------------------------
|
||||
SUBROUTINE CFIND (TIM)
|
||||
SUBROUTINE CFIND (TIM,MAXCOUNT)
|
||||
INCLUDE 'COMDIF'
|
||||
REAL MAXCOUNT, MCOUNT
|
||||
DIMENSION TCOUNT(NSIZE)
|
||||
EQUIVALENCE (ACOUNT(9*NSIZE+1),TCOUNT(1))
|
||||
ICPSMX = 25000
|
||||
STEPM = 0.02
|
||||
SENSE = -1.0
|
||||
CSTEP = 0.25
|
||||
CSTEP = 1.5
|
||||
NPTS = 10
|
||||
CHI = CHI + NPTS*CSTEP/2
|
||||
NRUN = 0
|
||||
100 IF (CHI .LT. 0) CHI = CHI + 360
|
||||
IF (CHI .GE. 360) CHI = CHI - 360
|
||||
CHI = CHI + NPTS*CSTEP/2
|
||||
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))
|
||||
CALL KORQ (IFLAG1)
|
||||
IF (IFLAG1 .NE. 1) THEN
|
||||
KI = 'O4'
|
||||
RETURN
|
||||
ENDIF
|
||||
IF (TCOUNT(I)/TIM .GT. ICPSMX .AND. NATT .LT. NATTEN) THEN
|
||||
NATT = NATT + 1
|
||||
GO TO 110
|
||||
@@ -32,25 +39,25 @@ C-----------------------------------------------------------------------
|
||||
IF (CHI .GE. 360) CHI = CHI - 360
|
||||
CALL ANGSET (THETA,OMEGA,CHI,PHI,NATT,ICOL)
|
||||
120 CONTINUE
|
||||
MAXCOUNT = REAL(MCOUNT)
|
||||
IF (ICOUNT .EQ. 1) THEN
|
||||
C
|
||||
C try the other direction, but only once otherwise we get into an
|
||||
C endless loop
|
||||
C
|
||||
IF(NRUN .GT. 0) THEN
|
||||
MAXCOUNT = 0.
|
||||
RETURN
|
||||
ENDIF
|
||||
SENSE = -SENSE
|
||||
CHI = CHI + 9*SENSE*CSTEP
|
||||
CHI = CHISV + 9*SENSE*CSTEP
|
||||
NRUN = NRUN + 1
|
||||
GO TO 100
|
||||
ELSE IF (ICOUNT .EQ. 10) THEN
|
||||
CHI = CHI - 3*SENSE*CSTEP
|
||||
ELSE IF (ICOUNT .EQ. 20) THEN
|
||||
CHI = CHISV - 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
|
||||
C CHI = CHI + (ICOUNT - 12.25)*SENSE*CSTEP
|
||||
CHI = CHISV + ICOUNT*SENSE*CSTEP
|
||||
RETURN
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user