-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstencils.f90
132 lines (102 loc) · 5.24 KB
/
stencils.f90
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
!=============================================================================!
module stencils
!
! Finite Difference stencils of various orders
!
!=============================================================================!
!.... First derivatives
!=============================================================================!
!.... fourth order central difference ( 1 2 x 4 5 )
real, parameter :: ga1 = 8.333333333333333333333E-02
real, parameter :: ga2 = -6.666666666666666666667E-01
real, parameter :: ga3 = 6.666666666666666666667E-01
real, parameter :: ga4 = -8.333333333333333333333E-02
!.... fourth order one-sided ( x 2 3 4 5 )
real, parameter :: gc1 = -2.083333333333333333333E+00
real, parameter :: gc2 = 4.000000000000000000000E+00
real, parameter :: gc3 = -3.000000000000000000000E+00
real, parameter :: gc4 = 1.333333333333333333333E+00
real, parameter :: gc5 = -2.500000000000000000000E-01
!.... fourth order biased difference ( 1 x 2 3 4 5 )
real, parameter :: gb1 = -2.500000000000000000000E-01
real, parameter :: gb2 = -8.333333333333333333333E-01
real, parameter :: gb3 = 1.500000000000000000000E+00
real, parameter :: gb4 = -5.000000000000000000000E-01
real, parameter :: gb5 = 8.333333333333333333333E-02
!.... sixth order one-sided ( x 2 3 4 5 6 7 )
real, parameter :: ge1 = -2.450000000000000000000E+00
real, parameter :: ge2 = 6.000000000000000000000E+00
real, parameter :: ge3 = -7.500000000000000000000E+00
real, parameter :: ge4 = 6.666666666666666666667E+00
real, parameter :: ge5 = -3.750000000000000000000E+00
real, parameter :: ge6 = 1.200000000000000000000E+00
real, parameter :: ge7 = -1.666666666666666666667E-01
!.... sixth order one-pt biased ( 1 x 3 4 5 6 7 )
real, parameter :: gf1 = -1.666666666666666666667E-01
real, parameter :: gf2 = -1.283333333333333333333E+00
real, parameter :: gf3 = 2.500000000000000000000E+00
real, parameter :: gf4 = -1.666666666666666666667E+00
real, parameter :: gf5 = 8.333333333333333333333E-01
real, parameter :: gf6 = -2.500000000000000000000E-01
real, parameter :: gf7 = 3.333333333333333333333E-02
!==============================================================================
!.... The following stencils are Carpenter's stable and third
!.... order accurate boundary treatment for the explicit fourth
!.... order interior scheme.
!==============================================================================
!.... third order one-sided [Carpenter] ( x 2 3 4 5 6)
real, parameter :: gg1 = -1.8760320556207377229
real, parameter :: gg2 = 3.185383225577892867
real, parameter :: gg3 = -1.8145456794375275725
real, parameter :: gg4 = 0.5916582410526027442
real, parameter :: gg5 = -0.10105206800050562464
real, parameter :: gg6 = 0.014588336428275308769
!.... third order biased [Carpenter] ( 1 x 3 4 5 )
real, parameter :: gh1 = -0.38425423267792540204
real, parameter :: gh2 = -0.29063894776734868107
real, parameter :: gh3 = 0.6717647845153154114
real, parameter :: gh4 = 0.07108165983739987271
real, parameter :: gh5 = -0.07363071876172424507
real, parameter :: gh6 = 0.00567745485428304409
!.... third order biased [Carpenter] ( 1 2 x 4 5 )
real, parameter :: gi1 = 0.18288527868682620658
real, parameter :: gi2 = -1.0800147541745551643
real, parameter :: gi3 = 0.6578728964966252582
real, parameter :: gi4 = 0.17761704868919314564
real, parameter :: gi5 = 0.0767798363958275586
real, parameter :: gi6 = -0.015140306093917004671
!.... third order biased [Carpenter] ( 1 2 3 x 5 )
real, parameter :: gj1 = -0.03418371033652918578
real, parameter :: gj2 = 0.22482902574010312173
real, parameter :: gj3 = -0.8908123329284539625
real, parameter :: gj4 = 0.16529994771003501478
real, parameter :: gj5 = 0.6134395520875252998
real, parameter :: gj6 = -0.07857248227268028806
!=============================================================================!
!.... Second derivatives
!=============================================================================!
!.... fourth order central difference
real, parameter :: da1 = -8.333333333333333333333E-02
real, parameter :: da2 = 1.333333333333333333333E+00
real, parameter :: da3 = -2.500000000000000000000E+00
real, parameter :: da4 = 1.333333333333333333333E+00
real, parameter :: da5 = -8.333333333333333333333E-02
!.... third order biased difference
real, parameter :: db1 = 9.166666666666666666667E-01
real, parameter :: db2 = -1.666666666666666666667E+00
real, parameter :: db3 = 5.000000000000000000000E-01
real, parameter :: db4 = 3.333333333333333333333E-01
real, parameter :: db5 = -8.333333333333333333333E-02
!.... fourth order one-sided (assumes f'=0) [not smooth]
real, parameter :: dc1 = -5.763888888888888888889E+00
real, parameter :: dc2 = 8.000000000000000000000E+00
real, parameter :: dc3 = -3.000000000000000000000E+00
real, parameter :: dc4 = 8.888888888888888888889E-01
real, parameter :: dc5 = -1.250000000000000000000E-01
!.... third order one-sided
real, parameter :: dd1 = 2.916666666666666666667E+00
real, parameter :: dd2 = -8.666666666666666666667E+00
real, parameter :: dd3 = 9.500000000000000000000E+00
real, parameter :: dd4 = -4.666666666666666666667E+00
real, parameter :: dd5 = 9.166666666666666666667E-01
end module stencils