grid_tools  1.12.0
 All Data Structures Files Functions Variables Pages
pietc.f90
Go to the documentation of this file.
1 
4 
14 module pietc
15 use pkind, only: dp,dpc
16 implicit none
17 logical ,parameter:: T=.true.
18 logical ,parameter:: F=.false.
19 real(dp),parameter:: u0=0_dp
20 real(dp),parameter:: u1=1_dp
21 real(dp),parameter:: mu1=-u1
22 real(dp),parameter:: u2=2_dp
23 real(dp),parameter:: mu2=-u2
24 real(dp),parameter:: u3=3_dp
25 real(dp),parameter:: mu3=-u3
26 real(dp),parameter:: u4=4_dp
27 real(dp),parameter:: mu4=-u4
28 real(dp),parameter:: u5=5_dp
29 real(dp),parameter:: mu5=-u5
30 real(dp),parameter:: u6=6_dp
31 real(dp),parameter:: mu6=-u6
32 real(dp),parameter:: o2=u1/u2
33 real(dp),parameter:: o3=u1/u3
34 real(dp),parameter:: o4=u1/u4
35 real(dp),parameter:: o5=u1/u5
36 real(dp),parameter:: o6=u1/u6
37 real(dp),parameter:: mo2=-o2
38 real(dp),parameter:: mo3=-o3
39 real(dp),parameter:: mo4=-o4
40 real(dp),parameter:: mo5=-o5
41 real(dp),parameter:: mo6=-o6
42 real(dp),parameter:: pi =3.1415926535897932384626433832795028841971693993751058209749e0_dp
43 real(dp),parameter:: pi2=6.2831853071795864769252867665590057683943387987502116419498e0_dp
44 real(dp),parameter:: pih=1.5707963267948966192313216916397514420985846996875529104874e0_dp
45 real(dp),parameter:: rpi=1.7724538509055160272981674833411451827975494561223871282138e0_dp
46 real(dp),parameter:: r2 =1.4142135623730950488016887242096980785696718753769480731766e0_dp
47 real(dp),parameter:: r3 =1.7320508075688772935274463415058723669428052538103806280558e0_dp
48 real(dp),parameter:: r5 =2.2360679774997896964091736687312762354406183596115257242708e0_dp
49 real(dp),parameter:: or2=u1/r2
50 real(dp),parameter:: or3=u1/r3
51 real(dp),parameter:: or5=u1/r5
52 real(dp),parameter:: phi=1.6180339887498948482045868343656381177203091798057628621354e0_dp
53 real(dp),parameter:: euler=0.57721566490153286060651209008240243104215933593992359880e0_dp
54 real(dp),parameter:: dtor=pi/180
55 real(dp),parameter:: rtod=180/pi
56 ! Sines of all main fractions of 90 degrees (down to ninths):
57 real(dp),parameter:: s10=.173648177666930348851716626769314796000375677184069387236241e0_dp
58 real(dp),parameter:: s11=.195090322016128267848284868477022240927691617751954807754502e0_dp
59 real(dp),parameter:: s13=.222520933956314404288902564496794759466355568764544955311987e0_dp
60 real(dp),parameter:: s15=.258819045102520762348898837624048328349068901319930513814003e0_dp
61 real(dp),parameter:: s18=.309016994374947424102293417182819058860154589902881431067724e0_dp
62 real(dp),parameter:: s20=.342020143325668733044099614682259580763083367514160628465048e0_dp
63 real(dp),parameter:: s22=.382683432365089771728459984030398866761344562485627041433800e0_dp
64 real(dp),parameter:: s26=.433883739117558120475768332848358754609990727787459876444547e0_dp
65 real(dp),parameter:: s30=o2
66 real(dp),parameter:: s34=.555570233019602224742830813948532874374937190754804045924153e0_dp
67 real(dp),parameter:: s36=.587785252292473129168705954639072768597652437643145991072272e0_dp
68 real(dp),parameter:: s39=.623489801858733530525004884004239810632274730896402105365549e0_dp
69 real(dp),parameter:: s40=.642787609686539326322643409907263432907559884205681790324977e0_dp
70 real(dp),parameter:: s45=or2
71 real(dp),parameter:: s50=.766044443118978035202392650555416673935832457080395245854045e0_dp
72 real(dp),parameter:: s51=.781831482468029808708444526674057750232334518708687528980634e0_dp
73 real(dp),parameter:: s54=.809016994374947424102293417182819058860154589902881431067724e0_dp
74 real(dp),parameter:: s56=.831469612302545237078788377617905756738560811987249963446124e0_dp
75 real(dp),parameter:: s60=r3*o2
76 real(dp),parameter:: s64=.900968867902419126236102319507445051165919162131857150053562e0_dp
77 real(dp),parameter:: s68=.923879532511286756128183189396788286822416625863642486115097e0_dp
78 real(dp),parameter:: s70=.939692620785908384054109277324731469936208134264464633090286e0_dp
79 real(dp),parameter:: s72=.951056516295153572116439333379382143405698634125750222447305e0_dp
80 real(dp),parameter:: s75=.965925826289068286749743199728897367633904839008404550402343e0_dp
81 real(dp),parameter:: s77=.974927912181823607018131682993931217232785800619997437648079e0_dp
82 real(dp),parameter:: s79=.980785280403230449126182236134239036973933730893336095002916e0_dp
83 real(dp),parameter:: s80=.984807753012208059366743024589523013670643251719842418790025e0_dp
84 ! ... and their minuses:
85 real(dp),parameter:: ms10=-s10
86 real(dp),parameter:: ms11=-s11
87 real(dp),parameter:: ms13=-s13
88 real(dp),parameter:: ms15=-s15
89 real(dp),parameter:: ms18=-s18
90 real(dp),parameter:: ms20=-s20
91 real(dp),parameter:: ms22=-s22
92 real(dp),parameter:: ms26=-s26
93 real(dp),parameter:: ms30=-s30
94 real(dp),parameter:: ms34=-s34
95 real(dp),parameter:: ms36=-s36
96 real(dp),parameter:: ms39=-s39
97 real(dp),parameter:: ms40=-s40
98 real(dp),parameter:: ms45=-s45
99 real(dp),parameter:: ms50=-s50
100 real(dp),parameter:: ms51=-s51
101 real(dp),parameter:: ms54=-s54
102 real(dp),parameter:: ms56=-s56
103 real(dp),parameter:: ms60=-s60
104 real(dp),parameter:: ms64=-s64
105 real(dp),parameter:: ms68=-s68
106 real(dp),parameter:: ms70=-s70
107 real(dp),parameter:: ms72=-s72
108 real(dp),parameter:: ms75=-s75
109 real(dp),parameter:: ms77=-s77
110 real(dp),parameter:: ms79=-s79
111 real(dp),parameter:: ms80=-s80
112 complex(dpc),parameter:: c0=(u0,u0)
113 complex(dpc),parameter:: c1=(u1,u0)
114 complex(dpc),parameter:: mc1=-c1
115 complex(dpc),parameter:: ci=(u0,u1)
116 complex(dpc),parameter:: mci=-ci
117 complex(dpc),parameter:: cipi=ci*pi
118 ! Main fractional rotations, as unimodular complex numbers:
119 complex(dpc),parameter:: z000=c1
120 complex(dpc),parameter:: z010=( s80,s10)
121 complex(dpc),parameter:: z011=( s79,s11)
122 complex(dpc),parameter:: z013=( s77,s13)
123 complex(dpc),parameter:: z015=( s75,s15)
124 complex(dpc),parameter:: z018=( s72,s18)
125 complex(dpc),parameter:: z020=( s70,s20)
126 complex(dpc),parameter:: z022=( s68,s22)
127 complex(dpc),parameter:: z026=( s64,s26)
128 complex(dpc),parameter:: z030=( s60,s30)
129 complex(dpc),parameter:: z034=( s56,s34)
130 complex(dpc),parameter:: z036=( s54,s36)
131 complex(dpc),parameter:: z039=( s51,s39)
132 complex(dpc),parameter:: z040=( s50,s40)
133 complex(dpc),parameter:: z045=( s45,s45)
134 complex(dpc),parameter:: z050=( s40,s50)
135 complex(dpc),parameter:: z051=( s39,s51)
136 complex(dpc),parameter:: z054=( s36,s54)
137 complex(dpc),parameter:: z056=( s34,s56)
138 complex(dpc),parameter:: z060=( s30,s60)
139 complex(dpc),parameter:: z064=( s26,s64)
140 complex(dpc),parameter:: z068=( s22,s68)
141 complex(dpc),parameter:: z070=( s20,s70)
142 complex(dpc),parameter:: z072=( s18,s72)
143 complex(dpc),parameter:: z075=( s15,s75)
144 complex(dpc),parameter:: z077=( s13,s77)
145 complex(dpc),parameter:: z079=( s11,s79)
146 complex(dpc),parameter:: z080=( s10,s80)
147 complex(dpc),parameter:: z090=ci
148 complex(dpc),parameter:: z100=(ms10,s80)
149 complex(dpc),parameter:: z101=(ms11,s79)
150 complex(dpc),parameter:: z103=(ms13,s77)
151 complex(dpc),parameter:: z105=(ms15,s75)
152 complex(dpc),parameter:: z108=(ms18,s72)
153 complex(dpc),parameter:: z110=(ms20,s70)
154 complex(dpc),parameter:: z112=(ms22,s68)
155 complex(dpc),parameter:: z116=(ms26,s64)
156 complex(dpc),parameter:: z120=(ms30,s60)
157 complex(dpc),parameter:: z124=(ms34,s56)
158 complex(dpc),parameter:: z126=(ms36,s54)
159 complex(dpc),parameter:: z129=(ms39,s51)
160 complex(dpc),parameter:: z130=(ms40,s50)
161 complex(dpc),parameter:: z135=(ms45,s45)
162 complex(dpc),parameter:: z140=(ms50,s40)
163 complex(dpc),parameter:: z141=(ms51,s39)
164 complex(dpc),parameter:: z144=(ms54,s36)
165 complex(dpc),parameter:: z146=(ms56,s34)
166 complex(dpc),parameter:: z150=(ms60,s30)
167 complex(dpc),parameter:: z154=(ms64,s26)
168 complex(dpc),parameter:: z158=(ms68,s22)
169 complex(dpc),parameter:: z160=(ms70,s20)
170 complex(dpc),parameter:: z162=(ms72,s18)
171 complex(dpc),parameter:: z165=(ms75,s15)
172 complex(dpc),parameter:: z167=(ms77,s13)
173 complex(dpc),parameter:: z169=(ms79,s11)
174 complex(dpc),parameter:: z170=(ms80,s10)
175 complex(dpc),parameter:: z180=-z000
176 complex(dpc),parameter:: z190=-z010
177 complex(dpc),parameter:: z191=-z011
178 complex(dpc),parameter:: z193=-z013
179 complex(dpc),parameter:: z195=-z015
180 complex(dpc),parameter:: z198=-z018
181 complex(dpc),parameter:: z200=-z020
182 complex(dpc),parameter:: z202=-z022
183 complex(dpc),parameter:: z206=-z026
184 complex(dpc),parameter:: z210=-z030
185 complex(dpc),parameter:: z214=-z034
186 complex(dpc),parameter:: z216=-z036
187 complex(dpc),parameter:: z219=-z039
188 complex(dpc),parameter:: z220=-z040
189 complex(dpc),parameter:: z225=-z045
190 complex(dpc),parameter:: z230=-z050
191 complex(dpc),parameter:: z231=-z051
192 complex(dpc),parameter:: z234=-z054
193 complex(dpc),parameter:: z236=-z056
194 complex(dpc),parameter:: z240=-z060
195 complex(dpc),parameter:: z244=-z064
196 complex(dpc),parameter:: z248=-z068
197 complex(dpc),parameter:: z250=-z070
198 complex(dpc),parameter:: z252=-z072
199 complex(dpc),parameter:: z255=-z075
200 complex(dpc),parameter:: z257=-z077
201 complex(dpc),parameter:: z259=-z079
202 complex(dpc),parameter:: z260=-z080
203 complex(dpc),parameter:: z270=-z090
204 complex(dpc),parameter:: z280=-z100
205 complex(dpc),parameter:: z281=-z101
206 complex(dpc),parameter:: z283=-z103
207 complex(dpc),parameter:: z285=-z105
208 complex(dpc),parameter:: z288=-z108
209 complex(dpc),parameter:: z290=-z110
210 complex(dpc),parameter:: z292=-z112
211 complex(dpc),parameter:: z296=-z116
212 complex(dpc),parameter:: z300=-z120
213 complex(dpc),parameter:: z304=-z124
214 complex(dpc),parameter:: z306=-z126
215 complex(dpc),parameter:: z309=-z129
216 complex(dpc),parameter:: z310=-z130
217 complex(dpc),parameter:: z315=-z135
218 complex(dpc),parameter:: z320=-z140
219 complex(dpc),parameter:: z321=-z141
220 complex(dpc),parameter:: z324=-z144
221 complex(dpc),parameter:: z326=-z146
222 complex(dpc),parameter:: z330=-z150
223 complex(dpc),parameter:: z334=-z154
224 complex(dpc),parameter:: z338=-z158
225 complex(dpc),parameter:: z340=-z160
226 complex(dpc),parameter:: z342=-z162
227 complex(dpc),parameter:: z345=-z165
228 complex(dpc),parameter:: z347=-z167
229 complex(dpc),parameter:: z349=-z169
230 complex(dpc),parameter:: z350=-z170
231 end module pietc
Standard integer, real, and complex single and double precision kinds.
Definition: pkind.f90:7
Some of the commonly used constants (pi etc) mainly for double-precision subroutines.
Definition: pietc.f90:14