(git:e7e05ae)
lazy.F
Go to the documentation of this file.
1 !--------------------------------------------------------------------------------------------------!
2 ! CP2K: A general program to perform molecular dynamics simulations !
3 ! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4 ! !
5 ! SPDX-License-Identifier: GPL-2.0-or-later !
6 !--------------------------------------------------------------------------------------------------!
7 
8 ! **************************************************************************************************
9 !> \brief Filters for interpolating scaling functions .
10 !> \author Florian Schiffmann (09.2007,fschiff)
11 ! **************************************************************************************************
12 MODULE lazy
13 
14  USE kinds, ONLY: dp
15 #include "../base/base_uses.f90"
16 
17  IMPLICIT NONE
18 
19  PRIVATE
20 
21  CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'lazy'
22 
23 ! *** Public data types ***
24 
25  PUBLIC :: lazy_arrays
26 
27 CONTAINS
28 
29 ! **************************************************************************************************
30 !> \brief ...
31 !> \param itype ...
32 !> \param m ...
33 !> \param ch ...
34 !> \param cg ...
35 !> \param cgt ...
36 !> \param cht ...
37 !> \par History
38 !> 09.2007 created [Florian Schiffmann]
39 !> \author fschiff
40 ! **************************************************************************************************
41  SUBROUTINE lazy_arrays(itype, m, ch, cg, cgt, cht)
42  INTEGER, INTENT(in) :: itype, m
43  REAL(kind=dp), DIMENSION(:), POINTER :: ch, cg, cgt, cht
44 
45  INTEGER :: i
46 
47  ALLOCATE (ch(-m:m))
48  ALLOCATE (cg(-m:m))
49  ALLOCATE (cgt(-m:m))
50  ALLOCATE (cht(-m:m))
51 
52  SELECT CASE (itype)
53  CASE (8)
54 
55  DO i = -m, m
56  ch(i) = 0._dp
57  cht(i) = 0._dp
58  cg(i) = 0._dp
59  cgt(i) = 0._dp
60  END DO
61 
62  ! The normalization is chosen such that a constant function remains the same constant
63  ! on each level of the transform
64 
65  ch(-7) = -5._dp/2048._dp
66  ch(-6) = 0._dp
67  ch(-5) = 49._dp/2048._dp
68  ch(-4) = 0._dp
69  ch(-3) = -245._dp/2048._dp
70  ch(-2) = 0._dp
71  ch(-1) = 1225._dp/2048._dp
72  ch(0) = 1._dp
73  ch(1) = 1225._dp/2048._dp
74  ch(2) = 0._dp
75  ch(3) = -245._dp/2048._dp
76  ch(4) = 0._dp
77  ch(5) = 49._dp/2048._dp
78  ch(6) = 0._dp
79  ch(7) = -5._dp/2048._dp
80  !
81  cht(0) = 1._dp
82 
83  ! g coefficients from h coefficients
84  DO i = -m, m - 1
85  cg(i + 1) = cht(-i)*(-1)**(i + 1)
86  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
87  END DO
88 
89  CASE (14)
90  ch = (/ &
91  0._dp, 0._dp, 0._dp, 0.0000275373458862304687_dp, 0._dp, -0.000423073768615722656_dp, 0._dp, &
92  0.00310254096984863281_dp, 0._dp, -0.0146262645721435547_dp, 0._dp, &
93  0.0511919260025024414_dp, 0._dp, -0.153575778007507324_dp, 0._dp, 0.614303112030029297_dp, &
94  1._dp, 0.614303112030029297_dp, 0._dp, -0.153575778007507324_dp, 0._dp, &
95  0.0511919260025024414_dp, 0._dp, -0.0146262645721435547_dp, 0._dp, &
96  0.00310254096984863281_dp, 0._dp, -0.000423073768615722656_dp, 0._dp, &
97  0.0000275373458862304687_dp, 0._dp, 0._dp, 0._dp &
98  /)
99 
100  DO i = -m, m
101  cht(i) = 0._dp
102  cg(i) = 0._dp
103  cgt(i) = 0._dp
104  END DO
105 
106  ! the normalization is chosen such that a constant function remains the same constant
107  ! on each level of the transform
108 
109  cht(0) = 1._dp
110 
111  ! g coefficients from h coefficients
112  DO i = -m, m - 1
113  cg(i + 1) = cht(-i)*(-1)**(i + 1)
114  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
115  END DO
116 
117  CASE (16)
118  ch = (/ &
119  0._dp, 0._dp, 0._dp, -6.39259815216064453e-6_dp, 0._dp, 0.000110641121864318848_dp, 0._dp, &
120  -0.000915303826332092285_dp, 0._dp, 0.00484772026538848877_dp, 0._dp, &
121  -0.0186983495950698853_dp, 0._dp, 0.0575909167528152466_dp, 0._dp, &
122  -0.159974768757820129_dp, 0._dp, 0.617045536637306213_dp, 1._dp, 0.617045536637306213_dp, &
123  0._dp, -0.159974768757820129_dp, 0._dp, 0.0575909167528152466_dp, 0._dp, &
124  -0.0186983495950698853_dp, 0._dp, 0.00484772026538848877_dp, 0._dp, &
125  -0.000915303826332092285_dp, 0._dp, 0.000110641121864318848_dp, 0._dp, &
126  -6.39259815216064453e-6_dp, 0._dp, 0._dp, 0._dp &
127  /)
128 
129  DO i = -m, m
130  cht(i) = 0._dp
131  cg(i) = 0._dp
132  cgt(i) = 0._dp
133  END DO
134 
135  ! the normalization is chosen such that a constant function remains the same constant
136  ! on each level of the transform
137 
138  cht(0) = 1._dp
139 
140  ! g coefficients from h coefficients
141  DO i = -m, m - 1
142  cg(i + 1) = cht(-i)*(-1)**(i + 1)
143  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
144  END DO
145 
146  CASE (20)
147  ch = (/ &
148  0._dp, 0._dp, 0._dp, &
149  -3.53757059201598167e-7_dp, 0._dp, 7.51213519833981991e-6_dp, 0._dp, &
150  -0.0000766237790230661631_dp, 0._dp, 0.000501001632073894143_dp, 0._dp, &
151  -0.00236837135162204504_dp, 0._dp, 0.00868402828928083181_dp, 0._dp, &
152  -0.0260520848678424954_dp, 0._dp, 0.0677354206563904881_dp, 0._dp, &
153  -0.16933855164097622_dp, 0._dp, 0.620908022683579475_dp, 1._dp, 0.620908022683579475_dp, &
154  0._dp, -0.16933855164097622_dp, 0._dp, 0.0677354206563904881_dp, 0._dp, &
155  -0.0260520848678424954_dp, 0._dp, 0.00868402828928083181_dp, 0._dp, &
156  -0.00236837135162204504_dp, 0._dp, 0.000501001632073894143_dp, 0._dp, &
157  -0.0000766237790230661631_dp, 0._dp, 7.51213519833981991e-6_dp, 0._dp, &
158  -3.53757059201598167e-7_dp, &
159  0._dp, 0._dp, 0._dp/)
160 
161  !******** coefficients for wavelet transform *********************
162  DO i = -m, m
163  cht(i) = 0._dp
164  cg(i) = 0._dp
165  cgt(i) = 0._dp
166  END DO
167 
168  ! the normalization is chosen such that a constant function remains the same constant
169  ! on each level of the transform
170 
171  cht(0) = 1._dp
172 
173  ! g coefficients from h coefficients
174  DO i = -m, m - 1
175  cg(i + 1) = cht(-i)*(-1)**(i + 1)
176  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
177  END DO
178 
179  CASE (24)
180  ch = (/ &
181  0._dp, 0._dp, 0._dp, &
182  -2.00495833269087598e-8_dp, 0._dp, 5.0505855142546352e-7_dp, 0._dp, &
183  -6.14044870417274069e-6_dp, 0._dp, 0.0000480399810385279125_dp, 0._dp, &
184  -0.000272226559218324837_dp, 0._dp, 0.00119360875964957813_dp, 0._dp, &
185  -0.00423188560239395883_dp, 0._dp, 0.0125613112325027032_dp, 0._dp, &
186  -0.032300514597864094_dp, 0._dp, 0.0753678673950162192_dp, 0._dp, &
187  -0.175858357255037845_dp, 0._dp, 0.623497812086043268_dp, 1._dp, 0.623497812086043268_dp, &
188  0._dp, -0.175858357255037845_dp, 0._dp, 0.0753678673950162192_dp, 0._dp, &
189  -0.032300514597864094_dp, 0._dp, 0.0125613112325027032_dp, 0._dp, &
190  -0.00423188560239395883_dp, 0._dp, 0.00119360875964957813_dp, 0._dp, &
191  -0.000272226559218324837_dp, 0._dp, 0.0000480399810385279125_dp, 0._dp, &
192  -6.14044870417274069e-6_dp, 0._dp, 5.0505855142546352e-7_dp, 0._dp, &
193  -2.00495833269087598e-8_dp, &
194  0._dp, 0._dp, 0._dp/)
195 
196  !******** coefficients for wavelet transform *********************
197  DO i = -m, m
198  cht(i) = 0._dp
199  cg(i) = 0._dp
200  cgt(i) = 0._dp
201  END DO
202 
203  ! the normalization is chosen such that a constant function remains the same constant
204  ! on each level of the transform
205 
206  cht(0) = 1._dp
207 
208  ! g coefficients from h coefficients
209  DO i = -m, m - 1
210  cg(i + 1) = cht(-i)*(-1)**(i + 1)
211  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
212  END DO
213 
214  CASE (30)
215  ch = (/ &
216  0._dp, 0._dp, 0._dp, &
217  2.78364831185484718e-10_dp, 0._dp, -8.6705490009997277e-9_dp, 0._dp, &
218  1.31098700895115883e-7_dp, 0._dp, -1.28248729136526407e-6_dp, 0._dp, &
219  9.13008809805271326e-6_dp, 0._dp, -0.000050455750015554468_dp, 0._dp, &
220  0.000225566882422478798_dp, 0._dp, -0.00083996810502084962_dp, 0._dp, &
221  0.0026652834101623113_dp, 0._dp, -0.00734972091893243418_dp, 0._dp, &
222  0.0179659844685015058_dp, 0._dp, -0.039898484988490357_dp, 0._dp, &
223  0.0837868184758297496_dp, 0._dp, -0.18261229667809048_dp, 0._dp, 0.626099302896310217_dp, &
224  1._dp, 0.626099302896310217_dp, 0._dp, -0.18261229667809048_dp, 0._dp, &
225  0.0837868184758297496_dp, 0._dp, -0.039898484988490357_dp, 0._dp, &
226  0.0179659844685015058_dp, 0._dp, -0.00734972091893243418_dp, 0._dp, &
227  0.0026652834101623113_dp, 0._dp, -0.00083996810502084962_dp, 0._dp, &
228  0.000225566882422478798_dp, 0._dp, -0.000050455750015554468_dp, 0._dp, &
229  9.13008809805271326e-6_dp, 0._dp, -1.28248729136526407e-6_dp, 0._dp, &
230  1.31098700895115883e-7_dp, 0._dp, -8.6705490009997277e-9_dp, 0._dp, &
231  2.78364831185484718e-10_dp, &
232  0._dp, 0._dp, 0._dp/)
233 
234  !******** coefficients for wavelet transform *********************
235  DO i = -m, m
236  cht(i) = 0._dp
237  cg(i) = 0._dp
238  cgt(i) = 0._dp
239  END DO
240 
241  ! the normalization is chosen such that a constant function remains the same constant
242  ! on each level of the transform
243 
244  cht(0) = 1._dp
245 
246  ! g coefficients from h coefficients
247  DO i = -m, m - 1
248  cg(i + 1) = cht(-i)*(-1)**(i + 1)
249  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
250  END DO
251 
252  CASE (40)
253  ch = (/ &
254  0._dp, 0._dp, 0._dp, &
255  -2.33895335687458837e-13_dp, 0._dp, 9.61499474542229436e-12_dp, 0._dp, &
256  -1.9312403731519637e-10_dp, 0._dp, 2.52621846791090201e-9_dp, 0._dp, &
257  -2.42028027409528354e-8_dp, 0._dp, 1.81103730854716044e-7_dp, 0._dp, &
258  -1.10227332483179024e-6_dp, 0._dp, 5.61214589957214346e-6_dp, 0._dp, &
259  -0.0000244006343459658411_dp, 0._dp, 0.0000920510703104425647_dp, 0._dp, &
260  -0.000305221969976730609_dp, 0._dp, 0.000899343879450152758_dp, 0._dp, &
261  -0.00237826492565707063_dp, 0._dp, 0.00569939227746221067_dp, 0._dp, &
262  -0.0125090557778066702_dp, 0._dp, 0.0254814099177543281_dp, 0._dp, &
263  -0.0491427191270976329_dp, 0._dp, 0.0930820915230908105_dp, 0._dp, &
264  -0.189611667917407207_dp, 0._dp, 0.628712372568244948_dp, 1._dp, 0.628712372568244948_dp, &
265  0._dp, -0.189611667917407207_dp, 0._dp, 0.0930820915230908105_dp, 0._dp, &
266  -0.0491427191270976329_dp, 0._dp, 0.0254814099177543281_dp, 0._dp, &
267  -0.0125090557778066702_dp, 0._dp, 0.00569939227746221067_dp, 0._dp, &
268  -0.00237826492565707063_dp, 0._dp, 0.000899343879450152758_dp, 0._dp, &
269  -0.000305221969976730609_dp, 0._dp, 0.0000920510703104425647_dp, 0._dp, &
270  -0.0000244006343459658411_dp, 0._dp, 5.61214589957214346e-6_dp, 0._dp, &
271  -1.10227332483179024e-6_dp, 0._dp, 1.81103730854716044e-7_dp, 0._dp, &
272  -2.42028027409528354e-8_dp, 0._dp, 2.52621846791090201e-9_dp, 0._dp, &
273  -1.9312403731519637e-10_dp, 0._dp, 9.61499474542229436e-12_dp, 0._dp, &
274  -2.33895335687458837e-13_dp, &
275  0._dp, 0._dp, 0._dp/)
276 
277  !******** coefficients for wavelet transform *********************
278  DO i = -m, m
279  cht(i) = 0._dp
280  cg(i) = 0._dp
281  cgt(i) = 0._dp
282  END DO
283 
284  ! the normalization is chosen such that a constant function remains the same constant
285  ! on each level of the transform
286 
287  cht(0) = 1._dp
288 
289  ! g coefficients from h coefficients
290  DO i = -m, m - 1
291  cg(i + 1) = cht(-i)*(-1)**(i + 1)
292  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
293  END DO
294 
295  CASE (50)
296  !******** coefficients for wavelet transform *********************
297 
298  ch(-m:0) = (/0._dp, 0._dp, 0._dp, &
299  2.03510990661269603e-16_dp, 0._dp, -1.03963806080363471e-14_dp, 0._dp, &
300  2.60602607241444435e-13_dp, 0._dp, -4.27267065360972853e-12_dp, 0._dp, &
301  5.15325765417075794e-11_dp, 0._dp, -4.87577454971540944e-10_dp, 0._dp, &
302  3.76884194923947865e-9_dp, 0._dp, -2.44743981275102471e-8_dp, 0._dp, &
303  1.36277898664545694e-7_dp, 0._dp, -6.60874540835592558e-7_dp, 0._dp, &
304  2.82580838150391301e-6_dp, 0._dp, -0.0000107609066649189415_dp, 0._dp, &
305  0.0000368023007940227798_dp, 0._dp, -0.000113853271687194218_dp, 0._dp, &
306  0.000320647989649649023_dp, 0._dp, -0.00082693428909646327_dp, 0._dp, &
307  0.00196396893660410027_dp, 0._dp, -0.00432073166052902059_dp, 0._dp, &
308  0.008863039303649273_dp, 0._dp, -0.0170899753079935742_dp, 0._dp, &
309  0.0313316213979882195_dp, 0._dp, -0.0556296135025505121_dp, 0._dp, &
310  0.0991218567863627306_dp, 0._dp, -0.193934067625492299_dp, 0._dp, &
311  0.630285719782849972_dp, 1._dp/)
312  ch(1:m) = (/ &
313  0.630285719782849972_dp, 0._dp, -0.193934067625492299_dp, 0._dp, &
314  0.0991218567863627306_dp, 0._dp, -0.0556296135025505121_dp, 0._dp, &
315  0.0313316213979882195_dp, 0._dp, -0.0170899753079935742_dp, 0._dp, &
316  0.008863039303649273_dp, 0._dp, -0.00432073166052902059_dp, 0._dp, &
317  0.00196396893660410027_dp, 0._dp, -0.00082693428909646327_dp, 0._dp, &
318  0.000320647989649649023_dp, 0._dp, -0.000113853271687194218_dp, 0._dp, &
319  0.0000368023007940227798_dp, 0._dp, -0.0000107609066649189415_dp, 0._dp, &
320  2.82580838150391301e-6_dp, 0._dp, -6.60874540835592558e-7_dp, 0._dp, &
321  1.36277898664545694e-7_dp, 0._dp, -2.44743981275102471e-8_dp, 0._dp, &
322  3.76884194923947865e-9_dp, 0._dp, -4.87577454971540944e-10_dp, 0._dp, &
323  5.15325765417075794e-11_dp, 0._dp, -4.27267065360972853e-12_dp, 0._dp, &
324  2.60602607241444435e-13_dp, 0._dp, -1.03963806080363471e-14_dp, 0._dp, &
325  2.03510990661269603e-16_dp, &
326  0._dp, 0._dp, 0._dp/)
327  DO i = -m, m
328  cht(i) = 0._dp
329  cg(i) = 0._dp
330  cgt(i) = 0._dp
331  END DO
332 
333  ! the normalization is chosen such that a constant function remains the same constant
334  ! on each level of the transform
335 
336  cht(0) = 1._dp
337 
338  ! g coefficients from h coefficients
339  DO i = -m, m - 1
340  cg(i + 1) = cht(-i)*(-1)**(i + 1)
341  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
342  END DO
343 
344  CASE (60)
345  !******** coefficients for wavelet transform *********************
346  ch(-m:0) = (/ &
347  0._dp, 0._dp, 0._dp, &
348  -1.80960777804178984e-19_dp, 0._dp, 1.10513064480060885e-17_dp, 0._dp, &
349  -3.32141991973710259e-16_dp, 0._dp, 6.54883738891560793e-15_dp, 0._dp, &
350  -9.5279163579909433e-14_dp, 0._dp, 1.09084919935365698e-12_dp, 0._dp, &
351  -1.02354148279779304e-11_dp, 0._dp, 8.09410105920413478e-11_dp, 0._dp, &
352  -5.50587106934234749e-10_dp, 0._dp, 3.27218841600752522e-9_dp, 0._dp, &
353  -1.71999647508087864e-8_dp, 0._dp, 8.07595396530604197e-8_dp, 0._dp, &
354  -3.41497481961512632e-7_dp, 0._dp, 1.30947169656570694e-6_dp, 0._dp, &
355  -4.58013372208926991e-6_dp, 0._dp, 0.0000146880150398035208_dp, 0._dp, &
356  -0.0000433840444231233622_dp, 0._dp, 0.000118515001353520526_dp, 0._dp, &
357  -0.000300581525171972349_dp, 0._dp, 0.000710396937937769235_dp, 0._dp, &
358  -0.00157035112596770041_dp, 0._dp, 0.00325946830347917649_dp, 0._dp, &
359  -0.00638065613347741822_dp, 0._dp, 0.0118436928230099234_dp, 0._dp, &
360  -0.0209956372771539552_dp, 0._dp, 0.0359258682297967678_dp, 0._dp, &
361  -0.0604028333973506096_dp, 0._dp, 0.103355959368799932_dp, 0._dp, &
362  -0.196868494035809394_dp, 0._dp, 0.631336894666561161_dp, 1._dp/)
363  ch(1:m) = (/0.631336894666561161_dp, &
364  0._dp, -0.196868494035809394_dp, 0._dp, 0.103355959368799932_dp, 0._dp, &
365  -0.0604028333973506096_dp, 0._dp, 0.0359258682297967678_dp, 0._dp, &
366  -0.0209956372771539552_dp, 0._dp, 0.0118436928230099234_dp, 0._dp, &
367  -0.00638065613347741822_dp, 0._dp, 0.00325946830347917649_dp, 0._dp, &
368  -0.00157035112596770041_dp, 0._dp, 0.000710396937937769235_dp, 0._dp, &
369  -0.000300581525171972349_dp, 0._dp, 0.000118515001353520526_dp, 0._dp, &
370  -0.0000433840444231233622_dp, 0._dp, 0.0000146880150398035208_dp, 0._dp, &
371  -4.58013372208926991e-6_dp, 0._dp, 1.30947169656570694e-6_dp, 0._dp, &
372  -3.41497481961512632e-7_dp, 0._dp, 8.07595396530604197e-8_dp, 0._dp, &
373  -1.71999647508087864e-8_dp, 0._dp, 3.27218841600752522e-9_dp, 0._dp, &
374  -5.50587106934234749e-10_dp, 0._dp, 8.09410105920413478e-11_dp, 0._dp, &
375  -1.02354148279779304e-11_dp, 0._dp, 1.09084919935365698e-12_dp, 0._dp, &
376  -9.5279163579909433e-14_dp, 0._dp, 6.54883738891560793e-15_dp, 0._dp, &
377  -3.32141991973710259e-16_dp, 0._dp, 1.10513064480060885e-17_dp, 0._dp, &
378  -1.80960777804178984e-19_dp, &
379  0._dp, 0._dp, 0._dp/)
380 
381  DO i = -m, m
382  cht(i) = 0._dp
383  cg(i) = 0._dp
384  cgt(i) = 0._dp
385  END DO
386 
387  ! the normalization is chosen such that a constant function remains the same constant
388  ! on each level of the transform
389 
390  cht(0) = 1._dp
391 
392  ! g coefficients from h coefficients
393  DO i = -m, m - 1
394  cg(i + 1) = cht(-i)*(-1)**(i + 1)
395  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
396  END DO
397 
398  CASE (100)
399  !******** coefficients for wavelet transform *********************
400  ch(-m:-m + 22) = (/ &
401  0._dp, 0._dp, 0._dp, &
402  -1.2683805626484815e-31_dp, 0._dp, 1.28158741180595538e-29_dp, 0._dp, &
403  -6.41198417717232202e-28_dp, 0._dp, 2.11779334023809847e-26_dp, 0._dp, &
404  -5.19441179715542395e-25_dp, 0._dp, 1.00911662890805933e-23_dp, 0._dp, &
405  -1.61729304931893186e-22_dp, 0._dp, 2.19924673311587861e-21_dp, 0._dp, &
406  -2.59007672484430282e-20_dp, 0._dp, 2.68351845030850743e-19_dp, 0._dp/)
407  ch(-m + 23:0) = (/ &
408  -2.47631006363911635e-18_dp, 0._dp, 2.05560047903738218e-17_dp, 0._dp, &
409  -1.54763876066192241e-16_dp, 0._dp, 1.06410357358472536e-15_dp, 0._dp, &
410  -6.72076683598079057e-15_dp, 0._dp, 3.91882394735691508e-14_dp, 0._dp, &
411  -2.1187969775075261e-13_dp, 0._dp, 1.06630135673478305e-12_dp, 0._dp, &
412  -5.01180443685748998e-12_dp, 0._dp, 2.20666419683207691e-11_dp, 0._dp, &
413  -9.1258654919835045e-11_dp, 0._dp, 3.55352205999457932e-10_dp, 0._dp, &
414  -1.30569909741619005e-9_dp, 0._dp, 4.53620646231137398e-9_dp, 0._dp, &
415  -1.49279735540769725e-8_dp, 0._dp, 4.66118357913015673e-8_dp, 0._dp, &
416  -1.38309751701521672e-7_dp, 0._dp, 3.90568525175243503e-7_dp, 0._dp, &
417  -1.05103157937523999e-6_dp, 0._dp, 2.69873794098621337e-6_dp, 0._dp, &
418  -6.61998110310293365e-6_dp, 0._dp, 0.0000155312721433740143_dp, 0._dp, &
419  -0.0000348898934935080536_dp, 0._dp, 0.0000751302114254144957_dp, 0._dp, &
420  -0.000155250095336387829_dp, 0._dp, 0.000308205854288494064_dp, 0._dp, &
421  -0.000588508297900663563_dp, 0._dp, 0.00108221904295030132_dp, 0._dp, &
422  -0.00191926718143360074_dp, 0._dp, 0.00328782888345707184_dp, 0._dp, &
423  -0.00545087420152093489_dp, 0._dp, 0.00876675750345045625_dp, 0._dp, &
424  -0.0137206712673049998_dp, 0._dp, 0.0209859998811194541_dp, 0._dp, &
425  -0.031565718829452402_dp, 0._dp, 0.0471537281279474153_dp, 0._dp, &
426  -0.0711699126403181485_dp, 0._dp, 0.112357606764076737_dp, 0._dp, &
427  -0.202867901101805219_dp, 0._dp, 0.633444670787269357_dp, 1._dp/)
428  ch(1:80) = (/0.633444670787269357_dp, &
429  0._dp, -0.202867901101805219_dp, 0._dp, 0.112357606764076737_dp, 0._dp, &
430  -0.0711699126403181485_dp, 0._dp, 0.0471537281279474153_dp, 0._dp, &
431  -0.031565718829452402_dp, 0._dp, 0.0209859998811194541_dp, 0._dp, &
432  -0.0137206712673049998_dp, 0._dp, 0.00876675750345045625_dp, 0._dp, &
433  -0.00545087420152093489_dp, 0._dp, 0.00328782888345707184_dp, 0._dp, &
434  -0.00191926718143360074_dp, 0._dp, 0.00108221904295030132_dp, 0._dp, &
435  -0.000588508297900663563_dp, 0._dp, 0.000308205854288494064_dp, 0._dp, &
436  -0.000155250095336387829_dp, 0._dp, 0.0000751302114254144957_dp, 0._dp, &
437  -0.0000348898934935080536_dp, 0._dp, 0.0000155312721433740143_dp, 0._dp, &
438  -6.61998110310293365e-6_dp, 0._dp, 2.69873794098621337e-6_dp, 0._dp, &
439  -1.05103157937523999e-6_dp, 0._dp, 3.90568525175243503e-7_dp, 0._dp, &
440  -1.38309751701521672e-7_dp, 0._dp, 4.66118357913015673e-8_dp, 0._dp, &
441  -1.49279735540769725e-8_dp, 0._dp, 4.53620646231137398e-9_dp, 0._dp, &
442  -1.30569909741619005e-9_dp, 0._dp, 3.55352205999457932e-10_dp, 0._dp, &
443  -9.1258654919835045e-11_dp, 0._dp, 2.20666419683207691e-11_dp, 0._dp, &
444  -5.01180443685748998e-12_dp, 0._dp, 1.06630135673478305e-12_dp, 0._dp, &
445  -2.1187969775075261e-13_dp, 0._dp, 3.91882394735691508e-14_dp, 0._dp, &
446  -6.72076683598079057e-15_dp, 0._dp, 1.06410357358472536e-15_dp, 0._dp, &
447  -1.54763876066192241e-16_dp, 0._dp, 2.05560047903738218e-17_dp, 0._dp, &
448  -2.47631006363911635e-18_dp, 0._dp/)
449  ch(81:m) = (/2.68351845030850743e-19_dp, 0._dp, &
450  -2.59007672484430282e-20_dp, 0._dp, 2.19924673311587861e-21_dp, 0._dp, &
451  -1.61729304931893186e-22_dp, 0._dp, 1.00911662890805933e-23_dp, 0._dp, &
452  -5.19441179715542395e-25_dp, 0._dp, 2.11779334023809847e-26_dp, 0._dp, &
453  -6.41198417717232202e-28_dp, 0._dp, 1.28158741180595538e-29_dp, 0._dp, &
454  -1.2683805626484815e-31_dp, &
455  0._dp, 0._dp, 0._dp/)
456 
457  DO i = -m, m
458  cht(i) = 0._dp
459  cg(i) = 0._dp
460  cgt(i) = 0._dp
461  END DO
462 
463  ! the normalization is chosen such that a constant function remains the same constant
464  ! on each level of the transform
465 
466  cht(0) = 1._dp
467 
468  ! g coefficients from h coefficients
469  DO i = -m, m - 1
470  cg(i + 1) = cht(-i)*(-1)**(i + 1)
471  cgt(i + 1) = ch(-i)*(-1)**(i + 1)
472  END DO
473 
474  END SELECT
475 
476  END SUBROUTINE lazy_arrays
477 END MODULE lazy
Defines the basic variable types.
Definition: kinds.F:23
integer, parameter, public dp
Definition: kinds.F:34
Filters for interpolating scaling functions .
Definition: lazy.F:12
subroutine, public lazy_arrays(itype, m, ch, cg, cgt, cht)
...
Definition: lazy.F:42