https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_fftnr@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 66 88 75.0 %
Date: 2024-04-08 03:18:57 Functions: 36 48 75.0 %
Legend: Lines: hit not hit

          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_fftnr](@ref pm_fftnr).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \FatemehBagheri, Wednesday 12:20 PM, September 22, 2021, Dallas, TX
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_fftnr) 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_mathExp, only: isIntPow
      40             :     implicit none
      41             : 
      42             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      43             : 
      44             : contains
      45             : 
      46             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      47             : 
      48             : #define getFFTF_ENABLED 1
      49             : 
      50             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      51             : 
      52             : #define CK_ENABLED 1
      53             : 
      54             : #if CK5_ENABLED
      55             :     module procedure getFFTF_CK5
      56             :         use pm_kind, only: TKC => CK5
      57             : #include "pm_fftnr@routines.inc.F90"
      58             :     end procedure
      59             : #endif
      60             : 
      61             : #if CK4_ENABLED
      62          15 :     module procedure getFFTF_CK4
      63             :         use pm_kind, only: TKC => CK4
      64             : #include "pm_fftnr@routines.inc.F90"
      65          15 :     end procedure
      66             : #endif
      67             : 
      68             : #if CK3_ENABLED
      69           0 :     module procedure getFFTF_CK3
      70             :         use pm_kind, only: TKC => CK3
      71             : #include "pm_fftnr@routines.inc.F90"
      72           0 :     end procedure
      73             : #endif
      74             : 
      75             : #if CK2_ENABLED
      76          15 :     module procedure getFFTF_CK2
      77             :         use pm_kind, only: TKC => CK2
      78             : #include "pm_fftnr@routines.inc.F90"
      79          15 :     end procedure
      80             : #endif
      81             : 
      82             : #if CK1_ENABLED
      83          15 :     module procedure getFFTF_CK1
      84             :         use pm_kind, only: TKC => CK1
      85             : #include "pm_fftnr@routines.inc.F90"
      86          15 :     end procedure
      87             : #endif
      88             : 
      89             : #undef CK_ENABLED
      90             : 
      91             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      92             : 
      93             : #define RK_ENABLED 1
      94             : 
      95             : #if RK5_ENABLED
      96             :     module procedure getFFTF_RK5
      97             :         use pm_kind, only: TKC => RK5
      98             : #include "pm_fftnr@routines.inc.F90"
      99             :     end procedure
     100             : #endif
     101             : 
     102             : #if RK4_ENABLED
     103          15 :     module procedure getFFTF_RK4
     104             :         use pm_kind, only: TKC => RK4
     105             : #include "pm_fftnr@routines.inc.F90"
     106          15 :     end procedure
     107             : #endif
     108             : 
     109             : #if RK3_ENABLED
     110           0 :     module procedure getFFTF_RK3
     111             :         use pm_kind, only: TKC => RK3
     112             : #include "pm_fftnr@routines.inc.F90"
     113           0 :     end procedure
     114             : #endif
     115             : 
     116             : #if RK2_ENABLED
     117          15 :     module procedure getFFTF_RK2
     118             :         use pm_kind, only: TKC => RK2
     119             : #include "pm_fftnr@routines.inc.F90"
     120          15 :     end procedure
     121             : #endif
     122             : 
     123             : #if RK1_ENABLED
     124          15 :     module procedure getFFTF_RK1
     125             :         use pm_kind, only: TKC => RK1
     126             : #include "pm_fftnr@routines.inc.F90"
     127          15 :     end procedure
     128             : #endif
     129             : 
     130             : #undef RK_ENABLED
     131             : 
     132             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     133             : 
     134             : #undef getFFTF_ENABLED
     135             : 
     136             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     137             : 
     138             : #define getFFTR_ENABLED 1
     139             : 
     140             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     141             : 
     142             : #define CK_ENABLED 1
     143             : 
     144             : #if CK5_ENABLED
     145             :     module procedure getFFTR_CK5
     146             :         use pm_kind, only: TKC => CK5
     147             : #include "pm_fftnr@routines.inc.F90"
     148             :     end procedure
     149             : #endif
     150             : 
     151             : #if CK4_ENABLED
     152           5 :     module procedure getFFTR_CK4
     153             :         use pm_kind, only: TKC => CK4
     154             : #include "pm_fftnr@routines.inc.F90"
     155           5 :     end procedure
     156             : #endif
     157             : 
     158             : #if CK3_ENABLED
     159           0 :     module procedure getFFTR_CK3
     160             :         use pm_kind, only: TKC => CK3
     161             : #include "pm_fftnr@routines.inc.F90"
     162           0 :     end procedure
     163             : #endif
     164             : 
     165             : #if CK2_ENABLED
     166           5 :     module procedure getFFTR_CK2
     167             :         use pm_kind, only: TKC => CK2
     168             : #include "pm_fftnr@routines.inc.F90"
     169           5 :     end procedure
     170             : #endif
     171             : 
     172             : #if CK1_ENABLED
     173           5 :     module procedure getFFTR_CK1
     174             :         use pm_kind, only: TKC => CK1
     175             : #include "pm_fftnr@routines.inc.F90"
     176           5 :     end procedure
     177             : #endif
     178             : 
     179             : #undef CK_ENABLED
     180             : 
     181             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     182             : 
     183             : #define RK_ENABLED 1
     184             : 
     185             : #if RK5_ENABLED
     186             :     module procedure getFFTR_RK5
     187             :         use pm_kind, only: TKC => RK5
     188             : #include "pm_fftnr@routines.inc.F90"
     189             :     end procedure
     190             : #endif
     191             : 
     192             : #if RK4_ENABLED
     193           5 :     module procedure getFFTR_RK4
     194             :         use pm_kind, only: TKC => RK4
     195             : #include "pm_fftnr@routines.inc.F90"
     196           5 :     end procedure
     197             : #endif
     198             : 
     199             : #if RK3_ENABLED
     200           0 :     module procedure getFFTR_RK3
     201             :         use pm_kind, only: TKC => RK3
     202             : #include "pm_fftnr@routines.inc.F90"
     203           0 :     end procedure
     204             : #endif
     205             : 
     206             : #if RK2_ENABLED
     207           5 :     module procedure getFFTR_RK2
     208             :         use pm_kind, only: TKC => RK2
     209             : #include "pm_fftnr@routines.inc.F90"
     210           5 :     end procedure
     211             : #endif
     212             : 
     213             : #if RK1_ENABLED
     214           5 :     module procedure getFFTR_RK1
     215             :         use pm_kind, only: TKC => RK1
     216             : #include "pm_fftnr@routines.inc.F90"
     217           5 :     end procedure
     218             : #endif
     219             : 
     220             : #undef RK_ENABLED
     221             : 
     222             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     223             : 
     224             : #undef getFFTR_ENABLED
     225             : 
     226             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     227             : 
     228             : #define getFFTI_ENABLED 1
     229             : 
     230             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     231             : 
     232             : #define CK_ENABLED 1
     233             : 
     234             : #if CK5_ENABLED
     235             :     module procedure getFFTI_CK5
     236             :         use pm_kind, only: TKC => CK5
     237             : #include "pm_fftnr@routines.inc.F90"
     238             :     end procedure
     239             : #endif
     240             : 
     241             : #if CK4_ENABLED
     242          10 :     module procedure getFFTI_CK4
     243             :         use pm_kind, only: TKC => CK4
     244             : #include "pm_fftnr@routines.inc.F90"
     245          10 :     end procedure
     246             : #endif
     247             : 
     248             : #if CK3_ENABLED
     249           0 :     module procedure getFFTI_CK3
     250             :         use pm_kind, only: TKC => CK3
     251             : #include "pm_fftnr@routines.inc.F90"
     252           0 :     end procedure
     253             : #endif
     254             : 
     255             : #if CK2_ENABLED
     256          10 :     module procedure getFFTI_CK2
     257             :         use pm_kind, only: TKC => CK2
     258             : #include "pm_fftnr@routines.inc.F90"
     259          10 :     end procedure
     260             : #endif
     261             : 
     262             : #if CK1_ENABLED
     263          10 :     module procedure getFFTI_CK1
     264             :         use pm_kind, only: TKC => CK1
     265             : #include "pm_fftnr@routines.inc.F90"
     266          10 :     end procedure
     267             : #endif
     268             : 
     269             : #undef CK_ENABLED
     270             : 
     271             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     272             : 
     273             : #define RK_ENABLED 1
     274             : 
     275             : #if RK5_ENABLED
     276             :     module procedure getFFTI_RK5
     277             :         use pm_kind, only: TKC => RK5
     278             : #include "pm_fftnr@routines.inc.F90"
     279             :     end procedure
     280             : #endif
     281             : 
     282             : #if RK4_ENABLED
     283          10 :     module procedure getFFTI_RK4
     284             :         use pm_kind, only: TKC => RK4
     285             : #include "pm_fftnr@routines.inc.F90"
     286          10 :     end procedure
     287             : #endif
     288             : 
     289             : #if RK3_ENABLED
     290           0 :     module procedure getFFTI_RK3
     291             :         use pm_kind, only: TKC => RK3
     292             : #include "pm_fftnr@routines.inc.F90"
     293           0 :     end procedure
     294             : #endif
     295             : 
     296             : #if RK2_ENABLED
     297          10 :     module procedure getFFTI_RK2
     298             :         use pm_kind, only: TKC => RK2
     299             : #include "pm_fftnr@routines.inc.F90"
     300          10 :     end procedure
     301             : #endif
     302             : 
     303             : #if RK1_ENABLED
     304          10 :     module procedure getFFTI_RK1
     305             :         use pm_kind, only: TKC => RK1
     306             : #include "pm_fftnr@routines.inc.F90"
     307          10 :     end procedure
     308             : #endif
     309             : 
     310             : #undef RK_ENABLED
     311             : 
     312             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     313             : 
     314             : #undef getFFTI_ENABLED
     315             : 
     316             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     317             : 
     318             : #define setFFTF_ENABLED 1
     319             : 
     320             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     321             : 
     322             : #define CK_ENABLED 1
     323             : 
     324             : #if CK5_ENABLED
     325             :     module procedure setFFTF_CK5
     326             :         use pm_kind, only: TKC => CK5
     327             : #include "pm_fftnr@routines.inc.F90"
     328             :     end procedure
     329             : #endif
     330             : 
     331             : #if CK4_ENABLED
     332          18 :     module procedure setFFTF_CK4
     333             :         use pm_kind, only: TKC => CK4
     334             : #include "pm_fftnr@routines.inc.F90"
     335          18 :     end procedure
     336             : #endif
     337             : 
     338             : #if CK3_ENABLED
     339           0 :     module procedure setFFTF_CK3
     340             :         use pm_kind, only: TKC => CK3
     341             : #include "pm_fftnr@routines.inc.F90"
     342           0 :     end procedure
     343             : #endif
     344             : 
     345             : #if CK2_ENABLED
     346          18 :     module procedure setFFTF_CK2
     347             :         use pm_kind, only: TKC => CK2
     348             : #include "pm_fftnr@routines.inc.F90"
     349          18 :     end procedure
     350             : #endif
     351             : 
     352             : #if CK1_ENABLED
     353          18 :     module procedure setFFTF_CK1
     354             :         use pm_kind, only: TKC => CK1
     355             : #include "pm_fftnr@routines.inc.F90"
     356          18 :     end procedure
     357             : #endif
     358             : 
     359             : #undef CK_ENABLED
     360             : 
     361             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     362             : 
     363             : #define RK_ENABLED 1
     364             : 
     365             : #if RK5_ENABLED
     366             :     module procedure setFFTF_RK5
     367             :         use pm_kind, only: TKC => RK5
     368             : #include "pm_fftnr@routines.inc.F90"
     369             :     end procedure
     370             : #endif
     371             : 
     372             : #if RK4_ENABLED
     373          18 :     module procedure setFFTF_RK4
     374             :         use pm_kind, only: TKC => RK4
     375             : #include "pm_fftnr@routines.inc.F90"
     376             :     end procedure
     377             : #endif
     378             : 
     379             : #if RK3_ENABLED
     380           0 :     module procedure setFFTF_RK3
     381             :         use pm_kind, only: TKC => RK3
     382             : #include "pm_fftnr@routines.inc.F90"
     383             :     end procedure
     384             : #endif
     385             : 
     386             : #if RK2_ENABLED
     387          18 :     module procedure setFFTF_RK2
     388             :         use pm_kind, only: TKC => RK2
     389             : #include "pm_fftnr@routines.inc.F90"
     390             :     end procedure
     391             : #endif
     392             : 
     393             : #if RK1_ENABLED
     394          18 :     module procedure setFFTF_RK1
     395             :         use pm_kind, only: TKC => RK1
     396             : #include "pm_fftnr@routines.inc.F90"
     397             :     end procedure
     398             : #endif
     399             : 
     400             : #undef RK_ENABLED
     401             : 
     402             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     403             : 
     404             : #undef setFFTF_ENABLED
     405             : 
     406             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     407             : 
     408             : #define setFFTR_ENABLED 1
     409             : 
     410             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     411             : 
     412             : #define CK_ENABLED 1
     413             : 
     414             : #if CK5_ENABLED
     415             :     module procedure setFFTR_CK5
     416             :         use pm_kind, only: TKC => CK5
     417             : #include "pm_fftnr@routines.inc.F90"
     418             :     end procedure
     419             : #endif
     420             : 
     421             : #if CK4_ENABLED
     422          18 :     module procedure setFFTR_CK4
     423             :         use pm_kind, only: TKC => CK4
     424             : #include "pm_fftnr@routines.inc.F90"
     425          18 :     end procedure
     426             : #endif
     427             : 
     428             : #if CK3_ENABLED
     429           0 :     module procedure setFFTR_CK3
     430             :         use pm_kind, only: TKC => CK3
     431             : #include "pm_fftnr@routines.inc.F90"
     432           0 :     end procedure
     433             : #endif
     434             : 
     435             : #if CK2_ENABLED
     436          18 :     module procedure setFFTR_CK2
     437             :         use pm_kind, only: TKC => CK2
     438             : #include "pm_fftnr@routines.inc.F90"
     439          18 :     end procedure
     440             : #endif
     441             : 
     442             : #if CK1_ENABLED
     443          18 :     module procedure setFFTR_CK1
     444             :         use pm_kind, only: TKC => CK1
     445             : #include "pm_fftnr@routines.inc.F90"
     446          18 :     end procedure
     447             : #endif
     448             : 
     449             : #undef CK_ENABLED
     450             : 
     451             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     452             : 
     453             : #define RK_ENABLED 1
     454             : 
     455             : #if RK5_ENABLED
     456             :     module procedure setFFTR_RK5
     457             :         use pm_kind, only: TKC => RK5
     458             : #include "pm_fftnr@routines.inc.F90"
     459             :     end procedure
     460             : #endif
     461             : 
     462             : #if RK4_ENABLED
     463          18 :     module procedure setFFTR_RK4
     464             :         use pm_kind, only: TKC => RK4
     465             : #include "pm_fftnr@routines.inc.F90"
     466             :     end procedure
     467             : #endif
     468             : 
     469             : #if RK3_ENABLED
     470           0 :     module procedure setFFTR_RK3
     471             :         use pm_kind, only: TKC => RK3
     472             : #include "pm_fftnr@routines.inc.F90"
     473             :     end procedure
     474             : #endif
     475             : 
     476             : #if RK2_ENABLED
     477          18 :     module procedure setFFTR_RK2
     478             :         use pm_kind, only: TKC => RK2
     479             : #include "pm_fftnr@routines.inc.F90"
     480             :     end procedure
     481             : #endif
     482             : 
     483             : #if RK1_ENABLED
     484          18 :     module procedure setFFTR_RK1
     485             :         use pm_kind, only: TKC => RK1
     486             : #include "pm_fftnr@routines.inc.F90"
     487             :     end procedure
     488             : #endif
     489             : 
     490             : #undef RK_ENABLED
     491             : 
     492             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     493             : 
     494             : #undef setFFTR_ENABLED
     495             : 
     496             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     497             : 
     498             : #define setFFTI_ENABLED 1
     499             : 
     500             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     501             : 
     502             : #define CK_ENABLED 1
     503             : 
     504             : #if CK5_ENABLED
     505             :     module procedure setFFTI_CK5
     506             :         use pm_kind, only: TKC => CK5
     507             : #include "pm_fftnr@routines.inc.F90"
     508             :     end procedure
     509             : #endif
     510             : 
     511             : #if CK4_ENABLED
     512          11 :     module procedure setFFTI_CK4
     513             :         use pm_kind, only: TKC => CK4
     514             : #include "pm_fftnr@routines.inc.F90"
     515          11 :     end procedure
     516             : #endif
     517             : 
     518             : #if CK3_ENABLED
     519           0 :     module procedure setFFTI_CK3
     520             :         use pm_kind, only: TKC => CK3
     521             : #include "pm_fftnr@routines.inc.F90"
     522           0 :     end procedure
     523             : #endif
     524             : 
     525             : #if CK2_ENABLED
     526          11 :     module procedure setFFTI_CK2
     527             :         use pm_kind, only: TKC => CK2
     528             : #include "pm_fftnr@routines.inc.F90"
     529          11 :     end procedure
     530             : #endif
     531             : 
     532             : #if CK1_ENABLED
     533          11 :     module procedure setFFTI_CK1
     534             :         use pm_kind, only: TKC => CK1
     535             : #include "pm_fftnr@routines.inc.F90"
     536          11 :     end procedure
     537             : #endif
     538             : 
     539             : #undef CK_ENABLED
     540             : 
     541             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     542             : 
     543             : #define RK_ENABLED 1
     544             : 
     545             : #if RK5_ENABLED
     546             :     module procedure setFFTI_RK5
     547             :         use pm_kind, only: TKC => RK5
     548             : #include "pm_fftnr@routines.inc.F90"
     549             :     end procedure
     550             : #endif
     551             : 
     552             : #if RK4_ENABLED
     553          11 :     module procedure setFFTI_RK4
     554             :         use pm_kind, only: TKC => RK4
     555             : #include "pm_fftnr@routines.inc.F90"
     556          11 :     end procedure
     557             : #endif
     558             : 
     559             : #if RK3_ENABLED
     560           0 :     module procedure setFFTI_RK3
     561             :         use pm_kind, only: TKC => RK3
     562             : #include "pm_fftnr@routines.inc.F90"
     563           0 :     end procedure
     564             : #endif
     565             : 
     566             : #if RK2_ENABLED
     567          11 :     module procedure setFFTI_RK2
     568             :         use pm_kind, only: TKC => RK2
     569             : #include "pm_fftnr@routines.inc.F90"
     570          11 :     end procedure
     571             : #endif
     572             : 
     573             : #if RK1_ENABLED
     574          11 :     module procedure setFFTI_RK1
     575             :         use pm_kind, only: TKC => RK1
     576             : #include "pm_fftnr@routines.inc.F90"
     577          11 :     end procedure
     578             : #endif
     579             : 
     580             : #undef RK_ENABLED
     581             : 
     582             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     583             : 
     584             : #undef setFFTI_ENABLED
     585             : 
     586             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     587             : 
     588             : #undef CHECK_ASSERTION
     589             : 
     590             : end submodule routines

ParaMonte: Parallel Monte Carlo and Machine Learning Library 
The Computational Data Science Lab
© Copyright 2012 - 2024