File: MEAS1.FT of Tape: Various/Disk-backup/dsk10
(Source file text) 

     	SUBROUTINE MEAS1
	COMMON/TITLE/FNAME(6),MOTODI,IRUN
	COMMON/SAMPLE/SPL,SPA,SPV,HANG
	COMMON/FIELD/NP,HHI,HLO,DRHE3,DRH,DELDRH,VIND,IMIN,ISEC

	COMMON/PARAM/PS(2),PT(2),PF(2),CALI(2)
	COMMON/TEMP/TMEAN,TVAR,PM,PV,TM,TV,TSET,DELTP,DELTI,VAPRE
C
	LOGICAL VAPRE
C
	ITERM=4
	IFILE=6
	PBARA=.0
C
	H=HHI
	RH=1./HHI
	IMAX=(8*(IMIN*60+ISEC))/ NP
	DO 100 I=1,NP
	REALI=FLOAT(I)
110	MASK=16+32+64+2048
	CALL DOUT(1,MASK,IERRDO,0)
	IERRSC=IMAX
	TARGET=0.1*H
	OUT=SCINP(3,0,IERRSC,TARGET)
	ITORQ=DVINP(1+8,1+4,IERRDV,DUMMY)
	IF(IERRSC.NE.2) GOTO 120
	WRITE(ITERM,2000)
	GOTO 110
120	IF(IERRDV.NE.4) GOTO 130
	WRITE(ITERM,2500) I
	IERRDV=IERRDV-4
130	IF((IERRDO+IERRSC+IERRDV).NE.0)
     $	CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,0)
	HMEAS=(OUT+TARGET)*10.
	IDH=INT(-OUT*1.E5+0.1)
	IDELH=INT(DELDRH*HMEAS*H*1.E4+0.5)
	IF(IDH.LE.(IDELH+1)) GOTO 150
	IF(IDH.GT.(IDELH+2)) GOTO 140
	WRITE(ITERM,2001) I
	GOTO 150
140	WRITE(ITERM,2002) H
	IERRSC=IMAX
	TARGET=0.1*H
	OUT=SCINP(2,0,IERRSC,TARGET)
	IF(IERRSC.EQ.2) GOTO 140
	WRITE(ITERM,2000)
	GOTO 110
150	IF(ITORQ.EQ.12500) WRITE(ITERM,2501) I
	TORQ=(FLOAT(ITORQ)/1.E3-5.76)*HMEAS/HHI
	WRITE(IFILE,3000) TORQ
	IF(VAPRE) GOTO 160
C
C	TEMPERATURE BARATRON
C
	MASK=64+128
	IDATA=64
	CALL DOUT(1,MASK,IERRDO,IDATA)
	IPBARA=DVINP(1+8,4,IERRDV,DUMMY)
	IF((IERRDO+IERRDV).NE.0)
     $	CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,1)
	IF(IPBARA.EQ.125000) CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,2)
	PBARA=FLOAT(IPBARA)/1.E3
	PV=PV+((PBARA-PM)**2)*(REALI-1.)/REALI
	PM=PM+(PBARA-PM)/REALI
C
C	TEMPERATURE SrTiO3 (EXP)       	
C
160	MASK=64+128+256
	IDATA=64+128
	CALL DOUT(1,MASK,IERRDO,IDATA)
	ITEXP=DVINP(1+8,1+4,IERRDV,DUMMY)
	IF((IERRDO+IERRDV).NE.0)
     $	CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,3)
	IF(ITEXP.EQ.12500) CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,4)
	TEXP=FLOAT(ITEXP)/1.E3
	TV=TV+((TEXP-TM)**2)*(REALI-1.)/REALI
	TM=TM+(TEXP-TM)/REALI
C
C	TEMPERATURE SrTiO3 (REG)
C
	MASK=64+128+256
	IDATA=64+128+256
	CALL DOUT(1,MASK,IERRDO,IDATA)
	ITREG=DVINP(1+8,1+4,IERRDV,DUMMY)
	IF((IERRDO+IERRDV).NE.0)
     $	CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,5)
	IF(ITREG.EQ.12500) CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,6)
	TREG=FLOAT(ITREG)/1.E3
C	IF(TREG.LT..8.OR.TREG.GT.4.)
C     $	CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,7)
	DELT=TEXP-TSET
	DELTP=-DELT/10.
	DELTI=DELTI-DELT/10.
	REGSET=DELTP+DELTI
C	IF(REGSET.LT.1.) REGSET=2.
	IF(REGSET.GT.4.) REGSET=4.
	IDATA=INT(51.2*REGSET)
	IOUT=DAC(1,4095,IERRDA,IDATA)
	IF(IERRDA.NE.0) CALL MSERR1(IERRDO,IERRSC,IERRDV,IERRDA,8)
C
	WRITE(ITERM,2502) I,H,IDH,IDELH,TORQ,PBARA,TEXP,TREG
C
	RH=RH+DRH
	H=1./RH
100	CONTINUE
C
	RETURN

2000	FORMAT	(1X,'SWEEP DOWN !')
2001	FORMAT	(1X,'FIELD INACCURATE AT',T40,'I    =',4X,I4)
2002	FORMAT	(1X,'SWEEP UP TO:',T40,'H    =',F8.4,' [T]'))
C
2500	FORMAT	(1X,'SIGN-CHANGE IN DVM MODE',T40,'I    =',4X,I4)
2501	FORMAT	(1X,'OVERFLOW IN DVM MODE',T40,'I    =',4X,I4)
2502	FORMAT	(1X,I4,F10.4,2I5,5F10.3)
C
3000	FORMAT	(F8.3)
C
	END