Line data Source code
1 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3 : !!!! !!!!
4 : !!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!!
5 : !!!! !!!!
6 : !!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!!
7 : !!!! !!!!
8 : !!!! This file is part of the ParaMonte library. !!!!
9 : !!!! !!!!
10 : !!!! LICENSE !!!!
11 : !!!! !!!!
12 : !!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!!
13 : !!!! !!!!
14 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16 :
17 : !> \brief
18 : !> This file contains procedure implementations of [pm_fftpack](@ref pm_fftpack).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \FatemehBagheri, Wednesday 12:20 PM, September 22, 2021, Dallas, TX
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_fftpack) routines
28 :
29 : #if CHECK_ENABLED
30 : use pm_err, only: getFine
31 : use pm_val2str, only: getStr
32 : use pm_err, only: setAsserted
33 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
34 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
35 : #else
36 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
37 : #endif
38 :
39 : use pm_arrayResize, only: setResized
40 : implicit none
41 :
42 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 :
44 : contains
45 :
46 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 :
48 : #define setFactorFFT_ENABLED 1
49 :
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 :
54 : #define DXX_ENABLED 1
55 :
56 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 :
58 : #define CK_ENABLED 1
59 :
60 : #if CK5_ENABLED
61 : module procedure setFactorFFTDXX_CK5
62 : use pm_kind, only: TKC => CK5
63 : #include "pm_fftpack@routines.inc.F90"
64 : end procedure
65 : #endif
66 :
67 : #if CK4_ENABLED
68 0 : module procedure setFactorFFTDXX_CK4
69 : use pm_kind, only: TKC => CK4
70 : #include "pm_fftpack@routines.inc.F90"
71 0 : end procedure
72 : #endif
73 :
74 : #if CK3_ENABLED
75 0 : module procedure setFactorFFTDXX_CK3
76 : use pm_kind, only: TKC => CK3
77 : #include "pm_fftpack@routines.inc.F90"
78 0 : end procedure
79 : #endif
80 :
81 : #if CK2_ENABLED
82 0 : module procedure setFactorFFTDXX_CK2
83 : use pm_kind, only: TKC => CK2
84 : #include "pm_fftpack@routines.inc.F90"
85 0 : end procedure
86 : #endif
87 :
88 : #if CK1_ENABLED
89 0 : module procedure setFactorFFTDXX_CK1
90 : use pm_kind, only: TKC => CK1
91 : #include "pm_fftpack@routines.inc.F90"
92 0 : end procedure
93 : #endif
94 :
95 : #undef CK_ENABLED
96 :
97 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
98 :
99 : #define RK_ENABLED 1
100 :
101 : #if RK5_ENABLED
102 : module procedure setFactorFFTDXX_RK5
103 : use pm_kind, only: TKC => RK5
104 : #include "pm_fftpack@routines.inc.F90"
105 : end procedure
106 : #endif
107 :
108 : #if RK4_ENABLED
109 0 : module procedure setFactorFFTDXX_RK4
110 : use pm_kind, only: TKC => RK4
111 : #include "pm_fftpack@routines.inc.F90"
112 0 : end procedure
113 : #endif
114 :
115 : #if RK3_ENABLED
116 0 : module procedure setFactorFFTDXX_RK3
117 : use pm_kind, only: TKC => RK3
118 : #include "pm_fftpack@routines.inc.F90"
119 0 : end procedure
120 : #endif
121 :
122 : #if RK2_ENABLED
123 0 : module procedure setFactorFFTDXX_RK2
124 : use pm_kind, only: TKC => RK2
125 : #include "pm_fftpack@routines.inc.F90"
126 0 : end procedure
127 : #endif
128 :
129 : #if RK1_ENABLED
130 0 : module procedure setFactorFFTDXX_RK1
131 : use pm_kind, only: TKC => RK1
132 : #include "pm_fftpack@routines.inc.F90"
133 0 : end procedure
134 : #endif
135 :
136 : #undef RK_ENABLED
137 :
138 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
139 :
140 : #undef DXX_ENABLED
141 :
142 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
145 :
146 : #define DCX_ENABLED 1
147 :
148 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
149 :
150 : #define CK_ENABLED 1
151 :
152 : #if CK5_ENABLED
153 : module procedure setFactorFFTDCX_CK5
154 : use pm_kind, only: TKC => CK5
155 : #include "pm_fftpack@routines.inc.F90"
156 : end procedure
157 : #endif
158 :
159 : #if CK4_ENABLED
160 3836 : module procedure setFactorFFTDCX_CK4
161 : use pm_kind, only: TKC => CK4
162 : #include "pm_fftpack@routines.inc.F90"
163 3836 : end procedure
164 : #endif
165 :
166 : #if CK3_ENABLED
167 3768 : module procedure setFactorFFTDCX_CK3
168 : use pm_kind, only: TKC => CK3
169 : #include "pm_fftpack@routines.inc.F90"
170 3768 : end procedure
171 : #endif
172 :
173 : #if CK2_ENABLED
174 3836 : module procedure setFactorFFTDCX_CK2
175 : use pm_kind, only: TKC => CK2
176 : #include "pm_fftpack@routines.inc.F90"
177 3836 : end procedure
178 : #endif
179 :
180 : #if CK1_ENABLED
181 3841 : module procedure setFactorFFTDCX_CK1
182 : use pm_kind, only: TKC => CK1
183 : #include "pm_fftpack@routines.inc.F90"
184 3841 : end procedure
185 : #endif
186 :
187 : #undef CK_ENABLED
188 :
189 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
190 :
191 : #define RK_ENABLED 1
192 :
193 : #if RK5_ENABLED
194 : module procedure setFactorFFTDCX_RK5
195 : use pm_kind, only: TKC => RK5
196 : #include "pm_fftpack@routines.inc.F90"
197 : end procedure
198 : #endif
199 :
200 : #if RK4_ENABLED
201 3700 : module procedure setFactorFFTDCX_RK4
202 : use pm_kind, only: TKC => RK4
203 : #include "pm_fftpack@routines.inc.F90"
204 : end procedure
205 : #endif
206 :
207 : #if RK3_ENABLED
208 3642 : module procedure setFactorFFTDCX_RK3
209 : use pm_kind, only: TKC => RK3
210 : #include "pm_fftpack@routines.inc.F90"
211 : end procedure
212 : #endif
213 :
214 : #if RK2_ENABLED
215 3700 : module procedure setFactorFFTDCX_RK2
216 : use pm_kind, only: TKC => RK2
217 : #include "pm_fftpack@routines.inc.F90"
218 : end procedure
219 : #endif
220 :
221 : #if RK1_ENABLED
222 3714 : module procedure setFactorFFTDCX_RK1
223 : use pm_kind, only: TKC => RK1
224 : #include "pm_fftpack@routines.inc.F90"
225 : end procedure
226 : #endif
227 :
228 : #undef RK_ENABLED
229 :
230 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
231 :
232 : #undef DCX_ENABLED
233 :
234 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
235 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
236 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
237 :
238 : #define DCA_ENABLED 1
239 :
240 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
241 :
242 : #define CK_ENABLED 1
243 :
244 : #if CK5_ENABLED
245 : module procedure setFactorFFTDCA_CK5
246 : use pm_kind, only: TKC => CK5
247 : #include "pm_fftpack@routines.inc.F90"
248 : end procedure
249 : #endif
250 :
251 : #if CK4_ENABLED
252 0 : module procedure setFactorFFTDCA_CK4
253 : use pm_kind, only: TKC => CK4
254 : #include "pm_fftpack@routines.inc.F90"
255 0 : end procedure
256 : #endif
257 :
258 : #if CK3_ENABLED
259 0 : module procedure setFactorFFTDCA_CK3
260 : use pm_kind, only: TKC => CK3
261 : #include "pm_fftpack@routines.inc.F90"
262 0 : end procedure
263 : #endif
264 :
265 : #if CK2_ENABLED
266 0 : module procedure setFactorFFTDCA_CK2
267 : use pm_kind, only: TKC => CK2
268 : #include "pm_fftpack@routines.inc.F90"
269 0 : end procedure
270 : #endif
271 :
272 : #if CK1_ENABLED
273 0 : module procedure setFactorFFTDCA_CK1
274 : use pm_kind, only: TKC => CK1
275 : #include "pm_fftpack@routines.inc.F90"
276 0 : end procedure
277 : #endif
278 :
279 : #undef CK_ENABLED
280 :
281 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
282 :
283 : #define RK_ENABLED 1
284 :
285 : #if RK5_ENABLED
286 : module procedure setFactorFFTDCA_RK5
287 : use pm_kind, only: TKC => RK5
288 : #include "pm_fftpack@routines.inc.F90"
289 : end procedure
290 : #endif
291 :
292 : #if RK4_ENABLED
293 0 : module procedure setFactorFFTDCA_RK4
294 : use pm_kind, only: TKC => RK4
295 : #include "pm_fftpack@routines.inc.F90"
296 0 : end procedure
297 : #endif
298 :
299 : #if RK3_ENABLED
300 0 : module procedure setFactorFFTDCA_RK3
301 : use pm_kind, only: TKC => RK3
302 : #include "pm_fftpack@routines.inc.F90"
303 0 : end procedure
304 : #endif
305 :
306 : #if RK2_ENABLED
307 0 : module procedure setFactorFFTDCA_RK2
308 : use pm_kind, only: TKC => RK2
309 : #include "pm_fftpack@routines.inc.F90"
310 0 : end procedure
311 : #endif
312 :
313 : #if RK1_ENABLED
314 2 : module procedure setFactorFFTDCA_RK1
315 : use pm_kind, only: TKC => RK1
316 : #include "pm_fftpack@routines.inc.F90"
317 2 : end procedure
318 : #endif
319 :
320 : #undef RK_ENABLED
321 :
322 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
323 :
324 : #undef DCA_ENABLED
325 :
326 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
327 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
328 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
329 :
330 : #undef setFactorFFT_ENABLED
331 :
332 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
333 :
334 : #define getFFTF_ENABLED 1
335 :
336 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337 :
338 : #define CK_ENABLED 1
339 :
340 : #if CK5_ENABLED
341 : module procedure getFFTF_CK5
342 : use pm_kind, only: TKC => CK5
343 : #include "pm_fftpack@routines.inc.F90"
344 : end procedure
345 : #endif
346 :
347 : #if CK4_ENABLED
348 119 : module procedure getFFTF_CK4
349 : use pm_kind, only: TKC => CK4
350 : #include "pm_fftpack@routines.inc.F90"
351 119 : end procedure
352 : #endif
353 :
354 : #if CK3_ENABLED
355 84 : module procedure getFFTF_CK3
356 : use pm_kind, only: TKC => CK3
357 : #include "pm_fftpack@routines.inc.F90"
358 84 : end procedure
359 : #endif
360 :
361 : #if CK2_ENABLED
362 119 : module procedure getFFTF_CK2
363 : use pm_kind, only: TKC => CK2
364 : #include "pm_fftpack@routines.inc.F90"
365 119 : end procedure
366 : #endif
367 :
368 : #if CK1_ENABLED
369 119 : module procedure getFFTF_CK1
370 : use pm_kind, only: TKC => CK1
371 : #include "pm_fftpack@routines.inc.F90"
372 119 : end procedure
373 : #endif
374 :
375 : #undef CK_ENABLED
376 :
377 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
378 :
379 : #define RK_ENABLED 1
380 :
381 : #if RK5_ENABLED
382 : module procedure getFFTF_RK5
383 : use pm_kind, only: TKC => RK5
384 : #include "pm_fftpack@routines.inc.F90"
385 : end procedure
386 : #endif
387 :
388 : #if RK4_ENABLED
389 30 : module procedure getFFTF_RK4
390 : use pm_kind, only: TKC => RK4
391 : #include "pm_fftpack@routines.inc.F90"
392 30 : end procedure
393 : #endif
394 :
395 : #if RK3_ENABLED
396 0 : module procedure getFFTF_RK3
397 : use pm_kind, only: TKC => RK3
398 : #include "pm_fftpack@routines.inc.F90"
399 0 : end procedure
400 : #endif
401 :
402 : #if RK2_ENABLED
403 30 : module procedure getFFTF_RK2
404 : use pm_kind, only: TKC => RK2
405 : #include "pm_fftpack@routines.inc.F90"
406 30 : end procedure
407 : #endif
408 :
409 : #if RK1_ENABLED
410 30 : module procedure getFFTF_RK1
411 : use pm_kind, only: TKC => RK1
412 : #include "pm_fftpack@routines.inc.F90"
413 30 : end procedure
414 : #endif
415 :
416 : #undef RK_ENABLED
417 :
418 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
419 :
420 : #undef getFFTF_ENABLED
421 :
422 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
423 :
424 : #define getFFTR_ENABLED 1
425 :
426 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
427 :
428 : #define CK_ENABLED 1
429 :
430 : #if CK5_ENABLED
431 : module procedure getFFTR_CK5
432 : use pm_kind, only: TKC => CK5
433 : #include "pm_fftpack@routines.inc.F90"
434 : end procedure
435 : #endif
436 :
437 : #if CK4_ENABLED
438 5 : module procedure getFFTR_CK4
439 : use pm_kind, only: TKC => CK4
440 : #include "pm_fftpack@routines.inc.F90"
441 5 : end procedure
442 : #endif
443 :
444 : #if CK3_ENABLED
445 0 : module procedure getFFTR_CK3
446 : use pm_kind, only: TKC => CK3
447 : #include "pm_fftpack@routines.inc.F90"
448 0 : end procedure
449 : #endif
450 :
451 : #if CK2_ENABLED
452 5 : module procedure getFFTR_CK2
453 : use pm_kind, only: TKC => CK2
454 : #include "pm_fftpack@routines.inc.F90"
455 5 : end procedure
456 : #endif
457 :
458 : #if CK1_ENABLED
459 5 : module procedure getFFTR_CK1
460 : use pm_kind, only: TKC => CK1
461 : #include "pm_fftpack@routines.inc.F90"
462 5 : end procedure
463 : #endif
464 :
465 : #undef CK_ENABLED
466 :
467 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
468 :
469 : #define RK_ENABLED 1
470 :
471 : #if RK5_ENABLED
472 : module procedure getFFTR_RK5
473 : use pm_kind, only: TKC => RK5
474 : #include "pm_fftpack@routines.inc.F90"
475 : end procedure
476 : #endif
477 :
478 : #if RK4_ENABLED
479 5 : module procedure getFFTR_RK4
480 : use pm_kind, only: TKC => RK4
481 : #include "pm_fftpack@routines.inc.F90"
482 5 : end procedure
483 : #endif
484 :
485 : #if RK3_ENABLED
486 0 : module procedure getFFTR_RK3
487 : use pm_kind, only: TKC => RK3
488 : #include "pm_fftpack@routines.inc.F90"
489 0 : end procedure
490 : #endif
491 :
492 : #if RK2_ENABLED
493 5 : module procedure getFFTR_RK2
494 : use pm_kind, only: TKC => RK2
495 : #include "pm_fftpack@routines.inc.F90"
496 5 : end procedure
497 : #endif
498 :
499 : #if RK1_ENABLED
500 5 : module procedure getFFTR_RK1
501 : use pm_kind, only: TKC => RK1
502 : #include "pm_fftpack@routines.inc.F90"
503 5 : end procedure
504 : #endif
505 :
506 : #undef RK_ENABLED
507 :
508 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
509 :
510 : #undef getFFTR_ENABLED
511 :
512 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
513 :
514 : #define getFFTI_ENABLED 1
515 :
516 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
517 :
518 : #define CK_ENABLED 1
519 :
520 : #if CK5_ENABLED
521 : module procedure getFFTI_CK5
522 : use pm_kind, only: TKC => CK5
523 : #include "pm_fftpack@routines.inc.F90"
524 : end procedure
525 : #endif
526 :
527 : #if CK4_ENABLED
528 67 : module procedure getFFTI_CK4
529 : use pm_kind, only: TKC => CK4
530 : #include "pm_fftpack@routines.inc.F90"
531 67 : end procedure
532 : #endif
533 :
534 : #if CK3_ENABLED
535 42 : module procedure getFFTI_CK3
536 : use pm_kind, only: TKC => CK3
537 : #include "pm_fftpack@routines.inc.F90"
538 42 : end procedure
539 : #endif
540 :
541 : #if CK2_ENABLED
542 67 : module procedure getFFTI_CK2
543 : use pm_kind, only: TKC => CK2
544 : #include "pm_fftpack@routines.inc.F90"
545 67 : end procedure
546 : #endif
547 :
548 : #if CK1_ENABLED
549 67 : module procedure getFFTI_CK1
550 : use pm_kind, only: TKC => CK1
551 : #include "pm_fftpack@routines.inc.F90"
552 67 : end procedure
553 : #endif
554 :
555 : #undef CK_ENABLED
556 :
557 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
558 :
559 : #define RK_ENABLED 1
560 :
561 : #if RK5_ENABLED
562 : module procedure getFFTI_RK5
563 : use pm_kind, only: TKC => RK5
564 : #include "pm_fftpack@routines.inc.F90"
565 : end procedure
566 : #endif
567 :
568 : #if RK4_ENABLED
569 20 : module procedure getFFTI_RK4
570 : use pm_kind, only: TKC => RK4
571 : #include "pm_fftpack@routines.inc.F90"
572 20 : end procedure
573 : #endif
574 :
575 : #if RK3_ENABLED
576 0 : module procedure getFFTI_RK3
577 : use pm_kind, only: TKC => RK3
578 : #include "pm_fftpack@routines.inc.F90"
579 0 : end procedure
580 : #endif
581 :
582 : #if RK2_ENABLED
583 20 : module procedure getFFTI_RK2
584 : use pm_kind, only: TKC => RK2
585 : #include "pm_fftpack@routines.inc.F90"
586 20 : end procedure
587 : #endif
588 :
589 : #if RK1_ENABLED
590 20 : module procedure getFFTI_RK1
591 : use pm_kind, only: TKC => RK1
592 : #include "pm_fftpack@routines.inc.F90"
593 20 : end procedure
594 : #endif
595 :
596 : #undef RK_ENABLED
597 :
598 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
599 :
600 : #undef getFFTI_ENABLED
601 :
602 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
603 :
604 : #define setFFTF_ENABLED 1
605 :
606 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
607 :
608 : #define CK_ENABLED 1
609 :
610 : #if CK5_ENABLED
611 : module procedure setFFTF_CK5
612 : use pm_kind, only: TKC => CK5
613 : #include "pm_fftpack@routines.inc.F90"
614 : end procedure
615 : #endif
616 :
617 : #if CK4_ENABLED
618 6627 : module procedure setFFTF_CK4
619 : use pm_kind, only: TKC => CK4
620 : #include "pm_fftpack@routines.inc.F90"
621 : end procedure
622 : #endif
623 :
624 : #if CK3_ENABLED
625 6589 : module procedure setFFTF_CK3
626 : use pm_kind, only: TKC => CK3
627 : #include "pm_fftpack@routines.inc.F90"
628 : end procedure
629 : #endif
630 :
631 : #if CK2_ENABLED
632 6627 : module procedure setFFTF_CK2
633 : use pm_kind, only: TKC => CK2
634 : #include "pm_fftpack@routines.inc.F90"
635 : end procedure
636 : #endif
637 :
638 : #if CK1_ENABLED
639 6633 : module procedure setFFTF_CK1
640 : use pm_kind, only: TKC => CK1
641 : #include "pm_fftpack@routines.inc.F90"
642 : end procedure
643 : #endif
644 :
645 : #undef CK_ENABLED
646 :
647 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
648 :
649 : #define RK_ENABLED 1
650 :
651 : #if RK5_ENABLED
652 : module procedure setFFTF_RK5
653 : use pm_kind, only: TKC => RK5
654 : #include "pm_fftpack@routines.inc.F90"
655 : end procedure
656 : #endif
657 :
658 : #if RK4_ENABLED
659 6538 : module procedure setFFTF_RK4
660 : use pm_kind, only: TKC => RK4
661 : #include "pm_fftpack@routines.inc.F90"
662 : end procedure
663 : #endif
664 :
665 : #if RK3_ENABLED
666 6505 : module procedure setFFTF_RK3
667 : use pm_kind, only: TKC => RK3
668 : #include "pm_fftpack@routines.inc.F90"
669 : end procedure
670 : #endif
671 :
672 : #if RK2_ENABLED
673 6538 : module procedure setFFTF_RK2
674 : use pm_kind, only: TKC => RK2
675 : #include "pm_fftpack@routines.inc.F90"
676 : end procedure
677 : #endif
678 :
679 : #if RK1_ENABLED
680 6557 : module procedure setFFTF_RK1
681 : use pm_kind, only: TKC => RK1
682 : #include "pm_fftpack@routines.inc.F90"
683 : end procedure
684 : #endif
685 :
686 : #undef RK_ENABLED
687 :
688 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
689 :
690 : #undef setFFTF_ENABLED
691 :
692 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
693 :
694 : #define setFFTR_ENABLED 1
695 :
696 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
697 :
698 : #define CK_ENABLED 1
699 :
700 : #if CK5_ENABLED
701 : module procedure setFFTR_CK5
702 : use pm_kind, only: TKC => CK5
703 : #include "pm_fftpack@routines.inc.F90"
704 : end procedure
705 : #endif
706 :
707 : #if CK4_ENABLED
708 3738 : module procedure setFFTR_CK4
709 : use pm_kind, only: TKC => CK4
710 : #include "pm_fftpack@routines.inc.F90"
711 : end procedure
712 : #endif
713 :
714 : #if CK3_ENABLED
715 3705 : module procedure setFFTR_CK3
716 : use pm_kind, only: TKC => CK3
717 : #include "pm_fftpack@routines.inc.F90"
718 : end procedure
719 : #endif
720 :
721 : #if CK2_ENABLED
722 3738 : module procedure setFFTR_CK2
723 : use pm_kind, only: TKC => CK2
724 : #include "pm_fftpack@routines.inc.F90"
725 : end procedure
726 : #endif
727 :
728 : #if CK1_ENABLED
729 3742 : module procedure setFFTR_CK1
730 : use pm_kind, only: TKC => CK1
731 : #include "pm_fftpack@routines.inc.F90"
732 : end procedure
733 : #endif
734 :
735 : #undef CK_ENABLED
736 :
737 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
738 :
739 : #define RK_ENABLED 1
740 :
741 : #if RK5_ENABLED
742 : module procedure setFFTR_RK5
743 : use pm_kind, only: TKC => RK5
744 : #include "pm_fftpack@routines.inc.F90"
745 : end procedure
746 : #endif
747 :
748 : #if RK4_ENABLED
749 3691 : module procedure setFFTR_RK4
750 : use pm_kind, only: TKC => RK4
751 : #include "pm_fftpack@routines.inc.F90"
752 : end procedure
753 : #endif
754 :
755 : #if RK3_ENABLED
756 3663 : module procedure setFFTR_RK3
757 : use pm_kind, only: TKC => RK3
758 : #include "pm_fftpack@routines.inc.F90"
759 : end procedure
760 : #endif
761 :
762 : #if RK2_ENABLED
763 3691 : module procedure setFFTR_RK2
764 : use pm_kind, only: TKC => RK2
765 : #include "pm_fftpack@routines.inc.F90"
766 : end procedure
767 : #endif
768 :
769 : #if RK1_ENABLED
770 3704 : module procedure setFFTR_RK1
771 : use pm_kind, only: TKC => RK1
772 : #include "pm_fftpack@routines.inc.F90"
773 : end procedure
774 : #endif
775 :
776 : #undef RK_ENABLED
777 :
778 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
779 :
780 : #undef setFFTR_ENABLED
781 :
782 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
783 :
784 : #define setFFTI_ENABLED 1
785 :
786 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
787 :
788 : #define CK_ENABLED 1
789 :
790 : #if CK5_ENABLED
791 : module procedure setFFTI_CK5
792 : use pm_kind, only: TKC => CK5
793 : #include "pm_fftpack@routines.inc.F90"
794 : end procedure
795 : #endif
796 :
797 : #if CK4_ENABLED
798 68 : module procedure setFFTI_CK4
799 : use pm_kind, only: TKC => CK4
800 : #include "pm_fftpack@routines.inc.F90"
801 68 : end procedure
802 : #endif
803 :
804 : #if CK3_ENABLED
805 42 : module procedure setFFTI_CK3
806 : use pm_kind, only: TKC => CK3
807 : #include "pm_fftpack@routines.inc.F90"
808 42 : end procedure
809 : #endif
810 :
811 : #if CK2_ENABLED
812 68 : module procedure setFFTI_CK2
813 : use pm_kind, only: TKC => CK2
814 : #include "pm_fftpack@routines.inc.F90"
815 68 : end procedure
816 : #endif
817 :
818 : #if CK1_ENABLED
819 68 : module procedure setFFTI_CK1
820 : use pm_kind, only: TKC => CK1
821 : #include "pm_fftpack@routines.inc.F90"
822 68 : end procedure
823 : #endif
824 :
825 : #undef CK_ENABLED
826 :
827 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
828 :
829 : #define RK_ENABLED 1
830 :
831 : #if RK5_ENABLED
832 : module procedure setFFTI_RK5
833 : use pm_kind, only: TKC => RK5
834 : #include "pm_fftpack@routines.inc.F90"
835 : end procedure
836 : #endif
837 :
838 : #if RK4_ENABLED
839 21 : module procedure setFFTI_RK4
840 : use pm_kind, only: TKC => RK4
841 : #include "pm_fftpack@routines.inc.F90"
842 21 : end procedure
843 : #endif
844 :
845 : #if RK3_ENABLED
846 0 : module procedure setFFTI_RK3
847 : use pm_kind, only: TKC => RK3
848 : #include "pm_fftpack@routines.inc.F90"
849 0 : end procedure
850 : #endif
851 :
852 : #if RK2_ENABLED
853 21 : module procedure setFFTI_RK2
854 : use pm_kind, only: TKC => RK2
855 : #include "pm_fftpack@routines.inc.F90"
856 21 : end procedure
857 : #endif
858 :
859 : #if RK1_ENABLED
860 21 : module procedure setFFTI_RK1
861 : use pm_kind, only: TKC => RK1
862 : #include "pm_fftpack@routines.inc.F90"
863 21 : end procedure
864 : #endif
865 :
866 : #undef RK_ENABLED
867 :
868 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
869 :
870 : #undef setFFTI_ENABLED
871 :
872 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
873 :
874 : #undef CHECK_ASSERTION
875 :
876 : end submodule routines
|