program repeat USE MSFLIB INTEGER(2) status TYPE (xycoord) xy REAL:: DELTA, A, area=0, pi = 3.1415926 character(10) :: alan INTEGER I A = 400.0; DELTA = 0 x1 = 500; y1 = 100; x2 = 900; y2 = 500 DO I = 1, 1115 status = setcolorrgb(#ffffff) status = settextcolorrgb(#ffffff) CALL MOVETO(INT2(80), INT2(50), xy) status = RECTANGLE( $GFILLINTERIOR, x1, y1, x2, y2 ) status = setcolorrgb(#000000) status = ELLIPSE( $GFILLINTERIOR, x1+1, y1+1, x2-1, y2-1 ) r = a / 2 area = area + a**2 - pi * r ** 2 DELTA = 0.5 * A * (1.0 - 1.0 / SQRT(2.0)) a = a - 2 * delta x1 = x1 + delta; y1 = y1 + delta x2 = x2 - delta; y2 = y2 - delta end do !write() !call outtext(area) print *, area end program repeat