Initial revision
This commit is contained in:
69
difrac/comptn.f
Normal file
69
difrac/comptn.f
Normal file
@@ -0,0 +1,69 @@
|
||||
C-----------------------------------------------------------------------
|
||||
C Count for a given time at a point within a defined Brillouin zone
|
||||
C-----------------------------------------------------------------------
|
||||
SUBROUTINE COMPTN(IBZ)
|
||||
INCLUDE 'COMDIF'
|
||||
IF (IBZ .EQ. 1) THEN
|
||||
C-----------------------------------------------------------------------
|
||||
C Test if point within B.Z. limits. Return with IBZ=3 for invalid
|
||||
C-----------------------------------------------------------------------
|
||||
JTEMP = IH*JA(NMSEG) + IK*JB(NMSEG) + IL*JC(NMSEG)
|
||||
JMN = JMIN(NMSEG)
|
||||
JMX = JMAX(NMSEG)
|
||||
IF (JTEMP .LT. JMN .OR. JTEMP .GT. JMX) IBZ = 3
|
||||
RETURN
|
||||
ENDIF
|
||||
C-----------------------------------------------------------------------
|
||||
C Point measurement
|
||||
C-----------------------------------------------------------------------
|
||||
NATT = 0
|
||||
C-----------------------------------------------------------------------
|
||||
C Count for 1 sec to set correct attenuator
|
||||
C No attenuator at TRICS, commented out, MK
|
||||
C-----------------------------------------------------------------------
|
||||
C ATIME = 1000.0
|
||||
C CALL CTIME (ATIME,ATCOUN)
|
||||
C IF (ATCOUN .GT. 10000.0) THEN
|
||||
C NATT = NATT + 1
|
||||
C IF (NATT .LT. 6) THEN
|
||||
C CALL ANGSET (THETA,OMEGA,CHI,PHI,NATT,ICOL)
|
||||
C IF (ICOL .NE. 0) THEN
|
||||
C WRITE (COUT,10000) IH,IK,IL
|
||||
C CALL GWRITE (ITP,' ')
|
||||
C RETURN
|
||||
C ENDIF
|
||||
C ENDIF
|
||||
C ENDIF
|
||||
C-----------------------------------------------------------------------
|
||||
C QTIME,TMAX
|
||||
C-----------------------------------------------------------------------
|
||||
SAVEQ = QTIME
|
||||
STMAX = TMAX
|
||||
QTIME = QTIME
|
||||
TMAX = TMAX
|
||||
C-----------------------------------------------------------------------
|
||||
C Sample count at point to find suitable counting time, then measure
|
||||
C-----------------------------------------------------------------------
|
||||
CALL CTIME (QTIME,ENQ)
|
||||
COUNT = ENQ
|
||||
ENQD = ENQ - 2.0*SQRT(ENQ)
|
||||
IF (ENQD .LE. 0.0) ENQD = ENQ
|
||||
F = ((100.0/PA)**2)/ENQD
|
||||
PRESET = QTIME*F
|
||||
IF (PRESET .GT. QTIME) THEN
|
||||
IF (PRESET .GT. PRESET) PRESET = TMAX
|
||||
TIMED = PRESET - QTIME
|
||||
CALL CTIME (TIMED,EN)
|
||||
ELSE
|
||||
PRESET = QTIME
|
||||
EN = 0
|
||||
ENDIF
|
||||
COUNT = COUNT + EN
|
||||
BGRD1 = 0.0
|
||||
BGRD2 = 0.0
|
||||
PSI = 0.0
|
||||
QTIME = SAVEQ
|
||||
TMAX = STMAX
|
||||
RETURN
|
||||
10000 FORMAT (3I4,' Collision')
|
||||
END
|
||||
Reference in New Issue
Block a user