PROGRAM ex5_9

 IMPLICIT NONE
 REAL :: a, b, X1=0, X2, d, h, F1, F2, Xmax
  READ *, a, b
 
X2 = min(a/2.0,b/2.0)

DO WHILE ( ABS(X2-X1) > d)
  h = ABS(X2 - X1)/3
  F1 = (a - 2*(X1+h))* (b - 2*(X1+h))*(X1+h)
  F2 = (a-2*(X2-h))*(b-2*(X2-h))*(X2-h)
 IF ( F1 <= F2 ) THEN
  X1=X1 + h 
 ELSE 
  X2=X2 - h
END IF
Xmax = (X1 + X2)/2
PRINT *, '体積最大を得るｘ(暫定)は',Xmax
PRINT *, 'その時の体積は', (a-2*(Xmax))*(b-2*(Xmax))*(Xmax)
END DO
PRINT *, '体積最大を得るx(最終結果)は',Xmax
PRINT *, '体積最大は', (a-2*(Xmax))*(b-2*(Xmax))*(Xmax)

END PROGRAM ex5_9
 