1. The problem statement, all variables and given/known data The purpose of this program is to calculate the approximate roots of the Sine function on given intervals. The intervals are input by the user, and then the do loop continues until the condition (m becomes very close to 0 or equals 0) is met. 3. The attempt at a solution program bisec IMPLICIT NONE REAL :: a, b, m, f_xa, f_xb, f_xm WRITE (*,*) 'Please enter the interval [A,B]:' READ (*,*) a,b DO !WHILE (ABS(m) > 1E-7) m = (a + b)/2. f_xa = SIN(a) f_xb = SIN(b) f_xm = SIN(m) IF (ABS(m) < 1E-5) THEN EXIT END IF IF (f_xa*f_xm > 0) THEN a= m ELSE IF (f_xa*f_xm < 0) THEN b= m ELSE IF (f_xa*f_xm == 0) THEN EXIT END IF END DO WRITE (*,*) 'Solution is:',m end program bisec This is what I have so far, I've changed around my conditional statement to see if it would help, but it did not. The solutions it gives me are either 0 (on an interval that does not include 0) or radically large numbers, or it runs indefinitely. I know I am doing something wrong within the do loop. I've tried to follow the math correctly and translate it into code, but this is still a challenge for me as I am still in the early learning stages of programming. Thank you!