Fortran Program in FORTRAN which calculate the detection efficiency

AI Thread Summary
The discussion centers on writing a FORTRAN program to calculate detection efficiency for both point and disc sources at varying distances from a detector. The user is attempting to implement a 3D model using spherical coordinates but encounters compilation errors related to unclassifiable statements in the code. Specifically, the errors arise from missing arithmetic operators between terms in the calculations for ux and uy. Additionally, there is a suggestion to initialize the variable Dds, which is necessary for the program to function correctly. The community emphasizes that while they can assist with understanding programming concepts or troubleshooting code, they will not write the program from scratch.
inesnoussa
Messages
3
Reaction score
0
Hi everyone,
I want to write a program in FORTRAN which calculate the detection efficiency for a punctual source and a disc source at a distance from the detector .The disc detector is assumed to be perfect: ie photon absorbing everything that falls on it. So here I am working in 3D and I use ux, uy and uz to lead the photon randomly using the spherical coordinate system

a) efficiency vs the detector radius
b) efficiency as a function of source detector distance
c) efficiency according to the radius of the source
Here's the code that I am trying to write for a point source;

program sourceponc

integer i,N
real x,y,z,eff,count,Dds,rd,ux,uy,uz,tcount=0
do i=1,N

theta = acos(1-2*rand())
phi = 2*pi*rand()
ux=cos(theta)sin(phi)
uy=sin(theta)sin(phi)
uz=cos(theta)
t=Dds/uz
x=ux*t
y=uy*t

if(sqrt(x**2+y**2+z**2).le.1)then
count=count+1
endif
end do
eff=count/N
print*,eff
end
There's someone there who could help me ? Thank you in advance
 
Technology news on Phys.org
When posting code you have written, please use the code tags to enclose the actual source statements.

It's not clear from the OP what help you are seeking. Is there some problem getting this code to run? Are you having trouble writing the program.

PF will help you if you are having a problem understanding the statements in a programming language or you are experiencing difficulty in getting a program to run. We will not write the program for you.
 
What SteamKing said.

Also, you have not initialized Dds.
 
Hi,
the problem here is that i keep getting these error while compiling:

sourceponc.f90:11:

ux=cos(theta)sin(phi) 1 Error: Unclassifiable statement at (1) sourceponc.f90:12:

uy=sin(theta)sin(phi) 1 Error: Unclassifiable statement at (1)
 
inesnoussa said:
Hi,
the problem here is that i keep getting these error while compiling:

sourceponc.f90:11:

ux=cos(theta)sin(phi) 1 Error: Unclassifiable statement at (1) sourceponc.f90:12:

uy=sin(theta)sin(phi) 1 Error: Unclassifiable statement at (1)

The compiler is having trouble deciphering this statement. You are missing an arithmetic operator (+ - * /) between sin(theta) and sin(phi). You can't just cram two terms together like this without an arithmetic operator in between.
 
Thread 'Is this public key encryption?'
I've tried to intuit public key encryption but never quite managed. But this seems to wrap it up in a bow. This seems to be a very elegant way of transmitting a message publicly that only the sender and receiver can decipher. Is this how PKE works? No, it cant be. In the above case, the requester knows the target's "secret" key - because they have his ID, and therefore knows his birthdate.
Back
Top