https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_arrayComplement@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 180 180 100.0 %
Date: 2024-04-08 03:18:57 Functions: 90 90 100.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_arrayComplement](@ref pm_arrayComplement).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \FatemehBagheri, Wednesday 5:03 PM, August 11, 2021, Dallas, TX
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_arrayComplement) 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             :     implicit none
      40             : 
      41             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      42             : 
      43             : contains
      44             : 
      45             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      46             : 
      47             : #define getComplement_ENABLED 1
      48             : 
      49             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      50             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             : 
      53             : #define Random_ENABLED 1
      54             : #define DefCom_ENABLED 1
      55             : 
      56             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      57             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      58             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      59             : 
      60             : #define D0_ENABLED 1
      61             : 
      62             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      63             : 
      64             : #define SK_ENABLED 1
      65             : 
      66             : #if SK5_ENABLED
      67             :     module procedure getComplementRandomDefCom_D0_SK5
      68             :         use pm_kind, only: SKC => SK5
      69             : #include "pm_arrayComplement@routines.inc.F90"
      70             :     end procedure
      71             : #endif
      72             : 
      73             : #if SK4_ENABLED
      74             :     module procedure getComplementRandomDefCom_D0_SK4
      75             :         use pm_kind, only: SKC => SK4
      76             : #include "pm_arrayComplement@routines.inc.F90"
      77             :     end procedure
      78             : #endif
      79             : 
      80             : #if SK3_ENABLED
      81             :     module procedure getComplementRandomDefCom_D0_SK3
      82             :         use pm_kind, only: SKC => SK3
      83             : #include "pm_arrayComplement@routines.inc.F90"
      84             :     end procedure
      85             : #endif
      86             : 
      87             : #if SK2_ENABLED
      88             :     module procedure getComplementRandomDefCom_D0_SK2
      89             :         use pm_kind, only: SKC => SK2
      90             : #include "pm_arrayComplement@routines.inc.F90"
      91             :     end procedure
      92             : #endif
      93             : 
      94             : #if SK1_ENABLED
      95          24 :     module procedure getComplementRandomDefCom_D0_SK1
      96             :         use pm_kind, only: SKC => SK1
      97             : #include "pm_arrayComplement@routines.inc.F90"
      98          24 :     end procedure
      99             : #endif
     100             : 
     101             : #undef SK_ENABLED
     102             : 
     103             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     104             : 
     105             : #undef D0_ENABLED
     106             : 
     107             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     108             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     109             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     110             : 
     111             : #define D1_ENABLED 1
     112             : 
     113             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     114             : 
     115             : #define SK_ENABLED 1
     116             : 
     117             : #if SK5_ENABLED
     118             :     module procedure getComplementRandomDefCom_D1_SK5
     119             :         use pm_kind, only: SKC => SK5
     120             : #include "pm_arrayComplement@routines.inc.F90"
     121             :     end procedure
     122             : #endif
     123             : 
     124             : #if SK4_ENABLED
     125             :     module procedure getComplementRandomDefCom_D1_SK4
     126             :         use pm_kind, only: SKC => SK4
     127             : #include "pm_arrayComplement@routines.inc.F90"
     128             :     end procedure
     129             : #endif
     130             : 
     131             : #if SK3_ENABLED
     132             :     module procedure getComplementRandomDefCom_D1_SK3
     133             :         use pm_kind, only: SKC => SK3
     134             : #include "pm_arrayComplement@routines.inc.F90"
     135             :     end procedure
     136             : #endif
     137             : 
     138             : #if SK2_ENABLED
     139             :     module procedure getComplementRandomDefCom_D1_SK2
     140             :         use pm_kind, only: SKC => SK2
     141             : #include "pm_arrayComplement@routines.inc.F90"
     142             :     end procedure
     143             : #endif
     144             : 
     145             : #if SK1_ENABLED
     146          22 :     module procedure getComplementRandomDefCom_D1_SK1
     147             :         use pm_kind, only: SKC => SK1
     148             : #include "pm_arrayComplement@routines.inc.F90"
     149          22 :     end procedure
     150             : #endif
     151             : 
     152             : #undef SK_ENABLED
     153             : 
     154             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     155             : 
     156             : #define IK_ENABLED 1
     157             : 
     158             : #if IK5_ENABLED
     159         276 :     module procedure getComplementRandomDefCom_D1_IK5
     160             :         use pm_kind, only: IKC => IK5
     161             : #include "pm_arrayComplement@routines.inc.F90"
     162         276 :     end procedure
     163             : #endif
     164             : 
     165             : #if IK4_ENABLED
     166         276 :     module procedure getComplementRandomDefCom_D1_IK4
     167             :         use pm_kind, only: IKC => IK4
     168             : #include "pm_arrayComplement@routines.inc.F90"
     169         276 :     end procedure
     170             : #endif
     171             : 
     172             : #if IK3_ENABLED
     173         277 :     module procedure getComplementRandomDefCom_D1_IK3
     174             :         use pm_kind, only: IKC => IK3
     175             : #include "pm_arrayComplement@routines.inc.F90"
     176         277 :     end procedure
     177             : #endif
     178             : 
     179             : #if IK2_ENABLED
     180         276 :     module procedure getComplementRandomDefCom_D1_IK2
     181             :         use pm_kind, only: IKC => IK2
     182             : #include "pm_arrayComplement@routines.inc.F90"
     183         276 :     end procedure
     184             : #endif
     185             : 
     186             : #if IK1_ENABLED
     187         276 :     module procedure getComplementRandomDefCom_D1_IK1
     188             :         use pm_kind, only: IKC => IK1
     189             : #include "pm_arrayComplement@routines.inc.F90"
     190         276 :     end procedure
     191             : #endif
     192             : 
     193             : #undef IK_ENABLED
     194             : 
     195             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     196             : 
     197             : #define LK_ENABLED 1
     198             : 
     199             : #if LK5_ENABLED
     200          17 :     module procedure getComplementRandomDefCom_D1_LK5
     201             :         use pm_kind, only: LKC => LK5
     202             : #include "pm_arrayComplement@routines.inc.F90"
     203          17 :     end procedure
     204             : #endif
     205             : 
     206             : #if LK4_ENABLED
     207          17 :     module procedure getComplementRandomDefCom_D1_LK4
     208             :         use pm_kind, only: LKC => LK4
     209             : #include "pm_arrayComplement@routines.inc.F90"
     210          17 :     end procedure
     211             : #endif
     212             : 
     213             : #if LK3_ENABLED
     214          17 :     module procedure getComplementRandomDefCom_D1_LK3
     215             :         use pm_kind, only: LKC => LK3
     216             : #include "pm_arrayComplement@routines.inc.F90"
     217          17 :     end procedure
     218             : #endif
     219             : 
     220             : #if LK2_ENABLED
     221          17 :     module procedure getComplementRandomDefCom_D1_LK2
     222             :         use pm_kind, only: LKC => LK2
     223             : #include "pm_arrayComplement@routines.inc.F90"
     224          17 :     end procedure
     225             : #endif
     226             : 
     227             : #if LK1_ENABLED
     228          17 :     module procedure getComplementRandomDefCom_D1_LK1
     229             :         use pm_kind, only: LKC => LK1
     230             : #include "pm_arrayComplement@routines.inc.F90"
     231          17 :     end procedure
     232             : #endif
     233             : 
     234             : #undef LK_ENABLED
     235             : 
     236             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     237             : 
     238             : #define CK_ENABLED 1
     239             : 
     240             : #if CK5_ENABLED
     241             :     module procedure getComplementRandomDefCom_D1_CK5
     242             :         use pm_kind, only: CKC => CK5
     243             : #include "pm_arrayComplement@routines.inc.F90"
     244             :     end procedure
     245             : #endif
     246             : 
     247             : #if CK4_ENABLED
     248          21 :     module procedure getComplementRandomDefCom_D1_CK4
     249             :         use pm_kind, only: CKC => CK4
     250             : #include "pm_arrayComplement@routines.inc.F90"
     251          21 :     end procedure
     252             : #endif
     253             : 
     254             : #if CK3_ENABLED
     255          21 :     module procedure getComplementRandomDefCom_D1_CK3
     256             :         use pm_kind, only: CKC => CK3
     257             : #include "pm_arrayComplement@routines.inc.F90"
     258          21 :     end procedure
     259             : #endif
     260             : 
     261             : #if CK2_ENABLED
     262          21 :     module procedure getComplementRandomDefCom_D1_CK2
     263             :         use pm_kind, only: CKC => CK2
     264             : #include "pm_arrayComplement@routines.inc.F90"
     265          21 :     end procedure
     266             : #endif
     267             : 
     268             : #if CK1_ENABLED
     269          22 :     module procedure getComplementRandomDefCom_D1_CK1
     270             :         use pm_kind, only: CKC => CK1
     271             : #include "pm_arrayComplement@routines.inc.F90"
     272          22 :     end procedure
     273             : #endif
     274             : 
     275             : #undef CK_ENABLED
     276             : 
     277             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     278             : 
     279             : #define RK_ENABLED 1
     280             : 
     281             : #if RK5_ENABLED
     282             :     module procedure getComplementRandomDefCom_D1_RK5
     283             :         use pm_kind, only: RKC => RK5
     284             : #include "pm_arrayComplement@routines.inc.F90"
     285             :     end procedure
     286             : #endif
     287             : 
     288             : #if RK4_ENABLED
     289          21 :     module procedure getComplementRandomDefCom_D1_RK4
     290             :         use pm_kind, only: RKC => RK4
     291             : #include "pm_arrayComplement@routines.inc.F90"
     292          21 :     end procedure
     293             : #endif
     294             : 
     295             : #if RK3_ENABLED
     296          21 :     module procedure getComplementRandomDefCom_D1_RK3
     297             :         use pm_kind, only: RKC => RK3
     298             : #include "pm_arrayComplement@routines.inc.F90"
     299          21 :     end procedure
     300             : #endif
     301             : 
     302             : #if RK2_ENABLED
     303          21 :     module procedure getComplementRandomDefCom_D1_RK2
     304             :         use pm_kind, only: RKC => RK2
     305             : #include "pm_arrayComplement@routines.inc.F90"
     306          21 :     end procedure
     307             : #endif
     308             : 
     309             : #if RK1_ENABLED
     310          22 :     module procedure getComplementRandomDefCom_D1_RK1
     311             :         use pm_kind, only: RKC => RK1
     312             : #include "pm_arrayComplement@routines.inc.F90"
     313          22 :     end procedure
     314             : #endif
     315             : 
     316             : #undef RK_ENABLED
     317             : 
     318             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     319             : 
     320             : #undef D1_ENABLED
     321             : 
     322             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     323             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     324             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     325             : 
     326             : #undef Random_ENABLED
     327             : #undef DefCom_ENABLED
     328             : 
     329             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     330             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     331             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     332             : 
     333             : #define Random_ENABLED 1
     334             : #define CusCom_ENABLED 1
     335             : 
     336             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     338             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     339             : 
     340             : #define D0_ENABLED 1
     341             : 
     342             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     343             : 
     344             : #define SK_ENABLED 1
     345             : 
     346             : #if SK5_ENABLED
     347             :     module procedure getComplementRandomCusCom_D0_SK5
     348             :         use pm_kind, only: SKC => SK5
     349             : #include "pm_arrayComplement@routines.inc.F90"
     350             :     end procedure
     351             : #endif
     352             : 
     353             : #if SK4_ENABLED
     354             :     module procedure getComplementRandomCusCom_D0_SK4
     355             :         use pm_kind, only: SKC => SK4
     356             : #include "pm_arrayComplement@routines.inc.F90"
     357             :     end procedure
     358             : #endif
     359             : 
     360             : #if SK3_ENABLED
     361             :     module procedure getComplementRandomCusCom_D0_SK3
     362             :         use pm_kind, only: SKC => SK3
     363             : #include "pm_arrayComplement@routines.inc.F90"
     364             :     end procedure
     365             : #endif
     366             : 
     367             : #if SK2_ENABLED
     368             :     module procedure getComplementRandomCusCom_D0_SK2
     369             :         use pm_kind, only: SKC => SK2
     370             : #include "pm_arrayComplement@routines.inc.F90"
     371             :     end procedure
     372             : #endif
     373             : 
     374             : #if SK1_ENABLED
     375          22 :     module procedure getComplementRandomCusCom_D0_SK1
     376             :         use pm_kind, only: SKC => SK1
     377             : #include "pm_arrayComplement@routines.inc.F90"
     378          22 :     end procedure
     379             : #endif
     380             : 
     381             : #undef SK_ENABLED
     382             : 
     383             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     384             : 
     385             : #undef D0_ENABLED
     386             : 
     387             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     388             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     389             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     390             : 
     391             : #define D1_ENABLED 1
     392             : 
     393             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     394             : 
     395             : #define SK_ENABLED 1
     396             : 
     397             : #if SK5_ENABLED
     398             :     module procedure getComplementRandomCusCom_D1_SK5
     399             :         use pm_kind, only: SKC => SK5
     400             : #include "pm_arrayComplement@routines.inc.F90"
     401             :     end procedure
     402             : #endif
     403             : 
     404             : #if SK4_ENABLED
     405             :     module procedure getComplementRandomCusCom_D1_SK4
     406             :         use pm_kind, only: SKC => SK4
     407             : #include "pm_arrayComplement@routines.inc.F90"
     408             :     end procedure
     409             : #endif
     410             : 
     411             : #if SK3_ENABLED
     412             :     module procedure getComplementRandomCusCom_D1_SK3
     413             :         use pm_kind, only: SKC => SK3
     414             : #include "pm_arrayComplement@routines.inc.F90"
     415             :     end procedure
     416             : #endif
     417             : 
     418             : #if SK2_ENABLED
     419             :     module procedure getComplementRandomCusCom_D1_SK2
     420             :         use pm_kind, only: SKC => SK2
     421             : #include "pm_arrayComplement@routines.inc.F90"
     422             :     end procedure
     423             : #endif
     424             : 
     425             : #if SK1_ENABLED
     426          21 :     module procedure getComplementRandomCusCom_D1_SK1
     427             :         use pm_kind, only: SKC => SK1
     428             : #include "pm_arrayComplement@routines.inc.F90"
     429          21 :     end procedure
     430             : #endif
     431             : 
     432             : #undef SK_ENABLED
     433             : 
     434             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     435             : 
     436             : #define IK_ENABLED 1
     437             : 
     438             : #if IK5_ENABLED
     439          21 :     module procedure getComplementRandomCusCom_D1_IK5
     440             :         use pm_kind, only: IKC => IK5
     441             : #include "pm_arrayComplement@routines.inc.F90"
     442          21 :     end procedure
     443             : #endif
     444             : 
     445             : #if IK4_ENABLED
     446          21 :     module procedure getComplementRandomCusCom_D1_IK4
     447             :         use pm_kind, only: IKC => IK4
     448             : #include "pm_arrayComplement@routines.inc.F90"
     449          21 :     end procedure
     450             : #endif
     451             : 
     452             : #if IK3_ENABLED
     453          21 :     module procedure getComplementRandomCusCom_D1_IK3
     454             :         use pm_kind, only: IKC => IK3
     455             : #include "pm_arrayComplement@routines.inc.F90"
     456          21 :     end procedure
     457             : #endif
     458             : 
     459             : #if IK2_ENABLED
     460          21 :     module procedure getComplementRandomCusCom_D1_IK2
     461             :         use pm_kind, only: IKC => IK2
     462             : #include "pm_arrayComplement@routines.inc.F90"
     463          21 :     end procedure
     464             : #endif
     465             : 
     466             : #if IK1_ENABLED
     467          21 :     module procedure getComplementRandomCusCom_D1_IK1
     468             :         use pm_kind, only: IKC => IK1
     469             : #include "pm_arrayComplement@routines.inc.F90"
     470          21 :     end procedure
     471             : #endif
     472             : 
     473             : #undef IK_ENABLED
     474             : 
     475             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     476             : 
     477             : #define LK_ENABLED 1
     478             : 
     479             : #if LK5_ENABLED
     480          17 :     module procedure getComplementRandomCusCom_D1_LK5
     481             :         use pm_kind, only: LKC => LK5
     482             : #include "pm_arrayComplement@routines.inc.F90"
     483          17 :     end procedure
     484             : #endif
     485             : 
     486             : #if LK4_ENABLED
     487          17 :     module procedure getComplementRandomCusCom_D1_LK4
     488             :         use pm_kind, only: LKC => LK4
     489             : #include "pm_arrayComplement@routines.inc.F90"
     490          17 :     end procedure
     491             : #endif
     492             : 
     493             : #if LK3_ENABLED
     494          17 :     module procedure getComplementRandomCusCom_D1_LK3
     495             :         use pm_kind, only: LKC => LK3
     496             : #include "pm_arrayComplement@routines.inc.F90"
     497          17 :     end procedure
     498             : #endif
     499             : 
     500             : #if LK2_ENABLED
     501          17 :     module procedure getComplementRandomCusCom_D1_LK2
     502             :         use pm_kind, only: LKC => LK2
     503             : #include "pm_arrayComplement@routines.inc.F90"
     504          17 :     end procedure
     505             : #endif
     506             : 
     507             : #if LK1_ENABLED
     508          17 :     module procedure getComplementRandomCusCom_D1_LK1
     509             :         use pm_kind, only: LKC => LK1
     510             : #include "pm_arrayComplement@routines.inc.F90"
     511          17 :     end procedure
     512             : #endif
     513             : 
     514             : #undef LK_ENABLED
     515             : 
     516             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     517             : 
     518             : #define CK_ENABLED 1
     519             : 
     520             : #if CK5_ENABLED
     521             :     module procedure getComplementRandomCusCom_D1_CK5
     522             :         use pm_kind, only: CKC => CK5
     523             : #include "pm_arrayComplement@routines.inc.F90"
     524             :     end procedure
     525             : #endif
     526             : 
     527             : #if CK4_ENABLED
     528          21 :     module procedure getComplementRandomCusCom_D1_CK4
     529             :         use pm_kind, only: CKC => CK4
     530             : #include "pm_arrayComplement@routines.inc.F90"
     531          21 :     end procedure
     532             : #endif
     533             : 
     534             : #if CK3_ENABLED
     535          21 :     module procedure getComplementRandomCusCom_D1_CK3
     536             :         use pm_kind, only: CKC => CK3
     537             : #include "pm_arrayComplement@routines.inc.F90"
     538          21 :     end procedure
     539             : #endif
     540             : 
     541             : #if CK2_ENABLED
     542          21 :     module procedure getComplementRandomCusCom_D1_CK2
     543             :         use pm_kind, only: CKC => CK2
     544             : #include "pm_arrayComplement@routines.inc.F90"
     545          21 :     end procedure
     546             : #endif
     547             : 
     548             : #if CK1_ENABLED
     549          21 :     module procedure getComplementRandomCusCom_D1_CK1
     550             :         use pm_kind, only: CKC => CK1
     551             : #include "pm_arrayComplement@routines.inc.F90"
     552          21 :     end procedure
     553             : #endif
     554             : 
     555             : #undef CK_ENABLED
     556             : 
     557             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     558             : 
     559             : #define RK_ENABLED 1
     560             : 
     561             : #if RK5_ENABLED
     562             :     module procedure getComplementRandomCusCom_D1_RK5
     563             :         use pm_kind, only: RKC => RK5
     564             : #include "pm_arrayComplement@routines.inc.F90"
     565             :     end procedure
     566             : #endif
     567             : 
     568             : #if RK4_ENABLED
     569          21 :     module procedure getComplementRandomCusCom_D1_RK4
     570             :         use pm_kind, only: RKC => RK4
     571             : #include "pm_arrayComplement@routines.inc.F90"
     572          21 :     end procedure
     573             : #endif
     574             : 
     575             : #if RK3_ENABLED
     576          21 :     module procedure getComplementRandomCusCom_D1_RK3
     577             :         use pm_kind, only: RKC => RK3
     578             : #include "pm_arrayComplement@routines.inc.F90"
     579          21 :     end procedure
     580             : #endif
     581             : 
     582             : #if RK2_ENABLED
     583          21 :     module procedure getComplementRandomCusCom_D1_RK2
     584             :         use pm_kind, only: RKC => RK2
     585             : #include "pm_arrayComplement@routines.inc.F90"
     586          21 :     end procedure
     587             : #endif
     588             : 
     589             : #if RK1_ENABLED
     590          21 :     module procedure getComplementRandomCusCom_D1_RK1
     591             :         use pm_kind, only: RKC => RK1
     592             : #include "pm_arrayComplement@routines.inc.F90"
     593          21 :     end procedure
     594             : #endif
     595             : 
     596             : #undef RK_ENABLED
     597             : 
     598             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     599             : 
     600             : #undef D1_ENABLED
     601             : 
     602             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     603             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     604             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     605             : 
     606             : #undef Random_ENABLED
     607             : #undef CusCom_ENABLED
     608             : 
     609             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     610             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     611             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     612             : 
     613             : #define Sorted_ENABLED 1
     614             : #define DefCom_ENABLED 1
     615             : 
     616             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     617             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     618             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     619             : 
     620             : #define D0_ENABLED 1
     621             : 
     622             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     623             : 
     624             : #define SK_ENABLED 1
     625             : 
     626             : #if SK5_ENABLED
     627             :     module procedure getComplementSortedDefCom_D0_SK5
     628             :         use pm_kind, only: SKC => SK5
     629             : #include "pm_arrayComplement@routines.inc.F90"
     630             :     end procedure
     631             : #endif
     632             : 
     633             : #if SK4_ENABLED
     634             :     module procedure getComplementSortedDefCom_D0_SK4
     635             :         use pm_kind, only: SKC => SK4
     636             : #include "pm_arrayComplement@routines.inc.F90"
     637             :     end procedure
     638             : #endif
     639             : 
     640             : #if SK3_ENABLED
     641             :     module procedure getComplementSortedDefCom_D0_SK3
     642             :         use pm_kind, only: SKC => SK3
     643             : #include "pm_arrayComplement@routines.inc.F90"
     644             :     end procedure
     645             : #endif
     646             : 
     647             : #if SK2_ENABLED
     648             :     module procedure getComplementSortedDefCom_D0_SK2
     649             :         use pm_kind, only: SKC => SK2
     650             : #include "pm_arrayComplement@routines.inc.F90"
     651             :     end procedure
     652             : #endif
     653             : 
     654             : #if SK1_ENABLED
     655          36 :     module procedure getComplementSortedDefCom_D0_SK1
     656             :         use pm_kind, only: SKC => SK1
     657             : #include "pm_arrayComplement@routines.inc.F90"
     658          36 :     end procedure
     659             : #endif
     660             : 
     661             : #undef SK_ENABLED
     662             : 
     663             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     664             : 
     665             : #undef D0_ENABLED
     666             : 
     667             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     668             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     669             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     670             : 
     671             : #define D1_ENABLED 1
     672             : 
     673             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     674             : 
     675             : #define SK_ENABLED 1
     676             : 
     677             : #if SK5_ENABLED
     678             :     module procedure getComplementSortedDefCom_D1_SK5
     679             :         use pm_kind, only: SKC => SK5
     680             : #include "pm_arrayComplement@routines.inc.F90"
     681             :     end procedure
     682             : #endif
     683             : 
     684             : #if SK4_ENABLED
     685             :     module procedure getComplementSortedDefCom_D1_SK4
     686             :         use pm_kind, only: SKC => SK4
     687             : #include "pm_arrayComplement@routines.inc.F90"
     688             :     end procedure
     689             : #endif
     690             : 
     691             : #if SK3_ENABLED
     692             :     module procedure getComplementSortedDefCom_D1_SK3
     693             :         use pm_kind, only: SKC => SK3
     694             : #include "pm_arrayComplement@routines.inc.F90"
     695             :     end procedure
     696             : #endif
     697             : 
     698             : #if SK2_ENABLED
     699             :     module procedure getComplementSortedDefCom_D1_SK2
     700             :         use pm_kind, only: SKC => SK2
     701             : #include "pm_arrayComplement@routines.inc.F90"
     702             :     end procedure
     703             : #endif
     704             : 
     705             : #if SK1_ENABLED
     706          30 :     module procedure getComplementSortedDefCom_D1_SK1
     707             :         use pm_kind, only: SKC => SK1
     708             : #include "pm_arrayComplement@routines.inc.F90"
     709          30 :     end procedure
     710             : #endif
     711             : 
     712             : #undef SK_ENABLED
     713             : 
     714             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     715             : 
     716             : #define IK_ENABLED 1
     717             : 
     718             : #if IK5_ENABLED
     719          28 :     module procedure getComplementSortedDefCom_D1_IK5
     720             :         use pm_kind, only: IKC => IK5
     721             : #include "pm_arrayComplement@routines.inc.F90"
     722          28 :     end procedure
     723             : #endif
     724             : 
     725             : #if IK4_ENABLED
     726          28 :     module procedure getComplementSortedDefCom_D1_IK4
     727             :         use pm_kind, only: IKC => IK4
     728             : #include "pm_arrayComplement@routines.inc.F90"
     729          28 :     end procedure
     730             : #endif
     731             : 
     732             : #if IK3_ENABLED
     733          30 :     module procedure getComplementSortedDefCom_D1_IK3
     734             :         use pm_kind, only: IKC => IK3
     735             : #include "pm_arrayComplement@routines.inc.F90"
     736          30 :     end procedure
     737             : #endif
     738             : 
     739             : #if IK2_ENABLED
     740          28 :     module procedure getComplementSortedDefCom_D1_IK2
     741             :         use pm_kind, only: IKC => IK2
     742             : #include "pm_arrayComplement@routines.inc.F90"
     743          28 :     end procedure
     744             : #endif
     745             : 
     746             : #if IK1_ENABLED
     747          28 :     module procedure getComplementSortedDefCom_D1_IK1
     748             :         use pm_kind, only: IKC => IK1
     749             : #include "pm_arrayComplement@routines.inc.F90"
     750          28 :     end procedure
     751             : #endif
     752             : 
     753             : #undef IK_ENABLED
     754             : 
     755             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     756             : 
     757             : #define LK_ENABLED 1
     758             : 
     759             : #if LK5_ENABLED
     760          20 :     module procedure getComplementSortedDefCom_D1_LK5
     761             :         use pm_kind, only: LKC => LK5
     762             : #include "pm_arrayComplement@routines.inc.F90"
     763          20 :     end procedure
     764             : #endif
     765             : 
     766             : #if LK4_ENABLED
     767          20 :     module procedure getComplementSortedDefCom_D1_LK4
     768             :         use pm_kind, only: LKC => LK4
     769             : #include "pm_arrayComplement@routines.inc.F90"
     770          20 :     end procedure
     771             : #endif
     772             : 
     773             : #if LK3_ENABLED
     774          20 :     module procedure getComplementSortedDefCom_D1_LK3
     775             :         use pm_kind, only: LKC => LK3
     776             : #include "pm_arrayComplement@routines.inc.F90"
     777          20 :     end procedure
     778             : #endif
     779             : 
     780             : #if LK2_ENABLED
     781          20 :     module procedure getComplementSortedDefCom_D1_LK2
     782             :         use pm_kind, only: LKC => LK2
     783             : #include "pm_arrayComplement@routines.inc.F90"
     784          20 :     end procedure
     785             : #endif
     786             : 
     787             : #if LK1_ENABLED
     788          20 :     module procedure getComplementSortedDefCom_D1_LK1
     789             :         use pm_kind, only: LKC => LK1
     790             : #include "pm_arrayComplement@routines.inc.F90"
     791          20 :     end procedure
     792             : #endif
     793             : 
     794             : #undef LK_ENABLED
     795             : 
     796             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     797             : 
     798             : #define CK_ENABLED 1
     799             : 
     800             : #if CK5_ENABLED
     801             :     module procedure getComplementSortedDefCom_D1_CK5
     802             :         use pm_kind, only: CKC => CK5
     803             : #include "pm_arrayComplement@routines.inc.F90"
     804             :     end procedure
     805             : #endif
     806             : 
     807             : #if CK4_ENABLED
     808          28 :     module procedure getComplementSortedDefCom_D1_CK4
     809             :         use pm_kind, only: CKC => CK4
     810             : #include "pm_arrayComplement@routines.inc.F90"
     811          28 :     end procedure
     812             : #endif
     813             : 
     814             : #if CK3_ENABLED
     815          28 :     module procedure getComplementSortedDefCom_D1_CK3
     816             :         use pm_kind, only: CKC => CK3
     817             : #include "pm_arrayComplement@routines.inc.F90"
     818          28 :     end procedure
     819             : #endif
     820             : 
     821             : #if CK2_ENABLED
     822          28 :     module procedure getComplementSortedDefCom_D1_CK2
     823             :         use pm_kind, only: CKC => CK2
     824             : #include "pm_arrayComplement@routines.inc.F90"
     825          28 :     end procedure
     826             : #endif
     827             : 
     828             : #if CK1_ENABLED
     829          30 :     module procedure getComplementSortedDefCom_D1_CK1
     830             :         use pm_kind, only: CKC => CK1
     831             : #include "pm_arrayComplement@routines.inc.F90"
     832          30 :     end procedure
     833             : #endif
     834             : 
     835             : #undef CK_ENABLED
     836             : 
     837             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     838             : 
     839             : #define RK_ENABLED 1
     840             : 
     841             : #if RK5_ENABLED
     842             :     module procedure getComplementSortedDefCom_D1_RK5
     843             :         use pm_kind, only: RKC => RK5
     844             : #include "pm_arrayComplement@routines.inc.F90"
     845             :     end procedure
     846             : #endif
     847             : 
     848             : #if RK4_ENABLED
     849          28 :     module procedure getComplementSortedDefCom_D1_RK4
     850             :         use pm_kind, only: RKC => RK4
     851             : #include "pm_arrayComplement@routines.inc.F90"
     852          28 :     end procedure
     853             : #endif
     854             : 
     855             : #if RK3_ENABLED
     856          28 :     module procedure getComplementSortedDefCom_D1_RK3
     857             :         use pm_kind, only: RKC => RK3
     858             : #include "pm_arrayComplement@routines.inc.F90"
     859          28 :     end procedure
     860             : #endif
     861             : 
     862             : #if RK2_ENABLED
     863          28 :     module procedure getComplementSortedDefCom_D1_RK2
     864             :         use pm_kind, only: RKC => RK2
     865             : #include "pm_arrayComplement@routines.inc.F90"
     866          28 :     end procedure
     867             : #endif
     868             : 
     869             : #if RK1_ENABLED
     870          30 :     module procedure getComplementSortedDefCom_D1_RK1
     871             :         use pm_kind, only: RKC => RK1
     872             : #include "pm_arrayComplement@routines.inc.F90"
     873          30 :     end procedure
     874             : #endif
     875             : 
     876             : #undef RK_ENABLED
     877             : 
     878             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     879             : 
     880             : #undef D1_ENABLED
     881             : 
     882             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     883             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     884             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     885             : 
     886             : #undef Sorted_ENABLED
     887             : #undef DefCom_ENABLED
     888             : 
     889             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     890             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     891             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     892             : 
     893             : #define Sorted_ENABLED 1
     894             : #define CusCom_ENABLED 1
     895             : 
     896             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     897             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     898             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     899             : 
     900             : #define D0_ENABLED 1
     901             : 
     902             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     903             : 
     904             : #define SK_ENABLED 1
     905             : 
     906             : #if SK5_ENABLED
     907             :     module procedure getComplementSortedCusCom_D0_SK5
     908             :         use pm_kind, only: SKC => SK5
     909             : #include "pm_arrayComplement@routines.inc.F90"
     910             :     end procedure
     911             : #endif
     912             : 
     913             : #if SK4_ENABLED
     914             :     module procedure getComplementSortedCusCom_D0_SK4
     915             :         use pm_kind, only: SKC => SK4
     916             : #include "pm_arrayComplement@routines.inc.F90"
     917             :     end procedure
     918             : #endif
     919             : 
     920             : #if SK3_ENABLED
     921             :     module procedure getComplementSortedCusCom_D0_SK3
     922             :         use pm_kind, only: SKC => SK3
     923             : #include "pm_arrayComplement@routines.inc.F90"
     924             :     end procedure
     925             : #endif
     926             : 
     927             : #if SK2_ENABLED
     928             :     module procedure getComplementSortedCusCom_D0_SK2
     929             :         use pm_kind, only: SKC => SK2
     930             : #include "pm_arrayComplement@routines.inc.F90"
     931             :     end procedure
     932             : #endif
     933             : 
     934             : #if SK1_ENABLED
     935          30 :     module procedure getComplementSortedCusCom_D0_SK1
     936             :         use pm_kind, only: SKC => SK1
     937             : #include "pm_arrayComplement@routines.inc.F90"
     938          30 :     end procedure
     939             : #endif
     940             : 
     941             : #undef SK_ENABLED
     942             : 
     943             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     944             : 
     945             : #undef D0_ENABLED
     946             : 
     947             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     948             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     949             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     950             : 
     951             : #define D1_ENABLED 1
     952             : 
     953             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     954             : 
     955             : #define SK_ENABLED 1
     956             : 
     957             : #if SK5_ENABLED
     958             :     module procedure getComplementSortedCusCom_D1_SK5
     959             :         use pm_kind, only: SKC => SK5
     960             : #include "pm_arrayComplement@routines.inc.F90"
     961             :     end procedure
     962             : #endif
     963             : 
     964             : #if SK4_ENABLED
     965             :     module procedure getComplementSortedCusCom_D1_SK4
     966             :         use pm_kind, only: SKC => SK4
     967             : #include "pm_arrayComplement@routines.inc.F90"
     968             :     end procedure
     969             : #endif
     970             : 
     971             : #if SK3_ENABLED
     972             :     module procedure getComplementSortedCusCom_D1_SK3
     973             :         use pm_kind, only: SKC => SK3
     974             : #include "pm_arrayComplement@routines.inc.F90"
     975             :     end procedure
     976             : #endif
     977             : 
     978             : #if SK2_ENABLED
     979             :     module procedure getComplementSortedCusCom_D1_SK2
     980             :         use pm_kind, only: SKC => SK2
     981             : #include "pm_arrayComplement@routines.inc.F90"
     982             :     end procedure
     983             : #endif
     984             : 
     985             : #if SK1_ENABLED
     986          28 :     module procedure getComplementSortedCusCom_D1_SK1
     987             :         use pm_kind, only: SKC => SK1
     988             : #include "pm_arrayComplement@routines.inc.F90"
     989          28 :     end procedure
     990             : #endif
     991             : 
     992             : #undef SK_ENABLED
     993             : 
     994             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     995             : 
     996             : #define IK_ENABLED 1
     997             : 
     998             : #if IK5_ENABLED
     999          28 :     module procedure getComplementSortedCusCom_D1_IK5
    1000             :         use pm_kind, only: IKC => IK5
    1001             : #include "pm_arrayComplement@routines.inc.F90"
    1002          28 :     end procedure
    1003             : #endif
    1004             : 
    1005             : #if IK4_ENABLED
    1006          28 :     module procedure getComplementSortedCusCom_D1_IK4
    1007             :         use pm_kind, only: IKC => IK4
    1008             : #include "pm_arrayComplement@routines.inc.F90"
    1009          28 :     end procedure
    1010             : #endif
    1011             : 
    1012             : #if IK3_ENABLED
    1013          28 :     module procedure getComplementSortedCusCom_D1_IK3
    1014             :         use pm_kind, only: IKC => IK3
    1015             : #include "pm_arrayComplement@routines.inc.F90"
    1016          28 :     end procedure
    1017             : #endif
    1018             : 
    1019             : #if IK2_ENABLED
    1020          28 :     module procedure getComplementSortedCusCom_D1_IK2
    1021             :         use pm_kind, only: IKC => IK2
    1022             : #include "pm_arrayComplement@routines.inc.F90"
    1023          28 :     end procedure
    1024             : #endif
    1025             : 
    1026             : #if IK1_ENABLED
    1027          28 :     module procedure getComplementSortedCusCom_D1_IK1
    1028             :         use pm_kind, only: IKC => IK1
    1029             : #include "pm_arrayComplement@routines.inc.F90"
    1030          28 :     end procedure
    1031             : #endif
    1032             : 
    1033             : #undef IK_ENABLED
    1034             : 
    1035             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1036             : 
    1037             : #define LK_ENABLED 1
    1038             : 
    1039             : #if LK5_ENABLED
    1040          20 :     module procedure getComplementSortedCusCom_D1_LK5
    1041             :         use pm_kind, only: LKC => LK5
    1042             : #include "pm_arrayComplement@routines.inc.F90"
    1043          20 :     end procedure
    1044             : #endif
    1045             : 
    1046             : #if LK4_ENABLED
    1047          20 :     module procedure getComplementSortedCusCom_D1_LK4
    1048             :         use pm_kind, only: LKC => LK4
    1049             : #include "pm_arrayComplement@routines.inc.F90"
    1050          20 :     end procedure
    1051             : #endif
    1052             : 
    1053             : #if LK3_ENABLED
    1054          20 :     module procedure getComplementSortedCusCom_D1_LK3
    1055             :         use pm_kind, only: LKC => LK3
    1056             : #include "pm_arrayComplement@routines.inc.F90"
    1057          20 :     end procedure
    1058             : #endif
    1059             : 
    1060             : #if LK2_ENABLED
    1061          20 :     module procedure getComplementSortedCusCom_D1_LK2
    1062             :         use pm_kind, only: LKC => LK2
    1063             : #include "pm_arrayComplement@routines.inc.F90"
    1064          20 :     end procedure
    1065             : #endif
    1066             : 
    1067             : #if LK1_ENABLED
    1068          20 :     module procedure getComplementSortedCusCom_D1_LK1
    1069             :         use pm_kind, only: LKC => LK1
    1070             : #include "pm_arrayComplement@routines.inc.F90"
    1071          20 :     end procedure
    1072             : #endif
    1073             : 
    1074             : #undef LK_ENABLED
    1075             : 
    1076             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1077             : 
    1078             : #define CK_ENABLED 1
    1079             : 
    1080             : #if CK5_ENABLED
    1081             :     module procedure getComplementSortedCusCom_D1_CK5
    1082             :         use pm_kind, only: CKC => CK5
    1083             : #include "pm_arrayComplement@routines.inc.F90"
    1084             :     end procedure
    1085             : #endif
    1086             : 
    1087             : #if CK4_ENABLED
    1088          28 :     module procedure getComplementSortedCusCom_D1_CK4
    1089             :         use pm_kind, only: CKC => CK4
    1090             : #include "pm_arrayComplement@routines.inc.F90"
    1091          28 :     end procedure
    1092             : #endif
    1093             : 
    1094             : #if CK3_ENABLED
    1095          28 :     module procedure getComplementSortedCusCom_D1_CK3
    1096             :         use pm_kind, only: CKC => CK3
    1097             : #include "pm_arrayComplement@routines.inc.F90"
    1098          28 :     end procedure
    1099             : #endif
    1100             : 
    1101             : #if CK2_ENABLED
    1102          28 :     module procedure getComplementSortedCusCom_D1_CK2
    1103             :         use pm_kind, only: CKC => CK2
    1104             : #include "pm_arrayComplement@routines.inc.F90"
    1105          28 :     end procedure
    1106             : #endif
    1107             : 
    1108             : #if CK1_ENABLED
    1109          28 :     module procedure getComplementSortedCusCom_D1_CK1
    1110             :         use pm_kind, only: CKC => CK1
    1111             : #include "pm_arrayComplement@routines.inc.F90"
    1112          28 :     end procedure
    1113             : #endif
    1114             : 
    1115             : #undef CK_ENABLED
    1116             : 
    1117             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1118             : 
    1119             : #define RK_ENABLED 1
    1120             : 
    1121             : #if RK5_ENABLED
    1122             :     module procedure getComplementSortedCusCom_D1_RK5
    1123             :         use pm_kind, only: RKC => RK5
    1124             : #include "pm_arrayComplement@routines.inc.F90"
    1125             :     end procedure
    1126             : #endif
    1127             : 
    1128             : #if RK4_ENABLED
    1129          28 :     module procedure getComplementSortedCusCom_D1_RK4
    1130             :         use pm_kind, only: RKC => RK4
    1131             : #include "pm_arrayComplement@routines.inc.F90"
    1132          28 :     end procedure
    1133             : #endif
    1134             : 
    1135             : #if RK3_ENABLED
    1136          28 :     module procedure getComplementSortedCusCom_D1_RK3
    1137             :         use pm_kind, only: RKC => RK3
    1138             : #include "pm_arrayComplement@routines.inc.F90"
    1139          28 :     end procedure
    1140             : #endif
    1141             : 
    1142             : #if RK2_ENABLED
    1143          28 :     module procedure getComplementSortedCusCom_D1_RK2
    1144             :         use pm_kind, only: RKC => RK2
    1145             : #include "pm_arrayComplement@routines.inc.F90"
    1146          28 :     end procedure
    1147             : #endif
    1148             : 
    1149             : #if RK1_ENABLED
    1150          28 :     module procedure getComplementSortedCusCom_D1_RK1
    1151             :         use pm_kind, only: RKC => RK1
    1152             : #include "pm_arrayComplement@routines.inc.F90"
    1153          28 :     end procedure
    1154             : #endif
    1155             : 
    1156             : #undef RK_ENABLED
    1157             : 
    1158             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1159             : 
    1160             : #undef D1_ENABLED
    1161             : 
    1162             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1163             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1164             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1165             : 
    1166             : #undef Sorted_ENABLED
    1167             : #undef CusCom_ENABLED
    1168             : 
    1169             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1170             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1171             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1172             : 
    1173             : #undef getComplement_ENABLED
    1174             : 
    1175             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1176             : 
    1177             : #define getCompRange_ENABLED 1
    1178             : 
    1179             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1180             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1181             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1182             : 
    1183             : #define Random_ENABLED 1
    1184             : 
    1185             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1186             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1187             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1188             : 
    1189             : #define D1_ENABLED 1
    1190             : 
    1191             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1192             : 
    1193             : #define IK_ENABLED 1
    1194             : 
    1195             : #if IK5_ENABLED
    1196         265 :     module procedure getCompRangeRandom_D1_IK5
    1197             :         use pm_kind, only: IKC => IK5
    1198             : #include "pm_arrayComplement@routines.inc.F90"
    1199         265 :     end procedure
    1200             : #endif
    1201             : 
    1202             : #if IK4_ENABLED
    1203         265 :     module procedure getCompRangeRandom_D1_IK4
    1204             :         use pm_kind, only: IKC => IK4
    1205             : #include "pm_arrayComplement@routines.inc.F90"
    1206         265 :     end procedure
    1207             : #endif
    1208             : 
    1209             : #if IK3_ENABLED
    1210         269 :     module procedure getCompRangeRandom_D1_IK3
    1211             :         use pm_kind, only: IKC => IK3
    1212             : #include "pm_arrayComplement@routines.inc.F90"
    1213         269 :     end procedure
    1214             : #endif
    1215             : 
    1216             : #if IK2_ENABLED
    1217         265 :     module procedure getCompRangeRandom_D1_IK2
    1218             :         use pm_kind, only: IKC => IK2
    1219             : #include "pm_arrayComplement@routines.inc.F90"
    1220         265 :     end procedure
    1221             : #endif
    1222             : 
    1223             : #if IK1_ENABLED
    1224         265 :     module procedure getCompRangeRandom_D1_IK1
    1225             :         use pm_kind, only: IKC => IK1
    1226             : #include "pm_arrayComplement@routines.inc.F90"
    1227         265 :     end procedure
    1228             : #endif
    1229             : 
    1230             : #undef IK_ENABLED
    1231             : 
    1232             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1233             : 
    1234             : #undef D1_ENABLED
    1235             : 
    1236             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1237             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1238             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1239             : 
    1240             : #undef Random_ENABLED
    1241             : 
    1242             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1243             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1244             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1245             : 
    1246             : #define Sorted_ENABLED 1
    1247             : 
    1248             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1249             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1250             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1251             : 
    1252             : #define D1_ENABLED 1
    1253             : 
    1254             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1255             : 
    1256             : #define IK_ENABLED 1
    1257             : 
    1258             : #if IK5_ENABLED
    1259        1060 :     module procedure getCompRangeSorted_D1_IK5
    1260             :         use pm_kind, only: IKC => IK5
    1261             : #include "pm_arrayComplement@routines.inc.F90"
    1262        1060 :     end procedure
    1263             : #endif
    1264             : 
    1265             : #if IK4_ENABLED
    1266        1060 :     module procedure getCompRangeSorted_D1_IK4
    1267             :         use pm_kind, only: IKC => IK4
    1268             : #include "pm_arrayComplement@routines.inc.F90"
    1269        1060 :     end procedure
    1270             : #endif
    1271             : 
    1272             : #if IK3_ENABLED
    1273        1066 :     module procedure getCompRangeSorted_D1_IK3
    1274             :         use pm_kind, only: IKC => IK3
    1275             : #include "pm_arrayComplement@routines.inc.F90"
    1276        1066 :     end procedure
    1277             : #endif
    1278             : 
    1279             : #if IK2_ENABLED
    1280        1060 :     module procedure getCompRangeSorted_D1_IK2
    1281             :         use pm_kind, only: IKC => IK2
    1282             : #include "pm_arrayComplement@routines.inc.F90"
    1283        1060 :     end procedure
    1284             : #endif
    1285             : 
    1286             : #if IK1_ENABLED
    1287        1060 :     module procedure getCompRangeSorted_D1_IK1
    1288             :         use pm_kind, only: IKC => IK1
    1289             : #include "pm_arrayComplement@routines.inc.F90"
    1290        1060 :     end procedure
    1291             : #endif
    1292             : 
    1293             : #undef IK_ENABLED
    1294             : 
    1295             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1296             : 
    1297             : #undef D1_ENABLED
    1298             : 
    1299             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1300             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1301             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1302             : 
    1303             : #undef Sorted_ENABLED
    1304             : 
    1305             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1306             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1307             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1308             : 
    1309             : #undef getCompRange_ENABLED
    1310             : 
    1311             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1312             : 
    1313             : #undef CHECK_ASSERTION
    1314             : 
    1315             : end submodule routines

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