File MCMAV.FT (FORTRAN source file)

Directory of image this file is from
This file as a plain text file

C	PROGRAM MCMAV
C	LONG PRINTOUT VERSION.
	COMMON ARRAI(411),DUMI(90),MANU,BLNO
	DIMENSION MAXSUM(100),MINSUM(100),MAXPT(100),MINPT(100),
     1	MAXVAL(100),MINVAL(100),ARRAY(100),SHIT(200),NAME(2)
C	SHIT USED TO PUSH BLANK COMMON
C	COMPLETELY INTO FIELD 2!!
	INTEGER BL(3),NECT(100),PARITY,END,ENDPT,ARRAY,ARRAI,
     1	ARRAJ,BLNO
	LOGICAL P,Q
	ISTA=1
	NBL=16
	SF= -.0111
	WRITE(4,3)
  3	FORMAT(1H ,'ENTER MANEUVER ID,SAMPLING RATE AND' 
     1	' SPECIAL CASE SPECIFICATION'/' (I2,I3,A3)')
	READ (4,2) MANU,ISR,SCASE
  2	FORMAT(I2,I3,A3)
	IF(SCASE.EQ.' NO') GO TO 7
	WRITE (4,6)
  6	FORMAT(1H ,'ENTER SPECIAL STARTING AND ENDING BLOCK ID S.
     1	(2I2)')
	READ(4,8) ISTA,NBL
  8	FORMAT (2I2)
  7	WRITE(4,103)
 103	FORMAT(1H ,'ENTER EXPERIMENT DATE, DATE ANALYZED,
     1	SUBJECT NAME,'/' DEPTH AND INERT GAS.'/
     2	' (2I6,2A6,F6.0,A6)')
	READ(4,104) IDEA,IDER,NAME(1),NAME(2),DEPTH,INGAS
 104	FORMAT(2I6,2A6,F6.0,A6)
	WRITE(3,105) IDEA,IDER,NAME(1),NAME(2),DEPTH,INGAS,MANU
 105	FORMAT(1H ,30X,'EXPERIMENT DATE',5X,I6/1H ,30X,'DATE AN
     1	ALYZED',7X,I6/1H ,30X,'SUBJECT',13X,2A6/1H ,30X,'DEPTH'
     2	,15X,F6.0/1H ,30X,'INERT GAS',11X,A6/1H ,30X,'MANEUVER'
     3	,12X,I4////)
	SR=ISR
C	ANY POTENTIAL TROUBLE IN GETTING REASONABLE MINSUMS
C	AND MAXSUMS IN THE FUTURE COULD PROBABLY BE RESOLVED
C	BY MANIPULATING THE VALUE OF IRA.
	IRA=ISR/20
	PARITY=MOD(IRA,2)
	IF(PARITY.EQ.0) IRA=IRA+1
	IRAH=IRA/2
	BL(1)=0
	MZ=1
	MX=1
	END=85
	ENDPT=END-IRA-1
	IX=IRAH+2
	DO 90 IBL=ISTA,NBL
	BLNO=IBL
	WRITE(3,442) IBL
  442	FORMAT(1H ,'THIS IS BLOCK NUMBER ',I4)
	CALL TRANS
C	WRITE(3,118)(ARRAI(NUM),NUM=1,255)
 118	FORMAT (1H ,10I7)
	DO 17 MN=1,255,3
	NN=(MN+2)/3
  17	ARRAY(NN)=ARRAI(MN)
	WRITE (3,117)(ARRAY(NAM),NAM=1,85)
 117	FORMAT(1H ,10I6)
	IF(IBL.NE.NBL) GO TO 23
	DO 21 IT=1,85
	IF(ARRAY(IT).NE.0) GO TO 21
	IA=IT+1
	IZ=IT+4
	IF(IZ.GT.85) IZ=85
	DO 22 ITT=IA,IZ
	IF(ARRAY(ITT).NE.0) GO TO 21
  22	CONTINUE
	END=IT-1
	GO TO 25
  21	CONTINUE
  23	IF(IBL.NE.ISTA) GO TO 25
	DO 10 IN=1,IRA
  10	BL(1)=BL(1)+ARRAY(IN)
	BL(2)=BL(1)+ARRAY(IRA+1)-ARRAY(1)
  25	DO 30 M=1,END
	JX=IX-(85*(IBL-1))
	IF(ISTA.NE.1) JX=IX-(85*(IBL-ISTA))
  	IF(JX.GT.0) ARRAJ=ARRAY(JX)
	IF(JX.LE.0) ARRAJ=NECT(IRA+JX)
	IF(IBL.EQ.ISTA) GO TO 130
  150	IF(M.LE.IRA) GO TO 32
	N1=M-IRA
	BL(3)=BL(2)-ARRAY(N1)+ARRAY(M)
	GO TO 35
  32	BL(3)=BL(2)-NECT(M)+ARRAY(M)
	GO TO 35
 130	IF(M.GT.ENDPT) GO TO 85
	N1=M+1
	N2=N1+IRA
	BL(3)=BL(2)-ARRAY(N1)+ARRAY(N2)
  35	P=(BL(2).LE.BL(1)).AND.(BL(2).LT.BL(3))
	Q=(BL(2).GT.BL(1)).AND.(BL(2).GE.BL(3))
	IF(.NOT.P) GO TO 34
  37	MINSUM(MZ)=BL(2)
	MINPT(MZ)=IX
	MINVAL(MZ)=ARRAJ
	MZ=MZ+1
	IF(MZ.GT.100) GO TO 98
	GO TO 36
  34	IF(.NOT.Q) GO TO 36
  39	MAXSUM(MX)=BL(2)
	MAXPT(MX)=IX
	MAXVAL(MX)=ARRAJ
	MX=MX+1
	IF(MX.GT.100) GO TO 98
  36	BL(1)=BL(2)
	BL(2)=BL(3)
  30	IX=IX+1
  85	IF(IBL.EQ.NBL) GO TO 90
	DO 89 LUX=1,IRA
	NEVER=END-IRA+LUX
  89	NECT(LUX)=ARRAY(NEVER)
  90	CONTINUE
  98	KX=MX-1
	KZ=MZ-1
	IF(KZ.GT.KX) GO TO 88
  80	IF(MAXPT(1).GT.MINPT(1)) GO TO 81
	DO 82 IM=2,KX
	MAXPT(IM-1)=MAXPT(IM)
	MAXVAL(IM-1)=MAXVAL(IM)
  82	MAXSUM(IM-1)=MAXSUM(IM)
	KX=KX-1
	GO TO 80
  81	IF(KZ.GT.KX) GO TO 88
	KX=KZ-1
  88	WRITE(3,142)
  142	FORMAT(//1H ,T10,'MINPT',5X,'VAL',6X,'SUM',7X,
     1	'MAXPT',5X,'VAL',6X,'SUM')
	WRITE (3,42)(I,MINPT(I),MINVAL(I),MINSUM(I),
     1	MAXPT(I),MAXVAL(I),MAXSUM(I),I=1,KZ)
  42	FORMAT(1H ,I3,6X,I4,3X,I5,3X,I6,8X,I4,3X,I5,3X,I6)
	NPT=MINPT(KZ)-MINPT(1)+1
	TIM=NPT/SR
	SCA=-(60.*SF)/(2.*TIM)
	NOP=KZ-1
	PSUM=0.
	VSUM=0.
	DO 87 IV=1,NOP
	PSUM=PSUM+MAXVAL(IV)
	IF(IV.EQ.1) GO TO 87
	VSUM=VSUM+MINVAL(IV)
  87	CONTINUE
	ANS=SCA*(2.*PSUM-2.*VSUM-MINVAL(1)-MINVAL(KZ))
	WRITE (3,86) ANS
  86	FORMAT (///1H ,'MAXIMUM  VOLUNTARY VENTILATION: ',F8.3,'  LITERS
     1	PER MINUTE.'///)
  99	STOP
	END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search