https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_distanceMahal@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 84 320 26.2 %
Date: 2024-04-08 03:18:57 Functions: 42 160 26.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_distanceMahal](@ref pm_distanceMahal).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_distanceMahal) routines ! LCOV_EXCL_LINE
      28             : 
      29             : #if CHECK_ENABLED
      30             :     use pm_err, only: getFine
      31             :     use pm_val2str, only: getStr
      32             :     use pm_err, only: setAsserted
      33             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
      34             : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
      35             : #else
      36             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
      37             : #endif
      38             : 
      39             :     use pm_matrixClass, only: isMatClass, posdefmat
      40             :     implicit none
      41             : 
      42             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      43             : 
      44             : contains
      45             : 
      46             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      47             : 
      48             : #define getMahalSq_ENABLED 1
      49             : 
      50             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      53             : 
      54             : #define D0_ENABLED 1
      55             : 
      56             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      57             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      58             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      59             : 
      60             : #define InvDef_ENABLED 1
      61             : 
      62             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      63             : 
      64             : #define CK_ENABLED 1
      65             : 
      66             : #if CK5_ENABLED
      67             :     module procedure getMahalSqEleInvDef_D0_CK5
      68             :         use pm_kind, only: CKC => CK5
      69             : #include "pm_distanceMahal@routines.inc.F90"
      70             :     end procedure
      71             : #endif
      72             : 
      73             : #if CK4_ENABLED
      74           0 :     module procedure getMahalSqEleInvDef_D0_CK4
      75             :         use pm_kind, only: CKC => CK4
      76             : #include "pm_distanceMahal@routines.inc.F90"
      77           0 :     end procedure
      78             : #endif
      79             : 
      80             : #if CK3_ENABLED
      81           0 :     module procedure getMahalSqEleInvDef_D0_CK3
      82             :         use pm_kind, only: CKC => CK3
      83             : #include "pm_distanceMahal@routines.inc.F90"
      84           0 :     end procedure
      85             : #endif
      86             : 
      87             : #if CK2_ENABLED
      88           0 :     module procedure getMahalSqEleInvDef_D0_CK2
      89             :         use pm_kind, only: CKC => CK2
      90             : #include "pm_distanceMahal@routines.inc.F90"
      91           0 :     end procedure
      92             : #endif
      93             : 
      94             : #if CK1_ENABLED
      95           6 :     module procedure getMahalSqEleInvDef_D0_CK1
      96             :         use pm_kind, only: CKC => CK1
      97             : #include "pm_distanceMahal@routines.inc.F90"
      98           6 :     end procedure
      99             : #endif
     100             : 
     101             : #undef CK_ENABLED
     102             : 
     103             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     104             : 
     105             : #define RK_ENABLED 1
     106             : 
     107             : #if RK5_ENABLED
     108             :     module procedure getMahalSqEleInvDef_D0_RK5
     109             :         use pm_kind, only: RKC => RK5
     110             : #include "pm_distanceMahal@routines.inc.F90"
     111             :     end procedure
     112             : #endif
     113             : 
     114             : #if RK4_ENABLED
     115           0 :     module procedure getMahalSqEleInvDef_D0_RK4
     116             :         use pm_kind, only: RKC => RK4
     117             : #include "pm_distanceMahal@routines.inc.F90"
     118           0 :     end procedure
     119             : #endif
     120             : 
     121             : #if RK3_ENABLED
     122           0 :     module procedure getMahalSqEleInvDef_D0_RK3
     123             :         use pm_kind, only: RKC => RK3
     124             : #include "pm_distanceMahal@routines.inc.F90"
     125           0 :     end procedure
     126             : #endif
     127             : 
     128             : #if RK2_ENABLED
     129           0 :     module procedure getMahalSqEleInvDef_D0_RK2
     130             :         use pm_kind, only: RKC => RK2
     131             : #include "pm_distanceMahal@routines.inc.F90"
     132           0 :     end procedure
     133             : #endif
     134             : 
     135             : #if RK1_ENABLED
     136           6 :     module procedure getMahalSqEleInvDef_D0_RK1
     137             :         use pm_kind, only: RKC => RK1
     138             : #include "pm_distanceMahal@routines.inc.F90"
     139           6 :     end procedure
     140             : #endif
     141             : 
     142             : #undef RK_ENABLED
     143             : 
     144             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     145             : 
     146             : #undef InvDef_ENABLED
     147             : 
     148             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     149             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     150             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     151             : 
     152             : #define InvCen_ENABLED 1
     153             : 
     154             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     155             : 
     156             : #define CK_ENABLED 1
     157             : 
     158             : #if CK5_ENABLED
     159             :     module procedure getMahalSqEleInvCen_D0_CK5
     160             :         use pm_kind, only: CKC => CK5
     161             : #include "pm_distanceMahal@routines.inc.F90"
     162             :     end procedure
     163             : #endif
     164             : 
     165             : #if CK4_ENABLED
     166           0 :     module procedure getMahalSqEleInvCen_D0_CK4
     167             :         use pm_kind, only: CKC => CK4
     168             : #include "pm_distanceMahal@routines.inc.F90"
     169           0 :     end procedure
     170             : #endif
     171             : 
     172             : #if CK3_ENABLED
     173           0 :     module procedure getMahalSqEleInvCen_D0_CK3
     174             :         use pm_kind, only: CKC => CK3
     175             : #include "pm_distanceMahal@routines.inc.F90"
     176           0 :     end procedure
     177             : #endif
     178             : 
     179             : #if CK2_ENABLED
     180           0 :     module procedure getMahalSqEleInvCen_D0_CK2
     181             :         use pm_kind, only: CKC => CK2
     182             : #include "pm_distanceMahal@routines.inc.F90"
     183           0 :     end procedure
     184             : #endif
     185             : 
     186             : #if CK1_ENABLED
     187           6 :     module procedure getMahalSqEleInvCen_D0_CK1
     188             :         use pm_kind, only: CKC => CK1
     189             : #include "pm_distanceMahal@routines.inc.F90"
     190           6 :     end procedure
     191             : #endif
     192             : 
     193             : #undef CK_ENABLED
     194             : 
     195             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     196             : 
     197             : #define RK_ENABLED 1
     198             : 
     199             : #if RK5_ENABLED
     200             :     module procedure getMahalSqEleInvCen_D0_RK5
     201             :         use pm_kind, only: RKC => RK5
     202             : #include "pm_distanceMahal@routines.inc.F90"
     203             :     end procedure
     204             : #endif
     205             : 
     206             : #if RK4_ENABLED
     207           0 :     module procedure getMahalSqEleInvCen_D0_RK4
     208             :         use pm_kind, only: RKC => RK4
     209             : #include "pm_distanceMahal@routines.inc.F90"
     210           0 :     end procedure
     211             : #endif
     212             : 
     213             : #if RK3_ENABLED
     214           0 :     module procedure getMahalSqEleInvCen_D0_RK3
     215             :         use pm_kind, only: RKC => RK3
     216             : #include "pm_distanceMahal@routines.inc.F90"
     217           0 :     end procedure
     218             : #endif
     219             : 
     220             : #if RK2_ENABLED
     221           0 :     module procedure getMahalSqEleInvCen_D0_RK2
     222             :         use pm_kind, only: RKC => RK2
     223             : #include "pm_distanceMahal@routines.inc.F90"
     224           0 :     end procedure
     225             : #endif
     226             : 
     227             : #if RK1_ENABLED
     228           6 :     module procedure getMahalSqEleInvCen_D0_RK1
     229             :         use pm_kind, only: RKC => RK1
     230             : #include "pm_distanceMahal@routines.inc.F90"
     231           6 :     end procedure
     232             : #endif
     233             : 
     234             : #undef RK_ENABLED
     235             : 
     236             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     237             : 
     238             : #undef InvCen_ENABLED
     239             : 
     240             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     241             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     242             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     243             : 
     244             : #undef D0_ENABLED
     245             : 
     246             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     247             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     248             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     249             : 
     250             : #define One_ENABLED 1
     251             : 
     252             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     253             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     254             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     255             : 
     256             : #define D1_ENABLED 1
     257             : 
     258             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     260             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     261             : 
     262             : #define InvDef_ENABLED 1
     263             : 
     264             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     265             : 
     266             : #define CK_ENABLED 1
     267             : 
     268             : #if CK5_ENABLED
     269             :     module procedure getMahalSqOneInvDef_D1_CK5
     270             :         use pm_kind, only: CKC => CK5
     271             : #include "pm_distanceMahal@routines.inc.F90"
     272             :     end procedure
     273             : #endif
     274             : 
     275             : #if CK4_ENABLED
     276           0 :     module procedure getMahalSqOneInvDef_D1_CK4
     277             :         use pm_kind, only: CKC => CK4
     278             : #include "pm_distanceMahal@routines.inc.F90"
     279           0 :     end procedure
     280             : #endif
     281             : 
     282             : #if CK3_ENABLED
     283           0 :     module procedure getMahalSqOneInvDef_D1_CK3
     284             :         use pm_kind, only: CKC => CK3
     285             : #include "pm_distanceMahal@routines.inc.F90"
     286           0 :     end procedure
     287             : #endif
     288             : 
     289             : #if CK2_ENABLED
     290           0 :     module procedure getMahalSqOneInvDef_D1_CK2
     291             :         use pm_kind, only: CKC => CK2
     292             : #include "pm_distanceMahal@routines.inc.F90"
     293           0 :     end procedure
     294             : #endif
     295             : 
     296             : #if CK1_ENABLED
     297           1 :     module procedure getMahalSqOneInvDef_D1_CK1
     298             :         use pm_kind, only: CKC => CK1
     299             : #include "pm_distanceMahal@routines.inc.F90"
     300           1 :     end procedure
     301             : #endif
     302             : 
     303             : #undef CK_ENABLED
     304             : 
     305             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     306             : 
     307             : #define RK_ENABLED 1
     308             : 
     309             : #if RK5_ENABLED
     310             :     module procedure getMahalSqOneInvDef_D1_RK5
     311             :         use pm_kind, only: RKC => RK5
     312             : #include "pm_distanceMahal@routines.inc.F90"
     313             :     end procedure
     314             : #endif
     315             : 
     316             : #if RK4_ENABLED
     317           0 :     module procedure getMahalSqOneInvDef_D1_RK4
     318             :         use pm_kind, only: RKC => RK4
     319             : #include "pm_distanceMahal@routines.inc.F90"
     320           0 :     end procedure
     321             : #endif
     322             : 
     323             : #if RK3_ENABLED
     324           0 :     module procedure getMahalSqOneInvDef_D1_RK3
     325             :         use pm_kind, only: RKC => RK3
     326             : #include "pm_distanceMahal@routines.inc.F90"
     327           0 :     end procedure
     328             : #endif
     329             : 
     330             : #if RK2_ENABLED
     331           0 :     module procedure getMahalSqOneInvDef_D1_RK2
     332             :         use pm_kind, only: RKC => RK2
     333             : #include "pm_distanceMahal@routines.inc.F90"
     334           0 :     end procedure
     335             : #endif
     336             : 
     337             : #if RK1_ENABLED
     338           1 :     module procedure getMahalSqOneInvDef_D1_RK1
     339             :         use pm_kind, only: RKC => RK1
     340             : #include "pm_distanceMahal@routines.inc.F90"
     341           1 :     end procedure
     342             : #endif
     343             : 
     344             : #undef RK_ENABLED
     345             : 
     346             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     347             : 
     348             : #undef InvDef_ENABLED
     349             : 
     350             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     351             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     352             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     353             : 
     354             : #define InvCen_ENABLED 1
     355             : 
     356             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     357             : 
     358             : #define CK_ENABLED 1
     359             : 
     360             : #if CK5_ENABLED
     361             :     module procedure getMahalSqOneInvCen_D1_CK5
     362             :         use pm_kind, only: CKC => CK5
     363             : #include "pm_distanceMahal@routines.inc.F90"
     364             :     end procedure
     365             : #endif
     366             : 
     367             : #if CK4_ENABLED
     368           0 :     module procedure getMahalSqOneInvCen_D1_CK4
     369             :         use pm_kind, only: CKC => CK4
     370             : #include "pm_distanceMahal@routines.inc.F90"
     371           0 :     end procedure
     372             : #endif
     373             : 
     374             : #if CK3_ENABLED
     375           0 :     module procedure getMahalSqOneInvCen_D1_CK3
     376             :         use pm_kind, only: CKC => CK3
     377             : #include "pm_distanceMahal@routines.inc.F90"
     378           0 :     end procedure
     379             : #endif
     380             : 
     381             : #if CK2_ENABLED
     382           0 :     module procedure getMahalSqOneInvCen_D1_CK2
     383             :         use pm_kind, only: CKC => CK2
     384             : #include "pm_distanceMahal@routines.inc.F90"
     385           0 :     end procedure
     386             : #endif
     387             : 
     388             : #if CK1_ENABLED
     389           1 :     module procedure getMahalSqOneInvCen_D1_CK1
     390             :         use pm_kind, only: CKC => CK1
     391             : #include "pm_distanceMahal@routines.inc.F90"
     392           1 :     end procedure
     393             : #endif
     394             : 
     395             : #undef CK_ENABLED
     396             : 
     397             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     398             : 
     399             : #define RK_ENABLED 1
     400             : 
     401             : #if RK5_ENABLED
     402             :     module procedure getMahalSqOneInvCen_D1_RK5
     403             :         use pm_kind, only: RKC => RK5
     404             : #include "pm_distanceMahal@routines.inc.F90"
     405             :     end procedure
     406             : #endif
     407             : 
     408             : #if RK4_ENABLED
     409           0 :     module procedure getMahalSqOneInvCen_D1_RK4
     410             :         use pm_kind, only: RKC => RK4
     411             : #include "pm_distanceMahal@routines.inc.F90"
     412           0 :     end procedure
     413             : #endif
     414             : 
     415             : #if RK3_ENABLED
     416           0 :     module procedure getMahalSqOneInvCen_D1_RK3
     417             :         use pm_kind, only: RKC => RK3
     418             : #include "pm_distanceMahal@routines.inc.F90"
     419           0 :     end procedure
     420             : #endif
     421             : 
     422             : #if RK2_ENABLED
     423      250004 :     module procedure getMahalSqOneInvCen_D1_RK2
     424             :         use pm_kind, only: RKC => RK2
     425             : #include "pm_distanceMahal@routines.inc.F90"
     426      250004 :     end procedure
     427             : #endif
     428             : 
     429             : #if RK1_ENABLED
     430           1 :     module procedure getMahalSqOneInvCen_D1_RK1
     431             :         use pm_kind, only: RKC => RK1
     432             : #include "pm_distanceMahal@routines.inc.F90"
     433           1 :     end procedure
     434             : #endif
     435             : 
     436             : #undef RK_ENABLED
     437             : 
     438             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     439             : 
     440             : #undef InvCen_ENABLED
     441             : 
     442             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     443             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     444             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     445             : 
     446             : #undef D1_ENABLED
     447             : 
     448             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     449             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     450             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     451             : 
     452             : #define D2_ENABLED 1
     453             : 
     454             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     455             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     456             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     457             : 
     458             : #define InvDef_ENABLED 1
     459             : 
     460             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     461             : 
     462             : #define CK_ENABLED 1
     463             : 
     464             : #if CK5_ENABLED
     465             :     module procedure getMahalSqOneInvDef_D2_CK5
     466             :         use pm_kind, only: CKC => CK5
     467             : #include "pm_distanceMahal@routines.inc.F90"
     468             :     end procedure
     469             : #endif
     470             : 
     471             : #if CK4_ENABLED
     472           0 :     module procedure getMahalSqOneInvDef_D2_CK4
     473             :         use pm_kind, only: CKC => CK4
     474             : #include "pm_distanceMahal@routines.inc.F90"
     475           0 :     end procedure
     476             : #endif
     477             : 
     478             : #if CK3_ENABLED
     479           0 :     module procedure getMahalSqOneInvDef_D2_CK3
     480             :         use pm_kind, only: CKC => CK3
     481             : #include "pm_distanceMahal@routines.inc.F90"
     482           0 :     end procedure
     483             : #endif
     484             : 
     485             : #if CK2_ENABLED
     486           0 :     module procedure getMahalSqOneInvDef_D2_CK2
     487             :         use pm_kind, only: CKC => CK2
     488             : #include "pm_distanceMahal@routines.inc.F90"
     489           0 :     end procedure
     490             : #endif
     491             : 
     492             : #if CK1_ENABLED
     493           1 :     module procedure getMahalSqOneInvDef_D2_CK1
     494             :         use pm_kind, only: CKC => CK1
     495             : #include "pm_distanceMahal@routines.inc.F90"
     496           1 :     end procedure
     497             : #endif
     498             : 
     499             : #undef CK_ENABLED
     500             : 
     501             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     502             : 
     503             : #define RK_ENABLED 1
     504             : 
     505             : #if RK5_ENABLED
     506             :     module procedure getMahalSqOneInvDef_D2_RK5
     507             :         use pm_kind, only: RKC => RK5
     508             : #include "pm_distanceMahal@routines.inc.F90"
     509             :     end procedure
     510             : #endif
     511             : 
     512             : #if RK4_ENABLED
     513           0 :     module procedure getMahalSqOneInvDef_D2_RK4
     514             :         use pm_kind, only: RKC => RK4
     515             : #include "pm_distanceMahal@routines.inc.F90"
     516           0 :     end procedure
     517             : #endif
     518             : 
     519             : #if RK3_ENABLED
     520           0 :     module procedure getMahalSqOneInvDef_D2_RK3
     521             :         use pm_kind, only: RKC => RK3
     522             : #include "pm_distanceMahal@routines.inc.F90"
     523           0 :     end procedure
     524             : #endif
     525             : 
     526             : #if RK2_ENABLED
     527           0 :     module procedure getMahalSqOneInvDef_D2_RK2
     528             :         use pm_kind, only: RKC => RK2
     529             : #include "pm_distanceMahal@routines.inc.F90"
     530           0 :     end procedure
     531             : #endif
     532             : 
     533             : #if RK1_ENABLED
     534           1 :     module procedure getMahalSqOneInvDef_D2_RK1
     535             :         use pm_kind, only: RKC => RK1
     536             : #include "pm_distanceMahal@routines.inc.F90"
     537           1 :     end procedure
     538             : #endif
     539             : 
     540             : #undef RK_ENABLED
     541             : 
     542             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     543             : 
     544             : #undef InvDef_ENABLED
     545             : 
     546             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     547             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     548             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     549             : 
     550             : #define InvCen_ENABLED 1
     551             : 
     552             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     553             : 
     554             : #define CK_ENABLED 1
     555             : 
     556             : #if CK5_ENABLED
     557             :     module procedure getMahalSqOneInvCen_D2_CK5
     558             :         use pm_kind, only: CKC => CK5
     559             : #include "pm_distanceMahal@routines.inc.F90"
     560             :     end procedure
     561             : #endif
     562             : 
     563             : #if CK4_ENABLED
     564           0 :     module procedure getMahalSqOneInvCen_D2_CK4
     565             :         use pm_kind, only: CKC => CK4
     566             : #include "pm_distanceMahal@routines.inc.F90"
     567           0 :     end procedure
     568             : #endif
     569             : 
     570             : #if CK3_ENABLED
     571           0 :     module procedure getMahalSqOneInvCen_D2_CK3
     572             :         use pm_kind, only: CKC => CK3
     573             : #include "pm_distanceMahal@routines.inc.F90"
     574           0 :     end procedure
     575             : #endif
     576             : 
     577             : #if CK2_ENABLED
     578           0 :     module procedure getMahalSqOneInvCen_D2_CK2
     579             :         use pm_kind, only: CKC => CK2
     580             : #include "pm_distanceMahal@routines.inc.F90"
     581           0 :     end procedure
     582             : #endif
     583             : 
     584             : #if CK1_ENABLED
     585           1 :     module procedure getMahalSqOneInvCen_D2_CK1
     586             :         use pm_kind, only: CKC => CK1
     587             : #include "pm_distanceMahal@routines.inc.F90"
     588           1 :     end procedure
     589             : #endif
     590             : 
     591             : #undef CK_ENABLED
     592             : 
     593             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     594             : 
     595             : #define RK_ENABLED 1
     596             : 
     597             : #if RK5_ENABLED
     598             :     module procedure getMahalSqOneInvCen_D2_RK5
     599             :         use pm_kind, only: RKC => RK5
     600             : #include "pm_distanceMahal@routines.inc.F90"
     601             :     end procedure
     602             : #endif
     603             : 
     604             : #if RK4_ENABLED
     605           0 :     module procedure getMahalSqOneInvCen_D2_RK4
     606             :         use pm_kind, only: RKC => RK4
     607             : #include "pm_distanceMahal@routines.inc.F90"
     608           0 :     end procedure
     609             : #endif
     610             : 
     611             : #if RK3_ENABLED
     612           0 :     module procedure getMahalSqOneInvCen_D2_RK3
     613             :         use pm_kind, only: RKC => RK3
     614             : #include "pm_distanceMahal@routines.inc.F90"
     615           0 :     end procedure
     616             : #endif
     617             : 
     618             : #if RK2_ENABLED
     619           0 :     module procedure getMahalSqOneInvCen_D2_RK2
     620             :         use pm_kind, only: RKC => RK2
     621             : #include "pm_distanceMahal@routines.inc.F90"
     622           0 :     end procedure
     623             : #endif
     624             : 
     625             : #if RK1_ENABLED
     626           1 :     module procedure getMahalSqOneInvCen_D2_RK1
     627             :         use pm_kind, only: RKC => RK1
     628             : #include "pm_distanceMahal@routines.inc.F90"
     629           1 :     end procedure
     630             : #endif
     631             : 
     632             : #undef RK_ENABLED
     633             : 
     634             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     635             : 
     636             : #undef InvCen_ENABLED
     637             : 
     638             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     639             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     640             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     641             : 
     642             : #undef D2_ENABLED
     643             : 
     644             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     645             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     646             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     647             : 
     648             : #undef One_ENABLED
     649             : 
     650             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     651             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     652             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     653             : 
     654             : #define Mix_ENABLED 1
     655             : 
     656             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     657             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     658             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     659             : 
     660             : #define D1_ENABLED 1
     661             : 
     662             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     663             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     664             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     665             : 
     666             : #define InvDef_ENABLED 1
     667             : 
     668             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     669             : 
     670             : #define CK_ENABLED 1
     671             : 
     672             : #if CK5_ENABLED
     673             :     module procedure getMahalSqMixInvDef_D1_CK5
     674             :         use pm_kind, only: CKC => CK5
     675             : #include "pm_distanceMahal@routines.inc.F90"
     676             :     end procedure
     677             : #endif
     678             : 
     679             : #if CK4_ENABLED
     680           0 :     module procedure getMahalSqMixInvDef_D1_CK4
     681             :         use pm_kind, only: CKC => CK4
     682             : #include "pm_distanceMahal@routines.inc.F90"
     683           0 :     end procedure
     684             : #endif
     685             : 
     686             : #if CK3_ENABLED
     687           0 :     module procedure getMahalSqMixInvDef_D1_CK3
     688             :         use pm_kind, only: CKC => CK3
     689             : #include "pm_distanceMahal@routines.inc.F90"
     690           0 :     end procedure
     691             : #endif
     692             : 
     693             : #if CK2_ENABLED
     694           0 :     module procedure getMahalSqMixInvDef_D1_CK2
     695             :         use pm_kind, only: CKC => CK2
     696             : #include "pm_distanceMahal@routines.inc.F90"
     697           0 :     end procedure
     698             : #endif
     699             : 
     700             : #if CK1_ENABLED
     701           1 :     module procedure getMahalSqMixInvDef_D1_CK1
     702             :         use pm_kind, only: CKC => CK1
     703             : #include "pm_distanceMahal@routines.inc.F90"
     704           1 :     end procedure
     705             : #endif
     706             : 
     707             : #undef CK_ENABLED
     708             : 
     709             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     710             : 
     711             : #define RK_ENABLED 1
     712             : 
     713             : #if RK5_ENABLED
     714             :     module procedure getMahalSqMixInvDef_D1_RK5
     715             :         use pm_kind, only: RKC => RK5
     716             : #include "pm_distanceMahal@routines.inc.F90"
     717             :     end procedure
     718             : #endif
     719             : 
     720             : #if RK4_ENABLED
     721           0 :     module procedure getMahalSqMixInvDef_D1_RK4
     722             :         use pm_kind, only: RKC => RK4
     723             : #include "pm_distanceMahal@routines.inc.F90"
     724           0 :     end procedure
     725             : #endif
     726             : 
     727             : #if RK3_ENABLED
     728           0 :     module procedure getMahalSqMixInvDef_D1_RK3
     729             :         use pm_kind, only: RKC => RK3
     730             : #include "pm_distanceMahal@routines.inc.F90"
     731           0 :     end procedure
     732             : #endif
     733             : 
     734             : #if RK2_ENABLED
     735           0 :     module procedure getMahalSqMixInvDef_D1_RK2
     736             :         use pm_kind, only: RKC => RK2
     737             : #include "pm_distanceMahal@routines.inc.F90"
     738           0 :     end procedure
     739             : #endif
     740             : 
     741             : #if RK1_ENABLED
     742           1 :     module procedure getMahalSqMixInvDef_D1_RK1
     743             :         use pm_kind, only: RKC => RK1
     744             : #include "pm_distanceMahal@routines.inc.F90"
     745           1 :     end procedure
     746             : #endif
     747             : 
     748             : #undef RK_ENABLED
     749             : 
     750             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     751             : 
     752             : #undef InvDef_ENABLED
     753             : 
     754             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     755             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     756             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     757             : 
     758             : #define InvCen_ENABLED 1
     759             : 
     760             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     761             : 
     762             : #define CK_ENABLED 1
     763             : 
     764             : #if CK5_ENABLED
     765             :     module procedure getMahalSqMixInvCen_D1_CK5
     766             :         use pm_kind, only: CKC => CK5
     767             : #include "pm_distanceMahal@routines.inc.F90"
     768             :     end procedure
     769             : #endif
     770             : 
     771             : #if CK4_ENABLED
     772           0 :     module procedure getMahalSqMixInvCen_D1_CK4
     773             :         use pm_kind, only: CKC => CK4
     774             : #include "pm_distanceMahal@routines.inc.F90"
     775           0 :     end procedure
     776             : #endif
     777             : 
     778             : #if CK3_ENABLED
     779           0 :     module procedure getMahalSqMixInvCen_D1_CK3
     780             :         use pm_kind, only: CKC => CK3
     781             : #include "pm_distanceMahal@routines.inc.F90"
     782           0 :     end procedure
     783             : #endif
     784             : 
     785             : #if CK2_ENABLED
     786           0 :     module procedure getMahalSqMixInvCen_D1_CK2
     787             :         use pm_kind, only: CKC => CK2
     788             : #include "pm_distanceMahal@routines.inc.F90"
     789           0 :     end procedure
     790             : #endif
     791             : 
     792             : #if CK1_ENABLED
     793           1 :     module procedure getMahalSqMixInvCen_D1_CK1
     794             :         use pm_kind, only: CKC => CK1
     795             : #include "pm_distanceMahal@routines.inc.F90"
     796           1 :     end procedure
     797             : #endif
     798             : 
     799             : #undef CK_ENABLED
     800             : 
     801             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     802             : 
     803             : #define RK_ENABLED 1
     804             : 
     805             : #if RK5_ENABLED
     806             :     module procedure getMahalSqMixInvCen_D1_RK5
     807             :         use pm_kind, only: RKC => RK5
     808             : #include "pm_distanceMahal@routines.inc.F90"
     809             :     end procedure
     810             : #endif
     811             : 
     812             : #if RK4_ENABLED
     813           0 :     module procedure getMahalSqMixInvCen_D1_RK4
     814             :         use pm_kind, only: RKC => RK4
     815             : #include "pm_distanceMahal@routines.inc.F90"
     816           0 :     end procedure
     817             : #endif
     818             : 
     819             : #if RK3_ENABLED
     820           0 :     module procedure getMahalSqMixInvCen_D1_RK3
     821             :         use pm_kind, only: RKC => RK3
     822             : #include "pm_distanceMahal@routines.inc.F90"
     823           0 :     end procedure
     824             : #endif
     825             : 
     826             : #if RK2_ENABLED
     827      491000 :     module procedure getMahalSqMixInvCen_D1_RK2
     828             :         use pm_kind, only: RKC => RK2
     829             : #include "pm_distanceMahal@routines.inc.F90"
     830      491000 :     end procedure
     831             : #endif
     832             : 
     833             : #if RK1_ENABLED
     834           1 :     module procedure getMahalSqMixInvCen_D1_RK1
     835             :         use pm_kind, only: RKC => RK1
     836             : #include "pm_distanceMahal@routines.inc.F90"
     837           1 :     end procedure
     838             : #endif
     839             : 
     840             : #undef RK_ENABLED
     841             : 
     842             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     843             : 
     844             : #undef InvCen_ENABLED
     845             : 
     846             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     847             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     848             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     849             : 
     850             : #undef D1_ENABLED
     851             : 
     852             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     853             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     854             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     855             : 
     856             : #define D2_ENABLED 1
     857             : 
     858             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     859             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     860             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     861             : 
     862             : #define InvDef_ENABLED 1
     863             : 
     864             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     865             : 
     866             : #define CK_ENABLED 1
     867             : 
     868             : #if CK5_ENABLED
     869             :     module procedure getMahalSqMixInvDef_D2_CK5
     870             :         use pm_kind, only: CKC => CK5
     871             : #include "pm_distanceMahal@routines.inc.F90"
     872             :     end procedure
     873             : #endif
     874             : 
     875             : #if CK4_ENABLED
     876           0 :     module procedure getMahalSqMixInvDef_D2_CK4
     877             :         use pm_kind, only: CKC => CK4
     878             : #include "pm_distanceMahal@routines.inc.F90"
     879           0 :     end procedure
     880             : #endif
     881             : 
     882             : #if CK3_ENABLED
     883           0 :     module procedure getMahalSqMixInvDef_D2_CK3
     884             :         use pm_kind, only: CKC => CK3
     885             : #include "pm_distanceMahal@routines.inc.F90"
     886           0 :     end procedure
     887             : #endif
     888             : 
     889             : #if CK2_ENABLED
     890           0 :     module procedure getMahalSqMixInvDef_D2_CK2
     891             :         use pm_kind, only: CKC => CK2
     892             : #include "pm_distanceMahal@routines.inc.F90"
     893           0 :     end procedure
     894             : #endif
     895             : 
     896             : #if CK1_ENABLED
     897           1 :     module procedure getMahalSqMixInvDef_D2_CK1
     898             :         use pm_kind, only: CKC => CK1
     899             : #include "pm_distanceMahal@routines.inc.F90"
     900           1 :     end procedure
     901             : #endif
     902             : 
     903             : #undef CK_ENABLED
     904             : 
     905             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     906             : 
     907             : #define RK_ENABLED 1
     908             : 
     909             : #if RK5_ENABLED
     910             :     module procedure getMahalSqMixInvDef_D2_RK5
     911             :         use pm_kind, only: RKC => RK5
     912             : #include "pm_distanceMahal@routines.inc.F90"
     913             :     end procedure
     914             : #endif
     915             : 
     916             : #if RK4_ENABLED
     917           0 :     module procedure getMahalSqMixInvDef_D2_RK4
     918             :         use pm_kind, only: RKC => RK4
     919             : #include "pm_distanceMahal@routines.inc.F90"
     920           0 :     end procedure
     921             : #endif
     922             : 
     923             : #if RK3_ENABLED
     924           0 :     module procedure getMahalSqMixInvDef_D2_RK3
     925             :         use pm_kind, only: RKC => RK3
     926             : #include "pm_distanceMahal@routines.inc.F90"
     927           0 :     end procedure
     928             : #endif
     929             : 
     930             : #if RK2_ENABLED
     931           0 :     module procedure getMahalSqMixInvDef_D2_RK2
     932             :         use pm_kind, only: RKC => RK2
     933             : #include "pm_distanceMahal@routines.inc.F90"
     934           0 :     end procedure
     935             : #endif
     936             : 
     937             : #if RK1_ENABLED
     938           1 :     module procedure getMahalSqMixInvDef_D2_RK1
     939             :         use pm_kind, only: RKC => RK1
     940             : #include "pm_distanceMahal@routines.inc.F90"
     941           1 :     end procedure
     942             : #endif
     943             : 
     944             : #undef RK_ENABLED
     945             : 
     946             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     947             : 
     948             : #undef InvDef_ENABLED
     949             : 
     950             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     951             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     952             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     953             : 
     954             : #define InvCen_ENABLED 1
     955             : 
     956             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     957             : 
     958             : #define CK_ENABLED 1
     959             : 
     960             : #if CK5_ENABLED
     961             :     module procedure getMahalSqMixInvCen_D2_CK5
     962             :         use pm_kind, only: CKC => CK5
     963             : #include "pm_distanceMahal@routines.inc.F90"
     964             :     end procedure
     965             : #endif
     966             : 
     967             : #if CK4_ENABLED
     968           0 :     module procedure getMahalSqMixInvCen_D2_CK4
     969             :         use pm_kind, only: CKC => CK4
     970             : #include "pm_distanceMahal@routines.inc.F90"
     971           0 :     end procedure
     972             : #endif
     973             : 
     974             : #if CK3_ENABLED
     975           0 :     module procedure getMahalSqMixInvCen_D2_CK3
     976             :         use pm_kind, only: CKC => CK3
     977             : #include "pm_distanceMahal@routines.inc.F90"
     978           0 :     end procedure
     979             : #endif
     980             : 
     981             : #if CK2_ENABLED
     982           0 :     module procedure getMahalSqMixInvCen_D2_CK2
     983             :         use pm_kind, only: CKC => CK2
     984             : #include "pm_distanceMahal@routines.inc.F90"
     985           0 :     end procedure
     986             : #endif
     987             : 
     988             : #if CK1_ENABLED
     989           1 :     module procedure getMahalSqMixInvCen_D2_CK1
     990             :         use pm_kind, only: CKC => CK1
     991             : #include "pm_distanceMahal@routines.inc.F90"
     992           1 :     end procedure
     993             : #endif
     994             : 
     995             : #undef CK_ENABLED
     996             : 
     997             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     998             : 
     999             : #define RK_ENABLED 1
    1000             : 
    1001             : #if RK5_ENABLED
    1002             :     module procedure getMahalSqMixInvCen_D2_RK5
    1003             :         use pm_kind, only: RKC => RK5
    1004             : #include "pm_distanceMahal@routines.inc.F90"
    1005             :     end procedure
    1006             : #endif
    1007             : 
    1008             : #if RK4_ENABLED
    1009           0 :     module procedure getMahalSqMixInvCen_D2_RK4
    1010             :         use pm_kind, only: RKC => RK4
    1011             : #include "pm_distanceMahal@routines.inc.F90"
    1012           0 :     end procedure
    1013             : #endif
    1014             : 
    1015             : #if RK3_ENABLED
    1016           0 :     module procedure getMahalSqMixInvCen_D2_RK3
    1017             :         use pm_kind, only: RKC => RK3
    1018             : #include "pm_distanceMahal@routines.inc.F90"
    1019           0 :     end procedure
    1020             : #endif
    1021             : 
    1022             : #if RK2_ENABLED
    1023           0 :     module procedure getMahalSqMixInvCen_D2_RK2
    1024             :         use pm_kind, only: RKC => RK2
    1025             : #include "pm_distanceMahal@routines.inc.F90"
    1026           0 :     end procedure
    1027             : #endif
    1028             : 
    1029             : #if RK1_ENABLED
    1030           1 :     module procedure getMahalSqMixInvCen_D2_RK1
    1031             :         use pm_kind, only: RKC => RK1
    1032             : #include "pm_distanceMahal@routines.inc.F90"
    1033           1 :     end procedure
    1034             : #endif
    1035             : 
    1036             : #undef RK_ENABLED
    1037             : 
    1038             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1039             : 
    1040             : #undef InvCen_ENABLED
    1041             : 
    1042             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1043             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1044             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1045             : 
    1046             : #undef D2_ENABLED
    1047             : 
    1048             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1049             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1050             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1051             : 
    1052             : #undef Mix_ENABLED
    1053             : 
    1054             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1055             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1056             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1057             : 
    1058             : #undef getMahalSq_ENABLED
    1059             : 
    1060             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1061             : 
    1062             : #define setMahalSq_ENABLED 1
    1063             : 
    1064             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1065             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1066             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1067             : 
    1068             : #define D0_ENABLED 1
    1069             : 
    1070             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1071             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1072             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1073             : 
    1074             : #define InvDef_ENABLED 1
    1075             : 
    1076             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1077             : 
    1078             : #define CK_ENABLED 1
    1079             : 
    1080             : #if CK5_ENABLED
    1081             :     module procedure setMahalSqEleInvDef_D0_CK5
    1082             :         use pm_kind, only: CKC => CK5
    1083             : #include "pm_distanceMahal@routines.inc.F90"
    1084             :     end procedure
    1085             : #endif
    1086             : 
    1087             : #if CK4_ENABLED
    1088           0 :     module procedure setMahalSqEleInvDef_D0_CK4
    1089             :         use pm_kind, only: CKC => CK4
    1090             : #include "pm_distanceMahal@routines.inc.F90"
    1091           0 :     end procedure
    1092             : #endif
    1093             : 
    1094             : #if CK3_ENABLED
    1095           0 :     module procedure setMahalSqEleInvDef_D0_CK3
    1096             :         use pm_kind, only: CKC => CK3
    1097             : #include "pm_distanceMahal@routines.inc.F90"
    1098           0 :     end procedure
    1099             : #endif
    1100             : 
    1101             : #if CK2_ENABLED
    1102           0 :     module procedure setMahalSqEleInvDef_D0_CK2
    1103             :         use pm_kind, only: CKC => CK2
    1104             : #include "pm_distanceMahal@routines.inc.F90"
    1105           0 :     end procedure
    1106             : #endif
    1107             : 
    1108             : #if CK1_ENABLED
    1109           6 :     module procedure setMahalSqEleInvDef_D0_CK1
    1110             :         use pm_kind, only: CKC => CK1
    1111             : #include "pm_distanceMahal@routines.inc.F90"
    1112           6 :     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 setMahalSqEleInvDef_D0_RK5
    1123             :         use pm_kind, only: RKC => RK5
    1124             : #include "pm_distanceMahal@routines.inc.F90"
    1125             :     end procedure
    1126             : #endif
    1127             : 
    1128             : #if RK4_ENABLED
    1129           0 :     module procedure setMahalSqEleInvDef_D0_RK4
    1130             :         use pm_kind, only: RKC => RK4
    1131             : #include "pm_distanceMahal@routines.inc.F90"
    1132           0 :     end procedure
    1133             : #endif
    1134             : 
    1135             : #if RK3_ENABLED
    1136           0 :     module procedure setMahalSqEleInvDef_D0_RK3
    1137             :         use pm_kind, only: RKC => RK3
    1138             : #include "pm_distanceMahal@routines.inc.F90"
    1139           0 :     end procedure
    1140             : #endif
    1141             : 
    1142             : #if RK2_ENABLED
    1143           0 :     module procedure setMahalSqEleInvDef_D0_RK2
    1144             :         use pm_kind, only: RKC => RK2
    1145             : #include "pm_distanceMahal@routines.inc.F90"
    1146           0 :     end procedure
    1147             : #endif
    1148             : 
    1149             : #if RK1_ENABLED
    1150           6 :     module procedure setMahalSqEleInvDef_D0_RK1
    1151             :         use pm_kind, only: RKC => RK1
    1152             : #include "pm_distanceMahal@routines.inc.F90"
    1153           6 :     end procedure
    1154             : #endif
    1155             : 
    1156             : #undef RK_ENABLED
    1157             : 
    1158             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1159             : 
    1160             : #undef InvDef_ENABLED
    1161             : 
    1162             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1163             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1164             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1165             : 
    1166             : #define InvCen_ENABLED 1
    1167             : 
    1168             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1169             : 
    1170             : #define CK_ENABLED 1
    1171             : 
    1172             : #if CK5_ENABLED
    1173             :     module procedure setMahalSqEleInvCen_D0_CK5
    1174             :         use pm_kind, only: CKC => CK5
    1175             : #include "pm_distanceMahal@routines.inc.F90"
    1176             :     end procedure
    1177             : #endif
    1178             : 
    1179             : #if CK4_ENABLED
    1180           0 :     module procedure setMahalSqEleInvCen_D0_CK4
    1181             :         use pm_kind, only: CKC => CK4
    1182             : #include "pm_distanceMahal@routines.inc.F90"
    1183           0 :     end procedure
    1184             : #endif
    1185             : 
    1186             : #if CK3_ENABLED
    1187           0 :     module procedure setMahalSqEleInvCen_D0_CK3
    1188             :         use pm_kind, only: CKC => CK3
    1189             : #include "pm_distanceMahal@routines.inc.F90"
    1190           0 :     end procedure
    1191             : #endif
    1192             : 
    1193             : #if CK2_ENABLED
    1194           0 :     module procedure setMahalSqEleInvCen_D0_CK2
    1195             :         use pm_kind, only: CKC => CK2
    1196             : #include "pm_distanceMahal@routines.inc.F90"
    1197           0 :     end procedure
    1198             : #endif
    1199             : 
    1200             : #if CK1_ENABLED
    1201           6 :     module procedure setMahalSqEleInvCen_D0_CK1
    1202             :         use pm_kind, only: CKC => CK1
    1203             : #include "pm_distanceMahal@routines.inc.F90"
    1204           6 :     end procedure
    1205             : #endif
    1206             : 
    1207             : #undef CK_ENABLED
    1208             : 
    1209             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1210             : 
    1211             : #define RK_ENABLED 1
    1212             : 
    1213             : #if RK5_ENABLED
    1214             :     module procedure setMahalSqEleInvCen_D0_RK5
    1215             :         use pm_kind, only: RKC => RK5
    1216             : #include "pm_distanceMahal@routines.inc.F90"
    1217             :     end procedure
    1218             : #endif
    1219             : 
    1220             : #if RK4_ENABLED
    1221           0 :     module procedure setMahalSqEleInvCen_D0_RK4
    1222             :         use pm_kind, only: RKC => RK4
    1223             : #include "pm_distanceMahal@routines.inc.F90"
    1224           0 :     end procedure
    1225             : #endif
    1226             : 
    1227             : #if RK3_ENABLED
    1228           0 :     module procedure setMahalSqEleInvCen_D0_RK3
    1229             :         use pm_kind, only: RKC => RK3
    1230             : #include "pm_distanceMahal@routines.inc.F90"
    1231           0 :     end procedure
    1232             : #endif
    1233             : 
    1234             : #if RK2_ENABLED
    1235           0 :     module procedure setMahalSqEleInvCen_D0_RK2
    1236             :         use pm_kind, only: RKC => RK2
    1237             : #include "pm_distanceMahal@routines.inc.F90"
    1238           0 :     end procedure
    1239             : #endif
    1240             : 
    1241             : #if RK1_ENABLED
    1242           6 :     module procedure setMahalSqEleInvCen_D0_RK1
    1243             :         use pm_kind, only: RKC => RK1
    1244             : #include "pm_distanceMahal@routines.inc.F90"
    1245           6 :     end procedure
    1246             : #endif
    1247             : 
    1248             : #undef RK_ENABLED
    1249             : 
    1250             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1251             : 
    1252             : #undef InvCen_ENABLED
    1253             : 
    1254             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1256             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1257             : 
    1258             : #undef D0_ENABLED
    1259             : 
    1260             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1261             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1262             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1263             : 
    1264             : #define One_ENABLED 1
    1265             : 
    1266             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1267             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1268             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1269             : 
    1270             : #define D1_ENABLED 1
    1271             : 
    1272             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1273             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1274             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1275             : 
    1276             : #define InvDef_ENABLED 1
    1277             : 
    1278             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1279             : 
    1280             : #define CK_ENABLED 1
    1281             : 
    1282             : #if CK5_ENABLED
    1283             :     module procedure setMahalSqOneInvDef_D1_CK5
    1284             :         use pm_kind, only: CKC => CK5
    1285             : #include "pm_distanceMahal@routines.inc.F90"
    1286             :     end procedure
    1287             : #endif
    1288             : 
    1289             : #if CK4_ENABLED
    1290           0 :     module procedure setMahalSqOneInvDef_D1_CK4
    1291             :         use pm_kind, only: CKC => CK4
    1292             : #include "pm_distanceMahal@routines.inc.F90"
    1293           0 :     end procedure
    1294             : #endif
    1295             : 
    1296             : #if CK3_ENABLED
    1297           0 :     module procedure setMahalSqOneInvDef_D1_CK3
    1298             :         use pm_kind, only: CKC => CK3
    1299             : #include "pm_distanceMahal@routines.inc.F90"
    1300           0 :     end procedure
    1301             : #endif
    1302             : 
    1303             : #if CK2_ENABLED
    1304           0 :     module procedure setMahalSqOneInvDef_D1_CK2
    1305             :         use pm_kind, only: CKC => CK2
    1306             : #include "pm_distanceMahal@routines.inc.F90"
    1307           0 :     end procedure
    1308             : #endif
    1309             : 
    1310             : #if CK1_ENABLED
    1311           1 :     module procedure setMahalSqOneInvDef_D1_CK1
    1312             :         use pm_kind, only: CKC => CK1
    1313             : #include "pm_distanceMahal@routines.inc.F90"
    1314           1 :     end procedure
    1315             : #endif
    1316             : 
    1317             : #undef CK_ENABLED
    1318             : 
    1319             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1320             : 
    1321             : #define RK_ENABLED 1
    1322             : 
    1323             : #if RK5_ENABLED
    1324             :     module procedure setMahalSqOneInvDef_D1_RK5
    1325             :         use pm_kind, only: RKC => RK5
    1326             : #include "pm_distanceMahal@routines.inc.F90"
    1327             :     end procedure
    1328             : #endif
    1329             : 
    1330             : #if RK4_ENABLED
    1331           0 :     module procedure setMahalSqOneInvDef_D1_RK4
    1332             :         use pm_kind, only: RKC => RK4
    1333             : #include "pm_distanceMahal@routines.inc.F90"
    1334           0 :     end procedure
    1335             : #endif
    1336             : 
    1337             : #if RK3_ENABLED
    1338           0 :     module procedure setMahalSqOneInvDef_D1_RK3
    1339             :         use pm_kind, only: RKC => RK3
    1340             : #include "pm_distanceMahal@routines.inc.F90"
    1341           0 :     end procedure
    1342             : #endif
    1343             : 
    1344             : #if RK2_ENABLED
    1345           0 :     module procedure setMahalSqOneInvDef_D1_RK2
    1346             :         use pm_kind, only: RKC => RK2
    1347             : #include "pm_distanceMahal@routines.inc.F90"
    1348           0 :     end procedure
    1349             : #endif
    1350             : 
    1351             : #if RK1_ENABLED
    1352           1 :     module procedure setMahalSqOneInvDef_D1_RK1
    1353             :         use pm_kind, only: RKC => RK1
    1354             : #include "pm_distanceMahal@routines.inc.F90"
    1355           1 :     end procedure
    1356             : #endif
    1357             : 
    1358             : #undef RK_ENABLED
    1359             : 
    1360             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1361             : 
    1362             : #undef InvDef_ENABLED
    1363             : 
    1364             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1365             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1367             : 
    1368             : #define InvCen_ENABLED 1
    1369             : 
    1370             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1371             : 
    1372             : #define CK_ENABLED 1
    1373             : 
    1374             : #if CK5_ENABLED
    1375             :     module procedure setMahalSqOneInvCen_D1_CK5
    1376             :         use pm_kind, only: CKC => CK5
    1377             : #include "pm_distanceMahal@routines.inc.F90"
    1378             :     end procedure
    1379             : #endif
    1380             : 
    1381             : #if CK4_ENABLED
    1382           0 :     module procedure setMahalSqOneInvCen_D1_CK4
    1383             :         use pm_kind, only: CKC => CK4
    1384             : #include "pm_distanceMahal@routines.inc.F90"
    1385           0 :     end procedure
    1386             : #endif
    1387             : 
    1388             : #if CK3_ENABLED
    1389           0 :     module procedure setMahalSqOneInvCen_D1_CK3
    1390             :         use pm_kind, only: CKC => CK3
    1391             : #include "pm_distanceMahal@routines.inc.F90"
    1392           0 :     end procedure
    1393             : #endif
    1394             : 
    1395             : #if CK2_ENABLED
    1396           0 :     module procedure setMahalSqOneInvCen_D1_CK2
    1397             :         use pm_kind, only: CKC => CK2
    1398             : #include "pm_distanceMahal@routines.inc.F90"
    1399           0 :     end procedure
    1400             : #endif
    1401             : 
    1402             : #if CK1_ENABLED
    1403           1 :     module procedure setMahalSqOneInvCen_D1_CK1
    1404             :         use pm_kind, only: CKC => CK1
    1405             : #include "pm_distanceMahal@routines.inc.F90"
    1406           1 :     end procedure
    1407             : #endif
    1408             : 
    1409             : #undef CK_ENABLED
    1410             : 
    1411             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1412             : 
    1413             : #define RK_ENABLED 1
    1414             : 
    1415             : #if RK5_ENABLED
    1416             :     module procedure setMahalSqOneInvCen_D1_RK5
    1417             :         use pm_kind, only: RKC => RK5
    1418             : #include "pm_distanceMahal@routines.inc.F90"
    1419             :     end procedure
    1420             : #endif
    1421             : 
    1422             : #if RK4_ENABLED
    1423           0 :     module procedure setMahalSqOneInvCen_D1_RK4
    1424             :         use pm_kind, only: RKC => RK4
    1425             : #include "pm_distanceMahal@routines.inc.F90"
    1426           0 :     end procedure
    1427             : #endif
    1428             : 
    1429             : #if RK3_ENABLED
    1430           0 :     module procedure setMahalSqOneInvCen_D1_RK3
    1431             :         use pm_kind, only: RKC => RK3
    1432             : #include "pm_distanceMahal@routines.inc.F90"
    1433           0 :     end procedure
    1434             : #endif
    1435             : 
    1436             : #if RK2_ENABLED
    1437           0 :     module procedure setMahalSqOneInvCen_D1_RK2
    1438             :         use pm_kind, only: RKC => RK2
    1439             : #include "pm_distanceMahal@routines.inc.F90"
    1440           0 :     end procedure
    1441             : #endif
    1442             : 
    1443             : #if RK1_ENABLED
    1444           1 :     module procedure setMahalSqOneInvCen_D1_RK1
    1445             :         use pm_kind, only: RKC => RK1
    1446             : #include "pm_distanceMahal@routines.inc.F90"
    1447           1 :     end procedure
    1448             : #endif
    1449             : 
    1450             : #undef RK_ENABLED
    1451             : 
    1452             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1453             : 
    1454             : #undef InvCen_ENABLED
    1455             : 
    1456             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1457             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1458             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1459             : 
    1460             : #undef D1_ENABLED
    1461             : 
    1462             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1463             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1464             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1465             : 
    1466             : #define D2_ENABLED 1
    1467             : 
    1468             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1469             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1470             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1471             : 
    1472             : #define InvDef_ENABLED 1
    1473             : 
    1474             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1475             : 
    1476             : #define CK_ENABLED 1
    1477             : 
    1478             : #if CK5_ENABLED
    1479             :     module procedure setMahalSqOneInvDef_D2_CK5
    1480             :         use pm_kind, only: CKC => CK5
    1481             : #include "pm_distanceMahal@routines.inc.F90"
    1482             :     end procedure
    1483             : #endif
    1484             : 
    1485             : #if CK4_ENABLED
    1486           0 :     module procedure setMahalSqOneInvDef_D2_CK4
    1487             :         use pm_kind, only: CKC => CK4
    1488             : #include "pm_distanceMahal@routines.inc.F90"
    1489           0 :     end procedure
    1490             : #endif
    1491             : 
    1492             : #if CK3_ENABLED
    1493           0 :     module procedure setMahalSqOneInvDef_D2_CK3
    1494             :         use pm_kind, only: CKC => CK3
    1495             : #include "pm_distanceMahal@routines.inc.F90"
    1496           0 :     end procedure
    1497             : #endif
    1498             : 
    1499             : #if CK2_ENABLED
    1500           0 :     module procedure setMahalSqOneInvDef_D2_CK2
    1501             :         use pm_kind, only: CKC => CK2
    1502             : #include "pm_distanceMahal@routines.inc.F90"
    1503           0 :     end procedure
    1504             : #endif
    1505             : 
    1506             : #if CK1_ENABLED
    1507           1 :     module procedure setMahalSqOneInvDef_D2_CK1
    1508             :         use pm_kind, only: CKC => CK1
    1509             : #include "pm_distanceMahal@routines.inc.F90"
    1510           1 :     end procedure
    1511             : #endif
    1512             : 
    1513             : #undef CK_ENABLED
    1514             : 
    1515             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1516             : 
    1517             : #define RK_ENABLED 1
    1518             : 
    1519             : #if RK5_ENABLED
    1520             :     module procedure setMahalSqOneInvDef_D2_RK5
    1521             :         use pm_kind, only: RKC => RK5
    1522             : #include "pm_distanceMahal@routines.inc.F90"
    1523             :     end procedure
    1524             : #endif
    1525             : 
    1526             : #if RK4_ENABLED
    1527           0 :     module procedure setMahalSqOneInvDef_D2_RK4
    1528             :         use pm_kind, only: RKC => RK4
    1529             : #include "pm_distanceMahal@routines.inc.F90"
    1530           0 :     end procedure
    1531             : #endif
    1532             : 
    1533             : #if RK3_ENABLED
    1534           0 :     module procedure setMahalSqOneInvDef_D2_RK3
    1535             :         use pm_kind, only: RKC => RK3
    1536             : #include "pm_distanceMahal@routines.inc.F90"
    1537           0 :     end procedure
    1538             : #endif
    1539             : 
    1540             : #if RK2_ENABLED
    1541           0 :     module procedure setMahalSqOneInvDef_D2_RK2
    1542             :         use pm_kind, only: RKC => RK2
    1543             : #include "pm_distanceMahal@routines.inc.F90"
    1544           0 :     end procedure
    1545             : #endif
    1546             : 
    1547             : #if RK1_ENABLED
    1548           1 :     module procedure setMahalSqOneInvDef_D2_RK1
    1549             :         use pm_kind, only: RKC => RK1
    1550             : #include "pm_distanceMahal@routines.inc.F90"
    1551           1 :     end procedure
    1552             : #endif
    1553             : 
    1554             : #undef RK_ENABLED
    1555             : 
    1556             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1557             : 
    1558             : #undef InvDef_ENABLED
    1559             : 
    1560             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1561             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1562             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1563             : 
    1564             : #define InvCen_ENABLED 1
    1565             : 
    1566             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1567             : 
    1568             : #define CK_ENABLED 1
    1569             : 
    1570             : #if CK5_ENABLED
    1571             :     module procedure setMahalSqOneInvCen_D2_CK5
    1572             :         use pm_kind, only: CKC => CK5
    1573             : #include "pm_distanceMahal@routines.inc.F90"
    1574             :     end procedure
    1575             : #endif
    1576             : 
    1577             : #if CK4_ENABLED
    1578           0 :     module procedure setMahalSqOneInvCen_D2_CK4
    1579             :         use pm_kind, only: CKC => CK4
    1580             : #include "pm_distanceMahal@routines.inc.F90"
    1581           0 :     end procedure
    1582             : #endif
    1583             : 
    1584             : #if CK3_ENABLED
    1585           0 :     module procedure setMahalSqOneInvCen_D2_CK3
    1586             :         use pm_kind, only: CKC => CK3
    1587             : #include "pm_distanceMahal@routines.inc.F90"
    1588           0 :     end procedure
    1589             : #endif
    1590             : 
    1591             : #if CK2_ENABLED
    1592           0 :     module procedure setMahalSqOneInvCen_D2_CK2
    1593             :         use pm_kind, only: CKC => CK2
    1594             : #include "pm_distanceMahal@routines.inc.F90"
    1595           0 :     end procedure
    1596             : #endif
    1597             : 
    1598             : #if CK1_ENABLED
    1599           1 :     module procedure setMahalSqOneInvCen_D2_CK1
    1600             :         use pm_kind, only: CKC => CK1
    1601             : #include "pm_distanceMahal@routines.inc.F90"
    1602           1 :     end procedure
    1603             : #endif
    1604             : 
    1605             : #undef CK_ENABLED
    1606             : 
    1607             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1608             : 
    1609             : #define RK_ENABLED 1
    1610             : 
    1611             : #if RK5_ENABLED
    1612             :     module procedure setMahalSqOneInvCen_D2_RK5
    1613             :         use pm_kind, only: RKC => RK5
    1614             : #include "pm_distanceMahal@routines.inc.F90"
    1615             :     end procedure
    1616             : #endif
    1617             : 
    1618             : #if RK4_ENABLED
    1619           0 :     module procedure setMahalSqOneInvCen_D2_RK4
    1620             :         use pm_kind, only: RKC => RK4
    1621             : #include "pm_distanceMahal@routines.inc.F90"
    1622           0 :     end procedure
    1623             : #endif
    1624             : 
    1625             : #if RK3_ENABLED
    1626           0 :     module procedure setMahalSqOneInvCen_D2_RK3
    1627             :         use pm_kind, only: RKC => RK3
    1628             : #include "pm_distanceMahal@routines.inc.F90"
    1629           0 :     end procedure
    1630             : #endif
    1631             : 
    1632             : #if RK2_ENABLED
    1633           0 :     module procedure setMahalSqOneInvCen_D2_RK2
    1634             :         use pm_kind, only: RKC => RK2
    1635             : #include "pm_distanceMahal@routines.inc.F90"
    1636           0 :     end procedure
    1637             : #endif
    1638             : 
    1639             : #if RK1_ENABLED
    1640           1 :     module procedure setMahalSqOneInvCen_D2_RK1
    1641             :         use pm_kind, only: RKC => RK1
    1642             : #include "pm_distanceMahal@routines.inc.F90"
    1643           1 :     end procedure
    1644             : #endif
    1645             : 
    1646             : #undef RK_ENABLED
    1647             : 
    1648             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1649             : 
    1650             : #undef InvCen_ENABLED
    1651             : 
    1652             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1653             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1654             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1655             : 
    1656             : #undef D2_ENABLED
    1657             : 
    1658             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1659             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1660             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1661             : 
    1662             : #undef One_ENABLED
    1663             : 
    1664             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1665             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1666             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1667             : 
    1668             : #define Mix_ENABLED 1
    1669             : 
    1670             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1671             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1672             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1673             : 
    1674             : #define D1_ENABLED 1
    1675             : 
    1676             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1677             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1678             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1679             : 
    1680             : #define InvDef_ENABLED 1
    1681             : 
    1682             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1683             : 
    1684             : #define CK_ENABLED 1
    1685             : 
    1686             : #if CK5_ENABLED
    1687             :     module procedure setMahalSqMixInvDef_D1_CK5
    1688             :         use pm_kind, only: CKC => CK5
    1689             : #include "pm_distanceMahal@routines.inc.F90"
    1690             :     end procedure
    1691             : #endif
    1692             : 
    1693             : #if CK4_ENABLED
    1694           0 :     module procedure setMahalSqMixInvDef_D1_CK4
    1695             :         use pm_kind, only: CKC => CK4
    1696             : #include "pm_distanceMahal@routines.inc.F90"
    1697           0 :     end procedure
    1698             : #endif
    1699             : 
    1700             : #if CK3_ENABLED
    1701           0 :     module procedure setMahalSqMixInvDef_D1_CK3
    1702             :         use pm_kind, only: CKC => CK3
    1703             : #include "pm_distanceMahal@routines.inc.F90"
    1704           0 :     end procedure
    1705             : #endif
    1706             : 
    1707             : #if CK2_ENABLED
    1708           0 :     module procedure setMahalSqMixInvDef_D1_CK2
    1709             :         use pm_kind, only: CKC => CK2
    1710             : #include "pm_distanceMahal@routines.inc.F90"
    1711           0 :     end procedure
    1712             : #endif
    1713             : 
    1714             : #if CK1_ENABLED
    1715           1 :     module procedure setMahalSqMixInvDef_D1_CK1
    1716             :         use pm_kind, only: CKC => CK1
    1717             : #include "pm_distanceMahal@routines.inc.F90"
    1718           1 :     end procedure
    1719             : #endif
    1720             : 
    1721             : #undef CK_ENABLED
    1722             : 
    1723             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1724             : 
    1725             : #define RK_ENABLED 1
    1726             : 
    1727             : #if RK5_ENABLED
    1728             :     module procedure setMahalSqMixInvDef_D1_RK5
    1729             :         use pm_kind, only: RKC => RK5
    1730             : #include "pm_distanceMahal@routines.inc.F90"
    1731             :     end procedure
    1732             : #endif
    1733             : 
    1734             : #if RK4_ENABLED
    1735           0 :     module procedure setMahalSqMixInvDef_D1_RK4
    1736             :         use pm_kind, only: RKC => RK4
    1737             : #include "pm_distanceMahal@routines.inc.F90"
    1738           0 :     end procedure
    1739             : #endif
    1740             : 
    1741             : #if RK3_ENABLED
    1742           0 :     module procedure setMahalSqMixInvDef_D1_RK3
    1743             :         use pm_kind, only: RKC => RK3
    1744             : #include "pm_distanceMahal@routines.inc.F90"
    1745           0 :     end procedure
    1746             : #endif
    1747             : 
    1748             : #if RK2_ENABLED
    1749           0 :     module procedure setMahalSqMixInvDef_D1_RK2
    1750             :         use pm_kind, only: RKC => RK2
    1751             : #include "pm_distanceMahal@routines.inc.F90"
    1752           0 :     end procedure
    1753             : #endif
    1754             : 
    1755             : #if RK1_ENABLED
    1756           1 :     module procedure setMahalSqMixInvDef_D1_RK1
    1757             :         use pm_kind, only: RKC => RK1
    1758             : #include "pm_distanceMahal@routines.inc.F90"
    1759           1 :     end procedure
    1760             : #endif
    1761             : 
    1762             : #undef RK_ENABLED
    1763             : 
    1764             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1765             : 
    1766             : #undef InvDef_ENABLED
    1767             : 
    1768             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1769             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1770             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1771             : 
    1772             : #define InvCen_ENABLED 1
    1773             : 
    1774             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1775             : 
    1776             : #define CK_ENABLED 1
    1777             : 
    1778             : #if CK5_ENABLED
    1779             :     module procedure setMahalSqMixInvCen_D1_CK5
    1780             :         use pm_kind, only: CKC => CK5
    1781             : #include "pm_distanceMahal@routines.inc.F90"
    1782             :     end procedure
    1783             : #endif
    1784             : 
    1785             : #if CK4_ENABLED
    1786           0 :     module procedure setMahalSqMixInvCen_D1_CK4
    1787             :         use pm_kind, only: CKC => CK4
    1788             : #include "pm_distanceMahal@routines.inc.F90"
    1789           0 :     end procedure
    1790             : #endif
    1791             : 
    1792             : #if CK3_ENABLED
    1793           0 :     module procedure setMahalSqMixInvCen_D1_CK3
    1794             :         use pm_kind, only: CKC => CK3
    1795             : #include "pm_distanceMahal@routines.inc.F90"
    1796           0 :     end procedure
    1797             : #endif
    1798             : 
    1799             : #if CK2_ENABLED
    1800           0 :     module procedure setMahalSqMixInvCen_D1_CK2
    1801             :         use pm_kind, only: CKC => CK2
    1802             : #include "pm_distanceMahal@routines.inc.F90"
    1803           0 :     end procedure
    1804             : #endif
    1805             : 
    1806             : #if CK1_ENABLED
    1807           1 :     module procedure setMahalSqMixInvCen_D1_CK1
    1808             :         use pm_kind, only: CKC => CK1
    1809             : #include "pm_distanceMahal@routines.inc.F90"
    1810           1 :     end procedure
    1811             : #endif
    1812             : 
    1813             : #undef CK_ENABLED
    1814             : 
    1815             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1816             : 
    1817             : #define RK_ENABLED 1
    1818             : 
    1819             : #if RK5_ENABLED
    1820             :     module procedure setMahalSqMixInvCen_D1_RK5
    1821             :         use pm_kind, only: RKC => RK5
    1822             : #include "pm_distanceMahal@routines.inc.F90"
    1823             :     end procedure
    1824             : #endif
    1825             : 
    1826             : #if RK4_ENABLED
    1827           0 :     module procedure setMahalSqMixInvCen_D1_RK4
    1828             :         use pm_kind, only: RKC => RK4
    1829             : #include "pm_distanceMahal@routines.inc.F90"
    1830           0 :     end procedure
    1831             : #endif
    1832             : 
    1833             : #if RK3_ENABLED
    1834           0 :     module procedure setMahalSqMixInvCen_D1_RK3
    1835             :         use pm_kind, only: RKC => RK3
    1836             : #include "pm_distanceMahal@routines.inc.F90"
    1837           0 :     end procedure
    1838             : #endif
    1839             : 
    1840             : #if RK2_ENABLED
    1841           0 :     module procedure setMahalSqMixInvCen_D1_RK2
    1842             :         use pm_kind, only: RKC => RK2
    1843             : #include "pm_distanceMahal@routines.inc.F90"
    1844           0 :     end procedure
    1845             : #endif
    1846             : 
    1847             : #if RK1_ENABLED
    1848           1 :     module procedure setMahalSqMixInvCen_D1_RK1
    1849             :         use pm_kind, only: RKC => RK1
    1850             : #include "pm_distanceMahal@routines.inc.F90"
    1851           1 :     end procedure
    1852             : #endif
    1853             : 
    1854             : #undef RK_ENABLED
    1855             : 
    1856             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1857             : 
    1858             : #undef InvCen_ENABLED
    1859             : 
    1860             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1861             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1862             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1863             : 
    1864             : #undef D1_ENABLED
    1865             : 
    1866             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1867             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1868             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1869             : 
    1870             : #define D2_ENABLED 1
    1871             : 
    1872             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1873             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1874             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1875             : 
    1876             : #define InvDef_ENABLED 1
    1877             : 
    1878             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1879             : 
    1880             : #define CK_ENABLED 1
    1881             : 
    1882             : #if CK5_ENABLED
    1883             :     module procedure setMahalSqMixInvDef_D2_CK5
    1884             :         use pm_kind, only: CKC => CK5
    1885             : #include "pm_distanceMahal@routines.inc.F90"
    1886             :     end procedure
    1887             : #endif
    1888             : 
    1889             : #if CK4_ENABLED
    1890           0 :     module procedure setMahalSqMixInvDef_D2_CK4
    1891             :         use pm_kind, only: CKC => CK4
    1892             : #include "pm_distanceMahal@routines.inc.F90"
    1893           0 :     end procedure
    1894             : #endif
    1895             : 
    1896             : #if CK3_ENABLED
    1897           0 :     module procedure setMahalSqMixInvDef_D2_CK3
    1898             :         use pm_kind, only: CKC => CK3
    1899             : #include "pm_distanceMahal@routines.inc.F90"
    1900           0 :     end procedure
    1901             : #endif
    1902             : 
    1903             : #if CK2_ENABLED
    1904           0 :     module procedure setMahalSqMixInvDef_D2_CK2
    1905             :         use pm_kind, only: CKC => CK2
    1906             : #include "pm_distanceMahal@routines.inc.F90"
    1907           0 :     end procedure
    1908             : #endif
    1909             : 
    1910             : #if CK1_ENABLED
    1911           1 :     module procedure setMahalSqMixInvDef_D2_CK1
    1912             :         use pm_kind, only: CKC => CK1
    1913             : #include "pm_distanceMahal@routines.inc.F90"
    1914           1 :     end procedure
    1915             : #endif
    1916             : 
    1917             : #undef CK_ENABLED
    1918             : 
    1919             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1920             : 
    1921             : #define RK_ENABLED 1
    1922             : 
    1923             : #if RK5_ENABLED
    1924             :     module procedure setMahalSqMixInvDef_D2_RK5
    1925             :         use pm_kind, only: RKC => RK5
    1926             : #include "pm_distanceMahal@routines.inc.F90"
    1927             :     end procedure
    1928             : #endif
    1929             : 
    1930             : #if RK4_ENABLED
    1931           0 :     module procedure setMahalSqMixInvDef_D2_RK4
    1932             :         use pm_kind, only: RKC => RK4
    1933             : #include "pm_distanceMahal@routines.inc.F90"
    1934           0 :     end procedure
    1935             : #endif
    1936             : 
    1937             : #if RK3_ENABLED
    1938           0 :     module procedure setMahalSqMixInvDef_D2_RK3
    1939             :         use pm_kind, only: RKC => RK3
    1940             : #include "pm_distanceMahal@routines.inc.F90"
    1941           0 :     end procedure
    1942             : #endif
    1943             : 
    1944             : #if RK2_ENABLED
    1945           0 :     module procedure setMahalSqMixInvDef_D2_RK2
    1946             :         use pm_kind, only: RKC => RK2
    1947             : #include "pm_distanceMahal@routines.inc.F90"
    1948           0 :     end procedure
    1949             : #endif
    1950             : 
    1951             : #if RK1_ENABLED
    1952           1 :     module procedure setMahalSqMixInvDef_D2_RK1
    1953             :         use pm_kind, only: RKC => RK1
    1954             : #include "pm_distanceMahal@routines.inc.F90"
    1955           1 :     end procedure
    1956             : #endif
    1957             : 
    1958             : #undef RK_ENABLED
    1959             : 
    1960             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1961             : 
    1962             : #undef InvDef_ENABLED
    1963             : 
    1964             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1965             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1966             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1967             : 
    1968             : #define InvCen_ENABLED 1
    1969             : 
    1970             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1971             : 
    1972             : #define CK_ENABLED 1
    1973             : 
    1974             : #if CK5_ENABLED
    1975             :     module procedure setMahalSqMixInvCen_D2_CK5
    1976             :         use pm_kind, only: CKC => CK5
    1977             : #include "pm_distanceMahal@routines.inc.F90"
    1978             :     end procedure
    1979             : #endif
    1980             : 
    1981             : #if CK4_ENABLED
    1982           0 :     module procedure setMahalSqMixInvCen_D2_CK4
    1983             :         use pm_kind, only: CKC => CK4
    1984             : #include "pm_distanceMahal@routines.inc.F90"
    1985           0 :     end procedure
    1986             : #endif
    1987             : 
    1988             : #if CK3_ENABLED
    1989           0 :     module procedure setMahalSqMixInvCen_D2_CK3
    1990             :         use pm_kind, only: CKC => CK3
    1991             : #include "pm_distanceMahal@routines.inc.F90"
    1992           0 :     end procedure
    1993             : #endif
    1994             : 
    1995             : #if CK2_ENABLED
    1996           0 :     module procedure setMahalSqMixInvCen_D2_CK2
    1997             :         use pm_kind, only: CKC => CK2
    1998             : #include "pm_distanceMahal@routines.inc.F90"
    1999           0 :     end procedure
    2000             : #endif
    2001             : 
    2002             : #if CK1_ENABLED
    2003           1 :     module procedure setMahalSqMixInvCen_D2_CK1
    2004             :         use pm_kind, only: CKC => CK1
    2005             : #include "pm_distanceMahal@routines.inc.F90"
    2006           1 :     end procedure
    2007             : #endif
    2008             : 
    2009             : #undef CK_ENABLED
    2010             : 
    2011             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2012             : 
    2013             : #define RK_ENABLED 1
    2014             : 
    2015             : #if RK5_ENABLED
    2016             :     module procedure setMahalSqMixInvCen_D2_RK5
    2017             :         use pm_kind, only: RKC => RK5
    2018             : #include "pm_distanceMahal@routines.inc.F90"
    2019             :     end procedure
    2020             : #endif
    2021             : 
    2022             : #if RK4_ENABLED
    2023           0 :     module procedure setMahalSqMixInvCen_D2_RK4
    2024             :         use pm_kind, only: RKC => RK4
    2025             : #include "pm_distanceMahal@routines.inc.F90"
    2026           0 :     end procedure
    2027             : #endif
    2028             : 
    2029             : #if RK3_ENABLED
    2030           0 :     module procedure setMahalSqMixInvCen_D2_RK3
    2031             :         use pm_kind, only: RKC => RK3
    2032             : #include "pm_distanceMahal@routines.inc.F90"
    2033           0 :     end procedure
    2034             : #endif
    2035             : 
    2036             : #if RK2_ENABLED
    2037           0 :     module procedure setMahalSqMixInvCen_D2_RK2
    2038             :         use pm_kind, only: RKC => RK2
    2039             : #include "pm_distanceMahal@routines.inc.F90"
    2040           0 :     end procedure
    2041             : #endif
    2042             : 
    2043             : #if RK1_ENABLED
    2044           1 :     module procedure setMahalSqMixInvCen_D2_RK1
    2045             :         use pm_kind, only: RKC => RK1
    2046             : #include "pm_distanceMahal@routines.inc.F90"
    2047           1 :     end procedure
    2048             : #endif
    2049             : 
    2050             : #undef RK_ENABLED
    2051             : 
    2052             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2053             : 
    2054             : #undef InvCen_ENABLED
    2055             : 
    2056             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2057             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2058             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2059             : 
    2060             : #undef D2_ENABLED
    2061             : 
    2062             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2063             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2064             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2065             : 
    2066             : #undef Mix_ENABLED
    2067             : 
    2068             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2069             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2070             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2071             : 
    2072             : #undef setMahalSq_ENABLED
    2073             : 
    2074             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2075             : 
    2076             : #undef CHECK_ASSERTION
    2077             : 
    2078             : end submodule routines

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