Fotran program to find half-life of a radioactive material

Click For Summary
SUMMARY

The forum discussion centers on writing a Fortran program to calculate the half-life of a radioactive material based on its decay constant. The user initially struggled with implementing a loop to determine the number of iterations until half of the material decayed. After receiving guidance, the user successfully modified their code to include a counter and print statements within the loop, allowing them to track the amount of undecayed material over time. The final code effectively calculates the remaining substance after each iteration until the half-life is reached.

PREREQUISITES
  • Understanding of Fortran programming language
  • Knowledge of radioactive decay concepts and half-life calculations
  • Familiarity with control structures, specifically DO WHILE loops
  • Basic debugging techniques in programming
NEXT STEPS
  • Learn how to implement counters in Fortran loops
  • Explore advanced debugging techniques in Fortran
  • Study numerical methods for solving differential equations related to decay
  • Investigate the use of arrays in Fortran for tracking multiple decay values
USEFUL FOR

This discussion is beneficial for beginner to intermediate Fortran programmers, physics students studying radioactive decay, and anyone interested in numerical simulations of decay processes.

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.
 
i=0
do while (i.lt.10)
i=i+1
print *,"i=",i
...
end do
 
Got it sorted now. Thanks for the help :smile:
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 20 ·
Replies
20
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 2 ·
Replies
2
Views
714
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K