1 | c$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
2 | c$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
3 | c$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
4 | c$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
5 | c
6 | c.......................................................................
7 | c
8 | c random generator from an inverse gaussian distribution
9 | c
10 | c DEBUG LE 17 sep 1999
11 | c
12 | c in : * $\phi$ ---> phgira
13 | c * $\mu$ ---> umgira
14 | c
15 | c out : * $x$ ---> xgira
16 | c
17 | c.......................................................................
18 | subroutine gira(phgira,umgira,xgira)
19 | c.......................................................................
20 | implicit double precision (a-h,o-z)
21 | c.......................................................................
22 | call chra(gira1)
23 | gira2=gira1/phgira
24 | gira3=gira2/2.d0
25 | gira4=umgira*(1.d0+gira3-dsqrt(gira2+gira3**2))
26 | gira5=umgira/(umgira+gira4)
27 | call rand_uniforme(gira6)
28 |
29 |
30 |
31 | if (umgira .eq. 0.d+0) then
32 | c kbar est null donc k>0 ===> k est nul
33 | xgira = 0.d+0
34 | else
35 |
36 |
37 | cc if ((umgira .gt. 1.d+100 ) .and.
38 | cc & ((phgira .gt. 1.d+09) .or. (phgira .lt. 1.d-09)) ) then
39 | c kbar est tres grand, probleme avec valeurs extremes de phi
40 | c ce probleme ne concerne que SUN !!!!
41 | cc print *, 'WARNING gira. phgira= ', phgira
42 | cc xgira = umgira
43 |
44 |
45 | cc else
46 |
47 |
48 | if (gira6.lt.gira5) then
49 | xgira=gira4
50 | else
51 | xgira = (umgira/gira4) * umgira
52 | endif
53 |
54 |
55 |
56 | cc endif
57 | endif
58 | c.......................................................................
59 | return
60 | end
gira.f could be called by:
rags.f | [archivage/code2000X_testCG] | - 24 |
rags.f | [resultats/pt1_complet] | - 24 |
rags.f | [src] | - 24 |
rass.f | [archivage/code2000X_testCG] | - 26 |
rass.f | [resultats/pt1_complet] | - 26 |
rass.f | [src] | - 26 |