https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_arrayShuffle@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 164 168 97.6 %
Date: 2024-04-08 03:18:57 Functions: 82 84 97.6 %
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_arrayShuffle](@ref pm_arrayShuffle).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \FatemehBagheri, Wednesday 12:20 AM, October 13, 2021, Dallas, TX
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_arrayShuffle) routines ! LCOV_EXCL_LINE
      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_distUnif, only: setUnifRand
      40             :     implicit none
      41             : 
      42             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      43             : 
      44             : contains
      45             : 
      46             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      47             : 
      48             : #define getShuffled_ENABLED 1
      49             : 
      50             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      53             : 
      54             : #define D0_ENABLED 1
      55             : 
      56             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      57             : 
      58             : #define SK_ENABLED 1
      59             : 
      60             : #if SK5_ENABLED
      61             :     module procedure getShuffledRNGD_D0_SK5
      62             :         use pm_kind, only: SKC => SK5
      63             : #include "pm_arrayShuffle@routines.inc.F90"
      64             :     end procedure
      65             : #endif
      66             : 
      67             : #if SK4_ENABLED
      68             :     module procedure getShuffledRNGD_D0_SK4
      69             :         use pm_kind, only: SKC => SK4
      70             : #include "pm_arrayShuffle@routines.inc.F90"
      71             :     end procedure
      72             : #endif
      73             : 
      74             : #if SK3_ENABLED
      75             :     module procedure getShuffledRNGD_D0_SK3
      76             :         use pm_kind, only: SKC => SK3
      77             : #include "pm_arrayShuffle@routines.inc.F90"
      78             :     end procedure
      79             : #endif
      80             : 
      81             : #if SK2_ENABLED
      82             :     module procedure getShuffledRNGD_D0_SK2
      83             :         use pm_kind, only: SKC => SK2
      84             : #include "pm_arrayShuffle@routines.inc.F90"
      85             :     end procedure
      86             : #endif
      87             : 
      88             : #if SK1_ENABLED
      89          26 :     module procedure getShuffledRNGD_D0_SK1
      90             :         use pm_kind, only: SKC => SK1
      91             : #include "pm_arrayShuffle@routines.inc.F90"
      92          26 :     end procedure
      93             : #endif
      94             : 
      95             : #undef SK_ENABLED
      96             : 
      97             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      98             : 
      99             : #undef D0_ENABLED
     100             : 
     101             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     102             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     103             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     104             : 
     105             : #define D1_ENABLED 1
     106             : 
     107             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     108             : 
     109             : #define SK_ENABLED 1
     110             : 
     111             : #if SK5_ENABLED
     112             :     module procedure getShuffledRNGD_D1_SK5
     113             :         use pm_kind, only: SKC => SK5
     114             : #include "pm_arrayShuffle@routines.inc.F90"
     115             :     end procedure
     116             : #endif
     117             : 
     118             : #if SK4_ENABLED
     119             :     module procedure getShuffledRNGD_D1_SK4
     120             :         use pm_kind, only: SKC => SK4
     121             : #include "pm_arrayShuffle@routines.inc.F90"
     122             :     end procedure
     123             : #endif
     124             : 
     125             : #if SK3_ENABLED
     126             :     module procedure getShuffledRNGD_D1_SK3
     127             :         use pm_kind, only: SKC => SK3
     128             : #include "pm_arrayShuffle@routines.inc.F90"
     129             :     end procedure
     130             : #endif
     131             : 
     132             : #if SK2_ENABLED
     133             :     module procedure getShuffledRNGD_D1_SK2
     134             :         use pm_kind, only: SKC => SK2
     135             : #include "pm_arrayShuffle@routines.inc.F90"
     136             :     end procedure
     137             : #endif
     138             : 
     139             : #if SK1_ENABLED
     140          26 :     module procedure getShuffledRNGD_D1_SK1
     141             :         use pm_kind, only: SKC => SK1
     142             : #include "pm_arrayShuffle@routines.inc.F90"
     143          26 :     end procedure
     144             : #endif
     145             : 
     146             : #undef SK_ENABLED
     147             : 
     148             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     149             : 
     150             : #define IK_ENABLED 1
     151             : 
     152             : #if IK5_ENABLED
     153           6 :     module procedure getShuffledRNGD_D1_IK5
     154             :         use pm_kind, only: IKC => IK5
     155             : #include "pm_arrayShuffle@routines.inc.F90"
     156           6 :     end procedure
     157             : #endif
     158             : 
     159             : #if IK4_ENABLED
     160           6 :     module procedure getShuffledRNGD_D1_IK4
     161             :         use pm_kind, only: IKC => IK4
     162             : #include "pm_arrayShuffle@routines.inc.F90"
     163           6 :     end procedure
     164             : #endif
     165             : 
     166             : #if IK3_ENABLED
     167          26 :     module procedure getShuffledRNGD_D1_IK3
     168             :         use pm_kind, only: IKC => IK3
     169             : #include "pm_arrayShuffle@routines.inc.F90"
     170          26 :     end procedure
     171             : #endif
     172             : 
     173             : #if IK2_ENABLED
     174           6 :     module procedure getShuffledRNGD_D1_IK2
     175             :         use pm_kind, only: IKC => IK2
     176             : #include "pm_arrayShuffle@routines.inc.F90"
     177           6 :     end procedure
     178             : #endif
     179             : 
     180             : #if IK1_ENABLED
     181           6 :     module procedure getShuffledRNGD_D1_IK1
     182             :         use pm_kind, only: IKC => IK1
     183             : #include "pm_arrayShuffle@routines.inc.F90"
     184           6 :     end procedure
     185             : #endif
     186             : 
     187             : #undef IK_ENABLED
     188             : 
     189             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     190             : 
     191             : #define LK_ENABLED 1
     192             : 
     193             : #if LK5_ENABLED
     194           6 :     module procedure getShuffledRNGD_D1_LK5
     195             :         use pm_kind, only: LKC => LK5
     196             : #include "pm_arrayShuffle@routines.inc.F90"
     197           6 :     end procedure
     198             : #endif
     199             : 
     200             : #if LK4_ENABLED
     201           6 :     module procedure getShuffledRNGD_D1_LK4
     202             :         use pm_kind, only: LKC => LK4
     203             : #include "pm_arrayShuffle@routines.inc.F90"
     204           6 :     end procedure
     205             : #endif
     206             : 
     207             : #if LK3_ENABLED
     208          26 :     module procedure getShuffledRNGD_D1_LK3
     209             :         use pm_kind, only: LKC => LK3
     210             : #include "pm_arrayShuffle@routines.inc.F90"
     211          26 :     end procedure
     212             : #endif
     213             : 
     214             : #if LK2_ENABLED
     215           6 :     module procedure getShuffledRNGD_D1_LK2
     216             :         use pm_kind, only: LKC => LK2
     217             : #include "pm_arrayShuffle@routines.inc.F90"
     218           6 :     end procedure
     219             : #endif
     220             : 
     221             : #if LK1_ENABLED
     222           6 :     module procedure getShuffledRNGD_D1_LK1
     223             :         use pm_kind, only: LKC => LK1
     224             : #include "pm_arrayShuffle@routines.inc.F90"
     225           6 :     end procedure
     226             : #endif
     227             : 
     228             : #undef LK_ENABLED
     229             : 
     230             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     231             : 
     232             : #define CK_ENABLED 1
     233             : 
     234             : #if CK5_ENABLED
     235             :     module procedure getShuffledRNGD_D1_CK5
     236             :         use pm_kind, only: CKC => CK5
     237             : #include "pm_arrayShuffle@routines.inc.F90"
     238             :     end procedure
     239             : #endif
     240             : 
     241             : #if CK4_ENABLED
     242           6 :     module procedure getShuffledRNGD_D1_CK4
     243             :         use pm_kind, only: CKC => CK4
     244             : #include "pm_arrayShuffle@routines.inc.F90"
     245           6 :     end procedure
     246             : #endif
     247             : 
     248             : #if CK3_ENABLED
     249           6 :     module procedure getShuffledRNGD_D1_CK3
     250             :         use pm_kind, only: CKC => CK3
     251             : #include "pm_arrayShuffle@routines.inc.F90"
     252           6 :     end procedure
     253             : #endif
     254             : 
     255             : #if CK2_ENABLED
     256           6 :     module procedure getShuffledRNGD_D1_CK2
     257             :         use pm_kind, only: CKC => CK2
     258             : #include "pm_arrayShuffle@routines.inc.F90"
     259           6 :     end procedure
     260             : #endif
     261             : 
     262             : #if CK1_ENABLED
     263          26 :     module procedure getShuffledRNGD_D1_CK1
     264             :         use pm_kind, only: CKC => CK1
     265             : #include "pm_arrayShuffle@routines.inc.F90"
     266          26 :     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 getShuffledRNGD_D1_RK5
     277             :         use pm_kind, only: RKC => RK5
     278             : #include "pm_arrayShuffle@routines.inc.F90"
     279             :     end procedure
     280             : #endif
     281             : 
     282             : #if RK4_ENABLED
     283           6 :     module procedure getShuffledRNGD_D1_RK4
     284             :         use pm_kind, only: RKC => RK4
     285             : #include "pm_arrayShuffle@routines.inc.F90"
     286           6 :     end procedure
     287             : #endif
     288             : 
     289             : #if RK3_ENABLED
     290           6 :     module procedure getShuffledRNGD_D1_RK3
     291             :         use pm_kind, only: RKC => RK3
     292             : #include "pm_arrayShuffle@routines.inc.F90"
     293           6 :     end procedure
     294             : #endif
     295             : 
     296             : #if RK2_ENABLED
     297           6 :     module procedure getShuffledRNGD_D1_RK2
     298             :         use pm_kind, only: RKC => RK2
     299             : #include "pm_arrayShuffle@routines.inc.F90"
     300           6 :     end procedure
     301             : #endif
     302             : 
     303             : #if RK1_ENABLED
     304          28 :     module procedure getShuffledRNGD_D1_RK1
     305             :         use pm_kind, only: RKC => RK1
     306             : #include "pm_arrayShuffle@routines.inc.F90"
     307          28 :     end procedure
     308             : #endif
     309             : 
     310             : #undef RK_ENABLED
     311             : 
     312             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     313             : 
     314             : #if !__GFORTRAN__
     315             : #define PSSK_ENABLED 1
     316             : 
     317             : #if SK5_ENABLED
     318             :     module procedure getShuffledRNGD_D1_PSSK5
     319             :         use pm_kind, only: SKC => SK5
     320             : #include "pm_arrayShuffle@routines.inc.F90"
     321             :     end procedure
     322             : #endif
     323             : 
     324             : #if SK4_ENABLED
     325             :     module procedure getShuffledRNGD_D1_PSSK4
     326             :         use pm_kind, only: SKC => SK4
     327             : #include "pm_arrayShuffle@routines.inc.F90"
     328             :     end procedure
     329             : #endif
     330             : 
     331             : #if SK3_ENABLED
     332             :     module procedure getShuffledRNGD_D1_PSSK3
     333             :         use pm_kind, only: SKC => SK3
     334             : #include "pm_arrayShuffle@routines.inc.F90"
     335             :     end procedure
     336             : #endif
     337             : 
     338             : #if SK2_ENABLED
     339             :     module procedure getShuffledRNGD_D1_PSSK2
     340             :         use pm_kind, only: SKC => SK2
     341             : #include "pm_arrayShuffle@routines.inc.F90"
     342             :     end procedure
     343             : #endif
     344             : 
     345             : #if SK1_ENABLED
     346             :     module procedure getShuffledRNGD_D1_PSSK1
     347             :         use pm_kind, only: SKC => SK1
     348             : #include "pm_arrayShuffle@routines.inc.F90"
     349             :     end procedure
     350             : #endif
     351             : 
     352             : #undef PSSK_ENABLED
     353             : #endif
     354             : 
     355             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     356             : 
     357             : #define BSSK_ENABLED 1
     358             : 
     359           2 :     module procedure getShuffledRNGD_D1_BSSK
     360             :         use pm_kind, only: SKC => SK
     361             : #include "pm_arrayShuffle@routines.inc.F90"
     362           2 :     end procedure
     363             : 
     364             : #undef BSSK_ENABLED
     365             : 
     366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     367             : 
     368             : #undef D1_ENABLED
     369             : 
     370             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     371             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     372             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     373             : 
     374             : #undef getShuffled_ENABLED
     375             : 
     376             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     377             : 
     378             : #define setShuffled_ENABLED 1
     379             : 
     380             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     381             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     382             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     383             : 
     384             : #define RNGD_ENABLED 1
     385             : 
     386             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     387             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     388             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     389             : 
     390             : #define D0_ENABLED 1
     391             : 
     392             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     393             : 
     394             : #define SK_ENABLED 1
     395             : 
     396             : #if SK5_ENABLED
     397             :     module procedure setShuffledRNGD_D0_SK5
     398             :         use pm_kind, only: SKC => SK5
     399             : #include "pm_arrayShuffle@routines.inc.F90"
     400             :     end procedure
     401             : #endif
     402             : 
     403             : #if SK4_ENABLED
     404             :     module procedure setShuffledRNGD_D0_SK4
     405             :         use pm_kind, only: SKC => SK4
     406             : #include "pm_arrayShuffle@routines.inc.F90"
     407             :     end procedure
     408             : #endif
     409             : 
     410             : #if SK3_ENABLED
     411             :     module procedure setShuffledRNGD_D0_SK3
     412             :         use pm_kind, only: SKC => SK3
     413             : #include "pm_arrayShuffle@routines.inc.F90"
     414             :     end procedure
     415             : #endif
     416             : 
     417             : #if SK2_ENABLED
     418             :     module procedure setShuffledRNGD_D0_SK2
     419             :         use pm_kind, only: SKC => SK2
     420             : #include "pm_arrayShuffle@routines.inc.F90"
     421             :     end procedure
     422             : #endif
     423             : 
     424             : #if SK1_ENABLED
     425          39 :     module procedure setShuffledRNGD_D0_SK1
     426             :         use pm_kind, only: SKC => SK1
     427             : #include "pm_arrayShuffle@routines.inc.F90"
     428          39 :     end procedure
     429             : #endif
     430             : 
     431             : #undef SK_ENABLED
     432             : 
     433             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     434             : 
     435             : #undef D0_ENABLED
     436             : 
     437             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     438             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     439             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     440             : 
     441             : #define D1_ENABLED 1
     442             : 
     443             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     444             : 
     445             : #define SK_ENABLED 1
     446             : 
     447             : #if SK5_ENABLED
     448             :     module procedure setShuffledRNGD_D1_SK5
     449             :         use pm_kind, only: SKC => SK5
     450             : #include "pm_arrayShuffle@routines.inc.F90"
     451             :     end procedure
     452             : #endif
     453             : 
     454             : #if SK4_ENABLED
     455             :     module procedure setShuffledRNGD_D1_SK4
     456             :         use pm_kind, only: SKC => SK4
     457             : #include "pm_arrayShuffle@routines.inc.F90"
     458             :     end procedure
     459             : #endif
     460             : 
     461             : #if SK3_ENABLED
     462             :     module procedure setShuffledRNGD_D1_SK3
     463             :         use pm_kind, only: SKC => SK3
     464             : #include "pm_arrayShuffle@routines.inc.F90"
     465             :     end procedure
     466             : #endif
     467             : 
     468             : #if SK2_ENABLED
     469             :     module procedure setShuffledRNGD_D1_SK2
     470             :         use pm_kind, only: SKC => SK2
     471             : #include "pm_arrayShuffle@routines.inc.F90"
     472             :     end procedure
     473             : #endif
     474             : 
     475             : #if SK1_ENABLED
     476          39 :     module procedure setShuffledRNGD_D1_SK1
     477             :         use pm_kind, only: SKC => SK1
     478             : #include "pm_arrayShuffle@routines.inc.F90"
     479          39 :     end procedure
     480             : #endif
     481             : 
     482             : #undef SK_ENABLED
     483             : 
     484             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     485             : 
     486             : #define IK_ENABLED 1
     487             : 
     488             : #if IK5_ENABLED
     489           9 :     module procedure setShuffledRNGD_D1_IK5
     490             :         use pm_kind, only: IKC => IK5
     491             : #include "pm_arrayShuffle@routines.inc.F90"
     492           9 :     end procedure
     493             : #endif
     494             : 
     495             : #if IK4_ENABLED
     496           9 :     module procedure setShuffledRNGD_D1_IK4
     497             :         use pm_kind, only: IKC => IK4
     498             : #include "pm_arrayShuffle@routines.inc.F90"
     499           9 :     end procedure
     500             : #endif
     501             : 
     502             : #if IK3_ENABLED
     503         323 :     module procedure setShuffledRNGD_D1_IK3
     504             :         use pm_kind, only: IKC => IK3
     505             : #include "pm_arrayShuffle@routines.inc.F90"
     506         323 :     end procedure
     507             : #endif
     508             : 
     509             : #if IK2_ENABLED
     510           9 :     module procedure setShuffledRNGD_D1_IK2
     511             :         use pm_kind, only: IKC => IK2
     512             : #include "pm_arrayShuffle@routines.inc.F90"
     513           9 :     end procedure
     514             : #endif
     515             : 
     516             : #if IK1_ENABLED
     517           9 :     module procedure setShuffledRNGD_D1_IK1
     518             :         use pm_kind, only: IKC => IK1
     519             : #include "pm_arrayShuffle@routines.inc.F90"
     520           9 :     end procedure
     521             : #endif
     522             : 
     523             : #undef IK_ENABLED
     524             : 
     525             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     526             : 
     527             : #define LK_ENABLED 1
     528             : 
     529             : #if LK5_ENABLED
     530           9 :     module procedure setShuffledRNGD_D1_LK5
     531             :         use pm_kind, only: LKC => LK5
     532             : #include "pm_arrayShuffle@routines.inc.F90"
     533           9 :     end procedure
     534             : #endif
     535             : 
     536             : #if LK4_ENABLED
     537           9 :     module procedure setShuffledRNGD_D1_LK4
     538             :         use pm_kind, only: LKC => LK4
     539             : #include "pm_arrayShuffle@routines.inc.F90"
     540           9 :     end procedure
     541             : #endif
     542             : 
     543             : #if LK3_ENABLED
     544          39 :     module procedure setShuffledRNGD_D1_LK3
     545             :         use pm_kind, only: LKC => LK3
     546             : #include "pm_arrayShuffle@routines.inc.F90"
     547          39 :     end procedure
     548             : #endif
     549             : 
     550             : #if LK2_ENABLED
     551           9 :     module procedure setShuffledRNGD_D1_LK2
     552             :         use pm_kind, only: LKC => LK2
     553             : #include "pm_arrayShuffle@routines.inc.F90"
     554           9 :     end procedure
     555             : #endif
     556             : 
     557             : #if LK1_ENABLED
     558           9 :     module procedure setShuffledRNGD_D1_LK1
     559             :         use pm_kind, only: LKC => LK1
     560             : #include "pm_arrayShuffle@routines.inc.F90"
     561           9 :     end procedure
     562             : #endif
     563             : 
     564             : #undef LK_ENABLED
     565             : 
     566             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     567             : 
     568             : #define CK_ENABLED 1
     569             : 
     570             : #if CK5_ENABLED
     571             :     module procedure setShuffledRNGD_D1_CK5
     572             :         use pm_kind, only: CKC => CK5
     573             : #include "pm_arrayShuffle@routines.inc.F90"
     574             :     end procedure
     575             : #endif
     576             : 
     577             : #if CK4_ENABLED
     578           9 :     module procedure setShuffledRNGD_D1_CK4
     579             :         use pm_kind, only: CKC => CK4
     580             : #include "pm_arrayShuffle@routines.inc.F90"
     581           9 :     end procedure
     582             : #endif
     583             : 
     584             : #if CK3_ENABLED
     585           9 :     module procedure setShuffledRNGD_D1_CK3
     586             :         use pm_kind, only: CKC => CK3
     587             : #include "pm_arrayShuffle@routines.inc.F90"
     588           9 :     end procedure
     589             : #endif
     590             : 
     591             : #if CK2_ENABLED
     592           9 :     module procedure setShuffledRNGD_D1_CK2
     593             :         use pm_kind, only: CKC => CK2
     594             : #include "pm_arrayShuffle@routines.inc.F90"
     595           9 :     end procedure
     596             : #endif
     597             : 
     598             : #if CK1_ENABLED
     599          39 :     module procedure setShuffledRNGD_D1_CK1
     600             :         use pm_kind, only: CKC => CK1
     601             : #include "pm_arrayShuffle@routines.inc.F90"
     602          39 :     end procedure
     603             : #endif
     604             : 
     605             : #undef CK_ENABLED
     606             : 
     607             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     608             : 
     609             : #define RK_ENABLED 1
     610             : 
     611             : #if RK5_ENABLED
     612             :     module procedure setShuffledRNGD_D1_RK5
     613             :         use pm_kind, only: RKC => RK5
     614             : #include "pm_arrayShuffle@routines.inc.F90"
     615             :     end procedure
     616             : #endif
     617             : 
     618             : #if RK4_ENABLED
     619           9 :     module procedure setShuffledRNGD_D1_RK4
     620             :         use pm_kind, only: RKC => RK4
     621             : #include "pm_arrayShuffle@routines.inc.F90"
     622           9 :     end procedure
     623             : #endif
     624             : 
     625             : #if RK3_ENABLED
     626           9 :     module procedure setShuffledRNGD_D1_RK3
     627             :         use pm_kind, only: RKC => RK3
     628             : #include "pm_arrayShuffle@routines.inc.F90"
     629           9 :     end procedure
     630             : #endif
     631             : 
     632             : #if RK2_ENABLED
     633           9 :     module procedure setShuffledRNGD_D1_RK2
     634             :         use pm_kind, only: RKC => RK2
     635             : #include "pm_arrayShuffle@routines.inc.F90"
     636           9 :     end procedure
     637             : #endif
     638             : 
     639             : #if RK1_ENABLED
     640          41 :     module procedure setShuffledRNGD_D1_RK1
     641             :         use pm_kind, only: RKC => RK1
     642             : #include "pm_arrayShuffle@routines.inc.F90"
     643          41 :     end procedure
     644             : #endif
     645             : 
     646             : #undef RK_ENABLED
     647             : 
     648             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     649             : 
     650             : #if !__GFORTRAN__
     651             : #define PSSK_ENABLED 1
     652             : 
     653             : #if SK5_ENABLED
     654             :     module procedure setShuffledRNGD_D1_PSSK5
     655             :         use pm_kind, only: SKC => SK5
     656             : #include "pm_arrayShuffle@routines.inc.F90"
     657             :     end procedure
     658             : #endif
     659             : 
     660             : #if SK4_ENABLED
     661             :     module procedure setShuffledRNGD_D1_PSSK4
     662             :         use pm_kind, only: SKC => SK4
     663             : #include "pm_arrayShuffle@routines.inc.F90"
     664             :     end procedure
     665             : #endif
     666             : 
     667             : #if SK3_ENABLED
     668             :     module procedure setShuffledRNGD_D1_PSSK3
     669             :         use pm_kind, only: SKC => SK3
     670             : #include "pm_arrayShuffle@routines.inc.F90"
     671             :     end procedure
     672             : #endif
     673             : 
     674             : #if SK2_ENABLED
     675             :     module procedure setShuffledRNGD_D1_PSSK2
     676             :         use pm_kind, only: SKC => SK2
     677             : #include "pm_arrayShuffle@routines.inc.F90"
     678             :     end procedure
     679             : #endif
     680             : 
     681             : #if SK1_ENABLED
     682             :     module procedure setShuffledRNGD_D1_PSSK1
     683             :         use pm_kind, only: SKC => SK1
     684             : #include "pm_arrayShuffle@routines.inc.F90"
     685             :     end procedure
     686             : #endif
     687             : 
     688             : #undef PSSK_ENABLED
     689             : #endif
     690             : 
     691             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     692             : 
     693             : #define BSSK_ENABLED 1
     694             : 
     695           2 :     module procedure setShuffledRNGD_D1_BSSK
     696             :         use pm_kind, only: SKC => SK
     697             : #include "pm_arrayShuffle@routines.inc.F90"
     698           2 :     end procedure
     699             : 
     700             : #undef BSSK_ENABLED
     701             : 
     702             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     703             : 
     704             : #undef D1_ENABLED
     705             : 
     706             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     707             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     708             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     709             : 
     710             : #undef RNGD_ENABLED
     711             : 
     712             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     713             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     714             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     715             : 
     716             : #define RNGF_ENABLED 1
     717             : 
     718             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     719             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     720             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     721             : 
     722             : #define D0_ENABLED 1
     723             : 
     724             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     725             : 
     726             : #define SK_ENABLED 1
     727             : 
     728             : #if SK5_ENABLED
     729             :     module procedure setShuffledRNGF_D0_SK5
     730             :         use pm_kind, only: SKC => SK5
     731             : #include "pm_arrayShuffle@routines.inc.F90"
     732             :     end procedure
     733             : #endif
     734             : 
     735             : #if SK4_ENABLED
     736             :     module procedure setShuffledRNGF_D0_SK4
     737             :         use pm_kind, only: SKC => SK4
     738             : #include "pm_arrayShuffle@routines.inc.F90"
     739             :     end procedure
     740             : #endif
     741             : 
     742             : #if SK3_ENABLED
     743             :     module procedure setShuffledRNGF_D0_SK3
     744             :         use pm_kind, only: SKC => SK3
     745             : #include "pm_arrayShuffle@routines.inc.F90"
     746             :     end procedure
     747             : #endif
     748             : 
     749             : #if SK2_ENABLED
     750             :     module procedure setShuffledRNGF_D0_SK2
     751             :         use pm_kind, only: SKC => SK2
     752             : #include "pm_arrayShuffle@routines.inc.F90"
     753             :     end procedure
     754             : #endif
     755             : 
     756             : #if SK1_ENABLED
     757           6 :     module procedure setShuffledRNGF_D0_SK1
     758             :         use pm_kind, only: SKC => SK1
     759             : #include "pm_arrayShuffle@routines.inc.F90"
     760           6 :     end procedure
     761             : #endif
     762             : 
     763             : #undef SK_ENABLED
     764             : 
     765             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     766             : 
     767             : #undef D0_ENABLED
     768             : 
     769             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     770             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     771             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     772             : 
     773             : #define D1_ENABLED 1
     774             : 
     775             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     776             : 
     777             : #define SK_ENABLED 1
     778             : 
     779             : #if SK5_ENABLED
     780             :     module procedure setShuffledRNGF_D1_SK5
     781             :         use pm_kind, only: SKC => SK5
     782             : #include "pm_arrayShuffle@routines.inc.F90"
     783             :     end procedure
     784             : #endif
     785             : 
     786             : #if SK4_ENABLED
     787             :     module procedure setShuffledRNGF_D1_SK4
     788             :         use pm_kind, only: SKC => SK4
     789             : #include "pm_arrayShuffle@routines.inc.F90"
     790             :     end procedure
     791             : #endif
     792             : 
     793             : #if SK3_ENABLED
     794             :     module procedure setShuffledRNGF_D1_SK3
     795             :         use pm_kind, only: SKC => SK3
     796             : #include "pm_arrayShuffle@routines.inc.F90"
     797             :     end procedure
     798             : #endif
     799             : 
     800             : #if SK2_ENABLED
     801             :     module procedure setShuffledRNGF_D1_SK2
     802             :         use pm_kind, only: SKC => SK2
     803             : #include "pm_arrayShuffle@routines.inc.F90"
     804             :     end procedure
     805             : #endif
     806             : 
     807             : #if SK1_ENABLED
     808           6 :     module procedure setShuffledRNGF_D1_SK1
     809             :         use pm_kind, only: SKC => SK1
     810             : #include "pm_arrayShuffle@routines.inc.F90"
     811           6 :     end procedure
     812             : #endif
     813             : 
     814             : #undef SK_ENABLED
     815             : 
     816             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     817             : 
     818             : #define IK_ENABLED 1
     819             : 
     820             : #if IK5_ENABLED
     821           6 :     module procedure setShuffledRNGF_D1_IK5
     822             :         use pm_kind, only: IKC => IK5
     823             : #include "pm_arrayShuffle@routines.inc.F90"
     824           6 :     end procedure
     825             : #endif
     826             : 
     827             : #if IK4_ENABLED
     828           6 :     module procedure setShuffledRNGF_D1_IK4
     829             :         use pm_kind, only: IKC => IK4
     830             : #include "pm_arrayShuffle@routines.inc.F90"
     831           6 :     end procedure
     832             : #endif
     833             : 
     834             : #if IK3_ENABLED
     835       10351 :     module procedure setShuffledRNGF_D1_IK3
     836             :         use pm_kind, only: IKC => IK3
     837             : #include "pm_arrayShuffle@routines.inc.F90"
     838       10351 :     end procedure
     839             : #endif
     840             : 
     841             : #if IK2_ENABLED
     842           6 :     module procedure setShuffledRNGF_D1_IK2
     843             :         use pm_kind, only: IKC => IK2
     844             : #include "pm_arrayShuffle@routines.inc.F90"
     845           6 :     end procedure
     846             : #endif
     847             : 
     848             : #if IK1_ENABLED
     849           6 :     module procedure setShuffledRNGF_D1_IK1
     850             :         use pm_kind, only: IKC => IK1
     851             : #include "pm_arrayShuffle@routines.inc.F90"
     852           6 :     end procedure
     853             : #endif
     854             : 
     855             : #undef IK_ENABLED
     856             : 
     857             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     858             : 
     859             : #define LK_ENABLED 1
     860             : 
     861             : #if LK5_ENABLED
     862           6 :     module procedure setShuffledRNGF_D1_LK5
     863             :         use pm_kind, only: LKC => LK5
     864             : #include "pm_arrayShuffle@routines.inc.F90"
     865           6 :     end procedure
     866             : #endif
     867             : 
     868             : #if LK4_ENABLED
     869           6 :     module procedure setShuffledRNGF_D1_LK4
     870             :         use pm_kind, only: LKC => LK4
     871             : #include "pm_arrayShuffle@routines.inc.F90"
     872           6 :     end procedure
     873             : #endif
     874             : 
     875             : #if LK3_ENABLED
     876           6 :     module procedure setShuffledRNGF_D1_LK3
     877             :         use pm_kind, only: LKC => LK3
     878             : #include "pm_arrayShuffle@routines.inc.F90"
     879           6 :     end procedure
     880             : #endif
     881             : 
     882             : #if LK2_ENABLED
     883           6 :     module procedure setShuffledRNGF_D1_LK2
     884             :         use pm_kind, only: LKC => LK2
     885             : #include "pm_arrayShuffle@routines.inc.F90"
     886           6 :     end procedure
     887             : #endif
     888             : 
     889             : #if LK1_ENABLED
     890           6 :     module procedure setShuffledRNGF_D1_LK1
     891             :         use pm_kind, only: LKC => LK1
     892             : #include "pm_arrayShuffle@routines.inc.F90"
     893           6 :     end procedure
     894             : #endif
     895             : 
     896             : #undef LK_ENABLED
     897             : 
     898             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     899             : 
     900             : #define CK_ENABLED 1
     901             : 
     902             : #if CK5_ENABLED
     903             :     module procedure setShuffledRNGF_D1_CK5
     904             :         use pm_kind, only: CKC => CK5
     905             : #include "pm_arrayShuffle@routines.inc.F90"
     906             :     end procedure
     907             : #endif
     908             : 
     909             : #if CK4_ENABLED
     910           6 :     module procedure setShuffledRNGF_D1_CK4
     911             :         use pm_kind, only: CKC => CK4
     912             : #include "pm_arrayShuffle@routines.inc.F90"
     913           6 :     end procedure
     914             : #endif
     915             : 
     916             : #if CK3_ENABLED
     917           6 :     module procedure setShuffledRNGF_D1_CK3
     918             :         use pm_kind, only: CKC => CK3
     919             : #include "pm_arrayShuffle@routines.inc.F90"
     920           6 :     end procedure
     921             : #endif
     922             : 
     923             : #if CK2_ENABLED
     924           6 :     module procedure setShuffledRNGF_D1_CK2
     925             :         use pm_kind, only: CKC => CK2
     926             : #include "pm_arrayShuffle@routines.inc.F90"
     927           6 :     end procedure
     928             : #endif
     929             : 
     930             : #if CK1_ENABLED
     931           6 :     module procedure setShuffledRNGF_D1_CK1
     932             :         use pm_kind, only: CKC => CK1
     933             : #include "pm_arrayShuffle@routines.inc.F90"
     934           6 :     end procedure
     935             : #endif
     936             : 
     937             : #undef CK_ENABLED
     938             : 
     939             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     940             : 
     941             : #define RK_ENABLED 1
     942             : 
     943             : #if RK5_ENABLED
     944             :     module procedure setShuffledRNGF_D1_RK5
     945             :         use pm_kind, only: RKC => RK5
     946             : #include "pm_arrayShuffle@routines.inc.F90"
     947             :     end procedure
     948             : #endif
     949             : 
     950             : #if RK4_ENABLED
     951           6 :     module procedure setShuffledRNGF_D1_RK4
     952             :         use pm_kind, only: RKC => RK4
     953             : #include "pm_arrayShuffle@routines.inc.F90"
     954           6 :     end procedure
     955             : #endif
     956             : 
     957             : #if RK3_ENABLED
     958           6 :     module procedure setShuffledRNGF_D1_RK3
     959             :         use pm_kind, only: RKC => RK3
     960             : #include "pm_arrayShuffle@routines.inc.F90"
     961           6 :     end procedure
     962             : #endif
     963             : 
     964             : #if RK2_ENABLED
     965           6 :     module procedure setShuffledRNGF_D1_RK2
     966             :         use pm_kind, only: RKC => RK2
     967             : #include "pm_arrayShuffle@routines.inc.F90"
     968           6 :     end procedure
     969             : #endif
     970             : 
     971             : #if RK1_ENABLED
     972           6 :     module procedure setShuffledRNGF_D1_RK1
     973             :         use pm_kind, only: RKC => RK1
     974             : #include "pm_arrayShuffle@routines.inc.F90"
     975           6 :     end procedure
     976             : #endif
     977             : 
     978             : #undef RK_ENABLED
     979             : 
     980             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     981             : 
     982             : #if !__GFORTRAN__
     983             : #define PSSK_ENABLED 1
     984             : 
     985             : #if SK5_ENABLED
     986             :     module procedure setShuffledRNGF_D1_PSSK5
     987             :         use pm_kind, only: SKC => SK5
     988             : #include "pm_arrayShuffle@routines.inc.F90"
     989             :     end procedure
     990             : #endif
     991             : 
     992             : #if SK4_ENABLED
     993             :     module procedure setShuffledRNGF_D1_PSSK4
     994             :         use pm_kind, only: SKC => SK4
     995             : #include "pm_arrayShuffle@routines.inc.F90"
     996             :     end procedure
     997             : #endif
     998             : 
     999             : #if SK3_ENABLED
    1000             :     module procedure setShuffledRNGF_D1_PSSK3
    1001             :         use pm_kind, only: SKC => SK3
    1002             : #include "pm_arrayShuffle@routines.inc.F90"
    1003             :     end procedure
    1004             : #endif
    1005             : 
    1006             : #if SK2_ENABLED
    1007             :     module procedure setShuffledRNGF_D1_PSSK2
    1008             :         use pm_kind, only: SKC => SK2
    1009             : #include "pm_arrayShuffle@routines.inc.F90"
    1010             :     end procedure
    1011             : #endif
    1012             : 
    1013             : #if SK1_ENABLED
    1014             :     module procedure setShuffledRNGF_D1_PSSK1
    1015             :         use pm_kind, only: SKC => SK1
    1016             : #include "pm_arrayShuffle@routines.inc.F90"
    1017             :     end procedure
    1018             : #endif
    1019             : 
    1020             : #undef PSSK_ENABLED
    1021             : #endif
    1022             : 
    1023             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1024             : 
    1025             : #define BSSK_ENABLED 1
    1026             : 
    1027           0 :     module procedure setShuffledRNGF_D1_BSSK
    1028             :         use pm_kind, only: SKC => SK
    1029             : #include "pm_arrayShuffle@routines.inc.F90"
    1030           0 :     end procedure
    1031             : 
    1032             : #undef BSSK_ENABLED
    1033             : 
    1034             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1035             : 
    1036             : #undef D1_ENABLED
    1037             : 
    1038             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1039             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1040             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1041             : 
    1042             : #undef RNGF_ENABLED
    1043             : 
    1044             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1045             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1046             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1047             : 
    1048             : #define RNGX_ENABLED 1
    1049             : 
    1050             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1051             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1052             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1053             : 
    1054             : #define D0_ENABLED 1
    1055             : 
    1056             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1057             : 
    1058             : #define SK_ENABLED 1
    1059             : 
    1060             : #if SK5_ENABLED
    1061             :     module procedure setShuffledRNGX_D0_SK5
    1062             :         use pm_kind, only: SKC => SK5
    1063             : #include "pm_arrayShuffle@routines.inc.F90"
    1064             :     end procedure
    1065             : #endif
    1066             : 
    1067             : #if SK4_ENABLED
    1068             :     module procedure setShuffledRNGX_D0_SK4
    1069             :         use pm_kind, only: SKC => SK4
    1070             : #include "pm_arrayShuffle@routines.inc.F90"
    1071             :     end procedure
    1072             : #endif
    1073             : 
    1074             : #if SK3_ENABLED
    1075             :     module procedure setShuffledRNGX_D0_SK3
    1076             :         use pm_kind, only: SKC => SK3
    1077             : #include "pm_arrayShuffle@routines.inc.F90"
    1078             :     end procedure
    1079             : #endif
    1080             : 
    1081             : #if SK2_ENABLED
    1082             :     module procedure setShuffledRNGX_D0_SK2
    1083             :         use pm_kind, only: SKC => SK2
    1084             : #include "pm_arrayShuffle@routines.inc.F90"
    1085             :     end procedure
    1086             : #endif
    1087             : 
    1088             : #if SK1_ENABLED
    1089           6 :     module procedure setShuffledRNGX_D0_SK1
    1090             :         use pm_kind, only: SKC => SK1
    1091             : #include "pm_arrayShuffle@routines.inc.F90"
    1092           6 :     end procedure
    1093             : #endif
    1094             : 
    1095             : #undef SK_ENABLED
    1096             : 
    1097             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1098             : 
    1099             : #undef D0_ENABLED
    1100             : 
    1101             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1102             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1103             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1104             : 
    1105             : #define D1_ENABLED 1
    1106             : 
    1107             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1108             : 
    1109             : #define SK_ENABLED 1
    1110             : 
    1111             : #if SK5_ENABLED
    1112             :     module procedure setShuffledRNGX_D1_SK5
    1113             :         use pm_kind, only: SKC => SK5
    1114             : #include "pm_arrayShuffle@routines.inc.F90"
    1115             :     end procedure
    1116             : #endif
    1117             : 
    1118             : #if SK4_ENABLED
    1119             :     module procedure setShuffledRNGX_D1_SK4
    1120             :         use pm_kind, only: SKC => SK4
    1121             : #include "pm_arrayShuffle@routines.inc.F90"
    1122             :     end procedure
    1123             : #endif
    1124             : 
    1125             : #if SK3_ENABLED
    1126             :     module procedure setShuffledRNGX_D1_SK3
    1127             :         use pm_kind, only: SKC => SK3
    1128             : #include "pm_arrayShuffle@routines.inc.F90"
    1129             :     end procedure
    1130             : #endif
    1131             : 
    1132             : #if SK2_ENABLED
    1133             :     module procedure setShuffledRNGX_D1_SK2
    1134             :         use pm_kind, only: SKC => SK2
    1135             : #include "pm_arrayShuffle@routines.inc.F90"
    1136             :     end procedure
    1137             : #endif
    1138             : 
    1139             : #if SK1_ENABLED
    1140           6 :     module procedure setShuffledRNGX_D1_SK1
    1141             :         use pm_kind, only: SKC => SK1
    1142             : #include "pm_arrayShuffle@routines.inc.F90"
    1143           6 :     end procedure
    1144             : #endif
    1145             : 
    1146             : #undef SK_ENABLED
    1147             : 
    1148             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1149             : 
    1150             : #define IK_ENABLED 1
    1151             : 
    1152             : #if IK5_ENABLED
    1153           6 :     module procedure setShuffledRNGX_D1_IK5
    1154             :         use pm_kind, only: IKC => IK5
    1155             : #include "pm_arrayShuffle@routines.inc.F90"
    1156           6 :     end procedure
    1157             : #endif
    1158             : 
    1159             : #if IK4_ENABLED
    1160           6 :     module procedure setShuffledRNGX_D1_IK4
    1161             :         use pm_kind, only: IKC => IK4
    1162             : #include "pm_arrayShuffle@routines.inc.F90"
    1163           6 :     end procedure
    1164             : #endif
    1165             : 
    1166             : #if IK3_ENABLED
    1167         958 :     module procedure setShuffledRNGX_D1_IK3
    1168             :         use pm_kind, only: IKC => IK3
    1169             : #include "pm_arrayShuffle@routines.inc.F90"
    1170         958 :     end procedure
    1171             : #endif
    1172             : 
    1173             : #if IK2_ENABLED
    1174           6 :     module procedure setShuffledRNGX_D1_IK2
    1175             :         use pm_kind, only: IKC => IK2
    1176             : #include "pm_arrayShuffle@routines.inc.F90"
    1177           6 :     end procedure
    1178             : #endif
    1179             : 
    1180             : #if IK1_ENABLED
    1181           6 :     module procedure setShuffledRNGX_D1_IK1
    1182             :         use pm_kind, only: IKC => IK1
    1183             : #include "pm_arrayShuffle@routines.inc.F90"
    1184           6 :     end procedure
    1185             : #endif
    1186             : 
    1187             : #undef IK_ENABLED
    1188             : 
    1189             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1190             : 
    1191             : #define LK_ENABLED 1
    1192             : 
    1193             : #if LK5_ENABLED
    1194           6 :     module procedure setShuffledRNGX_D1_LK5
    1195             :         use pm_kind, only: LKC => LK5
    1196             : #include "pm_arrayShuffle@routines.inc.F90"
    1197           6 :     end procedure
    1198             : #endif
    1199             : 
    1200             : #if LK4_ENABLED
    1201           6 :     module procedure setShuffledRNGX_D1_LK4
    1202             :         use pm_kind, only: LKC => LK4
    1203             : #include "pm_arrayShuffle@routines.inc.F90"
    1204           6 :     end procedure
    1205             : #endif
    1206             : 
    1207             : #if LK3_ENABLED
    1208           6 :     module procedure setShuffledRNGX_D1_LK3
    1209             :         use pm_kind, only: LKC => LK3
    1210             : #include "pm_arrayShuffle@routines.inc.F90"
    1211           6 :     end procedure
    1212             : #endif
    1213             : 
    1214             : #if LK2_ENABLED
    1215           6 :     module procedure setShuffledRNGX_D1_LK2
    1216             :         use pm_kind, only: LKC => LK2
    1217             : #include "pm_arrayShuffle@routines.inc.F90"
    1218           6 :     end procedure
    1219             : #endif
    1220             : 
    1221             : #if LK1_ENABLED
    1222           6 :     module procedure setShuffledRNGX_D1_LK1
    1223             :         use pm_kind, only: LKC => LK1
    1224             : #include "pm_arrayShuffle@routines.inc.F90"
    1225           6 :     end procedure
    1226             : #endif
    1227             : 
    1228             : #undef LK_ENABLED
    1229             : 
    1230             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1231             : 
    1232             : #define CK_ENABLED 1
    1233             : 
    1234             : #if CK5_ENABLED
    1235             :     module procedure setShuffledRNGX_D1_CK5
    1236             :         use pm_kind, only: CKC => CK5
    1237             : #include "pm_arrayShuffle@routines.inc.F90"
    1238             :     end procedure
    1239             : #endif
    1240             : 
    1241             : #if CK4_ENABLED
    1242           6 :     module procedure setShuffledRNGX_D1_CK4
    1243             :         use pm_kind, only: CKC => CK4
    1244             : #include "pm_arrayShuffle@routines.inc.F90"
    1245           6 :     end procedure
    1246             : #endif
    1247             : 
    1248             : #if CK3_ENABLED
    1249           6 :     module procedure setShuffledRNGX_D1_CK3
    1250             :         use pm_kind, only: CKC => CK3
    1251             : #include "pm_arrayShuffle@routines.inc.F90"
    1252           6 :     end procedure
    1253             : #endif
    1254             : 
    1255             : #if CK2_ENABLED
    1256           6 :     module procedure setShuffledRNGX_D1_CK2
    1257             :         use pm_kind, only: CKC => CK2
    1258             : #include "pm_arrayShuffle@routines.inc.F90"
    1259           6 :     end procedure
    1260             : #endif
    1261             : 
    1262             : #if CK1_ENABLED
    1263           6 :     module procedure setShuffledRNGX_D1_CK1
    1264             :         use pm_kind, only: CKC => CK1
    1265             : #include "pm_arrayShuffle@routines.inc.F90"
    1266           6 :     end procedure
    1267             : #endif
    1268             : 
    1269             : #undef CK_ENABLED
    1270             : 
    1271             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1272             : 
    1273             : #define RK_ENABLED 1
    1274             : 
    1275             : #if RK5_ENABLED
    1276             :     module procedure setShuffledRNGX_D1_RK5
    1277             :         use pm_kind, only: RKC => RK5
    1278             : #include "pm_arrayShuffle@routines.inc.F90"
    1279             :     end procedure
    1280             : #endif
    1281             : 
    1282             : #if RK4_ENABLED
    1283           6 :     module procedure setShuffledRNGX_D1_RK4
    1284             :         use pm_kind, only: RKC => RK4
    1285             : #include "pm_arrayShuffle@routines.inc.F90"
    1286           6 :     end procedure
    1287             : #endif
    1288             : 
    1289             : #if RK3_ENABLED
    1290           6 :     module procedure setShuffledRNGX_D1_RK3
    1291             :         use pm_kind, only: RKC => RK3
    1292             : #include "pm_arrayShuffle@routines.inc.F90"
    1293           6 :     end procedure
    1294             : #endif
    1295             : 
    1296             : #if RK2_ENABLED
    1297           6 :     module procedure setShuffledRNGX_D1_RK2
    1298             :         use pm_kind, only: RKC => RK2
    1299             : #include "pm_arrayShuffle@routines.inc.F90"
    1300           6 :     end procedure
    1301             : #endif
    1302             : 
    1303             : #if RK1_ENABLED
    1304           6 :     module procedure setShuffledRNGX_D1_RK1
    1305             :         use pm_kind, only: RKC => RK1
    1306             : #include "pm_arrayShuffle@routines.inc.F90"
    1307           6 :     end procedure
    1308             : #endif
    1309             : 
    1310             : #undef RK_ENABLED
    1311             : 
    1312             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1313             : 
    1314             : #if !__GFORTRAN__
    1315             : #define PSSK_ENABLED 1
    1316             : 
    1317             : #if SK5_ENABLED
    1318             :     module procedure setShuffledRNGX_D1_PSSK5
    1319             :         use pm_kind, only: SKC => SK5
    1320             : #include "pm_arrayShuffle@routines.inc.F90"
    1321             :     end procedure
    1322             : #endif
    1323             : 
    1324             : #if SK4_ENABLED
    1325             :     module procedure setShuffledRNGX_D1_PSSK4
    1326             :         use pm_kind, only: SKC => SK4
    1327             : #include "pm_arrayShuffle@routines.inc.F90"
    1328             :     end procedure
    1329             : #endif
    1330             : 
    1331             : #if SK3_ENABLED
    1332             :     module procedure setShuffledRNGX_D1_PSSK3
    1333             :         use pm_kind, only: SKC => SK3
    1334             : #include "pm_arrayShuffle@routines.inc.F90"
    1335             :     end procedure
    1336             : #endif
    1337             : 
    1338             : #if SK2_ENABLED
    1339             :     module procedure setShuffledRNGX_D1_PSSK2
    1340             :         use pm_kind, only: SKC => SK2
    1341             : #include "pm_arrayShuffle@routines.inc.F90"
    1342             :     end procedure
    1343             : #endif
    1344             : 
    1345             : #if SK1_ENABLED
    1346             :     module procedure setShuffledRNGX_D1_PSSK1
    1347             :         use pm_kind, only: SKC => SK1
    1348             : #include "pm_arrayShuffle@routines.inc.F90"
    1349             :     end procedure
    1350             : #endif
    1351             : 
    1352             : #undef PSSK_ENABLED
    1353             : #endif
    1354             : 
    1355             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1356             : 
    1357             : #define BSSK_ENABLED 1
    1358             : 
    1359           0 :     module procedure setShuffledRNGX_D1_BSSK
    1360             :         use pm_kind, only: SKC => SK
    1361             : #include "pm_arrayShuffle@routines.inc.F90"
    1362           0 :     end procedure
    1363             : 
    1364             : #undef BSSK_ENABLED
    1365             : 
    1366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1367             : 
    1368             : #undef D1_ENABLED
    1369             : 
    1370             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1371             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1372             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1373             : 
    1374             : #undef RNGX_ENABLED
    1375             : 
    1376             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1377             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1378             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1379             : 
    1380             : #undef setShuffled_ENABLED
    1381             : 
    1382             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1383             : 
    1384             : #undef CHECK_ASSERTION
    1385             : 
    1386             : end submodule routines

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