1 | program testtirb
2 |
3 | c declaration
4 | c appel a biblio
5 | c neant
6 | c variables
7 | implicit none
8 | c par fichier
9 | integer ngaz_mx
10 | parameter (ngaz_mx = 3)
11 | include 'propradia.inc'
12 | c par variables
13 | double precision proba(nbande_mx), f(nbande_mx), mc, cm
14 | integer i, num
15 |
16 |
17 |
18 | c corps debut
19 | num = 0
20 | mc = 0.
21 | cm =0.
22 | print *,'Il y a: ', nbande , ' bandes.'
23 | print *
24 | do i=1,nbande
25 | proba(i) = 1./nbande
26 | f(i)=0.
27 | enddo
28 |
29 | do i=1,40000
30 | print *,'tirage n~:', i
31 | call tirb(proba,num)
32 | print *,'---> num de la bande: ', num
33 | c read (*,*)
34 | c test pour reconstituer la loi de proba
35 | c recensement du nombre de tirages par canal
36 | f(num)=f(num)+1
37 | enddo
38 |
39 |
40 | do i=1,nbande
41 | f(i)=f(i)/40000.
42 | print *,i,'--',f(i),'--',proba(i)
43 | c moyenne du carre
44 | mc = mc + f(i)**2
45 | cm = cm + f(i)
46 | read(*,*)
47 | enddo
48 | print *,'variance de l"ensemble de la distrib:moment dordre deux '
49 | mc = mc / nbande
50 | cm = (cm /nbande)**2
51 | cm = proba(i)**2
52 | print *, mc-cm
53 |
54 |
55 |
56 |
57 |
58 | end
testtirb.f could be called by: