Fotran program to find half-life of a radioactive material

Join the discussion
Registration is free. Start your own thread to ask a follow-up.
5 replies · 3K views
Daniel1992
Messages
21
Reaction score
0

Homework Statement


I need to write a program that, given the decay constant of a radioactive material, will calculate numerically (to withing one second) the time taken for half of the orginal sample of material to decay.

Homework Equations


λ = decay constant C0 = start amount of material

After one second C0 will have decayed leaving C = (1-λ)C0 of undecayed material left.

The Attempt at a Solution


I only have very basic experince at programming so I am finding this quite difficult. Below is the code that I have created so far.

IMPlICIT NONE
REAL :: y,C,t !y = decay constant C = starting amount of material t = time
PRINT*,"Enter decay constant"
READ*,y
PRINT*,"Enter starting amount of material"
READ*,C

DO WHILE (C.GT.C/2)
C=(1-y)*C
END DO

PRINT*,"C=",C

I don't really have any idea how I would work out hiw many interations the DO WHILE loop has done which i need to kno in order to work out the half life.

Any help/advice would be much appreciated.
 
Physics news on Phys.org
It's helpful during the testing and debugging stage of writing a program to temporarily add a PRINT statement inside loops so that you can verify operation is exactly as you hope it will be.

Suppose you were to add a PRINT statement inside your DO loop, what useful variables would you like it to print out?

Imagine your program simulates the decay of 100 grams of material having a decay constant of 2.77 milliseconds. What are the first 6 of the output lines that your loop's added PRINT statement would print out?
 
Last edited:
You'll need a variable to act as a counter that you can increment inside the do.while loop.

Why not walk thru your algorithm step by step solving it on paper as if you were a computer?

That should make it easier to design your loop and get your answer.

What does each iteration of the do.while loop represent?
 
Thanks for the replies :)

I have managed to get the program to find the amount of undecayed substance left after the half life has been reached.

Here is the new code:
PROGRAM assignment1
IMPlICIT NONE
REAL :: y,C,t,v !y = decay constant C = starting amount of material t = time


PRINT*,"Enter decay constant"
READ*,y
PRINT*,"Enter starting amount of material"
READ*,C
v=c


DO WHILE (C.GT.v/2)
C=(1.0-y)*C
PRINT*,C
END DO

PRINT*,"C =",C
END PROGRAM assignment1


I am not sure how I can get a varibale to act as counter inside the loop.
Any help would be appreciated.