https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_arrayMerge@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 80 86 93.0 %
Date: 2024-04-08 03:18:57 Functions: 80 84 95.2 %
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_arrayMerge](@ref pm_arrayMerge).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \FatemehBagheri, Wednesday 5:03 PM, August 11, 2021, Dallas, TX
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_arrayMerge) 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             :     use pm_arraySort, only: isAscending
      34             :     use pm_arraySort, only: isSortedCheck => isSorted
      35             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
      36             : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
      37             : #else
      38             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
      39             : #endif
      40             : 
      41             :     implicit none
      42             : 
      43             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      44             : 
      45             : contains
      46             : 
      47             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      48             : 
      49             : #define getMerged_ENABLED 1
      50             : 
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      53             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      54             : 
      55             : #define DefCom_ENABLED 1
      56             : 
      57             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      58             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      59             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      60             : 
      61             : #define D0_ENABLED 1
      62             : 
      63             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      64             : 
      65             : #define SK_ENABLED 1
      66             : 
      67             : #if SK5_ENABLED
      68             :     module procedure getMergedDefCom_D0_SK5
      69             :         use pm_kind, only: SKC => SK5
      70             : #include "pm_arrayMerge@routines.inc.F90"
      71             :     end procedure
      72             : #endif
      73             : 
      74             : #if SK4_ENABLED
      75             :     module procedure getMergedDefCom_D0_SK4
      76             :         use pm_kind, only: SKC => SK4
      77             : #include "pm_arrayMerge@routines.inc.F90"
      78             :     end procedure
      79             : #endif
      80             : 
      81             : #if SK3_ENABLED
      82             :     module procedure getMergedDefCom_D0_SK3
      83             :         use pm_kind, only: SKC => SK3
      84             : #include "pm_arrayMerge@routines.inc.F90"
      85             :     end procedure
      86             : #endif
      87             : 
      88             : #if SK2_ENABLED
      89             :     module procedure getMergedDefCom_D0_SK2
      90             :         use pm_kind, only: SKC => SK2
      91             : #include "pm_arrayMerge@routines.inc.F90"
      92             :     end procedure
      93             : #endif
      94             : 
      95             : #if SK1_ENABLED
      96         200 :     module procedure getMergedDefCom_D0_SK1
      97             :         use pm_kind, only: SKC => SK1
      98             : #include "pm_arrayMerge@routines.inc.F90"
      99             :     end procedure
     100             : #endif
     101             : 
     102             : #undef SK_ENABLED
     103             : 
     104             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     105             : 
     106             : #undef D0_ENABLED
     107             : 
     108             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     109             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     110             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     111             : 
     112             : #define D1_ENABLED 1
     113             : 
     114             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     115             : 
     116             : #define SK_ENABLED 1
     117             : 
     118             : #if SK5_ENABLED
     119             :     module procedure getMergedDefCom_D1_SK5
     120             :         use pm_kind, only: SKC => SK5
     121             : #include "pm_arrayMerge@routines.inc.F90"
     122             :     end procedure
     123             : #endif
     124             : 
     125             : #if SK4_ENABLED
     126             :     module procedure getMergedDefCom_D1_SK4
     127             :         use pm_kind, only: SKC => SK4
     128             : #include "pm_arrayMerge@routines.inc.F90"
     129             :     end procedure
     130             : #endif
     131             : 
     132             : #if SK3_ENABLED
     133             :     module procedure getMergedDefCom_D1_SK3
     134             :         use pm_kind, only: SKC => SK3
     135             : #include "pm_arrayMerge@routines.inc.F90"
     136             :     end procedure
     137             : #endif
     138             : 
     139             : #if SK2_ENABLED
     140             :     module procedure getMergedDefCom_D1_SK2
     141             :         use pm_kind, only: SKC => SK2
     142             : #include "pm_arrayMerge@routines.inc.F90"
     143             :     end procedure
     144             : #endif
     145             : 
     146             : #if SK1_ENABLED
     147         200 :     module procedure getMergedDefCom_D1_SK1
     148             :         use pm_kind, only: SKC => SK1
     149             : #include "pm_arrayMerge@routines.inc.F90"
     150             :     end procedure
     151             : #endif
     152             : 
     153             : #undef SK_ENABLED
     154             : 
     155             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     156             : 
     157             : #define IK_ENABLED 1
     158             : 
     159             : #if IK5_ENABLED
     160         207 :     module procedure getMergedDefCom_D1_IK5
     161             :         use pm_kind, only: IKC => IK5
     162             : #include "pm_arrayMerge@routines.inc.F90"
     163             :     end procedure
     164             : #endif
     165             : 
     166             : #if IK4_ENABLED
     167         207 :     module procedure getMergedDefCom_D1_IK4
     168             :         use pm_kind, only: IKC => IK4
     169             : #include "pm_arrayMerge@routines.inc.F90"
     170             :     end procedure
     171             : #endif
     172             : 
     173             : #if IK3_ENABLED
     174         207 :     module procedure getMergedDefCom_D1_IK3
     175             :         use pm_kind, only: IKC => IK3
     176             : #include "pm_arrayMerge@routines.inc.F90"
     177             :     end procedure
     178             : #endif
     179             : 
     180             : #if IK2_ENABLED
     181         206 :     module procedure getMergedDefCom_D1_IK2
     182             :         use pm_kind, only: IKC => IK2
     183             : #include "pm_arrayMerge@routines.inc.F90"
     184             :     end procedure
     185             : #endif
     186             : 
     187             : #if IK1_ENABLED
     188         207 :     module procedure getMergedDefCom_D1_IK1
     189             :         use pm_kind, only: IKC => IK1
     190             : #include "pm_arrayMerge@routines.inc.F90"
     191             :     end procedure
     192             : #endif
     193             : 
     194             : #undef IK_ENABLED
     195             : 
     196             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     197             : 
     198             : #define LK_ENABLED 1
     199             : 
     200             : #if LK5_ENABLED
     201         200 :     module procedure getMergedDefCom_D1_LK5
     202             :         use pm_kind, only: LKC => LK5
     203             : #include "pm_arrayMerge@routines.inc.F90"
     204             :     end procedure
     205             : #endif
     206             : 
     207             : #if LK4_ENABLED
     208         200 :     module procedure getMergedDefCom_D1_LK4
     209             :         use pm_kind, only: LKC => LK4
     210             : #include "pm_arrayMerge@routines.inc.F90"
     211             :     end procedure
     212             : #endif
     213             : 
     214             : #if LK3_ENABLED
     215         200 :     module procedure getMergedDefCom_D1_LK3
     216             :         use pm_kind, only: LKC => LK3
     217             : #include "pm_arrayMerge@routines.inc.F90"
     218             :     end procedure
     219             : #endif
     220             : 
     221             : #if LK2_ENABLED
     222         200 :     module procedure getMergedDefCom_D1_LK2
     223             :         use pm_kind, only: LKC => LK2
     224             : #include "pm_arrayMerge@routines.inc.F90"
     225             :     end procedure
     226             : #endif
     227             : 
     228             : #if LK1_ENABLED
     229         200 :     module procedure getMergedDefCom_D1_LK1
     230             :         use pm_kind, only: LKC => LK1
     231             : #include "pm_arrayMerge@routines.inc.F90"
     232             :     end procedure
     233             : #endif
     234             : 
     235             : #undef LK_ENABLED
     236             : 
     237             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     238             : 
     239             : #define CK_ENABLED 1
     240             : 
     241             : #if CK5_ENABLED
     242             :     module procedure getMergedDefCom_D1_CK5
     243             :         use pm_kind, only: CKC => CK5
     244             : #include "pm_arrayMerge@routines.inc.F90"
     245             :     end procedure
     246             : #endif
     247             : 
     248             : #if CK4_ENABLED
     249         200 :     module procedure getMergedDefCom_D1_CK4
     250             :         use pm_kind, only: CKC => CK4
     251             : #include "pm_arrayMerge@routines.inc.F90"
     252             :     end procedure
     253             : #endif
     254             : 
     255             : #if CK3_ENABLED
     256         200 :     module procedure getMergedDefCom_D1_CK3
     257             :         use pm_kind, only: CKC => CK3
     258             : #include "pm_arrayMerge@routines.inc.F90"
     259             :     end procedure
     260             : #endif
     261             : 
     262             : #if CK2_ENABLED
     263         200 :     module procedure getMergedDefCom_D1_CK2
     264             :         use pm_kind, only: CKC => CK2
     265             : #include "pm_arrayMerge@routines.inc.F90"
     266             :     end procedure
     267             : #endif
     268             : 
     269             : #if CK1_ENABLED
     270         200 :     module procedure getMergedDefCom_D1_CK1
     271             :         use pm_kind, only: CKC => CK1
     272             : #include "pm_arrayMerge@routines.inc.F90"
     273             :     end procedure
     274             : #endif
     275             : 
     276             : #undef CK_ENABLED
     277             : 
     278             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     279             : 
     280             : #define RK_ENABLED 1
     281             : 
     282             : #if RK5_ENABLED
     283             :     module procedure getMergedDefCom_D1_RK5
     284             :         use pm_kind, only: RKC => RK5
     285             : #include "pm_arrayMerge@routines.inc.F90"
     286             :     end procedure
     287             : #endif
     288             : 
     289             : #if RK4_ENABLED
     290         207 :     module procedure getMergedDefCom_D1_RK4
     291             :         use pm_kind, only: RKC => RK4
     292             : #include "pm_arrayMerge@routines.inc.F90"
     293             :     end procedure
     294             : #endif
     295             : 
     296             : #if RK3_ENABLED
     297         206 :     module procedure getMergedDefCom_D1_RK3
     298             :         use pm_kind, only: RKC => RK3
     299             : #include "pm_arrayMerge@routines.inc.F90"
     300             :     end procedure
     301             : #endif
     302             : 
     303             : #if RK2_ENABLED
     304         207 :     module procedure getMergedDefCom_D1_RK2
     305             :         use pm_kind, only: RKC => RK2
     306             : #include "pm_arrayMerge@routines.inc.F90"
     307             :     end procedure
     308             : #endif
     309             : 
     310             : #if RK1_ENABLED
     311         207 :     module procedure getMergedDefCom_D1_RK1
     312             :         use pm_kind, only: RKC => RK1
     313             : #include "pm_arrayMerge@routines.inc.F90"
     314             :     end procedure
     315             : #endif
     316             : 
     317             : #undef RK_ENABLED
     318             : 
     319             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     320             : 
     321             : ! LCOV_EXCL_START
     322             : !#if  !__GFORTRAN__
     323             : 
     324             : #define PSSK_ENABLED 1
     325             : 
     326             : #if SK5_ENABLED
     327             :     module procedure getMergedDefCom_D1_PSSK5
     328             :         use pm_kind, only: SKC => SK5
     329             : #include "pm_arrayMerge@routines.inc.F90"
     330             :     end procedure
     331             : #endif
     332             : 
     333             : #if SK4_ENABLED
     334             :     module procedure getMergedDefCom_D1_PSSK4
     335             :         use pm_kind, only: SKC => SK4
     336             : #include "pm_arrayMerge@routines.inc.F90"
     337             :     end procedure
     338             : #endif
     339             : 
     340             : #if SK3_ENABLED
     341             :     module procedure getMergedDefCom_D1_PSSK3
     342             :         use pm_kind, only: SKC => SK3
     343             : #include "pm_arrayMerge@routines.inc.F90"
     344             :     end procedure
     345             : #endif
     346             : 
     347             : #if SK2_ENABLED
     348             :     module procedure getMergedDefCom_D1_PSSK2
     349             :         use pm_kind, only: SKC => SK2
     350             : #include "pm_arrayMerge@routines.inc.F90"
     351             :     end procedure
     352             : #endif
     353             : 
     354             : #if SK1_ENABLED
     355             :     module procedure getMergedDefCom_D1_PSSK1
     356             :         use pm_kind, only: SKC => SK1
     357             : #include "pm_arrayMerge@routines.inc.F90"
     358             :     end procedure
     359             : #endif
     360             : 
     361             : #undef PSSK_ENABLED
     362             : 
     363             : !#endif
     364             : ! LCOV_EXCL_STOP
     365             : 
     366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     367             : 
     368             : #define BSSK_ENABLED 1
     369             : 
     370           0 :     module procedure getMergedDefCom_D1_BSSK
     371             :         use pm_kind, only: SKC => SK
     372             : #include "pm_arrayMerge@routines.inc.F90"
     373           0 :     end procedure
     374             : 
     375             : #undef BSSK_ENABLED
     376             : 
     377             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     378             : 
     379             : #undef D1_ENABLED
     380             : 
     381             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     382             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     383             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     384             : 
     385             : #undef DefCom_ENABLED
     386             : 
     387             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     388             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     389             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     390             : 
     391             : #define CusCom_ENABLED 1
     392             : 
     393             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     394             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     396             : 
     397             : #define D0_ENABLED 1
     398             : 
     399             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     400             : 
     401             : #define SK_ENABLED 1
     402             : 
     403             : #if SK5_ENABLED
     404             :     module procedure getMergedCusCom_D0_SK5
     405             :         use pm_kind, only: SKC => SK5
     406             : #include "pm_arrayMerge@routines.inc.F90"
     407             :     end procedure
     408             : #endif
     409             : 
     410             : #if SK4_ENABLED
     411             :     module procedure getMergedCusCom_D0_SK4
     412             :         use pm_kind, only: SKC => SK4
     413             : #include "pm_arrayMerge@routines.inc.F90"
     414             :     end procedure
     415             : #endif
     416             : 
     417             : #if SK3_ENABLED
     418             :     module procedure getMergedCusCom_D0_SK3
     419             :         use pm_kind, only: SKC => SK3
     420             : #include "pm_arrayMerge@routines.inc.F90"
     421             :     end procedure
     422             : #endif
     423             : 
     424             : #if SK2_ENABLED
     425             :     module procedure getMergedCusCom_D0_SK2
     426             :         use pm_kind, only: SKC => SK2
     427             : #include "pm_arrayMerge@routines.inc.F90"
     428             :     end procedure
     429             : #endif
     430             : 
     431             : #if SK1_ENABLED
     432         200 :     module procedure getMergedCusCom_D0_SK1
     433             :         use pm_kind, only: SKC => SK1
     434             : #include "pm_arrayMerge@routines.inc.F90"
     435             :     end procedure
     436             : #endif
     437             : 
     438             : #undef SK_ENABLED
     439             : 
     440             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     441             : 
     442             : #undef D0_ENABLED
     443             : 
     444             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     445             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     446             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     447             : 
     448             : #define D1_ENABLED 1
     449             : 
     450             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     451             : 
     452             : #define SK_ENABLED 1
     453             : 
     454             : #if SK5_ENABLED
     455             :     module procedure getMergedCusCom_D1_SK5
     456             :         use pm_kind, only: SKC => SK5
     457             : #include "pm_arrayMerge@routines.inc.F90"
     458             :     end procedure
     459             : #endif
     460             : 
     461             : #if SK4_ENABLED
     462             :     module procedure getMergedCusCom_D1_SK4
     463             :         use pm_kind, only: SKC => SK4
     464             : #include "pm_arrayMerge@routines.inc.F90"
     465             :     end procedure
     466             : #endif
     467             : 
     468             : #if SK3_ENABLED
     469             :     module procedure getMergedCusCom_D1_SK3
     470             :         use pm_kind, only: SKC => SK3
     471             : #include "pm_arrayMerge@routines.inc.F90"
     472             :     end procedure
     473             : #endif
     474             : 
     475             : #if SK2_ENABLED
     476             :     module procedure getMergedCusCom_D1_SK2
     477             :         use pm_kind, only: SKC => SK2
     478             : #include "pm_arrayMerge@routines.inc.F90"
     479             :     end procedure
     480             : #endif
     481             : 
     482             : #if SK1_ENABLED
     483         200 :     module procedure getMergedCusCom_D1_SK1
     484             :         use pm_kind, only: SKC => SK1
     485             : #include "pm_arrayMerge@routines.inc.F90"
     486             :     end procedure
     487             : #endif
     488             : 
     489             : #undef SK_ENABLED
     490             : 
     491             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     492             : 
     493             : #define IK_ENABLED 1
     494             : 
     495             : #if IK5_ENABLED
     496         200 :     module procedure getMergedCusCom_D1_IK5
     497             :         use pm_kind, only: IKC => IK5
     498             : #include "pm_arrayMerge@routines.inc.F90"
     499             :     end procedure
     500             : #endif
     501             : 
     502             : #if IK4_ENABLED
     503         200 :     module procedure getMergedCusCom_D1_IK4
     504             :         use pm_kind, only: IKC => IK4
     505             : #include "pm_arrayMerge@routines.inc.F90"
     506             :     end procedure
     507             : #endif
     508             : 
     509             : #if IK3_ENABLED
     510         200 :     module procedure getMergedCusCom_D1_IK3
     511             :         use pm_kind, only: IKC => IK3
     512             : #include "pm_arrayMerge@routines.inc.F90"
     513             :     end procedure
     514             : #endif
     515             : 
     516             : #if IK2_ENABLED
     517         200 :     module procedure getMergedCusCom_D1_IK2
     518             :         use pm_kind, only: IKC => IK2
     519             : #include "pm_arrayMerge@routines.inc.F90"
     520             :     end procedure
     521             : #endif
     522             : 
     523             : #if IK1_ENABLED
     524         200 :     module procedure getMergedCusCom_D1_IK1
     525             :         use pm_kind, only: IKC => IK1
     526             : #include "pm_arrayMerge@routines.inc.F90"
     527             :     end procedure
     528             : #endif
     529             : 
     530             : #undef IK_ENABLED
     531             : 
     532             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     533             : 
     534             : #define LK_ENABLED 1
     535             : 
     536             : #if LK5_ENABLED
     537         200 :     module procedure getMergedCusCom_D1_LK5
     538             :         use pm_kind, only: LKC => LK5
     539             : #include "pm_arrayMerge@routines.inc.F90"
     540             :     end procedure
     541             : #endif
     542             : 
     543             : #if LK4_ENABLED
     544         200 :     module procedure getMergedCusCom_D1_LK4
     545             :         use pm_kind, only: LKC => LK4
     546             : #include "pm_arrayMerge@routines.inc.F90"
     547             :     end procedure
     548             : #endif
     549             : 
     550             : #if LK3_ENABLED
     551         200 :     module procedure getMergedCusCom_D1_LK3
     552             :         use pm_kind, only: LKC => LK3
     553             : #include "pm_arrayMerge@routines.inc.F90"
     554             :     end procedure
     555             : #endif
     556             : 
     557             : #if LK2_ENABLED
     558         200 :     module procedure getMergedCusCom_D1_LK2
     559             :         use pm_kind, only: LKC => LK2
     560             : #include "pm_arrayMerge@routines.inc.F90"
     561             :     end procedure
     562             : #endif
     563             : 
     564             : #if LK1_ENABLED
     565         200 :     module procedure getMergedCusCom_D1_LK1
     566             :         use pm_kind, only: LKC => LK1
     567             : #include "pm_arrayMerge@routines.inc.F90"
     568             :     end procedure
     569             : #endif
     570             : 
     571             : #undef LK_ENABLED
     572             : 
     573             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     574             : 
     575             : #define CK_ENABLED 1
     576             : 
     577             : #if CK5_ENABLED
     578             :     module procedure getMergedCusCom_D1_CK5
     579             :         use pm_kind, only: CKC => CK5
     580             : #include "pm_arrayMerge@routines.inc.F90"
     581             :     end procedure
     582             : #endif
     583             : 
     584             : #if CK4_ENABLED
     585         200 :     module procedure getMergedCusCom_D1_CK4
     586             :         use pm_kind, only: CKC => CK4
     587             : #include "pm_arrayMerge@routines.inc.F90"
     588             :     end procedure
     589             : #endif
     590             : 
     591             : #if CK3_ENABLED
     592         200 :     module procedure getMergedCusCom_D1_CK3
     593             :         use pm_kind, only: CKC => CK3
     594             : #include "pm_arrayMerge@routines.inc.F90"
     595             :     end procedure
     596             : #endif
     597             : 
     598             : #if CK2_ENABLED
     599         200 :     module procedure getMergedCusCom_D1_CK2
     600             :         use pm_kind, only: CKC => CK2
     601             : #include "pm_arrayMerge@routines.inc.F90"
     602             :     end procedure
     603             : #endif
     604             : 
     605             : #if CK1_ENABLED
     606         200 :     module procedure getMergedCusCom_D1_CK1
     607             :         use pm_kind, only: CKC => CK1
     608             : #include "pm_arrayMerge@routines.inc.F90"
     609             :     end procedure
     610             : #endif
     611             : 
     612             : #undef CK_ENABLED
     613             : 
     614             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     615             : 
     616             : #define RK_ENABLED 1
     617             : 
     618             : #if RK5_ENABLED
     619             :     module procedure getMergedCusCom_D1_RK5
     620             :         use pm_kind, only: RKC => RK5
     621             : #include "pm_arrayMerge@routines.inc.F90"
     622             :     end procedure
     623             : #endif
     624             : 
     625             : #if RK4_ENABLED
     626         200 :     module procedure getMergedCusCom_D1_RK4
     627             :         use pm_kind, only: RKC => RK4
     628             : #include "pm_arrayMerge@routines.inc.F90"
     629             :     end procedure
     630             : #endif
     631             : 
     632             : #if RK3_ENABLED
     633         200 :     module procedure getMergedCusCom_D1_RK3
     634             :         use pm_kind, only: RKC => RK3
     635             : #include "pm_arrayMerge@routines.inc.F90"
     636             :     end procedure
     637             : #endif
     638             : 
     639             : #if RK2_ENABLED
     640         200 :     module procedure getMergedCusCom_D1_RK2
     641             :         use pm_kind, only: RKC => RK2
     642             : #include "pm_arrayMerge@routines.inc.F90"
     643             :     end procedure
     644             : #endif
     645             : 
     646             : #if RK1_ENABLED
     647         200 :     module procedure getMergedCusCom_D1_RK1
     648             :         use pm_kind, only: RKC => RK1
     649             : #include "pm_arrayMerge@routines.inc.F90"
     650             :     end procedure
     651             : #endif
     652             : 
     653             : #undef RK_ENABLED
     654             : 
     655             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     656             : 
     657             : ! LCOV_EXCL_START
     658             : !#if  !__GFORTRAN__
     659             : 
     660             : #define PSSK_ENABLED 1
     661             : 
     662             : #if SK5_ENABLED
     663             :     module procedure getMergedCusCom_D1_PSSK5
     664             :         use pm_kind, only: SKC => SK5
     665             : #include "pm_arrayMerge@routines.inc.F90"
     666             :     end procedure
     667             : #endif
     668             : 
     669             : #if SK4_ENABLED
     670             :     module procedure getMergedCusCom_D1_PSSK4
     671             :         use pm_kind, only: SKC => SK4
     672             : #include "pm_arrayMerge@routines.inc.F90"
     673             :     end procedure
     674             : #endif
     675             : 
     676             : #if SK3_ENABLED
     677             :     module procedure getMergedCusCom_D1_PSSK3
     678             :         use pm_kind, only: SKC => SK3
     679             : #include "pm_arrayMerge@routines.inc.F90"
     680             :     end procedure
     681             : #endif
     682             : 
     683             : #if SK2_ENABLED
     684             :     module procedure getMergedCusCom_D1_PSSK2
     685             :         use pm_kind, only: SKC => SK2
     686             : #include "pm_arrayMerge@routines.inc.F90"
     687             :     end procedure
     688             : #endif
     689             : 
     690             : #if SK1_ENABLED
     691             :     module procedure getMergedCusCom_D1_PSSK1
     692             :         use pm_kind, only: SKC => SK1
     693             : #include "pm_arrayMerge@routines.inc.F90"
     694             :     end procedure
     695             : #endif
     696             : 
     697             : #undef PSSK_ENABLED
     698             : 
     699             : !#endif
     700             : ! LCOV_EXCL_STOP
     701             : 
     702             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     703             : 
     704             : #define BSSK_ENABLED 1
     705             : 
     706           0 :     module procedure getMergedCusCom_D1_BSSK
     707             :         use pm_kind, only: SKC => SK
     708             : #include "pm_arrayMerge@routines.inc.F90"
     709           0 :     end procedure
     710             : 
     711             : #undef BSSK_ENABLED
     712             : 
     713             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     714             : 
     715             : #undef D1_ENABLED
     716             : 
     717             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     718             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     719             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     720             : 
     721             : #undef CusCom_ENABLED
     722             : 
     723             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     724             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     725             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     726             : 
     727             : #undef getMerged_ENABLED
     728             : 
     729             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     730             : 
     731             : #define setMerged_ENABLED 1
     732             : 
     733             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     734             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     735             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     736             : 
     737             : #define DefCom_ENABLED 1
     738             : 
     739             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     740             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     741             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     742             : 
     743             : #define D0_ENABLED 1
     744             : 
     745             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     746             : 
     747             : #define SK_ENABLED 1
     748             : 
     749             : #if SK5_ENABLED
     750             :     module procedure setMergedDefCom_D0_SK5
     751             :         use pm_kind, only: SKC => SK5
     752             : #include "pm_arrayMerge@routines.inc.F90"
     753             :     end procedure
     754             : #endif
     755             : 
     756             : #if SK4_ENABLED
     757             :     module procedure setMergedDefCom_D0_SK4
     758             :         use pm_kind, only: SKC => SK4
     759             : #include "pm_arrayMerge@routines.inc.F90"
     760             :     end procedure
     761             : #endif
     762             : 
     763             : #if SK3_ENABLED
     764             :     module procedure setMergedDefCom_D0_SK3
     765             :         use pm_kind, only: SKC => SK3
     766             : #include "pm_arrayMerge@routines.inc.F90"
     767             :     end procedure
     768             : #endif
     769             : 
     770             : #if SK2_ENABLED
     771             :     module procedure setMergedDefCom_D0_SK2
     772             :         use pm_kind, only: SKC => SK2
     773             : #include "pm_arrayMerge@routines.inc.F90"
     774             :     end procedure
     775             : #endif
     776             : 
     777             : #if SK1_ENABLED
     778        2703 :     module procedure setMergedDefCom_D0_SK1
     779             :         use pm_kind, only: SKC => SK1
     780             : #include "pm_arrayMerge@routines.inc.F90"
     781             :     end procedure
     782             : #endif
     783             : 
     784             : #undef SK_ENABLED
     785             : 
     786             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     787             : 
     788             : #undef D0_ENABLED
     789             : 
     790             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     791             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     792             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     793             : 
     794             : #define D1_ENABLED 1
     795             : 
     796             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     797             : 
     798             : #define SK_ENABLED 1
     799             : 
     800             : #if SK5_ENABLED
     801             :     module procedure setMergedDefCom_D1_SK5
     802             :         use pm_kind, only: SKC => SK5
     803             : #include "pm_arrayMerge@routines.inc.F90"
     804             :     end procedure
     805             : #endif
     806             : 
     807             : #if SK4_ENABLED
     808             :     module procedure setMergedDefCom_D1_SK4
     809             :         use pm_kind, only: SKC => SK4
     810             : #include "pm_arrayMerge@routines.inc.F90"
     811             :     end procedure
     812             : #endif
     813             : 
     814             : #if SK3_ENABLED
     815             :     module procedure setMergedDefCom_D1_SK3
     816             :         use pm_kind, only: SKC => SK3
     817             : #include "pm_arrayMerge@routines.inc.F90"
     818             :     end procedure
     819             : #endif
     820             : 
     821             : #if SK2_ENABLED
     822             :     module procedure setMergedDefCom_D1_SK2
     823             :         use pm_kind, only: SKC => SK2
     824             : #include "pm_arrayMerge@routines.inc.F90"
     825             :     end procedure
     826             : #endif
     827             : 
     828             : #if SK1_ENABLED
     829        2684 :     module procedure setMergedDefCom_D1_SK1
     830             :         use pm_kind, only: SKC => SK1
     831             : #include "pm_arrayMerge@routines.inc.F90"
     832             :     end procedure
     833             : #endif
     834             : 
     835             : #undef SK_ENABLED
     836             : 
     837             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     838             : 
     839             : #define IK_ENABLED 1
     840             : 
     841             : #if IK5_ENABLED
     842        2206 :     module procedure setMergedDefCom_D1_IK5
     843             :         use pm_kind, only: IKC => IK5
     844             : #include "pm_arrayMerge@routines.inc.F90"
     845             :     end procedure
     846             : #endif
     847             : 
     848             : #if IK4_ENABLED
     849        2335 :     module procedure setMergedDefCom_D1_IK4
     850             :         use pm_kind, only: IKC => IK4
     851             : #include "pm_arrayMerge@routines.inc.F90"
     852             :     end procedure
     853             : #endif
     854             : 
     855             : #if IK3_ENABLED
     856        2925 :     module procedure setMergedDefCom_D1_IK3
     857             :         use pm_kind, only: IKC => IK3
     858             : #include "pm_arrayMerge@routines.inc.F90"
     859             :     end procedure
     860             : #endif
     861             : 
     862             : #if IK2_ENABLED
     863        2619 :     module procedure setMergedDefCom_D1_IK2
     864             :         use pm_kind, only: IKC => IK2
     865             : #include "pm_arrayMerge@routines.inc.F90"
     866             :     end procedure
     867             : #endif
     868             : 
     869             : #if IK1_ENABLED
     870        2771 :     module procedure setMergedDefCom_D1_IK1
     871             :         use pm_kind, only: IKC => IK1
     872             : #include "pm_arrayMerge@routines.inc.F90"
     873             :     end procedure
     874             : #endif
     875             : 
     876             : #undef IK_ENABLED
     877             : 
     878             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     879             : 
     880             : #define LK_ENABLED 1
     881             : 
     882             : #if LK5_ENABLED
     883        2361 :     module procedure setMergedDefCom_D1_LK5
     884             :         use pm_kind, only: LKC => LK5
     885             : #include "pm_arrayMerge@routines.inc.F90"
     886             :     end procedure
     887             : #endif
     888             : 
     889             : #if LK4_ENABLED
     890        2438 :     module procedure setMergedDefCom_D1_LK4
     891             :         use pm_kind, only: LKC => LK4
     892             : #include "pm_arrayMerge@routines.inc.F90"
     893             :     end procedure
     894             : #endif
     895             : 
     896             : #if LK3_ENABLED
     897        2669 :     module procedure setMergedDefCom_D1_LK3
     898             :         use pm_kind, only: LKC => LK3
     899             : #include "pm_arrayMerge@routines.inc.F90"
     900             :     end procedure
     901             : #endif
     902             : 
     903             : #if LK2_ENABLED
     904        2416 :     module procedure setMergedDefCom_D1_LK2
     905             :         use pm_kind, only: LKC => LK2
     906             : #include "pm_arrayMerge@routines.inc.F90"
     907             :     end procedure
     908             : #endif
     909             : 
     910             : #if LK1_ENABLED
     911        2466 :     module procedure setMergedDefCom_D1_LK1
     912             :         use pm_kind, only: LKC => LK1
     913             : #include "pm_arrayMerge@routines.inc.F90"
     914             :     end procedure
     915             : #endif
     916             : 
     917             : #undef LK_ENABLED
     918             : 
     919             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     920             : 
     921             : #define CK_ENABLED 1
     922             : 
     923             : #if CK5_ENABLED
     924             :     module procedure setMergedDefCom_D1_CK5
     925             :         use pm_kind, only: CKC => CK5
     926             : #include "pm_arrayMerge@routines.inc.F90"
     927             :     end procedure
     928             : #endif
     929             : 
     930             : #if CK4_ENABLED
     931        2776 :     module procedure setMergedDefCom_D1_CK4
     932             :         use pm_kind, only: CKC => CK4
     933             : #include "pm_arrayMerge@routines.inc.F90"
     934             :     end procedure
     935             : #endif
     936             : 
     937             : #if CK3_ENABLED
     938        2383 :     module procedure setMergedDefCom_D1_CK3
     939             :         use pm_kind, only: CKC => CK3
     940             : #include "pm_arrayMerge@routines.inc.F90"
     941             :     end procedure
     942             : #endif
     943             : 
     944             : #if CK2_ENABLED
     945        2337 :     module procedure setMergedDefCom_D1_CK2
     946             :         use pm_kind, only: CKC => CK2
     947             : #include "pm_arrayMerge@routines.inc.F90"
     948             :     end procedure
     949             : #endif
     950             : 
     951             : #if CK1_ENABLED
     952        2411 :     module procedure setMergedDefCom_D1_CK1
     953             :         use pm_kind, only: CKC => CK1
     954             : #include "pm_arrayMerge@routines.inc.F90"
     955             :     end procedure
     956             : #endif
     957             : 
     958             : #undef CK_ENABLED
     959             : 
     960             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     961             : 
     962             : #define RK_ENABLED 1
     963             : 
     964             : #if RK5_ENABLED
     965             :     module procedure setMergedDefCom_D1_RK5
     966             :         use pm_kind, only: RKC => RK5
     967             : #include "pm_arrayMerge@routines.inc.F90"
     968             :     end procedure
     969             : #endif
     970             : 
     971             : #if RK4_ENABLED
     972        2850 :     module procedure setMergedDefCom_D1_RK4
     973             :         use pm_kind, only: RKC => RK4
     974             : #include "pm_arrayMerge@routines.inc.F90"
     975             :     end procedure
     976             : #endif
     977             : 
     978             : #if RK3_ENABLED
     979        2682 :     module procedure setMergedDefCom_D1_RK3
     980             :         use pm_kind, only: RKC => RK3
     981             : #include "pm_arrayMerge@routines.inc.F90"
     982             :     end procedure
     983             : #endif
     984             : 
     985             : #if RK2_ENABLED
     986        2198 :     module procedure setMergedDefCom_D1_RK2
     987             :         use pm_kind, only: RKC => RK2
     988             : #include "pm_arrayMerge@routines.inc.F90"
     989             :     end procedure
     990             : #endif
     991             : 
     992             : #if RK1_ENABLED
     993        2694 :     module procedure setMergedDefCom_D1_RK1
     994             :         use pm_kind, only: RKC => RK1
     995             : #include "pm_arrayMerge@routines.inc.F90"
     996             :     end procedure
     997             : #endif
     998             : 
     999             : #undef RK_ENABLED
    1000             : 
    1001             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1002             : 
    1003             : ! LCOV_EXCL_START
    1004             : !#if  !__GFORTRAN__
    1005             : 
    1006             : #define PSSK_ENABLED 1
    1007             : 
    1008             : #if SK5_ENABLED
    1009             :     module procedure setMergedDefCom_D1_PSSK5
    1010             :         use pm_kind, only: SKC => SK5
    1011             : #include "pm_arrayMerge@routines.inc.F90"
    1012             :     end procedure
    1013             : #endif
    1014             : 
    1015             : #if SK4_ENABLED
    1016             :     module procedure setMergedDefCom_D1_PSSK4
    1017             :         use pm_kind, only: SKC => SK4
    1018             : #include "pm_arrayMerge@routines.inc.F90"
    1019             :     end procedure
    1020             : #endif
    1021             : 
    1022             : #if SK3_ENABLED
    1023             :     module procedure setMergedDefCom_D1_PSSK3
    1024             :         use pm_kind, only: SKC => SK3
    1025             : #include "pm_arrayMerge@routines.inc.F90"
    1026             :     end procedure
    1027             : #endif
    1028             : 
    1029             : #if SK2_ENABLED
    1030             :     module procedure setMergedDefCom_D1_PSSK2
    1031             :         use pm_kind, only: SKC => SK2
    1032             : #include "pm_arrayMerge@routines.inc.F90"
    1033             :     end procedure
    1034             : #endif
    1035             : 
    1036             : #if SK1_ENABLED
    1037             :     module procedure setMergedDefCom_D1_PSSK1
    1038             :         use pm_kind, only: SKC => SK1
    1039             : #include "pm_arrayMerge@routines.inc.F90"
    1040             :     end procedure
    1041             : #endif
    1042             : 
    1043             : #undef PSSK_ENABLED
    1044             : 
    1045             : !#endif
    1046             : ! LCOV_EXCL_STOP
    1047             : 
    1048             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1049             : 
    1050             : #define BSSK_ENABLED 1
    1051             : 
    1052           0 :     module procedure setMergedDefCom_D1_BSSK
    1053             :         use pm_kind, only: SKC => SK
    1054             : #include "pm_arrayMerge@routines.inc.F90"
    1055             :     end procedure
    1056             : 
    1057             : #undef BSSK_ENABLED
    1058             : 
    1059             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1060             : 
    1061             : #undef D1_ENABLED
    1062             : 
    1063             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1064             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1065             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1066             : 
    1067             : #undef DefCom_ENABLED
    1068             : 
    1069             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1070             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1071             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1072             : 
    1073             : #define CusCom_ENABLED 1
    1074             : 
    1075             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1076             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1077             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1078             : 
    1079             : #define D0_ENABLED 1
    1080             : 
    1081             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1082             : 
    1083             : #define SK_ENABLED 1
    1084             : 
    1085             : #if SK5_ENABLED
    1086             :     module procedure setMergedCusCom_D0_SK5
    1087             :         use pm_kind, only: SKC => SK5
    1088             : #include "pm_arrayMerge@routines.inc.F90"
    1089             :     end procedure
    1090             : #endif
    1091             : 
    1092             : #if SK4_ENABLED
    1093             :     module procedure setMergedCusCom_D0_SK4
    1094             :         use pm_kind, only: SKC => SK4
    1095             : #include "pm_arrayMerge@routines.inc.F90"
    1096             :     end procedure
    1097             : #endif
    1098             : 
    1099             : #if SK3_ENABLED
    1100             :     module procedure setMergedCusCom_D0_SK3
    1101             :         use pm_kind, only: SKC => SK3
    1102             : #include "pm_arrayMerge@routines.inc.F90"
    1103             :     end procedure
    1104             : #endif
    1105             : 
    1106             : #if SK2_ENABLED
    1107             :     module procedure setMergedCusCom_D0_SK2
    1108             :         use pm_kind, only: SKC => SK2
    1109             : #include "pm_arrayMerge@routines.inc.F90"
    1110             :     end procedure
    1111             : #endif
    1112             : 
    1113             : #if SK1_ENABLED
    1114        2681 :     module procedure setMergedCusCom_D0_SK1
    1115             :         use pm_kind, only: SKC => SK1
    1116             : #include "pm_arrayMerge@routines.inc.F90"
    1117             :     end procedure
    1118             : #endif
    1119             : 
    1120             : #undef SK_ENABLED
    1121             : 
    1122             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1123             : 
    1124             : #undef D0_ENABLED
    1125             : 
    1126             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1127             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1128             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1129             : 
    1130             : #define D1_ENABLED 1
    1131             : 
    1132             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1133             : 
    1134             : #define SK_ENABLED 1
    1135             : 
    1136             : #if SK5_ENABLED
    1137             :     module procedure setMergedCusCom_D1_SK5
    1138             :         use pm_kind, only: SKC => SK5
    1139             : #include "pm_arrayMerge@routines.inc.F90"
    1140             :     end procedure
    1141             : #endif
    1142             : 
    1143             : #if SK4_ENABLED
    1144             :     module procedure setMergedCusCom_D1_SK4
    1145             :         use pm_kind, only: SKC => SK4
    1146             : #include "pm_arrayMerge@routines.inc.F90"
    1147             :     end procedure
    1148             : #endif
    1149             : 
    1150             : #if SK3_ENABLED
    1151             :     module procedure setMergedCusCom_D1_SK3
    1152             :         use pm_kind, only: SKC => SK3
    1153             : #include "pm_arrayMerge@routines.inc.F90"
    1154             :     end procedure
    1155             : #endif
    1156             : 
    1157             : #if SK2_ENABLED
    1158             :     module procedure setMergedCusCom_D1_SK2
    1159             :         use pm_kind, only: SKC => SK2
    1160             : #include "pm_arrayMerge@routines.inc.F90"
    1161             :     end procedure
    1162             : #endif
    1163             : 
    1164             : #if SK1_ENABLED
    1165        2466 :     module procedure setMergedCusCom_D1_SK1
    1166             :         use pm_kind, only: SKC => SK1
    1167             : #include "pm_arrayMerge@routines.inc.F90"
    1168             :     end procedure
    1169             : #endif
    1170             : 
    1171             : #undef SK_ENABLED
    1172             : 
    1173             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1174             : 
    1175             : #define IK_ENABLED 1
    1176             : 
    1177             : #if IK5_ENABLED
    1178        2454 :     module procedure setMergedCusCom_D1_IK5
    1179             :         use pm_kind, only: IKC => IK5
    1180             : #include "pm_arrayMerge@routines.inc.F90"
    1181             :     end procedure
    1182             : #endif
    1183             : 
    1184             : #if IK4_ENABLED
    1185        2475 :     module procedure setMergedCusCom_D1_IK4
    1186             :         use pm_kind, only: IKC => IK4
    1187             : #include "pm_arrayMerge@routines.inc.F90"
    1188             :     end procedure
    1189             : #endif
    1190             : 
    1191             : #if IK3_ENABLED
    1192        2480 :     module procedure setMergedCusCom_D1_IK3
    1193             :         use pm_kind, only: IKC => IK3
    1194             : #include "pm_arrayMerge@routines.inc.F90"
    1195             :     end procedure
    1196             : #endif
    1197             : 
    1198             : #if IK2_ENABLED
    1199        2446 :     module procedure setMergedCusCom_D1_IK2
    1200             :         use pm_kind, only: IKC => IK2
    1201             : #include "pm_arrayMerge@routines.inc.F90"
    1202             :     end procedure
    1203             : #endif
    1204             : 
    1205             : #if IK1_ENABLED
    1206        2657 :     module procedure setMergedCusCom_D1_IK1
    1207             :         use pm_kind, only: IKC => IK1
    1208             : #include "pm_arrayMerge@routines.inc.F90"
    1209             :     end procedure
    1210             : #endif
    1211             : 
    1212             : #undef IK_ENABLED
    1213             : 
    1214             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1215             : 
    1216             : #define LK_ENABLED 1
    1217             : 
    1218             : #if LK5_ENABLED
    1219        2554 :     module procedure setMergedCusCom_D1_LK5
    1220             :         use pm_kind, only: LKC => LK5
    1221             : #include "pm_arrayMerge@routines.inc.F90"
    1222             :     end procedure
    1223             : #endif
    1224             : 
    1225             : #if LK4_ENABLED
    1226        2530 :     module procedure setMergedCusCom_D1_LK4
    1227             :         use pm_kind, only: LKC => LK4
    1228             : #include "pm_arrayMerge@routines.inc.F90"
    1229             :     end procedure
    1230             : #endif
    1231             : 
    1232             : #if LK3_ENABLED
    1233        2902 :     module procedure setMergedCusCom_D1_LK3
    1234             :         use pm_kind, only: LKC => LK3
    1235             : #include "pm_arrayMerge@routines.inc.F90"
    1236             :     end procedure
    1237             : #endif
    1238             : 
    1239             : #if LK2_ENABLED
    1240        2055 :     module procedure setMergedCusCom_D1_LK2
    1241             :         use pm_kind, only: LKC => LK2
    1242             : #include "pm_arrayMerge@routines.inc.F90"
    1243             :     end procedure
    1244             : #endif
    1245             : 
    1246             : #if LK1_ENABLED
    1247        2413 :     module procedure setMergedCusCom_D1_LK1
    1248             :         use pm_kind, only: LKC => LK1
    1249             : #include "pm_arrayMerge@routines.inc.F90"
    1250             :     end procedure
    1251             : #endif
    1252             : 
    1253             : #undef LK_ENABLED
    1254             : 
    1255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1256             : 
    1257             : #define CK_ENABLED 1
    1258             : 
    1259             : #if CK5_ENABLED
    1260             :     module procedure setMergedCusCom_D1_CK5
    1261             :         use pm_kind, only: CKC => CK5
    1262             : #include "pm_arrayMerge@routines.inc.F90"
    1263             :     end procedure
    1264             : #endif
    1265             : 
    1266             : #if CK4_ENABLED
    1267        2603 :     module procedure setMergedCusCom_D1_CK4
    1268             :         use pm_kind, only: CKC => CK4
    1269             : #include "pm_arrayMerge@routines.inc.F90"
    1270             :     end procedure
    1271             : #endif
    1272             : 
    1273             : #if CK3_ENABLED
    1274        2450 :     module procedure setMergedCusCom_D1_CK3
    1275             :         use pm_kind, only: CKC => CK3
    1276             : #include "pm_arrayMerge@routines.inc.F90"
    1277             :     end procedure
    1278             : #endif
    1279             : 
    1280             : #if CK2_ENABLED
    1281        2245 :     module procedure setMergedCusCom_D1_CK2
    1282             :         use pm_kind, only: CKC => CK2
    1283             : #include "pm_arrayMerge@routines.inc.F90"
    1284             :     end procedure
    1285             : #endif
    1286             : 
    1287             : #if CK1_ENABLED
    1288        2250 :     module procedure setMergedCusCom_D1_CK1
    1289             :         use pm_kind, only: CKC => CK1
    1290             : #include "pm_arrayMerge@routines.inc.F90"
    1291             :     end procedure
    1292             : #endif
    1293             : 
    1294             : #undef CK_ENABLED
    1295             : 
    1296             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1297             : 
    1298             : #define RK_ENABLED 1
    1299             : 
    1300             : #if RK5_ENABLED
    1301             :     module procedure setMergedCusCom_D1_RK5
    1302             :         use pm_kind, only: RKC => RK5
    1303             : #include "pm_arrayMerge@routines.inc.F90"
    1304             :     end procedure
    1305             : #endif
    1306             : 
    1307             : #if RK4_ENABLED
    1308        2736 :     module procedure setMergedCusCom_D1_RK4
    1309             :         use pm_kind, only: RKC => RK4
    1310             : #include "pm_arrayMerge@routines.inc.F90"
    1311             :     end procedure
    1312             : #endif
    1313             : 
    1314             : #if RK3_ENABLED
    1315        2352 :     module procedure setMergedCusCom_D1_RK3
    1316             :         use pm_kind, only: RKC => RK3
    1317             : #include "pm_arrayMerge@routines.inc.F90"
    1318             :     end procedure
    1319             : #endif
    1320             : 
    1321             : #if RK2_ENABLED
    1322        2271 :     module procedure setMergedCusCom_D1_RK2
    1323             :         use pm_kind, only: RKC => RK2
    1324             : #include "pm_arrayMerge@routines.inc.F90"
    1325             :     end procedure
    1326             : #endif
    1327             : 
    1328             : #if RK1_ENABLED
    1329        2939 :     module procedure setMergedCusCom_D1_RK1
    1330             :         use pm_kind, only: RKC => RK1
    1331             : #include "pm_arrayMerge@routines.inc.F90"
    1332             :     end procedure
    1333             : #endif
    1334             : 
    1335             : #undef RK_ENABLED
    1336             : 
    1337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1338             : 
    1339             : ! LCOV_EXCL_START
    1340             : !#if  !__GFORTRAN__
    1341             : 
    1342             : #define PSSK_ENABLED 1
    1343             : 
    1344             : #if SK5_ENABLED
    1345             :     module procedure setMergedCusCom_D1_PSSK5
    1346             :         use pm_kind, only: SKC => SK5
    1347             : #include "pm_arrayMerge@routines.inc.F90"
    1348             :     end procedure
    1349             : #endif
    1350             : 
    1351             : #if SK4_ENABLED
    1352             :     module procedure setMergedCusCom_D1_PSSK4
    1353             :         use pm_kind, only: SKC => SK4
    1354             : #include "pm_arrayMerge@routines.inc.F90"
    1355             :     end procedure
    1356             : #endif
    1357             : 
    1358             : #if SK3_ENABLED
    1359             :     module procedure setMergedCusCom_D1_PSSK3
    1360             :         use pm_kind, only: SKC => SK3
    1361             : #include "pm_arrayMerge@routines.inc.F90"
    1362             :     end procedure
    1363             : #endif
    1364             : 
    1365             : #if SK2_ENABLED
    1366             :     module procedure setMergedCusCom_D1_PSSK2
    1367             :         use pm_kind, only: SKC => SK2
    1368             : #include "pm_arrayMerge@routines.inc.F90"
    1369             :     end procedure
    1370             : #endif
    1371             : 
    1372             : #if SK1_ENABLED
    1373             :     module procedure setMergedCusCom_D1_PSSK1
    1374             :         use pm_kind, only: SKC => SK1
    1375             : #include "pm_arrayMerge@routines.inc.F90"
    1376             :     end procedure
    1377             : #endif
    1378             : 
    1379             : #undef PSSK_ENABLED
    1380             : 
    1381             : !#endif
    1382             : ! LCOV_EXCL_STOP
    1383             : 
    1384             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1385             : 
    1386             : #define BSSK_ENABLED 1
    1387             : 
    1388           0 :     module procedure setMergedCusCom_D1_BSSK
    1389             :         use pm_kind, only: SKC => SK
    1390             : #include "pm_arrayMerge@routines.inc.F90"
    1391             :     end procedure
    1392             : 
    1393             : #undef BSSK_ENABLED
    1394             : 
    1395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1396             : 
    1397             : #undef D1_ENABLED
    1398             : 
    1399             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1400             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1402             : 
    1403             : #undef CusCom_ENABLED
    1404             : 
    1405             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1406             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1407             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1408             : 
    1409             : #undef setMerged_ENABLED
    1410             : 
    1411             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1412             : 
    1413             : #undef CHECK_ASSERTION
    1414             : 
    1415             : end submodule routines

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