PROGRAM BREAK REAL HI,HR,HLOW,HIGH,HALF,XL,XH,XM,D,TOL PARAMETER (TOL=10E-6) C PROBLEM - FIND HI FROM EXPRESSION GIVEN IN FUNCTION F F(A,B,C)=A*(1.0-0.8*EXP(-0.6*C/A))-B C HI IS INCIDENT WAVE HEIGHT (C) C HR IS REFORMED WAVE HEIGHT (B) C D IS WATER DEPTH AT TERRACE EDGE (A) PRINT*,' GIVE REFORMED WAVE HEIGHT, AND WATER DEPTH' READ*,HR,D C C FOR HLOW- LET HLOW=HR C FOR HIGH- LET HIGH=HLOW*2.0 C C CHECK THAT SIGNS OF FUNCTION RESULTS ARE DIFFERENT C HLOW=HR HIGH=HLOW*2.0 XL=F(HLOW,HR,D) XH=F(HIGH,HR,D) C BEGINNING OF WHILE 1 IF((XL*XH).GE.0.0) THEN HIGH=HIGH*2.0 XH=F(HIGH,HR,D) GOTO 1 ENDIF C BEGINNING OF REPEAT UNTIL 2 HALF=(HLOW+HIGH)*0.5 XM=F(HALF,HR,D) IF((XL*XM).LT.0.0)THEN XH=XM HIGH=HALF ELSE XL=XM HLOW=HALF ENDIF IF(ABS(HIGH-HLOW).GT.TOL)GO TO 2 C END OF REPEAT UNTIL PRINT*,' INCIDENT WAVE HEIGHT LIES BETWEEN' PRINT*,HLOW,' AND ',HIGH,' METRES' END