-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNumInt.f90
More file actions
158 lines (156 loc) · 10.5 KB
/
NumInt.f90
File metadata and controls
158 lines (156 loc) · 10.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! NumInt.f90 !!
!! The nodes and weights for the numerical integration. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!! Module gausshermite !!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!!! Nodes and weights for the Gauss–Hermite formula
Module gausshermite
implicit double precision (A-H,O-Z)
double precision, parameter :: ZERO = 0.0D+00
double precision, parameter :: gauHerx(120) = (/ &
ZERO, -0.70710678118654752440D+00, &
0.70710678118654752440D+00, -1.22474487139158904910D+00, ZERO, &
1.22474487139158904910D+00, -1.65068012388578455588D+00, &
-0.52464762327529031788D+00, 0.52464762327529031788D+00, &
1.65068012388578455588D+00, -2.02018287045608563293D+00, &
-0.95857246461381850711D+00, ZERO, 0.95857246461381850711D+00, &
2.02018287045608563293D+00, -2.35060497367449222283D+00, &
-1.33584907401369694971D+00, -0.43607741192761650868D+00, &
0.43607741192761650868D+00, 1.33584907401369694971D+00, &
2.35060497367449222283D+00, -2.65196135683523349245D+00, &
-1.67355162876747144503D+00, -0.81628788285896466304D+00, &
ZERO, 0.81628788285896466304D+00, 1.67355162876747144503D+00, &
2.65196135683523349245D+00, -2.93063742025724401922D+00, &
-1.98165675669584292585D+00, -1.15719371244678019472D+00, &
-0.38118699020732211685D+00, 0.38118699020732211685D+00, &
1.15719371244678019472D+00, 1.98165675669584292585D+00, &
2.93063742025724401922D+00, -3.19099320178152760723D+00, &
-2.26658058453184311180D+00, -1.46855328921666793167D+00, &
-0.72355101875283757332D+00, ZERO, 0.72355101875283757332D+00, &
1.46855328921666793167D+00, 2.26658058453184311180D+00, &
3.19099320178152760723D+00, -3.43615911883773760333D+00, &
-2.53273167423278979641D+00, -1.75668364929988177345D+00, &
-1.03661082978951365418D+00, -0.34290132722370460879D+00, &
0.34290132722370460879D+00, 1.03661082978951365418D+00, &
1.75668364929988177345D+00, 2.53273167423278979641D+00, &
3.43615911883773760333D+00, -3.66847084655958251846D+00, &
-2.78329009978165177084D+00, -2.02594801582575533517D+00, &
-1.32655708449493285595D+00, -6.56809566882099765025D-01, &
ZERO, 6.56809566882099765025D-01, 1.32655708449493285595D+00, &
2.02594801582575533517D+00, 2.78329009978165177084D+00, &
3.66847084655958251846D+00, -3.88972489786978191927D+00, &
-3.02063702512088977171D+00, -2.27950708050105990019D+00, &
-1.59768263515260479671D+00, -9.47788391240163743705D-01, &
-3.14240376254359111277D-01, 3.14240376254359111277D-01, &
9.47788391240163743705D-01, 1.59768263515260479671D+00, &
2.27950708050105990019D+00, 3.02063702512088977171D+00, &
3.88972489786978191927D+00, -4.10133759617863964118D+00, &
-3.24660897837240998812D+00, -2.51973568567823788343D+00, &
-1.85310765160151214200D+00, -1.22005503659074842622D+00, &
-6.05763879171060113081D-01, ZERO, 6.05763879171060113081D-01, &
1.22005503659074842622D+00, 1.85310765160151214200D+00, &
2.51973568567823788343D+00, 3.24660897837240998812D+00, &
4.10133759617863964118D+00, -4.30444857047363181262D+00, &
-3.46265693360227055021D+00, -2.74847072498540256862D+00, &
-2.09518325850771681573D+00, -1.47668273114114087058D+00, &
-8.78713787329399416115D-01, -2.91745510672562078446D-01, &
2.91745510672562078446D-01, 8.78713787329399416115D-01, &
1.47668273114114087058D+00, 2.09518325850771681573D+00, &
2.74847072498540256862D+00, 3.46265693360227055021D+00, &
4.30444857047363181262D+00, -4.49999070730939155366D+00, &
-3.66995037340445253473D+00, -2.96716692790560324849D+00, &
-2.32573248617385774545D+00, -1.71999257518648893242D+00, &
-1.13611558521092066632D+00, -5.65069583255575748526D-01, ZERO, &
5.65069583255575748526D-01, 1.13611558521092066632D+00, &
1.71999257518648893242D+00, 2.32573248617385774545D+00, &
2.96716692790560324849D+00, 3.66995037340445253473D+00, &
4.49999070730939155366D+00 /)
double precision, parameter :: gauHerw(120) = (/ &
1.77245385090551602730D+00, &
8.86226925452758013649D-01, 8.86226925452758013649D-01, &
2.95408975150919337883D-01, 1.18163590060367735153D+00, &
2.95408975150919337883D-01, 8.13128354472451771430D-02, &
8.04914090005512836506D-01, 8.04914090005512836506D-01, &
8.13128354472451771430D-02, 1.99532420590459132077D-02, &
3.93619323152241159828D-01, 9.45308720482941881226D-01, &
3.93619323152241159828D-01, 1.99532420590459132077D-02, &
4.53000990550884564086D-03, 1.57067320322856643916D-01, &
7.24629595224392524092D-01, 7.24629595224392524092D-01, &
1.57067320322856643916D-01, 4.53000990550884564086D-03, &
9.71781245099519154149D-04, 5.45155828191270305922D-02, &
4.25607252610127800520D-01, 8.10264617556807326765D-01, &
4.25607252610127800520D-01, 5.45155828191270305922D-02, &
9.71781245099519154149D-04, 1.99604072211367619206D-04, &
1.70779830074134754562D-02, 2.07802325814891879543D-01, &
6.61147012558241291030D-01, 6.61147012558241291030D-01, &
2.07802325814891879543D-01, 1.70779830074134754562D-02, &
1.99604072211367619206D-04, 3.96069772632643819046D-05, &
4.94362427553694721722D-03, 8.84745273943765732880D-02, &
4.32651559002555750200D-01, 7.20235215606050957124D-01, &
4.32651559002555750200D-01, 8.84745273943765732880D-02, &
4.94362427553694721722D-03, 3.96069772632643819046D-05, &
7.64043285523262062916D-06, 1.34364574678123269220D-03, &
3.38743944554810631362D-02, 2.40138611082314686417D-01, &
6.10862633735325798784D-01, 6.10862633735325798784D-01, &
2.40138611082314686417D-01, 3.38743944554810631362D-02, &
1.34364574678123269220D-03, 7.64043285523262062916D-06, &
1.43956039371425822033D-06, 3.46819466323345510643D-04, &
1.19113954449115324504D-02, 1.17227875167708503382D-01, &
4.29359752356125028446D-01, 6.54759286914591779204D-01, &
4.29359752356125028446D-01, 1.17227875167708503382D-01, &
1.19113954449115324504D-02, 3.46819466323345510643D-04, &
1.43956039371425822033D-06, 2.65855168435630160602D-07, &
8.57368704358785865457D-05, 3.90539058462906185999D-03, &
5.16079856158839299919D-02, 2.60492310264161129233D-01, &
5.70135236262479578347D-01, 5.70135236262479578347D-01, &
2.60492310264161129233D-01, 5.16079856158839299919D-02, &
3.90539058462906185999D-03, 8.57368704358785865457D-05, &
2.65855168435630160602D-07, 4.82573185007313108835D-08, &
2.04303604027070731249D-05, 1.20745999271938594731D-03, &
2.08627752961699392166D-02, 1.40323320687023437763D-01, &
4.21616296898543221747D-01, 6.04393187921161642342D-01, &
4.21616296898543221747D-01, 1.40323320687023437763D-01, &
2.08627752961699392166D-02, 1.20745999271938594731D-03, &
2.04303604027070731249D-05, 4.82573185007313108835D-08, &
8.62859116812515794532D-09, 4.71648435501891674888D-06, &
3.55092613551923610484D-04, 7.85005472645794431049D-03, &
6.85055342234652055387D-02, 2.73105609064246603353D-01, &
5.36405909712090149795D-01, 5.36405909712090149795D-01, &
2.73105609064246603353D-01, 6.85055342234652055387D-02, &
7.85005472645794431049D-03, 3.55092613551923610484D-04, &
4.71648435501891674888D-06, 8.62859116812515794532D-09, &
1.52247580425351702016D-09, 1.05911554771106663578D-06, &
1.00004441232499868127D-04, 2.77806884291277589608D-03, &
3.07800338725460822287D-02, 1.58488915795935746884D-01, &
4.12028687498898627026D-01, 5.64100308726417532853D-01, &
4.12028687498898627026D-01, 1.58488915795935746884D-01, &
3.07800338725460822287D-02, 2.77806884291277589608D-03, &
1.00004441232499868127D-04, 1.05911554771106663578D-06, &
1.52247580425351702016D-09 /)
!!!!!!!!!!!!!!!!! not use anymore
! 10 points
dimension gaussHerx(10),gaussHerw(10)
data gaussHerx/0.342901327223704609d0,1.03661082978951365d0,&
1.75668364929988177d0,2.53273167423278980d0,&
3.43615911883773760d0,&
-0.342901327223704609d0,-1.03661082978951365d0,&
-1.75668364929988177d0,-2.53273167423278980d0,&
-3.43615911883773760d0/
data gaussHerw/0.61086263375325799d0,0.240138611082314686d0,&
0.338743944554810631d-01,0.134364574678123269d-02,&
0.764043285523262063d-05,&
0.61086263375325799d0,0.240138611082314686d0,&
0.338743944554810631d-01,0.134364574678123269d-02,&
0.764043285523262063d-05/
! 5 points
dimension gaussHerx5(5),gaussHerw5(5)
data gaussHerx5/0d0,0.958572464613819d0,2.02018287045609d0,&
-0.958572464613819d0,-2.02018287045609d0 /
data gaussHerw5/0.945308720482942d0,0.393619323152241d0,&
0.199532420590459d-01,0.393619323152241d0, &
0.199532420590459d-01/
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
end module gausshermite