Programme en fortran qui calcule l'efficacité de détection

Fermé
inesnoussa - 28 nov. 2014 à 19:52
 Yoda - 28 nov. 2014 à 20:59
Je veux écrire un programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur que je vais supposer un disque. Le détecteur disque est supposé parfait: c.a.d absorbe tout photon qui tombe sur lui. Donc ici je travaille dans 3D et j'utilise ux, uy et uz pour diriger le photon aléatoirement en utilisant le système de coordonnées sphériques

a) efficacité en fonction du rayon du détecteur
b) efficacité en fonction de la distance source détecteur
c)efficacité en fonction du rayon de la source

Voici le code que j'essaie l'ecrire pour une source ponctuelle;
program sourceponc

integer i,N
real x,y,z,eff,count,Dds,rd,ux,uy,uz,t


count=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
Lorsque je le compile et l'exécute , voici qu'est ce qu'elle affiche dans le terminal :
sourceponc.f90:12:

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

uy=sin(theta)sin(phi)
1
Error: Unclassifiable statement at (1)
y a t'il quelqu'un qui pourrait m'aider ? merci d'avance

1 réponse

bonjour,

ux=cos(theta)sin(phi)
uy=sin(theta)sin(phi)


Peut-être comme ceci?
ux=cos(theta)*sin(phi)
uy=sin(theta)*sin(phi)
0