	PROGRAM IF

! This software is furnished under a license and may only be used
! or copied in accordance with the terms of such license.

! Copyright (C) 1981 by Digital Equipment Corporation

!	Version 6	IF.FOR	March 81

!	Basic testing of IF statement.

	DOUBLE PRECISION D
	LOGICAL TORF,LOG

!	If statements with relationals .LT.,.LE.,.EQ.,.GE.,.GT.,
!	.OR.,.AND. used.

	M=3
50	IF (M.EQ.3) GOTO 60
	TYPE 55
55	FORMAT(' ?Error line 50, GOTO not taken.')
60	CONTINUE

	TORF=.FALSE.
	I=4; X=3.3
100	IF ((I.EQ.4).AND.(X.LE.3.4)) TORF=.TRUE.
	IF (TORF.NE..TRUE.) TYPE 110
110	FORMAT(' ?Error line 100. TORF=.FALSE., should = .TRUE.')

	QQ=66.5; D=9.99998889999; N=1; P=3
200	IF (D.GT.6D0 .OR. N.NE.P) QQ=77.5
	IF (QQ.EQ.66.5) TYPE 210
	IF (QQ.NE.77.5) TYPE 220,QQ
210	FORMAT(' ?Error line 200. QQ = 66.5, should = 77.5')
220	FORMAT(' ?Error line 200. QQ = 'F', should = 77.5')

	RESULT=0		!IF should fail
	D=10; P=1; M=P; TORF=.FALSE.; J=-1
300	IF (D.GE.11 .OR. P.NE.M .OR.(TORF.AND.J.LT.M)) RESULT=10
	IF (RESULT.NE.0) TYPE 310,RESULT
310	FORMAT(' ?Error line 300. RESULT = 'F', should = 0')

!	Arithmetic IF statement

	I=3; D=2
400	IF (I-(D+1)) 410,420,430
410	CONTINUE
430	CONTINUE
	TYPE 435
435	FORMAT(' ?Error IF 400.  Wrong branch taken')
420	CONTINUE

!	Logical Two-branch IF statement

	LOG=.TRUE.
500	IF (.NOT. LOG) 510,520
510	TYPE 515
515	FORMAT(' ?Error 510 branch taken, statement evaluated'
	1 ' as true.')
520	CONTINUE

	STOP
	END
