Fortran Program in FORTRAN which calculate the detection efficiency

Click For 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.
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 23 ·
Replies
23
Views
3K
  • · Replies 26 ·
Replies
26
Views
3K
Replies
11
Views
15K
Replies
6
Views
4K
Replies
5
Views
2K
Replies
26
Views
5K
  • · Replies 8 ·
Replies
8
Views
4K