Exécuter un prog Fortran à partir de Matlab
Fermé
hassen62
-
30 mars 2008 à 19:53
cherif-physique Messages postés 2 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 7 mai 2009 - 7 mai 2009 à 16:24
cherif-physique Messages postés 2 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 7 mai 2009 - 7 mai 2009 à 16:24
A voir également:
- Exécuter un prog Fortran à partir de Matlab
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Avatar facebook à partir de photo - Guide
- Fortran 90 download - Forum Programmation
2 réponses
cherif-physique
Messages postés
2
Date d'inscription
jeudi 7 mai 2009
Statut
Membre
Dernière intervention
7 mai 2009
2
7 mai 2009 à 16:24
7 mai 2009 à 16:24
c'est mon programme pour calculer le nombres des photons diffusé , le problème qui se pose c'est que la fonction random ne fonctionne pas j'aimerais bien si quelqu'un puisse me donné des information et merci a tous.
real*8 L0,T,R,h1,h2,L1,CT,THET,S
parameter (EPHOT=40,c=3e8,ECH=1.60E-19,ME=9.11E-31,PI=3.141592)
R6=rand(6)
L0=ME*c*c/EPHOT/ECH/1000.0
T=(L0+2.0)/(9.0*L0+2.0)
IF (R6.LE.T) THEN
! track 1
R=1.0+(2.0/L0)*R6
h1=4.0*(1.0/R-1.0/(R**2.0))
write (*,*) R,h1
IF (R.LE.h1) THEN
GOTO 92
END IF
ELSE
S=(8*L0)/(9*L0+2)
IF (R6.GT.S) THEN
R=(L0+2.0)/(L0+2.0*(1.0-R6))
h2=(L0-(R*L0)+1.0)**2.0+(1.0/R)/2
IF (R.LE.h2) THEN
GOTO 92
END IF
! track 2
END IF
92 CONTINUE L1=R*L0
CT=1.0-L1+L0
IF (ABS(CT).GE.1.0) THEN
THET=ACOS(CT)*360.0/2.0/PI
END IF
END IF
END
real*8 L0,T,R,h1,h2,L1,CT,THET,S
parameter (EPHOT=40,c=3e8,ECH=1.60E-19,ME=9.11E-31,PI=3.141592)
R6=rand(6)
L0=ME*c*c/EPHOT/ECH/1000.0
T=(L0+2.0)/(9.0*L0+2.0)
IF (R6.LE.T) THEN
! track 1
R=1.0+(2.0/L0)*R6
h1=4.0*(1.0/R-1.0/(R**2.0))
write (*,*) R,h1
IF (R.LE.h1) THEN
GOTO 92
END IF
ELSE
S=(8*L0)/(9*L0+2)
IF (R6.GT.S) THEN
R=(L0+2.0)/(L0+2.0*(1.0-R6))
h2=(L0-(R*L0)+1.0)**2.0+(1.0/R)/2
IF (R.LE.h2) THEN
GOTO 92
END IF
! track 2
END IF
92 CONTINUE L1=R*L0
CT=1.0-L1+L0
IF (ABS(CT).GE.1.0) THEN
THET=ACOS(CT)*360.0/2.0/PI
END IF
END IF
END